예제 #1
0
 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);
     });
 }
예제 #2
0
 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;
         }
     });
 }