1grammar SemanticPredicateReduction;
2
3options {
4    language=CSharp3;
5    TokenLabelType=CommonToken;
6}
7
8@lexer::namespace{Antlr3.Runtime.Test}
9@parser::namespace{Antlr3.Runtime.Test}
10
11start : mainprog optional? EOF;
12
13mainprog : '(' args ')';
14args : ID ID*;
15
16optional: ':'  args element ':' args element2;
17element : {true}?=>args2;
18element2: {false}?=>args3;
19args2 : ID ID*;
20args3 : ID ID* ;
21
22WS  : (' '|'\t'|'\n'|'\r')+;
23ID  : ('a'..'z')+;
24