[antlr-interest] newbie roblem about expressions & number representations

Duygu Altinok duygu_the_duygu at yahoo.com
Thu Dec 10 16:41:56 PST 2009


Hi , 
I have a small expression language and two types of numbers: integer and float , defined as :

protected  DIGIT : '0'|'1'|'2'|'3'|'4'|'5'|'6'|'7'|'8'|'9';



INT :    (DIGIT )+
    ;

FLOAT
    :   ('0'..'9')+ '.' ('0'..'9')* (EXPONENT)?
    |   '.' ('0'..'9')+ (EXPONENT)?
    |   ('0'..'9')+ EXPONENT
    ;
protected:
EXPONENT : ('e'|'E') ('+'|'-')? ('0'..'9')+ ;

var_name : ID ;

ID  :    ('a'..'z'|'A'..'Z') ('a'..'z'|'A'..'Z'|'0'..'9'|('_'(('a'..'z')|('A'..'Z')|('0'..'9'))))*


alg_expr  :  expr1 ;
expr1 : a_expr ((LEQ| NEQ | LT | ISEQ) a_expr)*;
a_expr  :        term ((PLUS | MINUS) term)*;

term :  factor ((MULT | DIV ) factor)* ;

factor :  var_name | INT  |FLOAT  | LPAREN expr1  RPAREN  ;


For instance when I say 16 + 1.1  it gives a huge parsing error:

line 1:23: expecting '.', found ' '
    at CFlatLexer.nextToken(CFlatLexer.java:245)
    at antlr.TokenBuffer.fill(TokenBuffer.java:69)
    at antlr.TokenBuffer.LA(TokenBuffer.java:80)
    at antlr.LLkParser.LA(LLkParser.java:52)
    at CFlatParser.factor(CFlatParser.java:1185)
    at CFlatParser.term(CFlatParser.java:1126)
    at CFlatParser.a_expr(CFlatParser.java:1067)
    at CFlatParser.expr1(CFlatParser.java:992)
    at CFlatParser.alg_expr(CFlatParser.java:258)
    at CFlatParser.var_assignment(CFlatParser.java:872)
    at CFlatParser.assignment(CFlatParser.java:776)
    at CFlatParser.exx(CFlatParser.java:727)
    at CFlatParser.exprr(CFlatParser.java:1724)
    at CFlatParser.compound_f(CFlatParser.java:1789)
    at CFlatParser.func_body(CFlatParser.java:1550)
    at CFlatParser.func_defn(CFlatParser.java:1406)
    at CFlatParser.program(CFlatParser.java:2293)
    at Main.main(Main.java:13)
line 1:23: expecting '.', found ' '

I'm using antlr v2 ,  any help is appreciated. 
Thanx in advance,



      
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.antlr.org/pipermail/antlr-interest/attachments/20091210/f434f78f/attachment.html 


More information about the antlr-interest mailing list