You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
741 B
40 lines
741 B
grammar t026actions;
|
|
options {
|
|
language = Python3;
|
|
}
|
|
|
|
@lexer::init {
|
|
self.foobar = 'attribute;'
|
|
}
|
|
|
|
prog
|
|
@init {
|
|
self.capture('init;')
|
|
}
|
|
@after {
|
|
self.capture('after;')
|
|
}
|
|
: IDENTIFIER EOF
|
|
;
|
|
catch [ RecognitionException as exc ] {
|
|
self.capture('catch;')
|
|
raise
|
|
}
|
|
finally {
|
|
self.capture('finally;')
|
|
}
|
|
|
|
|
|
IDENTIFIER
|
|
: ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'0'..'9'|'_')*
|
|
{
|
|
# a comment
|
|
self.capture('action;')
|
|
self.capture('{!r} {!r} {!r} {!r} {!r} {!r} {!r} {!r};'.format($text, $type, $line, $pos, $index, $channel, $start, $stop))
|
|
if True:
|
|
self.capture(self.foobar)
|
|
}
|
|
;
|
|
|
|
WS: (' ' | '\n')+;
|