initial checkin
authorfm
Thu, 17 Sep 2009 16:16:46 +0200
changeset 11965 5e3ee4d6af23
parent 11964 ed7b8114d08a
child 11966 545cc62bd696
initial checkin
SmalltalkLanguage.st
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SmalltalkLanguage.st	Thu Sep 17 16:16:46 2009 +0200
@@ -0,0 +1,143 @@
+"{ Package: 'stx:libbasic' }"
+
+ProgrammingLanguage subclass:#SmalltalkLanguage
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Kernel-Languages'
+!
+
+!SmalltalkLanguage class methodsFor:'documentation'!
+
+versionSVN
+    ^'$Id: SmalltalkLanguage.st,v 1.1 2009-09-17 14:16:46 fm Exp $'
+! !
+
+!SmalltalkLanguage methodsFor:'accessing'!
+
+name
+        "
+         Answers a human-readable name of myself:
+         'Smalltalk' for SmalltalkLanguage,
+         'Ruby' for RubyLanguage...
+         "
+
+    ^'Smalltalk'
+
+    "Modified: / 16-08-2009 / 10:53:35 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+sourceFileSuffix
+        "
+         Answers a default suffix for source files, i.e.
+         'st' for Smalltalk, 'js' for JavaScript or 'rb' for Ruby'
+         "
+
+    ^'st'
+
+    "Modified: / 16-08-2009 / 10:53:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!SmalltalkLanguage methodsFor:'accessing - classes'!
+
+compilerClass
+    "
+        Answer a class suitable for compiling a source code
+        in 'my' language
+    "
+
+    ^Smalltalk::Compiler
+
+    "Modified: / 21-08-2009 / 13:02:27 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+explainerClass
+
+    "
+        Answers a class used by browser and debugger to
+        show some hints about the code. It is OK to return
+        nil, which means that there is no explainer for given
+        language.
+    "
+
+    "return nil by default"
+    ^Explainer
+
+    "Created: / 21-08-2009 / 08:49:29 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+parserClass
+    "
+        Answer a class suitable for parsing a source code
+        in 'my' language
+    "
+
+    ^Smalltalk::Parser
+
+    "Modified: / 21-08-2009 / 13:02:21 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+sourceFileReaderClass
+        "
+         Answers a class that can be used for
+         reading & compiling source files
+         "
+
+    ^SmalltalkChunkFileSourceReader
+
+    "Modified: / 16-08-2009 / 12:29:39 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+sourceFileWriterClass
+        "
+         Answers a class is used for source file
+         writing (i.e. file-out)
+         "
+
+    ^SmalltalkChunkFileSourceWriter
+
+    "Modified: / 16-08-2009 / 09:51:41 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!SmalltalkLanguage methodsFor:'mimicry'!
+
+, anObject
+    "
+        Emulates symbol behavior. This is sometimes required
+        as Smalltalk language is used by legacy code to access
+        current language. Future versions should contain class
+        Locale.
+    "
+
+    ^Language , anObject
+
+    "Created: / 22-08-2009 / 09:33:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+asSymbol
+    "
+        Returns a language symbol. This is sometimes required
+        as Smalltalk language is used by legacy code to access
+        current language. Future versions should contain class
+        Locale.
+    "
+
+    ^Language
+
+    "Created: / 22-08-2009 / 09:33:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!SmalltalkLanguage methodsFor:'testing'!
+
+isSmalltalk
+
+    ^true
+
+    "Created: / 16-08-2009 / 09:01:38 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!SmalltalkLanguage class methodsFor:'documentation'!
+
+version
+    ^ '$Header: /cvs/stx/stx/libbasic/SmalltalkLanguage.st,v 1.1 2009-09-17 14:16:46 fm Exp $'
+! !