[antlr-interest] predicate and ambiguity
Lloyd Dupont
ld at galador.net
Sun Jul 8 08:15:01 PDT 2007
I need to write a predicate to differentiate these rule: unary and atom
===============================
unary : (PLUS|MINUS)? (LPAREN identifier RPAREN /* casts */)* atom
;
atom : identifier
| .......
| LPAREN (expression (COMMA expression)*)? RPAREN
;
==============================
Basically I need to test if "LPAREN identifier RPAREN" is a cast, i.e. if the identifier is a type.
How could I wrote a predicate to test part of might be returned?
Thinking more about it I have been able to refactor succesffully the rule above in the following (working grammar):
=============
unary : (PLUS|MINUS)? cast ;
cast : ((LPAREN identifier RPAREN) cast) => (LPAREN identifier RPAREN) cast
| primary
;
=============
(BTW, ANTLR Works is really helpful and really cool! I feel like it's much easer to overcome grammar problem with it!!!)
Anyway, I still wonder how to a predicate as above, that is I look for a structure A B C where B verify some property to read the stuff as A B C.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.antlr.org/pipermail/antlr-interest/attachments/20070709/3c23c007/attachment.html
More information about the antlr-interest
mailing list