compiler/PPCUniversalCodeGen.st
author Jan Vrany <jan.vrany@labware.com>
Wed, 10 Jun 2020 21:33:27 +0100
changeset 650 4c6ed0a28d18
parent 524 f6f68d32de73
permissions -rw-r--r--
Replace `ifNil:[...]` with `isNil ifTrue:[...]` The latter is optimized by compilers and therefore faster.

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

"{ NameSpace: Smalltalk }"

PPCCodeGen subclass:#PPCUniversalCodeGen
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	category:'PetitCompiler-Compiler-Codegen'
!

!PPCUniversalCodeGen methodsFor:'code generation'!

remember: parser to: variableName 
    parser isContextFree ifTrue: [ 
        self 	codeAssign: 'context lwRemember.' 
                to: variableName.
    ] ifFalse: [ 
        self  codeAssign: 'context remember.'
                to: variableName.
    ]
!

restore: parser from: mementoName
    parser isContextFree ifTrue: [ 
        self code: 'context lwRestore: ', mementoName, '.'.
    ] ifFalse: [ 
        self code: 'context restore: ', mementoName, '.'.
    ]
! !