--- a/compiler/PPCUniversalConfiguration.st Wed Aug 26 23:34:48 2015 +0100
+++ b/compiler/PPCUniversalConfiguration.st Sat Aug 29 07:56:14 2015 +0100
@@ -10,59 +10,45 @@
!
-!PPCUniversalConfiguration methodsFor:'compiling'!
-
-initialize
- super initialize.
-
- "Modified: / 25-08-2015 / 00:03:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
+!PPCUniversalConfiguration methodsFor:'accessing - defaults'!
-invokePhases
- self toPPCIr.
- self createTokens.
- self cacheFirstFollow.
- self specialize.
- self createRecognizingComponents.
- self specialize.
- self inline.
- self merge.
- self check.
- self generate.
+defaultParserSuperclass
+ ^ PPCompiledParser
+
+ "Modified: / 01-09-2015 / 08:47:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
-!PPCUniversalConfiguration methodsFor:'error handling'!
+!PPCUniversalConfiguration methodsFor:'compiling'!
-buildClass
- | builder |
+invokePhases
+
+ self runPass: PPCTokenDetector.
- self assert:(context parserClass isKindOf:PPCClass).
- builder := PPCClassBuilder new.
- builder compiledClassName:context options parserName.
- builder compiledSuperclass:PPCompiledParser.
- builder methodDictionary:context parserClass methodDictionary.
- builder constants:context parserClass constants.
- ^ builder compileClass.
+ context options cacheFirstFollow ifTrue:[
+ self runPass: PPCCacheFirstFollowPass
+ ].
+ context options specialize ifTrue:[
+ self runPass: PPCSpecializingVisitor
+ ].
+
+ self runPass: PPCRecognizerComponentDetector .
- "Modified: / 25-08-2015 / 00:04:08 / Jan Vrany <jan.vrany@fit."
- "Modified: / 26-08-2015 / 20:01:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-generate
- | compiledParser |
-
- context options generate ifFalse:[
- ^ self
+ context options specialize ifTrue:[
+ self runPass: PPCSpecializingVisitor
+ ].
+ context options inline ifTrue:[
+ self runPass: PPCInliningVisitor
].
- self runPass: PPCUniversalCodeGenerator.
+
+ self runPass: PPCMergingVisitor.
+
+ self runPass: PPCCheckingVisitor.
- compiledParser := self buildClass.
- compiledParser startSymbol:(context parserClass propertyAt:#rootMethod) methodName.
- compiledParser := compiledParser new.
- ir := compiledParser.
+ self runPass: PPCUniversalCodeGenerator.
- "Modified: / 25-08-2015 / 00:03:46 / Jan Vrany <jan.vr"
- "Modified: / 26-08-2015 / 22:50:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ self generateParser.
+
+ "Modified: / 04-09-2015 / 10:25:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!PPCUniversalConfiguration class methodsFor:'documentation'!