private static Parse <string> StringValue(string str) { return(value => { ParseResult <char> parseResult = LetterOrDigitOrPoint()(value); if (parseResult.Succeeded) { var stringVal = StringValue(str + parseResult.Result.ToString()); ParseResult <string> result = stringVal(parseResult.RemainingInput); return result; } if (string.IsNullOrEmpty(str)) { return new ParseResult <string>(str, value, false); } return new ParseResult <string>(str, value, true); }); }
private static Parse <string> StringValue(string str) { return(value => { ParseResult <char> whiteSpaceResult = IsWhitespace()(value); if (!whiteSpaceResult.Succeeded) { //ParseResult<char> singleQuotationResult = IsSingleQuotation()(value); //if (!singleQuotationResult.Succeeded) //{ ParseResult <char> parseResult = LetterOrDigitOrPoint()(value); if (parseResult.Succeeded) { var stringVal = StringValue(str + parseResult.Result.ToString()); ParseResult <string> result = stringVal(parseResult.RemainingInput); return result; } if (string.IsNullOrEmpty(str)) { return new ParseResult <string>(str, value, false); } return new ParseResult <string>(str, value, true); //} //else //{ // var stringVal = StringValue(str); // ParseResult<string> result = stringVal(singleQuotationResult.RemainingInput); // return result; //} } else { var stringVal = StringValue(str); ParseResult <string> result = stringVal(whiteSpaceResult.RemainingInput); return result; } }); }