1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
| grammar t014parser;
| options {
| language =Cpp;
| }
|
| @lexer::includes
| {
| #include "UserTestTraits.hpp"
| }
| @lexer::namespace
| { Antlr3Test }
|
| @parser::includes {
| #include "UserTestTraits.hpp"
| }
| @parser::namespace
| { Antlr3Test }
|
| @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;};
|
|