> Hello,

Greetings!

> why such grammar doesn't work properly:
> ---------------------------------------------------------------------------
>----------- expr    :
>         operand ((oper) operand)*
                            ^^^^^^
I assume you mean the lexer rule OPER here?
>         ;
> //Correct operands
> operand :
>         INT
>         ;
> OPER: ('+'|'-'|'*'|'/')
>         ;
> INT     :       
>         ('0'..'9')+
>         ;
> ---------------------------------------------------------------------------
>-----------
>
> > t+1
    ^^^
your grammar does specify anything for how to handle the character 't'

>
> line 0:3 mismatched input '+' expecting EOF
>
> But if I replace the Lexer rule by Parser rule:
>
> oper: ('+'|'-'|'*'|'/');
>
> All work as it should. Why I should't use Lexer rule with alternatives ?
>

works for me with the following changes: (1) changed reference to oper to be 
OPER in the rule expr, and (2) changed the test input to be "1+1"

i am using ANTLR v3.1 from 12 August 2008.

my test source grammar is this:

//-----cut here-----

> Thank you


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"il-antlr-interest" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/il-antlr-interest?hl=en
-~----------~----~----~----~------~----~------~--~---

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

Reply via email to