[antlr-interest] Assignment from token reference only allowed in lexer

karl wettin kalle at snigel.net
Wed Mar 29 12:06:41 PST 2006


28 mar 2006 kl. 21.00 skrev karl wettin:


> Basically I'm trying to use Antlr as a natrual language parser.
>

I've been suggested to move most of my lexer code to a parser. So I  
did. But now I get this error I don't understand.

Assignment from token reference only allowed in lexer.

What am I supposed to do? I can't more the rule to the Parser, it has  
a 0..9.

class TestParser extends Parser;
options {
	k=1;
}

expr
{int v;}
	: v = EN_NATURAL_NUMBER
	;

class TestLexer extends Lexer;
options {
	k=2;
	testLiterals=false;
}

protected EN_NATURAL_NUMBER returns [int v] :
     | ('0'..'9')+ { v=Integer.valueOf($getText); }
     | "one"     { v=1; }
     | "two"     { v=2; }
     | "three"   { v=3; }
     | "four"    { v=4; }
     | "five"    { v=5; }
     | "six"     { v=6; }
     | "seven"   { v=7; }
     | "eight"   { v=8; }
     | "nine"    { v=9; }
     | "ten"     { v=10;}
     ;




More information about the antlr-interest mailing list