Updated to PetitCompiler-JanKurs.118, PetitCompiler-Tests-JanKurs.46, PetitCompiler-Extras-Tests-JanKurs.11, and PetitCompiler-Benchmarks-JanKurs.11
Name: PetitCompiler-JanKurs.118
Author: JanKurs
Time: 13-05-2015, 03:59:01.292 PM
UUID: 4a8ccd94-3131-4cc7-9098-528f8e5ea0b5
Name: PetitCompiler-Tests-JanKurs.46
Author: JanKurs
Time: 04-05-2015, 04:25:06.162 PM
UUID: 9f4cf8b7-876e-4a13-9579-b833f016db66
Name: PetitCompiler-Extras-Tests-JanKurs.11
Author: JanKurs
Time: 13-05-2015, 04:27:27.940 PM
UUID: e9f30c31-fbd0-4e96-ad2a-868f88d20ea8
Name: PetitCompiler-Benchmarks-JanKurs.11
Author: JanKurs
Time: 13-05-2015, 02:21:49.932 PM
UUID: 6a23fd1e-a86f-46db-8221-cc41b778d32c
"{ Package: 'stx:goodies/petitparser/compiler' }"
"{ NameSpace: Smalltalk }"
Object subclass:#PPCCompilerTokenRememberStrategy
instanceVariableNames:'compiler'
classVariableNames:''
poolDictionaries:''
category:'PetitCompiler-Compiler'
!
!PPCCompilerTokenRememberStrategy class methodsFor:'instance creation'!
on: aPPCCompiler
^ self new
compiler: aPPCCompiler;
yourself
! !
!PPCCompilerTokenRememberStrategy methodsFor:'accessing'!
compiler: aPPCCompiler
compiler := aPPCCompiler
! !
!PPCCompilerTokenRememberStrategy methodsFor:'as yet unclassified'!
smartRemember: parser to: variableName
parser isContextFree ifTrue: [
compiler codeAssign: 'context lwRemember.'
to: variableName.
] ifFalse: [
compiler codeAssign: 'context remember.'
to: variableName.
]
!
smartRestore: parser from: mementoName
parser isContextFree ifTrue: [
compiler add: 'context lwRestore: ', mementoName, '.'.
] ifFalse: [
compiler add: 'context restore: ', mementoName, '.'.
].
! !