VSEFileSourceWriter.st
author Claus Gittinger <cg@exept.de>
Mon, 02 Feb 2015 17:21:56 +0100
changeset 3738 b6ed36feefd2
parent 3734 224a35da82a2
child 3739 3ea1cdfa7a08
permissions -rw-r--r--
class: VSEFileSourceWriter
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3714
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
 COPYRIGHT (c) 2015 by eXept Software AG
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
              All Rights Reserved
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
 This software is furnished under a license and may be used
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
 hereby transferred.
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
"
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
"{ Package: 'stx:libbasic3' }"
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
"{ NameSpace: Smalltalk }"
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
SmalltalkChunkFileSourceWriter subclass:#VSEFileSourceWriter
3734
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
    17
	instanceVariableNames:'classNameTranslations'
3714
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
	classVariableNames:''
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
	poolDictionaries:''
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
	category:'Kernel-Classes-Support'
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
!
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
Object subclass:#VSESourceRewriter
3734
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
    24
	instanceVariableNames:'source method methodClass classNamesToRewrite'
3714
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
	classVariableNames:''
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
	poolDictionaries:''
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
	privateIn:VSEFileSourceWriter
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
!
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
!VSEFileSourceWriter class methodsFor:'documentation'!
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
copyright
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
"
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
 COPYRIGHT (c) 2015 by eXept Software AG
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
              All Rights Reserved
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
 This software is furnished under a license and may be used
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
 only in accordance with the terms of that license and with the
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
 inclusion of the above copyright notice.   This software may not
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
 be provided or otherwise made available to, or used by, any
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
 other person.  No title to or ownership of the software is
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
 hereby transferred.
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
"
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
!
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
documentation
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
"
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
    fileout in a format which can be read by visualAge.
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
    For transporting software.
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
"
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
!
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
examples
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
"
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
                                                        [exBegin]
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
    |s|
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
    s := 'test.st' asFilename writeStream.
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
    [
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
        VSEChunkFileSourceWriter new
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
            fileOut:OrderedCollection on:s
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
    ] ensure:[
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
        s close
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
    ]
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
                                                        [exEnd]
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
                                                        [exBegin]
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
    |s|
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
    s := '' writeStream.
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
    [
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
        VSEChunkFileSourceWriter new
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
            fileOut:OrderedCollection on:s
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
    ] ensure:[
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
        s close
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
    ].
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
    s contents
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
                                                        [exEnd]
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
"
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
! !
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
3734
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
    82
!VSEFileSourceWriter class methodsFor:'instance creation'!
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
    83
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
    84
new
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
    85
    "return an initialized instance"
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
    86
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
    87
    ^ self basicNew initialize.
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
    88
! !
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
    89
3727
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
    90
!VSEFileSourceWriter class methodsFor:'api'!
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
    91
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
    92
fileOutPackage:currentProject on:aStream
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
    93
    self new fileOutPackage:currentProject on:aStream
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
    94
! !
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
    95
3714
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
!VSEFileSourceWriter class methodsFor:'class access'!
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
vseSourceRewriter
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
    ^ VSESourceRewriter
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
! !
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
3734
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
   102
!VSEFileSourceWriter class methodsFor:'defaults'!
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
   103
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
   104
defaultClassNameTranslations
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
   105
    "for extensions"
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
   106
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
   107
    ^ Dictionary new
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
   108
        at:#SequenceableCollection put:#IndexedCollection;
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
   109
        at:#CharacterArray put:#String;
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
   110
        at:#Unicode16String put:#DoubleByteString;
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
   111
        at:#Timestamp put:#TimeStamp;
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
   112
        yourself
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
   113
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
   114
    "
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
   115
     self defaultClassNameTranslations
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
   116
    "
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
   117
! !
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
   118
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
   119
!VSEFileSourceWriter methodsFor:'initialization'!
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
   120
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
   121
initialize
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
   122
    classNameTranslations := self class defaultClassNameTranslations
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
   123
! !
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
   124
3727
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   125
!VSEFileSourceWriter methodsFor:'utilities'!
3714
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
ensureNoUnicodeInClass:aClass
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
    "/ check if we need UTF8 encoding
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
    aClass withAllPrivateClasses do:[:cls |
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
         cls instAndClassMethods contains:[:m |
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
            self ensureNoUnicodeInMethod:m
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
         ]
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
    ].
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   134
!
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
ensureNoUnicodeInMethod:aMethod
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
    |src|
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
    src := aMethod source.
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
    src isNil ifTrue:[
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
        self error:'missing source in ',aMethod whoString
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
    ].
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   143
    src isWideString ifTrue:[
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
        self error:(aMethod whoString , ' contains unicode strings or character contants. Cannot be exported to VSE')
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
    ].
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   146
!
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
extensionMethodsFor:packageID
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
    |methodsToFileOut|
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   151
    methodsToFileOut := OrderedCollection new.
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   152
    Smalltalk allClassesDo:[:eachClass |
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   153
        eachClass instAndClassSelectorsAndMethodsDo:[:sel :mthd |
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   154
            |mPckg|
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   155
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
            mPckg := mthd package.
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
            (mPckg = packageID and:[mPckg ~= eachClass package]) ifTrue:[
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
                methodsToFileOut add:mthd.
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
            ]
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
        ]
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
    ].
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
    ^ methodsToFileOut
3730
d3151b9f69a0 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3727
diff changeset
   163
!
d3151b9f69a0 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3727
diff changeset
   164
d3151b9f69a0 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3727
diff changeset
   165
rewrittenClassNameOf:aClass
3734
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
   166
    |stxName vseName idx|
3730
d3151b9f69a0 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3727
diff changeset
   167
3734
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
   168
    stxName := aClass name.
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
   169
    vseName := classNameTranslations at:stxName ifAbsent:[stxName].
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
   170
    
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
   171
    (vseName includesString:'::') ifTrue:[
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
   172
        idx := vseName indexOfSubCollection:'::'.
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
   173
        ^ (vseName copyTo:idx-1) , VSESourceRewriter nameSpaceSeparatorReplacement , (vseName copyFrom:idx+2)
3730
d3151b9f69a0 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3727
diff changeset
   174
    ].
3734
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
   175
    ^ vseName    
3714
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   176
! !
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   177
3727
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   178
!VSEFileSourceWriter::VSESourceRewriter class methodsFor:'defaults'!
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   179
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   180
nameSpaceSeparatorReplacement
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   181
    ^ '__'
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   182
! !
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   183
3714
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   184
!VSEFileSourceWriter::VSESourceRewriter class methodsFor:'translation'!
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   185
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   186
rewriteMethod:method 
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   187
    ^ self new rewriteMethod:method 
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   188
! !
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   189
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   190
!VSEFileSourceWriter::VSESourceRewriter methodsFor:'accessing'!
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   191
3734
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
   192
classNamesToRewrite:something
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
   193
    classNamesToRewrite := something.
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
   194
!
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
   195
3714
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   196
method
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   197
    ^ method
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   198
!
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   199
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   200
method:something
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   201
    method := something.
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   202
!
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   203
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   204
methodClass
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   205
    ^ methodClass
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   206
!
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   207
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   208
methodClass:something
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   209
    methodClass := something.
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   210
!
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   211
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   212
source
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   213
    ^ source
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   214
!
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   215
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   216
source:something
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   217
    source := something.
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   218
! !
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   219
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   220
!VSEFileSourceWriter::VSESourceRewriter methodsFor:'translation'!
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   221
3731
3c1c1ddf02e2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3730
diff changeset
   222
checkForUnimplementedMessages
3c1c1ddf02e2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3730
diff changeset
   223
    "a naive search for messages which are known to be not implemented,
3c1c1ddf02e2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3730
diff changeset
   224
     and which should be replaced by other messages"
3c1c1ddf02e2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3730
diff changeset
   225
3c1c1ddf02e2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3730
diff changeset
   226
    |parser|
3c1c1ddf02e2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3730
diff changeset
   227
3c1c1ddf02e2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3730
diff changeset
   228
    "/ all references to namespace variables
3c1c1ddf02e2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3730
diff changeset
   229
    parser := Parser 
3c1c1ddf02e2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3730
diff changeset
   230
                parseMethod:source 
3c1c1ddf02e2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3730
diff changeset
   231
                in:methodClass
3c1c1ddf02e2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3730
diff changeset
   232
                ignoreErrors:false
3c1c1ddf02e2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3730
diff changeset
   233
                ignoreWarnings:false.
3c1c1ddf02e2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3730
diff changeset
   234
3c1c1ddf02e2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3730
diff changeset
   235
    (parser messagesSent includesAny: #( 
3c1c1ddf02e2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3730
diff changeset
   236
            'answer:do:' 
3c1c1ddf02e2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3730
diff changeset
   237
            'ignoreIn:'
3c1c1ddf02e2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3730
diff changeset
   238
            'codePoint'
3c1c1ddf02e2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3730
diff changeset
   239
            '->'
3c1c1ddf02e2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3730
diff changeset
   240
    )) ifTrue:[
3c1c1ddf02e2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3730
diff changeset
   241
        self error:'please rewrite unimplemented messages in ',method whoString
3c1c1ddf02e2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3730
diff changeset
   242
    ].
3c1c1ddf02e2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3730
diff changeset
   243
!
3c1c1ddf02e2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3730
diff changeset
   244
3714
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   245
doRewrite
3731
3c1c1ddf02e2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3730
diff changeset
   246
    self checkForUnimplementedMessages.
3c1c1ddf02e2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3730
diff changeset
   247
3714
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   248
    self rewriteEOLComments.
3738
b6ed36feefd2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3734
diff changeset
   249
    self rewriteAnnotationsToComments.
3727
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   250
    "/ self rewriteGlobalsWithNamespace.
3724
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   251
    self rewriteClassReferences.    
3725
723707412361 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3724
diff changeset
   252
    self rewriteExceptionHandlers.    
3714
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   253
    ^ source.
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   254
!
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   255
3738
b6ed36feefd2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3734
diff changeset
   256
rewriteAnnotationsToComments
b6ed36feefd2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3734
diff changeset
   257
    |tree parser eolComments|
b6ed36feefd2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3734
diff changeset
   258
b6ed36feefd2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3734
diff changeset
   259
    parser := Parser new.
b6ed36feefd2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3734
diff changeset
   260
    parser saveComments:true.
b6ed36feefd2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3734
diff changeset
   261
    parser parseMethod:source in:methodClass ignoreErrors:true ignoreWarnings:true.
b6ed36feefd2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3734
diff changeset
   262
b6ed36feefd2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3734
diff changeset
   263
    parser annotations isEmptyOrNil ifTrue:[^ self].
b6ed36feefd2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3734
diff changeset
   264
self halt.
b6ed36feefd2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3734
diff changeset
   265
"/    tree := parser tree.
b6ed36feefd2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3734
diff changeset
   266
"/    eolComments := parser comments select:[:each | each isEndOfLineComment].
b6ed36feefd2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3734
diff changeset
   267
"/    "/ start with the last (so I don't have to update the positions)
b6ed36feefd2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3734
diff changeset
   268
"/    eolComments sort:[:a :b | a startPosition < b startPosition].
b6ed36feefd2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3734
diff changeset
   269
"/    eolComments reverseDo:[:each |
b6ed36feefd2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3734
diff changeset
   270
"/        source := (source copyTo:(each endPosition)),'"',(source copyFrom:(each endPosition + 1))
b6ed36feefd2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3734
diff changeset
   271
"/    ].
b6ed36feefd2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3734
diff changeset
   272
"/
b6ed36feefd2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3734
diff changeset
   273
"/    "/ to verify, check parsability    
b6ed36feefd2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3734
diff changeset
   274
"/    RBParser 
b6ed36feefd2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3734
diff changeset
   275
"/        parseMethod:source
b6ed36feefd2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3734
diff changeset
   276
"/        onError:[:aString :pos | self halt.].           
b6ed36feefd2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3734
diff changeset
   277
!
b6ed36feefd2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3734
diff changeset
   278
3724
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   279
rewriteClassReferences
3727
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   280
    |parser globalsToRename symbolsToRename replacer newSource tree|
3724
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   281
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   282
    "/ all references to namespace variables
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   283
    parser := Parser 
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   284
                parseMethod:source 
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   285
                in:methodClass
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   286
                ignoreErrors:false
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   287
                ignoreWarnings:false.
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   288
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   289
    globalsToRename := Dictionary new.
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   290
    symbolsToRename := Dictionary new.
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   291
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   292
    parser usedGlobals do:[:eachGlobal |
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   293
        |idx nsName clsName|
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   294
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   295
        (eachGlobal includes:$:) ifTrue:[
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   296
            idx := eachGlobal indexOfSubCollection:'::'.   
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   297
            nsName := eachGlobal copyTo:idx-1.
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   298
            clsName := eachGlobal copyFrom:idx+2.
3727
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   299
            globalsToRename at:eachGlobal put:(nsName,(self class nameSpaceSeparatorReplacement),clsName).
3724
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   300
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   301
            nsName = methodClass nameSpace name ifTrue:[
3727
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   302
                globalsToRename at:clsName put:(nsName,(self class nameSpaceSeparatorReplacement),clsName).
3724
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   303
            ]
3734
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
   304
        ] ifFalse:[
224a35da82a2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3731
diff changeset
   305
3724
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   306
        ].
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   307
    ].
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   308
    parser usedSymbols do:[:eachSymbol |
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   309
        |idx nsName clsName|
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   310
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   311
        (eachSymbol includesString:'::') ifTrue:[
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   312
            idx := eachSymbol indexOfSubCollection:'::'.   
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   313
            nsName := eachSymbol copyTo:idx-1.
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   314
            clsName := eachSymbol copyFrom:idx+2.
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   315
            (nsName notEmpty 
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   316
                and:[ clsName notEmpty
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   317
                and:[ nsName knownAsSymbol
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   318
                and:[ (Smalltalk classNamed:nsName) isNameSpace ]]])
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   319
            ifTrue:[
3727
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   320
                symbolsToRename at:eachSymbol put:(nsName,(self class nameSpaceSeparatorReplacement),clsName) asSymbol.
3724
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   321
            ].
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   322
        ] ifFalse:[
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   323
            (methodClass nameSpace includesKey:eachSymbol asSymbol) ifTrue:[
3727
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   324
                symbolsToRename at:eachSymbol put:(methodClass nameSpace name,(self class nameSpaceSeparatorReplacement),eachSymbol) asSymbol.
3724
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   325
            ]
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   326
        ]
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   327
    ].
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   328
    (globalsToRename isEmpty and:[symbolsToRename isEmpty]) ifTrue:[^ self ].
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   329
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   330
    replacer := ParseTreeSourceRewriter new.
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   331
    replacer alwaysPerformAllSearches:true.
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   332
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   333
    globalsToRename keysAndValuesDo:[:oldName :newName |
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   334
        replacer replaceVariable: oldName with: newName.
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   335
    ].
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   336
    symbolsToRename keysAndValuesDo:[:oldName :newName |
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   337
        replacer replaceLiteral: oldName with: newName.
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   338
    ].
3727
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   339
    tree := RBParser 
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   340
                parseMethod:source
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   341
                onError:[:aString :pos | self halt. ^self]. 
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   342
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   343
    replacer executeTree: tree.
3724
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   344
    newSource := replacer executeReplacementsInSource:source.
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   345
    "/ self halt.
3727
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   346
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   347
    "/ to verify, check parsability    
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   348
    RBParser 
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   349
        parseMethod:newSource
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   350
        onError:[:aString :pos | self halt.].           
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   351
3724
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   352
    source := newSource.
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   353
!
b29024117368 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3714
diff changeset
   354
3714
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   355
rewriteEOLComments
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   356
    |tree parser eolComments|
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   357
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   358
    parser := Parser new.
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   359
    parser saveComments:true.
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   360
    parser parseMethod:source in:methodClass ignoreErrors:true ignoreWarnings:true.
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   361
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   362
    tree := parser tree.
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   363
    eolComments := parser comments select:[:each | each isEndOfLineComment].
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   364
    "/ start with the last (so I don't have to update the positions)
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   365
    eolComments sort:[:a :b | a startPosition < b startPosition].
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   366
    eolComments reverseDo:[:each |
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   367
        source := (source copyTo:(each endPosition)),'"',(source copyFrom:(each endPosition + 1))
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   368
    ].
3727
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   369
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   370
    "/ to verify, check parsability    
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   371
    RBParser 
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   372
        parseMethod:source
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   373
        onError:[:aString :pos | self halt.].           
3714
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   374
!
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   375
3725
723707412361 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3724
diff changeset
   376
rewriteExceptionHandlers
3727
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   377
    |parser replacer newSource tree|
3725
723707412361 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3724
diff changeset
   378
723707412361 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3724
diff changeset
   379
    "/ all references to namespace variables
723707412361 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3724
diff changeset
   380
    parser := Parser 
723707412361 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3724
diff changeset
   381
                parseMethod:source 
723707412361 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3724
diff changeset
   382
                in:methodClass
723707412361 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3724
diff changeset
   383
                ignoreErrors:false
723707412361 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3724
diff changeset
   384
                ignoreWarnings:false.
723707412361 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3724
diff changeset
   385
723707412361 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3724
diff changeset
   386
    (parser messagesSent includesAny: #( 'answer:do:' 'ignoreIn:' )) ifTrue:[
723707412361 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3724
diff changeset
   387
        self halt
723707412361 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3724
diff changeset
   388
    ].
723707412361 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3724
diff changeset
   389
723707412361 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3724
diff changeset
   390
    replacer := ParseTreeSourceRewriter new.
723707412361 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3724
diff changeset
   391
    replacer alwaysPerformAllSearches:true.
723707412361 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3724
diff changeset
   392
723707412361 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3724
diff changeset
   393
    replacer
723707412361 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3724
diff changeset
   394
        replace: '[| `@temps | ``@.Statements. ] valueNowOrOnUnwindDo: ``@block'
723707412361 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3724
diff changeset
   395
            "->"
723707412361 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3724
diff changeset
   396
           with: '[| `@temps | ``@.Statements. ] ensure: ``@block';
723707412361 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3724
diff changeset
   397
723707412361 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3724
diff changeset
   398
        replace: '[| `@temps | ``@.Statements. ] valueOnUnwindDo: ``@block'
723707412361 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3724
diff changeset
   399
            "->"
723707412361 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3724
diff changeset
   400
           with: '[| `@temps | ``@.Statements. ] ifCurtailed: ``@block';
723707412361 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3724
diff changeset
   401
723707412361 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3724
diff changeset
   402
        replace:'``@err handle:``@handler do: ``@expr'
723707412361 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3724
diff changeset
   403
            "->"
723707412361 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3724
diff changeset
   404
           with: '``@expr on: ``@err do: ``@handler'.
723707412361 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3724
diff changeset
   405
3727
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   406
    tree := RBParser 
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   407
        parseMethod:source
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   408
        onError:[:aString :pos | self halt. ^ self].
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   409
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   410
    (replacer executeTree: tree) ifTrue:[
3725
723707412361 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3724
diff changeset
   411
        newSource := replacer executeReplacementsInSource:source.
723707412361 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3724
diff changeset
   412
"/ self halt.
723707412361 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3724
diff changeset
   413
        source := newSource.
723707412361 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3724
diff changeset
   414
    ].
3727
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   415
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   416
    "/ to verify, check parsability    
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   417
    RBParser 
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   418
        parseMethod:source
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   419
        onError:[:aString :pos | self halt.].           
3725
723707412361 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3724
diff changeset
   420
!
723707412361 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3724
diff changeset
   421
3714
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   422
rewriteGlobalsWithNamespace
3727
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   423
    "obsolete old version - now done in rewriteClassReferences"
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   424
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   425
    |parser namesToRewrite|
3714
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   426
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   427
    namesToRewrite := OrderedCollection new.
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   428
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   429
    parser := Parser new.
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   430
    parser saveComments:true.
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   431
    parser parseMethod:source in:methodClass ignoreErrors:true ignoreWarnings:true.
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   432
    parser tree isNil ifTrue:[ ^ self ].
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   433
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   434
    parser tree variableNodesDo:[:each |
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   435
        |nameInSource|
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   436
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   437
        each isGlobalVariable ifTrue:[
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   438
            (each name includes:$:) ifTrue:[
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   439
                nameInSource := source copyFrom:each startPosition to:each endPosition.
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   440
                (nameInSource includes:$:) ifTrue:[
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   441
                    namesToRewrite add:each.
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   442
                ].
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   443
            ].
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   444
        ].
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   445
    ].
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   446
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   447
    "/ start with the last (so I don't have to update the positions)
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   448
    namesToRewrite sort:[:a :b | a position < b position].
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   449
    namesToRewrite reverseDo:[:each |
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   450
        |idx nameInSource ns nm|
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   451
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   452
        nameInSource := source copyFrom:each startPosition to:each endPosition.
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   453
        idx := nameInSource indexOf:$:.
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   454
        ns := nameInSource copyTo:idx-1.
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   455
        idx := nameInSource indexOf:$: startingAt:idx+1.
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   456
        nm := nameInSource copyFrom:idx+1.
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   457
        (ns = methodClass nameSpace name) ifFalse:[
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   458
            Transcript show:'reference to other namespace'.
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   459
        ] ifTrue:[
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   460
            source := (source copyTo:(each startPosition-1)),nm,(source copyFrom:(each endPosition + 1))
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   461
        ].
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   462
    ].
3727
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   463
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   464
    "/ to verify, check parsability    
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   465
    RBParser 
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   466
        parseMethod:source
b1a0c153b461 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3725
diff changeset
   467
        onError:[:aString :pos | self halt.].           
3714
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   468
!
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   469
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   470
rewriteMethod:methodArg 
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   471
    method := methodArg.
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   472
    source := method source.
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   473
    methodClass := method mclass.
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   474
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   475
    ^ self doRewrite.
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   476
! !
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   477
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   478
!VSEFileSourceWriter class methodsFor:'documentation'!
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   479
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   480
version
3738
b6ed36feefd2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3734
diff changeset
   481
    ^ '$Header: /cvs/stx/stx/libbasic3/VSEFileSourceWriter.st,v 1.8 2015-02-02 16:21:56 cg Exp $'
3714
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   482
!
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   483
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   484
version_CVS
3738
b6ed36feefd2 class: VSEFileSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3734
diff changeset
   485
    ^ '$Header: /cvs/stx/stx/libbasic3/VSEFileSourceWriter.st,v 1.8 2015-02-02 16:21:56 cg Exp $'
3714
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   486
! !
bc74a7bb3a19 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   487