1*16467b97STreehugger Robotgrammar t026actions; 2*16467b97STreehugger Robotoptions { 3*16467b97STreehugger Robot language = Python; 4*16467b97STreehugger Robot} 5*16467b97STreehugger Robot 6*16467b97STreehugger Robot@lexer::init { 7*16467b97STreehugger Robot self.foobar = 'attribute;' 8*16467b97STreehugger Robot} 9*16467b97STreehugger Robot 10*16467b97STreehugger Robotprog 11*16467b97STreehugger Robot@init { 12*16467b97STreehugger Robot self.capture('init;') 13*16467b97STreehugger Robot} 14*16467b97STreehugger Robot@after { 15*16467b97STreehugger Robot self.capture('after;') 16*16467b97STreehugger Robot} 17*16467b97STreehugger Robot : IDENTIFIER EOF 18*16467b97STreehugger Robot ; 19*16467b97STreehugger Robot catch [ RecognitionException, exc ] { 20*16467b97STreehugger Robot self.capture('catch;') 21*16467b97STreehugger Robot raise 22*16467b97STreehugger Robot } 23*16467b97STreehugger Robot finally { 24*16467b97STreehugger Robot self.capture('finally;') 25*16467b97STreehugger Robot } 26*16467b97STreehugger Robot 27*16467b97STreehugger Robot 28*16467b97STreehugger RobotIDENTIFIER 29*16467b97STreehugger Robot : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'0'..'9'|'_')* 30*16467b97STreehugger Robot { 31*16467b97STreehugger Robot # a comment 32*16467b97STreehugger Robot self.capture('action;') 33*16467b97STreehugger Robot self.capture('\%r \%r \%r \%r \%r \%r \%r \%r;' \% ($text, $type, $line, $pos, $index, $channel, $start, $stop)) 34*16467b97STreehugger Robot if True: 35*16467b97STreehugger Robot self.capture(self.foobar) 36*16467b97STreehugger Robot } 37*16467b97STreehugger Robot ; 38*16467b97STreehugger Robot 39*16467b97STreehugger RobotWS: (' ' | '\n')+; 40