SmallSenseRecognizer.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Fri, 02 Aug 2013 16:40:58 +0100
changeset 47 547d48a49dbd
parent 46 db0de6401cff
child 53 84e9840dd522
permissions -rw-r--r--
Added simple tab completion.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
32
658f47bc231e Code moved to package jv:smallsense
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 29
diff changeset
     1
"{ Package: 'jv:smallsense' }"
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
Object subclass:#SmallSenseRecognizer
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
	instanceVariableNames:'resultSet collector'
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
	classVariableNames:''
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	poolDictionaries:''
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	category:'SmallSense-Core'
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
!
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
!SmallSenseRecognizer class methodsFor:'utilities'!
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
old_resultSetFor: mode source: source class: class row: row column: col 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
    | parser tree |
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
    mode == #method ifTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
        parser := SmallSenseParser new.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
        parser 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
            parseMethod:source asString
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
            in: class
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
            ignoreErrors:false
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
            ignoreWarnings:false.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
    ] ifFalse:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
        parser := SmallSenseParser for: (source asString readStream).
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
        "JV@2011-06-13: HACK, use polymorphism"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
        tree := parser
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
            parseExpressionWithSelf:nil 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
            notifying:nil 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
            ignoreErrors:false 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
            ignoreWarnings:false 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
            inNameSpace:nil.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
        parser tree: tree.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
    ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
    ^ self new
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
        recognize:row
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
        position:col
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
        collector:parser
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
    "Modified: / 07-04-2011 / 22:55:58 / Jakub <zelenja7@fel.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
    "Created: / 26-11-2011 / 14:40:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
!
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
resultSetFor: mode source: source class: class line: line column: col 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
    | inferencer tree |
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
    mode == #method ifTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
        inferencer := SmallSenseInferencer forClass: class methodSource: source asString.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
        inferencer parserClass: SmallSenseParser.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
        inferencer process.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
    ] ifFalse:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
        self breakPoint: #jv.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
        ^self.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
        inferencer := SmallSenseParser for: (source asString readStream).
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
        "JV@2011-06-13: HACK, use polymorphism"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
        tree := inferencer
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
            parseExpressionWithSelf:nil 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
            notifying:nil 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
            ignoreErrors:false 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
            ignoreWarnings:false 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
            inNameSpace:nil.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
        inferencer tree: tree.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
    ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
    ^ self new
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
        completeAtLine:line
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
        column:col
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
        collector:inferencer
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
    "Modified: / 07-04-2011 / 22:55:58 / Jakub <zelenja7@fel.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
    "Created: / 26-11-2011 / 17:53:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
! !
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
!SmallSenseRecognizer methodsFor:'adding'!
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
38
c7137bdf49e2 Added support for shared pools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 36
diff changeset
    78
addClassVariables
c7137bdf49e2 Added support for shared pools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 36
diff changeset
    79
    | class |
c7137bdf49e2 Added support for shared pools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 36
diff changeset
    80
45
408d060b005e Fix in completion class vars and pools for class-side methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 39
diff changeset
    81
    class := collector klass theNonMetaclass.
38
c7137bdf49e2 Added support for shared pools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 36
diff changeset
    82
    class classVarNames do:[:nm|
c7137bdf49e2 Added support for shared pools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 36
diff changeset
    83
        resultSet add:(SmallSenseVariablePO classVariable: nm in: class).
c7137bdf49e2 Added support for shared pools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 36
diff changeset
    84
    ].
c7137bdf49e2 Added support for shared pools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 36
diff changeset
    85
c7137bdf49e2 Added support for shared pools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 36
diff changeset
    86
    "Created: / 24-07-2013 / 17:00:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
45
408d060b005e Fix in completion class vars and pools for class-side methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 39
diff changeset
    87
    "Modified: / 30-07-2013 / 23:32:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
38
c7137bdf49e2 Added support for shared pools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 36
diff changeset
    88
!
c7137bdf49e2 Added support for shared pools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 36
diff changeset
    89
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
addGlobalsStartingWith: prefix
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
    | class ns cls |
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
    class := collector klass.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
    ns := class nameSpace.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
    "nameSpace may return private class, sigh"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
    [ ns isNameSpace ] whileFalse:[ ns := ns nameSpace ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
    ns keysDo:[:nm|
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
        (nm startsWith: prefix) ifTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
            cls := ns classNamed: nm.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
            cls notNil ifTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
                cls isBehavior ifTrue:[
34
5be71b1d52ec SmallSenseResultItem ranemd to SmallSensePO.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
   102
                    resultSet add:(SmallSenseClassPO new subject: cls; name: nm).
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
                ] ifFalse:[
34
5be71b1d52ec SmallSenseResultItem ranemd to SmallSensePO.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
   104
                    resultSet add:(SmallSenseVariablePO globalVariable: cls).
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
                ]
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
            ]
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
        ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
    ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
    ns ~~ Smalltalk ifTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
        Smalltalk keysDo:[:nm|
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
            (nm startsWith: prefix) ifTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
                cls := Smalltalk classNamed: nm.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
                cls notNil ifTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   114
                    cls isBehavior ifTrue:[
36
935fcdb63171 Various fixes and tweaks in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 34
diff changeset
   115
                        resultSet add:(SmallSenseClassPO new subject: cls; name: nm ).
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   116
                    ] ifFalse:[
34
5be71b1d52ec SmallSenseResultItem ranemd to SmallSensePO.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
   117
                        resultSet add:(SmallSenseVariablePO globalVariable: cls).
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   118
                    ]
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   119
                ]
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   120
            ]
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   121
        ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   122
    ]
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   123
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   124
    "Created: / 26-11-2011 / 17:29:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
38
c7137bdf49e2 Added support for shared pools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 36
diff changeset
   125
    "Modified: / 24-07-2013 / 17:00:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   126
!
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   127
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   128
addMethods: type
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   129
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   130
    type classesDo:[:each|
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   131
        | class |
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   132
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   133
        class := each.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   134
        [ class isNil ] whileFalse:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   135
            class 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   136
                selectorsAndMethodsDo:[:selector :met | 
34
5be71b1d52ec SmallSenseResultItem ranemd to SmallSensePO.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
   137
                    resultSet add:(SmallSenseMethodPO 
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   138
                                name:selector
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   139
                                description:"met source"nil
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   140
                                class:class).
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   141
                ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   142
            class := class superclass.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   143
        ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   144
    ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   145
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   146
    "Created: / 26-11-2011 / 17:03:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   147
!
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   148
36
935fcdb63171 Various fixes and tweaks in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 34
diff changeset
   149
addMethodsStartingWith: prefix
935fcdb63171 Various fixes and tweaks in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 34
diff changeset
   150
935fcdb63171 Various fixes and tweaks in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 34
diff changeset
   151
    Smalltalk allClassesDo:[:class|
935fcdb63171 Various fixes and tweaks in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 34
diff changeset
   152
        class selectorsAndMethodsDo:[:selector :met | 
935fcdb63171 Various fixes and tweaks in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 34
diff changeset
   153
            (selector startsWith: prefix) ifTrue:[
935fcdb63171 Various fixes and tweaks in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 34
diff changeset
   154
                resultSet add:(SmallSenseMethodPO 
935fcdb63171 Various fixes and tweaks in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 34
diff changeset
   155
                            name:selector
935fcdb63171 Various fixes and tweaks in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 34
diff changeset
   156
                            description:"met source"nil
935fcdb63171 Various fixes and tweaks in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 34
diff changeset
   157
                            class:class).
935fcdb63171 Various fixes and tweaks in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 34
diff changeset
   158
            ]
935fcdb63171 Various fixes and tweaks in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 34
diff changeset
   159
        ].
935fcdb63171 Various fixes and tweaks in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 34
diff changeset
   160
    ].
935fcdb63171 Various fixes and tweaks in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 34
diff changeset
   161
935fcdb63171 Various fixes and tweaks in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 34
diff changeset
   162
    "Created: / 24-07-2013 / 13:10:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
935fcdb63171 Various fixes and tweaks in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 34
diff changeset
   163
!
935fcdb63171 Various fixes and tweaks in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 34
diff changeset
   164
38
c7137bdf49e2 Added support for shared pools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 36
diff changeset
   165
addPools
c7137bdf49e2 Added support for shared pools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 36
diff changeset
   166
    | class |
c7137bdf49e2 Added support for shared pools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 36
diff changeset
   167
45
408d060b005e Fix in completion class vars and pools for class-side methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 39
diff changeset
   168
    class := collector klass theNonMetaclass.
39
748389119d0a Initial support for per-language edit support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 38
diff changeset
   169
    class theNonMetaclass sharedPools do:[:pool|
38
c7137bdf49e2 Added support for shared pools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 36
diff changeset
   170
        pool theNonMetaclass classVarNames do:[:nm|
c7137bdf49e2 Added support for shared pools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 36
diff changeset
   171
            resultSet add:(SmallSenseVariablePO classVariable: nm in: pool).
c7137bdf49e2 Added support for shared pools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 36
diff changeset
   172
        ]
c7137bdf49e2 Added support for shared pools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 36
diff changeset
   173
    ].
c7137bdf49e2 Added support for shared pools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 36
diff changeset
   174
c7137bdf49e2 Added support for shared pools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 36
diff changeset
   175
    "Created: / 24-07-2013 / 16:59:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
45
408d060b005e Fix in completion class vars and pools for class-side methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 39
diff changeset
   176
    "Modified: / 30-07-2013 / 23:32:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
38
c7137bdf49e2 Added support for shared pools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 36
diff changeset
   177
!
c7137bdf49e2 Added support for shared pools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 36
diff changeset
   178
46
db0de6401cff Added completion of block arguments and temporaries.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
   179
addVariablesFor: node
db0de6401cff Added completion of block arguments and temporaries.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
   180
db0de6401cff Added completion of block arguments and temporaries.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
   181
    | n |
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   182
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   183
    "Add Instance variables"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   184
    collector klass allInstVarNames do:[:nm|
34
5be71b1d52ec SmallSenseResultItem ranemd to SmallSensePO.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
   185
        resultSet add: (SmallSenseVariablePO instanceVariable: nm in: collector klass).
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   186
    ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   187
    "Add pseudo variables"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   188
    #(self super here thisContext) do:[:nm|
34
5be71b1d52ec SmallSenseResultItem ranemd to SmallSensePO.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
   189
        resultSet add: (SmallSenseVariablePO new name: nm).
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   190
    ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   191
    "Add arguments"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   192
    collector parser methodArgs ? #() do:[:nm|
34
5be71b1d52ec SmallSenseResultItem ranemd to SmallSensePO.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
   193
        resultSet add: (SmallSenseVariablePO argument: nm).
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   194
    ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   195
    "Add temporaries"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   196
    collector parser methodVars ? #() do:[:nm|
34
5be71b1d52ec SmallSenseResultItem ranemd to SmallSensePO.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
   197
        resultSet add: (SmallSenseVariablePO variable: nm).
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   198
    ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   199
46
db0de6401cff Added completion of block arguments and temporaries.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
   200
    n := node.
db0de6401cff Added completion of block arguments and temporaries.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
   201
    [ n notNil ] whileTrue:[
db0de6401cff Added completion of block arguments and temporaries.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
   202
        n isBlockNode ifTrue:[
db0de6401cff Added completion of block arguments and temporaries.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
   203
            n arguments ? #() do:[:barg|resultSet add: (SmallSenseVariablePO variable: barg name)].
db0de6401cff Added completion of block arguments and temporaries.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
   204
            n variables ? #() do:[:bvar|resultSet add: (SmallSenseVariablePO variable: bvar name)].
db0de6401cff Added completion of block arguments and temporaries.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
   205
        ].
db0de6401cff Added completion of block arguments and temporaries.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
   206
        n := n parent.
db0de6401cff Added completion of block arguments and temporaries.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
   207
    ]
db0de6401cff Added completion of block arguments and temporaries.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
   208
db0de6401cff Added completion of block arguments and temporaries.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
   209
    "Created: / 31-07-2013 / 00:32:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   210
! !
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   211
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   212
!SmallSenseRecognizer methodsFor:'completion'!
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   213
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   214
completeAtLine:line column:col collector:coll 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   215
    "find most possible codeCompletion object"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   216
    
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   217
    | position |
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   218
    resultSet := SmallSenseResultSet new.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   219
    collector := coll.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   220
36
935fcdb63171 Various fixes and tweaks in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 34
diff changeset
   221
    (collector tree isNil or:[collector tree == #Error]) ifTrue:[ 
935fcdb63171 Various fixes and tweaks in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 34
diff changeset
   222
        ^ resultSet 
935fcdb63171 Various fixes and tweaks in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 34
diff changeset
   223
    ].
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   224
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   225
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   226
    position := SmallSenseFinder new 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   227
                    findNodeIn: collector source tree: collector tree 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   228
                    line: line column: col.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   229
    resultSet position: position.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   230
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   231
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   232
    (position afterNode) ifTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   233
        self completeAfter:position node.
36
935fcdb63171 Various fixes and tweaks in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 34
diff changeset
   234
    ] ifFalse:[
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   235
    (position inNode) ifTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   236
        self completeIn:position node.
36
935fcdb63171 Various fixes and tweaks in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 34
diff changeset
   237
    ] ifFalse:[
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   238
    (position beforeNode) ifTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   239
        self completeBefore:position node.
36
935fcdb63171 Various fixes and tweaks in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 34
diff changeset
   240
    ]]].
935fcdb63171 Various fixes and tweaks in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 34
diff changeset
   241
935fcdb63171 Various fixes and tweaks in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 34
diff changeset
   242
    resultSet isEmpty ifTrue:[
935fcdb63171 Various fixes and tweaks in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 34
diff changeset
   243
        nil "/Only to set breakpoint here
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   244
    ].
36
935fcdb63171 Various fixes and tweaks in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 34
diff changeset
   245
    ^resultSet.
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   246
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   247
    "Created: / 04-03-2011 / 13:01:14 / Jakub <zelenja7@fel.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   248
    "Modified: / 08-04-2011 / 10:52:59 / Jakub <zelenja7@fel.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   249
    "Created: / 26-11-2011 / 17:05:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
36
935fcdb63171 Various fixes and tweaks in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 34
diff changeset
   250
    "Modified (format): / 24-07-2013 / 16:00:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   251
! !
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   252
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   253
!SmallSenseRecognizer methodsFor:'completion-private'!
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   254
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   255
completeAfter:node
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   256
    "return collection of completion items after given node"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   257
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   258
    self addMethods: node inferedType
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   259
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   260
    "Created: / 04-03-2011 / 15:45:28 / Jakub <zelenja7@fel.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   261
    "Modified: / 08-04-2011 / 10:55:09 / Jakub <zelenja7@fel.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   262
    "Created: / 26-11-2011 / 17:07:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   263
!
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   264
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   265
completeBefore:node
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   266
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   267
    self breakPoint: #jv. "Not yet implemented"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   268
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   269
    "Created: / 04-03-2011 / 15:45:28 / Jakub <zelenja7@fel.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   270
    "Modified: / 08-04-2011 / 10:55:09 / Jakub <zelenja7@fel.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   271
    "Created: / 26-11-2011 / 17:07:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   272
!
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   273
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   274
completeIn:node
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   275
    "return collection which can be afterNode"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   276
    
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   277
    node isVariableNode ifTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   278
        node name first isUppercase ifTrue:[
38
c7137bdf49e2 Added support for shared pools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 36
diff changeset
   279
            self addGlobalsStartingWith: node name.
c7137bdf49e2 Added support for shared pools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 36
diff changeset
   280
            self addClassVariables.
c7137bdf49e2 Added support for shared pools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 36
diff changeset
   281
            self addPools.
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   282
        ] ifFalse:[
46
db0de6401cff Added completion of block arguments and temporaries.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
   283
            self addVariablesFor: node
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   284
        ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   285
        ^self.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   286
    ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   287
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   288
    node isMessage ifTrue:[
36
935fcdb63171 Various fixes and tweaks in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 34
diff changeset
   289
        | type |
935fcdb63171 Various fixes and tweaks in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 34
diff changeset
   290
935fcdb63171 Various fixes and tweaks in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 34
diff changeset
   291
        type := node receiver inferedType.
935fcdb63171 Various fixes and tweaks in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 34
diff changeset
   292
        type isUnknownType ifFalse:[
935fcdb63171 Various fixes and tweaks in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 34
diff changeset
   293
            self addMethods:  type
935fcdb63171 Various fixes and tweaks in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 34
diff changeset
   294
        ] ifTrue:[
935fcdb63171 Various fixes and tweaks in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 34
diff changeset
   295
            self addMethodsStartingWith: node selector
935fcdb63171 Various fixes and tweaks in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 34
diff changeset
   296
        ].
935fcdb63171 Various fixes and tweaks in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 34
diff changeset
   297
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   298
        ^self.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   299
    ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   300
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   301
    self breakPoint: #jv.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   302
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   303
    "Created: / 07-03-2011 / 18:59:02 / Jakub <zelenja7@fel.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   304
    "Modified: / 08-04-2011 / 09:31:51 / Jakub <zelenja7@fel.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   305
    "Created: / 26-11-2011 / 17:07:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
46
db0de6401cff Added completion of block arguments and temporaries.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
   306
    "Modified: / 31-07-2013 / 00:32:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   307
! !
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   308
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   309
!SmallSenseRecognizer methodsFor:'obsolete'!
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   310
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   311
addSendsAndMethodFromAssignmentsFromRoelTyperResult:result 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   312
    "we have roelTyperResult for exact node we add all sends and all methods which we can find in assignments"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   313
    
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   314
    |retCollection class|
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   315
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   316
    retCollection := SmallSenseResultSet new.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   317
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   318
    "
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   319
    (result interface) do:[:send|
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   320
        retCollection add: (SmallSenseMethod name:send description:'Used sender.'). 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   321
    ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   322
    "
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   323
    result assignments do:[:assignment | 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   324
         class := assignment.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   325
        [ class isNil ] whileFalse:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   326
            class 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   327
                selectorsAndMethodsDo:[:selector :met | 
34
5be71b1d52ec SmallSenseResultItem ranemd to SmallSensePO.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
   328
                    retCollection add:(SmallSenseMethodPO 
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   329
                                name:selector
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   330
                                description:"met source"nil
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   331
                                class:class).
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   332
                ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   333
            class := class superclass.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   334
        ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   335
    ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   336
    ^ retCollection.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   337
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   338
    "Created: / 07-03-2011 / 18:20:15 / Jakub <zelenja7@fel.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   339
    "Modified: / 08-04-2011 / 10:15:20 / Jakub <zelenja7@fel.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   340
    "Modified: / 08-04-2011 / 18:51:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   341
!
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   342
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   343
before
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   344
    "BasicCollection for allNode which are before "
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   345
    
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   346
    |retCollection|
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   347
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   348
    retCollection := SmallSenseResultSet new.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   349
    retCollection join:(self beforeConstant).
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   350
    retCollection join:(self beforeBlock).
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   351
    ^ retCollection.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   352
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   353
    "Created: / 04-03-2011 / 12:36:56 / Jakub <zelenja7@fel.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   354
    "Modified: / 17-03-2011 / 18:32:38 / Jakub <zelenja7@fel.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   355
!
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   356
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   357
before:foundNode collector:collector 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   358
    "BasicCollection for allNode which are before node"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   359
    
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   360
    |retCollection helper receiver node helperNode ret|
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   361
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   362
    "Check nil node"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   363
    retCollection := SmallSenseResultSet new.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   364
    (foundNode isNil) ifTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   365
        retCollection join:(self beforeConstant).
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   366
        retCollection join:(self beforeBlock).
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   367
        retCollection join:(self beforeVariable:collector).
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   368
        ^ retCollection.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   369
    ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   370
    (foundNode node isNil) ifTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   371
        node := foundNode statement.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   372
    ] ifFalse:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   373
        node := foundNode node.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   374
    ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   375
    helperNode := foundNode node.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   376
    (node isErrorNode) ifTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   377
        helper := foundNode beforeStatement.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   378
        (helper notNil) ifTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   379
            foundNode node:helper.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   380
            foundNode beforeNode:false.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   381
            foundNode afterNode:true.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   382
            ret := self after:foundNode collector:collector.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   383
            foundNode node:helperNode.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   384
            ^ ret.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   385
        ]
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   386
    ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   387
    node isSelector ifTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   388
        receiver := self getReceiverinNodeForSelector:node
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   389
                    node:foundNode statement.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   390
        (receiver notNil) ifTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   391
            (receiver isMessage 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   392
                or:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   393
                    receiver isAssignment 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   394
                        or:[ receiver isErrorNode or:[ receiver isSelector ] ]
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   395
                ]) 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   396
                    ifFalse:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   397
                        foundNode node:receiver.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   398
                        foundNode beforeNode:false.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   399
                        foundNode afterNode:true.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   400
                        ret := self after:foundNode collector:collector.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   401
                        foundNode node:helperNode.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   402
                        ^ ret.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   403
                    ]
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   404
        ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   405
    ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   406
    retCollection join:(self beforeBlockVariable:foundNode).
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   407
    retCollection join:(self beforeConstant).
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   408
    retCollection join:(self beforeBlock).
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   409
    retCollection join:(self beforeVariable:collector).
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   410
    ^ retCollection.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   411
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   412
    "Created: / 04-03-2011 / 13:02:42 / Jakub <zelenja7@fel.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   413
    "Modified: / 06-04-2011 / 18:48:29 / Jakub <zelenja7@fel.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   414
!
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   415
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   416
beforeBlock
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   417
    "There is some basic blocks which can be before node"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   418
    
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   419
    |retCollection|
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   420
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   421
    retCollection := SmallSenseResultSet new.
34
5be71b1d52ec SmallSenseResultItem ranemd to SmallSensePO.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
   422
    retCollection add:(SmallSenseSnippetPO name:'()ifTrue:[].'
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   423
                description:'True block
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   424
                     ()ifTrue:[].').
34
5be71b1d52ec SmallSenseResultItem ranemd to SmallSensePO.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
   425
    retCollection add:(SmallSenseSnippetPO name:'()ifFalse:[].'
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   426
                description:'False block
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   427
                     ()ifFalse:[].').
34
5be71b1d52ec SmallSenseResultItem ranemd to SmallSensePO.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
   428
    retCollection add:(SmallSenseSnippetPO name:'[]whileTrue:[].'
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   429
                description:'WhileTrue block
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   430
                     ()whileTrue:[].').
34
5be71b1d52ec SmallSenseResultItem ranemd to SmallSensePO.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
   431
    retCollection add:(SmallSenseSnippetPO name:'[]whileFalse:[].'
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   432
                description:'WhileFalse block
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   433
                     ()whileFalse:[].').
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   434
    retCollection 
34
5be71b1d52ec SmallSenseResultItem ranemd to SmallSensePO.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
   435
        add:(SmallSenseSnippetPO name:'[]' description:'Closure to block').
5be71b1d52ec SmallSenseResultItem ranemd to SmallSensePO.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
   436
    retCollection add:(SmallSenseSnippetPO name:'()' description:'Brackets').
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   437
    ^ retCollection.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   438
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   439
    "Created: / 04-03-2011 / 12:46:15 / Jakub <zelenja7@fel.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   440
    "Modified: / 17-03-2011 / 17:31:25 / Jakub <zelenja7@fel.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   441
    "Modified: / 04-04-2011 / 13:42:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   442
!
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   443
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   444
beforeBlockVariable:foundNode 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   445
    "Add variables from Block Node"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   446
    
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   447
    |retCollection|
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   448
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   449
    retCollection := SmallSenseResultSet new.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   450
    (foundNode blockVariables notNil) ifTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   451
        foundNode blockVariables do:[:each | 
34
5be71b1d52ec SmallSenseResultItem ranemd to SmallSensePO.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
   452
            retCollection add:(SmallSenseVariablePO name:each name
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   453
                        description:'Variables in the method. Defined in block  [:val| ]').
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   454
        ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   455
    ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   456
    ^ retCollection
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   457
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   458
    "Created: / 06-04-2011 / 18:48:29 / Jakub <zelenja7@fel.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   459
    "Modified: / 20-05-2011 / 14:36:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   460
!
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   461
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   462
beforeConstant
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   463
    "There is some basic constant which can be before node"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   464
    
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   465
    |retCollection|
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   466
    retCollection := SmallSenseResultSet new.
34
5be71b1d52ec SmallSenseResultItem ranemd to SmallSensePO.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
   467
    retCollection add:(SmallSenseConstantPO name:'^'
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   468
                description:'Return symbol from method.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   469
For example: ^ nil').
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   470
    retCollection 
34
5be71b1d52ec SmallSenseResultItem ranemd to SmallSensePO.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
   471
        add:(SmallSenseConstantPO name:':=' description:'Assignment to variable').
5be71b1d52ec SmallSenseResultItem ranemd to SmallSensePO.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
   472
    retCollection add:(SmallSenseConstantPO name:'self'
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   473
                description:'Reference to self class. 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   474
Access to method from this class. 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   475
For example: self someMethod.').
34
5be71b1d52ec SmallSenseResultItem ranemd to SmallSensePO.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
   476
    retCollection add:(SmallSenseConstantPO name:'super'
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   477
                description:'Reference to super class. 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   478
Access to method from super class. 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   479
For example: super someMethod.').
34
5be71b1d52ec SmallSenseResultItem ranemd to SmallSensePO.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
   480
    retCollection add:(SmallSenseConstantPO name:'nil'
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   481
                description:'Nil. In c# or java null. Something empty').
34
5be71b1d52ec SmallSenseResultItem ranemd to SmallSensePO.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
   482
    retCollection add:(SmallSenseConstantPO name:'true' description:'True.').
5be71b1d52ec SmallSenseResultItem ranemd to SmallSensePO.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
   483
    retCollection add:(SmallSenseConstantPO name:'false' description:'False').
5be71b1d52ec SmallSenseResultItem ranemd to SmallSensePO.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
   484
    retCollection add:(SmallSenseConstantPO name:'#'
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   485
                description:'Symbol reference. 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   486
For example: #Symbol').
34
5be71b1d52ec SmallSenseResultItem ranemd to SmallSensePO.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
   487
    retCollection add:(SmallSenseConstantPO name:'$'
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   488
                description:'Character symbol. 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   489
For example #a').
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   490
    ^retCollection.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   491
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   492
    "Created: / 04-03-2011 / 12:40:45 / Jakub <zelenja7@fel.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   493
    "Modified: / 04-04-2011 / 13:44:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   494
    "Modified: / 07-04-2011 / 23:01:55 / Jakub <zelenja7@fel.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   495
!
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   496
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   497
beforeVariable:collector 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   498
    "There is some variables which can be before node"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   499
    
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   500
    |retCollection roelTyper helper class|
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   501
    retCollection := SmallSenseResultSet new.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   502
    (collector isNil) ifTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   503
        ^ retCollection.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   504
    ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   505
    (collector methodArgs notNil) ifTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   506
        collector methodArgs do:[:each | 
34
5be71b1d52ec SmallSenseResultItem ranemd to SmallSensePO.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
   507
            retCollection add:(SmallSenseVariablePO name:each
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   508
                        description:'Arguments in the method. Defined in method:val').
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   509
        ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   510
    ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   511
    roelTyper := self doForSource:collector.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   512
    roelTyper instVars do:[:var | 
34
5be71b1d52ec SmallSenseResultItem ranemd to SmallSensePO.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
   513
        retCollection add:(SmallSenseVariablePO name:var
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   514
                    description:'Instance variables. Variables defined in instanceVariableNames')
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   515
    ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   516
    helper := roelTyper localTypingResults 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   517
                at:roelTyper currentExtractedMethod.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   518
    helper do:[:each | 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   519
        (each tempName notNil) ifTrue:[
34
5be71b1d52ec SmallSenseResultItem ranemd to SmallSensePO.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
   520
            retCollection add:(SmallSenseVariablePO name:each tempName
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   521
                        description:'Variables in the method. Defined in |val val2|').
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   522
        ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   523
    ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   524
    class := collector targetClass.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   525
    [ class notNil ] whileTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   526
        class classVarNames do:[:each | 
34
5be71b1d52ec SmallSenseResultItem ranemd to SmallSensePO.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
   527
            retCollection add:(SmallSenseVariablePO name:each
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   528
                        description:'Class variables. Variables defined in classVariableNames').
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   529
        ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   530
        class := class superclass.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   531
    ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   532
    ^ retCollection.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   533
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   534
    "Created: / 04-03-2011 / 13:03:44 / Jakub <zelenja7@fel.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   535
    "Modified: / 04-04-2011 / 13:44:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   536
    "Modified: / 07-04-2011 / 22:54:47 / Jakub <zelenja7@fel.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   537
!
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   538
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   539
beforeVariable:collector nodeName:nodeName 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   540
    "There is some variables which can be before node"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   541
    
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   542
    |retCollection roelTyper helper class|
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   543
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   544
    retCollection := SmallSenseResultSet new.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   545
    (collector isNil) ifTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   546
        ^ retCollection.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   547
    ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   548
    (collector methodArgs notNil) ifTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   549
        collector methodArgs do:[:each | 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   550
            (each asLowercase startsWith:nodeName asLowercase) ifTrue:[
34
5be71b1d52ec SmallSenseResultItem ranemd to SmallSensePO.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
   551
                retCollection add:(SmallSenseVariablePO name:each
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   552
                            description:'Arguments in the method. Defined in method:val').
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   553
            ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   554
        ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   555
    ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   556
    roelTyper := self doForSource:collector.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   557
    roelTyper instVars do:[:var | 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   558
        (var asLowercase startsWith:nodeName asLowercase) ifTrue:[
34
5be71b1d52ec SmallSenseResultItem ranemd to SmallSensePO.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
   559
            retCollection add:(SmallSenseVariablePO name:var
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   560
                        description:'Instance variables. Variables defined in instanceVariableNames')
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   561
        ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   562
    ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   563
    helper := roelTyper localTypingResults 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   564
                at:roelTyper currentExtractedMethod.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   565
    helper do:[:each | 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   566
        (each tempName notNil) ifTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   567
            (each tempName asLowercase startsWith:nodeName asLowercase) ifTrue:[
34
5be71b1d52ec SmallSenseResultItem ranemd to SmallSensePO.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
   568
                retCollection add:(SmallSenseVariablePO name:each tempName
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   569
                            description:'Variables in the method. Defined in |val val2|').
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   570
            ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   571
        ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   572
    ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   573
    class := collector targetClass.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   574
    [ class notNil ] whileTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   575
        class classVarNames do:[:each | 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   576
            (each asLowercase startsWith:nodeName asLowercase) ifTrue:[
34
5be71b1d52ec SmallSenseResultItem ranemd to SmallSensePO.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
   577
                retCollection add:(SmallSenseVariablePO name:each
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   578
                            description:'Class variables. Variables defined in classVariableNames').
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   579
            ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   580
        ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   581
        class := class superclass.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   582
    ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   583
    ^ retCollection.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   584
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   585
    "Modified: / 04-04-2011 / 13:44:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   586
    "Created: / 06-04-2011 / 16:34:15 / Jakub <zelenja7@fel.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   587
    "Modified: / 06-04-2011 / 23:48:55 / Jakub <zelenja7@fel.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   588
!
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   589
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   590
createSelectorFromMessageNode:actualStatement 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   591
    "Creates selector node from selector in messageNode"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   592
    
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   593
    |helperNode|
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   594
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   595
    (actualStatement isNil) ifTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   596
        helperNode := SmallSenseSelectorNode new.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   597
    ] ifFalse:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   598
        helperNode := SelectorNode new.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   599
        helperNode receiver: actualStatement receiver.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   600
        helperNode selectors:actualStatement selector.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   601
        helperNode selectorsPosition:actualStatement selectorPosition.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   602
        helperNode lines:actualStatement lines.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   603
    ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   604
    ^ helperNode.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   605
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   606
    "Created: / 07-03-2011 / 17:49:33 / Jakub <zelenja7@fel.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   607
    "Modified: / 08-04-2011 / 21:10:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   608
!
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   609
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   610
doForSource: compiller
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   611
       " | parser|
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   612
        parser:=SmallSenseParser new.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   613
        parser sourceText:(compiller sourceStream collection asString) asText.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   614
          parser 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   615
        parseMethod:compiller sourceStream collection asString
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   616
        in:compiller targetClass
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   617
        ignoreErrors:false
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   618
        ignoreWarnings:false."
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   619
^self processMethod: compiller sourceStream collection asString class:compiller targetClass parser:compiller.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   620
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   621
    "Created: / 04-03-2011 / 12:54:09 / Jakub <zelenja7@fel.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   622
    "Modified: / 06-04-2011 / 14:13:15 / Jakub <zelenja7@fel.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   623
!
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   624
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   625
getReceiverinNodeForSelector:selector node:node 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   626
    "Gets receiver for selectorNode in node"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   627
    
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   628
    |helperSelector receiver|
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   629
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   630
    selector receiver ifNotNil:[^selector receiver]. 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   631
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   632
    (node isMessage) ifFalse:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   633
        "no reciver"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   634
        ^ nil.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   635
    ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   636
    receiver := node receiver.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   637
    helperSelector := self createSelectorFromMessageNode:node.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   638
    ((selector lines) = (helperSelector lines) 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   639
        and:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   640
            (selector selectors asString) = (helperSelector selectors asString) 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   641
                and:[ (selector selectorsPosition) = (helperSelector selectorsPosition) ]
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   642
        ]) 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   643
            ifTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   644
                ^ receiver.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   645
            ]
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   646
            ifFalse:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   647
                (receiver isMessage) ifTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   648
                    ^ self getReceiverinNodeForSelector:selector node:node receiver.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   649
                ]
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   650
            ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   651
    ^ nil.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   652
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   653
    "Created: / 07-03-2011 / 19:01:44 / Jakub <zelenja7@fel.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   654
    "Modified: / 08-04-2011 / 18:35:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   655
!
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   656
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   657
inClassName:nodeName 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   658
    "Find all classes which start this Name"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   659
    
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   660
    |classes retCollection|
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   661
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   662
    classes := Smalltalk allClasses 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   663
                select:[:cls | cls name startsWith:nodeName].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   664
    retCollection := SmallSenseResultSet new.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   665
    classes do:[:cls | 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   666
        retCollection 
34
5be71b1d52ec SmallSenseResultItem ranemd to SmallSensePO.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
   667
            add:(SmallSenseClassPO subject: cls)
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   668
    ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   669
    ^ retCollection.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   670
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   671
    "Created: / 06-04-2011 / 16:21:53 / Jakub <zelenja7@fel.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   672
    "Modified: / 08-04-2011 / 18:37:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   673
!
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   674
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   675
inNode:foundNode collector:collector 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   676
    "return collection which can be afterNode"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   677
    
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   678
    |retCollection receiver node befStatement|
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   679
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   680
    (foundNode node isNil) ifTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   681
        node := foundNode statement.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   682
    ] ifFalse:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   683
        node := foundNode node.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   684
    ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   685
    retCollection := SmallSenseResultSet new.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   686
    (node isVariable) ifTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   687
        retCollection := self beforeVariable:collector nodeName:node name.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   688
        retCollection join:(self beforeBlockVariable:foundNode).
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   689
        retCollection join:(self inClassName:node name).
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   690
        ^ retCollection.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   691
    ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   692
    (node isConstant) ifTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   693
        ^ nil.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   694
    ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   695
    (node isSelf) ifTrue:[
34
5be71b1d52ec SmallSenseResultItem ranemd to SmallSensePO.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
   696
        retCollection add:(SmallSenseConstantPO name:'self'
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   697
                    description:'Reference to self class. 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   698
Access to method from this class. 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   699
For example: self someMethod.').
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   700
        ^ retCollection.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   701
    ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   702
    (node isSuper) ifTrue:[
34
5be71b1d52ec SmallSenseResultItem ranemd to SmallSensePO.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
   703
        retCollection add:(SmallSenseConstantPO name:'super'
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   704
                    description:'Reference to super class. 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   705
Access to method from super class. 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   706
For example: super someMethod.').
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   707
        ^ retCollection.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   708
    ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   709
    (node isAssignment) ifTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   710
        ^ self before:foundNode collector:collector.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   711
    ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   712
    (node isMessage) ifTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   713
        ^ self before:foundNode collector:collector.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   714
    ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   715
    (node isBlock) ifTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   716
        retCollection join:(self before:foundNode collector:collector).
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   717
        ^ retCollection.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   718
    ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   719
    node isSelector ifTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   720
        receiver := self getReceiverinNodeForSelector:node
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   721
                    node:foundNode statement.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   722
        (receiver isNil) ifTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   723
            "Try to get receiver from cascadeNode"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   724
            befStatement := foundNode beforeStatement.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   725
            [
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   726
                befStatement isMessage
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   727
            ] whileTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   728
                receiver := befStatement receiver.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   729
                befStatement := receiver.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   730
            ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   731
        ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   732
        (receiver notNil) ifTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   733
            (receiver isMessage 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   734
                or:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   735
                    receiver isAssignment 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   736
                        or:[ receiver isErrorNode or:[ receiver isSelector ] ]
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   737
                ]) 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   738
                    ifFalse:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   739
                        foundNode node:receiver.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   740
                        foundNode beforeNode:false.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   741
                        foundNode afterNode:true.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   742
                        ^ self after:foundNode collector:collector.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   743
                    ]
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   744
        ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   745
        ^ retCollection.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   746
    ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   747
    (foundNode node isErrorNode) ifTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   748
        ^ self before:foundNode collector:collector.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   749
    ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   750
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   751
    "Created: / 07-03-2011 / 18:59:02 / Jakub <zelenja7@fel.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   752
    "Modified: / 08-04-2011 / 09:31:51 / Jakub <zelenja7@fel.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   753
!
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   754
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   755
old_recognize:line position:pos collector:collector 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   756
    "find most possible codeCompletion object"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   757
    
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   758
    |node finder position|
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   759
    resultSet := SmallSenseResultSet new.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   760
    (collector tree ~= #Error) ifTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   761
        finder := SmallSenseFinder new.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   762
        (collector tree isNil) ifTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   763
            self breakPoint: #jv. ^nil.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   764
        ] ifFalse:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   765
            position := finder findNodeIn: collector source tree: collector tree 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   766
                                 line: line column: pos.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   767
            (position beforeNode) ifTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   768
                self before:position node collector:collector.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   769
            ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   770
            (position afterNode) ifTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   771
                self after:position node collector:collector.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   772
            ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   773
            (position inNode) ifTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   774
                self inNode:position node collector:collector.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   775
            ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   776
        ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   777
    ] ifFalse:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   778
        self before.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   779
    ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   780
    (resultSet objectNameCollection isNil 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   781
        or:[ resultSet objectNameCollection size = 0 ]) 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   782
            ifTrue:[
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   783
                resultSet join:(self afterSelfNode:node collector:collector).
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   784
                resultSet join:(self before:node collector:collector).
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   785
            ].
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   786
    resultSet position:position.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   787
    ^ resultSet.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   788
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   789
    "Created: / 04-03-2011 / 13:01:14 / Jakub <zelenja7@fel.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   790
    "Modified: / 08-04-2011 / 10:52:59 / Jakub <zelenja7@fel.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   791
    "Created: / 26-11-2011 / 16:51:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   792
!
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   793
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   794
processMethod:source class:class parser:parser 
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   795
    
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   796
    |collector|
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   797
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   798
    collector := SmallSenseTypeCollector onClass: class.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   799
    collector addMethod:parser.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   800
    SmallSenseTypeCollector new newExtractor   
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   801
        extractInterfacesFrom:source
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   802
        class:class
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   803
        addTo:collector.
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   804
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   805
    ^ collector
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   806
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   807
    "Created: / 17-03-2011 / 18:12:26 / Jakub <zelenja7@fel.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   808
    "Modified: / 04-04-2011 / 22:29:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   809
    "Modified: / 06-04-2011 / 14:18:50 / Jakub <zelenja7@fel.cvut.cz>"
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   810
! !
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   811
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   812
!SmallSenseRecognizer class methodsFor:'documentation'!
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   813
29
fe650a6e5704 Moved NavigationState>>selectedClasses to package stx:libtool.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
   814
version_HG
fe650a6e5704 Moved NavigationState>>selectedClasses to package stx:libtool.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
   815
fe650a6e5704 Moved NavigationState>>selectedClasses to package stx:libtool.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
   816
    ^ '$Changeset: <not expanded> $'
fe650a6e5704 Moved NavigationState>>selectedClasses to package stx:libtool.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
   817
!
fe650a6e5704 Moved NavigationState>>selectedClasses to package stx:libtool.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
   818
0
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   819
version_SVN
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   820
    ^ '$Id: SmallSenseRecognizer.st 7826 2011-11-27 09:48:43Z vranyj1 $'
893cc7b0ed1d copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   821
! !
29
fe650a6e5704 Moved NavigationState>>selectedClasses to package stx:libtool.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
   822