Cface__CUserDefinedTypeNode.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 10 Jul 2008 07:31:14 +0000
changeset 5 c110eef5b9ef
parent 2 cfd2c393abfe
child 14 1f730d82496e
permissions -rw-r--r--
- externalization of libraryName (now supports unix & win32 simultaneously) - basi support for accessing structure fields
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'cvut:fel/cface' }"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
"{ NameSpace: Cface }"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
CTypeNode subclass:#CUserDefinedTypeNode
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	instanceVariableNames:'type'
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	classVariableNames:''
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	poolDictionaries:''
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
	category:'Cface-C AST'
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
!
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
!CUserDefinedTypeNode class methodsFor:'documentation'!
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
history
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
    "Created: / 25-10-2007 / 17:44:38 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
    "Created: #name / 25-10-2007 / 17:44:44 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
    "Created: #name: / 25-10-2007 / 17:44:44 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
    "Created: #id / 25-10-2007 / 17:44:44 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
    "Created: #id: / 25-10-2007 / 17:44:44 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
    "Created: #acceptVisitor: / 02-11-2007 / 10:45:15 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
    "Created: #name:id: / 02-11-2007 / 13:50:44 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
    "Deleted: #id / 02-11-2007 / 13:50:50 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
    "Deleted: #id: / 02-11-2007 / 13:50:50 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
    "Deleted: #name / 02-11-2007 / 13:50:50 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
    "Deleted: #name: / 02-11-2007 / 13:50:50 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
    "Created: #names / 02-11-2007 / 13:51:15 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
    "Created: #reference / 02-11-2007 / 13:51:15 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
    "Created: #reference: / 02-11-2007 / 13:51:15 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
    "Created: #names: / 02-11-2007 / 13:52:13 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
    "Deleted: #name:id: / 02-11-2007 / 13:52:15 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
    "Created: #acceptNameVisitor: / 05-11-2007 / 17:34:09 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
    "Deleted: #acceptNameVisitor: / 12-11-2007 / 09:46:54 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
    "Created: #buildTypeCheckFor:on: / 19-12-2007 / 15:24:03 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
    "Created: #checkFundamentalType: / 19-12-2007 / 15:26:44 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
    "Created: #checkDefinedType: / 19-12-2007 / 15:27:03 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
    "Created: #fundamentalTypes / 19-12-2007 / 15:28:32 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
    "Created: #buildTypeCheckForFundamentalType:on: / 19-12-2007 / 15:31:42 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
    "Created: #buildTypeCheckForDefinedType:on: / 19-12-2007 / 15:31:52 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
    "Deleted: #checkDefinedType: / 19-12-2007 / 15:34:33 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
    "Deleted: #checkFundamentalType: / 19-12-2007 / 15:34:35 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
    "Created: #buildObjectCreationOn: / 19-12-2007 / 16:34:44 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
    "Created: #buildObjectCreationFundamentalTypeOn: / 19-12-2007 / 16:35:39 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
    "Created: #buildObjectCreationOnDefinedTypeOn: / 19-12-2007 / 16:36:11 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
    "Created: #buildValueExtractionFor:on: / 19-12-2007 / 17:26:12 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
    "Created: #buildValueExtractionForDefinedType:on: / 19-12-2007 / 17:26:43 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
    "Created: #buildValueExtractionForFundamentalType:on: / 19-12-2007 / 17:26:57 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
    "Created: #buildObjectCreationFor:on: / 19-12-2007 / 17:40:07 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
    "Created: #buildObjectCreationFundamentalTypeFor:on: / 19-12-2007 / 17:40:14 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
    "Created: #buildObjectCreationOnDefinedTypeFor:on: / 19-12-2007 / 17:40:23 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
    "Deleted: #buildObjectCreationOnDefinedTypeFor:on: / 19-12-2007 / 17:40:46 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
    "Created: #buildObjectCreationDefinedTypeFor:on: / 19-12-2007 / 17:42:08 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
    "Deleted: #buildObjectCreationFundamentalTypeOn: / 19-12-2007 / 17:42:14 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
    "Deleted: #buildObjectCreationOn: / 19-12-2007 / 17:42:15 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
    "Deleted: #buildObjectCreationOnDefinedTypeOn: / 19-12-2007 / 17:42:16 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
    "Created: #buildCTypeOn: / 19-12-2007 / 18:13:30 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
    "Created: #buildTypeDescriptionOn: / 20-12-2007 / 12:11:52 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
! !
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
!CUserDefinedTypeNode class methodsFor:'instance creation'!
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
names:aNames
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
    | anIdNode |
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
    anIdNode := self new.
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
    anIdNode names:aNames.
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
    ^anIdNode
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
    "Created: / 02-11-2007 / 13:52:13 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
! !
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
!CUserDefinedTypeNode methodsFor:'accessing'!
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
5
c110eef5b9ef - externalization of libraryName (now supports unix & win32 simultaneously)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    76
cByteSize
c110eef5b9ef - externalization of libraryName (now supports unix & win32 simultaneously)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    77
c110eef5b9ef - externalization of libraryName (now supports unix & win32 simultaneously)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    78
    ^type cByteSize
c110eef5b9ef - externalization of libraryName (now supports unix & win32 simultaneously)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    79
c110eef5b9ef - externalization of libraryName (now supports unix & win32 simultaneously)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    80
    "Created: / 09-07-2008 / 19:39:45 / Jan Vrany <vranyj1@fel.cvut.cz>"
c110eef5b9ef - externalization of libraryName (now supports unix & win32 simultaneously)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    81
!
c110eef5b9ef - externalization of libraryName (now supports unix & win32 simultaneously)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    82
2
cfd2c393abfe Smalltalk/X generator improvements:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    83
ffiTypeSymbol
cfd2c393abfe Smalltalk/X generator improvements:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    84
    "Superclass Cface::CTypeNode says that I am responsible to implement this method"
cfd2c393abfe Smalltalk/X generator improvements:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    85
cfd2c393abfe Smalltalk/X generator improvements:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    86
    ^type ffiTypeSymbol
cfd2c393abfe Smalltalk/X generator improvements:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    87
cfd2c393abfe Smalltalk/X generator improvements:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    88
    "Created: / 03-07-2008 / 22:55:48 / Jan Vrany <vranyj1@fel.cvut.cz>"
cfd2c393abfe Smalltalk/X generator improvements:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    89
!
cfd2c393abfe Smalltalk/X generator improvements:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    90
1
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
type
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
    ^ type
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
    "Created: / 12-02-2008 / 23:21:13 / janfrog"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
!
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
type:something
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
    type := something.
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
    "Created: / 12-02-2008 / 23:21:13 / janfrog"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
! !
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
!CUserDefinedTypeNode methodsFor:'builder'!
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
buildCTypeOn:aBuilder
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
    ((reference references:EnumNode) | (reference references:StructNode) | (reference references:UnionNode)) ifTrue:[
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
      (reference typedef) ifFalse:[
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
        (reference references:EnumNode) ifTrue:[ aBuilder nextPutString:'enum ' ].
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
        (reference references:StructNode) ifTrue:[ aBuilder nextPutString:'struct ' ].
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
        (reference references:UnionNode) ifTrue:[ aBuilder nextPutString:'union ' ].
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
      ].
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
    ].
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   114
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   115
    aBuilder idNamesWith:names.
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   116
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   117
    "Created: / 19-12-2007 / 18:13:30 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   118
!
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   119
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   120
buildObjectCreationDefinedTypeFor:aVariable on:aBuilder
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   121
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   122
    (reference references:EnumNode) ifTrue:[
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   123
      ^aBuilder buildIntegerCreationFor:aVariable.
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   124
    ].
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   125
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   126
    ^aBuilder buildPointerCreationFor:aVariable.
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   127
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   128
    "Created: / 19-12-2007 / 17:42:08 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   129
!
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   130
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   131
buildObjectCreationFor:aVariable on:aBuilder
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   132
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   133
    self fundamentalTypes do:[:aType| (aType = names last) ifTrue:[ ^self buildObjectCreationFundamentalTypeFor:aVariable on:aBuilder. ] ].
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   134
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   135
    ^self buildObjectCreationDefinedTypeFor:aVariable on:aBuilder.
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   136
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   137
    "Created: / 19-12-2007 / 16:34:44 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   138
    "Modified: / 19-12-2007 / 17:44:19 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   139
!
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   140
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   141
buildObjectCreationFundamentalTypeFor:aVariable on:aBuilder
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   142
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   143
      (((names last = 'int') | (names last = 'short') | (names last = 'long')) & ((names includes:'unsigned')not)) ifTrue:[
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   144
        ^aBuilder buildIntegerCreationFor:aVariable.
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   145
      ].
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   146
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   147
      (((names last = 'int') | (names last = 'short') | (names last = 'long') | (names last = 'unsigned')) & ((names includes:'signed')not)) ifTrue:[
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   148
        ^aBuilder buildUnsignedIntegerCreationFor:aVariable.
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   149
      ].
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   150
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   151
      (names last = 'char') ifTrue:[
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   152
        ^aBuilder buildCharacterCreationFor:aVariable.
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   153
      ].
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   154
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   155
      (names last = 'float') ifTrue:[
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   156
        ^aBuilder buildFloatCreationFor:aVariable.
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   157
      ].
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   158
      (names last = 'double') ifTrue:[
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   159
        ^aBuilder buildDoubleCreationFor:aVariable.
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   160
      ].
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   161
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   162
    ^aBuilder buildPointerCreationFor:aVariable.
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   163
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   164
    "Created: / 19-12-2007 / 17:40:14 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   165
!
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   166
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   167
buildTypeCheckFor:aVariable on:aBuilder
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   168
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   169
    self fundamentalTypes do:[:aType| (aType = names last) ifTrue:[ ^self buildTypeCheckForFundamentalType:aVariable on:aBuilder. ] ].
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   170
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   171
    ^self buildTypeCheckForDefinedType:aVariable on:aBuilder.
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   172
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   173
    "Created: / 19-12-2007 / 15:24:02 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   174
!
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   175
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   176
buildTypeCheckForDefinedType:aVariable on:aBuilder
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   177
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   178
    (reference references:EnumNode) ifTrue:[
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   179
      ^aBuilder buildIntegerCheckFor:aVariable.
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   180
    ].
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   181
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   182
    ^aBuilder buildPointerCheckFor:aVariable.
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   183
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   184
    "Created: / 19-12-2007 / 15:31:52 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   185
!
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   186
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   187
buildTypeCheckForFundamentalType:aVariable on:aBuilder
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   188
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   189
      ((names last = 'int') | (names last = 'short') | (names last = 'long') | (names last = 'unsigned')) ifTrue:[
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   190
        ^aBuilder buildIntegerCheckFor:aVariable.
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   191
      ].
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   192
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   193
      (names last = 'char') ifTrue:[
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   194
        ^aBuilder buildCharacterCheckFor:aVariable.
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   195
      ].
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   196
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   197
      (names last = 'float') ifTrue:[
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   198
        ^aBuilder buildFloatCheckFor:aVariable.
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   199
      ].
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   200
      (names last = 'double') ifTrue:[
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   201
        ^aBuilder buildDoubleCheckFor:aVariable.
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   202
      ].
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   203
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   204
    ^aBuilder buildPointerCheckFor:aVariable.
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   205
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   206
    "Created: / 19-12-2007 / 15:31:42 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   207
!
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   208
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   209
buildTypeDescriptionOn:aBuilder
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   210
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   211
    (reference references:Cface::EnumNode) ifTrue:[
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   212
        aBuilder nextPutString:'enumeration '.
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   213
    ].
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   214
    (reference references:Cface::StructNode) ifTrue:[
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   215
        aBuilder nextPutString:'structure '.
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   216
    ].
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   217
    (reference references:Cface::UnionNode) ifTrue:[
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   218
        aBuilder nextPutString:'union '.
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   219
    ].
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   220
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   221
    names do:[:aName| aBuilder nextPutString:aName asString,' ' ].
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   222
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   223
    "Created: / 20-12-2007 / 12:11:52 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   224
!
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   225
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   226
buildValueExtractionFor:aVariable on:aBuilder
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   227
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   228
    self fundamentalTypes do:[:aType| (aType = names last) ifTrue:[ ^self buildValueExtractionForFundamentalType:aVariable on:aBuilder. ] ].
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   229
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   230
    ^self buildValueExtractionForDefinedType:aVariable on:aBuilder.
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   231
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   232
    "Created: / 19-12-2007 / 17:26:12 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   233
!
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   234
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   235
buildValueExtractionForDefinedType:aVariable on:aBuilder
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   236
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   237
    (reference references:EnumNode) ifTrue:[
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   238
      ^aBuilder buildIntegerValueExtractionFor:aVariable.
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   239
    ].
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   240
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   241
    ^aBuilder buildPointerValueExtractionFor:aVariable.
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   242
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   243
    "Created: / 19-12-2007 / 17:26:43 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   244
!
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   245
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   246
buildValueExtractionForFundamentalType:aVariable on:aBuilder
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   247
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   248
      (((names last = 'int') | (names last = 'short') | (names last = 'long')) & ((names includes:'unsigned')not)) ifTrue:[
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   249
        ^aBuilder buildIntegerValueExtractionFor:aVariable.
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   250
      ].
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   251
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   252
      (((names last = 'int') | (names last = 'short') | (names last = 'long') | (names last = 'unsigned')) & ((names includes:'signed')not)) ifTrue:[
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   253
        ^aBuilder buildUnsignedIntegerValueExtractionFor:aVariable.
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   254
      ].
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   255
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   256
      (names last = 'char') ifTrue:[
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   257
        ^aBuilder buildCharacterValueExtractionFor:aVariable.
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   258
      ].
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   259
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   260
      (names last = 'float') ifTrue:[
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   261
        ^aBuilder buildFloatValueExtractionFor:aVariable.
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   262
      ].
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   263
      (names last = 'double') ifTrue:[
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   264
        ^aBuilder buildDoubleValueExtractionFor:aVariable.
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   265
      ].
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   266
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   267
    ^aBuilder buildPointerValueExtractionFor:aVariable.
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   268
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   269
    "Created: / 19-12-2007 / 17:26:57 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   270
! !
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   271
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   272
!CUserDefinedTypeNode methodsFor:'converting'!
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   273
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   274
resolved
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   275
    type 
5
c110eef5b9ef - externalization of libraryName (now supports unix & win32 simultaneously)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   276
        ifNil:[ self error:'User defined type ' , cName , ' not yet resolved' ].
1
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   277
    ^ type
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   278
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   279
    "Created: / 17-02-2008 / 17:56:03 / janfrog"
5
c110eef5b9ef - externalization of libraryName (now supports unix & win32 simultaneously)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   280
    "Modified: / 09-07-2008 / 19:51:28 / Jan Vrany <vranyj1@fel.cvut.cz>"
1
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   281
! !
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   282
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   283
!CUserDefinedTypeNode methodsFor:'printing'!
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   284
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   285
printOn: stream indent: level
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   286
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   287
    stream nextPutAll:  cName
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   288
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   289
    "Created: / 17-02-2008 / 18:18:11 / janfrog"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   290
! !
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   291
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   292
!CUserDefinedTypeNode methodsFor:'private'!
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   293
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   294
fundamentalTypes
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   295
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   296
"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   297
Possible combinations:
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   298
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   299
char
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   300
signed char
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   301
unsigned char
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   302
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   303
int, signed int
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   304
short int, short, signed short int, signed short
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   305
long int, long, signed long int,signed long
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   306
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   307
unsigned int, unsigned
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   308
unsigned short int, unsigned short
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   309
unsigned long int, unsigned long
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   310
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   311
float
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   312
double
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   313
long double
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   314
"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   315
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   316
    ^#('char' 'short' 'int' 'long' 'float' 'double' 'void' 'signed' 'unsigned').
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   317
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   318
    "Created: / 19-12-2007 / 15:28:32 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   319
! !
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   320
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   321
!CUserDefinedTypeNode methodsFor:'visiting'!
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   322
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   323
acceptVisitor:aVisitor 
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   324
    "Double dispatch back to the visitor, passing my type encoded in
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   325
     the selector (visitor pattern)"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   326
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   327
    "stub code automatically generated - please change if required"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   328
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   329
    ^ aVisitor visitCUserDefinedTypeNode:self
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   330
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   331
    "Created: / 02-11-2007 / 13:50:44 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   332
    "Modified: / 12-02-2008 / 22:59:33 / janfrog"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   333
! !
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   334
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   335
!CUserDefinedTypeNode class methodsFor:'documentation'!
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   336
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   337
version
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   338
    ^ '$Header: /opt/data/cvs/cvut-fel/cface/Cface__CUserDefinedTypeNode.st,v 1.1 2008/02/26 15:57:04 vranyj1 Exp $'
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   339
! !