[antlr-interest] Re: Getting at the token text in a parser
offline314159
offline at shaw.ca
Mon Mar 1 17:26:15 PST 2004
--- In antlr-interest at yahoogroups.com, "lgcraymer" <lgc at m...> wrote:
> $getText works in the lexer, not in the parser--in the lexer, there is
> text associated with a rule, but not in the parser.. What you want to
> do is label the AST (or Token) nodes that you want to extract text
> from--say
> v:value { #v.getText(); }
>
> (assuming Java, not C++).
So sounds good, but if that's the case, what's the deal with this not
working? If i have this here: (note that group is just a basic word
rule, nothing fancy)
groups
returns [String g]
:
grp:group {g.append(grp);} ( DOT group )*
;
When i try to run this code, antlr generates the parser but when it
hits this point i get this:
java.lang.Error: Unresolved compilation problem:
grp cannot be resolved
at aimedia.vcard.util.parser.VCardParser.groups(VCardParser.java:273)
And the surrounding code is:
public final String groups() throws RecognitionException,
TokenStreamException {
String g;
try { // for error handling
group();
g.append(grp);
{
_loop2607:
do {
if ((LA(1)==DOT)) {
match(DOT);
group();
}
else {
break _loop2607;
}
} while (true);
}
}
catch (RecognitionException ex) {
reportError(ex);
consume();
consumeUntil(_tokenSet_4);
}
return g;
}
how do i make that identifier work?
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/antlr-interest/
<*> To unsubscribe from this group, send an email to:
antlr-interest-unsubscribe at yahoogroups.com
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
More information about the antlr-interest
mailing list