--- a/Cface__CStructNode.st Fri Jul 04 12:05:15 2008 +0000
+++ b/Cface__CStructNode.st Thu Jul 10 07:31:14 2008 +0000
@@ -2,8 +2,8 @@
"{ NameSpace: Cface }"
-CDerivedTypeNode subclass:#CStructNode
- instanceVariableNames:'fields local typedef'
+CStructuredNode subclass:#CStructNode
+ instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
category:'Cface-C AST'
@@ -46,57 +46,21 @@
!CStructNode methodsFor:'accessing'!
+cByteSize
+
+ ^fields
+ inject:0
+ into:[:size :field|size + field type cByteSize]
+
+ "Created: / 09-07-2008 / 19:40:25 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
ffiTypeSymbol
"Superclass Cface::CTypeNode says that I am responsible to implement this method"
^ #struct
"Created: / 03-07-2008 / 22:54:39 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-fields
- ^ fields
-
- "Created: / 25-10-2007 / 17:13:34 / haja"
-!
-
-fields:something
- fields := something.
-
- "Created: / 25-10-2007 / 17:13:34 / haja"
-!
-
-local
- ^ local
-
- "Created: / 15-11-2007 / 14:50:46 / haja"
-!
-
-local:something
- local := something.
-
- "Created: / 15-11-2007 / 14:50:46 / haja"
-!
-
-typedef
- ^ typedef
-
- "Created: / 05-12-2007 / 21:01:16 / haja"
-!
-
-typedef:something
- typedef := something.
-
- "Created: / 05-12-2007 / 21:01:16 / haja"
-! !
-
-!CStructNode methodsFor:'builder'!
-
-buildTypeDescriptionOn:aBuilder
-
- aBuilder buildStructNode:name with:fields.
-
- "Created: / 20-12-2007 / 12:14:53 / haja"
! !
!CStructNode methodsFor:'testing'!