Portability fixes
* do not use Object>>asString. Not all Smalltalks implement it.
* do not use Object>>name. Not all Smalltalks implement it.
* do not use Dictionary keysAndValuesRemove:. Not all Smalltalks implement it.
* do not use Class>>methods The semantics is different among Smalltalks.
Use `Class methodDictionary values` instead.
* do not modify dictionary in #at:ifAbsentPut: block!
"{ Package: 'stx:goodies/petitparser/compiler' }"
"{ NameSpace: Smalltalk }"
Object subclass:#PPCPluggableConfiguration
instanceVariableNames:'block base'
classVariableNames:''
poolDictionaries:''
category:'PetitCompiler-Core'
!
!PPCPluggableConfiguration class methodsFor:'as yet unclassified'!
on: aBlock
^ self on: aBlock base: PPCConfiguration default
!
on: aBlock base: aPPCCOnfiguration
^ self new
block: aBlock;
base: aPPCCOnfiguration;
yourself
! !
!PPCPluggableConfiguration methodsFor:'as yet unclassified'!
arguments: args
^ base arguments: args
!
base: aPPCConfiguration
base := aPPCConfiguration
!
block: aBlock
block := aBlock
!
compile: whatever
base input: whatever.
block value: base.
^ base ir
!
input: whatever
^ base input: whatever
!
invokePhases
^ block value: base
! !