experiments/JavaByteCodeSteppableInterpreter.st
author vranyj1
Mon, 10 Dec 2012 20:27:49 +0000
branchdevelopment
changeset 1866 7f13fe06e19d
parent 1818 2e5ed72e7dfd
child 1880 27b932afa4a7
permissions -rw-r--r--
Syntax fixed in extensions.st
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1462
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
     1
"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
     2
 COPYRIGHT (c) 1996-2011 by Claus Gittinger
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
     3
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
     4
 New code and modifications done at SWING Research Group [1]:
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
     5
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
     6
 COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
     7
                            SWING Research Group, Czech Technical University in Prague
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
     8
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
     9
 This software is furnished under a license and may be used
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    10
 only in accordance with the terms of that license and with the
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    11
 inclusion of the above copyright notice.   This software may not
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    12
 be provided or otherwise made available to, or used by, any
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    13
 other person.  No title to or ownership of the software is
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    14
 hereby transferred.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    15
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    16
 [1] Code written at SWING Research Group contains a signature
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    17
     of one of the above copright owners. For exact set of such code,
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    18
     see the differences between this version and version stx:libjava
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    19
     as of 1.9.2010
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    20
"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    21
"{ Package: 'stx:libjava/experiments' }"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    22
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    23
JavaByteCodeInterpreter subclass:#JavaByteCodeSteppableInterpreter
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    24
	instanceVariableNames:'interpretInnerHook'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    25
	classVariableNames:''
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    26
	poolDictionaries:''
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    27
	category:'Languages-Java-Bytecode'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    28
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    29
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    30
!JavaByteCodeSteppableInterpreter class methodsFor:'documentation'!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    31
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    32
copyright
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    33
"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    34
 COPYRIGHT (c) 1996-2011 by Claus Gittinger
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    35
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    36
 New code and modifications done at SWING Research Group [1]:
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    37
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    38
 COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    39
                            SWING Research Group, Czech Technical University in Prague
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    40
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    41
 This software is furnished under a license and may be used
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    42
 only in accordance with the terms of that license and with the
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    43
 inclusion of the above copyright notice.   This software may not
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    44
 be provided or otherwise made available to, or used by, any
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    45
 other person.  No title to or ownership of the software is
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    46
 hereby transferred.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    47
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    48
 [1] Code written at SWING Research Group contains a signature
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    49
     of one of the above copright owners. For exact set of such code,
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    50
     see the differences between this version and version stx:libjava
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    51
     as of 1.9.2010
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    52
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    53
"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    54
! !
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    55
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    56
!JavaByteCodeSteppableInterpreter methodsFor:'accessing'!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    57
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    58
byteCode
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    59
^ byteCode.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    60
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    61
    "Created: / 01-04-2011 / 16:18:42 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    62
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    63
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    64
constantPool
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    65
^constantPool.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    66
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    67
    "Created: / 01-04-2011 / 16:20:18 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    68
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    69
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    70
context
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    71
    ^ context.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    72
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    73
    "Created: / 01-04-2011 / 16:20:07 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    74
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    75
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    76
currentOp
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    77
    ^ op.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    78
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    79
    "Created: / 01-04-2011 / 16:18:56 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    80
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    81
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    82
instructionPointer
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    83
^ instrPointer.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    84
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    85
    "Created: / 01-04-2011 / 16:19:41 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    86
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    87
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    88
method
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    89
    ^ method.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    90
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    91
    "Created: / 01-04-2011 / 16:20:28 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    92
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    93
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    94
numArgs
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    95
    ^ numArgs.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    96
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    97
    "Created: / 01-04-2011 / 16:19:12 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    98
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    99
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   100
numVars
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   101
^numVars.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   102
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   103
    "Created: / 01-04-2011 / 16:19:07 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   104
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   105
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   106
programCounter
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   107
^pc.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   108
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   109
    "Created: / 01-04-2011 / 16:20:44 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   110
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   111
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   112
receiver
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   113
^ receiver.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   114
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   115
    "Created: / 01-04-2011 / 16:19:59 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   116
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   117
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   118
stackPointer
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   119
^ sp.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   120
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   121
    "Created: / 01-04-2011 / 16:18:23 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   122
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   123
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   124
wide
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   125
    ^ wide.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   126
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   127
    "Created: / 01-04-2011 / 16:19:26 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   128
! !
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   129
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   130
!JavaByteCodeSteppableInterpreter methodsFor:'interpretation'!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   131
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   132
enterProcessingLoop
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   133
"nothing done here (yet?), call interpretNext"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   134
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   135
    "Created: / 31-03-2011 / 16:40:39 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   136
    "Modified: / 01-04-2011 / 16:13:49 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   137
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   138
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   139
hasFinished
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   140
    ^ leaveProcessor.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   141
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   142
    "Created: / 31-03-2011 / 22:53:55 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   143
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   144
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   145
interpret: aMethod receiver: aReceiver arguments: args 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   146
    self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   147
        log: ('Invoking method ' , aMethod name , ' on ' , aReceiver printString 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   148
                , ' with ' , args printString).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   149
    super 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   150
        interpret: aMethod
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   151
        receiver: aReceiver
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   152
        arguments: args.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   153
    ^ self.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   154
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   155
    "Created: / 17-03-2011 / 17:25:01 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   156
    "Modified: / 01-04-2011 / 16:10:28 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   157
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   158
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   159
interpretInner: aJavaMethod receiver: aReceiver arguments: arguments 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   160
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   161
    interpretInnerHook ifNil: 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   162
            [ ^ super 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   163
                interpretInner: aJavaMethod
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   164
                receiver: aReceiver
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   165
                arguments: arguments ]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   166
        ifNotNil: 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   167
            [ ^ interpretInnerHook 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   168
                with: aJavaMethod
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   169
                with: aReceiver
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   170
                with: arguments ].
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   171
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   172
    "Created: / 31-03-2011 / 16:41:14 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   173
    "Modified: / 01-04-2011 / 16:15:22 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   174
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   175
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   176
interpretInnerHook: threeArgBlock 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   177
    "args: method receiver arguments"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   178
    
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   179
    interpretInnerHook := threeArgBlock.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   180
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   181
    "Created: / 31-03-2011 / 22:50:44 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   182
    "Modified: / 08-04-2011 / 14:49:04 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   183
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   184
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   185
interpretNext
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   186
    leaveProcessor ifTrue: [ ^ self interpretationFinished ].
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   187
    Context cannotReturnSignal handle: [:ex | ^ ex parameter ]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   188
        do: 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   189
            [ instrPointer := pc.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   190
            op := byteCode at: pc.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   191
            pc := pc + 1.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   192
            self switch: op. ].
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   193
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   194
    "Created: / 31-03-2011 / 16:41:14 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   195
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   196
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   197
returnValue
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   198
    ^ retVal.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   199
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   200
    "Created: / 31-03-2011 / 22:53:42 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   201
! !
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   202
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   203
!JavaByteCodeSteppableInterpreter class methodsFor:'documentation'!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   204
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   205
version_SVN
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   206
    ^ '$Id$'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   207
! !