xref: /aosp_15_r20/external/antlr/runtime/Cpp/tests/t014parser.g (revision 16467b971bd3e2009fad32dd79016f2c7e421deb)
1grammar t014parser;
2options {
3  language =Cpp;
4}
5
6@lexer::includes
7{
8#include "UserTestTraits.hpp"
9}
10@lexer::namespace
11{ Antlr3Test }
12
13@parser::includes {
14#include "UserTestTraits.hpp"
15}
16@parser::namespace
17{ Antlr3Test }
18
19@parser::init {
20self.events = []
21self.reportedErrors = []
22}
23
24@parser::members {
25def emitErrorMessage(self, msg):
26    self.reportedErrors.append(msg)
27}
28
29
30document:
31        ( declaration
32        | call
33        )*
34        EOF
35    ;
36
37declaration:
38        'var' t=IDENTIFIER ';'
39        {self.events.append(('decl', $t.text))}
40    ;
41
42call:
43        t=IDENTIFIER '(' ')' ';'
44        {self.events.append(('call', $t.text))}
45    ;
46
47IDENTIFIER: ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'0'..'9'|'_')*;
48WS:  (' '|'\r'|'\t'|'\n') {$channel=HIDDEN;};
49