SmalltalkLanguage.st
author Claus Gittinger <cg@exept.de>
Tue, 21 Aug 2012 19:54:48 +0200
changeset 14328 94db803c2ea9
parent 14324 8cb871b96134
child 14374 8cd2dcaa3b7c
permissions -rw-r--r--
added: #methodTemplate #versionMethodTemplateForCVS
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11965
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
     1
"{ Package: 'stx:libbasic' }"
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
     2
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
     3
ProgrammingLanguage subclass:#SmalltalkLanguage
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
     4
	instanceVariableNames:''
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
     5
	classVariableNames:''
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
     6
	poolDictionaries:''
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
     7
	category:'Kernel-Languages'
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
     8
!
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
     9
12100
8b25e69db2f0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12098
diff changeset
    10
!SmalltalkLanguage class methodsFor:'documentation'!
8b25e69db2f0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12098
diff changeset
    11
8b25e69db2f0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12098
diff changeset
    12
documentation
8b25e69db2f0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12098
diff changeset
    13
"
8b25e69db2f0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12098
diff changeset
    14
    provide info about which tools are to be used for smalltalk code
8b25e69db2f0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12098
diff changeset
    15
"
8b25e69db2f0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12098
diff changeset
    16
! !
11965
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    17
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    18
!SmalltalkLanguage methodsFor:'accessing'!
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    19
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    20
name
12098
7ce2b74e3ec7 more queries; code cleanup
Claus Gittinger <cg@exept.de>
parents: 12057
diff changeset
    21
    "Answers a human-readable name of myself:
7ce2b74e3ec7 more queries; code cleanup
Claus Gittinger <cg@exept.de>
parents: 12057
diff changeset
    22
     'Smalltalk' for SmalltalkLanguage,
7ce2b74e3ec7 more queries; code cleanup
Claus Gittinger <cg@exept.de>
parents: 12057
diff changeset
    23
     'Ruby' for RubyLanguage
7ce2b74e3ec7 more queries; code cleanup
Claus Gittinger <cg@exept.de>
parents: 12057
diff changeset
    24
     ..."
11965
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    25
12502
8639c2efa0df changed: #name
Claus Gittinger <cg@exept.de>
parents: 12325
diff changeset
    26
    ^ 'Smalltalk'
11965
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    27
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    28
    "Modified: / 16-08-2009 / 10:53:35 / Jan Vrany <vranyj1@fel.cvut.cz>"
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    29
!
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    30
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    31
sourceFileSuffix
12098
7ce2b74e3ec7 more queries; code cleanup
Claus Gittinger <cg@exept.de>
parents: 12057
diff changeset
    32
    "
7ce2b74e3ec7 more queries; code cleanup
Claus Gittinger <cg@exept.de>
parents: 12057
diff changeset
    33
     Answers a default suffix for source files, i.e.
7ce2b74e3ec7 more queries; code cleanup
Claus Gittinger <cg@exept.de>
parents: 12057
diff changeset
    34
     'st' for Smalltalk, 'js' for JavaScript or 'rb' for Ruby'
7ce2b74e3ec7 more queries; code cleanup
Claus Gittinger <cg@exept.de>
parents: 12057
diff changeset
    35
    "
11965
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    36
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    37
    ^'st'
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    38
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    39
    "Modified: / 16-08-2009 / 10:53:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    40
! !
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    41
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    42
!SmalltalkLanguage methodsFor:'accessing - classes'!
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    43
13259
47d0a5a72bb9 codeGen
Claus Gittinger <cg@exept.de>
parents: 13253
diff changeset
    44
codeGeneratorClass
14324
8cb871b96134 added: #versionMethodTemplateForCVS
Claus Gittinger <cg@exept.de>
parents: 14323
diff changeset
    45
    "Answers a class that can generate code"
13249
076097e9faab added: #codeGeneratorToolClass
Claus Gittinger <cg@exept.de>
parents: 12524
diff changeset
    46
13253
4112eccb68e0 changed: #codeGeneratorToolClass
Claus Gittinger <cg@exept.de>
parents: 13249
diff changeset
    47
    ^ SmalltalkCodeGeneratorTool
4112eccb68e0 changed: #codeGeneratorToolClass
Claus Gittinger <cg@exept.de>
parents: 13249
diff changeset
    48
13259
47d0a5a72bb9 codeGen
Claus Gittinger <cg@exept.de>
parents: 13253
diff changeset
    49
    "Created: / 30-01-2011 / 15:19:52 / cg"
13249
076097e9faab added: #codeGeneratorToolClass
Claus Gittinger <cg@exept.de>
parents: 12524
diff changeset
    50
!
076097e9faab added: #codeGeneratorToolClass
Claus Gittinger <cg@exept.de>
parents: 12524
diff changeset
    51
11965
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    52
compilerClass
12098
7ce2b74e3ec7 more queries; code cleanup
Claus Gittinger <cg@exept.de>
parents: 12057
diff changeset
    53
    "Answer a class suitable for compiling a source code in 'my' language"
11965
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    54
12098
7ce2b74e3ec7 more queries; code cleanup
Claus Gittinger <cg@exept.de>
parents: 12057
diff changeset
    55
    ^ Smalltalk::Compiler
11965
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    56
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    57
    "Modified: / 21-08-2009 / 13:02:27 / Jan Vrany <vranyj1@fel.cvut.cz>"
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    58
!
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    59
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    60
explainerClass
12098
7ce2b74e3ec7 more queries; code cleanup
Claus Gittinger <cg@exept.de>
parents: 12057
diff changeset
    61
    "Answers a class used by browser and debugger to
7ce2b74e3ec7 more queries; code cleanup
Claus Gittinger <cg@exept.de>
parents: 12057
diff changeset
    62
     show some hints about the code. It is OK to return
7ce2b74e3ec7 more queries; code cleanup
Claus Gittinger <cg@exept.de>
parents: 12057
diff changeset
    63
     nil, which means that there is no explainer for given language."
11965
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    64
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    65
    "return nil by default"
12098
7ce2b74e3ec7 more queries; code cleanup
Claus Gittinger <cg@exept.de>
parents: 12057
diff changeset
    66
    ^ Smalltalk::Explainer
11965
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    67
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    68
    "Created: / 21-08-2009 / 08:49:29 / Jan Vrany <vranyj1@fel.cvut.cz>"
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    69
!
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    70
12098
7ce2b74e3ec7 more queries; code cleanup
Claus Gittinger <cg@exept.de>
parents: 12057
diff changeset
    71
formatterClass
7ce2b74e3ec7 more queries; code cleanup
Claus Gittinger <cg@exept.de>
parents: 12057
diff changeset
    72
    "Answer a class suitable for prettyPrinting (indenting) code in 'my' language.
7ce2b74e3ec7 more queries; code cleanup
Claus Gittinger <cg@exept.de>
parents: 12057
diff changeset
    73
     It is ok to return nil, which means that the browser will not be able to prettyprint."
7ce2b74e3ec7 more queries; code cleanup
Claus Gittinger <cg@exept.de>
parents: 12057
diff changeset
    74
7ce2b74e3ec7 more queries; code cleanup
Claus Gittinger <cg@exept.de>
parents: 12057
diff changeset
    75
    ^ Smalltalk::Parser
7ce2b74e3ec7 more queries; code cleanup
Claus Gittinger <cg@exept.de>
parents: 12057
diff changeset
    76
!
7ce2b74e3ec7 more queries; code cleanup
Claus Gittinger <cg@exept.de>
parents: 12057
diff changeset
    77
11965
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    78
parserClass
12098
7ce2b74e3ec7 more queries; code cleanup
Claus Gittinger <cg@exept.de>
parents: 12057
diff changeset
    79
    "Answer a class suitable for parsing a source codein 'my' language"
11965
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    80
12098
7ce2b74e3ec7 more queries; code cleanup
Claus Gittinger <cg@exept.de>
parents: 12057
diff changeset
    81
    ^ Smalltalk::Parser
11965
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    82
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    83
    "Modified: / 21-08-2009 / 13:02:21 / Jan Vrany <vranyj1@fel.cvut.cz>"
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    84
!
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    85
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    86
sourceFileReaderClass
12098
7ce2b74e3ec7 more queries; code cleanup
Claus Gittinger <cg@exept.de>
parents: 12057
diff changeset
    87
    "Answers a class that can be used for reading & compiling source files"
11965
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    88
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    89
    ^SmalltalkChunkFileSourceReader
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    90
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    91
    "Modified: / 16-08-2009 / 12:29:39 / Jan Vrany <vranyj1@fel.cvut.cz>"
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    92
!
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    93
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    94
sourceFileWriterClass
12098
7ce2b74e3ec7 more queries; code cleanup
Claus Gittinger <cg@exept.de>
parents: 12057
diff changeset
    95
    "Answers a class is used for source file writing (i.e. file-out)"
11965
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    96
12107
190b5d206c53 changed:7 methods
Claus Gittinger <cg@exept.de>
parents: 12100
diff changeset
    97
    ^ SmalltalkChunkFileSourceWriter
11965
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    98
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
    99
    "Modified: / 16-08-2009 / 09:51:41 / Jan Vrany <vranyj1@fel.cvut.cz>"
12098
7ce2b74e3ec7 more queries; code cleanup
Claus Gittinger <cg@exept.de>
parents: 12057
diff changeset
   100
!
7ce2b74e3ec7 more queries; code cleanup
Claus Gittinger <cg@exept.de>
parents: 12057
diff changeset
   101
7ce2b74e3ec7 more queries; code cleanup
Claus Gittinger <cg@exept.de>
parents: 12057
diff changeset
   102
syntaxHighlighterClass
7ce2b74e3ec7 more queries; code cleanup
Claus Gittinger <cg@exept.de>
parents: 12057
diff changeset
   103
    "return the class to use for syntaxHighlighting (prettyPrinting) this class -
7ce2b74e3ec7 more queries; code cleanup
Claus Gittinger <cg@exept.de>
parents: 12057
diff changeset
   104
     this can be redefined in special classes, to highlight classes with
7ce2b74e3ec7 more queries; code cleanup
Claus Gittinger <cg@exept.de>
parents: 12057
diff changeset
   105
     Lisp, Prolog, ASN1, Basic :-) or whatever syntax."
7ce2b74e3ec7 more queries; code cleanup
Claus Gittinger <cg@exept.de>
parents: 12057
diff changeset
   106
7ce2b74e3ec7 more queries; code cleanup
Claus Gittinger <cg@exept.de>
parents: 12057
diff changeset
   107
    ^ Smalltalk::SyntaxHighlighter
11965
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   108
! !
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   109
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   110
!SmalltalkLanguage methodsFor:'mimicry'!
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   111
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   112
, anObject
12098
7ce2b74e3ec7 more queries; code cleanup
Claus Gittinger <cg@exept.de>
parents: 12057
diff changeset
   113
    "Emulates symbol behavior. This is sometimes required
14069
14d4beccc66a comment/format in: #,
Claus Gittinger <cg@exept.de>
parents: 13259
diff changeset
   114
     as 'Smalltalk language' is used by legacy code to access
14d4beccc66a comment/format in: #,
Claus Gittinger <cg@exept.de>
parents: 13259
diff changeset
   115
     the current language setting. 
14d4beccc66a comment/format in: #,
Claus Gittinger <cg@exept.de>
parents: 13259
diff changeset
   116
     Future versions should contain class Locale.
11965
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   117
    "
12524
ed8630645e13 changed:
Stefan Vogel <sv@exept.de>
parents: 12502
diff changeset
   118
    <resource: #obsolete>
11965
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   119
12098
7ce2b74e3ec7 more queries; code cleanup
Claus Gittinger <cg@exept.de>
parents: 12057
diff changeset
   120
    self breakPoint:#cg info:'should not be invoked'.
12524
ed8630645e13 changed:
Stefan Vogel <sv@exept.de>
parents: 12502
diff changeset
   121
    ^ Language , anObject
11965
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   122
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   123
    "Created: / 22-08-2009 / 09:33:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
14069
14d4beccc66a comment/format in: #,
Claus Gittinger <cg@exept.de>
parents: 13259
diff changeset
   124
    "Modified (comment): / 01-04-2012 / 13:19:28 / cg"
11965
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   125
!
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   126
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   127
asSymbol
12098
7ce2b74e3ec7 more queries; code cleanup
Claus Gittinger <cg@exept.de>
parents: 12057
diff changeset
   128
    "Returns a language symbol. This is sometimes required
7ce2b74e3ec7 more queries; code cleanup
Claus Gittinger <cg@exept.de>
parents: 12057
diff changeset
   129
     as Smalltalk language is used by legacy code to access
7ce2b74e3ec7 more queries; code cleanup
Claus Gittinger <cg@exept.de>
parents: 12057
diff changeset
   130
     current language. Future versions should contain class
7ce2b74e3ec7 more queries; code cleanup
Claus Gittinger <cg@exept.de>
parents: 12057
diff changeset
   131
     Locale.
11965
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   132
    "
12524
ed8630645e13 changed:
Stefan Vogel <sv@exept.de>
parents: 12502
diff changeset
   133
    <resource: #obsolete>
11965
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   134
12098
7ce2b74e3ec7 more queries; code cleanup
Claus Gittinger <cg@exept.de>
parents: 12057
diff changeset
   135
    self breakPoint:#cg info:'should not be invoked'.
12524
ed8630645e13 changed:
Stefan Vogel <sv@exept.de>
parents: 12502
diff changeset
   136
    ^ Language
11965
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   137
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   138
    "Created: / 22-08-2009 / 09:33:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   139
! !
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   140
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   141
!SmalltalkLanguage methodsFor:'testing'!
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   142
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   143
isSmalltalk
12325
0f0141bdf4a8 changed: #isSmalltalk
Claus Gittinger <cg@exept.de>
parents: 12180
diff changeset
   144
    "true iff I represent the smalltalk language"
11965
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   145
12325
0f0141bdf4a8 changed: #isSmalltalk
Claus Gittinger <cg@exept.de>
parents: 12180
diff changeset
   146
    ^ true
11965
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   147
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   148
    "Created: / 16-08-2009 / 09:01:38 / 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 class methodsFor:'documentation'!
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   152
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   153
version
14328
Claus Gittinger <cg@exept.de>
parents: 14324
diff changeset
   154
    ^ '$Header: /cvs/stx/stx/libbasic/SmalltalkLanguage.st,v 1.19 2012-08-21 17:54:48 cg Exp $'
12047
c425148b0f30 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
   155
!
c425148b0f30 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
   156
c425148b0f30 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
   157
version_CVS
14328
Claus Gittinger <cg@exept.de>
parents: 14324
diff changeset
   158
    ^ '$Header: /cvs/stx/stx/libbasic/SmalltalkLanguage.st,v 1.19 2012-08-21 17:54:48 cg Exp $'
12047
c425148b0f30 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
   159
!
c425148b0f30 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
   160
c425148b0f30 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
   161
version_SVN
12180
e612aeccc282 update #version_SVN with § as keyword expansion character
fm
parents: 12150
diff changeset
   162
    ^'§Id: SmalltalkLanguage.st 10468 2009-08-22 08:34:50Z vranyj1 §'
11965
5e3ee4d6af23 initial checkin
fm
parents:
diff changeset
   163
! !