Tests refactoring - use generated test cases to make sure all posibilities are tested.
Do not generate resource for all combinations, use PPCSetUpBeforeTearDownAfterResource
instead that delegates parser compilation to the testcase itself (it calls it's #setUpBefore
method).
"{ 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, '.'.
].
! !