Cface__CDerivedTypeNode.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 03 Jul 2008 22:00:07 +0000
changeset 2 cfd2c393abfe
parent 1 b6c0180314d1
child 4 fc74bd43a3eb
permissions -rw-r--r--
Smalltalk/X generator improvements: - generate C enums as SharedPools with accessors - generate externa function calls using FFI. Not yet finished! - CairoMappings improved.

"{ Package: 'cvut:fel/cface' }"

"{ NameSpace: Cface }"

CTypeNode subclass:#CDerivedTypeNode
	instanceVariableNames:'smalltalkNamespace smalltalkPackage smalltalkCategory'
	classVariableNames:''
	poolDictionaries:''
	category:'Cface-C AST'
!


!CDerivedTypeNode methodsFor:'accessing'!

smalltalkCategory
    ^ smalltalkCategory ifNil:
        [self smalltalkNamespace , ' - C Types']

    "Created: / 03-07-2008 / 21:10:35 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

smalltalkCategory:something
    smalltalkCategory := something.

    "Created: / 03-07-2008 / 21:10:35 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

smalltalkClass

    ^self smalltalkName

    "Created: / 17-02-2008 / 20:47:40 / janfrog"
!

smalltalkClass: className

    self smalltalkName: className

    "Created: / 17-02-2008 / 20:47:32 / janfrog"
!

smalltalkClassNameWithNamespace

    ^self smalltalkNamespace isNilOrEmptyCollection
        ifTrue:[self smalltalkClass]
        ifFalse:[self smalltalkNamespace , '::' , self smalltalkClass]

    "Created: / 03-07-2008 / 20:29:41 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

smalltalkNamespace
    ^ smalltalkNamespace

    "Created: / 17-02-2008 / 20:47:13 / janfrog"
!

smalltalkNamespace:something
    smalltalkNamespace := something.

    "Created: / 17-02-2008 / 20:47:13 / janfrog"
!

smalltalkPackage
    ^ smalltalkPackage

    "Created: / 03-07-2008 / 21:10:29 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

smalltalkPackage:something
    smalltalkPackage := something.

    "Created: / 03-07-2008 / 21:10:29 / Jan Vrany <vranyj1@fel.cvut.cz>"
! !

!CDerivedTypeNode methodsFor:'printing'!

printOn: stream indent: level

    self smalltalkNamespace ifNotNil:
        [stream nextPutAll:';; Namespace: '; nextPutAll: self smalltalkNamespace; cr; next: level put: Character tab].
    self smalltalkClass ifNotNil:
        [stream nextPutAll:';; Class: '; nextPutAll: self smalltalkClass; cr; next: level put: Character tab].

    "Created: / 18-02-2008 / 14:33:01 / janfrog"
! !

!CDerivedTypeNode methodsFor:'testing'!

isAnonymous

    ^cName isNil

    "Created: / 17-02-2008 / 22:23:25 / janfrog"
! !

!CDerivedTypeNode class methodsFor:'documentation'!

version
    ^ '$Header: /opt/data/cvs/cvut-fel/cface/Cface__CDerivedTypeNode.st,v 1.1 2008/02/26 15:59:26 vranyj1 Exp $'
! !