[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