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