2
Phat, Smalltalk에서 PetitParser를 사용하는 방법을 배우고 있으며 교과서를 사용하여 배우고 있습니다. 교과서에는 다음과 같은 스크립트가 제공됩니다. 난 놀이터에서 그것을 인쇄 할 때 교과서의 PetitParser arithmatic 스크립트가 작동하지 않습니다. 파세 온이 싫다고 계속 말했어?
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을"무기 호입니다. 내가 뭘 잘못 했니?
'숫자'란 무엇입니까? 스 니펫에 정의 된 내용이 표시되지 않습니다. –
네가 맞다. 고맙다. 이 질문을 볼 수만 있다면 동일한 코드를 사용했지만 나눗셈 및 곱셈 방법도 추가했습니다. http://stackoverflow.com/questions/42034072/petitparser-evaluator-not-working-properly –