StringPattern.st
author Claus Gittinger <cg@exept.de>
Sat, 02 May 2020 21:40:13 +0200
changeset 5476 7355a4b11cb6
parent 4272 ef02a1f2c6fb
permissions -rw-r--r--
#FEATURE by cg class: Socket class added: #newTCPclientToHost:port:domain:domainOrder:withTimeout: changed: #newTCPclientToHost:port:domain:withTimeout:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4272
ef02a1f2c6fb #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4017
diff changeset
     1
"
ef02a1f2c6fb #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4017
diff changeset
     2
 COPYRIGHT (c) 2011 by eXept Software AG
ef02a1f2c6fb #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4017
diff changeset
     3
              All Rights Reserved
ef02a1f2c6fb #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4017
diff changeset
     4
ef02a1f2c6fb #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4017
diff changeset
     5
 This software is furnished under a license and may be used
ef02a1f2c6fb #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4017
diff changeset
     6
 only in accordance with the terms of that license and with the
ef02a1f2c6fb #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4017
diff changeset
     7
 inclusion of the above copyright notice. This software may not
ef02a1f2c6fb #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4017
diff changeset
     8
 be provided or otherwise made available to, or used by, any
ef02a1f2c6fb #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4017
diff changeset
     9
 other person. No title to or ownership of the software is
ef02a1f2c6fb #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4017
diff changeset
    10
 hereby transferred.
ef02a1f2c6fb #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4017
diff changeset
    11
"
2619
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
"{ Package: 'stx:libbasic2' }"
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
3464
8d9675f053d4 Allow for space in patterns
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3449
diff changeset
    14
"{ NameSpace: Smalltalk }"
8d9675f053d4 Allow for space in patterns
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3449
diff changeset
    15
2619
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
Object subclass:#StringPattern
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
	instanceVariableNames:'data'
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
	classVariableNames:''
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
	poolDictionaries:''
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
	category:'Collections-Text-Support'
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
!
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
2672
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
    23
StringPattern subclass:#Includes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
    24
	instanceVariableNames:''
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
    25
	classVariableNames:''
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
    26
	poolDictionaries:''
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
    27
	privateIn:StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
    28
!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
    29
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
    30
StringPattern subclass:#Matches
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
    31
	instanceVariableNames:''
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
    32
	classVariableNames:''
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
    33
	poolDictionaries:''
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
    34
	privateIn:StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
    35
!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
    36
2619
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
Object subclass:#Parser
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
	instanceVariableNames:'stream errorBlock'
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
	classVariableNames:''
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
	poolDictionaries:''
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
	privateIn:StringPattern
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
!
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
StringPattern subclass:#StartsWith
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
	instanceVariableNames:''
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
	classVariableNames:''
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
	poolDictionaries:''
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
	privateIn:StringPattern
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
!
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
!StringPattern class methodsFor:'documentation'!
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
4272
ef02a1f2c6fb #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4017
diff changeset
    53
copyright
ef02a1f2c6fb #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4017
diff changeset
    54
"
ef02a1f2c6fb #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4017
diff changeset
    55
 COPYRIGHT (c) 2011 by eXept Software AG
ef02a1f2c6fb #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4017
diff changeset
    56
              All Rights Reserved
ef02a1f2c6fb #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4017
diff changeset
    57
ef02a1f2c6fb #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4017
diff changeset
    58
 This software is furnished under a license and may be used
ef02a1f2c6fb #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4017
diff changeset
    59
 only in accordance with the terms of that license and with the
ef02a1f2c6fb #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4017
diff changeset
    60
 inclusion of the above copyright notice. This software may not
ef02a1f2c6fb #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4017
diff changeset
    61
 be provided or otherwise made available to, or used by, any
ef02a1f2c6fb #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4017
diff changeset
    62
 other person. No title to or ownership of the software is
ef02a1f2c6fb #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4017
diff changeset
    63
 hereby transferred.
ef02a1f2c6fb #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4017
diff changeset
    64
ef02a1f2c6fb #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4017
diff changeset
    65
"
ef02a1f2c6fb #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4017
diff changeset
    66
!
ef02a1f2c6fb #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4017
diff changeset
    67
2619
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
documentation
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
"
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
    A StringPattern instances are used to match string. The
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
    pattern is build from a user-supplied string. It is the
3205
154e2d2fcb71 class: StringPattern
Claus Gittinger <cg@exept.de>
parents: 3079
diff changeset
    72
    intention to let the user type the search pattern - it can
154e2d2fcb71 class: StringPattern
Claus Gittinger <cg@exept.de>
parents: 3079
diff changeset
    73
    be used for various live searches in lists, dialogs etc.
2619
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
    This is an unfinished class. More detailed description about
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
    syntax and algorithm will be added once the results will be
3205
154e2d2fcb71 class: StringPattern
Claus Gittinger <cg@exept.de>
parents: 3079
diff changeset
    77
    considered good and the API become stable. 
154e2d2fcb71 class: StringPattern
Claus Gittinger <cg@exept.de>
parents: 3079
diff changeset
    78
    If not, blame it on JV :-)
2619
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
    [author:]
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
        Jan Vrany <jan.vrany@fit.cvut.cz>
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
    [instance variables:]
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
    [class variables:]
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
    [see also:]
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
"
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
! !
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
!StringPattern class methodsFor:'instance creation'!
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
2672
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
    94
includes: aString
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
    95
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
    96
    ^Includes new on: aString
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
    97
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
    98
    "Created: / 18-10-2011 / 21:22:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
    99
!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   100
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   101
matches: aString
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   102
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   103
    ^Matches new on: aString
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   104
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   105
    "Created: / 18-10-2011 / 21:23:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   106
!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   107
2619
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
readFrom:aStringOrStream onError:exceptionBlock
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
    ^Parser parse: aStringOrStream readStream onError: exceptionBlock
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
2672
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   112
    "
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   113
        StringPattern readFrom: 'abcd'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   114
        StringPattern readFrom: ' abcd'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   115
        StringPattern readFrom: ' a??d'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   116
        StringPattern readFrom: ' a*d*'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   117
        StringPattern readFrom: 'abcd*'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   118
    "
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   119
2619
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   120
    "Created: / 09-08-2011 / 13:39:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   121
!
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   122
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   123
startsWith: aString
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   124
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   125
    ^StartsWith new on: aString
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   126
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   127
    "Created: / 09-08-2011 / 13:42:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   128
! !
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   129
4017
42cb3e340b6e #OTHER by mawalch
mawalch
parents: 3524
diff changeset
   130
3468
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   131
!StringPattern methodsFor:'conversion'!
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   132
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   133
asString
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   134
    "Returns a string representation of the pattern.
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   135
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   136
     `StringPattern fromString: pattern asString` should return
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   137
     the same pattern (same meaning equal)"
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   138
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   139
    ^ self subclassResponsibility
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   140
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   141
    "Created: / 23-01-2015 / 17:36:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   142
! !
3249
16699e7a3c08 class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3205
diff changeset
   143
2619
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   144
!StringPattern methodsFor:'initialization'!
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   145
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   146
on: anObject
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   147
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   148
    data := anObject.
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   149
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   150
    "Created: / 09-08-2011 / 13:42:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   151
! !
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   152
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   153
!StringPattern methodsFor:'matching'!
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   154
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   155
match: string 
3449
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   156
    ^self match: string from: 1 to: string size
2619
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   157
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   158
    "Created: / 09-08-2011 / 13:51:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3449
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   159
    "Modified: / 26-11-2014 / 07:00:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   160
!
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   161
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   162
match: string case: case 
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   163
    ^self match: string case: case relax: 1
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   164
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   165
    "Created: / 26-11-2014 / 07:02:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   166
!
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   167
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   168
match: string case: case relax: relax 
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   169
    ^self match: string from: 1 to: string size case: case relax: relax
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   170
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   171
    "Created: / 26-11-2014 / 07:02:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2619
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   172
!
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   173
3449
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   174
match: string from: from to: to 
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   175
    ^self match: string from: 1 to: string size case: true
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   176
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   177
    "Created: / 26-11-2014 / 07:01:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   178
!
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   179
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   180
match: string from: from to: to case: case                                                              
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   181
    ^self match: string from: from to: to case: case relax: 1
2619
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   182
3449
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   183
    "Created: / 26-11-2014 / 07:01:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   184
    "Modified: / 26-11-2014 / 10:00:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   185
!
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   186
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   187
match: string from: from to: to case: case relax: relax
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   188
    "Answers true if receiver matches the given `string`
3524
7bfa53fd9072 class: StringPattern
Claus Gittinger <cg@exept.de>
parents: 3468
diff changeset
   189
     portion starting at `from`, ending at `to`.
3449
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   190
     If `case` is true, then perform natch case sensitive,
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   191
     otherwise match case insensitive.
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   192
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   193
     `relax` argument say how much the matching should
2619
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   194
     be relaxed - relax is a number in <1..3>, where
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   195
     1 means no relaxing at all (aka exact match). 
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   196
     All patterns should support relax == 1. If the relax
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   197
     level is not supported by a pattern, false must be 
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   198
     returned."
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   199
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   200
    ^self subclassResponsibility
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   201
3449
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   202
    "Created: / 26-11-2014 / 06:35:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   203
!
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   204
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   205
match: string from: from to: to relax: relax                                                              
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   206
    ^self match: string from: from to: string size case: true relax: relax
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   207
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   208
    "Created: / 26-11-2014 / 07:01:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   209
!
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   210
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   211
match: string relax: relax
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   212
    ^ self match: string case: true relax: relax
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   213
2619
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   214
    "Created: / 09-08-2011 / 13:47:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3449
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   215
    "Modified: / 26-11-2014 / 07:03:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2619
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   216
! !
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   217
2672
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   218
!StringPattern methodsFor:'printing & storing'!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   219
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   220
printOn:aStream
4017
42cb3e340b6e #OTHER by mawalch
mawalch
parents: 3524
diff changeset
   221
    "append a printed representation of the receiver to the argument, aStream"
2672
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   222
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   223
    super printOn:aStream.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   224
    aStream nextPut:$(.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   225
    data printOn: aStream.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   226
    aStream nextPut:$).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   227
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   228
    "Modified: / 18-10-2011 / 21:28:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   229
! !
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   230
2687
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   231
!StringPattern methodsFor:'utilities'!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   232
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   233
matchObject: anObject
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   234
    "Return true if pattern matches given object with relax level 1.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   235
3524
7bfa53fd9072 class: StringPattern
Claus Gittinger <cg@exept.de>
parents: 3468
diff changeset
   236
    Some heuristics is performed to obtain the object's textual representation."
2687
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   237
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   238
    self matchObject: anObject relax: 1
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   239
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   240
    "Created: / 29-11-2011 / 15:34:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   241
!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   242
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   243
matchObject: object relax: relax
3524
7bfa53fd9072 class: StringPattern
Claus Gittinger <cg@exept.de>
parents: 3468
diff changeset
   244
    "Return true if pattern matches given object.
2687
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   245
3524
7bfa53fd9072 class: StringPattern
Claus Gittinger <cg@exept.de>
parents: 3468
diff changeset
   246
    Some heuristics is performed to obtain the object's textual representation."
2687
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   247
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   248
    object isString ifTrue:[
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   249
        ^self match: object relax: relax.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   250
    ].
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   251
    object isHierarchicalItem ifTrue:[
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   252
        ^self match: object label relax: relax.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   253
    ].
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   254
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   255
    ^self match: object displayString relax: relax.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   256
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   257
    "Created: / 29-11-2011 / 15:37:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   258
! !
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   259
3468
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   260
!StringPattern::Includes methodsFor:'conversion'!
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   261
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   262
asString
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   263
    "Returns a string representation of the pattern.
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   264
     
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   265
     `StringPattern fromString: pattern asString` should return
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   266
     the same pattern (same meaning equal)"
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   267
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   268
    ^ ' ', data
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   269
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   270
    "Created: / 23-01-2015 / 17:40:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   271
! !
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   272
2672
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   273
!StringPattern::Includes methodsFor:'matching'!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   274
3449
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   275
match:string from: from to: to case: case relax:relax
2672
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   276
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   277
    relax == 1 ifTrue:[
3449
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   278
        | i |
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   279
        i := string indexOfSubCollection:data startingAt:from ifAbsent:0 caseSensitive:case.
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   280
        ^ i between: from and: to - data size + 1 
2672
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   281
    ].
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   282
    ^false.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   283
3449
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   284
    "Created: / 26-11-2014 / 06:40:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2672
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   285
! !
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   286
3468
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   287
!StringPattern::Matches methodsFor:'conversion'!
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   288
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   289
asString
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   290
    "Returns a string representation of the pattern.
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   291
     
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   292
     `StringPattern fromString: pattern asString` should return
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   293
     the same pattern (same meaning equal)"
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   294
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   295
    ^ data
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   296
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   297
    "Created: / 23-01-2015 / 17:41:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   298
! !
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   299
2672
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   300
!StringPattern::Matches methodsFor:'matching'!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   301
3449
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   302
match:string from: from to: to case: case relax:relax
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   303
    | pattern |
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   304
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   305
    relax > 2 ifTrue:[ ^ false ].
2672
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   306
3449
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   307
    pattern := data.
2672
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   308
    relax == 2 ifTrue:[
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   309
        data first ~~  $* ifTrue:[
3449
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   310
            pattern := '*' , pattern.
2672
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   311
        ].
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   312
        data last ~~  $* ifTrue:[
3449
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   313
            pattern := pattern , '*'.
2672
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   314
        ].
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   315
    ].
3449
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   316
    ^ pattern match: string from: from to: to caseSensitive: case.
2672
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   317
3449
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   318
    "Created: / 26-11-2014 / 06:43:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2672
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   319
! !
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   320
2619
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   321
!StringPattern::Parser class methodsFor:'parsing'!
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   322
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   323
parse: aStream onError: errorBlock
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   324
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   325
    ^self new parse: aStream onError: errorBlock
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   326
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   327
    "Created: / 09-08-2011 / 13:39:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   328
! !
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   329
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   330
!StringPattern::Parser methodsFor:'parsing'!
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   331
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   332
parse
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   333
2672
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   334
    "Sorry, no fancy AND/OR patterns now"
2619
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   335
2672
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   336
   ^self parsePattern.
2619
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   337
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   338
    "Created: / 09-08-2011 / 13:41:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   339
!
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   340
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   341
parse: aStream onError: aBlock
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   342
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   343
    stream := aStream.
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   344
    errorBlock := aBlock.
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   345
    ^self parse.
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   346
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   347
    "Created: / 09-08-2011 / 13:40:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2672
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   348
!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   349
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   350
parsePattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   351
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   352
    | data |
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   353
3079
a419a95f3e3f class: StringPattern
Stefan Vogel <sv@exept.de>
parents: 2912
diff changeset
   354
    stream position == 0 ifTrue:[
2698
16c85264fef2 Fix (isWhiteSpace -> isSeparator)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2687
diff changeset
   355
        (stream peek notNil and:[stream peek isSeparator]) ifFalse:[
3464
8d9675f053d4 Allow for space in patterns
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3449
diff changeset
   356
            data := stream upToEnd."/upToSeparator.
2672
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   357
            (data includes: $*) ifTrue:[
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   358
                ^StringPattern matches: data
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   359
            ].
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   360
            (data includes: $?) ifTrue:[
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   361
                ^StringPattern matches: data
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   362
            ].
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   363
            ^StringPattern startsWith: data    
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   364
        ].
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   365
    ].
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   366
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   367
    stream skipSeparators.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   368
    data := stream upToSeparator.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   369
    (data includes: $*) ifTrue:[
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   370
        ^StringPattern matches: data
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   371
    ].
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   372
    (data includes: $?) ifTrue:[
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   373
        ^StringPattern matches: data
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   374
    ].
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   375
    ^StringPattern includes: data
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   376
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2619
diff changeset
   377
    "Created: / 18-10-2011 / 21:26:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2698
16c85264fef2 Fix (isWhiteSpace -> isSeparator)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2687
diff changeset
   378
    "Modified: / 21-12-2011 / 23:19:06 / jv"
3464
8d9675f053d4 Allow for space in patterns
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3449
diff changeset
   379
    "Modified (format): / 09-01-2015 / 13:09:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2619
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   380
! !
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   381
3468
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   382
!StringPattern::StartsWith methodsFor:'conversion'!
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   383
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   384
asString
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   385
    "Returns a string representation of the pattern.
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   386
     
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   387
     `StringPattern fromString: pattern asString` should return
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   388
     the same pattern (same meaning equal)"
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   389
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   390
    ^ data
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   391
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   392
    "Created: / 23-01-2015 / 17:41:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   393
! !
589b394c1c7b class: StringPattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3464
diff changeset
   394
2619
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   395
!StringPattern::StartsWith methodsFor:'matching'!
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   396
3449
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   397
match: string from: from to: to case: case relax: relax
2619
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   398
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   399
    relax == 1 ifTrue:[
3449
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   400
        (case and:[from == 1]) ifTrue:[
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   401
            ^ string startsWith: data.
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   402
        ] ifFalse:[ 
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   403
            | stringSz dataSz |
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   404
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   405
            stringSz := string size.
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   406
            dataSz := data size.
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   407
            stringSz >= (from + dataSz - 1) ifTrue:[ 
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   408
                | i |
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   409
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   410
                i := dataSz.
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   411
                case ifTrue:[
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   412
                    [ i > 0 ] whileTrue:[ 
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   413
                        (string at: from + i - 1) ~~ (data at: i) ifTrue:[  ^ false ].
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   414
                        i := i - 1.
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   415
                    ].
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   416
                ] ifFalse:[
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   417
                    [ i > 0 ] whileTrue:[ 
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   418
                        (string at: from + i - 1) asLowercase ~~ (data at: i) asLowercase ifTrue:[  ^ false ].
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   419
                        i := i - 1.
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   420
                    ].
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   421
                ].
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   422
                ^ true
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   423
            ].
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   424
            ^ false
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   425
        ].
2619
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   426
    ].
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   427
    relax == 2 ifTrue:[
3449
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   428
        | i |
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   429
        i := string indexOfSubCollection:data startingAt:from ifAbsent:0 caseSensitive:case.
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   430
        ^ i between: from and: to - data size + 1 
2619
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   431
    ].
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   432
    relax == 3 ifTrue:[
3449
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   433
        ^ ('*', data, '*') match: string from: from to: to caseSensitive: case.
2619
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   434
    ].
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   435
    ^false.
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   436
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   437
    "
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   438
        (StringPattern startsWith: 'String') match: 'StringPattern'
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   439
        (StringPattern startsWith: 'STring') match: 'StringPattern' relax: 2
3449
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   440
        (StringPattern startsWith: 'Pattern') match: 'StringPattern' from: 7 to: 13 relax: 1   
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   441
        (StringPattern startsWith: 'String') match: 'StringPattern' from: 7 to: 13 relax: 1   
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   442
        (StringPattern startsWith: 'Pattern') match: 'StringPattern' relax: 2   
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   443
2619
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   444
    "
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   445
3449
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   446
    "Created: / 26-11-2014 / 06:45:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
21c891242b9d Added support for matching only a portion of a string and match case sensitive/insensitive.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3249
diff changeset
   447
    "Modified: / 26-11-2014 / 09:58:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2619
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   448
! !
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   449
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   450
!StringPattern class methodsFor:'documentation'!
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   451
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   452
version
4017
42cb3e340b6e #OTHER by mawalch
mawalch
parents: 3524
diff changeset
   453
    ^ '$Header$'
2619
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   454
!
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   455
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   456
version_CVS
4017
42cb3e340b6e #OTHER by mawalch
mawalch
parents: 3524
diff changeset
   457
    ^ '$Header$'
2619
0012c9536b98 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   458
! !
2912
2417be04fe10 Bugfix in StringPattern::Includes>>match:relax:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   459