I don't know what your grammar is supposed to be doing, but from the looks of 
it, there's a lot of confusion and unfortunately I wouldn't say that you're 
"almost done".

Are you using ANTLR because your course asks you to specifically use it and you 
have some examples and explanations of how to use it, or does your course not 
specify any particular tool and you're just using ANTLR as a tool to understand 
grammars? I ask this because of your INTEGER rule. The way you have defined it 
is not optimal for ANTLR and makes me think you grabbed it from a grammar that 
was not intended for use with ANTLR.

Your token for DIGIT and INTEGER will actually match the same input. Can you 
take a look at it and explain why?

The general problem I see is that you seem to be confused about what should be 
lexer rules and what should be parser rules, and ANTLR makes it a little 
confusing (although convenient) by allowing both in a single file. That bit of 
confusion is also what makes me suspect you've been looking at some grammars 
that were not designed for ANTLR.

Do you not have access to a professor, TA, or even a book to gain an 
understanding of the basics?



----- Original Message ----
From: Bryan S Follins <as...@mindspring.com>
To: John B. Brodie <j...@acm.org>
Cc: antlr-inter...@antlr.org
Sent: Sunday, July 19, 2009 1:10:11 PM
Subject: [antlr-interest] Can never be matched

I'm almost done with a lesson grammar but I ran into a problem   I get an
error referencing the TOKEN RULE,  which is on Line 17 (TOKEN : ID)  It also
references Line 20, where there is a blank before SEPERATOR.  

The error reads: error (line)20.1: groupassign.g(file name) (line)17:8:  The
following alternatives can never be matched: 2,3

Does anyone know what that error code means?

Code is below:

grammar groupassign;
@header{
import java.util.HashMap;
}
@members{
HashMap memory = new HashMap();
}

prog                       :               WS        
                                |              COMMENT
                                |              TOKEN;
                                
WS                         :               (' '|'\t'|'\n'|'\r\n')+{skip();};
COMMENT                         :               '//'
                                                {~('\n'|'\r'|'\r\n'))*
('\n'|'\r'|'\r\n'('\n')?)
                                                {$setType(Token.SKIP};
newline();};
TOKEN                  :               ID            
                                |              KEYWORD
                                |              LITERAL
                                |              SEPERATOR
                                |              OPERATOR;
ID                            :               (LETTER| DIGIT) (LETTER)*;
LETTER                  :               ('a'..'z'|'A'..'Z')+;
DIGIT                     :               ('0'..'9')+;
KEYWORD                           :
('boolean'|'else'|'if'|'int'|'main'|'void'|'while'|'print');
LITERAL                                :               BOOLEAN 
                                |              INTEGER;
INTEGER              :               DIGIT
                                |              INTEGER DIGIT;
SEPERATOR        :               ('('|')'|'{'|'}'|';'|',');
BOOLEAN            :               ('true'|'false');
OPERATOR          :
('='|'+'|'-'|'*'|'/'|'<'|'<='|'>'|'>='|'=='|'!='|'&&'|'||'|'!');
                                

                                


                                
                                




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


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 il-antlr-interest@googlegroups.com
To unsubscribe from this group, send email to 
il-antlr-interest+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/il-antlr-interest?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to