Exactly...

This happens so often that we should add some warning somewhere in these cases....


Cheers,
Jan

On 18 December 2014 at 08:36, Guillaume Larcheveque <guillaume.larcheveque@gmail.com> wrote:
So you just have to remove the #star in notA or replace it by #plus to makes it succeed only when it consume at least one character

2014-12-18 7:54 GMT+01:00 Guillaume Larcheveque <guillaume.larcheveque@gmail.com>:
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 <Smalltalk@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



--
Guillaume Larcheveque