1grammar t014parser;
2options {
3  language = JavaScript;
4}
5
6@parser::members {
7this.reportedErrors = [];
8this.events = [];
9this.emitErrorMessage = function(msg) {
10    this.reportedErrors.push(msg);
11};
12this.eventMessage = function(msg) {
13    this.events.push(msg);
14};
15}
16
17
18document:
19        ( declaration
20        | call
21        )*
22        EOF
23    ;
24
25declaration:
26        'var' t=IDENTIFIER ';'
27        {this.eventMessage(['decl', $t.getText()]);}
28    ;
29
30call:
31        t=IDENTIFIER '(' ')' ';'
32        {this.eventMessage(['call', $t.getText()]);}
33    ;
34
35IDENTIFIER: ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'0'..'9'|'_')*;
36WS:  (' '|'\r'|'\t'|'\n') {$channel=HIDDEN;};
37