OK, here is what I have been able to verify about my problem. The problem occurs in my ObjC.stg templates and the offending template is: /** Define a rule label including default value */ ruleLabelDef(label) ::= <% <ruleLabelType(referencedRule=label.referencedRule)> <label.label.text> = <initValue(typeName=ruleLabelType(referencedRule=label.referencedRule))>;<\n> %>
It is invoked here: ruleLabelDefs() ::= << <[ruleDescriptor.tokenLabels, ruleDescriptor.tokenListLabels, ruleDescriptor.wildcardTreeLabels,ruleDescriptor.wildcardTreeListLabels] :{it | <labelType> *<it.label.text> = nil;}; separator="\n"> <[ruleDescriptor.tokenListLabels,ruleDescriptor.ruleListLabels,ruleDescriptor.wildcardTreeListLabels] :{it | AMutableArray *list_<it.label.text> = nil;}; separator="\n" <ruleDescriptor.ruleLabels:ruleLabelDef(); separator="\n"> <ruleDescriptor.ruleListLabels:{ll|ANTLRParserRuleReturnScope *<ll.label.text> = nil;}; separator="\n" and ruleLabelDefs() is invoked from: synpredRule(ruleName, ruleDescriptor, block, description, nakedBlock) ::= ... and also from: rule(ruleName,ruleDescriptor,block,emptyRule,description,exceptions,finally,memoize) ::= The templates "ruleLabelDef(label)" is identical to the template in Java.stg as is the invocation of it "<ruleDescriptor.ruleLabels:ruleLabelDef(); separator="\n">" The wierd thing is that it works in the context of rule(...) but not in the context of synpred(...). I can't find where synpred(...) and rule(...) are invoked??? Does anybody know??? Thanks, Alan --- Alan Condit 1085 Tierra Ct. Woodburn, OR 97071 Email -- acon...@ipns.com Home-Office (503) 982-0906
_______________________________________________ antlr-dev mailing list antlr-dev@antlr.org http://www.antlr.org/mailman/listinfo/antlr-dev