/// <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); }
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()); }