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

karl wettin kalle at snigel.net
Wed Mar 29 14:38:20 PST 2006


29 mar 2006 kl. 22.06 skrev karl wettin:

> 28 mar 2006 kl. 21.00 skrev karl wettin:
>
>
> 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.

I move only the one, two... and keep the 0..9 in the lexer, of course.





> 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