xref: /aosp_15_r20/external/antlr/runtime/Cpp/tests/t026actions.g (revision 16467b971bd3e2009fad32dd79016f2c7e421deb)
1*16467b97STreehugger Robotgrammar t026actions;
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@lexer::init {
20*16467b97STreehugger Robot    self.foobar = 'attribute;'
21*16467b97STreehugger Robot}
22*16467b97STreehugger Robot
23*16467b97STreehugger Robotprog
24*16467b97STreehugger Robot@init {
25*16467b97STreehugger Robot    self.capture('init;')
26*16467b97STreehugger Robot}
27*16467b97STreehugger Robot@after {
28*16467b97STreehugger Robot    self.capture('after;')
29*16467b97STreehugger Robot}
30*16467b97STreehugger Robot    :   IDENTIFIER EOF
31*16467b97STreehugger Robot    ;
32*16467b97STreehugger Robot    catch [ RecognitionException as exc ] {
33*16467b97STreehugger Robot        self.capture('catch;')
34*16467b97STreehugger Robot        raise
35*16467b97STreehugger Robot    }
36*16467b97STreehugger Robot    finally {
37*16467b97STreehugger Robot        self.capture('finally;')
38*16467b97STreehugger Robot    }
39*16467b97STreehugger Robot
40*16467b97STreehugger Robot
41*16467b97STreehugger RobotIDENTIFIER
42*16467b97STreehugger Robot    : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'0'..'9'|'_')*
43*16467b97STreehugger Robot        {
44*16467b97STreehugger Robot            # a comment
45*16467b97STreehugger Robot          self.capture('action;')
46*16467b97STreehugger Robot            self.capture('{!r} {!r} {!r} {!r} {!r} {!r} {!r} {!r};'.format($text, $type, $line, $pos, $index, $channel, $start, $stop))
47*16467b97STreehugger Robot            if True:
48*16467b97STreehugger Robot                self.capture(self.foobar)
49*16467b97STreehugger Robot        }
50*16467b97STreehugger Robot    ;
51*16467b97STreehugger Robot
52*16467b97STreehugger RobotWS: (' ' | '\n')+;
53