nitlanguage
/
nit.git
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
history
|
raw
|
HEAD
examples: annotate examples
[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
{int:} int |
13
{par:} '(' e ')'
14
Unary
15
{neg:} '-' e
16
Left
17
{mul:} e '*' e |
18
{div:} e '/' e
19
Left
20
{add:} e '+' e |
21
{sub:} e '-' e ;