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