grammar Formula;
formula : expression ;
expression : firstExpression ( secondExpression )* ;
firstExpression : numberExpression ( thirdExpression )*;
numberExpression : NUMBER ;
NUMBER : DIGIT+ (DOT DIGIT+)? ;
DIGIT : [0-9] ;
DOT : '.' ;
thirdExpression : ( MUL | DIV | MOD ) numberExpression ;
secondExpression : ( PLUS | MINUS ) firstExpression ;
PLUS : '+' ;
MINUS : '-' ;
MUL : '*' ;
DIV : '/' ;
MOD : '%' ;
WS : [ \t\r\n] -> skip ;
IExpression expression = FormulaParser.Parse("1+2+3+4+5+6+7+8+9+10"); FormulaInterpreter interpreter = new FormulaInterpreter(); Console.WriteLine(interpreter.Interpret(expression));