]- yep it work, i ever tried several other variants that worked too.. the main problem 
(not a big one) is that if I use
<leftop:..> directive the @item access to separate elements is differnt/harder (which 
is normal as we know how it work) i.e. @item is a mulidimentional array and become 
deeper and deeper as the expression become more complex.
I just want a flattened string of all and in this case I have to make a complex 
for-in-for cycle.

expression  : <leftop: andExpr 'or' andExpr> { "$item[1][0] $item[1][2]" }  

or some such..(print Dumper [EMAIL PROTECTED] gives better idea).
In my case I saw that it will be easier to just use s/// instead of grammar, but never 
mind it was a good exersice to understan a little bit of the problems with rescursions 
:") in RecDescent...

|I could be wrong of course, I didnt look into it that deeply. But it seems
|to me that the grammar
|
|expression  : <leftop: andExpr 'or' andExpr>
|andExpr     : <leftop: notExpr 'and' notExpr>
|notExpr     : 'not' brackExpr | brackExpr
|brackExpr   : '(' expression ')' |  comparison
|comparison  : identifier compType identifier
|compType    : '=' | '>' | '<' | '>=' | '<='
|identifier  : fieldName | number
|fieldName   : /[a-z]+/
|number      : /\d+/
|
|works fine. (At least off the top of my head I couldnt build an expression
|that would break it.)
|
|Anyway, the below link documents a mechanical means of eliminating left
|recursion from a PRD grammar. And has lots of links to better articles on
|the subject.
|
|  http://perlmonks.org/index.pl?node_id=153155
|
|Yves
|

Reply via email to