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
17 char *struct_sizeof; /* For a struct this is the sizeof() type as string */
20 struct ECPGtype *element; /* For an array this is the type
23 struct ECPGstruct_member *members;
24 /* A pointer to a list of members. */
28 /* Everything is malloced. */
29 void ECPGmake_struct_member(char *, struct ECPGtype *, struct ECPGstruct_member **);
30 struct ECPGtype *ECPGmake_simple_type(enum ECPGttype, long);
31 struct ECPGtype *ECPGmake_varchar_type(enum ECPGttype, long);
32 struct ECPGtype *ECPGmake_array_type(struct ECPGtype *, long);
33 struct ECPGtype *ECPGmake_struct_type(struct ECPGstruct_member *, enum ECPGttype, char *);
34 struct ECPGstruct_member *ECPGstruct_member_dup(struct ECPGstruct_member *);
37 void ECPGfree_struct_member(struct ECPGstruct_member *);
38 void ECPGfree_type(struct ECPGtype *);
41 The type is dumped as:
42 type-tag <comma> reference-to-variable <comma> arrsize <comma> size <comma>
44 type-tag is one of the simple types or varchar.
45 reference-to-variable can be a reference to a struct element.
46 arrsize is the size of the array in case of array fetches. Otherwise 0.
47 size is the maxsize in case it is a varchar. Otherwise it is the size of
48 the variable (required to do array fetches of structs).
50 void ECPGdump_a_type(FILE *, const char *, struct ECPGtype *, const char *, struct ECPGtype *, const char *, const char *, const long, const char *, const char *);
52 /* A simple struct to keep a variable and its type. */
55 struct ECPGtype *type;
59 extern const char *ECPGtype_name(enum ECPGttype type);
61 /* some stuff for whenever statements */
89 enum ECPGttype type_enum;
99 struct _include_path *next;
107 struct arguments *argsinsert;
108 struct arguments *argsresult;
115 struct this_type *type;
116 struct ECPGstruct_member *struct_member_list;
117 struct typedefs *next;
125 struct _defines *next;
128 /* This is a linked list of the variable names and types. */
132 struct ECPGtype *type;
134 struct variable *next;
139 struct variable *variable;
140 struct variable *indicator;
141 struct arguments *next;
148 struct descriptor *next;
154 enum ECPGdtype value;
155 struct assignment *next;
160 ET_WARNING, ET_ERROR, ET_FATAL
169 typedef struct ScanKeyword