ParseTreeIndex.st
author Jan Vrany <jan.vrany@labware.com>
Wed, 05 Oct 2022 11:57:26 +0100
branchjv
changeset 19637 28f5bfaa093d
parent 16797 4f240085a622
permissions -rw-r--r--
`NewSystemBrowser`: avoid updating package info when changed class is not selected This speeds up loading of packages when browser is open as it does not (needlessly) update package info which may involve scm round-trip.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
13864
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
 COPYRIGHT (c) 2006 by eXept Software AG
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
              All Rights Reserved
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
 This software is furnished under a license and may be used
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
 hereby transferred.
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
"
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
"{ Package: 'stx:libtool' }"
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
15171
8615930c22ef class: ParseTreeIndex
Claus Gittinger <cg@exept.de>
parents: 14507
diff changeset
    14
"{ NameSpace: Smalltalk }"
8615930c22ef class: ParseTreeIndex
Claus Gittinger <cg@exept.de>
parents: 14507
diff changeset
    15
13864
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
SortedCollection subclass:#ParseTreeIndex
14192
5784c7eaf4a9 class: ParseTreeIndex
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14055
diff changeset
    17
	instanceVariableNames:'tree source'
13864
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
	classVariableNames:''
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
	poolDictionaries:''
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
	category:'Interface-CodeView-Syntax'
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
!
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
15315
caa632247421 class: ParseTreeIndex::Element
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
    23
SyntaxElement subclass:#Element
15469
a9f1c22fc39c class: ParseTreeIndex
Claus Gittinger <cg@exept.de>
parents: 15459
diff changeset
    24
	instanceVariableNames:''
13864
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
	classVariableNames:''
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
	poolDictionaries:''
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
	privateIn:ParseTreeIndex
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
!
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
!ParseTreeIndex class methodsFor:'documentation'!
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
copyright
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
"
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
 COPYRIGHT (c) 2006 by eXept Software AG
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
              All Rights Reserved
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
 This software is furnished under a license and may be used
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
 only in accordance with the terms of that license and with the
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
 inclusion of the above copyright notice.   This software may not
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
 be provided or otherwise made available to, or used by, any
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
 other person.  No title to or ownership of the software is
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
 hereby transferred.
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
"
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
!
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
documentation
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
"
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
    For given parse tree, a ParseTreeIndex provides an
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
    fast access to individual (leave) nodes by keeping
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
    an index. Used by CodeView2 for various queries
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
    Experimental
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
    [author:]
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
        Jan Vrany <jan.vrany@fit.cvut.cz>
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
    [instance variables:]
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
    [class variables:]
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
    [see also:]
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
"
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
! !
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
!ParseTreeIndex methodsFor:'accessing'!
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
14192
5784c7eaf4a9 class: ParseTreeIndex
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14055
diff changeset
    68
source
5784c7eaf4a9 class: ParseTreeIndex
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14055
diff changeset
    69
    ^ source
5784c7eaf4a9 class: ParseTreeIndex
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14055
diff changeset
    70
!
5784c7eaf4a9 class: ParseTreeIndex
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14055
diff changeset
    71
5784c7eaf4a9 class: ParseTreeIndex
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14055
diff changeset
    72
source:something
5784c7eaf4a9 class: ParseTreeIndex
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14055
diff changeset
    73
    source := something.
5784c7eaf4a9 class: ParseTreeIndex
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14055
diff changeset
    74
!
5784c7eaf4a9 class: ParseTreeIndex
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14055
diff changeset
    75
13864
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
tree
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
    ^ tree
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
!
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
tree:aParseNode
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
    tree := aParseNode.
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
! !
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
!ParseTreeIndex methodsFor:'utilities'!
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
newElementFor: aParseNode
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
    ^(Element new node: aParseNode)
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
    "Created: / 16-02-2012 / 21:00:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
! !
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
!ParseTreeIndex::Element class methodsFor:'documentation'!
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
copyright
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
"
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
 COPYRIGHT (c) 2010 by Jan Vrany, SWING Research Group. CTU in Prague
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
              All Rights Reserved
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
Permission is hereby granted, free of charge, to any person
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
obtaining a copy of this software and associated documentation
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
files (the 'Software'), to deal in the Software without
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
restriction, including without limitation the rights to use,
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
copy, modify, merge, publish, distribute, sublicense, and/or sell
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
copies of the Software, and to permit persons to whom the
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
Software is furnished to do so, subject to the following
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
conditions:
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
The above copyright notice and this permission notice shall be
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
included in all copies or substantial portions of the Software.
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
OTHER DEALINGS IN THE SOFTWARE.
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
"
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
! !
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
!ParseTreeIndex::Element methodsFor:'accessing'!
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
assigned
14055
d5de1e564e5d Fixed ParseTreeIndex::Element
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13940
diff changeset
   126
    | p |
d5de1e564e5d Fixed ParseTreeIndex::Element
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13940
diff changeset
   127
d5de1e564e5d Fixed ParseTreeIndex::Element
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13940
diff changeset
   128
    ^ node isVariableNode 
d5de1e564e5d Fixed ParseTreeIndex::Element
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13940
diff changeset
   129
        and:[(p := node parent) notNil
d5de1e564e5d Fixed ParseTreeIndex::Element
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13940
diff changeset
   130
            and:[p isAssignment
d5de1e564e5d Fixed ParseTreeIndex::Element
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13940
diff changeset
   131
                and:[p variable == node]]].
13864
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
    "Created: / 01-07-2013 / 21:53:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
14055
d5de1e564e5d Fixed ParseTreeIndex::Element
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13940
diff changeset
   134
    "Modified: / 25-02-2014 / 20:52:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
13864
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
!
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
name
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
    ^node isVariable ifTrue:[node name] ifFalse:[nil]
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
    "Created: / 01-07-2013 / 21:56:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
!
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   143
start
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
    ^ node startPosition
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   146
    "Modified: / 16-02-2012 / 20:56:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
!
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
stop
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
    ^ node endPosition
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   151
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   152
    "Modified: / 16-02-2012 / 20:56:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
14507
10775bc746c4 class: ParseTreeIndex
Claus Gittinger <cg@exept.de>
parents: 14192
diff changeset
   153
!
10775bc746c4 class: ParseTreeIndex
Claus Gittinger <cg@exept.de>
parents: 14192
diff changeset
   154
10775bc746c4 class: ParseTreeIndex
Claus Gittinger <cg@exept.de>
parents: 14192
diff changeset
   155
value
10775bc746c4 class: ParseTreeIndex
Claus Gittinger <cg@exept.de>
parents: 14192
diff changeset
   156
    ^node name
13864
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
! !
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
!ParseTreeIndex::Element methodsFor:'comparing'!
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
< anObject
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   163
    anObject isNumber ifTrue:[^self stop < anObject].
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   164
    anObject class == self class ifFalse:[^false].
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   165
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   166
    ^self stop < anObject start
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   167
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
    "Created: / 14-02-2010 / 13:39:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   169
!
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   170
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   171
= anObject
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   172
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   173
    anObject class == self class ifFalse:[^false].
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   174
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   175
    ^self start == (anObject start) and:
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   176
        [self stop == (anObject stop) and:
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   177
            [self node class == (anObject node class)]].
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   178
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   179
    "Created: / 14-02-2010 / 13:33:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   180
!
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   181
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   182
hash
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   183
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   184
    ^self start hash bitXor:[self stop hash bitXor:[node class hash]].
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   185
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   186
    "Created: / 14-02-2010 / 13:30:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   187
! !
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   188
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   189
!ParseTreeIndex::Element methodsFor:'printing & storing'!
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   190
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   191
printOn:aStream
16783
59290ab0bc72 #OTHER by mawalch
mawalch
parents: 15469
diff changeset
   192
    "append a printed representation of the receiver to the argument, aStream"
13864
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   193
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   194
    super printOn:aStream.
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   195
    aStream nextPutAll:'('.
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   196
    node class name printOn: aStream.
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   197
    aStream nextPut:$).
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   198
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   199
    "Modified: / 21-08-2011 / 09:33:51 / cg"
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   200
    "Modified: / 16-02-2012 / 19:23:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   201
! !
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   202
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   203
!ParseTreeIndex::Element methodsFor:'testing'!
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   204
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   205
isSelector
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   206
    ^ node class == SelectorNode
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   207
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   208
    "Created: / 21-08-2011 / 09:09:19 / cg"
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   209
    "Modified: / 16-02-2012 / 21:04:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   210
!
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   211
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   212
isSelf
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   213
    ^ node isSelf
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   214
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   215
    "Created: / 21-08-2011 / 09:31:20 / cg"
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   216
    "Modified: / 16-02-2012 / 19:25:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   217
! !
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   218
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   219
!ParseTreeIndex class methodsFor:'documentation'!
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   220
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   221
version
16783
59290ab0bc72 #OTHER by mawalch
mawalch
parents: 15469
diff changeset
   222
    ^ '$Header$'
13864
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   223
!
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   224
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   225
version_CVS
16783
59290ab0bc72 #OTHER by mawalch
mawalch
parents: 15469
diff changeset
   226
    ^ '$Header$'
13864
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   227
! !
ec523973e8b9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   228