ProgrammingLanguage: added #id, #lookup and #lookupClass (required by translucent objects) jv
authorJan Vrany <jan.vrany@fit.cvut.cz>
Thu, 17 Mar 2011 15:08:28 +0000
branchjv
changeset 17830 92d4d6a6f813
parent 17829 456b0a794264
child 17831 50663ae5264b
ProgrammingLanguage: added #id, #lookup and #lookupClass (required by translucent objects) Context: added #programmingLanguage
Context.st
ProgrammingLanguage.st
SmalltalkLanguage.st
--- a/Context.st	Mon Mar 14 12:10:14 2011 +0000
+++ b/Context.st	Thu Mar 17 15:08:28 2011 +0000
@@ -651,6 +651,15 @@
     "Modified: 23.10.1996 / 16:18:44 / cg"
 !
 
+programmingLanguage
+
+    ^method
+        ifNotNil:[method programmingLanguage]
+        ifNil:[SmalltalkLanguage instance]
+
+    "Created: / 17-03-2011 / 10:17:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 receiver
     "return the receiver of the context"
 
@@ -2399,7 +2408,7 @@
 !Context class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Context.st 10602 2010-12-20 07:13:27Z vranyj1 $'
+    ^ '$Id: Context.st 10623 2011-03-17 15:08:28Z vranyj1 $'
 !
 
 version_CVS
@@ -2407,9 +2416,7 @@
 !
 
 version_SVN
-    ^ '$Id: Context.st 10602 2010-12-20 07:13:27Z vranyj1 $'
+    ^ '$Id: Context.st 10623 2011-03-17 15:08:28Z vranyj1 $'
 ! !
 
 Context initialize!
-
-
--- a/ProgrammingLanguage.st	Mon Mar 14 12:10:14 2011 +0000
+++ b/ProgrammingLanguage.st	Thu Mar 17 15:08:28 2011 +0000
@@ -203,6 +203,17 @@
 
 !ProgrammingLanguage methodsFor:'accessing'!
 
+id
+
+    "Return an unique integer id of this language.
+     id must be < 32.
+     This id is used as index to various structures used by runtime"
+
+    ^self subclassResponsibility
+
+    "Created: / 17-03-2011 / 10:51:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 imports
 
     "To make it polymorph with NameSpace for
@@ -214,6 +225,13 @@
     "Modified: / 19-07-2010 / 12:14:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
+lookup
+
+    ^self lookupClass instance
+
+    "Created: / 17-03-2011 / 10:57:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 name
     "Answers a human-readable name of myself:
      'Smalltalk' for SmalltalkLanguage,
@@ -278,6 +296,13 @@
     ^ nil
 !
 
+lookupClass
+
+    ^BuiltinLookup
+
+    "Created: / 17-03-2011 / 10:56:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 metaClass
     "will be used for new classes (in the class wizard);
      a fallback here"
@@ -364,6 +389,14 @@
 
 !ProgrammingLanguage methodsFor:'testing'!
 
+isJava
+    "true iff this is the Java language"
+
+    ^ false
+
+    "Created: / 17-03-2011 / 10:16:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 isProgrammingLanguage
 
     ^true
@@ -429,7 +462,7 @@
 !ProgrammingLanguage class methodsFor:'documentation'!
 
 version
-    ^ '$Id: ProgrammingLanguage.st 10604 2011-02-04 23:09:23Z vranyj1 $'
+    ^ '$Id: ProgrammingLanguage.st 10623 2011-03-17 15:08:28Z vranyj1 $'
 !
 
 version_CVS
@@ -437,11 +470,7 @@
 !
 
 version_SVN
-    ^ '$Id: ProgrammingLanguage.st 10604 2011-02-04 23:09:23Z vranyj1 $'
+    ^ '$Id: ProgrammingLanguage.st 10623 2011-03-17 15:08:28Z vranyj1 $'
 ! !
 
 ProgrammingLanguage initialize!
-
-
-
-
--- a/SmalltalkLanguage.st	Mon Mar 14 12:10:14 2011 +0000
+++ b/SmalltalkLanguage.st	Thu Mar 17 15:08:28 2011 +0000
@@ -42,6 +42,14 @@
 
 !SmalltalkLanguage methodsFor:'accessing'!
 
+id
+    "superclass ProgrammingLanguage says that I am responsible to implement this method"
+
+    ^ 1
+
+    "Modified: / 17-03-2011 / 10:54:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 name
     "Answers a human-readable name of myself:
      'Smalltalk' for SmalltalkLanguage,
@@ -219,7 +227,7 @@
 !SmalltalkLanguage class methodsFor:'documentation'!
 
 version
-    ^ '$Id: SmalltalkLanguage.st 10604 2011-02-04 23:09:23Z vranyj1 $'
+    ^ '$Id: SmalltalkLanguage.st 10623 2011-03-17 15:08:28Z vranyj1 $'
 !
 
 version_CVS
@@ -227,11 +235,5 @@
 !
 
 version_SVN
-    ^ '$Id: SmalltalkLanguage.st 10604 2011-02-04 23:09:23Z vranyj1 $'
+    ^ '$Id: SmalltalkLanguage.st 10623 2011-03-17 15:08:28Z vranyj1 $'
 ! !
-
-
-
-
-
-