1grammar t030specialStates; 2options { 3 language = JavaScript; 4} 5 6@members { 7this.recover = function(input, re) { 8 throw re; 9}; 10} 11 12r 13 : ( {this.cond}? NAME 14 | {!this.cond}? NAME WS+ NAME 15 ) 16 ( WS+ NAME )? 17 EOF 18 ; 19 20NAME: ('a'..'z') ('a'..'z' | '0'..'9')+; 21NUMBER: ('0'..'9')+; 22WS: ' '+; 23