compiler/TEnvironment.st
changeset 8 eec72263ed75
child 10 2b9beeac547e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/compiler/TEnvironment.st	Mon Sep 14 11:19:10 2015 +0100
@@ -0,0 +1,40 @@
+"{ Package: 'jv:tea/compiler' }"
+
+"{ NameSpace: Smalltalk }"
+
+TNamespaceDefinition subclass:#TEnvironment
+	instanceVariableNames:'provider'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Languages-Tea-Compiler-Model'
+!
+
+!TEnvironment methodsFor:'accessing'!
+
+provider
+    ^ provider
+!
+
+provider:providerObject
+    "Set provider, an object used to ask for class definitions if
+     class is not yet loaded into the receiver"
+    provider := providerObject.
+
+    "Modified (comment): / 12-09-2015 / 09:52:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!TEnvironment methodsFor:'lookup by name'!
+
+classOrTraitNamed: className
+    | classOrTrait |
+
+    classOrTrait := super classOrTraitNamed: className.
+    classOrTrait isNil ifTrue:[ 
+        self addElements: (provider definitionForClassNamed: className).
+    ].
+    classOrTrait := super classOrTraitNamed: className.
+    ^ classOrTrait.
+
+    "Created: / 12-09-2015 / 09:48:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+