equal
deleted
inserted
replaced
1 "{ Package: 'stx:goodies/petitparser/tests' }" |
1 "{ Package: 'stx:goodies/petitparser/tests' }" |
|
2 |
|
3 "{ NameSpace: Smalltalk }" |
2 |
4 |
3 PPCompositeParser subclass:#PPArithmeticParser |
5 PPCompositeParser subclass:#PPArithmeticParser |
4 instanceVariableNames:'terms addition factors multiplication power primary parentheses |
6 instanceVariableNames:'terms addition factors multiplication power primary parentheses |
5 number' |
7 number' |
6 classVariableNames:'' |
8 classVariableNames:'' |
36 ==> [ :value | value asNumber ] |
38 ==> [ :value | value asNumber ] |
37 ! |
39 ! |
38 |
40 |
39 parentheses |
41 parentheses |
40 ^ $( asParser trim , terms , $) asParser trim |
42 ^ $( asParser trim , terms , $) asParser trim |
41 ==> [ :nodes | nodes second ] |
43 ==> [ :nodes | nodes at: 2 ] |
42 ! |
44 ! |
43 |
45 |
44 power |
46 power |
45 ^ (primary separatedBy: $^ asParser trim) |
47 ^ (primary separatedBy: $^ asParser trim) |
46 foldRight: [ :a :op :b | a raisedTo: b ] |
48 foldRight: [ :a :op :b | a raisedTo: b ] |