grammar t014parser; options { language = Python; } @parser::init { self.events = [] self.reportedErrors = [] } @parser::members { def emitErrorMessage(self, msg): self.reportedErrors.append(msg) } document: ( declaration | call )* EOF ; declaration: 'var' t=IDENTIFIER ';' {self.events.append(('decl', $t.text))} ; call: t=IDENTIFIER '(' ')' ';' {self.events.append(('call', $t.text))} ; IDENTIFIER: ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'0'..'9'|'_')*; WS: (' '|'\r'|'\t'|'\n') {$channel=HIDDEN;};