Cface__Platform.st
changeset 1 b6c0180314d1
child 14 1f730d82496e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cface__Platform.st	Tue May 27 18:55:24 2008 +0000
@@ -0,0 +1,114 @@
+"{ Package: 'cvut:fel/cface' }"
+
+"{ NameSpace: Cface }"
+
+Object subclass:#Platform
+	instanceVariableNames:''
+	classVariableNames:'TheInstance'
+	poolDictionaries:''
+	category:'Cface-Platforms'
+!
+
+
+!Platform class methodsFor:'accessing'!
+
+theInstance
+
+    TheInstance ifNil:
+        [Smalltalk isSmalltalkX 
+            ifTrue:[TheInstance := SmalltalkX new]
+            ifFalse:[self error:'Unsupported platform']].
+    ^TheInstance
+
+    "Created: / 08-02-2008 / 08:17:48 / janfrog"
+! !
+
+!Platform methodsFor:'accessing'!
+
+generator
+
+    ^self generatorClass new
+
+    "Created: / 18-02-2008 / 15:31:25 / janfrog"
+!
+
+generatorCommand
+
+    ^GeneratorCommand new platform: self
+
+    "Created: / 18-02-2008 / 15:34:28 / janfrog"
+!
+
+mappings
+    ^ self mappingClass new
+
+    "Created: / 27-05-2008 / 14:23:37 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+parser
+
+    ^self parserClass
+
+    "Created: / 18-02-2008 / 15:38:41 / janfrog"
+!
+
+typeMapper
+
+    ^self typeMapperClass new
+
+    "Created: / 18-02-2008 / 15:32:12 / janfrog"
+!
+
+typeResolver
+
+    ^self typeResolverClass new
+
+    "Created: / 18-02-2008 / 15:32:05 / janfrog"
+! !
+
+!Platform methodsFor:'accessing - classes'!
+
+generatorClass
+    "raise an error: must be redefined in concrete subclass(es)"
+
+    ^ self subclassResponsibility
+
+    "Created: / 18-02-2008 / 15:31:35 / janfrog"
+!
+
+mappingClass
+
+    ^TypeMapping
+
+    "Created: / 27-05-2008 / 14:22:28 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+parserClass
+
+
+    ^CDefinitionParser
+
+    "Created: / 18-02-2008 / 15:38:12 / janfrog"
+!
+
+typeMapperClass
+    "raise an error: must be redefined in concrete subclass(es)"
+
+    ^TypeMapper
+
+    "Created: / 18-02-2008 / 15:31:55 / janfrog"
+!
+
+typeResolverClass
+    "raise an error: must be redefined in concrete subclass(es)"
+
+    ^TypeResolver
+
+    "Created: / 18-02-2008 / 15:31:46 / janfrog"
+! !
+
+!Platform class methodsFor:'documentation'!
+
+version
+    ^ '$Header: /opt/data/cvs/cvut-fel/cface/Cface__Platform.st,v 1.1 2008/02/26 15:58:07 vranyj1 Exp $'
+! !