grammar t026actions; options { language = Python; } @lexer::init { self.foobar = 'attribute;' } prog @init { self.capture('init;') } @after { self.capture('after;') } : IDENTIFIER EOF ; catch [ RecognitionException, 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;' \% ($text, $type, $line, $pos, $index, $channel, $start, $stop)) if True: self.capture(self.foobar) } ; WS: (' ' | '\n')+;