equal
deleted
inserted
replaced
|
1 "{ Package: 'stx:goodies/petitparser/compiler' }" |
|
2 |
|
3 PPCDelegateNode subclass:#PPCPlusNode |
|
4 instanceVariableNames:'' |
|
5 classVariableNames:'' |
|
6 poolDictionaries:'' |
|
7 category:'PetitCompiler-Nodes' |
|
8 ! |
|
9 |
|
10 PPCPlusNode comment:'' |
|
11 ! |
|
12 |
|
13 !PPCPlusNode methodsFor:'as yet unclassified'! |
|
14 |
|
15 compileWith: compiler effect: effect id: id |
|
16 |
|
17 compiler startMethod: id. |
|
18 compiler addVariable: 'retval'. |
|
19 compiler addVariable: 'element'. |
|
20 |
|
21 compiler add: 'retval := OrderedCollection new.'. |
|
22 compiler add: 'element := '. |
|
23 compiler callOnLine: (child compileWith: compiler). |
|
24 compiler add: 'error ifTrue: [ ^ self error: ''at least one occurence expected'' ].'. |
|
25 compiler add: 'retval add: element.'. |
|
26 |
|
27 compiler add: 'element := '. |
|
28 compiler callOnLine: (child compileWith: compiler). |
|
29 compiler add: '[ error ] whileFalse: ['. |
|
30 compiler indent. |
|
31 compiler add: 'retval add: element.'. |
|
32 compiler add: 'element := '. |
|
33 compiler callOnLine: (child compileWith: compiler). |
|
34 compiler dedent. |
|
35 compiler add: '].'. |
|
36 compiler add: 'self clearError.'. |
|
37 compiler add: '^ retval asArray'. |
|
38 ^ compiler stopMethod. |
|
39 ! |
|
40 |
|
41 prefix |
|
42 ^ #plus |
|
43 ! ! |
|
44 |