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')+;