Beispiel #1
0
        public double Calculate(string input)
        {
            Token EofToken = new Token {
                Type = TT.EOF
            };
            var lexer = new CalculatorLexer(input);

            Src = new ParserSource <Token>(lexer, EofToken, lexer.Src.SourceFile)
            {
                TokenTypeToString = tt => ((TT)tt).ToString()
            };
            var result = ExprSequence();

            Src.Match((int)TT.EOF);
            return(result);
        }
Beispiel #2
0
        public double Calculate(string input)
        {
            var lexer = new CalculatorLexer(input);

            _tokens.Clear();
            Token t;

            while (((t = lexer.NextToken()).Type != TT.EOF))
            {
                if ((t.Type != TT.Space))
                {
                    _tokens.Add(t);
                }
            }
            _src = new ParserSource <Token>(_tokens, new Token {
                Type = TT.EOF
            })
            {
                TokenTypeToString = TokenTypeToString
            };
            return(Expr());
        }