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