/// <summary>
        /// Reads arguments from a progress parameter file.
        /// </summary>
        /// <param name="pfPath"></param>
        /// <param name="encoding"></param>
        /// <returns></returns>
        public UoeProcessArgs AppendFromPfFilePath(string pfPath, Encoding encoding = null)
        {
            if (!File.Exists(pfPath))
            {
                return(null);
            }
            var tokenizer = UoePfTokenizer.New(File.ReadAllText(pfPath, encoding ?? TextEncodingDetect.GetFileEncoding(pfPath)));

            while (tokenizer.MoveToNextToken())
            {
                var token = tokenizer.PeekAtToken(0);
                if (token is ParameterStringTokenOption || token is ParameterStringTokenValue)
                {
                    Append(token.Value);
                }
            }
            return(this);
        }
Example #2
0
        public void Parse(string input, bool isWindows, string tokenTypes, string csvExpected)
        {
            var types     = new StringBuilder();
            var csv       = new StringBuilder();
            var tokenizer = UoePfTokenizer.New(input, isWindows);

            while (tokenizer.MoveToNextToken())
            {
                var token = tokenizer.PeekAtToken(0);
                switch (token)
                {
                case ParameterStringTokenOption _:
                    types.Append("o");
                    csv.Append(token.Value).Append(';');
                    break;

                case ParameterStringTokenValue _:
                    types.Append("v");
                    csv.Append(token.Value).Append(';');
                    break;

                case ParameterStringTokenWhiteSpace _:
                    types.Append("s");
                    break;

                case ParameterStringTokenComment _:
                    types.Append("c");
                    break;

                default:
                    types.Append("e");
                    break;
                }
            }

            Assert.AreEqual(tokenTypes, types.ToString());
            Assert.AreEqual($"{csvExpected};", csv.ToString());
        }