Fixes in parser jk_new_structure
authorvranyj1
Mon, 12 Mar 2012 19:05:30 +0000
branchjk_new_structure
changeset 1417 f4c3f5b90dd8
parent 1416 26c10dd1e5c6
child 1418 5f07e6439cbd
Fixes in parser
src/tools/JavaParserI.st
src/tools/JavaParserII.st
src/tools/JavaParserIITests.st
src/tools/Make.proto
src/tools/Make.spec
src/tools/bc.mak
src/tools/tools.rc
--- a/src/tools/JavaParserI.st	Mon Mar 12 09:58:19 2012 +0000
+++ b/src/tools/JavaParserI.st	Mon Mar 12 19:05:30 2012 +0000
@@ -29,6 +29,13 @@
 	privateIn:JavaParserI
 !
 
+PPParser subclass:#IdentifierParser
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	privateIn:JavaParserI
+!
+
 JavaParserI::SubParser subclass:#MultiLineCommentParser
 	instanceVariableNames:''
 	classVariableNames:''
@@ -158,9 +165,14 @@
 
 !JavaParserI methodsFor:'grammar-identifiers'!
 
-identifier 
+identifier
+
+    ^ IdentifierParser new
 
-	^  self asToken: (((keyword not) , (booleanLiteral not) , (nullLiteral not) , identifierChars ))
+
+"/    ^  self asToken: (((keyword not) , (booleanLiteral not) , (nullLiteral not) , identifierChars ))
+
+    "Modified: / 12-03-2012 / 17:38:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 identifierChars
@@ -869,6 +881,37 @@
     masterParser := aJavaPetitParser.
 ! !
 
+!JavaParserI::IdentifierParser methodsFor:'parsing'!
+
+parseOn:aStream
+    "Parses Java identifier from given Stream"
+
+    | ident |
+    ident := (String new: 10) writeStream.
+    aStream peek isLetter ifFalse:[
+        ^ PPFailure message:'letter expected' at: aStream position
+    ].
+    ident nextPut: aStream next.
+    [ 
+        aStream atEnd not and: [aStream peek isLetterOrDigit]
+    ] whileTrue:[
+        ident nextPut: aStream next.
+    ].
+
+    ident := ident contents.
+    (#('abstract' 'assert' 'boolean' 'break' 'byte' 'case'  'catch' 'char' 'class' 'const'
+           'continue' 'default' 'do' 'double' 'else' 'enum' 'extends' 'final'  'finally' 'float'
+           'for' 'if' 'goto' 'implements' 'import' 'instanceof' 'int' 'interface' 'long' 'native'
+           'new' 'package' 'private' 'protected' 'public' 'return' 'short' 'static' 'strictfp' 'super'
+           'switch' 'synchronized' 'this' 'throw' 'throws' 'transient' 'try' 'void' 'volatile' 'while'
+           'true' 'false' 'null') includes: ident) ifTrue:[
+               ^ PPFailure message:'identifier expected' at: aStream position
+            ].
+    ^ident
+
+    "Modified: / 12-03-2012 / 17:40:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !JavaParserI::MultiLineCommentParser methodsFor:'parsing'!
 
 buildNodeFrom: start to: end line: line text: text
--- a/src/tools/JavaParserII.st	Mon Mar 12 09:58:19 2012 +0000
+++ b/src/tools/JavaParserII.st	Mon Mar 12 19:05:30 2012 +0000
@@ -143,9 +143,11 @@
 
 elementValue 
 
-	^conditionalExpression
-	/ annotation 
-	/ elementValueArrayInitializer
+        ^(conditionalExpression
+        / annotation 
+        / elementValueArrayInitializer) trim
+
+    "Modified: / 12-03-2012 / 16:28:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 elementValueArrayInitializer
@@ -272,10 +274,12 @@
 
 annotation 
 
-	^(self tokenFor: '@') , qualifiedName ,
-	((self tokenFor: '(') , 
-		(elementValuePairs / elementValue) optional , 
-		(self tokenFor: '(') ) optional
+        ^(self tokenFor: '@') , qualifiedName ,
+        ((self tokenFor: '(') , 
+                (elementValuePairs / elementValue) optional , 
+                (self tokenFor: ')') ) optional
+
+    "Modified: / 12-03-2012 / 18:24:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 annotationMethodDeclaration
@@ -570,13 +574,15 @@
 
 interfaceModifiers
 
-	^ ((self abstractKW)
-		/(self  protectedKW) 
-		/(self  privateKW) 
-		/(self  publicKW) 
-		/(self  staticKW)
-		/(self  strictfpKW) 
-		/annotation) star
+        ^ ((self abstractKW)
+                /(self  protectedKW) 
+                /(self  privateKW) 
+                /(self  publicKW) 
+                /(self  staticKW)
+                /(self  strictfpKW) 
+                /annotation) star trim
+
+    "Modified: / 12-03-2012 / 17:54:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 normalInterfaceDeclaration
@@ -1059,6 +1065,41 @@
 	^(self  whileKW) , parExpression , statement
 ! !
 
+!JavaParserII methodsFor:'initialization'!
+
+initializeStartingAt: aSymbol
+        | allVariableNames ignoredVariableNames productionIndexesAndNames debugger |
+        self initialize.        
+
+        debugger := PPDebugger new.
+        "find all the productions that need to be initialized"
+        allVariableNames := self class allInstVarNames
+                collect: [ :each | each asSymbol ].
+        ignoredVariableNames := self class ignoredNames
+                collect: [ :each | each asSymbol ].
+        productionIndexesAndNames := ((1 to: self class instSize)
+                collect: [ :index | index -> (allVariableNames at: index) ])
+                reject: [ :assoc | ignoredVariableNames includes: assoc value ].
+
+        "initialize productions with an undefined parser to be replaced later"
+        parser := PPUnresolvedParser named: aSymbol.
+        productionIndexesAndNames do: [ :assoc |
+                self instVarAt: assoc key put: (PPUnresolvedParser named: assoc value) ].
+        parser def: (self perform: aSymbol).
+
+        "resolve unresolved parsers with their actual implementation"
+        productionIndexesAndNames do: [ :assoc |
+                (self respondsTo: assoc value)
+                        ifFalse: [ self error: 'Unable to initialize ' , assoc value printString ]
+                        ifTrue: [ (self instVarAt: assoc key) def: 
+                                (PPDebuggingParser parser:
+                                    ((self perform: assoc value)  name: assoc value; yourself)
+                                    debugger: debugger)
+                                ] ]
+
+    "Created: / 12-03-2012 / 16:51:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !JavaParserII methodsFor:'utility'!
 
 tokenFor: aString
--- a/src/tools/JavaParserIITests.st	Mon Mar 12 09:58:19 2012 +0000
+++ b/src/tools/JavaParserIITests.st	Mon Mar 12 19:05:30 2012 +0000
@@ -318,6 +318,26 @@
     "Modified (format): / 11-03-2012 / 13:41:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!JavaParserIITests methodsFor:'testing-annotations'!
+
+test_annotation_01
+
+    self 
+        parse: '@Documented'
+        rule: #annotation
+
+    "Created: / 12-03-2012 / 16:11:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_annotation_02
+
+    self 
+        parse: '@Target ( ElementType.ANNOTATION_TYPE)'
+        rule: #annotation
+
+    "Created: / 12-03-2012 / 16:11:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !JavaParserIITests methodsFor:'testing-classes'!
 
 testClassBody1
@@ -392,6 +412,7 @@
 testClassDeclaration2
 
         self parse: '
+        //aaa
         class myfirstjavaprog
 {  
         public static void main(String args[])
@@ -404,6 +425,63 @@
     "Created: / 10-03-2012 / 13:25:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
+testClassDeclaration3
+
+        self parse: '
+        @interface MyFirstAnnotation
+{  
+}'
+        rule: #annotationTypeDeclaration
+
+    "Created: / 12-03-2012 / 16:18:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+testClassDeclaration3b
+
+        self parse: '
+        @interface MyFirstAnnotation
+{  
+}'
+        rule: #interfaceDeclaration
+
+    "Created: / 12-03-2012 / 16:20:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+testClassDeclaration3c
+
+        self parse: '
+        @interface MyFirstAnnotation
+{  
+}'
+        rule: #classOrInterfaceDeclaration
+
+    "Created: / 12-03-2012 / 16:20:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+testClassDeclaration3d
+
+        self parse: '
+        @Target ( ElementType.ANNOTATION_TYPE )
+        public @interface MyFirstAnnotation
+{  
+}'
+        rule: #classOrInterfaceDeclaration
+
+    "Created: / 12-03-2012 / 16:21:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+testClassDeclaration3e
+
+        self parse: '
+        @Target 
+        public @interface MyFirstAnnotation
+{  
+}'
+        rule: #classOrInterfaceDeclaration
+
+    "Created: / 12-03-2012 / 17:03:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 testMethodDeclaration1
 
 	self 
@@ -434,6 +512,26 @@
         rule: #classBodyDeclaration
 
     "Created: / 10-03-2012 / 13:36:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_classModifiers_01
+
+    self 
+        parse: '@Documented'
+        rule: #classModifiers
+
+    "Created: / 12-03-2012 / 16:17:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_classModifiers_02
+
+    self 
+        parse: '
+                @Target ( ElementType.ANNOTATION_TYPE )
+                public'
+        rule: #classModifiers
+
+    "Created: / 12-03-2012 / 16:17:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !JavaParserIITests methodsFor:'testing-declarations'!
@@ -584,6 +682,179 @@
     "Created: / 11-03-2012 / 11:55:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!JavaParserIITests methodsFor:'tests-compilation units'!
+
+test_compilation_unit_01a
+
+    self parse:'
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Retention {
+}
+' rule: #interfaceDeclaration
+
+    "Created: / 12-03-2012 / 16:09:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_compilation_unit_01aa
+
+    self parse:'
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Retention {
+}
+' rule: #typeDeclaration
+
+    "Created: / 12-03-2012 / 18:25:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_compilation_unit_01ab
+
+    self parse:'
+
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Retention {
+}
+' rule: #compilationUnit
+
+    "Created: / 12-03-2012 / 18:25:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_compilation_unit_01ac
+
+    self parse:'
+package java.lang;
+
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Retention {
+}
+' rule: #compilationUnit
+
+    "Created: / 12-03-2012 / 18:26:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_compilation_unit_01ad
+
+    self parse:'
+package java.lang;
+
+@Retention(RetentionPolicy.RUNTIME)
+@Target(RetentionPolicy.RUNTIME)
+public @interface Retention {
+}
+' rule: #compilationUnit
+
+    "Created: / 12-03-2012 / 18:46:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_compilation_unit_01b
+
+    self parse:'
+/*
+ * Copyright 2003-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package java.lang.annotation;
+
+/**
+ * Indicates how long annotations with the annotated type are to
+ * be retained.  If no Retention annotation is present on
+ * an annotation type declaration, the retention policy defaults to
+ * {@code RetentionPolicy.CLASS}.
+ *
+ * <p>A Retention meta-annotation has effect only if the
+ * meta-annotated type is used directly for annotation.  It has no
+ * effect if the meta-annotated type is used as a member type in
+ * another annotation type.
+ *
+ * @author  Joshua Bloch
+ * @since 1.5
+ */
+@Documented
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.ANNOTATION_TYPE)
+public @interface Retention {
+    RetentionPolicy value();
+}
+' rule: #compilationUnit
+
+    "Created: / 12-03-2012 / 16:09:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_compilation_unit_01c
+
+    self parse:'
+/*
+ * Copyright 2003-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package java.lang.annotation;
+
+/**
+ * Indicates how long annotations with the annotated type are to
+ * be retained.  If no Retention annotation is present on
+ * an annotation type declaration, the retention policy defaults to
+ * {@code RetentionPolicy.CLASS}.
+ *
+ * <p>A Retention meta-annotation has effect only if the
+ * meta-annotated type is used directly for annotation.  It has no
+ * effect if the meta-annotated type is used as a member type in
+ * another annotation type.
+ *
+ * @author  Joshua Bloch
+ * @since 1.5
+ */
+@Documented
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.ANNOTATION_TYPE)
+public @interface Retention {
+
+}
+' rule: #start
+
+    "Created: / 12-03-2012 / 16:24:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !JavaParserIITests class methodsFor:'documentation'!
 
 version_SVN
--- a/src/tools/Make.proto	Mon Mar 12 09:58:19 2012 +0000
+++ b/src/tools/Make.proto	Mon Mar 12 19:05:30 2012 +0000
@@ -1,7 +1,7 @@
 # $Header$
 #
 # DO NOT EDIT
-# automagically generated from the projectDefinition: stx_libjava_tools at 2012-03-11 16:43:24.074.
+# automagically generated from the projectDefinition: stx_libjava_tools at 2012-03-12 19:05:56.321.
 #
 # Warning: once you modify this file, do not rerun
 # stmkmp or projectDefinition-build again - otherwise, your changes are lost.
@@ -153,7 +153,7 @@
 $(OUTDIR)JavaMethodDeclaratorNode.$(O) JavaMethodDeclaratorNode.$(H): JavaMethodDeclaratorNode.st $(INCLUDE_TOP)/stx/libjava/tools/JavaParseNode.$(H) $(INCLUDE_TOP)/stx/libcomp/ParseNode.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)JavaMethodNode.$(O) JavaMethodNode.$(H): JavaMethodNode.st $(INCLUDE_TOP)/stx/libjava/tools/JavaParseNode.$(H) $(INCLUDE_TOP)/stx/libcomp/ParseNode.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)JavaParserII.$(O) JavaParserII.$(H): JavaParserII.st $(INCLUDE_TOP)/stx/libjava/tools/JavaParserI.$(H) $(INCLUDE_TOP)/squeak/petitparser/PPCompositeParser.$(H) $(INCLUDE_TOP)/squeak/petitparser/PPDelegateParser.$(H) $(INCLUDE_TOP)/squeak/petitparser/PPParser.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
-$(OUTDIR)JavaSyntaxHighlighter_Old.$(O) JavaSyntaxHighlighter_Old.$(H): JavaSyntaxHighlighter_Old.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libjava/tools/JavaParser_Old.$(H) $(INCLUDE_TOP)/squeak/petitparser/PPCompositeParser.$(H) $(INCLUDE_TOP)/squeak/petitparser/PPDelegateParser.$(H) $(INCLUDE_TOP)/squeak/petitparser/PPParser.$(H) $(INCLUDE_TOP)/stx/libjava/tools/JavaParseNodeBuilder.$(H) $(STCHDR)
+$(OUTDIR)JavaSyntaxHighlighter_Old.$(O) JavaSyntaxHighlighter_Old.$(H): JavaSyntaxHighlighter_Old.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libjava/tools/JavaParseNodeBuilder.$(H) $(INCLUDE_TOP)/stx/libjava/tools/JavaParser_Old.$(H) $(INCLUDE_TOP)/squeak/petitparser/PPCompositeParser.$(H) $(INCLUDE_TOP)/squeak/petitparser/PPDelegateParser.$(H) $(INCLUDE_TOP)/squeak/petitparser/PPParser.$(H) $(STCHDR)
 $(OUTDIR)JavaTypeNode.$(O) JavaTypeNode.$(H): JavaTypeNode.st $(INCLUDE_TOP)/stx/libjava/tools/JavaParseNode.$(H) $(INCLUDE_TOP)/stx/libcomp/ParseNode.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)JavaArrayTypeNode.$(O) JavaArrayTypeNode.$(H): JavaArrayTypeNode.st $(INCLUDE_TOP)/stx/libjava/tools/JavaTypeNode.$(H) $(INCLUDE_TOP)/stx/libjava/tools/JavaParseNode.$(H) $(INCLUDE_TOP)/stx/libcomp/ParseNode.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)JavaBooleanTypeNode.$(O) JavaBooleanTypeNode.$(H): JavaBooleanTypeNode.st $(INCLUDE_TOP)/stx/libjava/tools/JavaTypeNode.$(H) $(INCLUDE_TOP)/stx/libjava/tools/JavaParseNode.$(H) $(INCLUDE_TOP)/stx/libcomp/ParseNode.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
--- a/src/tools/Make.spec	Mon Mar 12 09:58:19 2012 +0000
+++ b/src/tools/Make.spec	Mon Mar 12 19:05:30 2012 +0000
@@ -1,7 +1,7 @@
 # $Header$
 #
 # DO NOT EDIT
-# automagically generated from the projectDefinition: stx_libjava_tools at 2012-03-11 16:43:23.126.
+# automagically generated from the projectDefinition: stx_libjava_tools at 2012-03-12 19:05:55.529.
 #
 # Warning: once you modify this file, do not rerun
 # stmkmp or projectDefinition-build again - otherwise, your changes are lost.
--- a/src/tools/bc.mak	Mon Mar 12 09:58:19 2012 +0000
+++ b/src/tools/bc.mak	Mon Mar 12 19:05:30 2012 +0000
@@ -1,7 +1,7 @@
 # $Header$
 #
 # DO NOT EDIT
-# automagically generated from the projectDefinition: stx_libjava_tools at 2012-03-11 16:43:24.511.
+# automagically generated from the projectDefinition: stx_libjava_tools at 2012-03-12 19:05:56.509.
 #
 # Warning: once you modify this file, do not rerun
 # stmkmp or projectDefinition-build again - otherwise, your changes are lost.
@@ -92,7 +92,7 @@
 $(OUTDIR)JavaMethodDeclaratorNode.$(O) JavaMethodDeclaratorNode.$(H): JavaMethodDeclaratorNode.st $(INCLUDE_TOP)\stx\libjava\tools\JavaParseNode.$(H) $(INCLUDE_TOP)\stx\libcomp\ParseNode.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)JavaMethodNode.$(O) JavaMethodNode.$(H): JavaMethodNode.st $(INCLUDE_TOP)\stx\libjava\tools\JavaParseNode.$(H) $(INCLUDE_TOP)\stx\libcomp\ParseNode.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)JavaParserII.$(O) JavaParserII.$(H): JavaParserII.st $(INCLUDE_TOP)\stx\libjava\tools\JavaParserI.$(H) $(INCLUDE_TOP)\squeak\petitparser\PPCompositeParser.$(H) $(INCLUDE_TOP)\squeak\petitparser\PPDelegateParser.$(H) $(INCLUDE_TOP)\squeak\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)JavaSyntaxHighlighter_Old.$(O) JavaSyntaxHighlighter_Old.$(H): JavaSyntaxHighlighter_Old.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libjava\tools\JavaParser_Old.$(H) $(INCLUDE_TOP)\squeak\petitparser\PPCompositeParser.$(H) $(INCLUDE_TOP)\squeak\petitparser\PPDelegateParser.$(H) $(INCLUDE_TOP)\squeak\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libjava\tools\JavaParseNodeBuilder.$(H) $(STCHDR)
+$(OUTDIR)JavaSyntaxHighlighter_Old.$(O) JavaSyntaxHighlighter_Old.$(H): JavaSyntaxHighlighter_Old.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libjava\tools\JavaParseNodeBuilder.$(H) $(INCLUDE_TOP)\stx\libjava\tools\JavaParser_Old.$(H) $(INCLUDE_TOP)\squeak\petitparser\PPCompositeParser.$(H) $(INCLUDE_TOP)\squeak\petitparser\PPDelegateParser.$(H) $(INCLUDE_TOP)\squeak\petitparser\PPParser.$(H) $(STCHDR)
 $(OUTDIR)JavaTypeNode.$(O) JavaTypeNode.$(H): JavaTypeNode.st $(INCLUDE_TOP)\stx\libjava\tools\JavaParseNode.$(H) $(INCLUDE_TOP)\stx\libcomp\ParseNode.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)JavaArrayTypeNode.$(O) JavaArrayTypeNode.$(H): JavaArrayTypeNode.st $(INCLUDE_TOP)\stx\libjava\tools\JavaTypeNode.$(H) $(INCLUDE_TOP)\stx\libjava\tools\JavaParseNode.$(H) $(INCLUDE_TOP)\stx\libcomp\ParseNode.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)JavaBooleanTypeNode.$(O) JavaBooleanTypeNode.$(H): JavaBooleanTypeNode.st $(INCLUDE_TOP)\stx\libjava\tools\JavaTypeNode.$(H) $(INCLUDE_TOP)\stx\libjava\tools\JavaParseNode.$(H) $(INCLUDE_TOP)\stx\libcomp\ParseNode.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
--- a/src/tools/tools.rc	Mon Mar 12 09:58:19 2012 +0000
+++ b/src/tools/tools.rc	Mon Mar 12 19:05:30 2012 +0000
@@ -25,7 +25,7 @@
       VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2011\nCopyright eXept Software AG 1998-2011\0"
       VALUE "ProductName", "Smalltalk/X\0"
       VALUE "ProductVersion", "6.2.1.1\0"
-      VALUE "ProductDate", "Sun, 11 Mar 2012 15:43:26 GMT\0"
+      VALUE "ProductDate", "Mon, 12 Mar 2012 19:05:58 GMT\0"
     END
 
   END