grammar SemanticPredicateReduction; | |
options { | |
language=CSharp3; | |
TokenLabelType=CommonToken; | |
} | |
@lexer::namespace{Antlr3.Runtime.Test} | |
@parser::namespace{Antlr3.Runtime.Test} | |
start : mainprog optional? EOF; | |
mainprog : '(' args ')'; | |
args : ID ID*; | |
optional: ':' args element ':' args element2; | |
element : {true}?=>args2; | |
element2: {false}?=>args3; | |
args2 : ID ID*; | |
args3 : ID ID* ; | |
WS : (' '|'\t'|'\n'|'\r')+; | |
ID : ('a'..'z')+; |