Ich lerne, wie man PetitParser auf Pharo, Smalltalk benutzt und ich benutze ein Lehrbuch, um es zu lernen. Im Lehrbuch wird das folgende Skript angegeben.PetitParser arithmetisches Skript aus dem Lehrbuch funktioniert nicht. Es sagt, ParseOn ist nicht?
term := PPDelegateParser new.
prod := PPDelegateParser new.
prim := PPDelegateParser new.
term setParser: (prod , $+ asParser trim , term ==> [ :nodes | nodes first + nodes last ])/prod.
prod setParser: (prim , $*asParser trim , prod ==> [ :nodes | nodes first*nodes last ])/prim.
prim setParser: ($(asParser trim , term , $) asParser trim ==> [ :nodes | nodes second ])/number.
start := term end.
start parse:'1+2*3'.
jedoch, wenn ich versuche, es auf dem Spielplatz zu drucken i erhalten MessageNotUnderstood: Empfänger von "parseOn:" ist gleich Null. Was habe ich falsch gemacht?
Was ist 'Nummer'? Ich sehe es nicht im Snippet definiert. –
Sie haben Recht, danke. Wenn Sie diese Frage mit demselben Code betrachten könnten, fügte ich auch eine Divisions- und Multiplikationsmethode hinzu. http://stackoverflow.com/questions/42034072/petitparser-evaluator-not-working-properly –