compiler/PPCUniversalConfiguration.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Sat, 29 Aug 2015 07:56:14 +0100
changeset 534 a949c4fe44df
parent 532 132d7898a2a1
permissions -rw-r--r--
PPCConfiguration refactoring: [6/10]: use #runPass: instead of self-sends. ...in PPCConfiguration>>invokePhases. This is a preparation for removing #invokePhases completely and configuring the compilation via list of phases.

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

"{ NameSpace: Smalltalk }"

PPCConfiguration subclass:#PPCUniversalConfiguration
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	category:'PetitCompiler-Core'
!


!PPCUniversalConfiguration methodsFor:'accessing - defaults'!

defaultParserSuperclass
    ^ PPCompiledParser

    "Modified: / 01-09-2015 / 08:47:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!PPCUniversalConfiguration methodsFor:'compiling'!

invokePhases

    self runPass: PPCTokenDetector.

    context options cacheFirstFollow ifTrue:[
        self runPass: PPCCacheFirstFollowPass  
    ].  
    context options specialize ifTrue:[
        self runPass: PPCSpecializingVisitor
    ].  

    self runPass: PPCRecognizerComponentDetector .

    context options specialize ifTrue:[
        self runPass: PPCSpecializingVisitor
    ].
    context options inline ifTrue:[
        self runPass: PPCInliningVisitor     
    ].

    self runPass: PPCMergingVisitor.

    self runPass: PPCCheckingVisitor.

    self runPass: PPCUniversalCodeGenerator. 

    self generateParser.

    "Modified: / 04-09-2015 / 10:25:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!PPCUniversalConfiguration class methodsFor:'documentation'!

version
    ^ 'Path: stx/goodies/petitparser/compiler/PPCUniversalConfiguration.st, Version: 1.0, User: jv, Time: 2015-08-26T20:03:52.218+01'
!

version_HG
    ^ 'Path: stx/goodies/petitparser/compiler/PPCUniversalConfiguration.st, Version: 1.0, User: jv, Time: 2015-08-26T20:03:52.218+01'
! !