Cface__Platform.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Mon, 06 Jul 2015 07:18:24 +0100
changeset 36 4e586238a9f7
parent 32 d7464405cbda
child 43 9327987437ae
permissions -rw-r--r--
Fix in class generator (MethofDefinitionChange>>classVariableNames: now takes collection, not string)

"{ Package: 'jv:cface' }"

"{ NameSpace: Cface }"

Object subclass:#Platform
	instanceVariableNames:''
	classVariableNames:'TheInstance'
	poolDictionaries:''
	category:'Cface-Platforms'
!


!Platform class methodsFor:'accessing'!

theInstance

    TheInstance ifNil:
        [Smalltalk isSmalltalkX 
            ifTrue:[TheInstance := Cface::SmalltalkX new]
            ifFalse:[self error:'Unsupported platform']].
    ^TheInstance

    "Created: / 08-02-2008 / 08:17:48 / janfrog"
    "Modified: / 05-09-2012 / 10:57:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!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
    ^ '$Id$'
!

version_SVN
    ^ '$Id$'
! !