compiler/tests/PPCMockCompiler.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Tue, 16 Jun 2015 06:45:26 +0100
changeset 489 0ca7a70db0f5
parent 452 9f4558b3be66
child 524 f6f68d32de73
permissions -rw-r--r--
Fix in codegen for inlined sequence nodes. For inlined sequence nodes, generate nested ifs rather than sequential code which does not work when inlined. The reason is that #codeReturn: in inline generates instvar assignment, not method return, so in sequential code the next child of a sequence will be probed even if previous failed. If that happends, the whole sequence fail and therefore we must generate nested ifs to correctly handle this w.r.t. inlining.

"{ Package: 'stx:goodies/petitparser/compiler/tests' }"

"{ NameSpace: Smalltalk }"

Object subclass:#PPCMockCompiler
	instanceVariableNames:'lines'
	classVariableNames:''
	poolDictionaries:''
	category:'PetitCompiler-Tests-Core'
!


!PPCMockCompiler class methodsFor:'instance creation'!

new
    "return an initialized instance"

    ^ self basicNew initialize.
! !

!PPCMockCompiler methodsFor:'accessing'!

lines
    
    ^ lines
!

lines: anObject
    
    lines := anObject
! !

!PPCMockCompiler methodsFor:'as yet unclassified'!

add: string
    lines add: string
!

addConstant: object as: id
    "TODO"
! !

!PPCMockCompiler methodsFor:'initialization'!

initialize
    super initialize.
    lines := OrderedCollection new.
! !

!PPCMockCompiler class methodsFor:'documentation'!

version_HG

    ^ '$Changeset: <not expanded> $'
! !