# HG changeset patch # User Jan Vrany # Date 1441372016 -3600 # Node ID a8feb0f47574cfe8d7d5dac950d4bdf389a32a86 # Parent a949c4fe44dfcda326db62ed643b507228745c65 PPCConfiguration refactoring: [7/10]: allow to configure passes ...run during compilation by setting a collection of passes to run. Got rid of PPCPluggableConfiguration and PPCConfiguration subclasses. Removed a bunch of options used to suppress certain passes. diff -r a949c4fe44df -r a8feb0f47574 compiler/Make.proto --- a/compiler/Make.proto Sat Aug 29 07:56:14 2015 +0100 +++ b/compiler/Make.proto Fri Sep 04 14:06:56 2015 +0100 @@ -155,7 +155,6 @@ $(OUTDIR)PPCNode.$(O) PPCNode.$(H): PPCNode.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) $(OUTDIR)PPCNodeVisitor.$(O) PPCNodeVisitor.$(H): PPCNodeVisitor.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) $(OUTDIR)PPCPass.$(O) PPCPass.$(H): PPCPass.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) -$(OUTDIR)PPCPluggableConfiguration.$(O) PPCPluggableConfiguration.$(H): PPCPluggableConfiguration.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) $(OUTDIR)PPCScanner.$(O) PPCScanner.$(H): PPCScanner.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) $(OUTDIR)PPCScannerError.$(O) PPCScannerError.$(H): PPCScannerError.st $(INCLUDE_TOP)/stx/libbasic/Error.$(H) $(INCLUDE_TOP)/stx/libbasic/Exception.$(H) $(INCLUDE_TOP)/stx/libbasic/GenericException.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) $(OUTDIR)PPCScannerResultStrategy.$(O) PPCScannerResultStrategy.$(H): PPCScannerResultStrategy.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) @@ -190,9 +189,7 @@ $(OUTDIR)PPCProfilingContext.$(O) PPCProfilingContext.$(H): PPCProfilingContext.st $(INCLUDE_TOP)/stx/goodies/petitparser/PPStream.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/compiler/PPCContext.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/PeekableStream.$(H) $(INCLUDE_TOP)/stx/libbasic/PositionableStream.$(H) $(INCLUDE_TOP)/stx/libbasic/ReadStream.$(H) $(INCLUDE_TOP)/stx/libbasic/Stream.$(H) $(STCHDR) $(OUTDIR)PPCScannerCodeGenerator.$(O) PPCScannerCodeGenerator.$(H): PPCScannerCodeGenerator.st $(INCLUDE_TOP)/stx/goodies/petitparser/compiler/PPCPass.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) $(OUTDIR)PPCTokenizingCodeGen.$(O) PPCTokenizingCodeGen.$(H): PPCTokenizingCodeGen.st $(INCLUDE_TOP)/stx/goodies/petitparser/compiler/PPCCodeGen.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) -$(OUTDIR)PPCTokenizingConfiguration.$(O) PPCTokenizingConfiguration.$(H): PPCTokenizingConfiguration.st $(INCLUDE_TOP)/stx/goodies/petitparser/compiler/PPCConfiguration.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) $(OUTDIR)PPCUniversalCodeGen.$(O) PPCUniversalCodeGen.$(H): PPCUniversalCodeGen.st $(INCLUDE_TOP)/stx/goodies/petitparser/compiler/PPCCodeGen.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) -$(OUTDIR)PPCUniversalConfiguration.$(O) PPCUniversalConfiguration.$(H): PPCUniversalConfiguration.st $(INCLUDE_TOP)/stx/goodies/petitparser/compiler/PPCConfiguration.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) $(OUTDIR)PPCUniversalResultStrategy.$(O) PPCUniversalResultStrategy.$(H): PPCUniversalResultStrategy.st $(INCLUDE_TOP)/stx/goodies/petitparser/compiler/PPCScannerResultStrategy.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) $(OUTDIR)PPCUnknownNode.$(O) PPCUnknownNode.$(H): PPCUnknownNode.st $(INCLUDE_TOP)/stx/goodies/petitparser/compiler/PPCNode.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) $(OUTDIR)PPTokenizingCompiledParser.$(O) PPTokenizingCompiledParser.$(H): PPTokenizingCompiledParser.st $(INCLUDE_TOP)/stx/goodies/petitparser/PPParser.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/compiler/PPCompiledParser.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) diff -r a949c4fe44df -r a8feb0f47574 compiler/Make.spec --- a/compiler/Make.spec Sat Aug 29 07:56:14 2015 +0100 +++ b/compiler/Make.spec Fri Sep 04 14:06:56 2015 +0100 @@ -81,7 +81,6 @@ PPCNode \ PPCNodeVisitor \ PPCPass \ - PPCPluggableConfiguration \ PPCScanner \ PPCScannerError \ PPCScannerResultStrategy \ @@ -116,9 +115,7 @@ PPCProfilingContext \ PPCScannerCodeGenerator \ PPCTokenizingCodeGen \ - PPCTokenizingConfiguration \ PPCUniversalCodeGen \ - PPCUniversalConfiguration \ PPCUniversalResultStrategy \ PPCUnknownNode \ PPTokenizingCompiledParser \ @@ -216,7 +213,6 @@ $(OUTDIR_SLASH)PPCNode.$(O) \ $(OUTDIR_SLASH)PPCNodeVisitor.$(O) \ $(OUTDIR_SLASH)PPCPass.$(O) \ - $(OUTDIR_SLASH)PPCPluggableConfiguration.$(O) \ $(OUTDIR_SLASH)PPCScanner.$(O) \ $(OUTDIR_SLASH)PPCScannerError.$(O) \ $(OUTDIR_SLASH)PPCScannerResultStrategy.$(O) \ @@ -251,9 +247,7 @@ $(OUTDIR_SLASH)PPCProfilingContext.$(O) \ $(OUTDIR_SLASH)PPCScannerCodeGenerator.$(O) \ $(OUTDIR_SLASH)PPCTokenizingCodeGen.$(O) \ - $(OUTDIR_SLASH)PPCTokenizingConfiguration.$(O) \ $(OUTDIR_SLASH)PPCUniversalCodeGen.$(O) \ - $(OUTDIR_SLASH)PPCUniversalConfiguration.$(O) \ $(OUTDIR_SLASH)PPCUniversalResultStrategy.$(O) \ $(OUTDIR_SLASH)PPCUnknownNode.$(O) \ $(OUTDIR_SLASH)PPTokenizingCompiledParser.$(O) \ diff -r a949c4fe44df -r a8feb0f47574 compiler/PPCCompilationOptions.st --- a/compiler/PPCCompilationOptions.st Sat Aug 29 07:56:14 2015 +0100 +++ b/compiler/PPCCompilationOptions.st Fri Sep 04 14:06:56 2015 +0100 @@ -93,7 +93,9 @@ ! tokenize - ^ self at: #tokenize ifAbsent: true + ^ self at: #tokenize ifAbsent: false + + "Modified: / 04-09-2015 / 15:53:17 / Jan Vrany " ! tokenize: aBoolean @@ -114,14 +116,6 @@ !PPCCompilationOptions methodsFor:'options - undocumented (do not use)'! -cacheFirstFollow - ^ self at: #cacheFirstFollow ifAbsent: true -! - -cacheFirstFollow: value - self set: #cacheFirstFollow to: value. -! - debug ^ self at: #debug ifAbsent: true ! @@ -146,18 +140,10 @@ self set: #guards to: value. ! -inline - ^ self at: #inline ifAbsent: true -! - -inline: value - self set: #inline to: value. -! - parserSuperclass ^ self at: #parserSuperclass ifAbsent: nil - "Modified: / 01-09-2015 / 08:45:25 / Jan Vrany " + "Modified: / 04-09-2015 / 16:06:47 / Jan Vrany " ! parserSuperclass: value @@ -178,14 +164,6 @@ scannerSuperclass: value self set: #scannerSuperclass to: value. -! - -specialize - ^ self at: #specialize ifAbsent: true -! - -specialize: value - self set: #specialize to: value. ! ! !PPCCompilationOptions methodsFor:'private'! diff -r a949c4fe44df -r a8feb0f47574 compiler/PPCConfiguration.st --- a/compiler/PPCConfiguration.st Sat Aug 29 07:56:14 2015 +0100 +++ b/compiler/PPCConfiguration.st Fri Sep 04 14:06:56 2015 +0100 @@ -3,7 +3,7 @@ "{ NameSpace: Smalltalk }" Object subclass:#PPCConfiguration - instanceVariableNames:'context ir history' + instanceVariableNames:'context ir history passes' classVariableNames:'' poolDictionaries:'' category:'PetitCompiler-Core' @@ -22,11 +22,27 @@ ! tokenizing - ^ PPCTokenizingConfiguration new + | options | + + options := PPCCompilationOptions default. + options tokenize: true. + ^ PPCConfiguration new + options: options; + yourself + + "Modified: / 04-09-2015 / 16:21:59 / Jan Vrany " ! universal - ^ PPCUniversalConfiguration new + | options | + + options := PPCCompilationOptions default. + options tokenize: false. + ^ PPCConfiguration new + options: options; + yourself + + "Modified: / 04-09-2015 / 16:21:56 / Jan Vrany " ! ! !PPCConfiguration methodsFor:'accessing'! @@ -54,14 +70,67 @@ ir: whatever ir := whatever +! + +options + ^ context options + + "Modified: / 26-08-2015 / 19:48:43 / Jan Vrany " +! + +options: aPPCCompilationOptions + context options: aPPCCompilationOptions + + "Created: / 26-08-2015 / 19:56:46 / Jan Vrany " +! + +passes + ^ passes +! + +passes:aCollection + passes := aCollection asOrderedCollection + + "Modified: / 04-09-2015 / 14:14:33 / Jan Vrany " ! ! !PPCConfiguration methodsFor:'accessing - defaults'! -defaultParserSuperclass - self subclassResponsibility +defaultPassesForTokenizingParser + ^ { + PPCTokenDetector . + PPCCacheFirstFollowPass . + PPCLL1Visitor . + PPCTokenizingVisitor . + PPCMergingVisitor . + PPCSpecializingVisitor . + PPCInliningVisitor . + PPCMergingVisitor . + PPCCheckingVisitor . + PPCCacheFirstFollowPass . + PPCTokenizingCodeGenerator . + PPCFSAVisitor . + PPCTokenCodeGenerator . + PPCScannerCodeGenerator . + } asOrderedCollection. - "Created: / 01-09-2015 / 08:46:30 / Jan Vrany " + "Created: / 04-09-2015 / 15:56:30 / Jan Vrany " +! + +defaultPassesForUniversalParser + ^ { + PPCTokenDetector. + PPCCacheFirstFollowPass. + PPCSpecializingVisitor . + PPCRecognizerComponentDetector . + PPCSpecializingVisitor . + PPCInliningVisitor . + PPCMergingVisitor . + PPCCheckingVisitor . + PPCUniversalCodeGenerator + } asOrderedCollection. + + "Created: / 04-09-2015 / 15:56:14 / Jan Vrany " ! ! !PPCConfiguration methodsFor:'compiling'! @@ -100,9 +169,15 @@ context options generate ifFalse:[ ^ self ]. + context parserClass methodDictionary isEmpty ifTrue:[ + ^ self + ]. + parserSuper := context options parserSuperclass. parserSuper isNil ifTrue:[ - parserSuper := self defaultParserSuperclass. + parserSuper := context options tokenize + ifTrue:[ PPTokenizingCompiledParser ] + ifFalse:[ PPCompiledParser ] ]. rootMethod := context parserClass propertyAt:#rootMethod. context parserClass name:context options parserName. @@ -113,7 +188,7 @@ ir := parserClass new "Modified: / 25-08-2015 / 00:05:49 / Jan Vrany" - "Modified: / 01-09-2015 / 08:46:30 / Jan Vrany " + "Modified: / 04-09-2015 / 16:07:23 / Jan Vrany " ! generateScanner @@ -122,6 +197,10 @@ context options generate ifFalse:[ ^ self ]. + context scannerClass methodDictionary isEmpty ifTrue:[ + ^ self + ]. + context scannerClass name:context options scannerName. context scannerClass superclass:context options scannerSuperclass. scanner := (self buildClass:context scannerClass). @@ -130,11 +209,18 @@ self remember:scanner as:#scanner "Modified: / 25-08-2015 / 00:06:49 / Jan Vrany" - "Modified: / 26-08-2015 / 19:58:12 / Jan Vrany " + "Modified: / 04-09-2015 / 15:33:12 / Jan Vrany " ! invokePhases - self subclassResponsibility + self initializePassesIfNotAlready. + + self runPasses: passes. + + self generateScanner. + self generateParser. + + "Modified: / 04-09-2015 / 16:22:25 / Jan Vrany " ! ! !PPCConfiguration methodsFor:'debugging'! @@ -164,27 +250,25 @@ "Modified: / 28-08-2015 / 14:14:33 / Jan Vrany " ! ! -!PPCConfiguration methodsFor:'error handling'! - -options - ^ context options - - "Modified: / 26-08-2015 / 19:48:43 / Jan Vrany " -! - -options: aPPCCompilationOptions - context options: aPPCCompilationOptions - - "Created: / 26-08-2015 / 19:56:46 / Jan Vrany " -! ! - !PPCConfiguration methodsFor:'initialization'! initialize history := OrderedCollection new. context := PPCCompilationContext new. - "Modified: / 26-08-2015 / 19:49:36 / Jan Vrany " + "Modified: / 04-09-2015 / 15:56:49 / Jan Vrany " +! + +initializePassesIfNotAlready + passes isNil ifTrue:[ + context options tokenize ifTrue:[ + passes := self defaultPassesForTokenizingParser + ] ifFalse:[ + passes := self defaultPassesForUniversalParser + ]. + ]. + + "Created: / 04-09-2015 / 16:02:05 / Jan Vrany " ! ! !PPCConfiguration methodsFor:'reporting'! @@ -199,6 +283,21 @@ !PPCConfiguration methodsFor:'running'! +removePass: pass + | index | + + self initializePassesIfNotAlready. + [ + index := passes indexOf: pass. + index ~~ 0 + ] whileTrue:[ + passes removeAtIndex: index + ]. + + "Created: / 04-09-2015 / 11:24:45 / Jan Vrany " + "Modified: / 04-09-2015 / 16:02:17 / Jan Vrany " +! + runPass: pass | p | @@ -208,5 +307,11 @@ "Created: / 26-08-2015 / 22:35:39 / Jan Vrany " "Modified: / 29-08-2015 / 07:16:10 / Jan Vrany " +! + +runPasses: aCollection + aCollection do:[:each | self runPass: each ] + + "Created: / 04-09-2015 / 11:23:49 / Jan Vrany " ! ! diff -r a949c4fe44df -r a8feb0f47574 compiler/PPCPluggableConfiguration.st --- a/compiler/PPCPluggableConfiguration.st Sat Aug 29 07:56:14 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,54 +0,0 @@ -"{ 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'! - -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 -! - -options: args - ^ base context options: args - - "Modified: / 28-08-2015 / 14:19:09 / Jan Vrany " -! ! - diff -r a949c4fe44df -r a8feb0f47574 compiler/PPCTokenizingConfiguration.st --- a/compiler/PPCTokenizingConfiguration.st Sat Aug 29 07:56:14 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,65 +0,0 @@ -"{ Package: 'stx:goodies/petitparser/compiler' }" - -"{ NameSpace: Smalltalk }" - -PPCConfiguration subclass:#PPCTokenizingConfiguration - instanceVariableNames:'' - classVariableNames:'' - poolDictionaries:'' - category:'PetitCompiler-Core' -! - -!PPCTokenizingConfiguration methodsFor:'accessing - defaults'! - -defaultParserSuperclass - ^ PPTokenizingCompiledParser - - "Modified (comment): / 01-09-2015 / 08:48:03 / Jan Vrany " -! ! - -!PPCTokenizingConfiguration methodsFor:'compiling'! - -invokePhases - - self runPass: PPCTokenDetector. - - context options cacheFirstFollow ifTrue:[ - self runPass: PPCCacheFirstFollowPass - ]. - self runPass: PPCLL1Visitor. - context options tokenize ifTrue:[ - self runPass: PPCTokenizingVisitor - ]. - - self runPass: PPCMergingVisitor . - - 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. - context options cacheFirstFollow ifTrue:[ - self runPass: PPCCacheFirstFollowPass - ]. - self runPass: PPCTokenizingCodeGenerator. - self runPass: PPCFSAVisitor. - self runPass: PPCTokenCodeGenerator. - self runPass: PPCScannerCodeGenerator. - - self generateScanner. - self generateParser. - - "Modified: / 04-09-2015 / 10:25:00 / Jan Vrany " -! ! - diff -r a949c4fe44df -r a8feb0f47574 compiler/PPCUniversalConfiguration.st --- a/compiler/PPCUniversalConfiguration.st Sat Aug 29 07:56:14 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,63 +0,0 @@ -"{ 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 " -! ! - -!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 " -! ! - -!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' -! ! - diff -r a949c4fe44df -r a8feb0f47574 compiler/abbrev.stc --- a/compiler/abbrev.stc Sat Aug 29 07:56:14 2015 +0100 +++ b/compiler/abbrev.stc Fri Sep 04 14:06:56 2015 +0100 @@ -31,7 +31,6 @@ PPCNode PPCNode stx:goodies/petitparser/compiler 'PetitCompiler-Nodes' 0 PPCNodeVisitor PPCNodeVisitor stx:goodies/petitparser/compiler 'PetitCompiler-Visitors' 0 PPCPass PPCPass stx:goodies/petitparser/compiler 'PetitCompiler-Core' 0 -PPCPluggableConfiguration PPCPluggableConfiguration stx:goodies/petitparser/compiler 'PetitCompiler-Core' 0 PPCScanner PPCScanner stx:goodies/petitparser/compiler 'PetitCompiler-Scanner' 0 PPCScannerError PPCScannerError stx:goodies/petitparser/compiler 'PetitCompiler-Exceptions' 1 PPCScannerResultStrategy PPCScannerResultStrategy stx:goodies/petitparser/compiler 'PetitCompiler-Scanner' 0 @@ -66,9 +65,7 @@ PPCProfilingContext PPCProfilingContext stx:goodies/petitparser/compiler 'PetitCompiler-Context' 0 PPCScannerCodeGenerator PPCScannerCodeGenerator stx:goodies/petitparser/compiler 'PetitCompiler-Scanner' 0 PPCTokenizingCodeGen PPCTokenizingCodeGen stx:goodies/petitparser/compiler 'PetitCompiler-Compiler-Codegen' 0 -PPCTokenizingConfiguration PPCTokenizingConfiguration stx:goodies/petitparser/compiler 'PetitCompiler-Core' 0 PPCUniversalCodeGen PPCUniversalCodeGen stx:goodies/petitparser/compiler 'PetitCompiler-Compiler-Codegen' 0 -PPCUniversalConfiguration PPCUniversalConfiguration stx:goodies/petitparser/compiler 'PetitCompiler-Core' 0 PPCUniversalResultStrategy PPCUniversalResultStrategy stx:goodies/petitparser/compiler 'PetitCompiler-Scanner' 0 PPCUnknownNode PPCUnknownNode stx:goodies/petitparser/compiler 'PetitCompiler-Nodes' 0 PPTokenizingCompiledParser PPTokenizingCompiledParser stx:goodies/petitparser/compiler 'PetitCompiler-Parsers' 4 diff -r a949c4fe44df -r a8feb0f47574 compiler/bc.mak --- a/compiler/bc.mak Sat Aug 29 07:56:14 2015 +0100 +++ b/compiler/bc.mak Fri Sep 04 14:06:56 2015 +0100 @@ -102,7 +102,6 @@ $(OUTDIR)PPCNode.$(O) PPCNode.$(H): PPCNode.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)PPCNodeVisitor.$(O) PPCNodeVisitor.$(H): PPCNodeVisitor.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)PPCPass.$(O) PPCPass.$(H): PPCPass.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) -$(OUTDIR)PPCPluggableConfiguration.$(O) PPCPluggableConfiguration.$(H): PPCPluggableConfiguration.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)PPCScanner.$(O) PPCScanner.$(H): PPCScanner.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)PPCScannerError.$(O) PPCScannerError.$(H): PPCScannerError.st $(INCLUDE_TOP)\stx\libbasic\Error.$(H) $(INCLUDE_TOP)\stx\libbasic\Exception.$(H) $(INCLUDE_TOP)\stx\libbasic\GenericException.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)PPCScannerResultStrategy.$(O) PPCScannerResultStrategy.$(H): PPCScannerResultStrategy.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) @@ -137,9 +136,7 @@ $(OUTDIR)PPCProfilingContext.$(O) PPCProfilingContext.$(H): PPCProfilingContext.st $(INCLUDE_TOP)\stx\goodies\petitparser\PPStream.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\compiler\PPCContext.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\PeekableStream.$(H) $(INCLUDE_TOP)\stx\libbasic\PositionableStream.$(H) $(INCLUDE_TOP)\stx\libbasic\ReadStream.$(H) $(INCLUDE_TOP)\stx\libbasic\Stream.$(H) $(STCHDR) $(OUTDIR)PPCScannerCodeGenerator.$(O) PPCScannerCodeGenerator.$(H): PPCScannerCodeGenerator.st $(INCLUDE_TOP)\stx\goodies\petitparser\compiler\PPCPass.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)PPCTokenizingCodeGen.$(O) PPCTokenizingCodeGen.$(H): PPCTokenizingCodeGen.st $(INCLUDE_TOP)\stx\goodies\petitparser\compiler\PPCCodeGen.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) -$(OUTDIR)PPCTokenizingConfiguration.$(O) PPCTokenizingConfiguration.$(H): PPCTokenizingConfiguration.st $(INCLUDE_TOP)\stx\goodies\petitparser\compiler\PPCConfiguration.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)PPCUniversalCodeGen.$(O) PPCUniversalCodeGen.$(H): PPCUniversalCodeGen.st $(INCLUDE_TOP)\stx\goodies\petitparser\compiler\PPCCodeGen.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) -$(OUTDIR)PPCUniversalConfiguration.$(O) PPCUniversalConfiguration.$(H): PPCUniversalConfiguration.st $(INCLUDE_TOP)\stx\goodies\petitparser\compiler\PPCConfiguration.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)PPCUniversalResultStrategy.$(O) PPCUniversalResultStrategy.$(H): PPCUniversalResultStrategy.st $(INCLUDE_TOP)\stx\goodies\petitparser\compiler\PPCScannerResultStrategy.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)PPCUnknownNode.$(O) PPCUnknownNode.$(H): PPCUnknownNode.st $(INCLUDE_TOP)\stx\goodies\petitparser\compiler\PPCNode.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)PPTokenizingCompiledParser.$(O) PPTokenizingCompiledParser.$(H): PPTokenizingCompiledParser.st $(INCLUDE_TOP)\stx\goodies\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\compiler\PPCompiledParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) diff -r a949c4fe44df -r a8feb0f47574 compiler/benchmarks/PPCSmalltalkNoopParser.st --- a/compiler/benchmarks/PPCSmalltalkNoopParser.st Sat Aug 29 07:56:14 2015 +0100 +++ b/compiler/benchmarks/PPCSmalltalkNoopParser.st Fri Sep 04 14:06:56 2015 +0100 @@ -9,7 +9,6 @@ category:'PetitCompiler-Benchmarks-Parsers' ! - !PPCSmalltalkNoopParser methodsFor:'accessing'! startExpression @@ -343,10 +342,3 @@ "Modified: / 15-05-2015 / 08:54:17 / Jan Vrany " ! ! -!PPCSmalltalkNoopParser class methodsFor:'documentation'! - -version_HG - - ^ '$Changeset: $' -! ! - diff -r a949c4fe44df -r a8feb0f47574 compiler/libInit.cc --- a/compiler/libInit.cc Sat Aug 29 07:56:14 2015 +0100 +++ b/compiler/libInit.cc Fri Sep 04 14:06:56 2015 +0100 @@ -57,7 +57,6 @@ _PPCNode_Init(pass,__pRT__,snd); _PPCNodeVisitor_Init(pass,__pRT__,snd); _PPCPass_Init(pass,__pRT__,snd); -_PPCPluggableConfiguration_Init(pass,__pRT__,snd); _PPCScanner_Init(pass,__pRT__,snd); _PPCScannerError_Init(pass,__pRT__,snd); _PPCScannerResultStrategy_Init(pass,__pRT__,snd); @@ -92,9 +91,7 @@ _PPCProfilingContext_Init(pass,__pRT__,snd); _PPCScannerCodeGenerator_Init(pass,__pRT__,snd); _PPCTokenizingCodeGen_Init(pass,__pRT__,snd); -_PPCTokenizingConfiguration_Init(pass,__pRT__,snd); _PPCUniversalCodeGen_Init(pass,__pRT__,snd); -_PPCUniversalConfiguration_Init(pass,__pRT__,snd); _PPCUniversalResultStrategy_Init(pass,__pRT__,snd); _PPCUnknownNode_Init(pass,__pRT__,snd); _PPTokenizingCompiledParser_Init(pass,__pRT__,snd); diff -r a949c4fe44df -r a8feb0f47574 compiler/stx_goodies_petitparser_compiler.st --- a/compiler/stx_goodies_petitparser_compiler.st Sat Aug 29 07:56:14 2015 +0100 +++ b/compiler/stx_goodies_petitparser_compiler.st Fri Sep 04 14:06:56 2015 +0100 @@ -140,7 +140,6 @@ PPCNode PPCNodeVisitor PPCPass - PPCPluggableConfiguration PPCScanner PPCScannerError PPCScannerResultStrategy @@ -175,9 +174,7 @@ PPCProfilingContext PPCScannerCodeGenerator PPCTokenizingCodeGen - PPCTokenizingConfiguration PPCUniversalCodeGen - PPCUniversalConfiguration PPCUniversalResultStrategy PPCUnknownNode PPTokenizingCompiledParser diff -r a949c4fe44df -r a8feb0f47574 compiler/tests/PPCCodeGeneratorTest.st --- a/compiler/tests/PPCCodeGeneratorTest.st Sat Aug 29 07:56:14 2015 +0100 +++ b/compiler/tests/PPCCodeGeneratorTest.st Fri Sep 04 14:06:56 2015 +0100 @@ -24,20 +24,20 @@ ! setUp - options := PPCCompilationOptions default - profile: true. + options := PPCCompilationOptions default + tokenize: false; + profile: true; + yourself. - configuration := PPCPluggableConfiguration on: [ :_self | - options cacheFirstFollow ifTrue:[ - _self runPass: PPCCacheFirstFollowPass. - ]. - _self runPass: PPCCheckingVisitor. - _self runPass: PPCUniversalCodeGenerator. - _self generateParser. - ]. + configuration := PPCConfiguration new passes: + { + PPCCacheFirstFollowPass. + PPCCheckingVisitor . + PPCUniversalCodeGenerator . + }. configuration options: options. - "Modified: / 04-09-2015 / 10:31:47 / Jan Vrany " + "Modified: / 04-09-2015 / 16:22:30 / Jan Vrany " ! tearDown @@ -928,7 +928,7 @@ ! testStarAnyNode - options cacheFirstFollow: false. + configuration removePass: PPCCacheFirstFollowPass. node := PPCStarAnyNode new child: PPCNilNode new; yourself. @@ -937,10 +937,12 @@ self assert: parser parse: 'abc' to: #($a $b $c). self assert: parser parse: 'a' to: #($a). self assert: parser parse: '' to: #(). + + "Modified: / 04-09-2015 / 14:47:52 / Jan Vrany " ! testStarCharSetPredicateNode - options cacheFirstFollow: false. + configuration removePass: PPCCacheFirstFollowPass. node := PPCStarCharSetPredicateNode new predicate: (PPCharSetPredicate on: [:e | e = $a ]); child: PPCSentinelNode new; @@ -953,11 +955,12 @@ self assert: context invocationCount = 1. self assert: parser parse: 'bba' to: #() end: 0. self assert: context invocationCount = 1. - + + "Modified: / 04-09-2015 / 14:47:57 / Jan Vrany " ! testStarMessagePredicateNode - options cacheFirstFollow: false. + configuration removePass: PPCCacheFirstFollowPass. node := PPCStarMessagePredicateNode new message: #isLetter; child: PPCSentinelNode new; @@ -971,7 +974,8 @@ self assert: parser parse: '123a' to: #() end: 0. self assert: context invocationCount = 1. - + + "Modified: / 04-09-2015 / 14:48:05 / Jan Vrany " ! testStarNode @@ -1035,8 +1039,8 @@ message: #isLetter; child: PPCSentinelNode new; yourself. - options cacheFirstFollow: false. - options guards: false. + configuration removePass: PPCCacheFirstFollowPass. + options guards: false. self compileTree: node. self assert: parser class methodDictionary size = 1. @@ -1048,6 +1052,8 @@ self assert: context rememberCount = 0. self assert: parser parse: 'foo123' to: parser end: 3. + + "Modified: / 04-09-2015 / 14:48:13 / Jan Vrany " ! testTokenStarSeparatorNode @@ -1060,14 +1066,15 @@ node := PPCForwardNode new child: starNode; yourself. - options cacheFirstFollow: false. + configuration removePass: PPCCacheFirstFollowPass. self compileTree: node. self assert: parser class methodDictionary size = 2. self assert: parser parse: ' a' to: parser end: 3. self assert: context invocationCount = 2. - + + "Modified: / 04-09-2015 / 14:48:20 / Jan Vrany " ! testTokenStarSeparatorNode2 @@ -1080,15 +1087,16 @@ yourself. node := PPCForwardNode new child: starNode; - yourself. - options cacheFirstFollow: false. + yourself. + configuration removePass: PPCCacheFirstFollowPass. self compileTree: node. self assert: parser class methodDictionary size = 1. self assert: parser parse: ' a' to: context end: 3. self assert: context invocationCount = 1. - + + "Modified: / 04-09-2015 / 14:48:29 / Jan Vrany " ! testTrimNode diff -r a949c4fe44df -r a8feb0f47574 compiler/tests/PPCLTokenizingOptimizationTest.st --- a/compiler/tests/PPCLTokenizingOptimizationTest.st Sat Aug 29 07:56:14 2015 +0100 +++ b/compiler/tests/PPCLTokenizingOptimizationTest.st Fri Sep 04 14:06:56 2015 +0100 @@ -17,11 +17,13 @@ ! configuration - configuration := PPCTokenizingConfiguration new. - configuration context options generate: false. + configuration := PPCConfiguration new. + configuration context options + generate: false; + tokenize: true. ^ configuration - "Modified: / 28-08-2015 / 14:17:49 / Jan Vrany " + "Modified: / 04-09-2015 / 16:21:52 / Jan Vrany " ! optimize: aPPParser diff -r a949c4fe44df -r a8feb0f47574 compiler/tests/PPCNodeFirstFollowNextTests.st --- a/compiler/tests/PPCNodeFirstFollowNextTests.st Sat Aug 29 07:56:14 2015 +0100 +++ b/compiler/tests/PPCNodeFirstFollowNextTests.st Fri Sep 04 14:06:56 2015 +0100 @@ -164,7 +164,7 @@ ! testFirstNegate1 - configuration context options specialize: true. + configuration removePass: PPCSpecializingVisitor. tree := self treeFrom: ('a' asParser negate, 'b' asParser). first := self first: tree. @@ -173,7 +173,7 @@ self assert: first anyMatchesType: PPCNotNode. self assert: first anyOne child literal = 'a'. - "Modified: / 28-08-2015 / 14:18:11 / Jan Vrany " + "Modified: / 04-09-2015 / 14:55:15 / Jan Vrany " ! testFirstNot @@ -187,7 +187,7 @@ ! testFirstNot2 - configuration context options specialize: true. + configuration removePass: PPCSpecializingVisitor. tree := self treeFrom: (#letter asParser not star, #letter asParser). first := self first: tree. @@ -196,7 +196,7 @@ self assert: first anyMatchesType: PPCNotNode. self assert: first anyMatchesType: PPCPredicateNode. - "Modified: / 28-08-2015 / 14:18:27 / Jan Vrany " + "Modified: / 04-09-2015 / 14:55:21 / Jan Vrany " ! testFirstNot4 @@ -329,13 +329,13 @@ ! testFirstSequence6 - configuration context options specialize: true. + configuration removePass: PPCSpecializingVisitor. tree := self treeFrom: #space asParser star, 'a' asParser. tree firstFollowCache: nil. self should: [ self first: tree. ] raise: Exception. - "Modified: / 28-08-2015 / 14:18:34 / Jan Vrany " + "Modified: / 04-09-2015 / 14:55:25 / Jan Vrany " ! testFirstSequence7 @@ -359,7 +359,6 @@ ! testFirstStarMessagePredicate2 - configuration context options specialize: true. tree := self treeFrom: #space asParser star. first := self first: tree. @@ -368,11 +367,10 @@ self assert: first anyMatchesType: PPCMessagePredicateNode. self assert: first anyMatchesType: PPCSentinelNode. - "Modified: / 28-08-2015 / 14:18:42 / Jan Vrany " + "Modified: / 04-09-2015 / 15:00:54 / Jan Vrany " ! testFirstTerminal - configuration context options specialize: true. tree := self treeFrom: 'a' asParser not. first := self first: tree. @@ -380,7 +378,7 @@ self assert: first size: 1. self assert: (self first: tree) anyMatchesType: PPCNotLiteralNode. - "Modified: / 28-08-2015 / 14:18:48 / Jan Vrany " + "Modified: / 04-09-2015 / 15:00:26 / Jan Vrany " ! testFirstTerminal2 @@ -669,7 +667,7 @@ testFollowTrimmingToken | token1 token2 | - configuration context options specialize: false. + configuration removePass: PPCSpecializingVisitor. token1 := #letter asParser plus trimmingToken name: 'token1'; yourself. token2 := #letter asParser plus trimmingToken name: 'token2'; yourself. @@ -682,7 +680,7 @@ self assert: followSet size: 1. self assert: followSet anyMatchesType: PPCTrimmingTokenNode. - "Modified: / 28-08-2015 / 14:18:55 / Jan Vrany " + "Modified: / 04-09-2015 / 14:55:40 / Jan Vrany " ! ! !PPCNodeFirstFollowNextTests class methodsFor:'documentation'! diff -r a949c4fe44df -r a8feb0f47574 compiler/tests/PPCOptimizeChoicesTest.st --- a/compiler/tests/PPCOptimizeChoicesTest.st Sat Aug 29 07:56:14 2015 +0100 +++ b/compiler/tests/PPCOptimizeChoicesTest.st Fri Sep 04 14:06:56 2015 +0100 @@ -22,14 +22,19 @@ visitor := PPCOptimizeChoices new. options := PPCCompilationOptions default - profile: true. + profile: true; + generate: false; + tokenize: false; + yourself. - configuration := PPCPluggableConfiguration on: [ :_self | - _self runPass: PPCCacheFirstFollowPass. - ]. + configuration := PPCConfiguration new. + configuration passes: + { + PPCCacheFirstFollowPass. + }. configuration options: options. - "Modified: / 29-08-2015 / 07:30:28 / Jan Vrany " + "Modified: / 04-09-2015 / 16:21:48 / Jan Vrany " ! testHasCommonPrefix diff -r a949c4fe44df -r a8feb0f47574 compiler/tests/PPCOverlappingTokensTest.st --- a/compiler/tests/PPCOverlappingTokensTest.st Sat Aug 29 07:56:14 2015 +0100 +++ b/compiler/tests/PPCOverlappingTokensTest.st Fri Sep 04 14:06:56 2015 +0100 @@ -44,9 +44,10 @@ setUp options := PPCCompilationOptions default profile: true; + tokenize: true; yourself. - configuration := PPCTokenizingConfiguration new. + configuration := PPCConfiguration new. configuration context options: options. self cleanClass. @@ -57,7 +58,7 @@ keywordToken := (#word asParser plus, $: asParser) token trim name: 'kw'; yourself. assignmentToken := (':=' asParser) token trim name: 'assignment'; yourself. - "Modified: / 28-08-2015 / 14:19:50 / Jan Vrany " + "Modified: / 04-09-2015 / 16:21:42 / Jan Vrany " ! tearDown diff -r a949c4fe44df -r a8feb0f47574 compiler/tests/PPCTokenizingCodeGeneratorTest.st --- a/compiler/tests/PPCTokenizingCodeGeneratorTest.st Sat Aug 29 07:56:14 2015 +0100 +++ b/compiler/tests/PPCTokenizingCodeGeneratorTest.st Fri Sep 04 14:06:56 2015 +0100 @@ -37,23 +37,23 @@ setUp options := PPCCompilationOptions default profile: true; + tokenize: true; yourself. self cleanClass. - configuration := PPCPluggableConfiguration on: [ :_self | - _self runPass: PPCCacheFirstFollowPass. - _self runPass: PPCTokenizingCodeGenerator. - _self runPass: PPCFSAVisitor. - _self runPass: PPCTokenCodeGenerator. - _self runPass: PPCScannerCodeGenerator. - _self generateScanner. - _self generateParser. - ] base: PPCConfiguration tokenizing. + configuration := PPCConfiguration new. + configuration passes: { + PPCCacheFirstFollowPass. + PPCTokenizingCodeGenerator. + PPCFSAVisitor. + PPCTokenCodeGenerator. + PPCScannerCodeGenerator. + }. configuration options: options. - "Modified: / 03-09-2015 / 22:34:22 / Jan Vrany " + "Modified: / 04-09-2015 / 16:21:39 / Jan Vrany " ! tearDown diff -r a949c4fe44df -r a8feb0f47574 compiler/tests/PPCTokenizingTest.st --- a/compiler/tests/PPCTokenizingTest.st Sat Aug 29 07:56:14 2015 +0100 +++ b/compiler/tests/PPCTokenizingTest.st Fri Sep 04 14:06:56 2015 +0100 @@ -46,14 +46,15 @@ setUp options := PPCCompilationOptions default profile: true; + tokenize: true; yourself. - configuration := PPCTokenizingConfiguration new. + configuration := PPCConfiguration new. configuration context options: options. self cleanClass. - "Modified: / 28-08-2015 / 14:20:21 / Jan Vrany " + "Modified: / 04-09-2015 / 16:21:36 / Jan Vrany " ! tearDown @@ -482,8 +483,8 @@ testWhitespace | token ws trimmingToken | - options inline: false. - + + configuration removePass: PPCInliningVisitor. token := 'foo' asParser token. ws := #blank asParser star name: 'consumeWhitespace'; yourself. trimmingToken := ((ws, token, ws) ==> #second) @@ -498,13 +499,13 @@ self assert: (context invocations select: [:e | e = #scan_consumeWhitespace ]) size = 3. - "Modified: / 04-09-2015 / 06:13:18 / Jan Vrany " + "Modified: / 04-09-2015 / 15:02:02 / Jan Vrany " ! testWhitespace2 | token ws trimmingToken | - options inline: false. - + + configuration removePass: PPCInliningVisitor. token := 'foo' asParser token. ws := #blank asParser star name: 'consumeWhitespace'; yourself. trimmingToken := ((ws, token, ws) ==> #second) @@ -520,13 +521,13 @@ self assert: (context invocations select: [:e | e = #scan_consumeWhitespace ]) size = 4. - "Modified: / 04-09-2015 / 06:13:43 / Jan Vrany " + "Modified: / 04-09-2015 / 15:02:08 / Jan Vrany " ! testWhitespace3 | token ws trimmingToken | - options inline: false. - + + configuration removePass: PPCInliningVisitor. token := 'foo' asParser token. ws := #blank asParser star name: 'consumeWhitespace'; yourself. trimmingToken := ((ws, token, ws) ==> #second) @@ -543,6 +544,6 @@ self assert: (context invocations select: [:e | e = #scan_consumeWhitespace ]) size = 5. - "Modified: / 04-09-2015 / 06:13:49 / Jan Vrany " + "Modified: / 04-09-2015 / 15:02:19 / Jan Vrany " ! ! diff -r a949c4fe44df -r a8feb0f47574 compiler/tests/PPCUnivarsalGuardTest.st --- a/compiler/tests/PPCUnivarsalGuardTest.st Sat Aug 29 07:56:14 2015 +0100 +++ b/compiler/tests/PPCUnivarsalGuardTest.st Fri Sep 04 14:06:56 2015 +0100 @@ -24,12 +24,13 @@ setUp options := PPCCompilationOptions default profile: true; + tokenize: false; yourself. - configuration := PPCUniversalConfiguration new. + configuration := PPCConfiguration new. configuration context options: options - "Modified: / 28-08-2015 / 14:22:08 / Jan Vrany " + "Modified: / 04-09-2015 / 16:21:32 / Jan Vrany " ! tearDown diff -r a949c4fe44df -r a8feb0f47574 compiler/tests/PPCUniversalOptimizationTest.st --- a/compiler/tests/PPCUniversalOptimizationTest.st Sat Aug 29 07:56:14 2015 +0100 +++ b/compiler/tests/PPCUniversalOptimizationTest.st Fri Sep 04 14:06:56 2015 +0100 @@ -22,20 +22,12 @@ setUp super setUp. - configuration := PPCUniversalConfiguration new. - configuration context options generate: false. - -" ^ configuration := PPCPluggableConfiguration on: - [ :_self | - _self toPPCIr. - _self createTokens. - _self specialize. - _self createRecognizingComponents. - _self inline. - _self merge. - ]" + configuration := PPCConfiguration new. + configuration context options + generate: false; + tokenize: false. - "Modified: / 28-08-2015 / 14:22:20 / Jan Vrany " + "Modified: / 04-09-2015 / 16:21:29 / Jan Vrany " ! ! !PPCUniversalOptimizationTest methodsFor:'tests'! diff -r a949c4fe44df -r a8feb0f47574 compiler/tests/PPCUniversalTest.st --- a/compiler/tests/PPCUniversalTest.st Sat Aug 29 07:56:14 2015 +0100 +++ b/compiler/tests/PPCUniversalTest.st Fri Sep 04 14:06:56 2015 +0100 @@ -572,12 +572,13 @@ options := PPCCompilationOptions default profile: true; debug: true; + tokenize: false; yourself. - configuration := PPCUniversalConfiguration new. + configuration := PPCConfiguration new. configuration context options: options - "Modified: / 28-08-2015 / 14:22:39 / Jan Vrany " + "Modified: / 04-09-2015 / 16:21:25 / Jan Vrany " ! ! !PPCUniversalTest class methodsFor:'documentation'! diff -r a949c4fe44df -r a8feb0f47574 compiler/tests/extras/PPCLRPCompiledParserSmokeTest.st --- a/compiler/tests/extras/PPCLRPCompiledParserSmokeTest.st Sat Aug 29 07:56:14 2015 +0100 +++ b/compiler/tests/extras/PPCLRPCompiledParserSmokeTest.st Fri Sep 04 14:06:56 2015 +0100 @@ -42,9 +42,10 @@ ^ (self petitParserClass name , 'C_' , "This is bit hacky!!" - ((self compilerConfiguration isKindOf: PPCTokenizingConfiguration) ifTrue:[ 'Tokenizing' ] ifFalse:[ 'Universal' ])) asSymbol + ((self compilerConfiguration options tokenize) ifTrue:[ 'Tokenizing' ] ifFalse:[ 'Universal' ])) asSymbol "Created: / 29-07-2015 / 16:54:01 / Jan Vrany " + "Modified: / 04-09-2015 / 15:44:26 / Jan Vrany " ! compilerConfiguration