PPCConfiguration refactoring: [2/10]: introduced PPCCompilationContext
Moved parser class/scanner class instvars from PPCConfiguration subclasses
to the context. Made PPCConfiguration to keep an instance of context.
This is a preparation for having only one PPCConfiguration-like class.
"{ Package: 'stx:goodies/petitparser/compiler' }"
"{ NameSpace: Smalltalk }"
Object subclass:#PPCCompilationContext
instanceVariableNames:'parserClass scannerClass'
classVariableNames:''
poolDictionaries:''
category:'PetitCompiler-Core'
!
!PPCCompilationContext class methodsFor:'instance creation'!
new
"return an initialized instance"
^ self basicNew initialize.
! !
!PPCCompilationContext methodsFor:'accessing'!
parserClass
"Return parser class as PPCClass"
parserClass isNil ifTrue:[
parserClass := PPCClass new.
].
^ parserClass
"Created: / 24-08-2015 / 23:58:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
scannerClass
"Return scanner class as PPCClass"
scannerClass isNil ifTrue:[
scannerClass := PPCClass new.
"Both parser class and scanner class must share the
same ID generator in order to to use same names
for tokens."
scannerClass idGen: self parserClass idGen
].
^ scannerClass
"Created: / 24-08-2015 / 23:59:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !