--- a/compiler/PPCCodeBlock.st Mon Jun 01 23:15:52 2015 +0100
+++ b/compiler/PPCCodeBlock.st Tue Jun 02 00:16:55 2015 +0100
@@ -37,14 +37,31 @@
!PPCCodeBlock methodsFor:'code generation'!
-code: aStringOrBlock
- aStringOrBlock isString ifTrue:[
- buffer nextPutAll: aStringOrBlock
- ] ifFalse:[
- aStringOrBlock value
+code: aStringOrBlockOrRBParseNode
+ aStringOrBlockOrRBParseNode isString ifTrue:[
+ buffer nextPutAll: aStringOrBlockOrRBParseNode
+ ] ifFalse:[
+ (aStringOrBlockOrRBParseNode isKindOf: RBProgramNode) ifTrue:[
+ aStringOrBlockOrRBParseNode isSequence ifTrue:[
+ aStringOrBlockOrRBParseNode temporaries do:[:e |
+ self allocateTemporaryVariableNamed: e name.
+ ].
+ aStringOrBlockOrRBParseNode statements do:[:e|
+ buffer nextPutAll: e formattedCode; nextPut: $..
+ self nl; codeIndent.
+ ].
+
+ ] ifFalse:[
+ buffer nextPutAll: aStringOrBlockOrRBParseNode formattedCode.
+ ].
+
+ ] ifFalse:[
+ aStringOrBlockOrRBParseNode value
+ ].
].
"Created: / 01-06-2015 / 21:07:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 02-06-2015 / 00:06:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
codeIndent