Ejemplo n.º 1
0
 public static Parse <int> DigitValue()
 {
     return(value =>
     {
         ParseResult <char> whiteSpaceResult = IsWhitespace()(value);
         if (!whiteSpaceResult.Succeeded)
         {
             ParseResult <char> result = Match(char.IsDigit)(value);
             int resultValue = 0;
             if (result.Succeeded)
             {
                 resultValue = System.Convert.ToInt32(result.Result.ToString());
                 return new ParseResult <int>(resultValue, result.RemainingInput, true);
             }
             else
             {
                 return new ParseResult <int>(resultValue, value, false);
             }
         }
         else
         {
             ParseResult <int> result = DigitValue()(whiteSpaceResult.RemainingInput);
             return result;
         }
     });
 }
Ejemplo n.º 2
0
 public static Parse <string> BoolStringHelper(string boolValue)
 {
     return(value =>
     {
         ParseResult <char> whiteSpaceResult = IsWhitespace()(value);
         if (!whiteSpaceResult.Succeeded)
         {
             ParseResult <char> parseResult = LetterOrDigit()(value);
             if (parseResult.Succeeded)
             {
                 var stringVal = StringValue(boolValue + parseResult.Result.ToString());
                 ParseResult <string> result = stringVal(parseResult.RemainingInput);
                 if (result.Result.ToLower() == "true")
                 {
                     return new ParseResult <string>("true", parseResult.RemainingInput, true);
                 }
                 else
                 {
                     return new ParseResult <string>("false", parseResult.RemainingInput, true);
                 }
             }
             if (string.IsNullOrEmpty(boolValue))
             {
                 return new ParseResult <string>("false", value, false);
             }
             return new ParseResult <string>("false", value, true);
         }
         else
         {
             var stringVal = StringValue(boolValue);
             ParseResult <string> result = stringVal(whiteSpaceResult.RemainingInput);
             if (result.Result.ToLower() == "true")
             {
                 return new ParseResult <string>("true", result.RemainingInput, true);
             }
             else
             {
                 return new ParseResult <string>("false", result.RemainingInput, true);
             }
         }
     });
 }
Ejemplo n.º 3
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;
         }
     });
 }