[antlr-interest] ANTLR Grammar error - Illegal token.

rkevinburton at charter.net rkevinburton at charter.net
Mon Aug 4 09:25:28 PDT 2008


Thank you that gives me much more to go on. I think now I am looking at a look-ahead problem. I am getting the following error(s):

[11:17:59] Checking Grammar...
[11:17:59] warning(200): ECMAScript.g:1537:14: Decision can match input such as "{FUNCTION, VAR, PRIVATE, PUBLIC, STATIC, RBRACE}" using multiple alternatives: 1, 2
As a result, alternative(s) 2 were disabled for that input
[11:17:59] error(201): ECMAScript.g:1537:14: The following alternatives can never be matched: 2

[11:17:59] warning(200): ECMAScript.g:1542:2: Decision can match input such as "STATIC" using multiple alternatives: 1, 2, 3
As a result, alternative(s) 2,3 were disabled for that input
[11:17:59] warning(200): ECMAScript.g:1542:2: Decision can match input such as "VAR" using multiple alternatives: 1, 3
As a result, alternative(s) 3 were disabled for that input
[11:17:59] warning(200): ECMAScript.g:1542:2: Decision can match input such as "FUNCTION" using multiple alternatives: 2, 3
As a result, alternative(s) 3 were disabled for that input
[11:17:59] warning(200): ECMAScript.g:1542:2: Decision can match input such as "PRIVATE" using multiple alternatives: 1, 2, 3
As a result, alternative(s) 2,3 were disabled for that input
[11:17:59] warning(200): ECMAScript.g:1542:2: Decision can match input such as "PUBLIC" using multiple alternatives: 1, 2, 3
As a result, alternative(s) 2,3 were disabled for that input

Feel free to correct me if I am wrong but I think it is complaining that it doesn't know the difference (which path to take) between a static field and a static method. I think this can be solved by allowing look ahead. Can I specify look ahead for just this rule? If so how?

Thanks again.

Kevin
---- "John B. Brodie" <jbb at acm.org> wrote: 
> Greetings!
> 
> rkevinburton asked:
> >I am checking my grammar and getting the following errors:
> >
> >[09:11:21] error(100): ECMAScript.g:1530:2: syntax error: antlr: ECMAScript.g:1530:2: unexpected token: :
> >[09:11:21] error(100): ECMAScript.g:1548:2: syntax error: antlr: ECMAScript.g:1548:2: unexpected token: :
> >[09:11:21] error(100): ECMAScript.g:1555:5: syntax error: antlr: ECMAScript.g:1555:5: unexpected token: scope
> >
> >When I look at the lines indicated I don't see a problem. Moreover I
> >don't see a reference to the token that is "unexpected". Would
> >someone with more experience with ANTLR than me please look at the
> >attached grammar and see if you can see what is wrong?
> >
> >...attachment snipped...
> 
> I have not actually tried processing your grammar with ANTLR.
> 
> But I see that at those three lines referenced in the above error
> messages that you are using the phrase `(scope=STATIC)?` at the
> beginning of those three rules.
> 
> So I believe your local variable reference of `scope` clashes with
> ANTLR's notion of a dynamic scope, a mechanism for passing information
> amongst rules (see chapt 6 of Dr. Parr's book, TDAR), which uses
> `scope` as a reserved word to introduce a block of variable
> declarations at the beginning of a rule (must appear before the rule's
> `:`).
> 
> Try picking another name for your local variable.
> 
> Hope this helps...
>    -jbb
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ECMAScript.g
Type: application/octet-stream
Size: 33828 bytes
Desc: not available
Url : http://www.antlr.org/pipermail/antlr-interest/attachments/20080804/03bce42e/attachment-0001.obj 


More information about the antlr-interest mailing list