nitcc: introduce nitcc
[nit.git] / contrib / nitcc / t / inf5000-06-grammaire2-grammaire.sablecc
1 Grammar grammaire;
2 Lexer
3 id = ('a'..'z')+;
4 altid = '{' id ':}';
5 str = '\'' (Any* - '\'') '\'';
6 blank = ' ' | #9 | #10 | #13;
7
8 Parser
9 Ignored blank;
10 prods = {many:} prods prod  | {one:} prod ;
11 prod = id '=' alts ';' ;
12 alts = {many:} alts '|' alt | {one:} alt ;
13 alt = altid atoms | atoms ;
14 atoms = {many:} atoms atom | {none:} ;
15 atom = {id:} id | {str:} str ;