grammar Calculator;
/* parse rules -> AST */
expr
: NUMBER ('*'|'/') NUMBER
| NUMBER ('+'|'-') NUMBER
| NUMBER
;
/* lex rules -> tokens */
NUMBER
: [1-9][0-9]* ( '.' [0-9]+ )?
;
WS : [ \t]+ -> skip;
E.g for "2 + 3
":
var is = new FileInputStream(str);
var input = new ANTLRInputStream(is);
var lexer = new LabeledExprLexer(input);
var tokens = new CommonTokenStream(lexer);
var parser = new LabeledExprParser(tokens);
var tree = parser.prog(); // parse
var eval = new EvalVisitor();
eval.visit(tree);
var
s now...