[antlr-interest] distinguishing between DIV and regular expression
    Anakreon Mendis 
    anakreonmejdi at yahoo.gr
       
    Wed Apr  5 02:42:42 PDT 2006
    
    
  
I have a little problem with a lexer and I hope you could help.
The problem is the two tokens start with the same simbol.
I have
DIV : '/';
and regex:
REG_EXP :
'/' COMMON_REG   (COMMON_REG | INNER_REG)* '/' ('g' | 'm' | 'i')*
;
When the code:
a = b/c;
the lexer thinks that '/' starts a regular expression.
This is wrong ofcourse and the parsing fails.
Any suggestions how to resolve this problem?
This is a failed attemt I've done:
DIV_OR_REG:
        '/' (
            (' ' | '\t') { _ttype = DIV; $setText("/");}
            | COMMON_REG   (COMMON_REG | INNER_REG)*
            '/'
            ('g' | 'm' | 'i')* { _ttype = REG_EXP;}
            | { _ttype = DIV; }
        );
protected DIV:;
protected REG_EXP:;
One thought I had is to create a lexer for regex
and control would be delivered to it whenever a '/'
character is found. If that lexer failed to parse
the input, then the '/' would be set to type DIV.
I hope there is a easier solution.
Anakreon
-- 
Three words describe our society:homo homini lupus
    
    
More information about the antlr-interest
mailing list