MethodFinder.st
author mawalch
Mon, 01 Feb 2016 15:16:58 +0100
changeset 3951 bab7dcb06041
parent 3872 2b1a0e287ed8
child 3952 18fa867c466b
child 4025 3e0c6dd0ad9e
permissions -rw-r--r--
#BUGFIX class: MethodFinder changed: #initialize2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3951
bab7dcb06041 #BUGFIX
mawalch
parents: 3872
diff changeset
     1
"{ Encoding: utf8 }"
bab7dcb06041 #BUGFIX
mawalch
parents: 3872
diff changeset
     2
1983
9d849f1f9a94 copyright
Claus Gittinger <cg@exept.de>
parents: 1961
diff changeset
     3
"
9d849f1f9a94 copyright
Claus Gittinger <cg@exept.de>
parents: 1961
diff changeset
     4
 COPYRIGHT (c) 2006 by eXept Software AG
9d849f1f9a94 copyright
Claus Gittinger <cg@exept.de>
parents: 1961
diff changeset
     5
              All Rights Reserved
9d849f1f9a94 copyright
Claus Gittinger <cg@exept.de>
parents: 1961
diff changeset
     6
9d849f1f9a94 copyright
Claus Gittinger <cg@exept.de>
parents: 1961
diff changeset
     7
 This software is furnished under a license and may be used
9d849f1f9a94 copyright
Claus Gittinger <cg@exept.de>
parents: 1961
diff changeset
     8
 only in accordance with the terms of that license and with the
9d849f1f9a94 copyright
Claus Gittinger <cg@exept.de>
parents: 1961
diff changeset
     9
 inclusion of the above copyright notice.   This software may not
9d849f1f9a94 copyright
Claus Gittinger <cg@exept.de>
parents: 1961
diff changeset
    10
 be provided or otherwise made available to, or used by, any
9d849f1f9a94 copyright
Claus Gittinger <cg@exept.de>
parents: 1961
diff changeset
    11
 other person.  No title to or ownership of the software is
9d849f1f9a94 copyright
Claus Gittinger <cg@exept.de>
parents: 1961
diff changeset
    12
 hereby transferred.
9d849f1f9a94 copyright
Claus Gittinger <cg@exept.de>
parents: 1961
diff changeset
    13
"
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    14
"{ Package: 'stx:libbasic3' }"
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    15
3773
6e1038b06ec1 class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3690
diff changeset
    16
"{ NameSpace: Smalltalk }"
6e1038b06ec1 class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3690
diff changeset
    17
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    18
Object subclass:#MethodFinder
1106
50a16e11b73a more st/x messages
Claus Gittinger <cg@exept.de>
parents: 1104
diff changeset
    19
	instanceVariableNames:'data answers selector argMap thisData mapStage mapList
50a16e11b73a more st/x messages
Claus Gittinger <cg@exept.de>
parents: 1104
diff changeset
    20
		expressions cachedClass cachedArgNum cachedSelectorLists'
1491
8941fc515d83 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1114
diff changeset
    21
	classVariableNames:'AddAndRemove Approved Blocks BlocksOptional Dangerous'
1106
50a16e11b73a more st/x messages
Claus Gittinger <cg@exept.de>
parents: 1104
diff changeset
    22
	poolDictionaries:''
3872
2b1a0e287ed8 class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3773
diff changeset
    23
	category:'Interface-Tools'
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    24
!
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    25
1100
0502179eabd1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1092
diff changeset
    26
!MethodFinder class methodsFor:'documentation'!
0502179eabd1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1092
diff changeset
    27
1983
9d849f1f9a94 copyright
Claus Gittinger <cg@exept.de>
parents: 1961
diff changeset
    28
copyright
9d849f1f9a94 copyright
Claus Gittinger <cg@exept.de>
parents: 1961
diff changeset
    29
"
9d849f1f9a94 copyright
Claus Gittinger <cg@exept.de>
parents: 1961
diff changeset
    30
 COPYRIGHT (c) 2006 by eXept Software AG
9d849f1f9a94 copyright
Claus Gittinger <cg@exept.de>
parents: 1961
diff changeset
    31
              All Rights Reserved
9d849f1f9a94 copyright
Claus Gittinger <cg@exept.de>
parents: 1961
diff changeset
    32
9d849f1f9a94 copyright
Claus Gittinger <cg@exept.de>
parents: 1961
diff changeset
    33
 This software is furnished under a license and may be used
9d849f1f9a94 copyright
Claus Gittinger <cg@exept.de>
parents: 1961
diff changeset
    34
 only in accordance with the terms of that license and with the
9d849f1f9a94 copyright
Claus Gittinger <cg@exept.de>
parents: 1961
diff changeset
    35
 inclusion of the above copyright notice.   This software may not
9d849f1f9a94 copyright
Claus Gittinger <cg@exept.de>
parents: 1961
diff changeset
    36
 be provided or otherwise made available to, or used by, any
9d849f1f9a94 copyright
Claus Gittinger <cg@exept.de>
parents: 1961
diff changeset
    37
 other person.  No title to or ownership of the software is
9d849f1f9a94 copyright
Claus Gittinger <cg@exept.de>
parents: 1961
diff changeset
    38
 hereby transferred.
9d849f1f9a94 copyright
Claus Gittinger <cg@exept.de>
parents: 1961
diff changeset
    39
"
9d849f1f9a94 copyright
Claus Gittinger <cg@exept.de>
parents: 1961
diff changeset
    40
!
9d849f1f9a94 copyright
Claus Gittinger <cg@exept.de>
parents: 1961
diff changeset
    41
1100
0502179eabd1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1092
diff changeset
    42
documentation
0502179eabd1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1092
diff changeset
    43
"
0502179eabd1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1092
diff changeset
    44
  [author:]
0502179eabd1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1092
diff changeset
    45
    ported from Squeak and GUI enhanced by James Hayes james@exept.de
0502179eabd1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1092
diff changeset
    46
"
0502179eabd1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1092
diff changeset
    47
! !
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    48
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    49
!MethodFinder class methodsFor:'accessing'!
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    50
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    51
abortAllSignal
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    52
    "return the value of the static variable 'AbortAllSignal' (automatically generated)"
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    53
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    54
    ^ AbortAllSignal
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    55
!
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    56
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    57
abortAllSignal:something
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    58
    "set the value of the static variable 'AbortAllSignal' (automatically generated)"
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    59
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    60
    AbortAllSignal := something.
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    61
!
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    62
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    63
addAndRemove
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    64
    "return the value of the static variable 'AddAndRemove' (automatically generated)"
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    65
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    66
    ^ AddAndRemove
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    67
!
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    68
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    69
addAndRemove:something
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    70
    "set the value of the static variable 'AddAndRemove' (automatically generated)"
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    71
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    72
    AddAndRemove := something.
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    73
!
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    74
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    75
approved
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    76
    "return the value of the static variable 'Approved' (automatically generated)"
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    77
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    78
    ^ Approved
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    79
!
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    80
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    81
approved:something
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    82
    "set the value of the static variable 'Approved' (automatically generated)"
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    83
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    84
    Approved := something.
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    85
!
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    86
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    87
blocks
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    88
    "return the value of the static variable 'Blocks' (automatically generated)"
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    89
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    90
    ^ Blocks
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    91
!
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    92
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    93
blocks:something
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    94
    "set the value of the static variable 'Blocks' (automatically generated)"
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    95
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    96
    Blocks := something.
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    97
!
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    98
40d9ddd1f510 initial checkin
james
parents:
diff changeset
    99
dangerous
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   100
    "return the value of the static variable 'Dangerous' (automatically generated)"
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   101
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   102
    ^ Dangerous
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   103
!
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   104
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   105
dangerous:something
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   106
    "set the value of the static variable 'Dangerous' (automatically generated)"
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   107
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   108
    Dangerous := something.
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   109
! !
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   110
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   111
!MethodFinder class methodsFor:'as yet unclassified'!
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   112
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   113
methodFor: dataAndAnswers
3401
01f487ed67d7 class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3320
diff changeset
   114
    "Return a Squeak expression that computes these answers.  
01f487ed67d7 class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3320
diff changeset
   115
     (This method is called by the comment in the bottom pane of a MethodFinder.  
01f487ed67d7 class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3320
diff changeset
   116
     Do not delete this method.)"
01f487ed67d7 class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3320
diff changeset
   117
01f487ed67d7 class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3320
diff changeset
   118
"/ but yes, I do !!
01f487ed67d7 class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3320
diff changeset
   119
"/ the finder already shows all the implementors in the right pane;
01f487ed67d7 class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3320
diff changeset
   120
"/ no need fr this.
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   121
3401
01f487ed67d7 class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3320
diff changeset
   122
"/    | resultOC selFinder resultString |
01f487ed67d7 class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3320
diff changeset
   123
"/   
01f487ed67d7 class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3320
diff changeset
   124
"/    resultOC _ (self new) load: dataAndAnswers; findMessage.
01f487ed67d7 class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3320
diff changeset
   125
"/    resultString _ String streamContents: [:strm |
01f487ed67d7 class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3320
diff changeset
   126
"/            resultOC do: [:exp | strm nextPut: $(; nextPutAll: exp; nextPut: $); space]].
01f487ed67d7 class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3320
diff changeset
   127
"/
01f487ed67d7 class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3320
diff changeset
   128
"/    Smalltalk isMorphic ifTrue: [
01f487ed67d7 class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3320
diff changeset
   129
"/            selFinder _ (Display bestGuessOfCurrentWorld 
01f487ed67d7 class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3320
diff changeset
   130
"/                            submorphThat: [:mm | 
01f487ed67d7 class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3320
diff changeset
   131
"/                                            mm class == SystemWindow 
01f487ed67d7 class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3320
diff changeset
   132
"/                                            and: [mm model isKindOf: SelectorBrowser]] 
01f487ed67d7 class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3320
diff changeset
   133
"/                            ifNone: [^ resultString]) model.
01f487ed67d7 class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3320
diff changeset
   134
"/            selFinder searchResult: resultOC].
01f487ed67d7 class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3320
diff changeset
   135
"/
01f487ed67d7 class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3320
diff changeset
   136
"/    ^ resultString
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   137
! !
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   138
2772
8e0cfc719236 category of:
Claus Gittinger <cg@exept.de>
parents: 2285
diff changeset
   139
!MethodFinder methodsFor:'accessing'!
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   140
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   141
answers
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   142
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   143
        ^ answers
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   144
!
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   145
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   146
data
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   147
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   148
        ^ data
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   149
!
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   150
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   151
expressions
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   152
        ^ expressions
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   153
!
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   154
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   155
selectors
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   156
        "Note the inst var does not have an S on the end"
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   157
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   158
        ^ selector
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   159
! !
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   160
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   161
!MethodFinder methodsFor:'arg maps'!
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   162
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   163
argMap
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   164
        ^ argMap 
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   165
!
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   166
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   167
makeAllMaps 
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   168
        "Make a giant list of all permutations of the args.  To find the function, we will try these permutations of the input data.  receiver, args."
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   169
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   170
        | ii |
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   171
        mapList _ Array new: argMap size factorial.
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   172
        ii _ 1.
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   173
        argMap permutationsDo: [:perm |
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   174
                mapList at: ii put: perm copy.
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   175
                ii _ ii + 1].
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   176
        mapStage _ 1.   "about to be bumped"
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   177
!
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   178
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   179
mapData 
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   180
        "Force the data through the map (permutation) to create the data to test."
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   181
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   182
        thisData _ data collect: [:realData |
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   183
                                        argMap collect: [:ind | realData at: ind]].
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   184
                
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   185
!
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   186
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   187
permuteArgs 
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   188
        "Run through ALL the permutations.  First one was as presented."
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   189
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   190
        data first size <= 1 ifTrue: [^ false]. "no other way"
1928
49fdf6083f86 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1491
diff changeset
   191
        mapList isNil ifTrue: [self makeAllMaps].
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   192
        mapStage _ mapStage + 1.
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   193
        mapStage > mapList size ifTrue: [^ false].
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   194
        argMap _ mapList at: mapStage.
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   195
        self mapData.
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   196
        ^ true
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   197
!
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   198
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   199
thisData
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   200
        ^ thisData 
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   201
! !
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   202
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   203
!MethodFinder methodsFor:'find a constant'!
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   204
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   205
allNumbers
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   206
        "Return true if all answers and all data are numbers."
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   207
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   208
        answers do: [:aa | aa isNumber ifFalse: [^ false]].
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   209
        thisData do: [:vec |
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   210
                        vec do: [:nn | nn isNumber ifFalse: [^ false]]].
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   211
        ^ true
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   212
!
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   213
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   214
const
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   215
        | const |
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   216
        "See if (^ constant) is the answer"
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   217
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   218
        "quick test"
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   219
        ((const _ answers at: 1) closeTo: (answers at: 2)) ifFalse: [^ false].
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   220
        3 to: answers size do: [:ii | (const closeTo: (answers at: ii)) ifFalse: [^ false]].
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   221
        expressions add: '^ ', const printString.
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   222
        selector add: #yourself.
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   223
        ^ true
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   224
!
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   225
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   226
constDiv
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   227
        "See if (data1 // C) is the answer"
2054
000555279ed8 changed #constDiv
Claus Gittinger <cg@exept.de>
parents: 2026
diff changeset
   228
        self breakPoint:#cg.
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   229
        ^ false.
2026
dd6a51f84ac2 changed #constDiv
Claus Gittinger <cg@exept.de>
parents: 1983
diff changeset
   230
3320
064c17a6d1bb class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3316
diff changeset
   231
"/        const _ ((thisData at: 1) at: 1) // (answers at: 1).  "May not be right!!"
064c17a6d1bb class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3316
diff changeset
   232
"/        got _ (subTest _ MethodFinder new copy: self addArg: const) 
064c17a6d1bb class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3316
diff changeset
   233
"/                                searchForOne isEmpty not.
064c17a6d1bb class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3316
diff changeset
   234
"/        got ifFalse: [^ false]. 
064c17a6d1bb class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3316
diff changeset
   235
"/
064c17a6d1bb class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3316
diff changeset
   236
"/        "replace data2 with const in expressions"
064c17a6d1bb class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3316
diff changeset
   237
"/        subTest expressions do: [:exp |
064c17a6d1bb class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3316
diff changeset
   238
"/                expressions add: (exp copyReplaceString: "copyReplaceAll:" 'data2' withString: "with:" const printString)].
064c17a6d1bb class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3316
diff changeset
   239
"/        selector addAll: subTest selectors.
064c17a6d1bb class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3316
diff changeset
   240
"/        ^ true
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   241
!
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   242
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   243
constLessThan
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   244
        | const subTest got minConst maxConst tt |
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   245
        "See if (data1 <= C) or (data1 >= C) is the answer"
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   246
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   247
        "quick test"
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   248
        ((answers at: 1) class superclass == Boolean) ifFalse: [^ false].
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   249
        2 to: answers size do: [:ii | 
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   250
                ((answers at: ii) class superclass == Boolean) ifFalse: [^ false]].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   251
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   252
        minConst _ Float infinity.  maxConst _ minConst negated.
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   253
        answers withIndexDo: [:aa :ii |
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   254
                aa ifTrue: [tt _ (thisData at: ii) at: 1.
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   255
                        minConst _ minConst min: tt.
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   256
                        maxConst _ maxConst max: tt]].
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   257
        const _ (thisData at: 1) at: 1.
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   258
        got _ (subTest _ MethodFinder new copy: self addArg: minConst) 
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   259
                                searchForOne isEmpty not.
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   260
        got ifFalse: ["try other extreme for <= >= "
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   261
                got _ (subTest _ MethodFinder new copy: self addArg: maxConst) 
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   262
                                searchForOne isEmpty not]. 
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   263
        got ifFalse: [^ false]. 
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   264
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   265
        "replace data2 with const in expressions"
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   266
        subTest expressions do: [:exp |
2904
021381917b28 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 2895
diff changeset
   267
                expressions add: (exp copyReplaceString: "copyReplaceAll:" 'data2' withString: "with:" const printString)].
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   268
        selector addAll: subTest selectors.
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   269
        ^ true
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   270
!
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   271
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   272
constLinear
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   273
        | const subTest got denom num slope offset |
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   274
        "See if (data1 * C1) + C2 is the answer.  In the form  #(C2 C1) polynomialEval: data1 "
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   275
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   276
        denom _ ((thisData at: 2) at: 1) - ((thisData at: 1) at: 1).
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   277
        denom = 0 ifTrue: [^ false].   "will divide by it"
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   278
        num _ (answers at: 2) - (answers at: 1).
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   279
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   280
    slope := (num asFloat / denom) reduce.
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   281
    offset := ((answers at: 2) - (((thisData at: 2) at: 1) * slope)) reduce.
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   282
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   283
        const _ Array with: offset with: slope.
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   284
        got _ (subTest _ MethodFinder new copy: self addArg: const) 
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   285
                                searchForOne isEmpty not.
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   286
        got ifFalse: [^ false]. 
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   287
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   288
        "replace data2 with const in expressions"
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   289
        subTest expressions do: [:exp |
2904
021381917b28 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 2895
diff changeset
   290
                expressions add: (exp copyReplaceString: "copyReplaceAll:" 'data2' withString: "with:" const printString)].
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   291
        selector addAll: subTest selectors.
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   292
        ^ true
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   293
!
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   294
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   295
constMod
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   296
        | subTest low |
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   297
        "See if mod, (data1 \\ C) is the answer"
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   298
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   299
        low _ answers max.
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   300
        low+1 to: low+20 do: [:const |
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   301
                subTest _ MethodFinder new copy: self addArg: const.
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   302
                (subTest testPerfect: #\\) ifTrue: [
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   303
                        expressions add: 'data1 \\ ', const printString.
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   304
                        selector add: #\\.
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   305
                        ^ true]].
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   306
        ^ false
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   307
!
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   308
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   309
constMult
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   310
        | const subTest got |
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   311
        "See if (data1 * C) is the answer"
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   312
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   313
        ((thisData at: 1) at: 1) = 0 ifTrue: [^ false].
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   314
        const _ ((answers at: 1) asFloat / ((thisData at: 1) at: 1)) reduce.
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   315
        got _ (subTest _ MethodFinder new copy: self addArg: const) 
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   316
                                searchForOne isEmpty not.
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   317
        got ifFalse: [^ false]. 
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   318
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   319
        "replace data2 with const in expressions"
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   320
        subTest expressions do: [:exp |
2904
021381917b28 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 2895
diff changeset
   321
                expressions add: (exp copyReplaceString: "copyReplaceAll:" 'data2' withString: "with:" const printString)].
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   322
        selector addAll: subTest selectors.
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   323
        ^ true
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   324
!
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   325
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   326
constPlus
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   327
        | const subTest got |
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   328
        "See if (data1 + C) is the answer"
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   329
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   330
        const _ (answers at: 1) - ((thisData at: 1) at: 1).
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   331
        got _ (subTest _ MethodFinder new copy: self addArg: const) 
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   332
                                searchForOne isEmpty not.
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   333
        got ifFalse: [^ false]. 
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   334
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   335
        "replace data2 with const in expressions"
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   336
        subTest expressions do: [:exp |
2904
021381917b28 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 2895
diff changeset
   337
                expressions add: (exp copyReplaceString: "copyReplaceAll:" 'data2' withString: "with:" const printString)].
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   338
        selector addAll: subTest selectors.
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
   339
        ^ true
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   340
! !
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   341
2248
bfaa21d84997 category of:8 methods
Claus Gittinger <cg@exept.de>
parents: 2229
diff changeset
   342
!MethodFinder methodsFor:'initialization'!
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   343
3515
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   344
cleanInputs:dataAndAnswerString 
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   345
    "Find and remove common mistakes.  Complain when ill formed."
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   346
    
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   347
    |fixed ddd rs places|
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   348
3515
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   349
    ddd := dataAndAnswerString.
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   350
    fixed := false.
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   351
    rs := ReadStream on:ddd , ' '.
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   352
    places := OrderedCollection new.
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   353
    [
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   354
        rs upToAll_positionBefore:'#true'.
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   355
        rs atEnd
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   356
    ] whileFalse:[ places addFirst:rs position ].
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   357
    places do:[:pos | 
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   358
        ddd := ddd 
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   359
                copyReplaceFrom:pos
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   360
                to:pos
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   361
                with:''.
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   362
        fixed := true
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   363
    ].
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   364
    rs := ReadStream on:ddd.
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   365
    places := OrderedCollection new.
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   366
    [
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   367
        rs upToAll_positionBefore:'#false'.
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   368
        rs atEnd
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   369
    ] whileFalse:[ places addFirst:rs position ].
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   370
    places do:[:pos | 
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   371
        ddd := ddd 
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   372
                copyReplaceFrom:pos
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   373
                to:pos
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   374
                with:''.
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   375
        fixed := true
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   376
    ].
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   377
    fixed ifTrue:[
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   378
        self 
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   379
            information:'#(true false) are Symbols, not Booleans.  
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   380
Next time use { true. false }.'
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   381
    ].
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   382
    fixed := false.
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   383
    rs := ReadStream on:ddd.
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   384
    places := OrderedCollection new.
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   385
    [
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   386
        rs upToAll_positionBefore:'#nil'.
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   387
        rs atEnd
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   388
    ] whileFalse:[ places addFirst:rs position ].
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   389
    places do:[:pos | 
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   390
        ddd := ddd 
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   391
                copyReplaceFrom:pos
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   392
                to:pos
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   393
                with:''.
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   394
        fixed := true
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   395
    ].
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   396
    fixed ifTrue:[
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   397
        self 
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   398
            information:'#nil is a Symbol, not the authentic UndefinedObject.  
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   399
Next time use nil instead of #nil'
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   400
    ].
203e27373562 class: MethodFinder
Stefan Vogel <sv@exept.de>
parents: 3513
diff changeset
   401
    ^ ddd
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   402
!
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   403
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   404
initialize
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   405
        "The methods we are allowed to use.  (MethodFinder new initialize) "
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   406
        Approved _ Set new.
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   407
        AddAndRemove _ Set new.
1491
8941fc515d83 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1114
diff changeset
   408
        Blocks _ Set new.
8941fc515d83 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1114
diff changeset
   409
        BlocksOptional := Set new.
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   410
        "These modify an argument: longPrintOn: printOn: storeOn: sentTo: storeOn:base: printOn:base: absPrintExactlyOn:base: absPrintOn:base: absPrintOn:base:digitCount: writeOn: writeScanOn: possibleVariablesFor:continuedFrom:"
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   411
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   412
"Object"  
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   413
        #(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   414
    "in class, instance creation" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   415
        categoryForUniclasses chooseUniqueClassName initialInstance isSystemDefined newFrom: officialClass readCarefullyFrom:
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   416
    "accessing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   417
        at: basicAt: basicSize bindWithTemp: in: size yourself 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   418
    "testing" 
1109
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   419
        basicType ifNil: #'ifNil:ifNotNil:' ifNotNil: #'ifNotNil:ifNil:' 
3486
e1b722d5142b class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3444
diff changeset
   420
        isColor isArray isFloat isFraction isInMemory isInteger isMorph isNil isNumber 
e1b722d5142b class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3444
diff changeset
   421
        isPoint isPseudoContext isText isTransparent isWebBrowser isCollection
1109
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   422
        knownName notNil pointsTo: wantsSteps 
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   423
    "comparing" 
1109
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   424
        = == closeTo: hash hashMappedBy: identityHash identityHashMappedBy: identityHashPrintString 
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   425
        ~= ~~ 
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   426
    "copying" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   427
        clone copy shallowCopy 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   428
    "dependents access" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   429
        canDiscardEdits dependents hasUnacceptedEdits 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   430
    "updating" 
3487
e805a85b4155 class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3486
diff changeset
   431
        "changed changed: okToChange update: windowIsClosing" - not useful 
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   432
    "printing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   433
        fullPrintString isLiteral longPrintString printString storeString stringForReadout stringRepresentation 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   434
    "class membership" 
1109
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   435
        class isKindOf: #'isKindOf:orOf:' isMemberOf: respondsTo: respondsToArithmetic  
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   436
    "error handling" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   437
    "user interface" 
3513
36a320ef6a8a class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3487
diff changeset
   438
        defaultBackgroundColor defaultLabelForInspector fullScreenSize initialExtent modelWakeUp mouseUpBalk: 
36a320ef6a8a class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3487
diff changeset
   439
        "newTileMorphRepresentative" windowActiveOnFirstClick windowReqNewLabel: 
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   440
    "system primitives"  
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   441
        instVarAt: instVarNamed: 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   442
    "private" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   443
    "associating" -> 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   444
    "converting" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   445
        as: asOrderedCollection asString 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   446
    "casing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   447
        caseOf: #'caseOf:otherwise:' 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   448
    "binding" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   449
        bindingOf: 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   450
    "macpal" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   451
        contentsChanged #'ifKindOf:thenDo:' instanceVariableValues  
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   452
    "flagging" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   453
        flag: 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   454
    "translation support" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   455
    "objects from disk" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   456
    "finalization" 
1109
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   457
    "ST/X converting"
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   458
        literalArrayEncoding
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   459
        ) do: [:sel | Approved add: sel].
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   460
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   461
        #(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   462
        #'at:add:' #'at:modify:' #'at:put:' #'basicAt:put:' "NOT instVar:at:"
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   463
    "message handling" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   464
        perform: 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   465
        #'perform:with:' #'perform:with:with:' #'perform:with:with:with:' #'perform:withArguments:' 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   466
        #'perform:withArguments:inSuperclass:'
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   467
        #'perform:orSendTo:' 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   468
        ) do: [:sel | AddAndRemove add: sel].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   469
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   470
"Boolean, True, False, UndefinedObject"  
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   471
        #(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   472
    "logical operations" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   473
        & eqv: not xor: |
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   474
    "controlling" 
1961
bf11d495311b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   475
        and: ifFalse: #'ifFalse:ifTrue:' ifTrue: #'ifTrue:ifFalse:' or: ifNil: ifNotNil:
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   476
    "copying" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   477
    "testing" 
2061
dedc1fe14e92 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
   478
        isEmptyOrNil isNilOrEmptyCollection notEmptyOrNil
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   479
        ) do: [:sel | Approved add: sel].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   480
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   481
"Behavior" 
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   482
        #("initialize-release"
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   483
    "accessing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   484
        compilerClass decompilerClass evaluatorClass format methodDict parserClass sourceCodeTemplate subclassDefinerClass
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   485
    "testing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   486
        instSize instSpec isBits isBytes isFixed isPointers isVariable isWeak isWords
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   487
    "copying"
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   488
    "printing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   489
        defaultNameStemForInstances printHierarchy
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   490
    "creating class hierarchy"
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   491
    "creating method dictionary"
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   492
    "instance creation" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   493
        basicNew basicNew: new new:
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   494
    "accessing class hierarchy" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   495
        allSubclasses #'allSubclassesWithLevelDo:startingLevel:' allSuperclasses subclasses superclass withAllSubclasses withAllSuperclasses
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   496
    "accessing method dictionary" 
1109
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   497
        allSelectors changeRecordsAt: compiledMethodAt: #'compiledMethodAt:ifAbsent:' firstCommentAt: lookupSelector: selectors selectorsDo: selectorsWithArgs: 
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   498
        "slow but useful ->" sourceCodeAt: sourceCodeAt:ifAbsent: sourceMethodAt: sourceMethodAt:ifAbsent:
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   499
    "accessing instances and variables" 
1109
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   500
        allClassVarNames allInstVarNames allSharedPools classVarNames instVarNames instanceCount sharedPools 
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   501
        "someInstance" subclassInstVarNames
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   502
    "testing class hierarchy" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   503
        inheritsFrom: kindOfSubclass
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   504
    "testing method dictionary" 
1109
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   505
        canUnderstand: classThatUnderstands: hasMethods includesSelector: #'scopeHas:ifTrue:' 
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   506
        whichClassIncludesSelector: 
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   507
        whichSelectorsAccess: whichSelectorsReferTo: #'whichSelectorsReferTo:special:byte:' whichSelectorsStoreInto:
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   508
    "enumerating"
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   509
    "user interface"
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   510
    "private" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   511
        indexIfCompact
1109
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   512
    "ST/X testing method dictionary" 
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   513
        implements:  
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   514
        ) do: [:sel | Approved add: sel].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   515
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   516
"ClassDescription"
1109
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   517
        #(
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   518
    "initialize-release" 
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   519
    "accessing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   520
        classVersion isMeta name theNonMetaClass
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   521
    "copying" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   522
    "printing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   523
        classVariablesString instanceVariablesString sharedPoolsString
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   524
    "instance variables" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   525
        checkForInstVarsOK: 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   526
    "method dictionary" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   527
    "organization" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   528
        category organization whichCategoryIncludesSelector:
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   529
    "compiling" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   530
        acceptsLoggingOfCompilation wantsChangeSetLogging
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   531
    "fileIn/Out" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   532
        definition
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   533
    "private" 
1109
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   534
    "ST/X queries" 
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   535
        theMetaclass theNonMetaclass
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   536
        ) do: [:sel | Approved add: sel].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   537
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   538
"Class"
1109
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   539
        #(
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   540
    "initialize-release" 
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   541
    "accessing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   542
        classPool
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   543
    "testing"
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   544
    "copying" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   545
    "class name" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   546
    "instance variables" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   547
    "class variables" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   548
        classVarAt: classVariableAssociationAt:
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   549
    "pool variables" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   550
    "compiling" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   551
    "subclass creation" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   552
    "fileIn/Out" 
1109
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   553
    "ST/X queries" 
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   554
        nameSpace nameWithoutPrefix nameWithoutNameSpacePrefix
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   555
        ) do: [:sel | Approved add: sel]. 
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   556
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   557
"Metaclass"
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   558
        #("initialize-release" 
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   559
    "accessing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   560
        isSystemDefined soleInstance
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   561
    "copying" "instance creation" "instance variables"  
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   562
    "pool variables" "class hierarchy"  "compiling"
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   563
    "fileIn/Out"  
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   564
        nonTrivial 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   565
        ) do: [:sel | Approved add: sel].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   566
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   567
"Context, BlockContext"
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   568
        #(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   569
        receiver client method receiver tempAt: 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   570
    "debugger access" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   571
        mclass pc selector sender shortStack sourceCode tempNames tempsAndValues
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   572
    "controlling"  "printing" "system simulation" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   573
    "initialize-release" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   574
    "accessing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   575
        hasMethodReturn home numArgs
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   576
    "evaluating" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   577
        value #'value:ifError:' #'value:value:' #'value:value:value:' #'value:value:value:value:' #'valueWithArguments:'
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   578
    "controlling"  "scheduling"  "instruction decoding"  "printing" "private"  "system simulation" ) do: [:sel | Approved add: sel].
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   579
        #(value: "<- Association has it as a store" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   580
        ) do: [:sel | AddAndRemove add: sel].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   581
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   582
"Message"
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   583
        #(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   584
    "inclass, instance creation" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   585
        selector: #'selector:argument:' #'selector:arguments:'
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   586
    "accessing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   587
        argument argument: arguments sends:
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   588
    "printing" "sending" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   589
        ) do: [:sel | Approved add: sel].
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   590
        #(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   591
    "private" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   592
        #'setSelector:arguments:'
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   593
        ) do: [:sel | AddAndRemove add: sel].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   594
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   595
"Magnitude"
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   596
        #(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   597
    "comparing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   598
        < <= > >= #'between:and:'
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   599
    "testing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   600
        max: min: min:max: 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   601
        ) do: [:sel | Approved add: sel].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   602
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   603
"Date, Time"
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   604
        #(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   605
    "in class, instance creation" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   606
        fromDays: fromSeconds: fromString: #'newDay:month:year:' #'newDay:year:' today
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   607
    "in class, general inquiries" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   608
        dateAndTimeNow dayOfWeek: #'daysInMonth:forYear:' daysInYear: #'firstWeekdayOfMonth:year:' indexOfMonth: leapYear: nameOfDay: nameOfMonth:
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   609
    "accessing" 
1961
bf11d495311b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   610
        day isLeapYear "leap" monthIndex monthName weekday year
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   611
    "arithmetic" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   612
        addDays: subtractDate: subtractDays:
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   613
    "comparing"
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   614
    "inquiries" 
1961
bf11d495311b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   615
        dayOfMonth daysInMonth daysInYear daysLeftInMonth daysLeftInYear firstDayOfMonth previous:
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   616
    "converting" 
1961
bf11d495311b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   617
        asSeconds asDays
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   618
    "printing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   619
        mmddyy mmddyyyy printFormat: printOn:format:
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   620
    "private" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   621
        firstDayOfMonthIndex: weekdayIndex 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   622
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   623
    "in class, instance creation" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   624
        fromSeconds: now 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   625
    "in class, general inquiries" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   626
        dateAndTimeFromSeconds: dateAndTimeNow millisecondClockValue millisecondsToRun: totalSeconds
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   627
    "accessing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   628
        hours minutes seconds
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   629
    "arithmetic" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   630
        addTime: subtractTime:
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   631
    "comparing"
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   632
    "printing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   633
        intervalString print24 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   634
    "converting"
1961
bf11d495311b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   635
    "st/x" 
bf11d495311b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   636
        dayOfWeek abbreviatedDayName abbreviatedMonthName 
bf11d495311b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   637
        abbreviatedMonthNameForLanguage: dayCount dayInWeek dayInYear
bf11d495311b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   638
        monthNameForLanguage: weekInYear daysSince: daysUntil: 
bf11d495311b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   639
        asTimestamp asDate
bf11d495311b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   640
        timeZoneDeltaInMinutes asTime asTimeDuration asMilliseconds
bf11d495311b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   641
        asUtcTimestamp utcSecondsSince1901 printStringIso8601Format
bf11d495311b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   642
        printString12HourFormat printString24HourFormat
bf11d495311b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   643
        days utcOffset millisecondDeltaFrom: secondDeltaFrom:
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   644
        ) do: [:sel | Approved add: sel].
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   645
        #(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   646
    "private" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   647
        hours: #'hours:minutes:seconds:' #'day:year:' 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   648
        ) do: [:sel | AddAndRemove add: sel].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   649
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   650
"Number"
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   651
        #(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   652
    "in class" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   653
        #'readFrom:base:' 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   654
    "arithmetic" 
2061
dedc1fe14e92 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
   655
        * + - / // \\ abs negated quo: reciprocal rem: 
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   656
    "mathematical functions" 
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   657
        arcCos arcSin arcTan arcTan: cos exp floorLog: ln log log: raisedTo: raisedToInteger: sin sqrt squared tan
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   658
    "truncation and round off" 
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   659
        ceiling #'detentBy:atMultiplesOf:snap:' floor roundTo: roundUpTo: rounded truncateTo: truncated
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   660
    "comparing"
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   661
    "testing" 
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   662
        even isDivisibleBy: isInf isInfinite isNaN isZero negative odd positive sign strictlyPositive
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   663
    "converting" 
2285
3128849e7d2e changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 2248
diff changeset
   664
        @ asInteger asNumber asPoint asSmallAngleDegrees degreesToRadians radiansToDegrees 
3128849e7d2e changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 2248
diff changeset
   665
        asFixedPoint asFixedPoint: asFixedPointRoundedToScale asFixedPointRoundedToScale:
3128849e7d2e changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 2248
diff changeset
   666
        asFloat asFraction
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   667
    "intervals" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   668
        to: #'to:by:' 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   669
    "printing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   670
        printStringBase: storeStringBase: 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   671
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   672
    "ST/X in class"         
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   673
        #'readFrom:base:' 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   674
    "ST/X intervals"        
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   675
        downTo: #'downTo:by:'
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   676
    "ST/X printing"         
2061
dedc1fe14e92 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
   677
        radixPrintStringRadix: printStringRadix: storeStringRadix: romanPrintString
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   678
        ) do: [:sel | Approved add: sel].
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   679
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   680
"Integer"
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   681
        #(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   682
    "in class" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   683
        primesUpTo:
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   684
    "testing" 
3316
d11917d0dca1 class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 2935
diff changeset
   685
        isPowerOfTwo isPowerOf: digitBytes isPrime nextPrime
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   686
    "arithmetic" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   687
        alignedTo:
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   688
    "comparing"
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   689
    "truncation and round off" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   690
        atRandom normalize
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   691
    "enumerating" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   692
        timesRepeat:
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   693
    "mathematical functions" 
2061
dedc1fe14e92 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
   694
        degreeCos degreeSin factorial gcd: lcm: binco: take: primeFactors
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   695
    "bit manipulation" 
2061
dedc1fe14e92 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
   696
        << >> allMask: anyMask: bitAnd: bitClear: bitInvert bitInvert32 bitOr: bitShift: bitXor: 
dedc1fe14e92 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
   697
              highBit lowBit bitCount noMask:
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   698
    "converting" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   699
        asCharacter asColorOfDepth: asFloat asFraction asHexDigit
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   700
    "printing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   701
        asStringWithCommas hex hex8 radix:
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   702
    "system primitives" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   703
        lastDigit #'replaceFrom:to:with:startingAt:'
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   704
    "private" "benchmarks" 
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   705
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   706
    "ST/X printing"       
2061
dedc1fe14e92 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
   707
        hexPrintString 
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   708
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   709
        ) do: [:sel | Approved add: sel].
1106
50a16e11b73a more st/x messages
Claus Gittinger <cg@exept.de>
parents: 1104
diff changeset
   710
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   711
"SmallInteger, LargeNegativeInteger, LargePositiveInteger"
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   712
        #(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   713
    "arithmetic" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   714
    "bit manipulation" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   715
    "testing" "comparing" "copying" "converting" "printing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   716
    "system primitives" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   717
        digitAt: digitLength 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   718
    "private" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   719
        #'fromString:radix:' 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   720
        ) do: [:sel | Approved add: sel].
2059
9e0592033093 allow search for collection results
Claus Gittinger <cg@exept.de>
parents: 2058
diff changeset
   721
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   722
        #((#'digitAt:put:') ) do: [:sel | AddAndRemove add: sel].
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   723
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   724
"Float"
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   725
        #(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   726
    "arithmetic"
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   727
    "mathematical functions" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   728
        reciprocalFloorLog: reciprocalLogBase2 timesTwoPower:
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   729
    "comparing" "testing"
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   730
    "truncation and round off" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   731
        exponent fractionPart integerPart significand significandAsInteger
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   732
    "converting" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   733
        asApproximateFraction asIEEE32BitWord asTrueFraction
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   734
    "copying"
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   735
        ) do: [:sel | Approved add: sel].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   736
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   737
"Fraction, Random"
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   738
        #(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   739
        denominator numerator reduced next nextValue
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   740
        ) do: [:sel | Approved add: sel].
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   741
        #(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   742
        #'setNumerator:denominator:'
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   743
        ) do: [:sel | AddAndRemove add: sel].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   744
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   745
"Collection"
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   746
        #(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   747
    "accessing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   748
        anyOne
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   749
    "testing" 
3486
e1b722d5142b class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3444
diff changeset
   750
        includes: includesAllOf: includesAnyOf: includesSubstringAnywhere: 
e1b722d5142b class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3444
diff changeset
   751
        isEmpty notEmpty isSequenceable occurrencesOf:
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   752
    "enumerating" 
3486
e1b722d5142b class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3444
diff changeset
   753
        collect: #'collect:thenSelect:' count: contains:
e1b722d5142b class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3444
diff changeset
   754
        detect: #'detect:ifNone:' detectMax: detectMin: detectSum: 
e1b722d5142b class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3444
diff changeset
   755
        #'inject:into:' reject: select: #'select:thenCollect:'  map:
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   756
    "converting" 
3486
e1b722d5142b class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3444
diff changeset
   757
        asArray asBag asCharacterSet asSet asSortedArray asSortedCollection asSortedCollection:
e1b722d5142b class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3444
diff changeset
   758
        asStringWith: asNilIfEmpty asOrderedCollection
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   759
    "printing"
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   760
    "private" 
3486
e1b722d5142b class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3444
diff changeset
   761
        maxSize largest: smallest: 
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   762
    "arithmetic"
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   763
    "math functions" 
3486
e1b722d5142b class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3444
diff changeset
   764
        average max median min range sum product abs minMax
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   765
        ) do: [:sel | Approved add: sel].
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   766
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   767
        #(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   768
    "adding" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   769
        add: addAll: addIfNotPresent:
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   770
    "removing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   771
        remove: #'remove:ifAbsent:' removeAll: removeAllFoundIn: removeAllSuchThat: #'remove:ifAbsent:'
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   772
        ) do: [:sel | AddAndRemove add: sel].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   773
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   774
"SequenceableCollection"
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   775
        #(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   776
    "comparing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   777
        hasEqualElements:
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   778
    "accessing" allButFirst allButLast at:ifAbsent: atAll: atPin: atRandom: atWrap: 
3486
e1b722d5142b class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3444
diff changeset
   779
        fifth first fourth last second sixth third  nth:
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   780
        identityIndexOf: #'identityIndexOf:startingAt:' #'identityIndexOf:ifAbsent:' #'identityIndexOf:startingAt:ifAbsent:'
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   781
        indexOf:         #'indexOf:startingAt:'         #'indexOf:ifAbsent:'     #'indexOf:startingAt:ifAbsent:' 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   782
        lastIndexOf:     #'lastIndexOf:startingAt:'     #'lastIndexOf:ifAbsent:' #'lastIndexOf:startingAt:ifAbsent:' 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   783
        #'indexOfSubCollection:' 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   784
        #'indexOfSubCollection:ifAbsent:' 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   785
        #'indexOfSubCollection:startingAt:' 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   786
        #'indexOfSubCollection:startingAt:ifAbsent:' 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   787
        #'lastIndexOfSubCollection:' 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   788
        #'lastIndexOfSubCollection:ifAbsent:' 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   789
        #'lastIndexOfSubCollection:startingAt:' 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   790
        #'lastIndexOfSubCollection:startingAt:ifAbsent:' 
1107
08b382d1c128 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1106
diff changeset
   791
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   792
    "removing"
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   793
    "copying" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   794
        , copyAfterLast: #'copyAt:put:' #'copyFrom:to:' #'copyReplaceAll:with:' #'copyReplaceFrom:to:with:' copyUpTo: copyUpToLast: copyWith: copyWithout: copyWithoutAll: #'forceTo:paddingWith:' shuffled sortBy:
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   795
    "enumerating" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   796
        collectWithIndex: findFirst: findLast: pairsCollect: #'with:collect:' withIndexCollect: polynomialEval:
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   797
    "converting" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   798
        asArray asDictionary asFloatArray asIntegerArray asStringWithCr asWordArray reversed
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   799
    "private" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   800
        #'copyReplaceAll:with:asTokens:' 
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   801
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   802
    "ST/X copying"        
3486
e1b722d5142b class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3444
diff changeset
   803
        copyButLast: copyLast:  copyFrom: copyTo:  last: first:
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   804
    "ST/X testing"        
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   805
        longestCommonPrefix
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   806
        ) do: [:sel | Approved add: sel].
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   807
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   808
        #( swap:with:
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   809
        ) do: [:sel | AddAndRemove add: sel].
1106
50a16e11b73a more st/x messages
Claus Gittinger <cg@exept.de>
parents: 1104
diff changeset
   810
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   811
"ArrayedCollection, Bag"
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   812
        #(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   813
    "private" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   814
        defaultElement 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   815
    "sorting" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   816
        isSorted
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   817
    "accessing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   818
        cumulativeCounts sortedCounts sortedElements 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   819
    "testing" "adding" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   820
        #'add:withOccurrences:' 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   821
    "removing" "enumerating" 
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   822
        ) do: [:sel | Approved add: sel].
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   823
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   824
        #( 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   825
        #'mergeSortFrom:to:by:' sort sort: add: #'add:withOccurrences:'
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   826
    "private" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   827
        setDictionary 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   828
        ) do: [:sel | AddAndRemove add: sel].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   829
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   830
"Other messages that modify the receiver"
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   831
        #(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   832
        #'atAll:put:' #'atAll:putAll:' atAllPut: #'atWrap:put:' 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   833
        #'replaceAll:with:' #'replaceFrom:to:with:'  removeFirst removeLast
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   834
    "ST/X filling & replacing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   835
        reverse
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   836
        ) do: [:sel | AddAndRemove add: sel].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   837
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   838
        self initialize2.
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   839
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   840
"
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   841
MethodFinder new initialize.
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   842
MethodFinder new organizationFiltered: Set
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   843
"
1106
50a16e11b73a more st/x messages
Claus Gittinger <cg@exept.de>
parents: 1104
diff changeset
   844
2285
3128849e7d2e changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 2248
diff changeset
   845
    "Modified: / 02-08-2010 / 13:33:57 / cg"
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   846
!
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   847
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   848
initialize2
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   849
        "The methods we are allowed to use.  (MethodFinder new initialize) "
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   850
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   851
"Set"
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   852
        #(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   853
    "in class" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   854
        sizeFor:
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   855
    "testing" "adding" "removing" "enumerating"
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   856
    "private" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   857
        array findElementOrNil: 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   858
    "accessing" 
3690
04cbf4ab1df0 class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3622
diff changeset
   859
        "/ someElement anElement anyOne
04cbf4ab1df0 class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3622
diff changeset
   860
        anElement anyOne
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   861
        ) do: [:sel | Approved add: sel].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   862
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   863
"Dictionary, IdentityDictionary, IdentitySet"
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   864
        #(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   865
    "accessing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   866
        associationAt: #'associationAt:ifAbsent:' #'at:ifPresent:' keyAtIdentityValue: #'keyAtIdentityValue:ifAbsent:' keyAtValue: #'keyAtValue:ifAbsent:' keys
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   867
    "testing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   868
        includesKey: 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   869
        ) do: [:sel | Approved add: sel].
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   870
        #(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   871
        removeKey: #'removeKey:ifAbsent:'
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   872
        ) do: [:sel | AddAndRemove add: sel].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   873
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   874
"LinkedList, Interval, MappedCollection"
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   875
        #(
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   876
    "in class"  
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   877
        #'from:to:' #'from:to:by:'
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   878
    "accessing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   879
        contents) do: [:sel | Approved add: sel].
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   880
        #(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   881
    "adding" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   882
        addFirst: addLast:) do: [:sel | AddAndRemove add: sel].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   883
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   884
"OrderedCollection, SortedCollection"
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   885
        #(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   886
    "accessing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   887
        after: before:
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   888
    "copying" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   889
        copyEmpty
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   890
    "adding"  
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   891
        growSize
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   892
    "removing" "enumerating" "private" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   893
    "accessing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   894
        sortBlock) do: [:sel | Approved add: sel].
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   895
        #(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   896
    "adding" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   897
        #'add:after:' #'add:afterIndex:' #'add:before:' addAllFirst: addAllLast: addFirst: addLast:
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   898
    "removing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   899
        removeAt: removeFirst removeLast
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   900
    "accessing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   901
        sortBlock:) do: [:sel | AddAndRemove add: sel].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   902
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   903
"Character"
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   904
        #(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   905
    "in class, instance creation" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   906
        allCharacters digitValue: new separators
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   907
    "accessing untypeable characters" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   908
        backspace cr enter lf linefeed nbsp newPage space tab
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   909
    "constants" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   910
        alphabet characterTable
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   911
    "accessing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   912
        asciiValue digitValue
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   913
    "comparing"
2107
903ad42a8ea7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2061
diff changeset
   914
    "queries"
903ad42a8ea7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2061
diff changeset
   915
        bitsPerCharacter
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   916
    "testing" 
3773
6e1038b06ec1 class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3690
diff changeset
   917
        isAlphaNumeric isDigit isLetter isLetterOrUnderline isLowercase isSafeForHTTP isSeparator isSpecial 
2107
903ad42a8ea7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2061
diff changeset
   918
        isUppercase isVowel tokenish isNationalAlphaNumeric isNationalDigit isNationalLetter
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   919
    "copying"
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   920
    "converting" 
2107
903ad42a8ea7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2061
diff changeset
   921
        asIRCLowercase asLowercase asUppercase rot13 rot:
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   922
        ) do: [:sel | Approved add: sel].
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   923
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   924
"String"
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   925
        #(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   926
    "in class, instance creation" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   927
        crlf fromPacked:
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   928
    "primitives" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   929
        #'findFirstInString:inSet:startingAt:' #'indexOfAscii:inString:startingAt:'      "internet" valueOfHtmlEntity:
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   930
    "accessing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   931
        byteAt: endsWithDigit #'findAnySubStr:startingAt:' findBetweenSubStrs: 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   932
        #'findDelimiters:startingAt:' 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   933
        #'findString:startingAt:' #'findString:startingAt:caseSensitive:' 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   934
        findTokens: #'findTokens:includes:' #'findTokens:keep:' 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   935
        includesSubString: #'includesSubstring:caseSensitive:' 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   936
        #'indexOf:startingAt:' 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   937
        indexOfAnyOf: #'indexOfAnyOf:ifAbsent:' #'indexOfAnyOf:startingAt:' #'indexOfAnyOf:startingAt:ifAbsent:' 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   938
        lineCorrespondingToIndex: lineCount lineNumber: 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   939
        #'skipAnySubStr:startingAt:' #'skipDelimiters:startingAt:' startsWithDigit
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   940
    "comparing" 
1109
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   941
        alike: beginsWith: caseSensitiveLessOrEqual: charactersExactlyMatching: compare: crc16 
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   942
        endsWith: endsWithAnyOf: sameAs: 
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   943
        #'startingAt:match:startingAt:'
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   944
    "copying" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   945
        #'copyReplaceTokens:with:' #'padded:to:with:'
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   946
    "converting" 
3951
bab7dcb06041 #BUGFIX
mawalch
parents: 3872
diff changeset
   947
        asByteArray asDate asDisplayText asFilename asHtml asLegalSelector asPacked asParagraph asText asTime asUnHtml asUrl asUrlRelativeTo: 
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   948
        #capitalized compressWithTable: contractTo: correctAgainst: 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   949
        encodeForHTTP initialIntegerOrNil keywords quoted sansPeriodSuffix 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   950
        splitInteger stemAndNumericSuffix substrings surroundedBySingleQuotes 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   951
        truncateWithElipsisTo: withBlanksTrimmed withFirstCharacterDownshifted 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   952
        withNoLineLongerThan: withSeparatorsCompacted withoutLeadingDigits 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   953
        withoutTrailingBlanks
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   954
    "displaying" "printing"
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   955
    "system primitives" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   956
        #'compare:with:collated:' 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   957
    "Celeste" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   958
        withCRs
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   959
    "internet" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   960
        decodeMimeHeader decodeQuotedPrintable replaceHtmlCharRefs unescapePercents withInternetLineEndings withSqueakLineEndings withoutQuoting
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   961
    "testing" 
2108
7f166aebe418 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   962
        isAllSeparators lastSpacePosition isBlank isEmpty
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   963
    "paragraph support" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   964
        indentationIfBlank:
1109
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   965
    "arithmetic" 
2107
903ad42a8ea7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2061
diff changeset
   966
    "queries"
2108
7f166aebe418 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   967
        bitsPerCharacter contains8BitCharacters knownAsSymbol
1109
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   968
    "ST/X copying"
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   969
        paddedTo: paddedTo:with: centerPaddedTo: centerPaddedTo:with:
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   970
        decimalPaddedTo:and:at:
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   971
        leftPaddedTo: leftPaddedTo:with:
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   972
        chopTo: contractAtBeginningTo: contractAtEndTo: contractTo:
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   973
    "ST/X comparing"
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   974
        compareWith: sameCharacters: sameEmphasisAs: sameStringAndEmphasisAs:
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   975
    "ST/X searching"
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   976
        indexOfSeparator indexOfSeparatorStartingAt:
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   977
        lastIndexOfSeparator lastIndexOfSeparatorStartingAt:
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   978
        indexOfNonSeparatorStartingAt:
2108
7f166aebe418 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   979
    "ST/X printing" 
2109
785005ccdb1e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2108
diff changeset
   980
        sscanf:
785005ccdb1e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2108
diff changeset
   981
        printf:
1109
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   982
    "ST/X converting" 
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   983
        asUppercaseFirst 
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   984
        asCollectionOfWords asCollectionOfLines 
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   985
        asCollectionOfSubstringsSeparatedBy: asCollectionOfSubstringsSeparatedByAny:
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   986
    "Ansi"
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   987
        addLineDelimiters
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
   988
    ) do: [:sel | Approved add: sel].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   989
        #(#'byteAt:put:' translateToLowercase match:) do: [:sel | AddAndRemove add: sel].
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   990
40d9ddd1f510 initial checkin
james
parents:
diff changeset
   991
"Symbol"
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   992
        #(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   993
    "in class, private" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   994
        hasInterned:ifTrue:
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   995
    "access" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   996
        morePossibleSelectorsFor: possibleSelectorsFor: selectorsContaining: #'thatStarts:skipping:'
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   997
    "accessing" "comparing" "copying" "converting" "printing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   998
    "testing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
   999
        isInfix isKeyword isPvtSelector isUnary) do: [:sel | Approved add: sel].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1000
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1001
"Array"
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1002
        #(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1003
    "comparing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1004
    "converting" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1005
        evalStrings 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1006
    "printing" "private" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1007
        hasLiteralSuchThat:) do: [:sel | Approved add: sel].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1008
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1009
"Array2D"
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1010
        #(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1011
    "access" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1012
        #'at:at:' atCol: #'atCol:put:' atRow: extent #'extent:fromArray:' height width #'width:height:type:'
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1013
        ) do: [:sel | Approved add: sel].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1014
        #(#'at:at:add:' #'at:at:put:' #'atRow:put:' ) do: [:sel | AddAndRemove add: sel].
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1015
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1016
"ByteArray"
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1017
        #(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1018
    "accessing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1019
        doubleWordAt: wordAt: 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1020
    "platform independent access" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1021
        #'longAt:bigEndian:' #'shortAt:bigEndian:' #'unsignedLongAt:bigEndian:' #'unsignedShortAt:bigEndian:' 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1022
    "converting") do: [:sel | Approved add: sel].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1023
        #(#'doubleWordAt:put:' #'wordAt:put:' #'longAt:put:bigEndian:' #'shortAt:put:bigEndian:' #'unsignedLongAt:put:bigEndian:' #'unsignedShortAt:put:bigEndian:'
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1024
        ) do: [:sel | AddAndRemove add: sel].
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1025
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1026
"FloatArray"            "Dont know what happens when prims not here"
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1027
        false ifTrue: [#(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1028
    "accessing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1029
    "arithmetic" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1030
        *= += -= /=
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1031
    "comparing"
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1032
    "primitives-plugin" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1033
        primAddArray: primAddScalar: primDivArray: primDivScalar: primMulArray: primMulScalar: primSubArray: primSubScalar:
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1034
    "primitives-translated" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1035
        #'primAddArray:withArray:from:to:' #'primMulArray:withArray:from:to:' #'primSubArray:withArray:from:to:'
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1036
    "converting" "private" "user interface"
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1037
        ) do: [:sel | Approved add: sel].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1038
        ].
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1039
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1040
"IntegerArray, WordArray"
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1041
"RunArray"
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1042
        #(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1043
    "in class, instance creation" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1044
        #'runs:values:' scanFrom:
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1045
    "accessing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1046
        runLengthAt: 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1047
    "adding" "copying"
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1048
    "private" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1049
        runs values
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1050
        ) do: [:sel | Approved add: sel].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1051
        #(coalesce #'addLast:times:' #'repeatLast:ifEmpty:' repeatLastIfEmpty:
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1052
                ) do: [:sel | AddAndRemove add: sel].
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1053
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1054
"Stream  -- many operations change its state"
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1055
        #(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1056
    "testing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1057
        atEnd) do: [:sel | Approved add: sel].
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1058
        #(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1059
    "accessing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1060
        next: nextMatchAll: nextMatchFor: upToEnd
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1061
        #'next:put:' nextPut: nextPutAll: 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1062
    "printing" print: printHtml:
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1063
        ) do: [:sel | AddAndRemove add: sel].
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1064
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1065
"PositionableStream"
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1066
        #(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1067
    "accessing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1068
        contentsOfEntireFile originalContents peek peekFor: "testing"
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1069
    "positioning" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1070
        position 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1071
    ) do: [:sel | Approved add: sel].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1072
        #(nextDelimited: nextLine upTo: position: reset resetContents setToEnd skip: skipTo: upToAll: ) do: [:sel | AddAndRemove add: sel].
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1073
        "Because it is so difficult to test the result of an operation on a Stream 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1074
         (you have to supply another Stream in the same state), 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1075
         we don't support Streams beyond the basics.  
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1076
         We want to find the messages that convert Streams to other things."
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1077
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1078
"ReadWriteStream"
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1079
        #(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1080
    "file status" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1081
        closed) do: [:sel | Approved add: sel].
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1082
        #(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1083
    "accessing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1084
        next: on: ) do: [:sel | AddAndRemove add: sel].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1085
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1086
"WriteStream"
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1087
        #(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1088
    "in class, instance creation" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1089
        on:from:to: with: with:from:to:
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1090
                ) do: [:sel | Approved add: sel].
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1091
        #(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1092
    "positioning" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1093
        resetToStart
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1094
    "character writing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1095
        crtab crtab:) do: [:sel | AddAndRemove add: sel].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1096
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1097
"LookupKey, Association, Link"
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1098
        #(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1099
    "accessing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1100
        key nextLink) do: [:sel | Approved add: sel].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1101
        #(key: #'key:value:' nextLink:) do: [:sel | AddAndRemove add: sel].
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1102
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1103
"Point"
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1104
        #(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1105
    "in class, instance creation" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1106
        #'r:degrees:' #'x:y:'
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1107
    "accessing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1108
        x y 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1109
    "comparing" "arithmetic" "truncation and round off"
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1110
    "polar coordinates" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1111
        degrees r theta
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1112
    "point functions" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1113
        bearingToPoint: crossProduct: dist: dotProduct: eightNeighbors #'flipBy:centerAt:' fourNeighbors grid: 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1114
        #'nearestPointAlongLineFrom:to:' #'nearestPointOnLineFrom:to:' 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1115
        normal normalized octantOf: 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1116
        #'onLineFrom:to:' #'onLineFrom:to:within:' 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1117
        quadrantOf: #'rotateBy:centerAt:' transposed unitVector
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1118
    "converting" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1119
        asFloatPoint asIntegerPoint corner: extent: rect:
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1120
    "transforming" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1121
        adhereTo: #'rotateBy:about:' scaleBy: #'scaleFrom:to:' translateBy: "copying"
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1122
    "interpolating" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1123
        #'interpolateTo:at:'
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1124
        ) do: [:sel | Approved add: sel].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1125
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1126
"Rectangle"
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1127
        #("in class, instance creation" #'center:extent:' encompassing: #'left:right:top:bottom:' 
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1128
        merging: #'origin:corner:' #'origin:extent:' 
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1129
    "accessing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1130
        area bottom bottomCenter bottomLeft bottomRight boundingBox center corner corners innerCorners 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1131
        left leftCenter origin right rightCenter top topCenter topLeft topRight
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1132
    "comparing"
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1133
    "rectangle functions" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1134
        #'adjustTo:along:' amountToTranslateWithin: areasOutside: #'bordersOn:along:' encompass: 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1135
        expandBy: extendBy: #'forPoint:closestSideDistLen:' 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1136
        insetBy: #'insetOriginBy:cornerBy:' intersect: 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1137
        merge: pointNearestTo: quickMerge: #'rectanglesAt:height:' 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1138
        sideNearestTo: translatedToBeWithin: 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1139
        withBottom: withHeight: withLeft: withRight: #'withSide:setTo:' withTop: withWidth:
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1140
    "testing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1141
        containsPoint: containsRect: hasPositiveExtent intersects: isTall isWide
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1142
    "truncation and round off"
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1143
    "transforming" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1144
        #'align:with:' centeredBeneath: newRectFrom: squishedWithin: "copying"
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1145
        ) do: [:sel | Approved add: sel].
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1146
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1147
"Color"
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1148
        #(
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1149
    "in class, instance creation" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1150
        colorFrom: #'colorFromPixelValue:depth:' fromRgbTriplet: gray: #'h:s:v:' #'r:g:b:' #'r:g:b:alpha:' #'r:g:b:range:'
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1151
    "ST/X in class, instance creation" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1152
        colorNamed:
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1153
    "named colors" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1154
        black blue brown cyan darkGray gray green lightBlue lightBrown lightCyan lightGray lightGreen lightMagenta lightOrange lightRed lightYellow 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1155
        magenta orange red transparent veryDarkGray veryLightGray veryVeryDarkGray veryVeryLightGray white yellow
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1156
    "other" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1157
        colorNames indexedColors pixelScreenForDepth: quickHighLight:
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1158
    "access" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1159
        alpha blue brightness green hue luminance red saturation
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1160
    "equality"
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1161
    "queries" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1162
        isBitmapFill isBlack isGray isSolidFill isTranslucent isTranslucentColor
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1163
    "transformations" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1164
        alpha: dansDarker darker lighter #'mixed:with:' muchLighter slightlyDarker slightlyLighter veryMuchLighter #'alphaMixed:with:'
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1165
    "groups of shades" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1166
        darkShades: lightShades: #'mix:shades:' wheel:
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1167
    "printing" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1168
        shortPrintString
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1169
    "other" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1170
        colorForInsets rgbTriplet
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1171
    "conversions" 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1172
        asB3DColor asColor balancedPatternForDepth: bitPatternForDepth: closestPixelValue1 closestPixelValue2 closestPixelValue4 closestPixelValue8 dominantColor 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1173
        halfTonePattern1 halfTonePattern2 indexInMap: pixelValueForDepth: #'pixelWordFor:filledWith:' pixelWordForDepth: scaledPixelValue32
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1174
    "private" 
1109
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
  1175
        privateAlpha privateBlue privateGreen privateRGB privateRed 
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
  1176
    "copying"
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1177
    "ST/X access" 
1109
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
  1178
        redByte greenByte blueByte alphaByte rgbValue almostSameAs:
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1179
        ) do: [:sel | Approved add: sel].
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1180
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1181
"       For each selector that requires a block argument, add (selector argNum) 
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1182
                to the set Blocks."
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1183
"ourClasses _ #(Object Boolean True False UndefinedObject Behavior ClassDescription Class Metaclass MethodContext BlockContext Message Magnitude Date Time Number Integer 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1184
                SmallInteger LargeNegativeInteger LargePositiveInteger Float Fraction Random Collection SequenceableCollection ArrayedCollection Bag Set 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1185
                Dictionary IdentityDictionary IdentitySet LinkedList Interval MappedCollection OrderedCollection SortedCollection Character String Symbol Array 
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1186
                Array2D ByteArray FloatArray IntegerArray WordArray RunArray Stream PositionableStream ReadWriteStream WriteStream LookupKey Association Link Point Rectangle Color).
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1187
ourClasses do: [:clsName | cls _ Smalltalk at: clsName.
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1188
        (cls selectors) do: [:aSel |
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1189
                ((Approved includes: aSel) or: [AddAndRemove includes: aSel]) ifTrue: [
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1190
                        (cls formalParametersAt: aSel) withIndexDo: [:tName :ind |
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1191
                                (tName endsWith: 'Block') ifTrue: [
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1192
                                        Blocks add: (Array with: aSel with: ind)]]]]].
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1193
"
1109
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
  1194
        #(
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
  1195
            (timesRepeat: 1 ) (indexOf:ifAbsent: 2 ) (pairsCollect: 1 ) (#'mergeSortFrom:to:by:' 3 ) 
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
  1196
            (#'ifNotNil:ifNil:' 1 ) (#'ifNotNil:ifNil:' 2 ) (ifNil: 1 ) (#'at:ifAbsent:' 2 ) 
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
  1197
            (#'ifNil:ifNotNil:' 1 ) (#'ifNil:ifNotNil:' 2 ) (ifNotNil: 1 ) (#'at:modify:' 2 ) 
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
  1198
            (#'identityIndexOf:ifAbsent:' 2 ) (sort: 1 ) (sortBlock: 1 ) 
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
  1199
            (detectMax: 1 ) (repeatLastIfEmpty: 1 ) (#'allSubclassesWithLevelDo:startingLevel:' 1 ) 
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
  1200
            (#'keyAtValue:ifAbsent:' 2 ) (in: 1 ) 
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
  1201
            (ifTrue: 1 ) (or: 1 ) (select: 1 ) (inject:into: 2 ) (#'ifKindOf:thenDo:' 2 ) 
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
  1202
            (#'forPoint:closestSideDistLen:' 2 ) (#'value:ifError:' 2 ) (selectorsDo: 1 ) 
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
  1203
            (removeAllSuchThat: 1 ) (#'keyAtIdentityValue:ifAbsent:' 2 ) (detectMin: 1 ) 
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
  1204
            (#'detect:ifNone:' 1 ) (#'ifTrue:ifFalse:' 1 ) (#'ifTrue:ifFalse:' 2 ) 
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
  1205
            (#'detect:ifNone:' 2 ) (hasLiteralSuchThat: 1 ) (#'indexOfAnyOf:ifAbsent:' 2 ) 
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
  1206
            (reject: 1 ) (newRectFrom: 1 ) (#'removeKey:ifAbsent:' 2 ) (#'at:ifPresent:' 2 ) 
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
  1207
            (#'associationAt:ifAbsent:' 2 ) (withIndexCollect: 1 ) (#'repeatLast:ifEmpty:' 2 ) 
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
  1208
            (findLast: 1 ) (#'indexOf:startingAt:ifAbsent:' 3 ) (#'remove:ifAbsent:' 2 ) 
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
  1209
            (#'ifFalse:ifTrue:' 1 ) (#'ifFalse:ifTrue:' 2 ) (#'caseOf:otherwise:' 2 ) (count: 1 ) (collect: 1 ) (sortBy: 1 ) (and: 1 ) (asSortedCollection: 1 ) 
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
  1210
            (#'with:collect:' 2 ) (#'sourceCodeAt:ifAbsent:' 2 ) (detect: 1 ) (#'scopeHas:ifTrue:' 2 ) (collectWithIndex: 1 ) (#'compiledMethodAt:ifAbsent:' 2 ) 
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
  1211
            (bindWithTemp: 1 ) (detectSum: 1 ) (#'indexOfSubCollection:startingAt:ifAbsent:' 3 ) (findFirst: 1 ) (#'sourceMethodAt:ifAbsent:' 2 ) (#'collect:thenSelect:' 1 ) 
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
  1212
            (#'collect:thenSelect:' 2 ) (#'select:thenCollect:' 1 ) (#'select:thenCollect:' 2 ) (ifFalse: 1 ) (#'indexOfAnyOf:startingAt:ifAbsent:' 3 ) (#'indentationIfBlank:' 1 ) 
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1213
        ) do: [:anArray |
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1214
            Blocks add: anArray].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1215
1491
8941fc515d83 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1114
diff changeset
  1216
        #(
8941fc515d83 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1114
diff changeset
  1217
            (ifFalse: 1 )
8941fc515d83 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1114
diff changeset
  1218
            (ifTrue: 1 )
8941fc515d83 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1114
diff changeset
  1219
            (#'ifFalse:ifTrue:' 1 ) (#'ifFalse:ifTrue:' 2 )
8941fc515d83 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1114
diff changeset
  1220
            (#'ifTrue:ifFalse:' 1 ) (#'ifTrue:ifFalse:' 2 )
8941fc515d83 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1114
diff changeset
  1221
        ) do: [:anArray |
8941fc515d83 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1114
diff changeset
  1222
            BlocksOptional add: anArray].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1223
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1224
"
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1225
MethodFinder new initialize.
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1226
MethodFinder new organizationFiltered: TranslucentColor class 
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1227
"
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1228
"Do not forget class messages for each of these classes"
1108
c3371dc1b8a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1107
diff changeset
  1229
1109
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
  1230
    "Modified: / 13.11.2001 / 19:28:41 / cg"
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1231
!
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1232
2895
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1233
load:dataWithAnswers 
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1234
    "Find a function that takes the data and gives the answers.  Odd list entries are data for it, even ones are the answers.  nil input means data and answers were supplied already."
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1235
    "  (MethodFinder new) load: #( (4 3) 7  (-10 5) -5  (-3 11) 8);
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1236
                    findMessage"
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1237
    
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1238
    dataWithAnswers 
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1239
        ifNotNil:[
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1240
            data := Array new:dataWithAnswers size // 2.
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1241
            1 to:data size do:[:ii | 
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1242
                data at:ii put:(dataWithAnswers at:ii * 2 - 1)
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1243
            ].
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1244
            answers := Array new:data size.
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1245
            1 to:answers size do:[:ii | 
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1246
                answers at:ii put:(dataWithAnswers at:ii * 2)
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1247
            ]
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1248
        ].
2895
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1249
    data do:[:list | 
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1250
        (list isSequenceable) ifFalse:[
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1251
            ^ self warn:'first and third items are not Arrays'
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1252
        ].
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1253
    ].
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1254
    argMap := (1 to:data first size) asArray.
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1255
    data do:[:list | 
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1256
        list size = argMap size ifFalse:[
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1257
            self warn:'data arrays must all be the same size'
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1258
        ]
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1259
    ].
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1260
    argMap size > 4 ifTrue:[
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1261
        self warn:'No more than a receiver and 
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1262
three arguments allowed'
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1263
    ].
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1264
     "Really only test receiver and three args."
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1265
    thisData := data copy.
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1266
    mapStage := mapList := nil.
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1267
!
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1268
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1269
noteDangerous
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1270
        "Remember the methods with really bad side effects."
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1271
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1272
        Dangerous _ Set new.
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1273
"Object accessing, testing, copying, dependent access, macpal, flagging"
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1274
        #(addInstanceVarNamed:withValue: haltIfNil copyAddedStateFrom: veryDeepCopy veryDeepCopyWith: veryDeepFixupWith: veryDeepInner: addDependent: evaluate:wheneverChangeIn: codeStrippedOut: playSoundNamed: isThisEverCalled isThisEverCalled: logEntry logExecution logExit)
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1275
                do: [:sel | Dangerous add: sel].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1276
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1277
"Object error handling"
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1278
        #(cannotInterpret: caseError confirm: confirm:orCancel: doesNotUnderstand: error: halt halt: notify: notify:at: primitiveFailed shouldNotImplement subclassResponsibility tryToDefineVariableAccess:)
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1279
                do: [:sel | Dangerous add: sel].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1280
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1281
"Object user interface"
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1282
        #(basicInspect beep inform: inspect inspectWithLabel: notYetImplemented inspectElement )
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1283
                do: [:sel | Dangerous add: sel].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1284
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1285
"Object system primitives"
2229
38d63b2885cc changed: #noteDangerous
Claus Gittinger <cg@exept.de>
parents: 2212
diff changeset
  1286
        #(become: becomeForward: becomeSameAs: changeClassTo: instVarAt:put: instVarNamed:put: nextInstance nextObject rootStubInImageSegment: someObject tryPrimitive:withArgs:)
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1287
                do: [:sel | Dangerous add: sel].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1288
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1289
"Object private"
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1290
        #(errorImproperStore errorNonIntegerIndex errorNotIndexable errorSubscriptBounds: mustBeBoolean primitiveError: species storeAt:inTempFrame:)
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1291
                do: [:sel | Dangerous add: sel].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1292
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1293
"Object, translation support"
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1294
        #(cCode: cCode:inSmalltalk: cCoerce:to: export: inline: returnTypeC: sharedCodeNamed:inCase: var:declareC:)
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1295
                do: [:sel | Dangerous add: sel].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1296
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1297
"Object, objects from disk, finalization.  And UndefinedObject"
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1298
        #(comeFullyUpOnReload: objectForDataStream: readDataFrom:size: rehash saveOnFile storeDataOn: actAsExecutor executor finalize retryWithGC:until:   suspend)
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1299
                do: [:sel | Dangerous add: sel].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1300
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1301
"No Restrictions:   Boolean, False, True, "
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1302
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1303
"Morph"
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1304
        #(fullCopy copyRecordingIn:)
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1305
                do: [:sel | Dangerous add: sel].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1306
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1307
"Behavior"
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1308
        #(obsolete confirmRemovalOf: copyOfMethodDictionary literalScannedAs:notifying: storeLiteral:on: addSubclass: removeSubclass: superclass: 
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1309
"creating method dictionary" addSelector:withMethod: compile: compile:notifying: compileAll compileAllFrom: compress decompile: defaultSelectorForMethod: methodDictionary: recompile:from: recompileChanges removeSelector: compressedSourceCodeAt: selectorAtMethod:setClass: allInstances allSubInstances inspectAllInstances inspectSubInstances thoroughWhichSelectorsReferTo:special:byte: "enumerating" allInstancesDo: allSubInstancesDo: allSubclassesDo: allSuperclassesDo: selectSubclasses: selectSuperclasses: subclassesDo: withAllSubclassesDo:
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1310
"user interface" allCallsOn: browse browseAllAccessesTo: browseAllCallsOn: browseAllStoresInto: "too slow->" crossReference removeUninstantiatedSubclassesSilently "too slow->" unreferencedInstanceVariables
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1311
"private" becomeCompact becomeUncompact flushCache format:variable:words:pointers: format:variable:words:pointers:weak: printSubclassesOn:level: removeSelectorSimply:)
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1312
                do: [:sel | Dangerous add: sel].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1313
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1314
"Others "
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1315
        #("no tangible result" do: associationsDo:  
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1316
"private" adaptToCollection:andSend: adaptToNumber:andSend: adaptToPoint:andSend: adaptToString:andSend: instVarAt:put: asDigitsToPower:do: combinations:atATimeDo: doWithIndex: pairsDo: permutationsDo: reverseDo: reverseWith:do: with:do: withIndexDo: asDigitsAt:in:do: combinationsAt:in:after:do: errorOutOfBounds permutationsStartingAt:do: fromUser)
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1317
                do: [:sel | Dangerous add: sel].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1318
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1319
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1320
        #(    fileOutPrototype addSpareFields makeFileOutFile )
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1321
                do: [:sel | Dangerous add: sel].
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1322
        #(recompile:from: recompileAllFrom: recompileChanges asPrototypeWithFields: asPrototype addInstanceVarNamed:withValue: addInstanceVariable addClassVarName: removeClassVarName: findOrAddClassVarName: tryToDefineVariableAccess: instanceVariableNames: )
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1323
                do: [:sel | Dangerous add: sel].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1324
!
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1325
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1326
organizationFiltered: aClass
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1327
        "Return the organization of the class with all selectors defined in superclasses removed.  (except those in Object)"
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1328
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1329
        | org str |
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1330
        org _ aClass organization deepCopy.
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1331
        Dangerous do: [:sel |
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1332
                        org removeElement: sel].
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1333
        Approved do: [:sel |
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1334
                        org removeElement: sel].
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1335
        AddAndRemove do: [:sel |
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1336
                        org removeElement: sel].
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1337
        str _ org printString copyWithout: $(.
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1338
        str _ '(', (str copyWithout: $) ).
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1339
        str _ str replaceAll: $' with: $".
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1340
        ^ str
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1341
!
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1342
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1343
test2: anArray
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1344
        "look for bad association"
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1345
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1346
        anArray do: [:sub |
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1347
                sub class == Association ifTrue: [
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1348
                        (#('true' '$a' '2' 'false') includes: sub value printString) ifFalse: [
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1349
                                self error: 'bad assn'].
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1350
                        (#('3' '5.6' 'x' '''abcd''') includes: sub key printString) ifFalse: [
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1351
                                self error: 'bad assn'].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1352
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1353
        "                       sub value class == Association ifTrue: [
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1354
                                        self error: 'bad assn'].
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1355
                                (sub value isKindOf: Class) ifTrue: [
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1356
                                        self error: 'class in assn'].
3444
91362ca070e5 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3403
diff changeset
  1357
                                sub value class == Symbol ifTrue: [sub value codePoint = 204 '$' ifTrue: [
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1358
                                        self error: 'Write into char']].
3444
91362ca070e5 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3403
diff changeset
  1359
                                sub value == $ ifTrue: [
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1360
                                        self error: 'Write into char']
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1361
        "].
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1362
                sub class == Array ifTrue: [
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1363
                        sub do: [:element | 
3622
ec030e3bf4d0 class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3515
diff changeset
  1364
                                element isString ifTrue: [element first codePoint < 32 ifTrue: [
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1365
                                                self error: 'store into string in data']].
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1366
                                element class == Association ifTrue: [
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1367
                                        element value class == Association ifTrue: [
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1368
                                                self error: 'bad assn']]]].
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1369
                sub class == Date ifTrue: [sub year isInteger ifFalse: [
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1370
                                self error: 'stored into input date!!!!']].
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1371
                sub class == Dictionary ifTrue: [
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1372
                                sub size > 0 ifTrue: [
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1373
                                        self error: 'store into dictionary']].
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1374
                sub class == OrderedCollection ifTrue: [
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1375
                                sub size > 4 ifTrue: [
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1376
                                        self error: 'store into OC']].
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1377
                ].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1378
!
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1379
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1380
test3
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1381
        "find the modification of the caracter table"
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1382
2058
c71d2ac1fbfe asciiValue obsoleted by codePoint
Claus Gittinger <cg@exept.de>
parents: 2054
diff changeset
  1383
        (#x at: 1) codePoint = 120 ifFalse: [self error: 'Character table mod'].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1384
! !
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1385
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1386
!MethodFinder methodsFor:'search'!
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1387
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1388
exceptions
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1389
        "Handle some very slippery selectors.
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1390
        asSymbol -- want to be able to produce it, but do not want to make every string submitted into a Symbol!!" 
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1391
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1392
        | aSel |
3622
ec030e3bf4d0 class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3515
diff changeset
  1393
        answers first isSymbol ifFalse: [^ self].
ec030e3bf4d0 class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3515
diff changeset
  1394
        thisData first first isString ifFalse: [^ self].
ec030e3bf4d0 class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 3515
diff changeset
  1395
        aSel := #asSymbol.   
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1396
        (self testPerfect: aSel) ifTrue: [
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1397
                selector add: aSel.
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1398
                expressions add: (String streamContents: [:strm | 
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1399
                        strm nextPutAll: 'data', argMap first printString.
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1400
                        aSel keywords doWithIndex: [:key :ind |
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1401
                                strm nextPutAll: ' ',key.
2935
111dfc634cc2 changed:
Claus Gittinger <cg@exept.de>
parents: 2904
diff changeset
  1402
                                ((key last == $:) or:[ key first isLetter not ])
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1403
                                        ifTrue: [strm nextPutAll: ' data', 
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1404
                                                (argMap at: ind+1) printString]]])].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1405
!
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1406
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1407
findMessage
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1408
        "Control the search."
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1409
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1410
        data do: [:alist |
2895
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1411
                (alist isSequenceable) ifFalse: [
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1412
                        ^ OrderedCollection with: 'first and third items are not Arrays']].
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1413
1491
8941fc515d83 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1114
diff changeset
  1414
        true "Approved isNil" ifTrue: [self initialize].      "Sets of allowed selectors"
2895
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1415
        expressions := OrderedCollection new.
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1416
        self search: true.      "multi"
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1417
        expressions isEmpty ifTrue: [^ OrderedCollection with: 'no single method does that function'].
2895
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1418
        expressions isString ifTrue: [^ OrderedCollection with: expressions].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1419
        ^ expressions
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1420
!
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1421
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1422
insertConstants
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1423
        "see if one of several known expressions will do it. C is the constant we discover here."
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1424
        "C  data1+C  data1*C  data1//C  (data1*C1 + C2) (data1 = C) (data1 ~= C) (data1 <= C) (data1 >= C) 
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1425
 (data1 mod C)"
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1426
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1427
        thisData size >= 2 ifFalse: [^ self].   "need 2 examples"
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1428
        (thisData at: 1) size = 1 ifFalse: [^ self].    "only one arg, data1"
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1429
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1430
        self const ifTrue: [^ self].
1491
8941fc515d83 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1114
diff changeset
  1431
"/        self constEquiv ifTrue: [^ self].       " ==  ~= "
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1432
        self constLessThan ifTrue: [^ self].    " <=  and  >= "
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1433
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1434
        self allNumbers ifFalse: [^ self].
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1435
        self constMod ifTrue: [^ self].
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1436
        self constPlus ifTrue: [^ self].
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1437
        self constMult ifTrue: [^ self].
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1438
        self constDiv ifTrue: [^ self].
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1439
        self constLinear ifTrue: [^ self].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1440
!
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1441
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1442
search: multi
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1443
        "if Multi is true, collect all selectors that work."
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1444
        | old |
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1445
        selector:=OrderedCollection new.       "list of them"
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1446
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1447
      "  old _ Preferences autoAccessors.
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1448
        Preferences disableGently: #autoAccessors. "
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1449
        Smalltalk isSmalltalkX ifTrue:[old:=false].
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1450
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1451
        self simpleSearch.
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1452
        multi not & (selector isEmpty not) ifTrue:
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1453
                ["old ifTrue: [Preferences enableGently: #autoAccessors]."
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1454
                ^ selector]. 
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1455
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1456
        [self permuteArgs] whileTrue:
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1457
                [self simpleSearch.
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1458
               multi not & (selector isEmpty not) ifTrue:
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1459
                        ["old ifTrue: [Preferences enableGently: #autoAccessors]."
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1460
                        ^ selector]].
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1461
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1462
        self insertConstants.
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1463
      "  old ifTrue: [Preferences enableGently: #autoAccessors]. "
1491
8941fc515d83 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1114
diff changeset
  1464
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1465
"/ (selector isEmpty not) ifTrue: [^ selector]].   " expression is the answer, not a selector"
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1466
        ^ #()
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1467
!
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1468
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1469
searchForOne
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1470
        "Look for and return just one answer"
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1471
1104
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1472
        expressions _ OrderedCollection new.
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1473
        self search: false.     "non-multi"
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1474
        ^ expressions
237db486634c copyLast: added to list
penk
parents: 1103
diff changeset
  1475
                        
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1476
!
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1477
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1478
simpleSearch
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1479
        "Run through first arg's class' selectors, looking for one that works."
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1480
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1481
| class supers listOfLists |
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1482
self exceptions.
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1483
class:=thisData first first class.
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1484
"Cache the selectors for the receiver class"
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1485
(class == cachedClass and: [cachedArgNum = ((argMap size) - 1)]) 
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1486
        ifTrue: [listOfLists:=cachedSelectorLists]
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1487
        ifFalse: [supers:=class withAllSuperclasses.
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1488
                listOfLists:=OrderedCollection new.
1092
b6e046dfe01e checkin from browser
james
parents: 1089
diff changeset
  1489
                supers do: [:cls |    
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1490
                        listOfLists add: (cls selectorsWithArgs: (argMap size) - 1)].
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1491
                cachedClass:=class.
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1492
                cachedArgNum:=(argMap size) - 1.
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1493
                cachedSelectorLists:=listOfLists].
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1494
"/ self halt.
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1495
listOfLists do: [:selectorList |
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1496
        selectorList do: [:aSel |
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1497
                (selector includes: aSel) ifFalse: [
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1498
                        ((Approved includes: aSel) or: [AddAndRemove includes: aSel]) ifTrue: [
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1499
                                (self testPerfect: aSel) ifTrue: [
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1500
                                        selector add: aSel.
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1501
                                        expressions add: (String streamContents: [:strm | 
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1502
                                                strm nextPutAll: 'data', argMap first printString.
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1503
                                                aSel keywords doWithIndex: [:key :ind |
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1504
                                                        strm nextPutAll: ' ',key.
2935
111dfc634cc2 changed:
Claus Gittinger <cg@exept.de>
parents: 2904
diff changeset
  1505
                                                        ((key last == $:) or:[ key first isLetter not])
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1506
                                                                ifTrue: [strm nextPutAll: ' data', 
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1507
                                                                        (argMap at: ind+1) printString]]])
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1508
                                        ]]]]].
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1509
!
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1510
2895
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1511
testPerfect:aSelector 
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1512
    "Try this selector!! Return true if it answers every example perfectly.  
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1513
     Take the args in the order they are.  Do not permute them.
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1514
     Survive errors.  later cache arg lists."
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1515
    
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1516
    |sz argList val rec activeSel perform argIsBlock expectedAnswer|
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1517
2895
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1518
    "Transcript cr; show: aSelector.                debug"
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1519
    perform := aSelector beginsWith:'perform:'.
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1520
    sz := argMap size.
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1521
    1 to:thisData size do:[:ii | 
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1522
        "each example set of args"
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1523
        argList := (thisData at:ii) copyFrom:2 to:sz.
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1524
        perform ifFalse:[
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1525
            activeSel := aSelector
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1526
        ] ifTrue:[
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1527
            activeSel := argList first.
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1528
            ((Approved includes:activeSel) or:[ AddAndRemove includes:activeSel ]) ifFalse:[
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1529
                ^ false
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1530
            ].
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1531
            aSelector == #perform:withArguments: ifTrue:[
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1532
                activeSel numArgs = (argList at:2) basicSize "avoid error" ifFalse:[
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1533
                    ^ false
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1534
                ]
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1535
            ] ifFalse:[
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1536
                activeSel numArgs = (aSelector numArgs - 1) ifFalse:[
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1537
                    ^ false
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1538
                ]
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1539
            ]
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1540
        ].
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1541
        1 to:sz do:[:num | 
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1542
            (Blocks includes:(Array with:activeSel with:num)) ifTrue:[
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1543
                Smalltalk isSmalltalkX ifTrue:[
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1544
                    argIsBlock := (argList at:num) isBlock
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1545
                ] ifFalse:[
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1546
                    argIsBlock := (argList at:num) class == BlockContext
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1547
                ].
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1548
                argIsBlock ifFalse:[
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1549
                    (BlocksOptional includes:(Array with:activeSel with:num)) ifFalse:[
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1550
                        ^ false
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1551
                    ]
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1552
                ]
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1553
            ]
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1554
        ].
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1555
         "   (activeSel = #capitalized) ifTrue:[self halt.].  " "  used to test  "
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1556
        rec := (AddAndRemove includes:activeSel) ifTrue:[
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1557
                (thisData at:ii) first class == Symbol ifTrue:[
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1558
                    ^ false
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1559
                ].
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1560
                 "vulnerable to modification"
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1561
                (thisData at:ii) first copyTwoLevel "protect from damage"
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1562
            ] ifFalse:[
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1563
                [
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1564
                    (thisData at:ii) first
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1565
                ] ifError:[ self halt. ]
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1566
            ].
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1567
        expectedAnswer := (answers at:ii).
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1568
        val := [
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1569
                rec copy perform:aSelector withArguments:argList
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1570
            ] ifError:[:aSignal | 
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1571
                "/ Transcript showCR:aSignal description.
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1572
                "self test3."
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1573
                "self test2: (thisData at: ii)."
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1574
                ^ false
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1575
            ].
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1576
         "self test3." "self test2: (thisData at: ii)."
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1577
        (expectedAnswer isNumber) ifFalse:[
2059
9e0592033093 allow search for collection results
Claus Gittinger <cg@exept.de>
parents: 2058
diff changeset
  1578
            expectedAnswer isArray ifTrue:[
2895
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1579
                (val isCollection and:[ val isString not ]) ifTrue:[
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1580
                    ([
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1581
                        val asArray = expectedAnswer
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1582
                    ] ifError:[ false ]) ifTrue:[
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1583
                        ^ true
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1584
                    ].
2059
9e0592033093 allow search for collection results
Claus Gittinger <cg@exept.de>
parents: 2058
diff changeset
  1585
                ].
9e0592033093 allow search for collection results
Claus Gittinger <cg@exept.de>
parents: 2058
diff changeset
  1586
            ].
2895
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1587
            
2061
dedc1fe14e92 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1588
            "/ would like to remember 'almost' same, and present in separate list.
dedc1fe14e92 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1589
"/            expectedAnswer isString ifTrue:[
dedc1fe14e92 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1590
"/                (val isString) ifTrue:[
dedc1fe14e92 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1591
"/                    ([val sameAs: expectedAnswer] ifError:[false]) ifTrue:[self halt. ^ true].
dedc1fe14e92 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1592
"/                ].
dedc1fe14e92 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1593
"/            ].
2895
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1594
            
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1595
            ([
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1596
                (expectedAnswer = val)
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1597
            ] ifError:[ false ]) ifFalse:[
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1598
                ^ false
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1599
            ]
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1600
        ] ifTrue:[
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1601
            (expectedAnswer closeTo:val) ifFalse:[
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1602
                ^ false
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1603
            ]
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1604
        ].
2895
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1605
    ].
1d758d52e0d8 Avoid #isKindOf: where possible
Stefan Vogel <sv@exept.de>
parents: 2772
diff changeset
  1606
    ^ true
1109
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
  1607
d03fcfd46a99 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1108
diff changeset
  1608
    "Modified: / 13.11.2001 / 19:08:39 / cg"
2061
dedc1fe14e92 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1609
! !
dedc1fe14e92 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1610
dedc1fe14e92 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1611
!MethodFinder methodsFor:'tests'!
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1612
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1613
verify
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1614
        "Test a bunch of examples"
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1615
        "       MethodFinder new verify    "
1928
49fdf6083f86 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1491
diff changeset
  1616
Approved isNil ifTrue: [self initialize].      "Sets of allowed selectors"
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1617
"/(MethodFinder new load: #( (0) 0  (30) 0.5  (45) 0.707106  (90) 1)
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1618
"/        ) searchForOne asArray = #('data1 degreeSin') ifFalse: [self error: 'should have found it'].  "Squeak test"
1491
8941fc515d83 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1114
diff changeset
  1619
(MethodFinder new load:   (Array with:(Array with:true with:[3] with:[4]) with:3 with:(Array with:false with:[0] with:[6]) with:6)
8941fc515d83 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1114
diff changeset
  1620
        ) searchForOne asArray = #('data1 ifTrue: data2 ifFalse: data3') ifFalse: [
8941fc515d83 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1114
diff changeset
  1621
                self error: 'should have found it'].
8941fc515d83 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1114
diff changeset
  1622
(MethodFinder new load: #(#(1) true #(2) false #(5) true #(10) false)
8941fc515d83 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1114
diff changeset
  1623
        ) searchForOne asArray = #('data1 odd' 'data1 isPrime') ifFalse: [self error: 'should have found it'].
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1624
                "will correct the date type of #true, and complain"
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1625
Smalltalk isSmalltalkX ifTrue:[        
1491
8941fc515d83 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1114
diff changeset
  1626
(MethodFinder new load: #((4 2) '2r100'   (255 16) '16rFF'    (14 8) '8r16')
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1627
        ) searchForOne asArray = 
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1628
                #('data1 radixPrintStringRadix: data2' )
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1629
                          ifFalse: [self error: 'should have found it'].        
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1630
] ifFalse:[
1491
8941fc515d83 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1114
diff changeset
  1631
(MethodFinder new load: #((4 2) '2r100'   (255 16) '16rFF'    (14 8) '8r16')
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1632
        ) searchForOne asArray = 
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1633
                #('data1 radix: data2' 'data1 printStringBase: data2' 'data1 storeStringBase: data2')                             
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1634
                          ifFalse: [self error: 'should have found it'].        
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1635
].
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1636
"/(MethodFinder2 new load: #(#(3@4) 4 #(1@5) 5)
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1637
"/        ) searchForOne asArray = #('data1 y') ifFalse: [self error: 'should have found it'].    
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1638
Smalltalk isSmalltalkX ifTrue:[
1491
8941fc515d83 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1114
diff changeset
  1639
(MethodFinder new load: #(('abcd') $a  ('TedK') $T)
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1640
        ) searchForOne asArray = #('data1 first' 'data1 removeFirst'  'data1 anyOne')   
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1641
                 ifFalse: [self error: 'should have found it']. 
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1642
] ifFalse:[
1491
8941fc515d83 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1114
diff changeset
  1643
(MethodFinder new load: #(('abcd') $a  ('TedK') $T)
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1644
        ) searchForOne asArray = #('data1 asCharacter' 'data1 first' 'data1 anyOne')
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1645
                 ifFalse: [self error: 'should have found it']. 
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1646
].
1491
8941fc515d83 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1114
diff changeset
  1647
(((MethodFinder new load: #(('abcd' 1) $a  ('Ted ' 3) $d )
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1648
        ) searchForOne asArray) includesAll: #('data1 at: data2' 'data1 atPin: data2' 'data1 atWrap: data2'))
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1649
                ifFalse: [self error: 'should have found it'].  
1491
8941fc515d83 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1114
diff changeset
  1650
(MethodFinder new load: #(((12 4 8)) 24  ((1 3 6)) 10 )
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1651
        ) searchForOne asArray=  #('data1 sum') ifFalse: [self error: 'should have found it'].  
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1652
                "note extra () needed for an Array object as an argument"
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1653
1491
8941fc515d83 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1114
diff changeset
  1654
(MethodFinder new load: #((14 3) 11  (-10 5) -15  (4 -3) 7)
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1655
        ) searchForOne asArray = #('data1 - data2') ifFalse: [self error: 'should have found it'].
1491
8941fc515d83 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1114
diff changeset
  1656
((MethodFinder new load: #((4) 4  (-10) 10 (-3) 3 (2) 2 (-6) 6 (612) 612)
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1657
        ) searchForOne asArray includesAll: #('data1 abs')) ifFalse: [self error: 'should have found it'].
1491
8941fc515d83 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1114
diff changeset
  1658
(MethodFinder new load: #(#(4 3) true #(-7 3) false #(5 1) true #(5 5) false)
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1659
        ) searchForOne asArray = #('data1 > data2') ifFalse: [self error: 'should have found it'].      
1491
8941fc515d83 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1114
diff changeset
  1660
(MethodFinder new load: #((5) 0.2   (2) 0.5)
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1661
        ) searchForOne asArray = #('data1 reciprocal') ifFalse: [self error: 'should have found it'].   
1491
8941fc515d83 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1114
diff changeset
  1662
(MethodFinder new load: #((12 4 8) 2  (1 3 6) 2  (5 2 16) 8)
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1663
        ) searchForOne asArray = #()     " '(data3 / data2) ' want to be able to leave out args"  
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1664
                ifFalse: [self error: 'should have found it'].  
1491
8941fc515d83 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1114
diff changeset
  1665
(MethodFinder new load: #((0.0) 0.0  (1.5) 0.997495  (0.75) 0.681639)
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1666
        ) searchForOne asArray = #('data1 sin') ifFalse: [self error: 'should have found it'].  
1491
8941fc515d83 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1114
diff changeset
  1667
(MethodFinder new load: #((7 5) 2   (4 5) 4   (-9 4) 3)
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1668
        ) searchForOne asArray = #('data1 \\ data2') ifFalse: [self error: 'should have found it'].     
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1669
! !
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1670
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1671
!MethodFinder class methodsFor:'documentation'!
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1672
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1673
version
3951
bab7dcb06041 #BUGFIX
mawalch
parents: 3872
diff changeset
  1674
    ^ '$Header$'
2212
d3ee75344f82 inform: -> information:
Claus Gittinger <cg@exept.de>
parents: 2109
diff changeset
  1675
!
d3ee75344f82 inform: -> information:
Claus Gittinger <cg@exept.de>
parents: 2109
diff changeset
  1676
d3ee75344f82 inform: -> information:
Claus Gittinger <cg@exept.de>
parents: 2109
diff changeset
  1677
version_CVS
3951
bab7dcb06041 #BUGFIX
mawalch
parents: 3872
diff changeset
  1678
    ^ '$Header$'
1089
40d9ddd1f510 initial checkin
james
parents:
diff changeset
  1679
! !
3316
d11917d0dca1 class: MethodFinder
Claus Gittinger <cg@exept.de>
parents: 2935
diff changeset
  1680