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); }
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()); }