[antlr-interest] Problem with scope in members functions

Terence Parr parrt at cs.usfca.edu
Tue Oct 23 01:22:57 PDT 2007


On Oct 23, 2007, at 2:04 AM, Guillaume Chavanon wrote:

> Hi All.
>
> Is somebody knows why, when I write "$MyScope::MyAttribute = ...."  
> in a function in the members section, Antlr raise the following  
> exception :
>
> error(10):  internal error: scope_in_members.g :  
> java.lang.NullPointerException
> org.antlr.codegen.ActionTranslatorLexer.translateAction 
> (ActionTranslatorLexer.java:135)
> org.antlr.codegen.ActionTranslatorLexer.mSET_DYNAMIC_SCOPE_ATTR 
> (ActionTranslatorLexer.java:1131)
> org.antlr.codegen.ActionTranslatorLexer.mTokens 
> (ActionTranslatorLexer.java:2897)
> org.antlr.codegen.ActionTranslatorLexer.nextToken 
> (ActionTranslatorLexer.java:218)
> org.antlr.codegen.ActionTranslatorLexer.translateToChunks 
> (ActionTranslatorLexer.java:117)
> org.antlr.codegen.CodeGenerator.translateAction(CodeGenerator.java: 
> 870)
> org.antlr.codegen.CodeGenerator.translateActionAttributeReferencesForS 
> ingleScope(CodeGenerator.java:512)
> org.antlr.codegen.CodeGenerator.translateActionAttributeReferences 
> (CodeGenerator.java:495)
> org.antlr.codegen.CodeGenerator.genRecognizer(CodeGenerator.java:315)
> org.antlr.Tool.processGrammar(Tool.java:347)
> org.antlr.Tool.process(Tool.java:268)
> org.antlr.Tool.main(Tool.java:70)
>
>
> This is my grammar :
>
> grammar scope_in_members;
>
> scope Parag {
>     int nbWord
> }
>
> @members{
>     void incrementNbWord() {
>         $Parag::nbWord = $Parag::nbWord + 1;
>     }
> }
>

hi. It means you are calling this method w/o having a rule declaring  
"scope Parag;".

Ter



More information about the antlr-interest mailing list