nitlanguage
/
nit.git
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
history
|
raw
|
HEAD
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 ;