Cface__CStructNode.st
changeset 5 c110eef5b9ef
parent 4 fc74bd43a3eb
child 9 03c7a764d2be
--- 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'!