[antlr-interest] Can lexer rules return values?
Steve Bennett
stevagewp at gmail.com
Fri Feb 15 23:29:07 PST 2008
I was sure I read something about lexer fragment rules being able to
return values, but it doesn't seem to work. My rule:
fragment EXTENSION_TAG_OPEN returns [boolean selfclose=false]:
LT EXTENSION_NAME (SPACE* ATTR)? SPACE* (SLASH {$selfclose=true;})? GT
;
The errors:
[18:19:31] C:\antlr\mediawiki11intransitLexer.java:3262: cannot return
a value from method whose result type is void
[18:19:31] mLT(); if (failed) return selfclose;
etc.
The generated code:
// $ANTLR start EXTENSION_TAG_OPEN
public final void mEXTENSION_TAG_OPEN() throws RecognitionException {
boolean selfclose = false;
try {
// C:\\antlr\\mediawiki11intransit.g:1157:62: ( LT
EXTENSION_NAME ( ( SPACE )* ATTR )? ( SPACE )* ( SLASH )? GT )
// C:\\antlr\\mediawiki11intransit.g:1158:5: LT
EXTENSION_NAME ( ( SPACE )* ATTR )? ( SPACE )* ( SLASH )? GT
{
mLT(); if (failed) return selfclose;
etc.
Am I doing something wrong?
Steve
More information about the antlr-interest
mailing list