diff -r 711c8bc1ec04 -r 6316a98b7150 compiler/PPCCodeBlock.st --- 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 " + "Modified: / 02-06-2015 / 00:06:32 / Jan Vrany " ! codeIndent