1.1 --- a/templates/types.h Sun Oct 30 22:33:22 2016 +0100
1.2 +++ b/templates/types.h Mon Oct 31 18:26:36 2016 +0100
1.3 @@ -31,6 +31,7 @@
1.4 Attribute references are references to single attributes. */
1.5
1.6 typedef struct __obj __obj;
1.7 +typedef struct __fragment __fragment;
1.8
1.9 typedef struct __attr
1.10 {
1.11 @@ -49,9 +50,10 @@
1.12 const __ptable * ptable;/* parameter table */
1.13 struct __attr (*fn)(); /* callable details */
1.14
1.15 - int intvalue; /* integer value */
1.16 - double floatvalue; /* floating point value */
1.17 - char * strvalue; /* string value */
1.18 + int intvalue; /* integer value */
1.19 + double floatvalue; /* floating point value */
1.20 + char * strvalue; /* string value */
1.21 + __fragment * data; /* sequence data */
1.22 };
1.23 } __attr;
1.24
1.25 @@ -64,6 +66,14 @@
1.26
1.27 typedef __obj * __ref;
1.28
1.29 +/* Fragments are simple collections of attributes employed by sequence types. */
1.30 +
1.31 +typedef struct __fragment
1.32 +{
1.33 + unsigned int size;
1.34 + __attr attrs[];
1.35 +} __fragment;
1.36 +
1.37 /* Special instance position value. The pos member of __obj refers to the
1.38 special type attribute for classes, indicating which position holds the
1.39 attribute describing the class type. For instances, it is set to zero. */