Re: Lost in Parenthesis !
Posted By:
Julien_FURET
Posted On:
Monday, February 19, 2007 11:05 AM
Well, I've hesitated a loooong time before posting a message on this forum and as soon as I did it, I found the answer to my problem...
In fact, the best way is, in the lowest level of expression ("primaryExpression" in my case), to reference the highest level ("expression") with parenthesis.
expression :
logicalAndExpression ("or"^ logicalAndExpression)*
;
logicalAndExpression :
equalityExpression ("and"^ equalityExpression)*
;
equalityExpression :
relationalExpression
(EQUALS^ (relationalExpression | ifAffectBlock))*
;
relationalExpression :
additiveExpression
((SUP^|INF^|IE^|SE^|DIFF^) additiveExpression)*
;
additiveExpression :
multiplicativeExpression
((PLUS^ | MOINS^) multiplicativeExpression)*
;
multiplicativeExpression :
primaryExpression
((MUL^ | DIV^ | MOD^ ) primaryExpression)*
;
primaryExpression :
(fonction4GL) => fonction4GlBlock
| (action4GL) => actionBlock
| (AVAILABLE) => AVAILABLE identTable
| (LOCKED) => LOCKED identTable
| identTable
| constant
| LPAREN! (expression | ifAffectBlock) RPAREN!
;
Hope it'll help !