2009/12/14 Marcin Rzeźnicki <[email protected]>:
> 2009/12/13 Jim Idle <[email protected]>:
>> This usually means that your lexer token numbers are out of sync with your
>> parser tokens. Regen in correct order and make sure all tokens have been
>> declared.
>>
>
> Umm, what if I work with combined grammar? And some of literals are 'inlined'?
>

I think I know what has been causing this problem but I am scratching
my head. It seems that ANTLR lexer is, well, a strange beast.
I have a rule, say
CLASS
  :
  'class'
  ;

and below

IDENTIFIER
  :
  {Character.isJavaIdentifierStart(input.LA(1))}?=> . (
{Character.isJavaIdentifierPart(input.LA(1))}?=> . )*
  ;

(the latter rule has been questioned here, but bear with me a while, I
need it to explain my case)

Now, upon seeing input 'class' ANTLR matches IDENTIFIER because of
this gating predicate. Well, 'class' would have been a valid
identifier, of course but shouldn't it try to match 'class' based on
rules precedence?
-- 
Greetings
Marcin Rzeźnicki

List: http://www.antlr.org/mailman/listinfo/antlr-interest
Unsubscribe: 
http://www.antlr.org/mailman/options/antlr-interest/your-email-address

--

You received this message because you are subscribed to the Google Groups 
"il-antlr-interest" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/il-antlr-interest?hl=en.


Reply via email to