SmalltalkLanguage.st
author Claus Gittinger <cg@exept.de>
Fri, 02 Oct 2009 02:08:10 +0200
changeset 12092 4e065b823c40
parent 12057 df5241c6b1df
child 12098 7ce2b74e3ec7
permissions -rw-r--r--
added: #string
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12047
c425148b0f30 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
     1
"
c425148b0f30 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
     2
 COPYRIGHT (c) 2009 by eXept Software AG
c425148b0f30 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
     3
              All Rights Reserved
c425148b0f30 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
     4
c425148b0f30 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
     5
 This software is furnished under a license and may be used
c425148b0f30 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
     6
 only in accordance with the terms of that license and with the
c425148b0f30 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
c425148b0f30 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
     8
 be provided or otherwise made available to, or used by, any
c425148b0f30 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
     9
 other person.  No title to or ownership of the software is
c425148b0f30 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
    10
 hereby transferred.
c425148b0f30 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
    11
"
11965
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    12
"{ Package: 'stx:libbasic' }"
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    13
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    14
ProgrammingLanguage subclass:#SmalltalkLanguage
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    15
	instanceVariableNames:''
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    16
	classVariableNames:''
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    17
	poolDictionaries:''
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    18
	category:'Kernel-Languages'
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    19
!
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    20
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    21
!SmalltalkLanguage class methodsFor:'documentation'!
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    22
12047
c425148b0f30 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
    23
copyright
c425148b0f30 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
    24
"
c425148b0f30 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
    25
 COPYRIGHT (c) 2009 by eXept Software AG
c425148b0f30 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
    26
              All Rights Reserved
c425148b0f30 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
    27
c425148b0f30 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
    28
 This software is furnished under a license and may be used
c425148b0f30 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
    29
 only in accordance with the terms of that license and with the
c425148b0f30 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
    30
 inclusion of the above copyright notice.   This software may not
c425148b0f30 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
    31
 be provided or otherwise made available to, or used by, any
c425148b0f30 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
    32
 other person.  No title to or ownership of the software is
c425148b0f30 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
    33
 hereby transferred.
c425148b0f30 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
    34
"
11965
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    35
! !
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    36
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    37
!SmalltalkLanguage methodsFor:'accessing'!
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    38
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    39
name
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    40
        "
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    41
         Answers a human-readable name of myself:
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    42
         'Smalltalk' for SmalltalkLanguage,
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    43
         'Ruby' for RubyLanguage...
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    44
         "
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    45
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    46
    ^'Smalltalk'
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    47
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    48
    "Modified: / 16-08-2009 / 10:53:35 / Jan Vrany <vranyj1@fel.cvut.cz>"
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    49
!
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    50
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    51
sourceFileSuffix
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    52
        "
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    53
         Answers a default suffix for source files, i.e.
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    54
         'st' for Smalltalk, 'js' for JavaScript or 'rb' for Ruby'
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    55
         "
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    56
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    57
    ^'st'
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    58
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    59
    "Modified: / 16-08-2009 / 10:53:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    60
! !
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    61
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    62
!SmalltalkLanguage methodsFor:'accessing - classes'!
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    63
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    64
compilerClass
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    65
    "
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    66
        Answer a class suitable for compiling a source code
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    67
        in 'my' language
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    68
    "
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    69
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    70
    ^Smalltalk::Compiler
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    71
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    72
    "Modified: / 21-08-2009 / 13:02:27 / Jan Vrany <vranyj1@fel.cvut.cz>"
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    73
!
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    74
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    75
explainerClass
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    76
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    77
    "
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    78
        Answers a class used by browser and debugger to
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    79
        show some hints about the code. It is OK to return
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    80
        nil, which means that there is no explainer for given
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    81
        language.
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    82
    "
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    83
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    84
    "return nil by default"
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    85
    ^Explainer
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    86
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    87
    "Created: / 21-08-2009 / 08:49:29 / Jan Vrany <vranyj1@fel.cvut.cz>"
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    88
!
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    89
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    90
parserClass
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    91
    "
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    92
        Answer a class suitable for parsing a source code
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    93
        in 'my' language
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    94
    "
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    95
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    96
    ^Smalltalk::Parser
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    97
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    98
    "Modified: / 21-08-2009 / 13:02:21 / Jan Vrany <vranyj1@fel.cvut.cz>"
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    99
!
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   100
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   101
sourceFileReaderClass
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   102
        "
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   103
         Answers a class that can be used for
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   104
         reading & compiling source files
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   105
         "
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   106
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   107
    ^SmalltalkChunkFileSourceReader
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   108
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   109
    "Modified: / 16-08-2009 / 12:29:39 / Jan Vrany <vranyj1@fel.cvut.cz>"
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   110
!
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   111
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   112
sourceFileWriterClass
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   113
        "
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   114
         Answers a class is used for source file
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   115
         writing (i.e. file-out)
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   116
         "
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   117
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   118
    ^SmalltalkChunkFileSourceWriter
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   119
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   120
    "Modified: / 16-08-2009 / 09:51:41 / Jan Vrany <vranyj1@fel.cvut.cz>"
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   121
! !
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   122
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   123
!SmalltalkLanguage methodsFor:'mimicry'!
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   124
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   125
, anObject
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   126
    "
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   127
        Emulates symbol behavior. This is sometimes required
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   128
        as Smalltalk language is used by legacy code to access
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   129
        current language. Future versions should contain class
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   130
        Locale.
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   131
    "
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   132
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   133
    ^Language , anObject
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   134
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   135
    "Created: / 22-08-2009 / 09:33:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   136
!
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   137
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   138
asSymbol
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   139
    "
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   140
        Returns a language symbol. This is sometimes required
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   141
        as Smalltalk language is used by legacy code to access
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   142
        current language. Future versions should contain class
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   143
        Locale.
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   144
    "
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   145
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   146
    ^Language
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   147
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   148
    "Created: / 22-08-2009 / 09:33:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   149
! !
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   150
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   151
!SmalltalkLanguage methodsFor:'testing'!
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   152
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   153
isSmalltalk
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   154
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   155
    ^true
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   156
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   157
    "Created: / 16-08-2009 / 09:01:38 / Jan Vrany <vranyj1@fel.cvut.cz>"
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   158
! !
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   159
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   160
!SmalltalkLanguage class methodsFor:'documentation'!
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   161
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   162
version
12057
df5241c6b1df changed: #version_SVN
fm
parents: 12047
diff changeset
   163
    ^ '$Header: /cvs/stx/stx/libbasic/SmalltalkLanguage.st,v 1.4 2009-09-30 12:06:45 fm Exp $'
12047
c425148b0f30 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
   164
!
c425148b0f30 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
   165
c425148b0f30 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
   166
version_CVS
12057
df5241c6b1df changed: #version_SVN
fm
parents: 12047
diff changeset
   167
    ^ '$Header: /cvs/stx/stx/libbasic/SmalltalkLanguage.st,v 1.4 2009-09-30 12:06:45 fm Exp $'
12047
c425148b0f30 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
   168
!
c425148b0f30 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
   169
c425148b0f30 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
   170
version_SVN
12057
df5241c6b1df changed: #version_SVN
fm
parents: 12047
diff changeset
   171
    ^'Id: SmalltalkLanguage.st 10468 2009-08-22 08:34:50Z vranyj1 '
11965
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   172
! !