Spaces:
Running
Running
File size: 663 Bytes
8f3f8db |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
*vmmakerjs
emitJSCodeOn: aStream level: level generator: aCodeGen
| indent |
indent := (String new: level) collect: [ :ch | Character tab ].
aStream nextPutAll: 'switch ('.
expression asExpression emitJSCodeOn: aStream level: level generator: aCodeGen.
aStream nextPutAll: ') {'; cr.
1 to: cases size do: [ :i |
(firsts at: i) to: (lasts at: i) do: [ :caseIndex |
aStream nextPutAll: indent, 'case ', caseIndex printString, ':'; cr.
].
(cases at: i) emitJSCodeOn: aStream level: level + 1 generator: aCodeGen.
aStream nextPutAll: indent; tab; nextPutAll: 'break;'.
aStream cr.
].
level timesRepeat: [ aStream tab ].
aStream nextPutAll: '}'. |