[antlr-interest] please help on simple parser antlr v3

Michiel Vermandel Michiel_Vermandel at axi.be
Wed Sep 27 05:30:24 PDT 2006


Sorry,

It would have been better to test the grammar first without the WS rule in 
the QOUTES_STRING rule since I still get warnings (less though) and now I 
can't
figure out how to solve this.
Can someone please tell me how to prevent the multiple alternatives 
warnings?

------------------------new grammar---------------------------

grammar TestParser;
options {k=2; backtrack=true; memoize=true;}


statement: identifier | quoted_string ;

identifier:      IDENTIFIER;
 
quoted_string: QUOTED_STRING;


fragment
AZ_CHAR: 'a' .. 'z' | 'ç' | 'é' | 'è'| 'ê'  | 'à';

fragment
SPECIAL_CHAR: '_' | '$' | '#' ;

fragment
ANY_CHAR: AZ_CHAR | SPECIAL_CHAR;

IDENTIFIER:  ( AZ_CHAR | (N)+)  ANY_CHAR  (ANY_CHAR | N)*;
 
N:  ('0' .. '9')+;

WS      :       (' '
                |       '\t'
                |       ('\n'|'\r'('\n')?)
                )+
        { channel=99; };
 
QUOTED_STRING: '\'' (  ~('\'') | '\'' '\'' )* '\'';

--------------------remaining warnings---------------------------------

[14:26:53] test1.g:28:15: Decision can match input such as "'\n'" using 
multiple alternatives: 1, 2
As a result, alternative(s) 2 were disabled for that input
[14:26:53] C:\Documents and Settings\mvrm\My 
Documents\Antlr\grammars\test1.g:28:15: Decision can match input such as 
"'\n'" using multiple alternatives: 1, 2
As a result, alternative(s) 2 were disabled for that input








Hi, 

I started converting my v2 grammars to v3 and ran against some warnings 
when generating code for a very simple test grammar. 
Below, you find the parser, followed by the warnings. 
This grammar is a part of a grammar in v2 which I am converting. 

In v2 the rule QUOTED_STRING was: 

QUOTED_STRING: '\'' ( WS | '\'' '\'' | ~('\'') )* '\'';         

Now in v3 I get this list of warnings (see below). 
In v2 the WS was needed in the QUOTED_STRING rule in order to increment 
the line counter properly. 
I think I can solve the warnings by leaving out the WS rule since in Antlr 
v3 I do not need to bother about incrementing the line counter. 

So, Can please someone confirm that I am right in just leaving out the WS 
rule from the QUOTED_STRING rule? 

Thanks! 


--------------------------------------------------------------------- 


grammar TestParser; 
options {k=2; backtrack=true; memoize=true;} 


statement: identifier | quoted_string ; 

identifier:         IDENTIFIER; 
 
quoted_string: QUOTED_STRING; 


fragment 
AZ_CHAR: 'a' .. 'z' | 'ç' | 'é' | 'è'| 'ê'  | 'à'; 

fragment 
SPECIAL_CHAR: '_' | '$' | '#' ; 

fragment 
ANY_CHAR: AZ_CHAR | SPECIAL_CHAR; 

IDENTIFIER:  ( AZ_CHAR | (N)+)  ANY_CHAR  (ANY_CHAR | N)*; 
 
N:  ('0' .. '9')+; 

WS        :        (' ' 
                |        '\t' 
                |        ('\n'|'\r'('\n')?) 
                )+ 
        { channel=99; }; 
 
QUOTED_STRING: '\'' ( WS | '\'' '\'' | ~('\'') )* '\'';         

------------------------------------------------------------------------------- 


[14:09:37] test1.g:28:15: Decision can match input such as "'\n'" using 
multiple alternatives: 1, 2 
As a result, alternative(s) 2 were disabled for that input 
[14:09:37] test1.g:32:48: Decision can match input such as "' '" using 
multiple alternatives: 1, 3 
As a result, alternative(s) 3 were disabled for that input 
[14:09:37] test1.g:32:48: Decision can match input such as "'\t'" using 
multiple alternatives: 1, 3 
As a result, alternative(s) 3 were disabled for that input 
[14:09:37] test1.g:32:48: Decision can match input such as "'\r'" using 
multiple alternatives: 1, 3 
As a result, alternative(s) 3 were disabled for that input 
[14:09:37] test1.g:32:48: Decision can match input such as "'\n'" using 
multiple alternatives: 1, 3 
As a result, alternative(s) 3 were disabled for that input 
[14:09:37] C:\Documents and Settings\mvrm\My 
Documents\Antlr\grammars\test1.g:28:15: Decision can match input such as 
"'\n'" using multiple alternatives: 1, 2 
As a result, alternative(s) 2 were disabled for that input 
[14:09:37] C:\Documents and Settings\mvrm\My 
Documents\Antlr\grammars\test1.g:32:48: Decision can match input such as 
"' '" using multiple alternatives: 1, 3 
As a result, alternative(s) 3 were disabled for that input 
[14:09:37] C:\Documents and Settings\mvrm\My 
Documents\Antlr\grammars\test1.g:32:48: Decision can match input such as 
"'\t'" using multiple alternatives: 1, 3 
As a result, alternative(s) 3 were disabled for that input 
[14:09:37] C:\Documents and Settings\mvrm\My 
Documents\Antlr\grammars\test1.g:32:48: Decision can match input such as 
"'\r'" using multiple alternatives: 1, 3 
As a result, alternative(s) 3 were disabled for that input 
[14:09:37] C:\Documents and Settings\mvrm\My 
Documents\Antlr\grammars\test1.g:32:48: Decision can match input such as 
"'\n'" using multiple alternatives: 1, 3 
As a result, alternative(s) 3 were disabled for that input         
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.antlr.org/pipermail/antlr-interest/attachments/20060927/1336edeb/attachment-0001.html 


More information about the antlr-interest mailing list