Does your smpl_arg rule return a value that is called label? If you post the rules it might help. I use $st and custom return values all the time in java based parsers. The other option is to just add the label to your list when you are in the smpl_arg rule itself.
Jim > -----Original Message----- > From: [email protected] [mailto:antlr-interest- > [email protected]] On Behalf Of Bill Andersen > Sent: Tuesday, August 10, 2010 3:01 PM > To: antlr-interest > Subject: [antlr-interest] Stringtemplate / attribute mixup > > Hi Folks > > I have a rule, called 'alt', in a grammar with template output > > alt > scope { > int argNum; > } > @init { > List<String> labels = new LinkedList<String>(); } > : ^(LIST_ALT { $alt::argNum = 0; } > ( args+=smpl_arg { labels.add($smpl_arg.label); } )* > larg=list_arg?) > { $rule::altNum++; } > -> listAlt(args={$args},larg={$larg.st}) > ; > > Now, the args attribute is doing the accumulation of the templates being > built by smpl_arg but I need to get some more information from smpl_arg, > namely it's 'label' attribute, and collect those up into the list 'labels' > > When I try to do the above I get an error in the generated Java > > labels.add((args!=null?args.label:null)); > > "args.label cannot be resolved or is not a field" > > I tried using $args.label and $arg.label (the last I was sure would not work but > I had to try). Can anyone tell me how to do this without resorting to adding > another list to catch the STs emitted by 'smpl_arg' via the .st attr? > > Thanks > > .bill > > > List: http://www.antlr.org/mailman/listinfo/antlr-interest > Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your- > email-address List: http://www.antlr.org/mailman/listinfo/antlr-interest Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address -- You received this message because you are subscribed to the Google Groups "il-antlr-interest" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/il-antlr-interest?hl=en.
