Codegen refactoring [1/x]: Introduced a PPCCodeBlock
authorJan Vrany <jan.vrany@fit.cvut.cz>
Mon, 01 Jun 2015 22:02:17 +0100
changeset 477 b18b6cc7aabc
parent 476 c45383095de4
child 478 711c8bc1ec04
Codegen refactoring [1/x]: Introduced a PPCCodeBlock A PPCCodeBlock is an abstraction of a block of statements with temporaries. This will allow for scoped temporary management in code generator - temporary variables could be allocated for block only. (i.e., make them block-temporaries)
compiler/Make.proto
compiler/Make.spec
compiler/PPCCodeBlock.st
compiler/PPCCompiler.st
compiler/PPCInlinedMethod.st
compiler/PPCMethod.st
compiler/PPCTokenizingConfiguration.st
compiler/abbrev.stc
compiler/bc.mak
compiler/benchmarks/Make.proto
compiler/benchmarks/PPCSmalltalkNoopParser.st
compiler/benchmarks/abbrev.stc
compiler/benchmarks/bc.mak
compiler/benchmarks/stx_goodies_petitparser_compiler_benchmarks.st
compiler/extensions.st
compiler/libInit.cc
compiler/stx_goodies_petitparser_compiler.st
compiler/tests/Make.proto
compiler/tests/PPCSpecializingVisitorTest.st
compiler/tests/bc.mak
compiler/tests/extras/Make.proto
compiler/tests/extras/PPLL1ExpressionGrammarTest.st
compiler/tests/extras/abbrev.stc
compiler/tests/extras/bc.mak
compiler/tests/extras/stx_goodies_petitparser_compiler_tests_extras.st
--- a/compiler/Make.proto	Fri May 29 07:25:31 2015 +0100
+++ b/compiler/Make.proto	Mon Jun 01 22:02:17 2015 +0100
@@ -34,7 +34,7 @@
 # add the path(es) here:,
 # ********** OPTIONAL: MODIFY the next lines ***
 # LOCALINCLUDES=-Ifoo -Ibar
-LOCALINCLUDES= -I$(INCLUDE_TOP)/stx/goodies/petitparser -I$(INCLUDE_TOP)/stx/goodies/petitparser/analyzer -I$(INCLUDE_TOP)/stx/goodies/petitparser/parsers/java -I$(INCLUDE_TOP)/stx/goodies/petitparser/parsers/smalltalk -I$(INCLUDE_TOP)/stx/libbasic -I$(INCLUDE_TOP)/stx/libbasic2
+LOCALINCLUDES= -I$(INCLUDE_TOP)/stx/goodies/petitparser -I$(INCLUDE_TOP)/stx/goodies/petitparser/analyzer -I$(INCLUDE_TOP)/stx/goodies/petitparser/parsers/java -I$(INCLUDE_TOP)/stx/goodies/petitparser/parsers/smalltalk -I$(INCLUDE_TOP)/stx/libbasic -I$(INCLUDE_TOP)/stx/libbasic2 -I$(INCLUDE_TOP)/stx/libwidg -I$(INCLUDE_TOP)/stx/libwidg2
 
 
 # if you need any additional defines for embedded C code,
@@ -104,7 +104,6 @@
 	cd ../../../libbasic && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../../refactoryBrowser/parser && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../../../libbasic2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd ../../../libbasic3 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../../../libview && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../ && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../../../libview2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
@@ -133,6 +132,7 @@
 # BEGINMAKEDEPEND --- do not remove this line; make depend needs it
 $(OUTDIR)PPCArguments.$(O) PPCArguments.$(H): PPCArguments.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)PPCBridge.$(O) PPCBridge.$(H): PPCBridge.st $(INCLUDE_TOP)/stx/goodies/petitparser/PPParser.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)PPCCodeBlock.$(O) PPCCodeBlock.$(H): PPCCodeBlock.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)PPCCompiledMethod.$(O) PPCCompiledMethod.$(H): PPCCompiledMethod.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)PPCCompiler.$(O) PPCCompiler.$(H): PPCCompiler.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)PPCCompilerTokenErrorStrategy.$(O) PPCCompilerTokenErrorStrategy.$(H): PPCCompilerTokenErrorStrategy.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
--- a/compiler/Make.spec	Fri May 29 07:25:31 2015 +0100
+++ b/compiler/Make.spec	Mon Jun 01 22:02:17 2015 +0100
@@ -53,6 +53,7 @@
 COMMON_CLASSES= \
 	PPCArguments \
 	PPCBridge \
+	PPCCodeBlock \
 	PPCCompiledMethod \
 	PPCCompiler \
 	PPCCompilerTokenErrorStrategy \
@@ -145,6 +146,7 @@
 COMMON_OBJS= \
     $(OUTDIR_SLASH)PPCArguments.$(O) \
     $(OUTDIR_SLASH)PPCBridge.$(O) \
+    $(OUTDIR_SLASH)PPCCodeBlock.$(O) \
     $(OUTDIR_SLASH)PPCCompiledMethod.$(O) \
     $(OUTDIR_SLASH)PPCCompiler.$(O) \
     $(OUTDIR_SLASH)PPCCompilerTokenErrorStrategy.$(O) \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/compiler/PPCCodeBlock.st	Mon Jun 01 22:02:17 2015 +0100
@@ -0,0 +1,145 @@
+"{ Package: 'stx:goodies/petitparser/compiler' }"
+
+"{ NameSpace: Smalltalk }"
+
+Object subclass:#PPCCodeBlock
+	instanceVariableNames:'buffer indentation temporaries'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'PetitCompiler-Compiler-Codegen'
+!
+
+
+!PPCCodeBlock class methodsFor:'instance creation'!
+
+new
+    "return an initialized instance"
+
+    ^ self basicNew initialize.
+! !
+
+!PPCCodeBlock methodsFor:'as yet unclassified'!
+
+add: string
+    self nl.
+    ((Smalltalk respondsTo:#isSmalltalkX) and:[ Smalltalk isSmalltalkX ]) ifTrue:[ 
+        indentation * 4 timesRepeat: [ buffer nextPut: Character space  ].
+    ] ifFalse:[ 
+        indentation timesRepeat: [ buffer nextPut: Character tab  ].
+    ].
+    self addOnLine: string.
+
+    "Modified: / 21-05-2015 / 15:42:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+addOnLine: string
+    buffer nextPutAll: string.
+!
+
+nl
+    ^ buffer nextPut: Character cr
+! !
+
+!PPCCodeBlock methodsFor:'code generation'!
+
+code: aStringOrBlock
+    aStringOrBlock isString ifTrue:[ 
+        buffer nextPutAll: aStringOrBlock
+    ] ifFalse:[ 
+        aStringOrBlock value
+    ].
+
+    "Created: / 01-06-2015 / 21:07:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!PPCCodeBlock methodsFor:'code generation - variables'!
+
+allocateTemporaryVariableNamed:preferredName 
+    "Allocate a new variable with (preferably) given name.
+     Returns a real variable name that should be used."
+    
+    (temporaries includes:preferredName) ifFalse:[
+        temporaries add:preferredName.
+        ^ preferredName
+    ] ifTrue:[
+        | name |
+
+        name := preferredName , '_' , (temporaries size + 1) printString.
+        temporaries add:name.
+        ^ name
+    ].
+
+    "Created: / 23-04-2015 / 17:37:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 01-06-2015 / 21:03:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!PPCCodeBlock methodsFor:'indentation'!
+
+dedent
+    indentation := indentation - 1
+!
+
+indent 
+    indentation := indentation + 1
+!
+
+indentationLevel
+    ^ indentation
+!
+
+indentationLevel: value
+    indentation := value
+! !
+
+!PPCCodeBlock methodsFor:'initialization'!
+
+initialize
+    "Invoked when a new instance is created."
+
+    "/ please change as required (and remove this comment)
+    buffer := String new writeStream.
+    indentation := 1.
+    temporaries := OrderedCollection new.          
+
+
+    "/ super initialize.   -- commented since inherited method does nothing
+
+    "Modified: / 01-06-2015 / 20:57:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!PPCCodeBlock methodsFor:'printing and storing'!
+
+codeOn: aStream
+    "Dumps generated code on given stream"
+
+    temporaries notEmpty ifTrue:[
+        ((Smalltalk respondsTo:#isSmalltalkX) and:[ Smalltalk isSmalltalkX ]) ifTrue:[ 
+            indentation * 4 timesRepeat: [ aStream nextPut: Character space  ].
+        ] ifFalse:[ 
+            indentation timesRepeat: [ buffer nextPut: Character tab  ].
+        ].
+        aStream nextPut: $|.
+        temporaries do:[:e | aStream space; nextPutAll: e  ].
+        aStream space.
+        aStream nextPut: $|. 
+        self nl.
+        "In Smalltalk/X, there should be a blank line after temporaries"
+        ((Smalltalk respondsTo:#isSmalltalkX) and:[ Smalltalk isSmalltalkX ]) ifTrue:[ 
+            self nl.
+        ].
+    ].
+    aStream nextPutAll: buffer contents
+
+    "Created: / 01-06-2015 / 21:26:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!PPCCodeBlock class methodsFor:'documentation'!
+
+version
+    ^ 'Path: stx/goodies/petitparser/compiler/PPCCodeBlock.st, Version: 1.0, User: jv, Time: 2015-06-01T21:57:38.671+01'
+!
+
+version_HG
+    ^ 'Path: stx/goodies/petitparser/compiler/PPCCodeBlock.st, Version: 1.0, User: jv, Time: 2015-06-01T21:57:38.671+01'
+! !
+
--- a/compiler/PPCCompiler.st	Fri May 29 07:25:31 2015 +0100
+++ b/compiler/PPCCompiler.st	Mon Jun 01 22:02:17 2015 +0100
@@ -133,12 +133,6 @@
     currentMethod addOnLine: string.
 !
 
-addVariable: name
-    ^ self currentNonInlineMethod addVariable: name
-
-    "Modified: / 23-04-2015 / 17:34:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
 call: anotherMethod
     currentMethod add: anotherMethod call.
 !
@@ -252,28 +246,46 @@
     "Modified: / 23-04-2015 / 20:51:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
+codeProfileStart
+    self add: 'context methodInvoked: #', currentMethod methodName, '.'
+
+    "Created: / 01-06-2015 / 21:17:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+codeProfileStop
+    self add: 'context methodFinished: #', currentMethod methodName, '.'
+
+    "Created: / 01-06-2015 / 21:19:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 codeReturn
    currentMethod isInline ifTrue: [
-				"If inlined, the return variable already holds the value"
-		] ifFalse: [
-				self add: '^ ', currentMethod returnVariable  
-   ].
+        "If inlined, the return variable already holds the value"
+    ] ifFalse: [
+        arguments profile ifTrue:[ 
+            self codeProfileStop.
+        ]. 
+        self add: '^ ', currentMethod returnVariable  
+    ].
 
-	"Created: / 23-04-2015 / 18:01:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-	"Modified: / 23-04-2015 / 20:51:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Created: / 23-04-2015 / 18:01:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 01-06-2015 / 21:49:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 codeReturn: code
     " - returns whatever is in code OR
       - assigns whatever is in code into the returnVariable"
-   currentMethod isInline ifTrue:[ 
+    currentMethod isInline ifTrue:[
         self codeEvaluateAndAssign: code to: currentMethod returnVariable. 
-   ] ifFalse: [ 
-        self add: '^ ', code 		
+    ] ifFalse: [ 
+        arguments profile ifTrue:[ 
+            self codeProfileStop.
+        ].   
+        self add: '^ ', code            
     ]
 
     "Created: / 23-04-2015 / 18:01:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 23-04-2015 / 20:51:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 01-06-2015 / 21:48:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 codeStoreValueOf: aBlock intoVariable: aString
@@ -427,12 +439,11 @@
     
     currentMethod := PPCInlinedMethod new.
     currentMethod id: id.   
-    currentMethod profile: arguments profile.
     currentMethod returnVariable: returnVariable.
     currentMethod indentationLevel: indentationLevel.
     self push.
 
-    "Modified: / 23-04-2015 / 18:28:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 01-06-2015 / 21:48:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 startMethod: id
@@ -440,28 +451,29 @@
 
     currentMethod := PPCMethod new.
     currentMethod id: id.
-    currentMethod profile: arguments profile.    
+    arguments profile ifTrue:[ 
+        self codeProfileStart.
+    ].
     self push.      
                 
     self cache: id as: currentMethod.
 
-    "Modified: / 23-04-2015 / 18:36:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 01-06-2015 / 21:19:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 stopInline
-
     ^ self pop.
 
-    "Modified: / 23-04-2015 / 18:28:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 01-06-2015 / 21:37:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 stopMethod
-    self cache: currentMethod methodName as: currentMethod.
+   self cache: currentMethod methodName as: currentMethod.
     
     "arguments profile ifTrue: [ Transcript show: currentMethod code; cr. ]."
     ^ self pop.
 
-    "Modified: / 01-05-2015 / 14:18:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 01-06-2015 / 21:38:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 top
--- a/compiler/PPCInlinedMethod.st	Fri May 29 07:25:31 2015 +0100
+++ b/compiler/PPCInlinedMethod.st	Mon Jun 01 22:02:17 2015 +0100
@@ -6,7 +6,7 @@
 	instanceVariableNames:''
 	classVariableNames:''
 	poolDictionaries:''
-	category:'PetitCompiler-Core'
+	category:'PetitCompiler-Compiler-Codegen'
 !
 
 !PPCInlinedMethod methodsFor:'as yet unclassified'!
@@ -16,7 +16,9 @@
 !
 
 code
-    ^ buffer contents trimRight
+    ^ (String streamContents:[:s | buffer codeOn:s ]) trimRight
+
+    "Modified (format): / 01-06-2015 / 21:44:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 isInline
--- a/compiler/PPCMethod.st	Fri May 29 07:25:31 2015 +0100
+++ b/compiler/PPCMethod.st	Mon Jun 01 22:02:17 2015 +0100
@@ -3,11 +3,10 @@
 "{ NameSpace: Smalltalk }"
 
 Object subclass:#PPCMethod
-	instanceVariableNames:'buffer variables indentation id profile variableForReturn
-		category'
+	instanceVariableNames:'buffer id variableForReturn category'
 	classVariableNames:''
 	poolDictionaries:''
-	category:'PetitCompiler-Core'
+	category:'PetitCompiler-Compiler-Codegen'
 !
 
 
@@ -41,57 +40,52 @@
 !
 
 code
-    ^ self methodName, Character cr asString,  
-        self variables, Character cr asString,
-        self profilingBegin, Character cr asString,
-        self body, Character cr asString
-"               self profilingEnd"
+    ^ String streamContents: [ :s |
+        s nextPutAll: self methodName; cr.
+        buffer codeOn: s.    
+    ]
 
-    "Modified: / 23-04-2015 / 19:26:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 01-06-2015 / 21:24:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 id: value
     id := value
 !
 
-methodName
-    ^ id
+indentationLevel
+    ^ buffer indentationLevel
+
+    "Created: / 01-06-2015 / 21:38:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
-profile
-    ^ profile
+indentationLevel: anInteger
+    buffer indentationLevel: anInteger
+
+    "Created: / 01-06-2015 / 21:38:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
-profile: aBoolean
-    profile := aBoolean 
+methodName
+    ^ id
 ! !
 
 !PPCMethod methodsFor:'as yet unclassified'!
 
 add: string
-    self nl.
-    ((Smalltalk respondsTo:#isSmalltalkX) and:[ Smalltalk isSmalltalkX ]) ifTrue:[ 
-        indentation * 4 timesRepeat: [ buffer nextPut: Character space  ].
-    ] ifFalse:[ 
-        indentation timesRepeat: [ buffer nextPut: Character tab  ].
-    ].
-    self addOnLine: string.
+    buffer add: string
 
-    "Modified: / 21-05-2015 / 15:42:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 01-06-2015 / 21:09:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 addOnLine: string
-    buffer nextPutAll: string.
+    buffer addOnLine: string
+
+    "Modified: / 01-06-2015 / 21:09:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 call
     ^ 'self ', self methodName, '.'.
 !
 
-nl
-    ^ buffer nextPut: Character cr
-!
-
 profilingBegin
     self profile ifTrue: [ 
  				^ '  context methodInvoked: #', id, '.'	
@@ -106,44 +100,48 @@
     ^ ''
 ! !
 
+!PPCMethod methodsFor:'code generation - indenting'!
+
+dedent
+    buffer dedent
+
+    "Created: / 01-06-2015 / 21:32:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+indent
+    buffer indent
+
+    "Created: / 01-06-2015 / 21:32:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+nl
+
+    buffer nl
+
+    "Created: / 01-06-2015 / 21:52:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !PPCMethod methodsFor:'code generation - variables'!
 
-addVariable: name
-    (variables includes: name) ifTrue:[ 
-        self error:'Duplicate variable name, must rename'.
+allocateReturnVariable    
+    ^ variableForReturn isNil ifTrue:[ 
+            variableForReturn := self allocateTemporaryVariableNamed: 'retval'  
+    ] ifFalse:[ 
+            variableForReturn
     ].
-    variables add: name.
-
-    "Modified: / 23-04-2015 / 12:29:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-allocateReturnVariable
-    
-	^ variableForReturn isNil ifTrue:[ 
-		variableForReturn := self allocateTemporaryVariableNamed: 'retval'  
-	] ifFalse:[ 
-		variableForReturn
-	].
 
     "Created: / 23-04-2015 / 18:03:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified (format): / 01-06-2015 / 21:01:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 allocateTemporaryVariableNamed:preferredName 
     "Allocate a new variable with (preferably) given name.
      Returns a real variable name that should be used."
-    
-    (variables includes:preferredName) ifFalse:[
-	variables add:preferredName.
-	^ preferredName
-    ] ifTrue:[
-	| name |
 
-	name := preferredName , '_' , (variables size + 1) printString.
-	variables add:name.
-	^ name
-    ].
+    ^ buffer allocateTemporaryVariableNamed: preferredName
 
     "Created: / 23-04-2015 / 17:37:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 01-06-2015 / 21:04:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 returnVariable
@@ -157,36 +155,14 @@
 
     "Created: / 23-04-2015 / 18:23:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 23-04-2015 / 21:08:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-variables
-    ^ '  | ', (variables inject: '' into: [ :s :e | s, ' ', e]), ' |'
-! !
-
-!PPCMethod methodsFor:'indentation'!
-
-dedent
-    indentation := indentation - 1
-!
-
-indent 
-    indentation := indentation + 1
-!
-
-indentationLevel
-    ^ indentation
-!
-
-indentationLevel: value
-    indentation := value
 ! !
 
 !PPCMethod methodsFor:'initialization'!
 
 initialize
-    buffer := WriteStream on: ''.
-    indentation := 1.
-    variables := OrderedCollection new.
+    buffer := PPCCodeBlock new.
+
+    "Modified: / 01-06-2015 / 21:33:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !PPCMethod methodsFor:'printing'!
--- a/compiler/PPCTokenizingConfiguration.st	Fri May 29 07:25:31 2015 +0100
+++ b/compiler/PPCTokenizingConfiguration.st	Mon Jun 01 22:02:17 2015 +0100
@@ -9,6 +9,7 @@
 	category:'PetitCompiler-Core'
 !
 
+
 !PPCTokenizingConfiguration methodsFor:'compiling'!
 
 invokePhases
@@ -59,3 +60,10 @@
     self remember: #tokenize
 ! !
 
+!PPCTokenizingConfiguration class methodsFor:'documentation'!
+
+version_HG
+
+    ^ '$Changeset: <not expanded> $'
+! !
+
--- a/compiler/abbrev.stc	Fri May 29 07:25:31 2015 +0100
+++ b/compiler/abbrev.stc	Mon Jun 01 22:02:17 2015 +0100
@@ -3,6 +3,7 @@
 # it provides information about a classes filename, category and especially namespace.
 PPCArguments PPCArguments stx:goodies/petitparser/compiler 'PetitCompiler-Core' 0
 PPCBridge PPCBridge stx:goodies/petitparser/compiler 'PetitCompiler-Core' 0
+PPCCodeBlock PPCCodeBlock stx:goodies/petitparser/compiler 'PetitCompiler-Compiler-Codegen' 0
 PPCCompiledMethod PPCCompiledMethod stx:goodies/petitparser/compiler 'PetitCompiler-Core' 0
 PPCCompiler PPCCompiler stx:goodies/petitparser/compiler 'PetitCompiler-Compiler' 0
 PPCCompilerTokenErrorStrategy PPCCompilerTokenErrorStrategy stx:goodies/petitparser/compiler 'PetitCompiler-Compiler' 0
@@ -13,7 +14,7 @@
 PPCContext PPCContext stx:goodies/petitparser/compiler 'PetitCompiler-Context' 0
 PPCContextMemento PPCContextMemento stx:goodies/petitparser/compiler 'PetitCompiler-Context' 0
 PPCGuard PPCGuard stx:goodies/petitparser/compiler 'PetitCompiler-Guards' 0
-PPCMethod PPCMethod stx:goodies/petitparser/compiler 'PetitCompiler-Core' 0
+PPCMethod PPCMethod stx:goodies/petitparser/compiler 'PetitCompiler-Compiler-Codegen' 0
 PPCNode PPCNode stx:goodies/petitparser/compiler 'PetitCompiler-Nodes' 0
 PPCNodeVisitor PPCNodeVisitor stx:goodies/petitparser/compiler 'PetitCompiler-Visitors' 0
 PPCPluggableConfiguration PPCPluggableConfiguration stx:goodies/petitparser/compiler 'PetitCompiler-Core' 0
@@ -27,7 +28,7 @@
 PPCCodeGenerator PPCCodeGenerator stx:goodies/petitparser/compiler 'PetitCompiler-Visitors' 0
 PPCDelegateNode PPCDelegateNode stx:goodies/petitparser/compiler 'PetitCompiler-Nodes' 0
 PPCEndOfFileNode PPCEndOfFileNode stx:goodies/petitparser/compiler 'PetitCompiler-Nodes' 0
-PPCInlinedMethod PPCInlinedMethod stx:goodies/petitparser/compiler 'PetitCompiler-Core' 0
+PPCInlinedMethod PPCInlinedMethod stx:goodies/petitparser/compiler 'PetitCompiler-Compiler-Codegen' 0
 PPCInliningVisitor PPCInliningVisitor stx:goodies/petitparser/compiler 'PetitCompiler-Visitors' 0
 PPCListNode PPCListNode stx:goodies/petitparser/compiler 'PetitCompiler-Nodes' 0
 PPCNilNode PPCNilNode stx:goodies/petitparser/compiler 'PetitCompiler-Nodes' 0
--- a/compiler/bc.mak	Fri May 29 07:25:31 2015 +0100
+++ b/compiler/bc.mak	Mon Jun 01 22:02:17 2015 +0100
@@ -35,7 +35,7 @@
 
 
 
-LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\goodies\petitparser -I$(INCLUDE_TOP)\stx\goodies\petitparser\analyzer -I$(INCLUDE_TOP)\stx\goodies\petitparser\parsers\java -I$(INCLUDE_TOP)\stx\goodies\petitparser\parsers\smalltalk -I$(INCLUDE_TOP)\stx\libbasic -I$(INCLUDE_TOP)\stx\libbasic2
+LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\goodies\petitparser -I$(INCLUDE_TOP)\stx\goodies\petitparser\analyzer -I$(INCLUDE_TOP)\stx\goodies\petitparser\parsers\java -I$(INCLUDE_TOP)\stx\goodies\petitparser\parsers\smalltalk -I$(INCLUDE_TOP)\stx\libbasic -I$(INCLUDE_TOP)\stx\libbasic2 -I$(INCLUDE_TOP)\stx\libwidg -I$(INCLUDE_TOP)\stx\libwidg2
 LOCALDEFINES=
 
 STCLOCALOPT=-package=$(PACKAGE) -I. $(LOCALINCLUDES) -headerDir=. $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES)  -varPrefix=$(LIBNAME)
@@ -54,7 +54,6 @@
 	pushd ..\..\..\libbasic & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\refactoryBrowser\parser & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\..\libbasic2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\..\..\libbasic3 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\..\libview & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd .. & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\..\libview2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
@@ -80,6 +79,7 @@
 # BEGINMAKEDEPEND --- do not remove this line; make depend needs it
 $(OUTDIR)PPCArguments.$(O) PPCArguments.$(H): PPCArguments.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)PPCBridge.$(O) PPCBridge.$(H): PPCBridge.st $(INCLUDE_TOP)\stx\goodies\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)PPCCodeBlock.$(O) PPCCodeBlock.$(H): PPCCodeBlock.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)PPCCompiledMethod.$(O) PPCCompiledMethod.$(H): PPCCompiledMethod.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)PPCCompiler.$(O) PPCCompiler.$(H): PPCCompiler.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)PPCCompilerTokenErrorStrategy.$(O) PPCCompilerTokenErrorStrategy.$(H): PPCCompilerTokenErrorStrategy.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
--- a/compiler/benchmarks/Make.proto	Fri May 29 07:25:31 2015 +0100
+++ b/compiler/benchmarks/Make.proto	Mon Jun 01 22:02:17 2015 +0100
@@ -34,7 +34,7 @@
 # add the path(es) here:,
 # ********** OPTIONAL: MODIFY the next lines ***
 # LOCALINCLUDES=-Ifoo -Ibar
-LOCALINCLUDES= -I$(INCLUDE_TOP)/stx/goodies/petitparser -I$(INCLUDE_TOP)/stx/goodies/petitparser/compiler -I$(INCLUDE_TOP)/stx/goodies/petitparser/compiler/tests -I$(INCLUDE_TOP)/stx/goodies/petitparser/compiler/tests/extras -I$(INCLUDE_TOP)/stx/goodies/petitparser/parsers/java -I$(INCLUDE_TOP)/stx/goodies/petitparser/parsers/smalltalk -I$(INCLUDE_TOP)/stx/goodies/petitparser/parsers/smalltalk/tests -I$(INCLUDE_TOP)/stx/goodies/petitparser/tests -I$(INCLUDE_TOP)/stx/goodies/refactoryBrowser/parser -I$(INCLUDE_TOP)/stx/goodies/sunit -I$(INCLUDE_TOP)/stx/libbasic
+LOCALINCLUDES= -I$(INCLUDE_TOP)/stx/goodies/petitparser -I$(INCLUDE_TOP)/stx/goodies/petitparser/compiler -I$(INCLUDE_TOP)/stx/goodies/petitparser/compiler/tests/extras -I$(INCLUDE_TOP)/stx/goodies/petitparser/parsers/java -I$(INCLUDE_TOP)/stx/goodies/petitparser/parsers/smalltalk -I$(INCLUDE_TOP)/stx/goodies/refactoryBrowser/parser -I$(INCLUDE_TOP)/stx/libbasic
 
 
 # if you need any additional defines for embedded C code,
@@ -104,14 +104,8 @@
 	cd ../../../../libbasic && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../../../refactoryBrowser/parser && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../../../../libbasic2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd ../../../../libbasic3 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd ../../../../libview && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../../ && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd ../../../../libview2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../../parsers/smalltalk && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd ../../../sunit && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd ../../tests && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd ../../parsers/smalltalk/tests && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 
 
 
--- a/compiler/benchmarks/PPCSmalltalkNoopParser.st	Fri May 29 07:25:31 2015 +0100
+++ b/compiler/benchmarks/PPCSmalltalkNoopParser.st	Mon Jun 01 22:02:17 2015 +0100
@@ -23,12 +23,10 @@
 !
 
 startMethod
-        "Make sure the method node has the source code properly set."
-        
-        ^ ([ :stream | stream collection ] asParser and , super startMethod)
-                map: [ :source :node | ]
-
-    "Modified: / 16-05-2015 / 09:47:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+	"Make sure the method node has the source code properly set."
+	
+	^ ([ :stream | stream collection ] asParser and , super startMethod)
+		map: [ :source :node | node source: source ]
 ! !
 
 !PPCSmalltalkNoopParser methodsFor:'grammar'!
--- a/compiler/benchmarks/abbrev.stc	Fri May 29 07:25:31 2015 +0100
+++ b/compiler/benchmarks/abbrev.stc	Mon Jun 01 22:02:17 2015 +0100
@@ -3,5 +3,5 @@
 # it provides information about a classes filename, category and especially namespace.
 PPCBenchmark PPCBenchmark stx:goodies/petitparser/compiler/benchmarks 'PetitCompiler-Benchmarks-Core' 0
 PPCSmalltalkNoopParser PPCSmalltalkNoopParser stx:goodies/petitparser/compiler/benchmarks 'PetitCompiler-Benchmarks-Parsers' 0
+stx_goodies_petitparser_compiler_benchmarks stx_goodies_petitparser_compiler_benchmarks stx:goodies/petitparser/compiler/benchmarks '* Projects & Packages *' 3
 PPCSmalltalkNoopParserTests PPCSmalltalkNoopParserTests stx:goodies/petitparser/compiler/benchmarks 'PetitCompiler-Benchmarks-Parsers-Tests' 1
-stx_goodies_petitparser_compiler_benchmarks stx_goodies_petitparser_compiler_benchmarks stx:goodies/petitparser/compiler/benchmarks '* Projects & Packages *' 3
--- a/compiler/benchmarks/bc.mak	Fri May 29 07:25:31 2015 +0100
+++ b/compiler/benchmarks/bc.mak	Mon Jun 01 22:02:17 2015 +0100
@@ -35,7 +35,7 @@
 
 
 
-LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\goodies\petitparser -I$(INCLUDE_TOP)\stx\goodies\petitparser\compiler -I$(INCLUDE_TOP)\stx\goodies\petitparser\compiler\tests -I$(INCLUDE_TOP)\stx\goodies\petitparser\compiler\tests\extras -I$(INCLUDE_TOP)\stx\goodies\petitparser\parsers\java -I$(INCLUDE_TOP)\stx\goodies\petitparser\parsers\smalltalk -I$(INCLUDE_TOP)\stx\goodies\petitparser\parsers\smalltalk\tests -I$(INCLUDE_TOP)\stx\goodies\petitparser\tests -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser -I$(INCLUDE_TOP)\stx\goodies\sunit -I$(INCLUDE_TOP)\stx\libbasic
+LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\goodies\petitparser -I$(INCLUDE_TOP)\stx\goodies\petitparser\compiler -I$(INCLUDE_TOP)\stx\goodies\petitparser\compiler\tests\extras -I$(INCLUDE_TOP)\stx\goodies\petitparser\parsers\java -I$(INCLUDE_TOP)\stx\goodies\petitparser\parsers\smalltalk -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser -I$(INCLUDE_TOP)\stx\libbasic
 LOCALDEFINES=
 
 STCLOCALOPT=-package=$(PACKAGE) -I. $(LOCALINCLUDES) -headerDir=. $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES)  -varPrefix=$(LIBNAME)
@@ -54,14 +54,8 @@
 	pushd ..\..\..\..\libbasic & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\..\refactoryBrowser\parser & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\..\..\libbasic2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\..\..\..\libbasic3 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\..\..\..\libview & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\.. & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\..\..\..\libview2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\parsers\smalltalk & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\..\..\sunit & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\..\tests & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\..\parsers\smalltalk\tests & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 
 
 
--- a/compiler/benchmarks/stx_goodies_petitparser_compiler_benchmarks.st	Fri May 29 07:25:31 2015 +0100
+++ b/compiler/benchmarks/stx_goodies_petitparser_compiler_benchmarks.st	Mon Jun 01 22:02:17 2015 +0100
@@ -61,10 +61,7 @@
     ^ #(
         #'stx:goodies/petitparser'    "PPCompositeParser - superclass of PPCSmalltalkNoopParser"
         #'stx:goodies/petitparser/parsers/smalltalk'    "PPSmalltalkGrammar - superclass of PPCSmalltalkNoopParser"
-        #'stx:goodies/petitparser/parsers/smalltalk/tests'    "PPSmalltalkGrammarTests - superclass of PPCSmalltalkNoopParserTests"
-        #'stx:goodies/petitparser/tests'    "PPAbstractParserTest - superclass of PPCSmalltalkNoopParserTests"
-        #'stx:goodies/sunit'    "TestAsserter - superclass of PPCSmalltalkNoopParserTests"
-        #'stx:libbasic'    "LibraryDefinition - superclass of stx_goodies_petitparser_compiler_benchmarks"
+        #'stx:libbasic'    "Autoload - superclass of PPCSmalltalkNoopParserTests"
     )
 !
 
@@ -108,8 +105,8 @@
         "<className> or (<className> attributes...) in load order"
         PPCBenchmark
         PPCSmalltalkNoopParser
+        #'stx_goodies_petitparser_compiler_benchmarks'
         (PPCSmalltalkNoopParserTests autoload)
-        #'stx_goodies_petitparser_compiler_benchmarks'
     )
 !
 
--- a/compiler/extensions.st	Fri May 29 07:25:31 2015 +0100
+++ b/compiler/extensions.st	Mon Jun 01 22:02:17 2015 +0100
@@ -1,5 +1,3 @@
-"{ Encoding: utf8 }"
-
 "{ Package: 'stx:goodies/petitparser/compiler' }"!
 
 !Character methodsFor:'*petitcompiler'!
--- a/compiler/libInit.cc	Fri May 29 07:25:31 2015 +0100
+++ b/compiler/libInit.cc	Mon Jun 01 22:02:17 2015 +0100
@@ -29,6 +29,7 @@
 __BEGIN_PACKAGE2__("libstx_goodies_petitparser_compiler", _libstx_goodies_petitparser_compiler_Init, "stx:goodies/petitparser/compiler");
 _PPCArguments_Init(pass,__pRT__,snd);
 _PPCBridge_Init(pass,__pRT__,snd);
+_PPCCodeBlock_Init(pass,__pRT__,snd);
 _PPCCompiledMethod_Init(pass,__pRT__,snd);
 _PPCCompiler_Init(pass,__pRT__,snd);
 _PPCCompilerTokenErrorStrategy_Init(pass,__pRT__,snd);
--- a/compiler/stx_goodies_petitparser_compiler.st	Fri May 29 07:25:31 2015 +0100
+++ b/compiler/stx_goodies_petitparser_compiler.st	Mon Jun 01 22:02:17 2015 +0100
@@ -76,6 +76,8 @@
     ^ #(
         #'stx:goodies/petitparser/analyzer'    "PPSentinel - referenced by PPCompiledParser class>>referringParser"
         #'stx:libbasic2'    "Stack - referenced by PPCCompiler>>initializeForCompiledClassName:"
+        #'stx:libwidg'    "ScrollableView - referenced by PPCNode>>inspector2TabTree"
+        #'stx:libwidg2'    "HierarchicalListView - referenced by PPCNode>>inspector2TabTree"
     )
 !
 
@@ -109,6 +111,7 @@
         "<className> or (<className> attributes...) in load order"
         PPCArguments
         PPCBridge
+        PPCCodeBlock
         PPCCompiledMethod
         PPCCompiler
         PPCCompilerTokenErrorStrategy
@@ -308,6 +311,7 @@
         PPParser allNodesDo:seen:
         PPSmalltalkWhitespaceParser hash
         PPParser compileTokenizing
+        PPCompositeParser asCompilerNode
     )
 ! !
 
--- a/compiler/tests/Make.proto	Fri May 29 07:25:31 2015 +0100
+++ b/compiler/tests/Make.proto	Mon Jun 01 22:02:17 2015 +0100
@@ -103,7 +103,6 @@
 prereq:
 	cd ../../../../libbasic && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../../../../libbasic2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd ../../../../libbasic3 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../../../../libview && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../../ && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../../../../libview2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
--- a/compiler/tests/PPCSpecializingVisitorTest.st	Fri May 29 07:25:31 2015 +0100
+++ b/compiler/tests/PPCSpecializingVisitorTest.st	Mon Jun 01 22:02:17 2015 +0100
@@ -9,6 +9,7 @@
 	category:'PetitCompiler-Tests-Visitors'
 !
 
+
 !PPCSpecializingVisitorTest methodsFor:'as yet unclassified'!
 
 asNode: aPPParser
@@ -259,3 +260,10 @@
     self assert: result child literal = 'foo'.
 ! !
 
+!PPCSpecializingVisitorTest class methodsFor:'documentation'!
+
+version_HG
+
+    ^ '$Changeset: <not expanded> $'
+! !
+
--- a/compiler/tests/bc.mak	Fri May 29 07:25:31 2015 +0100
+++ b/compiler/tests/bc.mak	Mon Jun 01 22:02:17 2015 +0100
@@ -53,7 +53,6 @@
 prereq:
 	pushd ..\..\..\..\libbasic & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\..\..\libbasic2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\..\..\..\libbasic3 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\..\..\libview & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\.. & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\..\..\libview2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
--- a/compiler/tests/extras/Make.proto	Fri May 29 07:25:31 2015 +0100
+++ b/compiler/tests/extras/Make.proto	Mon Jun 01 22:02:17 2015 +0100
@@ -103,13 +103,11 @@
 prereq:
 	cd ../../../../../libbasic && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../../../../../libbasic2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd ../../../../../libbasic3 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../../../../../libview && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../../../ && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../../../../../libview2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../../../../sunit && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../../../tests && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd ../../../parsers/java && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 
 
 
--- a/compiler/tests/extras/PPLL1ExpressionGrammarTest.st	Fri May 29 07:25:31 2015 +0100
+++ b/compiler/tests/extras/PPLL1ExpressionGrammarTest.st	Mon Jun 01 22:02:17 2015 +0100
@@ -9,6 +9,7 @@
 	category:'PetitCompiler-Extras-Tests-Expressions'
 !
 
+
 !PPLL1ExpressionGrammarTest methodsFor:'as yet unclassified'!
 
 parserClass
@@ -98,3 +99,10 @@
     self assert: result third = 3.
 ! !
 
+!PPLL1ExpressionGrammarTest class methodsFor:'documentation'!
+
+version_HG
+
+    ^ '$Changeset: <not expanded> $'
+! !
+
--- a/compiler/tests/extras/abbrev.stc	Fri May 29 07:25:31 2015 +0100
+++ b/compiler/tests/extras/abbrev.stc	Mon Jun 01 22:02:17 2015 +0100
@@ -9,7 +9,6 @@
 PPCompiledExpressionGrammarResource PPCompiledExpressionGrammarResource stx:goodies/petitparser/compiler/tests/extras 'PetitCompiler-Extras-Tests-Expressions' 1
 PPCompiledExpressionGrammarTest PPCompiledExpressionGrammarTest stx:goodies/petitparser/compiler/tests/extras 'PetitCompiler-Extras-Tests-Expressions' 1
 PPCompiledJavaResource PPCompiledJavaResource stx:goodies/petitparser/compiler/tests/extras 'PetitCompiler-Extras-Tests-Java' 1
-PPCompiledJavaSyntaxTest PPCompiledJavaSyntaxTest stx:goodies/petitparser/compiler/tests/extras 'PetitCompiler-Extras-Tests-Java' 1
 PPCompiledSmalltalkGrammarResource PPCompiledSmalltalkGrammarResource stx:goodies/petitparser/compiler/tests/extras 'PetitCompiler-Extras-Tests-Smalltalk' 1
 PPCompiledSmalltalkGrammarTests PPCompiledSmalltalkGrammarTests stx:goodies/petitparser/compiler/tests/extras 'PetitCompiler-Extras-Tests-Smalltalk' 1
 PPExpressionGrammar PPExpressionGrammar stx:goodies/petitparser/compiler/tests/extras 'PetitCompiler-Extras-Tests-Expressions' 0
@@ -27,3 +26,4 @@
 PPCompiledSmalltalkVerificationTest PPCompiledSmalltalkVerificationTest stx:goodies/petitparser/compiler/tests/extras 'PetitCompiler-Extras-Tests-Smalltalk' 1
 PPTokenizedExpressionsVerificationTest PPTokenizedExpressionsVerificationTest stx:goodies/petitparser/compiler/tests/extras 'PetitCompiler-Extras-Tests-Expressions' 1
 PPTokenizedSmalltalkVerificationTest PPTokenizedSmalltalkVerificationTest stx:goodies/petitparser/compiler/tests/extras 'PetitCompiler-Extras-Tests-Smalltalk' 1
+PPCompiledJavaSyntaxTest PPCompiledJavaSyntaxTest stx:goodies/petitparser/compiler/tests/extras 'PetitCompiler-Extras-Tests-Java' 1
--- a/compiler/tests/extras/bc.mak	Fri May 29 07:25:31 2015 +0100
+++ b/compiler/tests/extras/bc.mak	Mon Jun 01 22:02:17 2015 +0100
@@ -53,13 +53,11 @@
 prereq:
 	pushd ..\..\..\..\..\libbasic & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\..\..\..\libbasic2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\..\..\..\..\libbasic3 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\..\..\..\libview & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\.. & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\..\..\..\libview2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\..\..\sunit & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\..\tests & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\..\..\parsers\java & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 
 
 
--- a/compiler/tests/extras/stx_goodies_petitparser_compiler_tests_extras.st	Fri May 29 07:25:31 2015 +0100
+++ b/compiler/tests/extras/stx_goodies_petitparser_compiler_tests_extras.st	Mon Jun 01 22:02:17 2015 +0100
@@ -84,10 +84,9 @@
 
     ^ #(
         #'stx:goodies/petitparser'    "PPCompositeParser - superclass of PPExpressionGrammar"
-        #'stx:goodies/petitparser/parsers/java'    "PPJavaLexiconTest - superclass of PPCompiledJavaSyntaxTest"
         #'stx:goodies/petitparser/tests'    "PPAbstractParserTest - superclass of PPCCompiledJavaVerificationTest"
         #'stx:goodies/sunit'    "TestAsserter - superclass of PPCCompiledJavaVerificationTest"
-        #'stx:libbasic'    "LibraryDefinition - superclass of stx_goodies_petitparser_compiler_tests_extras"
+        #'stx:libbasic'    "Autoload - superclass of PPCompiledJavaSyntaxTest"
     )
 !
 
@@ -103,6 +102,7 @@
 
     ^ #(
         #'stx:goodies/petitparser/compiler'    "PPCArguments - referenced by PPCSmalltalkTests>>setUp"
+        #'stx:goodies/petitparser/parsers/java'    "PPJavaSyntax - referenced by PPCCompiledJavaVerificationTest>>javaSyntax"
         #'stx:goodies/petitparser/parsers/smalltalk'    "PPSmalltalkGrammar - referenced by PPCSmalltalkVerificationTest>>smalltalkGrammar"
         #'stx:libbasic2'    "Random - referenced by PPCResources>>expressionOfSize:stream:"
     )
@@ -136,7 +136,6 @@
         PPCompiledExpressionGrammarResource
         PPCompiledExpressionGrammarTest
         PPCompiledJavaResource
-        (PPCompiledJavaSyntaxTest autoload)
         PPCompiledSmalltalkGrammarResource
         PPCompiledSmalltalkGrammarTests
         PPExpressionGrammar
@@ -154,6 +153,7 @@
         PPCompiledSmalltalkVerificationTest
         PPTokenizedExpressionsVerificationTest
         PPTokenizedSmalltalkVerificationTest
+        (PPCompiledJavaSyntaxTest autoload)
     )
 !