With x, x it will only go to 2 level deep.

With the plus you allow to go as far as the x rule succeed and your x rule
always succeed because notA always succeed due to the star without
consuming anything so you fall into infinite loop.

2014-12-18 6:47 GMT+01:00 James Foster <smallt...@jgfoster.net>:
>
> There is something about plus that I don’t understand. In the following
> code if I parse for (x , x) then I get what I expect. If I parse for (x
> plus) then the image hangs. What am I doing wrong?
>
> James
>
> | a notA x y |
> a := $a asParser.
> notA := $a asParser negate star flatten.
> x := a / notA.
> y := x , x.     “works fine”
> y := x plus. “never finishes”
> ^y end parse: 'ab’.
>
>
>

-- 
*Guillaume Larcheveque*

Reply via email to