pep8analysis: intro a variant main program for a web interface
[nit.git] / contrib / nitcc / examples / calc.sablecc
1 /* A simple calculator, see calc.nit */
2 Grammar calc;
3
4 Lexer
5 d = '0'..'9';
6 int = d+;
7 blank = (' '|'\n')+;
8
9 Parser
10 Ignored blank;
11 e =
12         {add:} e '+' f |
13         {sub:} e '-' f |
14         f {->};
15 f {->e} =
16         {mul:} f '*' a |
17         {div:} f '/' a |
18         a {->};
19 a {->e} =
20         {int:} int |
21         {par:} '(' e ')' |
22         {neg:} '-' a ;