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 -- [email protected]
Home-Office (503) 982-0906
_______________________________________________
antlr-dev mailing list
[email protected]
http://www.antlr.org/mailman/listinfo/antlr-dev