40 lines
		
	
	
		
			741 B
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			741 B
		
	
	
	
		
			Plaintext
		
	
	
	
| 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')+;
 |