grammar TestActionFeatures; options { language=CSharp3; TokenLabelType=CommonToken; output=AST; ASTLabelType=CommonTree; } @lexer::namespace{Antlr3.Runtime.Test} @parser::namespace{Antlr3.Runtime.Test} @parser::header{using Console = System.Console;} /* * Parser Rules */ public compileUnit : EOF ; // SET_DYNAMIC_SCOPE_ATTR setDynamicScopeAttr scope {int i;} : EOF {$setDynamicScopeAttr::i=3; $setDynamicScopeAttr[0]::i=3; $setDynamicScopeAttr[-0]::i=3;} ; // DYNAMIC_SCOPE_ATTR dynamicScopeAttr scope {int i;} : EOF {Console.WriteLine($dynamicScopeAttr::i);} ; // DYNAMIC_NEGATIVE_INDEXED_SCOPE_ATTR dynamicNegativeIndexedScopeAttr scope {int i;} : EOF {Console.WriteLine($dynamicNegativeIndexedScopeAttr[-1]::i);} ; // DYNAMIC_ABSOLUTE_INDEXED_SCOPE_ATTR dynamicAbsoluteIndexedScopeAttr scope {int i;} : EOF {Console.WriteLine($dynamicNegativeIndexedScopeAttr[0]::i);} ; // ISOLATED_DYNAMIC_SCOPE isolatedDynamicScope scope {int i;} : EOF {Console.WriteLine($isolatedDynamicScope.Count);} ; /* * Lexer Rules */ WS : ' ' ;