Example #1
0
        public static bool TryParseAll <T>(TokenListParser <ExpressionToken, T> parser, string source, out T value, out string error)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            var tokens = ExpressionTokenizer.TryTokenize(source);

            if (!tokens.HasValue)
            {
                value = default;
                error = tokens.ToString();
                return(false);
            }

            var result = parser.AtEnd()(tokens.Value);

            if (!result.HasValue)
            {
                value = default;
                error = result.ToString();
                return(false);
            }

            value = result.Value;
            error = null;
            return(true);
        }
        public static TokenListParserResult <SelectToken, T> Parse <T>(TokenListParser <SelectToken, T> parser, string input)
        {
            var tokenizer = new SelectTokenizer();
            var tokens    = tokenizer.Tokenize(input);

            return(parser.AtEnd().TryParse(tokens));
        }