00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00093
00094
00095
00096
00097
00098 #ifndef ASC_ANONTYPE_H
00099 #define ASC_ANONTYPE_H
00100
00106 #define ATDEBUG 0
00107
00109 struct AnonType {
00110 unsigned long index;
00112 struct gl_list_t *instances;
00113 struct AnonType *prev, *next;
00115 int exactfamily;
00117 int visited;
00118 };
00119
00128 #define INSTANCES_PER_AT 2
00129
00135 #define ANONEXPECTED 200
00136
00147 #define ANONTABLESIZE 1024
00148
00153 #define Asc_GetAnonType(atl,n) \
00154 ((struct AnonType *)gl_fetch((atl),(n)))
00155
00161 #define Asc_GetAnonCount(atl,n) \
00162 gl_length(Asc_GetAnonType((atl),(n))->instances)
00163
00170 #define Asc_GetAnonTypeInstance(at,c) \
00171 (struct Instance *)gl_fetch((at)->instances,(c))
00172
00177 extern struct Instance *Asc_GetAnonPrototype(struct AnonType *at);
00178
00183 ASC_DLLSPEC void Asc_DestroyAnonList(struct gl_list_t *atl);
00184
00191 ASC_DLLSPEC struct gl_list_t *Asc_DeriveAnonList(struct Instance *root);
00192
00201 ASC_DLLSPEC void Asc_WriteAnonList(FILE *fp,
00202 struct gl_list_t *atl,
00203 struct Instance *root,
00204 int mlists);
00205
00206
00207
00208 #endif
00209