4 struct ECPGstruct_member
8 struct ECPGstruct_member *next;
14 long size; /* For array it is the number of elements.
15 * For varchar it is the maxsize of the
19 struct ECPGtype *element; /* For an array this is the type
22 struct ECPGstruct_member *members;
23 /* A pointer to a list of members. */
27 /* Everything is malloced. */
28 void ECPGmake_struct_member(char *, struct ECPGtype *, struct ECPGstruct_member **);
29 struct ECPGtype *ECPGmake_simple_type(enum ECPGttype, long);
30 struct ECPGtype *ECPGmake_varchar_type(enum ECPGttype, long);
31 struct ECPGtype *ECPGmake_array_type(struct ECPGtype *, long);
32 struct ECPGtype *ECPGmake_struct_type(struct ECPGstruct_member *, enum ECPGttype type);
33 struct ECPGstruct_member *ECPGstruct_member_dup(struct ECPGstruct_member *);
36 void ECPGfree_struct_member(struct ECPGstruct_member *);
37 void ECPGfree_type(struct ECPGtype *);
40 The type is dumped as:
41 type-tag <comma> reference-to-variable <comma> arrsize <comma> size <comma>
43 type-tag is one of the simple types or varchar.
44 reference-to-variable can be a reference to a struct element.
45 arrsize is the size of the array in case of array fetches. Otherwise 0.
46 size is the maxsize in case it is a varchar. Otherwise it is the size of
47 the variable (required to do array fetches of structs).
49 void ECPGdump_a_type(FILE *, const char *, struct ECPGtype *, const char *, struct ECPGtype *, const char *, const char *);
51 /* A simple struct to keep a variable and its type. */
58 extern const char *ECPGtype_name(enum ECPGttype typ);
60 /* some stuff for whenever statements */
88 enum ECPGttype type_enum;
97 struct _include_path *next;
105 struct arguments *argsinsert;
106 struct arguments *argsresult;
113 struct this_type *type;
114 struct ECPGstruct_member *struct_member_list;
115 struct typedefs *next;
123 struct _defines *next;
126 /* This is a linked list of the variable names and types. */
130 struct ECPGtype *type;
132 struct variable *next;
137 struct variable *variable;
138 struct variable *indicator;
139 struct arguments *next;
146 struct descriptor *next;
153 struct assignment *next;
156 enum errortype {ET_WARN, ET_ERROR, ET_FATAL};