Copied ParseTreeIndex from libtool.
authorJan Vrany <jan.vrany@fit.cvut.cz>
Tue, 27 Aug 2013 00:01:41 +0100
changeset 69 1a143dfff51b
parent 68 681357e18fe5
child 70 ebcce6e2e1d4
Copied ParseTreeIndex from libtool.
Make.proto
Make.spec
SmallSense__ParseTreeIndex.st
SmallSense__ParseTreeIndexEntry.st
SmallSense__Recognizer.st
abbrev.stc
bc.mak
extensions.st
jv_smallsense.st
libInit.cc
smallsense.rc
--- a/Make.proto	Mon Aug 26 11:37:30 2013 +0100
+++ b/Make.proto	Tue Aug 27 00:01:41 2013 +0100
@@ -34,7 +34,7 @@
 # add the path(es) here:,
 # ********** OPTIONAL: MODIFY the next lines ***
 # LOCALINCLUDES=-Ifoo -Ibar
-LOCALINCLUDES= -I$(INCLUDE_TOP)/stx/libbasic -I$(INCLUDE_TOP)/stx/libview2 -I$(INCLUDE_TOP)/stx/libhtml -I$(INCLUDE_TOP)/stx/libtool -I$(INCLUDE_TOP)/stx/libbasic2 -I$(INCLUDE_TOP)/stx/goodies/refactoryBrowser/helpers -I$(INCLUDE_TOP)/stx/goodies/refactoryBrowser/lint -I$(INCLUDE_TOP)/stx/goodies/roeltyper -I$(INCLUDE_TOP)/stx/libcomp -I$(INCLUDE_TOP)/stx/libview -I$(INCLUDE_TOP)/stx/libwidg2
+LOCALINCLUDES= -I$(INCLUDE_TOP)/stx/libwidg2 -I$(INCLUDE_TOP)/stx/libbasic -I$(INCLUDE_TOP)/stx/libview2 -I$(INCLUDE_TOP)/stx/libhtml -I$(INCLUDE_TOP)/stx/libtool -I$(INCLUDE_TOP)/stx/libbasic2 -I$(INCLUDE_TOP)/stx/goodies/refactoryBrowser/helpers -I$(INCLUDE_TOP)/stx/goodies/refactoryBrowser/lint -I$(INCLUDE_TOP)/stx/goodies/roeltyper -I$(INCLUDE_TOP)/stx/goodies/sunit -I$(INCLUDE_TOP)/stx/libcomp -I$(INCLUDE_TOP)/stx/libview
 
 
 # if you need any additional defines for embedded C code,
@@ -168,6 +168,8 @@
 $(OUTDIR)SmallSense__PO.$(O) SmallSense__PO.$(H): SmallSense__PO.st $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItem.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__ParseNodeInspector.$(O) SmallSense__ParseNodeInspector.$(H): SmallSense__ParseNodeInspector.st $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItem.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__ParseNodeVisitor.$(O) SmallSense__ParseNodeVisitor.$(H): SmallSense__ParseNodeVisitor.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__ParseTreeIndex.$(O) SmallSense__ParseTreeIndex.$(H): SmallSense__ParseTreeIndex.st $(INCLUDE_TOP)/stx/libbasic/SortedCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/OrderedCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/SequenceableCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__ParseTreeIndexEntry.$(O) SmallSense__ParseTreeIndexEntry.$(H): SmallSense__ParseTreeIndexEntry.st $(INCLUDE_TOP)/stx/libbasic/Magnitude.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__Position.$(O) SmallSense__Position.$(H): SmallSense__Position.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__Recognizer.$(O) SmallSense__Recognizer.$(H): SmallSense__Recognizer.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__ResultSet.$(O) SmallSense__ResultSet.$(H): SmallSense__ResultSet.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
--- a/Make.spec	Mon Aug 26 11:37:30 2013 +0100
+++ b/Make.spec	Tue Aug 27 00:01:41 2013 +0100
@@ -59,6 +59,8 @@
 	SmallSense::PO \
 	SmallSense::ParseNodeInspector \
 	SmallSense::ParseNodeVisitor \
+	SmallSense::ParseTreeIndex \
+	SmallSense::ParseTreeIndexEntry \
 	SmallSense::Position \
 	SmallSense::Recognizer \
 	SmallSense::ResultSet \
@@ -107,6 +109,8 @@
     $(OUTDIR_SLASH)SmallSense__PO.$(O) \
     $(OUTDIR_SLASH)SmallSense__ParseNodeInspector.$(O) \
     $(OUTDIR_SLASH)SmallSense__ParseNodeVisitor.$(O) \
+    $(OUTDIR_SLASH)SmallSense__ParseTreeIndex.$(O) \
+    $(OUTDIR_SLASH)SmallSense__ParseTreeIndexEntry.$(O) \
     $(OUTDIR_SLASH)SmallSense__Position.$(O) \
     $(OUTDIR_SLASH)SmallSense__Recognizer.$(O) \
     $(OUTDIR_SLASH)SmallSense__ResultSet.$(O) \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SmallSense__ParseTreeIndex.st	Tue Aug 27 00:01:41 2013 +0100
@@ -0,0 +1,77 @@
+"
+ COPYRIGHT (c) 2006 by eXept Software AG
+              All Rights Reserved
+
+ This software is furnished under a license and may be used
+ only in accordance with the terms of that license and with the
+ inclusion of the above copyright notice.   This software may not
+ be provided or otherwise made available to, or used by, any
+ other person.  No title to or ownership of the software is
+ hereby transferred.
+"
+"{ Package: 'jv:smallsense' }"
+
+"{ NameSpace: SmallSense }"
+
+SortedCollection subclass:#ParseTreeIndex
+	instanceVariableNames:'tree'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'SmallSense-Core-Index'
+!
+
+!ParseTreeIndex class methodsFor:'documentation'!
+
+copyright
+"
+ COPYRIGHT (c) 2006 by eXept Software AG
+              All Rights Reserved
+
+ This software is furnished under a license and may be used
+ only in accordance with the terms of that license and with the
+ inclusion of the above copyright notice.   This software may not
+ be provided or otherwise made available to, or used by, any
+ other person.  No title to or ownership of the software is
+ hereby transferred.
+"
+!
+
+documentation
+"
+    For given parse tree, a ParseTreeIndex provides an
+    fast access to individual (leave) nodes by keeping
+    an index. Used by CodeView2 for various queries
+
+    Experimental
+
+    [author:]
+        Jan Vrany <jan.vrany@fit.cvut.cz>
+
+    [instance variables:]
+
+    [class variables:]
+
+    [see also:]
+
+"
+! !
+
+!ParseTreeIndex methodsFor:'accessing'!
+
+tree
+    ^ tree
+!
+
+tree:aParseNode
+    tree := aParseNode.
+! !
+
+!ParseTreeIndex methodsFor:'utilities'!
+
+newElementFor: aParseNode
+
+    ^(ParseTreeIndexEntry new node: aParseNode)
+
+    "Created: / 16-02-2012 / 21:00:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SmallSense__ParseTreeIndexEntry.st	Tue Aug 27 00:01:41 2013 +0100
@@ -0,0 +1,245 @@
+"
+ COPYRIGHT (c) 2010 by Jan Vrany, SWING Research Group. CTU in Prague
+              All Rights Reserved
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the 'Software'), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+"
+"{ Package: 'jv:smallsense' }"
+
+"{ NameSpace: SmallSense }"
+
+Magnitude subclass:#ParseTreeIndexEntry
+	instanceVariableNames:'next prev node'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'SmallSense-Core-Index'
+!
+
+!ParseTreeIndexEntry class methodsFor:'documentation'!
+
+copyright
+"
+ COPYRIGHT (c) 2010 by Jan Vrany, SWING Research Group. CTU in Prague
+              All Rights Reserved
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the 'Software'), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+"
+! !
+
+!ParseTreeIndexEntry methodsFor:'accessing'!
+
+assigned
+    ^false
+
+    "Created: / 01-07-2013 / 21:53:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+firstElementInChain
+    |first prev|
+
+    first := self.
+    [ (prev := first previousElement) notNil ] whileTrue:[
+        first := prev.
+    ].
+    ^ first
+
+    "Created: / 21-08-2011 / 09:51:35 / cg"
+!
+
+name
+    ^node isVariable ifTrue:[node name] ifFalse:[nil]
+
+    "Created: / 01-07-2013 / 21:56:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+next
+    ^ next
+!
+
+next:aSyntaxElement
+    next := aSyntaxElement.
+    next prev: self.
+
+    "Modified: / 14-02-2010 / 17:44:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+nextElement
+    ^ next
+
+    "Created: / 21-08-2011 / 09:47:11 / cg"
+!
+
+nextElement:aSyntaxElement
+    next := aSyntaxElement.
+    next prev: self.
+
+    "Modified: / 14-02-2010 / 17:44:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Created: / 21-08-2011 / 09:47:15 / cg"
+!
+
+node
+    ^ node
+!
+
+node:something
+    node := something.
+!
+
+prev
+    ^ prev
+!
+
+prev:aSyntaxElement
+    prev := aSyntaxElement.
+!
+
+previousElement
+    ^ prev
+
+    "Created: / 21-08-2011 / 09:47:23 / cg"
+!
+
+previousElement:aSyntaxElement
+    prev := aSyntaxElement.
+
+    "Created: / 21-08-2011 / 09:47:28 / cg"
+!
+
+start
+    ^ node startPosition
+
+    "Modified: / 16-02-2012 / 20:56:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+stop
+    ^ node endPosition
+
+    "Modified: / 16-02-2012 / 20:56:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!ParseTreeIndexEntry methodsFor:'comparing'!
+
+< anObject
+
+    anObject isNumber ifTrue:[^self stop < anObject].
+    anObject class == self class ifFalse:[^false].
+
+    ^self stop < anObject start
+
+    "Created: / 14-02-2010 / 13:39:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+= anObject
+
+    anObject class == self class ifFalse:[^false].
+
+    ^self start == (anObject start) and:
+        [self stop == (anObject stop) and:
+            [self node class == (anObject node class)]].
+
+    "Created: / 14-02-2010 / 13:33:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+hash
+
+    ^self start hash bitXor:[self stop hash bitXor:[node class hash]].
+
+    "Created: / 14-02-2010 / 13:30:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!ParseTreeIndexEntry methodsFor:'double dispatching'!
+
+lessFromInteger:anInteger
+
+    ^self stop < anInteger
+
+    "Created: / 14-02-2010 / 13:49:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!ParseTreeIndexEntry methodsFor:'printing & storing'!
+
+printOn:aStream
+    "append a printed representation if the receiver to the argument, aStream"
+
+    super printOn:aStream.
+    aStream nextPutAll:'('.
+    node class name printOn: aStream.
+    aStream nextPut:$).
+
+    "Modified: / 21-08-2011 / 09:33:51 / cg"
+    "Modified: / 16-02-2012 / 19:23:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!ParseTreeIndexEntry methodsFor:'testing'!
+
+isInstanceVariable
+    ^node isVariable and:[node isInstance]
+
+    "Created: / 01-07-2013 / 21:54:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+isSelector
+    ^ node class == SelectorNode
+
+    "Created: / 21-08-2011 / 09:09:19 / cg"
+    "Modified: / 16-02-2012 / 21:04:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+isSelf
+    ^ node isSelf
+
+    "Created: / 21-08-2011 / 09:31:20 / cg"
+    "Modified: / 16-02-2012 / 19:25:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+isVariable
+    ^ node isVariable
+
+    "Created: / 21-08-2011 / 09:09:00 / cg"
+    "Modified: / 16-02-2012 / 19:24:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+isVariableOrSelf
+    ^ self isVariable or:[self isSelf]
+
+    "Created: / 21-08-2011 / 09:31:33 / cg"
+! !
+
--- a/SmallSense__Recognizer.st	Mon Aug 26 11:37:30 2013 +0100
+++ b/SmallSense__Recognizer.st	Tue Aug 27 00:01:41 2013 +0100
@@ -50,7 +50,7 @@
 
 
     mode == #method ifTrue:[
-        inferencer := Inferencer forClass: class methodSource: source asString.
+        inferencer := SmalltalkInferencer forClass: class methodSource: source asString.
         inferencer parserClass: Parser.
         inferencer process.
     ] ifFalse:[
@@ -73,7 +73,7 @@
 
     "Modified: / 07-04-2011 / 22:55:58 / Jakub <zelenja7@fel.cvut.cz>"
     "Created: / 26-11-2011 / 17:53:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 19-08-2013 / 15:12:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 26-08-2013 / 11:16:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !Recognizer methodsFor:'adding'!
--- a/abbrev.stc	Mon Aug 26 11:37:30 2013 +0100
+++ b/abbrev.stc	Tue Aug 27 00:01:41 2013 +0100
@@ -12,10 +12,12 @@
 SmallSense::PO SmallSense__PO jv:smallsense 'SmallSense-Core-Interface-PO' 0
 SmallSense::ParseNodeInspector SmallSense__ParseNodeInspector jv:smallsense 'SmallSense-Core-Interface' 1
 SmallSense::ParseNodeVisitor SmallSense__ParseNodeVisitor jv:smallsense 'SmallSense-Core' 0
-SmallSense::ParserTests SmallSense__ParserTests jv:smallsense 'SmallSense-Tests' 0
+SmallSense::ParseTreeIndex SmallSense__ParseTreeIndex jv:smallsense 'SmallSense-Core-Index' 0
+SmallSense::ParseTreeIndexEntry SmallSense__ParseTreeIndexEntry jv:smallsense 'SmallSense-Core-Index' 0
+SmallSense::ParserTests SmallSense__ParserTests jv:smallsense 'SmallSense-Tests' 1
 SmallSense::Position SmallSense__Position jv:smallsense 'SmallSense-Core' 0
 SmallSense::Recognizer SmallSense__Recognizer jv:smallsense 'SmallSense-Core' 0
-SmallSense::RecognizerTests SmallSense__RecognizerTests jv:smallsense 'SmallSense-Tests' 0
+SmallSense::RecognizerTests SmallSense__RecognizerTests jv:smallsense 'SmallSense-Tests' 1
 SmallSense::ResultSet SmallSense__ResultSet jv:smallsense 'SmallSense-Core' 0
 SmallSense::SelectorNode SmallSense__SelectorNode jv:smallsense 'SmallSense-Core' 0
 SmallSense::SettingsAppl SmallSense__SettingsAppl jv:smallsense 'SmallSense-Core-Interface' 1
--- a/bc.mak	Mon Aug 26 11:37:30 2013 +0100
+++ b/bc.mak	Tue Aug 27 00:01:41 2013 +0100
@@ -34,7 +34,7 @@
 
 
 
-LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\libbasic -I$(INCLUDE_TOP)\stx\libview2 -I$(INCLUDE_TOP)\stx\libhtml -I$(INCLUDE_TOP)\stx\libtool -I$(INCLUDE_TOP)\stx\libbasic2 -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\helpers -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint -I$(INCLUDE_TOP)\stx\goodies\roeltyper -I$(INCLUDE_TOP)\stx\libcomp -I$(INCLUDE_TOP)\stx\libview -I$(INCLUDE_TOP)\stx\libwidg2
+LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\libwidg2 -I$(INCLUDE_TOP)\stx\libbasic -I$(INCLUDE_TOP)\stx\libview2 -I$(INCLUDE_TOP)\stx\libhtml -I$(INCLUDE_TOP)\stx\libtool -I$(INCLUDE_TOP)\stx\libbasic2 -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\helpers -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint -I$(INCLUDE_TOP)\stx\goodies\roeltyper -I$(INCLUDE_TOP)\stx\goodies\sunit -I$(INCLUDE_TOP)\stx\libcomp -I$(INCLUDE_TOP)\stx\libview
 LOCALDEFINES=
 
 STCLOCALOPT=-package=$(PACKAGE) -I. $(LOCALINCLUDES) -headerDir=. $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES)  -varPrefix=$(LIBNAME)
@@ -92,6 +92,8 @@
 $(OUTDIR)SmallSense__PO.$(O) SmallSense__PO.$(H): SmallSense__PO.st $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__ParseNodeInspector.$(O) SmallSense__ParseNodeInspector.$(H): SmallSense__ParseNodeInspector.st $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__ParseNodeVisitor.$(O) SmallSense__ParseNodeVisitor.$(H): SmallSense__ParseNodeVisitor.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__ParseTreeIndex.$(O) SmallSense__ParseTreeIndex.$(H): SmallSense__ParseTreeIndex.st $(INCLUDE_TOP)\stx\libbasic\SortedCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\OrderedCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\SequenceableCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__ParseTreeIndexEntry.$(O) SmallSense__ParseTreeIndexEntry.$(H): SmallSense__ParseTreeIndexEntry.st $(INCLUDE_TOP)\stx\libbasic\Magnitude.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__Position.$(O) SmallSense__Position.$(H): SmallSense__Position.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__Recognizer.$(O) SmallSense__Recognizer.$(H): SmallSense__Recognizer.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__ResultSet.$(O) SmallSense__ResultSet.$(H): SmallSense__ResultSet.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
--- a/extensions.st	Mon Aug 26 11:37:30 2013 +0100
+++ b/extensions.st	Tue Aug 27 00:01:41 2013 +0100
@@ -126,13 +126,13 @@
 !ParseNode methodsFor:'enumeration'!
 
 childNamesAndValuesDo: aBlock
-
     "Enumerates all direct children and evaluates a block
      with its name (usually instVar name) and the node itself"
 
     ^self subclassResponsibility
 
     "Created: / 26-11-2011 / 10:38:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified (format): / 25-08-2013 / 10:32:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !ParseNode methodsFor:'accessing-SmallSense'!
--- a/jv_smallsense.st	Mon Aug 26 11:37:30 2013 +0100
+++ b/jv_smallsense.st	Tue Aug 27 00:01:41 2013 +0100
@@ -43,6 +43,7 @@
         #'stx:goodies/refactoryBrowser/helpers'    "BrowserEnvironment - superclass of SmallSense::SmalltalkUnacceptedMethodEnvironment "
         #'stx:goodies/refactoryBrowser/lint'    "RBLintRule - extended "
         #'stx:goodies/roeltyper'    "TypeCollector - superclass of SmallSense::TypeCollector "
+        #'stx:goodies/sunit'    "TestAsserter - superclass of SmallSense::TestCase "
         #'stx:libbasic'    "Autoload - superclass of SmallSense::BaseTestClass "
         #'stx:libbasic2'    "CacheDictionary - superclass of SmallSense::TypeCollectorCache "
         #'stx:libcomp'    "AbstractSyntaxHighlighter - superclass of SmallSense::SmalltalkAbstractInstvarInterfaceExtractor "
@@ -125,6 +126,8 @@
         #'SmallSense::PO'
         #'SmallSense::ParseNodeInspector'
         #'SmallSense::ParseNodeVisitor'
+        #'SmallSense::ParseTreeIndex'
+        #'SmallSense::ParseTreeIndexEntry'
         (#'SmallSense::ParserTests' autoload)
         #'SmallSense::Position'
         #'SmallSense::Recognizer'
--- a/libInit.cc	Mon Aug 26 11:37:30 2013 +0100
+++ b/libInit.cc	Tue Aug 27 00:01:41 2013 +0100
@@ -36,6 +36,8 @@
 _SmallSense__PO_Init(pass,__pRT__,snd);
 _SmallSense__ParseNodeInspector_Init(pass,__pRT__,snd);
 _SmallSense__ParseNodeVisitor_Init(pass,__pRT__,snd);
+_SmallSense__ParseTreeIndex_Init(pass,__pRT__,snd);
+_SmallSense__ParseTreeIndexEntry_Init(pass,__pRT__,snd);
 _SmallSense__Position_Init(pass,__pRT__,snd);
 _SmallSense__Recognizer_Init(pass,__pRT__,snd);
 _SmallSense__ResultSet_Init(pass,__pRT__,snd);
--- a/smallsense.rc	Mon Aug 26 11:37:30 2013 +0100
+++ b/smallsense.rc	Tue Aug 27 00:01:41 2013 +0100
@@ -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", "Mon, 26 Aug 2013 09:30:14 GMT\0"
+      VALUE "ProductDate", "Mon, 26 Aug 2013 23:00:20 GMT\0"
     END
 
   END