2
私はPharo、SmalltalkでPetitParserを使用する方法を学習しており、それを学ぶために教科書を使用しています。教科書には、以下のスクリプトが書かれています。私は遊び場でそれを印刷しようとすると、教科書のPetitParserの算術スクリプトが機能していません。それはParseOnがnillだと言い続ける?
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'.
は、しかし、私はMessageNotUnderstoodを得る:「parseOn:」の受信機はnilです。 どうしたのですか?
「数値」とは何ですか?私はスニペットで定義されているとは思わない。 –
あなたは正しいです、よかったです。あなたはこの質問を見ることができれば、同じコードだけど、私は除算と乗算の方法を追加しました。 http://stackoverflow.com/questions/42034072/petitparser-evaluator-not-working-properly –