AbstractSourceFileReader.st
author Stefan Vogel <sv@exept.de>
Tue, 03 Jul 2018 23:38:44 +0200
changeset 23189 15ea23cfead5
parent 21454 7c6e37a93527
child 23521 74d847ad5d1e
permissions -rw-r--r--
#FEATURE by stefan class: Set added: #addOrReplace:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
21454
7c6e37a93527 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18912
diff changeset
     1
"
7c6e37a93527 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18912
diff changeset
     2
 COPYRIGHT (c) 2009 by Claus Gittinger / eXept Software AG
7c6e37a93527 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18912
diff changeset
     3
              All Rights Reserved
7c6e37a93527 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18912
diff changeset
     4
7c6e37a93527 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18912
diff changeset
     5
 This software is furnished under a license and may be used
7c6e37a93527 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18912
diff changeset
     6
 only in accordance with the terms of that license and with the
7c6e37a93527 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18912
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
7c6e37a93527 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18912
diff changeset
     8
 be provided or otherwise made available to, or used by, any
7c6e37a93527 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18912
diff changeset
     9
 other person.  No title to or ownership of the software is
7c6e37a93527 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18912
diff changeset
    10
 hereby transferred.
7c6e37a93527 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18912
diff changeset
    11
"
11960
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    12
"{ Package: 'stx:libbasic' }"
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    13
18912
74cb6f5274d7 added: #isAbstract
Claus Gittinger <cg@exept.de>
parents: 15418
diff changeset
    14
"{ NameSpace: Smalltalk }"
74cb6f5274d7 added: #isAbstract
Claus Gittinger <cg@exept.de>
parents: 15418
diff changeset
    15
11960
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    16
Object subclass:#AbstractSourceFileReader
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    17
	instanceVariableNames:''
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    18
	classVariableNames:''
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    19
	poolDictionaries:''
15418
1192811fb0dc class: AbstractSourceFileReader
Claus Gittinger <cg@exept.de>
parents: 14406
diff changeset
    20
	category:'Kernel-Classes-Support'
11960
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    21
!
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    22
14406
1974e60efafb comment
Claus Gittinger <cg@exept.de>
parents: 13004
diff changeset
    23
!AbstractSourceFileReader class methodsFor:'documentation'!
1974e60efafb comment
Claus Gittinger <cg@exept.de>
parents: 13004
diff changeset
    24
21454
7c6e37a93527 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18912
diff changeset
    25
copyright
7c6e37a93527 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18912
diff changeset
    26
"
7c6e37a93527 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18912
diff changeset
    27
 COPYRIGHT (c) 2009 by Claus Gittinger / eXept Software AG
7c6e37a93527 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18912
diff changeset
    28
              All Rights Reserved
7c6e37a93527 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18912
diff changeset
    29
7c6e37a93527 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18912
diff changeset
    30
 This software is furnished under a license and may be used
7c6e37a93527 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18912
diff changeset
    31
 only in accordance with the terms of that license and with the
7c6e37a93527 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18912
diff changeset
    32
 inclusion of the above copyright notice.   This software may not
7c6e37a93527 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18912
diff changeset
    33
 be provided or otherwise made available to, or used by, any
7c6e37a93527 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18912
diff changeset
    34
 other person.  No title to or ownership of the software is
7c6e37a93527 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18912
diff changeset
    35
 hereby transferred.
7c6e37a93527 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18912
diff changeset
    36
"
7c6e37a93527 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18912
diff changeset
    37
!
7c6e37a93527 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18912
diff changeset
    38
14406
1974e60efafb comment
Claus Gittinger <cg@exept.de>
parents: 13004
diff changeset
    39
documentation
1974e60efafb comment
Claus Gittinger <cg@exept.de>
parents: 13004
diff changeset
    40
"
1974e60efafb comment
Claus Gittinger <cg@exept.de>
parents: 13004
diff changeset
    41
    Abstract common superclass for source file readers
1974e60efafb comment
Claus Gittinger <cg@exept.de>
parents: 13004
diff changeset
    42
"
1974e60efafb comment
Claus Gittinger <cg@exept.de>
parents: 13004
diff changeset
    43
! !
11960
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    44
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    45
!AbstractSourceFileReader class methodsFor:'fileIn'!
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    46
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    47
fileIn: aFilename
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    48
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    49
    ^self new fileIn: aFilename
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    50
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    51
    "Created: / 16-08-2009 / 10:14:51 / Jan Vrany <vranyj1@fel.cvut.cz>"
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    52
!
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    53
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    54
fileInStream: aStream
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    55
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    56
    ^self new fileInStream: aStream
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    57
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    58
    "Created: / 16-08-2009 / 10:15:05 / Jan Vrany <vranyj1@fel.cvut.cz>"
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    59
! !
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    60
18912
74cb6f5274d7 added: #isAbstract
Claus Gittinger <cg@exept.de>
parents: 15418
diff changeset
    61
!AbstractSourceFileReader class methodsFor:'queries'!
74cb6f5274d7 added: #isAbstract
Claus Gittinger <cg@exept.de>
parents: 15418
diff changeset
    62
74cb6f5274d7 added: #isAbstract
Claus Gittinger <cg@exept.de>
parents: 15418
diff changeset
    63
isAbstract
74cb6f5274d7 added: #isAbstract
Claus Gittinger <cg@exept.de>
parents: 15418
diff changeset
    64
    ^ self == AbstractSourceFileReader
74cb6f5274d7 added: #isAbstract
Claus Gittinger <cg@exept.de>
parents: 15418
diff changeset
    65
! !
74cb6f5274d7 added: #isAbstract
Claus Gittinger <cg@exept.de>
parents: 15418
diff changeset
    66
11960
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    67
!AbstractSourceFileReader methodsFor:'fileIn'!
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    68
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    69
fileIn:aFilename
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    70
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    71
    | stream |
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    72
    [stream := aFilename asFilename readStream.
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    73
    self fileInStream: stream]
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    74
        ensure:
13004
d3d012c63bdd changed: #fileIn:
Claus Gittinger <cg@exept.de>
parents: 12178
diff changeset
    75
            [stream notNil ifTrue:[stream close]]
11960
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    76
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    77
    "Modified: / 15-08-2009 / 14:47:29 / Jan Vrany <vranyj1@fel.cvut.cz>"
13004
d3d012c63bdd changed: #fileIn:
Claus Gittinger <cg@exept.de>
parents: 12178
diff changeset
    78
    "Modified: / 08-08-2010 / 14:38:35 / cg"
11960
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    79
!
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    80
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    81
fileInStream:arg
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    82
    "raise an error: must be redefined in concrete subclass(es)"
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    83
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    84
    ^ self subclassResponsibility
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    85
! !
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    86
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    87
!AbstractSourceFileReader class methodsFor:'documentation'!
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    88
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    89
version
18912
74cb6f5274d7 added: #isAbstract
Claus Gittinger <cg@exept.de>
parents: 15418
diff changeset
    90
    ^ '$Header$'
12055
00b044fe0fa6 changed: #version_SVN
fm
parents: 12009
diff changeset
    91
!
00b044fe0fa6 changed: #version_SVN
fm
parents: 12009
diff changeset
    92
00b044fe0fa6 changed: #version_SVN
fm
parents: 12009
diff changeset
    93
version_CVS
18912
74cb6f5274d7 added: #isAbstract
Claus Gittinger <cg@exept.de>
parents: 15418
diff changeset
    94
    ^ '$Header$'
12055
00b044fe0fa6 changed: #version_SVN
fm
parents: 12009
diff changeset
    95
!
00b044fe0fa6 changed: #version_SVN
fm
parents: 12009
diff changeset
    96
00b044fe0fa6 changed: #version_SVN
fm
parents: 12009
diff changeset
    97
version_SVN
18912
74cb6f5274d7 added: #isAbstract
Claus Gittinger <cg@exept.de>
parents: 15418
diff changeset
    98
    ^'$Id$'
11960
2eddbf18d640 initial checkin
fm
parents:
diff changeset
    99
! !
15418
1192811fb0dc class: AbstractSourceFileReader
Claus Gittinger <cg@exept.de>
parents: 14406
diff changeset
   100