[antlr-interest] lexing expression ('a'..'z')+ not matching single character input
    John B. Brodie 
    jbb at acm.org
       
    Wed Dec 13 11:02:10 PST 2006
    
    
  
>Thanks to everyone for the replies.
You are welcome.
>At risk of permanently offending the entire mailing list, i'll include 
>the grammar file in its entirety (since I feel it's far more likely I'm 
>missing something than there is a genuine bug in ANTLR).
No offense taken here, everyone struggles to learn a new tool from
time to time. and I'm certainly no exception to that ;-)
>The input text is a sequence format for carbohydrate structures, some 
>samples follow. "Identifiers" in this grammar are always lower-case, and 
>adhere to the grammar "('a'-'z')+ ('-' ('a'-'z')+)*".
>
>.....examples and grammar snipped.....
You have most of the single lowercase letters specified to be KEYWORDS
of your language.
Take "n", the first error you find, for example. It is a keyword as
specified by the two rules: monosac_type_identifier and
linkage_type_identifier.  and so "n" is NOT an IDENTIFIER.
There should be lots of messages in this mailing list's archives on
how to handle keywords which also may be identifiers...
I suggest you try (re-)generating your parser and lexer and give
antlr.Tool one of the trace enable switches, either -traceLexer or
-traceParser or -trace (i think, my memory of ANTLRv2 switches is
rusty).  and re-run your tests.  you will get copious output showing
what the generated code is attempting to do during the parse.
Hope this helps...
   -jbb
    
    
More information about the antlr-interest
mailing list