equal
deleted
inserted
replaced
30 ! ! |
30 ! ! |
31 |
31 |
32 !PPCTokenCodeGenerator methodsFor:'visiting'! |
32 !PPCTokenCodeGenerator methodsFor:'visiting'! |
33 |
33 |
34 visitOptionalNode: node |
34 visitOptionalNode: node |
35 compiler codeStoreValueOf: [ self visit: node child ] intoVariable: self retvalVar. |
35 compiler |
|
36 codeAssignParsedValueOf:[ self visit:node child ] |
|
37 to:self retvalVar. |
36 compiler codeAssign: 'false.' to: 'error'. |
38 compiler codeAssign: 'false.' to: 'error'. |
37 compiler codeReturn. |
39 compiler codeReturn. |
38 ! |
40 ! |
39 |
41 |
40 visitTokenNode: node |
42 visitTokenNode: node |
59 self addGuard: node ifTrue: nil ifFalse: [ compiler addOnLine: '^ false' ]. |
61 self addGuard: node ifTrue: nil ifFalse: [ compiler addOnLine: '^ false' ]. |
60 ]. |
62 ]. |
61 |
63 |
62 |
64 |
63 compiler codeAssign: 'context position + 1.' to: startVar. |
65 compiler codeAssign: 'context position + 1.' to: startVar. |
64 compiler codeStoreValueOf: [ self visit: node child ] intoVariable: #whatever. |
66 compiler codeAssignParsedValueOf:[ self visit:node child ] to:#whatever. |
65 compiler add: 'error ifTrue: [ ^ error := false ].'. |
67 compiler add: 'error ifTrue: [ ^ error := false ].'. |
66 |
68 |
67 compiler codeAssign: 'context position.' to: endVar. |
69 compiler codeAssign: 'context position.' to: endVar. |
68 |
70 |
69 compiler codeTranscriptShow: 'current token type: ', id storeString. |
71 compiler codeTranscriptShow: 'current token type: ', id storeString. |
108 stop: context position |
110 stop: context position |
109 value: nil.' |
111 value: nil.' |
110 to: 'currentTokenValue := ', self retvalVar. |
112 to: 'currentTokenValue := ', self retvalVar. |
111 |
113 |
112 compiler addComment: 'Consume Whitespace:'. |
114 compiler addComment: 'Consume Whitespace:'. |
113 compiler codeStoreValueOf: [ self visit: node whitespace ] intoVariable: #whatever. |
115 compiler |
|
116 codeAssignParsedValueOf:[ self visit:node whitespace ] |
|
117 to:#whatever. |
114 compiler nl. |
118 compiler nl. |
115 |
119 |
116 compiler add: '^ true'. |
120 compiler add: '^ true'. |
117 |
121 |
118 self fromTokenMode. |
122 self fromTokenMode. |
140 node allNodes size > 2 ifTrue: [ |
144 node allNodes size > 2 ifTrue: [ |
141 self addGuard: node ifTrue: nil ifFalse: [ compiler addOnLine: '^ false' ]. |
145 self addGuard: node ifTrue: nil ifFalse: [ compiler addOnLine: '^ false' ]. |
142 ]. |
146 ]. |
143 |
147 |
144 compiler codeAssign: 'context position + 1.' to: startVar. |
148 compiler codeAssign: 'context position + 1.' to: startVar. |
145 compiler codeStoreValueOf: [ self visit: node child ] intoVariable: #whatever. |
149 compiler codeAssignParsedValueOf:[ self visit:node child ] to:#whatever. |
146 |
150 |
147 compiler add: 'error ifTrue: [ ^ error := false ].'. |
151 compiler add: 'error ifTrue: [ ^ error := false ].'. |
148 |
152 |
149 compiler codeAssign: 'context position.' to: endVar. |
153 compiler codeAssign: 'context position.' to: endVar. |
150 |
154 |
151 compiler addComment: 'Consume Whitespace:'. |
155 compiler addComment: 'Consume Whitespace:'. |
152 compiler codeStoreValueOf: [ self visit: node whitespace ] intoVariable: #whatever. |
156 compiler |
|
157 codeAssignParsedValueOf:[ self visit:node whitespace ] |
|
158 to:#whatever. |
153 compiler nl. |
159 compiler nl. |
154 |
160 |
155 |
161 |
156 compiler codeTranscriptShow: 'current token type: ', id storeString. |
162 compiler codeTranscriptShow: 'current token type: ', id storeString. |
157 compiler codeAssign: id storeString, '.' to: 'currentTokenType'. |
163 compiler codeAssign: id storeString, '.' to: 'currentTokenType'. |