Some more work on source partitioner. development
authorJan Vrany <jan.vrany@fit.cvut.cz>
Fri, 11 Jan 2013 12:37:38 +0000
branchdevelopment
changeset 1947 dbebba5f7d70
parent 1946 e61f570d24f2
child 1948 91735e531d52
Some more work on source partitioner.
tools/JavaParserI.st
tools/JavaScanner.st
tools/JavaSourcePartitioner.st
tools/JavaSourcePartitionerTests.st
tools/JavaSourceReference.st
tools/Make.proto
tools/Make.spec
tools/abbrev.stc
tools/bc.mak
tools/libInit.cc
tools/stx_libjava_tools.st
tools/tools.rc
--- a/tools/JavaParserI.st	Fri Jan 11 11:57:30 2013 +0000
+++ b/tools/JavaParserI.st	Fri Jan 11 12:37:38 2013 +0000
@@ -75,7 +75,9 @@
 new
     "return an initialized instance"
 
-    ^ self basicNew initialize.
+    ^ self basicNew initializeStartingAt: #start.
+
+    "Modified: / 11-01-2013 / 12:29:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !JavaParserI class methodsFor:'accessing'!
--- a/tools/JavaScanner.st	Fri Jan 11 11:57:30 2013 +0000
+++ b/tools/JavaScanner.st	Fri Jan 11 12:37:38 2013 +0000
@@ -1082,15 +1082,17 @@
 printOn:aStream
     "append a printed representation if the receiver to the argument, aStream"
 
-    super printOn:aStream.
-    aStream nextPutAll:'type: '.
+    aStream nextPut: ${.
     type printOn:aStream.
-    aStream nextPutAll:'value: '.
+    aStream nextPutAll:' - '.
     value printOn:aStream.
-    aStream nextPutAll:'startPosition: '.
+    aStream nextPutAll:' <'.
     startPosition printOn:aStream.
-    aStream nextPutAll:'endPosition: '.
+    aStream nextPutAll:'-'.
     endPosition printOn:aStream.
+    aStream nextPutAll:' >}'.
+
+    "Modified: / 11-01-2013 / 12:32:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !JavaScanner class methodsFor:'documentation'!
--- a/tools/JavaSourcePartitioner.st	Fri Jan 11 11:57:30 2013 +0000
+++ b/tools/JavaSourcePartitioner.st	Fri Jan 11 12:37:38 2013 +0000
@@ -4,7 +4,7 @@
 	instanceVariableNames:''
 	classVariableNames:''
 	poolDictionaries:''
-	category:'Languages-Java-Tools'
+	category:'Languages-Java-Parser-Utils'
 !
 
 !JavaSourcePartitioner class methodsFor:'documentation'!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/JavaSourcePartitionerTests.st	Fri Jan 11 12:37:38 2013 +0000
@@ -0,0 +1,56 @@
+"{ Package: 'stx:libjava/tools' }"
+
+PPCompositeParserTest subclass:#JavaSourcePartitionerTests
+	instanceVariableNames:'partitioner'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Languages-Java-Tests-Parser'
+!
+
+
+!JavaSourcePartitionerTests methodsFor:'accessing'!
+
+parserClass
+        ^ JavaSourcePartitioner
+
+    "Modified: / 11-01-2013 / 12:18:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!JavaSourcePartitionerTests methodsFor:'parsing'!
+
+parse: aString rule: aSymbol
+        | production |
+
+        partitioner := production := self parserInstance.
+        aSymbol = #start
+                ifFalse: [ production := production productionAt: aSymbol ].
+        result :=production parse: (JavaScanner for: aString).
+        self
+                deny: result isPetitFailure
+                description: 'Unable to parse ' , aString printString
+                resumable: true.
+        ^ result
+
+    "Created: / 11-01-2013 / 12:21:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!JavaSourcePartitionerTests methodsFor:'tests'!
+
+test_01
+    self parse: '
+class X {
+    public int foo() {
+        return 10;
+    }
+}
+    '
+
+    "Created: / 11-01-2013 / 12:16:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!JavaSourcePartitionerTests class methodsFor:'documentation'!
+
+version_HG
+
+    ^ '$Changeset: <not expanded> $'
+! !
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/JavaSourceReference.st	Fri Jan 11 12:37:38 2013 +0000
@@ -0,0 +1,42 @@
+"{ Package: 'stx:libjava/tools' }"
+
+Object subclass:#JavaSourceReference
+	instanceVariableNames:'source offset length'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Languages-Java-Parser-Utils'
+!
+
+
+!JavaSourceReference methodsFor:'accessing'!
+
+length
+    ^ length
+!
+
+length:something
+    length := something.
+!
+
+offset
+    ^ offset
+!
+
+offset:something
+    offset := something.
+!
+
+source
+    ^ source
+!
+
+source:something
+    source := something.
+! !
+
+!JavaSourceReference class methodsFor:'documentation'!
+
+version_HG
+
+    ^ '$Changeset: <not expanded> $'
+! !
--- a/tools/Make.proto	Fri Jan 11 11:57:30 2013 +0000
+++ b/tools/Make.proto	Fri Jan 11 12:37:38 2013 +0000
@@ -165,6 +165,8 @@
 $(OUTDIR)JavaScannerBase.$(O) JavaScannerBase.$(H): JavaScannerBase.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)JavaSetInspectorView.$(O) JavaSetInspectorView.$(H): JavaSetInspectorView.st $(INCLUDE_TOP)/stx/libtool/SetInspectorView.$(H) $(INCLUDE_TOP)/stx/libtool/InspectorView.$(H) $(INCLUDE_TOP)/stx/libview/SimpleView.$(H) $(INCLUDE_TOP)/stx/libview/DisplaySurface.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsMedium.$(H) $(INCLUDE_TOP)/stx/libview/DeviceGraphicsContext.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsContext.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)JavaSettingsApplication.$(O) JavaSettingsApplication.$(H): JavaSettingsApplication.st $(INCLUDE_TOP)/stx/libtool/AbstractSettingsApplication.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItem.$(H) $(INCLUDE_TOP)/stx/libview2/SimpleDialog.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalList.$(H) $(INCLUDE_TOP)/stx/libbasic2/List.$(H) $(INCLUDE_TOP)/stx/libbasic/OrderedCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/SequenceableCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(STCHDR)
+$(OUTDIR)JavaSourcePartitionerTests.$(O) JavaSourcePartitionerTests.$(H): JavaSourcePartitionerTests.st $(INCLUDE_TOP)/stx/goodies/petitparser/PPCompositeParserTest.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPAbstractParseTest.$(H) $(INCLUDE_TOP)/stx/goodies/sunit/TestCase.$(H) $(INCLUDE_TOP)/stx/goodies/sunit/TestAsserter.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)JavaSourceReference.$(O) JavaSourceReference.$(H): JavaSourceReference.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)stx_libjava_tools.$(O) stx_libjava_tools.$(H): stx_libjava_tools.st $(INCLUDE_TOP)/stx/libbasic/LibraryDefinition.$(H) $(INCLUDE_TOP)/stx/libbasic/ProjectDefinition.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)JavaCommentNode.$(O) JavaCommentNode.$(H): JavaCommentNode.st $(INCLUDE_TOP)/stx/libjava/tools/JavaParseNode.$(H) $(INCLUDE_TOP)/stx/libcomp/ParseNode.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)JavaFormalParameterNode.$(O) JavaFormalParameterNode.$(H): JavaFormalParameterNode.st $(INCLUDE_TOP)/stx/libjava/tools/JavaParseNode.$(H) $(INCLUDE_TOP)/stx/libcomp/ParseNode.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
--- a/tools/Make.spec	Fri Jan 11 11:57:30 2013 +0000
+++ b/tools/Make.spec	Fri Jan 11 12:37:38 2013 +0000
@@ -80,6 +80,8 @@
 	JavaSyntaxHighlighter \
 	JavaSourcePartitioner \
 	JavaSettingsApplication \
+	JavaSourceReference \
+	JavaSourcePartitionerTests \
 
 
 
@@ -115,6 +117,8 @@
     $(OUTDIR)JavaSyntaxHighlighter.$(O) \
     $(OUTDIR)JavaSourcePartitioner.$(O) \
     $(OUTDIR)JavaSettingsApplication.$(O) \
+    $(OUTDIR)JavaSourceReference.$(O) \
+    $(OUTDIR)JavaSourcePartitionerTests.$(O) \
     $(OUTDIR)extensions.$(O) \
 
 
--- a/tools/abbrev.stc	Fri Jan 11 11:57:30 2013 +0000
+++ b/tools/abbrev.stc	Fri Jan 11 12:37:38 2013 +0000
@@ -33,5 +33,7 @@
 JavaScannerBase JavaScannerBase stx:libjava/tools 'Languages-Java-Parser' 3
 JavaScanner JavaScanner stx:libjava/tools 'Languages-Java-Parser' 3
 JavaSyntaxHighlighter JavaSyntaxHighlighter stx:libjava/tools 'Languages-Java-Tools' 0
-JavaSourcePartitioner JavaSourcePartitioner stx:libjava/tools 'Languages-Java-Tools' 0
+JavaSourcePartitioner JavaSourcePartitioner stx:libjava/tools 'Languages-Java-Parser-Utils' 0
 JavaSettingsApplication JavaSettingsApplication stx:libjava/tools 'Languages-Java-Tools' 1
+JavaSourceReference JavaSourceReference stx:libjava/tools 'Languages-Java-Parser-Utils' 0
+JavaSourcePartitionerTests JavaSourcePartitionerTests stx:libjava/tools 'Languages-Java-Tests-Parser' 1
--- a/tools/bc.mak	Fri Jan 11 11:57:30 2013 +0000
+++ b/tools/bc.mak	Fri Jan 11 12:37:38 2013 +0000
@@ -90,6 +90,8 @@
 $(OUTDIR)JavaScannerBase.$(O) JavaScannerBase.$(H): JavaScannerBase.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)JavaSetInspectorView.$(O) JavaSetInspectorView.$(H): JavaSetInspectorView.st $(INCLUDE_TOP)\stx\libtool\SetInspectorView.$(H) $(INCLUDE_TOP)\stx\libtool\InspectorView.$(H) $(INCLUDE_TOP)\stx\libview\SimpleView.$(H) $(INCLUDE_TOP)\stx\libview\DisplaySurface.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsMedium.$(H) $(INCLUDE_TOP)\stx\libview\DeviceGraphicsContext.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsContext.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)JavaSettingsApplication.$(O) JavaSettingsApplication.$(H): JavaSettingsApplication.st $(INCLUDE_TOP)\stx\libtool\AbstractSettingsApplication.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(INCLUDE_TOP)\stx\libview2\SimpleDialog.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalList.$(H) $(INCLUDE_TOP)\stx\libbasic2\List.$(H) $(INCLUDE_TOP)\stx\libbasic\OrderedCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\SequenceableCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(STCHDR)
+$(OUTDIR)JavaSourcePartitionerTests.$(O) JavaSourcePartitionerTests.$(H): JavaSourcePartitionerTests.st $(INCLUDE_TOP)\stx\goodies\petitparser\PPCompositeParserTest.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPAbstractParseTest.$(H) $(INCLUDE_TOP)\stx\goodies\sunit\TestCase.$(H) $(INCLUDE_TOP)\stx\goodies\sunit\TestAsserter.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)JavaSourceReference.$(O) JavaSourceReference.$(H): JavaSourceReference.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)stx_libjava_tools.$(O) stx_libjava_tools.$(H): stx_libjava_tools.st $(INCLUDE_TOP)\stx\libbasic\LibraryDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\ProjectDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)JavaCommentNode.$(O) JavaCommentNode.$(H): JavaCommentNode.st $(INCLUDE_TOP)\stx\libjava\tools\JavaParseNode.$(H) $(INCLUDE_TOP)\stx\libcomp\ParseNode.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)JavaFormalParameterNode.$(O) JavaFormalParameterNode.$(H): JavaFormalParameterNode.st $(INCLUDE_TOP)\stx\libjava\tools\JavaParseNode.$(H) $(INCLUDE_TOP)\stx\libcomp\ParseNode.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
--- a/tools/libInit.cc	Fri Jan 11 11:57:30 2013 +0000
+++ b/tools/libInit.cc	Fri Jan 11 12:37:38 2013 +0000
@@ -36,6 +36,8 @@
 _JavaScannerBase_Init(pass,__pRT__,snd);
 _JavaSetInspectorView_Init(pass,__pRT__,snd);
 _JavaSettingsApplication_Init(pass,__pRT__,snd);
+_JavaSourcePartitionerTests_Init(pass,__pRT__,snd);
+_JavaSourceReference_Init(pass,__pRT__,snd);
 _stx_137libjava_137tools_Init(pass,__pRT__,snd);
 _JavaCommentNode_Init(pass,__pRT__,snd);
 _JavaFormalParameterNode_Init(pass,__pRT__,snd);
--- a/tools/stx_libjava_tools.st	Fri Jan 11 11:57:30 2013 +0000
+++ b/tools/stx_libjava_tools.st	Fri Jan 11 12:37:38 2013 +0000
@@ -90,6 +90,8 @@
         JavaSyntaxHighlighter
         JavaSourcePartitioner
         JavaSettingsApplication
+        JavaSourceReference
+        JavaSourcePartitionerTests
     )
 !
 
--- a/tools/tools.rc	Fri Jan 11 11:57:30 2013 +0000
+++ b/tools/tools.rc	Fri Jan 11 12:37:38 2013 +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.3.0\0"
-      VALUE "ProductDate", "Fri, 11 Jan 2013 11:56:59 GMT\0"
+      VALUE "ProductDate", "Fri, 11 Jan 2013 12:37:05 GMT\0"
     END
 
   END