X(__text__TEXTSh __data__DATASV__cstring__TEXTT7V__bss__DATA__picsymbolstub2__TEXTP<__la_sym_ptr2__DATA(0  __nl_symbol_ptr__DATAD< __textcoal_nt__TEXT \ @ D< P*#UVS@EE}~)E$ԋD$$1請E E8uDEEEEED$ ED$E D$E$uVE8 EEEE}uEE$ӊƋ$Ê0~E$ҊD$$2詊bD$ ED$SD$$LED$ D$E D$$nE EEE ?ED$ E D$ED$S$̉D$E$蠉E @[^]UVS@EE}~)E$؉D$$1诉E E8uDEEEEED$ ED$E D$E$uE8 EEEE}uEE$׈Ƌ$Lj0~E$ֈD$$2譈bD$ ED$QD$$PED$ D$E D$$nE EEE sE$趇t%ED$ E D$ED$4R$#E D$ ED$ED$TR$蜇D$E$pE @[^]USE$'t%ED$ E D$ED$HP$2#E D$ ED$ED$]P$ []ÐUS\PD$؇D$ P$Іԇ؇@ԇ8u0PD$"P$蒆ԇԇ4P$l[]ÐUSO$JO$<O$.O$ O$"P$\P$08tP$ۅP$ͅP$迅P$豅(Q$装\Q$蕅Q$臅Q$yQ$kR$]08t*AR$B[R$4Q$&xR$R$ R$R$08tS$ӄSD$$O`E;~ `E[]ÐUS$hED$S$S$ SD$E $aEED$%S$豁ED$8S$蜁US$莁mS$老}S$r؂ED$S$RS$DD$S$*}tED$S$ED$S$T$}S$܀؂ED$(T$輀S$讀D$S$蔀}tED$S$yED$S$bT$TE D$NT$<}S$.؂Ԃ8gED$cT$S${T$TD$E $aEED$%S$ED$8S$T$T$}S$r؂ED$T$RS$D{T$6D$T$}tED$S$ED$S$~T$~E D$U$~}S$~؂@K$~$[]ÐUS4QD$Q$p~Th@T8u>Q$<~T TT볍Q$}QD$Q$}Ph@P8u& R$}PPˍQ$}RD$Q$t}2R$f}MR$X}ETh@T8uT E}iELTL8uLEEEE8t EEEEEE֋E8uEEE E}uLLd}iR$.|LTL8u&{R${LLˍR${T R${ETTI}!R$k{4[]ÐUS$OD$N$@{|8|@ |8uo|EEE썃|EED$E$ztO$z||낍N$zOD$N$z0|8tO$jzO$\zO$NzP$@z0|8t*P$%z;P$zOP$ z|8|@ |8u&mP$y||ˍP$yP$y0|8tpP$yP$xyP$jyP$\yP$NyP$@yP$2yP$$yQ$yQ$y8Q$xSQ$x*I$xfQ$x}Q$x(|8tQ$x0|8tQ$xQ$~xQ$pxC8tRD$N$Mx#RD$N$0x|8|@|8uV|E}v;R$wWR$w||뛍N$wnRD$N$w4|8|@4|8u&R$Zw4|4|ˍN$4wRD$N$wR$ wR$vS$vSQ$v$S$vSQ$v\S$vS$vS$vS$v0|8t T$pv=T$bv\T$Tv|T$FvT$8vT$*v U$vN$v(UD$N$uBU$u\U$u U$uD$U$uD$U$uD$U$uE4|8|@4|8u3ED$U$HuE4|4|뾍N$u$[]ÐUS$lOD$EH$tO$tvD$O$tD$O$t P$tLP$tP$tP$ztP$lt,Q$^tMQD$$EED$QQ$0tlQ$"tQ$tM$tQ$sB$sQ$svD$Q$sR$svD$!R$s2R$sF$~s$FD$$EED$)F$PsNR$BsYF$4sqF$&sF$sulR$rF$rvD$F$rR$r G$rF$ruR$rF$rvD$F$lrR$^r G$PrR$BrF$4ruu8"R$ rF$qG$qGD$$pEED$)F$qNR$qG$qG$qF$quS$oqF$aqG$SqvD$G$9qR$+qG$qS$qF$quD>$p$[]ÐUS$8ND$D$pO$p\rD$.O$p;O$p\rD$XO$lpaO$^p\rD$M$DpO$6pO$(pP$pJP$ phP$oD$P$oP$oP$o8Q$oAD$$@EED$_Q$oQ$oXM$toI$foQ$Xo>$JoR$D$$EED$=$liBI$^i>$Pi>$Biu=$4ildP$i=$ is>$hmD$>$hI$h>$h J$hu=$hl85$h$[]ÐUS$MD$;$hh$M$ZhEM$LhjD$`M$2hM$$hD$M$hM$h$N$g9$gCN$gTN$gkN$gN$gN$gN$gO$g)O$tg9$fgTi;O$Mg9$?gCN$1gXO$#gO$gO$g9$fTiO$f9$fCN$f08tV P$fXO$f$P$fdP$fP$sfP$ef8 Q$UfXO$GfP$9f$Q$+f)O$f9$fTiLQ$e9$ejD$eQ$e{Q$eQ$eQ$eQ$eR$e9$zeTi)R$ae9$SejD$eQ$9eCR$+edR$eR$eR$e9$dTiR$d9$d9D$$NEED$9$d{Q$dS$d$S$tdDS$fdS$Xd9$Jd9$_bP$%_K2$_bD$2$^;P$^XP$^xP$^53$^2$^bP$^K2$^bD$2$v^;P$h^XP$Z^xP$L^53$>^P$0^2$"^bb8hP$]K2$]3$]3D$$^EED$U2$]N$]K$]O$]O$v]3$h]3$Z]2$L]bP$3]K2$%]3$]bD$ 4$\L$\XP$\xP$\$4$\Q$\2$\bp*$\$[]ÐUSsLD$/$d\L$V\[]USLD$/$,\D$L$\L$\]D$L$[M$[]D$M$[D$D$1M$[]ÐUSL\P\L\8u&L$Y[L\L\ˍL$3[[]ÐUS$LE[E}v LELD$].$Z1D$L$ZL$ZED$\D$M$Z+M$~ZED$\D$DM$]Z[ 8t D$D$QM$.$Z$[]ÐUS4hEZE썃9LD$A-$YZZZ8ulZE荃WL$|YED$nL$gYD$E$;YEZZ녋ED$zL$ YL$Y+$Y[D$B$XL$XC$XEZZZ8uVZED$ LD$ED$E$EZZ뛍}+$6XZL$X+$X[D$B$WL$WEZZZ8uVZED$ LD$ED$E$EZZ뛍}+$OWZL$6WZZZ8uCZE}uM$VZZ뮍M$V+$V[D$M$VEZZZ8u|ZE荃ZE}u 7MED$ ED$ED$E$bEZZu}+$UZ}t(EEEEED$HM$UD$ED$kM$l4[]ÐUS$DVEHD$($9UH$+UD$I$U,I$ULI$TI$TI$TVD$Q2$TI$TVD$I$T}t(EEEEED$ J$mTD$D$/J$?$[]ÐUS8tUD$I$TI$T/I$SHI$SD$I$SD$I$S !$SF U8tU8t 7TU@ T8uTTԍTU@T8uTTԍUU@U8uUUԍUU@U8u UUԍ8tUD$I$=R[]ÐUS$RSR8uPRE}t}uE D$G$QRR롍RRR8uPRE}t}uE D$G$FQRR롍G$ Q$[]ÐUqQE}t E-QE}t EEEÐUS4 E}t SFE [FEEE썓lQ\QlQ8ulQEED$_F$%P8tR} tL}t(ED$ EE D$E D$F$O3ED$E D$F$OED$C$OD$E$OElQlQED$F$mO}tF$YOFD$$F$5O!$'OoED$EE$EED$!$N} t2}tF$NE D$G$NElQQlQ8u|lQE荃lQE}u CED$ ED$ED$E$ElQlQulQ\QlQ8u|lQE䍃lQE}u CED$ ED$ED$E$ElQlQu}tED$G$RM}t,8t!EE D$E D$LG$"MyG$M!"$M|Q}ED$G$L!$L8tjG$LEE D$E D$G$LF$LH$xLEE D$E D$H$YL-H$IL!"$;L|QED$KH$LFD$$F$K!$KbH$K} t`8t>}t!EE D$E D$H$K%E D$H$KH$qKEH$ZKElQQlQ8uVlQED$ CD$ED$E$KElQlQ뛍lQ\QlQ8uVlQED$ CD$ED$E$ElQlQ뛍!"$?J|QED$H$JFD$$F$I!$IbH$I} t`8t>}t!EE D$E D$H$I%E D$H$IH$IEH$kIElQQlQ8uVlQED$ CD$ED$E$\ElQlQ뛍lQ\QlQ8uVlQED$ CD$ED$E$پElQlQ뛋EED$I$FH!"$8H|Q}m}c.I$ HLI$G!$G!D$EE$oEED$!$GnI$G} tE D$I$GED$I$GED$I$lGI$^G!"$PG|Q J$7GED$0RD$-J$GLJ$GED$0RD$J$FJ$FED$J$Fz$F$F4[]ÐUS@$F8@$iF}t@$UFDG@G DG8u& A$FDGDGˍA$EA$E[]ÐUS4S@$E}tED$[@$EF|F F8u&`@$lEFFˍM@$FE[]US4蘹EEEWD$E D$E$D 8tFCD$FD$F$DFD$?$DEF E8uEEEӃ}EE?D$q$;DFD$?$!D}tFD$@$D#@$CEFE8uEE荃8@D$q$Cb@$CED$FD$y@$cCD$E$7CEEE[EEF E8uE E荃EE}E}@D$q$BEED$@$B@$tBED$FD$A$SBED$9A$>BED$ ED$ED$E$jXAD$q$BED$~A$AA$A}tDED$FD$A$AED$ D$ED$E$0A$AED$ D$D$E$EEE?EFE8uEE}t AEEE܉E䍃AD$q$@A$@E$A$@E$ B$@}t9 8t8B$l@_B$\@hB$N@tB$>@E$WyB$%@EE?4[]ÐUS$T@ET=D$-$?}t|=$?E$=$?@@ @8u&=$Y?@@ˍ$3?}t $?, $?$[]ÐUS4`?E}t <E <5EEE} t <E <EEEED$ED$<$><${><$m>}t ;EEE$n>5$<><$.>}t=$>?? ?8u&=$=??ˍ"=$=???8u&(=$~=??ˍ???8u&(=$+=??˃}t`ED$4=$<}t K=E W=E܋E܉$<<D$$d=$<Bt9ED$g=$<<D$$Ed=$k<a$]<4[]ÐUS謰:D$E D$E$;<$=<8u$$<<Y;[]US(L:D$E D$E$D;p<<p<8uh:D$$`;P9$R;x<< x<8uD$$D$$x< 8t(D$$D$$x<x<l$:p<p<9[]US4ĮEd;;;E䍃8t .9U %8EEUoD$@;D$E$9<;@;@<;8u<;EEEED$E$K<;E}t+ED$E$ED$E$zE<;<;Z:9D$ $9d;D$R9$8q8}m9D$t9D$E$a8{9D$ $8<;@;@<;8uv ;<; ;8u.D$9$D8 ; ;Í<;<;{$878tAm9D$9D$E$p79D$ $7574[]%s.%s COPY_%TM (x%u_ + %d, %e);\ DEREF_%TM (x%u_ + %d, %e);\ %e = DEREF_%TM (x%u_ + %d);\ DEREF_%TM (%e, %e); %e = DEREF_%TM (%e); .h#include "%s%s" _ops.h#include "%UM%s" #ifdef ASSERTS extern %X *check_null_%X (%X *, const char *, int); extern %X *check_tag_%X (%X *, unsigned, const char *, int); extern %X *check_tag_etc_%X (%X *, unsigned, unsigned, const char *, int); extern int check_int_size (int, int, const char *, int); #define CHECK_NULL(P)\ (check_null_%X ((P), __FILE__, __LINE__)) #define CHECK_TAG(P, N)\ (check_tag_%X ((P), (unsigned)(N), __FILE__, __LINE__)) #define CHECK_TAG_ETC(P, L, U)\ (check_tag_etc_%X ((P), (unsigned)(L), (unsigned)(U), __FILE__, __LINE__)) #define CHECK_INT(N, M)\ (check_int_size ((N), (M), #else #define CHECK_NULL(P)%t40(P) #define CHECK_TAG(P, N)%t40(P) #define CHECK_TAG_ETC(P, L, U)%t40(P) #define CHECK_INT(N, M)%t40(N) #endif #ifndef assert_%X static void assert_%X(const char *s, const char *fn, int ln) { (void)fprintf(stderr, "Assertion %%s failed, %%s, line %%d.\n", s, fn, ln); abort(); } #endif %X * check_null_%X(%X *p, const char *fn, int ln) if (p == NULL) assert_%X ("Null pointer", fn, ln); return (p); } %X * check_tag_%X(%X *p, unsigned t, const char *fn, int ln) p = check_null_%X(p, fn, ln); if (p->ag_tag != t) assert_%X("Union tag", fn, ln); %X * check_tag_etc_%X(%X *p, unsigned tl, unsigned tb , const char *fn, int ln) p = check_null_%X (p, fn, ln); if (p->ag_tag < tl || p->ag_tag >= tb) { assert_%X("Union tag", fn, ln); } int check_int_size(int n, int m, const char *fn, int ln) if (n > m) assert_%X("Vector bound", fn, ln); return (n); GEN_%%X ( %d, TYPEID_%s )#define CONS_%e(A, B, C)\ {\ list %X *x%u_ = %e;\ COPY_%e (x%u_ + 1, (A));\ x%u_->ag_ptr = (B);\ (C) = x%u_;\ } #define UN_CONS_%e(A, B, C)\ %X *x%u_ = %s(C);\ (A) = DEREF_%e (x%u_ + 1);\ DEREF_%e (x%u_ + 1, (A));\ (B) = x%u_->ag_ptr;\ #define DESTROY_CONS_%e(D, A, B, C)\ (D) (x%u_, %du);\ #define PUSH_%e(A, B)\ %X **r%u_ = &(B);\ stack x%u_->ag_ptr = *r%u_;\ *r%u_ = x%u_;\ #define POP_%e(A, B)\ %X *x%u_ = %s(*r%u_);\ *r%u_ = x%u_->ag_ptr;\ destroy_%X (x%u_, %du);\ Structure declarations/* %e */ typedef struct %SM_tag %SN; Identity type definitionstypedef %IT %IN; Structure definitions#ifndef %X_STRUCT_DEFINED #define %X_STRUCT_DEFINED struct %SM_tag { %CT %CN; }; /* struct %SM_tag later */ #endif /* %X_STRUCT_DEFINED */ Primitive typestypedef %PD %PN; Basic typestypedef unsigned %X_dim; typedef union %X_tag { unsigned ag_tag; union %X_tag *ag_ptr; %X_dim ag_dim; unsigned ag_enum; unsigned long ag_long_enum; %PN ag_prim_%PM; } %X; typedef %X *%X_PTR; typedef struct { %X *vec; %X *ptr; } %X_VEC_PTR; %X_dim dim; %X_VEC_PTR elems; } %X_VEC; #ifndef %X_DESTR_DEFINED #define %X_DESTR_DEFINED typedef void (*DESTROYER) (%X *, unsigned); #define PTR(A) %X_PTR #define LIST(A) %X_PTR #define STACK(A) %X_PTR #define VEC(A) %X_VEC #define VEC_PTR(A) %X_VEC_PTR #define SIZE(A) int Assertion macrosEnumeration definitionstypedef unsigned long %EN; typedef unsigned %EN; Union type definitionstypedef %X *%UN; Function declarationsextern %X *gen_%X (unsigned); extern void destroy_%X (%X *, unsigned); extern void dummy_destroy_%X extern void destroy_%X_list extern %X *append_%X_list (%X *,%X *); extern %X *end_%X_list (%X *); extern unsigned length_%X_list (%X *); extern %X *reverse_%X_list (%X *); extern %X_VEC empty_%X_vec; #ifdef %X_IO_ROUTINES extern unsigned crt_%X_alias; extern void set_%X_alias (%X *, unsigned); extern %X *find_%X_alias (unsigned); extern void clear_%X_alias (void); #endif Run-time type information#ifndef GEN_%X #define GEN_%X(A, B)%t40gen_%X ((unsigned)(A)) #define TYPEID_ptr%t40%du #define TYPEID_list%t40%du #define TYPEID_stack%t40%du #define TYPEID_%UM%t40%du Definitions for pointers#define STEP_ptr(A, B)%t40(%s(A) + B) #define SIZE_ptr(A)%t40%d #define NULL_ptr(A)%t40((%X *)0) #define IS_NULL_ptr(A)%t40((A) == 0) #define EQ_ptr(A, B)%t40((A) == (B)) #define MAKE_ptr(A)%t40GEN_%X ((A), TYPEID_ptr) #define DESTROY_ptr(A, B)%t40destroy_%X ((A), (unsigned)(B)) ptr#define UNIQ_ptr(A)%t40%e #define DESTROY_UNIQ_ptr(A)%t40destroy_%X ((A), 1u) #define VOIDSTAR_ptr(A)%t40((void *)(A)) #define COPY_ptr(A, B)%t40(%s(A)->ag_ptr = (B)) #define DEREF_ptr(A)%t40(%s(A)->ag_ptr) #define CONS_ptr(A, B, C)\ x%u_[1].ag_ptr = (A);\ #define UN_CONS_ptr(A, B, C)\ (A) = x%u_[1].ag_ptr;\ #define DESTROY_CONS_ptr(D, A, B, C)\ (D) (x%u_, 2u);\ #define PUSH_ptr(A, B)\ #define POP_ptr(A, B)\ destroy_%X (x%u_, 2u);\ Definitions for lists#define HEAD_list(A)%t40(%s(A) + 1) #define PTR_TAIL_list(A)%t40(%s(A)) #define TAIL_list(A)%t40#define LENGTH_list(A)%t40length_%X_list ((A)) #define END_list(A)%t40end_%X_list ((A)) #define REVERSE_list(A)%t40reverse_%X_list ((A)) #define APPEND_list(A, B)%t40append_%X_list ((A), (B)) #define SIZE_list(A)%t40%d #define NULL_list(A)%t40((%X *) 0) #define IS_NULL_list(A)%t40((A) == 0) #define EQ_list(A, B)%t40((A) == (B)) #define UNIQ_list(A)%t40%e #define DESTROY_UNIQ_list(A)%t40#define VOIDSTAR_list(A)%t40((void *) (A)) #define DESTROY_list(A, B)\ destroy_%X_list ((A), (unsigned) (B));\ #define COPY_list(A, B)%t40#define DEREF_list(A)%t40#define CONS_list(A, B, C)\ #define UN_CONS_list(A, B, C)\ #define DESTROY_CONS_list(D, A, B, C)\ #define PUSH_list(A, B)\ %X **r%u_ = &(B);\ #define POP_list(A, B)\ Definitions for stacks#define SIZE_stack(A)%t40%d #define NULL_stack(A)%t40((%X *) 0) #define IS_NULL_stack(A)%t40((A) == 0) #define STACK_list(A)%t40(A) #define LIST_stack(A)%t40(A) #define COPY_stack(A, B)%t40#define DEREF_stack(A)%t40#define CONS_stack(A, B, C)\ #define UN_CONS_stack(A, B, C)\ #define DESTROY_CONS_stack(D, A, B, C)\ #define PUSH_stack(A, B)\ #define POP_stack(A, B)\ Definitions for vectors#define DIM_vec(A)%t40((A).dim) #define PTR_ptr_vec(A)%t40(%s(A)[2].ag_ptr) #define DIM_ptr_vec(A)%t40((A)->ag_dim) #define SIZE_vec(A)%t40%d #define NULL_vec(A)%t40empty_%X_vec #define MAKE_vec(SZ, U, RES)\ %X_VEC x%u_;\ %X_dim u%u_ = (U);\ x%u_.dim = u%u_;\ if (u%u_ == 0) u%u_ = 1;\ x%u_.elems.ptr = GEN_%X ((SZ) * u%u_, TYPEID_ptr);\ x%u_.elems.vec = x%u_.elems.ptr;\ (RES) = x%u_;\ #define DESTROY_vec(V, SZ)\ x%u_ = (V);\ destroy_%X (x%u_.elems.ptr, (unsigned) ((SZ) * x%u_.dim));\ #define TRIM_vec(V, SZ, L, U, RES)\ int u%u_, l%u_;\ u%u_ = CHECK_INT ((U), DIM_vec (x%u_));\ l%u_ = CHECK_INT ((L), u%u_);\ x%u_.elems.ptr += ((SZ) * l%u_);\ x%u_.dim = (unsigned) (u%u_ - l%u_);\ int l%u_ = (L);\ x%u_.dim = (unsigned) ((U) - l%u_);\ #define COPY_vec(A, B)\ %X *x%u_ = %s(A);\ %X_VEC y%u_;\ y%u_ = (B);\ x%u_[0].ag_dim = y%u_.dim;\ x%u_[1].ag_ptr = y%u_.elems.vec;\ x%u_[2].ag_ptr = y%u_.elems.ptr;\ #define DEREF_vec(A, B)\ %X_VEC *y%u_ = &(B);\ y%u_->dim = x%u_[0].ag_dim;\ y%u_->elems.vec = x%u_[1].ag_ptr;\ y%u_->elems.ptr = x%u_[2].ag_ptr;\ #define CONS_vec(A, B, C)\ y%u_ = (A);\ x%u_[1].ag_dim = y%u_.dim;\ x%u_[2].ag_ptr = y%u_.elems.vec;\ x%u_[3].ag_ptr = y%u_.elems.ptr;\ #define UN_CONS_vec(A, B, C)\ %X_VEC *y%u_ = &(A);\ y%u_->dim = x%u_[1].ag_dim;\ y%u_->elems.vec = x%u_[2].ag_ptr;\ y%u_->elems.ptr = x%u_[3].ag_ptr;\ #define DESTROY_CONS_vec(D, A, B, C)\ (D) (x%u_, 4u);\ #define PUSH_vec(A, B)\ #define POP_vec(A, B)\ destroy_%X (x%u_, 4u);\ Definitions for vector pointers#define VEC_PTR_vec(A)%t40((A).elems) #define PTR_vec_ptr(A)%t40((A).ptr) #define SIZE_vec_ptr(A)%t40%d #define COPY_vec_ptr(A, B)\ %X_VEC_PTR y%u_;\ x%u_->ag_ptr = y%u_.vec;\ x%u_[1].ag_ptr = y%u_.ptr;\ #define DEREF_vec_ptr(A, B)\ %X_VEC_PTR *y%u_ = &(B);\ y%u_->vec = x%u_->ag_ptr;\ y%u_->ptr = x%u_[1].ag_ptr;\ #define CONS_vec_ptr(A, B, C)\ x%u_[1].ag_ptr = y%u_.vec;\ x%u_[2].ag_ptr = y%u_.ptr;\ #define UN_CONS_vec_ptr(A, B, C)\ %X_VEC_PTR *y%u_ = &(A);\ y%u_->vec = x%u_[1].ag_ptr;\ y%u_->ptr = x%u_[2].ag_ptr;\ #define DESTROY_CONS_vec_ptr(D, A, B, C)\ (D) (x%u_, 3u);\ #define PUSH_vec_ptr(A, B)\ #define POP_vec_ptr(A, B)\ destroy_%X (x%u_, 3u);\ Definitions for sizes#define SCALE(A, B)%t40((A) * (int) (B)) Definitions for primitive %PN#define SIZE_%PM%t40%d #define COPY_%PM(A, B)%t40(%s(A)->ag_prim_%PM = (B)) #define DEREF_%PM(A)%t40(%s(A)->ag_prim_%PM) %PM#define %EM_%ES%t40((%EN) %EVu) #define ORDER_%EM%t40((unsigned long) %EO) ag_enumag_long_enumDefinitions for enumeration %EN#define SIZE_%EM%t40%d #define COPY_%EM(A, B)%t40(%s(A)->%s = (B)) #define DEREF_%EM(A)%t40(%s(A)->%s) %EMDefinitions for structure %SN#define %SM_%CN(P)%t40((P) + %d) #define SIZE_%SM%t40%d #define COPY_%SM(A, B)\ %SN y%u_;\ y%u_.%CN#define DEREF_%SM(A, B)\ %SN *y%u_ = &(B);\ y%u_->%CN#define MAKE_%SM(%CN_, %SM_)\ %X *x%u_ = %s(%SM_);\ (%CN_)#define CONVERT_%SM_%s(P)%t40(P) %SMDefinitions for union %UN#define ORDER_%UM%t40%UOu #define SIZE_%UM%t40%d #define NULL_%UM%t40((%UN) 0) #define IS_NULL_%UM(A)%t40((A) == 0) #define EQ_%UM(A, B)%t40((A) == (B)) #define COPY_%UM(A, B)%t40#define DEREF_%UM(A)%t40(%s(A)->ag_ptr) #define CONVERT_%UM_%s(P)%t40(P) %UM#include "%s_bscs.h" #ifndef %X_NAME #define %X_NAME%t40"%X" #define %X_VERSION%t40"%V" #define %X_SPECIFICATION%t40%d #define %X_IMPLEMENTATION%t40%d #include "%s_term.h" %CN%s, %X_%UM%FN_etc%FN#define %UM_%e_%CN(P)%t40(CHECK_TAG_ETC ((P), %d, %d) + %d) (CHECK_TAG ((P), %d) + %d) #define MAKE_%UM_%e(tag, _)\ x%u_->ag_tag = (tag);\ x%u_->ag_tag = %d;\ x%u_[%d].ag_tag = 0;\ (%X_%UM) = CHECK_TAG_ETC (x%u_, %d, %d);\ (%X_%UM) = x%u_;\ #define MODIFY_%UM_%e(tag, %X_%UM)\ %X *x%u_ = CHECK_TAG_ETC ((%X_%UM), %d, %d);\ (void) CHECK_TAG_ETC (x%u_, %d, %d);\ (%X_%UM)->ag_tag = (tag);\ #define DECONS_%UM_%e( %X *x%u_ = CHECK_TAG_ETC ((%X_%UM), %d, %d);\ CHECK_TAG ((%X_%UM), %d);\ (%X_%UM);\ #define DESTROY_%UM_%e(destroyer_, (destroyer_) (x%u_, %du);\ #ifdef %X_IO_ROUTINES #define NEW_ALIAS_%UM_%FN(P, N)\ unsigned a%u_ = (N);\ x%u_->ag_tag = %d;\ x%u_[%d].ag_tag = a%u_;\ set_%X_alias (x%u_ + %d, a%u_);\ (P) = x%u_;\ #define GET_ALIAS_%UM_%FN(P)%t40((%s(P) + %d)->ag_tag) #define SET_ALIAS_%UM_%FN(P, N)%t40set_%X_alias (%s(P) + %d, (N)) #define FIND_ALIAS_%UM_%FN(N)%t40(find_%X_alias (N) - %d) %MR (*%MN_%UM_table[ORDER_%UM]) (%UN, DESTROYER, %AT) ()(%X_%UM, %e, %AN#include <%s_ops.h> Operations for union %UN#define TAG_%UM(P)%t40(%s(P)->ag_tag) 0u Operations for component %CN of union %UN#define %UM_%CN(P)%t40(%s(P) + %d) Operations for field set %FN_etc of union %UN#define %UM_%FN_etc_tag%t40%du #define IS_%UM_%FN_etc(P)%t40((unsigned) (%s(P)->ag_tag - %d) < %du) Operations for field %FN of union %UN#define %UM_%FN_tag%t40%du #define IS_%UM_%FN(P)%t40(%s(P)->ag_tag == %d) 1 destroyerMap %MN on union %UNextern ; #define %MN_%UM\ ((%MN_%UM_table[CHECK_TAG_ETC ((%X_%UM), 0, ORDER_%UM)(%X_%UM)->ag_tag]) 0]) ) Function table for map %MN on union %UN#ifndef IGNORE_%MN_%UM = { %MN_%UM_%FN%F, _d__etc#define HDR_%MN%s%UM_%FN%s\ %MR %MN_%UM_%FN\ ( (%UN %X_%UM, DESTROYER destroyer, %AT %AN)\ {\ %CT %CN;\ DESTROY_%UM_%FN%s (destroyer, destroy_%X, );\ DECONS_%UM_%FN%s (_map.h_hdr.hFunction headers for map %MN on union %UNCHECK_NULL Maximum allocation size#define %X_GEN_MAX%t40%d _def.hignoreMap ignore macros#define IGNORE_%MN_%UM%t40%d assertAssertion function definitionst⍀Ptt⍀Ptt⍀Ptt⍀P}txt⍀Pdt_t⍀PKtFtw⍀wP2t-tb⍀bPttM⍀MPts8⍀8Ps,E^w‹ۋ $Ë $Ë$SSSS^P(O8P0P^O&P@OPHOOxOOHOOO$OO OOHTOOHTOOOHTOzOxTOrOHTOlOVOTOPO ;O3O_L-O%OLOOaL OOLNNNLNNaLNNLNLNNԉL{N`LsN`LmNeNȉLVN`L@NPL8N`L(N`L N`LNNȉLN`LMxLM`LMM‰LMLLMLLMMLMLLMHLMLL~MvMLjMbML\MTMށLNM7M8L+M#MLMMLMMbLLaLL\LL܁LLXLLHLL LLTKyLqLnYKeL]L_KMLPKELPK?L7LGK(LPKLxK LPKLKAKKKK(KKK^KKKKHKK KKHhFyKHhFsKkKhFeKZKRK܈hFJKBKЈhF@6@:'@@:@@:@?:?S:??V:??\:??ށ:??܁:???:m?c?p:]?U?]:O?G?!:??7?: ??:? ?:?>:>>ł:>S:>>\:>>:>p:>>]:>~>m:v>n>@:R>S:F>>>:>`:>`: >=~:=`:=`:=`:=P:=`:u=`:m=`:d=@=~:#=`: =`:<`:<x:<`:<<:<<:<<\:<w<c:q<i<\:c<[<ށ:U<E<܁:?<7<ց:+<#<: <`:<`:;;;~:;;:;;:y;S:s;k;S:M;`:;;`:%;P:;`:;O:;G:: :P::x:: x:p:@t9`:`t9X:`t9R:J:8t9 :`t9:`t99Pt99`t99`t99`t9998t99`t99`t9~9xt9v9`t9p9 [9S9!`7C9|`789S`7(9x`7 9x`79 9x`78|`78x`78h`78h`788h`78|`78h`78X`78X`788X`7w8|`7o8X`7_8\`7W8\`7Q8C8\`748|`7,8\`7&8!888t`7 87l`777777X`777`777`777`777`777~`77}7g`7m7|`7b7S`7\7 I7A7c46+7#7@4666466$46664666h466$4666466646664666`466{6<46m6e6!46_6W6^46M64666x4606 66155~15p155]15`15`15v5~1Y5`1B5`135`15h15`155~14$144\144~14`14`144~14`14`1p4h1h4`1b4Z4~1O4p1I4A4]114`1)4`1 4 4~13`13`13h13`133u~133t13$133\1{3s3[~1h3p1b3Z3]1J3`1B3`193#3R~13`12`12h12`122t122D~122t12$122\12~2+~1x2p2~1Y2`1Q2`1D212)2~122}11`11`11h11`111^11}11h11 1x1_|0p1h1}|0A1X|0;131}|0'1$|011}|0 11}|00$|000y}|000`}|0000^|00@}|00}|00X|0~0 }|0x0 e0]0|0M0T0E0T0?070|0(0T00X0 0T00 //|X///s|X//$X///Z|X///>|X//$X///#|X//z/ |X/l/d/^X/Z/{X/T/ B/:/{ /4/,/^ /"/{ // //Th*.ph*..]h*..x{h*..^h*..zh*..zh*..vh*..r^h*.$h*.y.^h*s.k.\h*e.].\{h*R.ph*L.D.]h*>.6.I^h*0.(./^h*"..`zh*. .@zh*.-"vh*--=yh*--\h*--)^h*--^h*--\h*--?{h*-lh*|-ph*v-n-]h*h-`-+{h*Z-R-]h*L-D-zh*>-6-zh*0-(-zh*"--8]h*-$h*--\h*,,{h*,ph*,,]h*,,]h*,,zh*,,zh*,,zh*,,8]h*,$h*,y,\h*s,k,zh*`,ph*Z,R,]h*L,D,]h*>,6,\h*0,(,`zh*",,@zh*, ,"vh*,+=yh*++\h*++\h*++\h*++ zh*+ph*++]h*++zh*++yh*y+q+yh*k+c+th*W+$h*Q+I+\h*C+;+yh*0+ph**+"+]h*++yh*++Ryh*+*th***=yh***th**$h***\h*** yh***yh***xh***xh*|*t*^h*j*`xh*d* P*H*T#=*p#7*/*]#)*!*,x#**^# **w#))@w#)) w#))v#))r^#)$#))^#))\#))x#)p#)~)]#x)p)I^#j)b)/^#\)T)v#N)F)`v#@)8)@v#2)*)"v#$))t#))\#(()^#((^#((\#((w#(l#(p#((]#((w#(~(]#x(p(w#j(b(@w#\(T( w#N(F(v#@(8(8]#,($#&((\#((w#(p#'']#'']#''w#''@w#'' w#''v#''8]#'$#''\#'{'v#p'p#j'b']#\'T']#N'F'\#@'8'v#2'*'`v#$''@v#''"v#''t#&&\#&&\#&&\#&&v#&p#&&]#&&u#&&u#{&s&u#m&e&_u#_&W&t#K&$#E&=&\#7&/&Eu#$&p#&&]#&& u#&%t#%%t#%%t#%%t#%%t#%$#%%\#%%ht#%p#%%]#{%s%Er#m%e%@t#_%W%s#Q%I%tr#C%;%)t#3%+%t#%%%s#%%s# %%@s#$$tr#$$%s#$S#$$_q#$$\#$$s#$p#$$]#$$r#${$r#u$m$tr#g$_$_q#Y$Q$\#K$C$Wr#8$p#2$*$]#$$$Er#$$ r#$$q###q###q###q###pq###_q###\###@q###q###p#t#l#p#f#^#|p#R#$#L#D#ap#>#6#@p#0#(#^##p## #"T"p""]""i""^""i""r^"$""^""\}"u"pj"pd"\"]V"N"I^H"@"/^:"2"h,"$"\"")^!!m!!\!!o!l!p!!]!!gi!!]!!i!x!8]l!$f!^!\X!P!oE!p?!7!]1!)!]#!!i! !8]!$  \  o p  ]  ]  \  h  \ t \n f \` X WoR J h> $8 0 6bD'xD|DxD ^DbD_DXDXDbDbDXDXDv|DnXDh`^DVgbDPKC^D9VbD.SD( ?bD bD aDtDaDlDaDaDnYDaD|aDbaDzHaDtl [^ , p &  ]   I^  /^  \  \  )^  ^  \  ] { l p p j b ] \ T ] D < ] 6 . ]   `]   8] $  \  ] p  ]  ]  ]  `] n f 8] Z $ T L \ F > ] , p &  ]   ]  \  \  \  \  \  \  @ u @ h @ b Z @ P ~\@ <  '  Z  p\  @\X\[tZZ[[[~v@[phXbZ"[TL[F>Z80Z*"ZZZZX@ZZZZYYXzYtlwYf^nYXPkYJB`Y<4@Y.&Y X XXX XD`XDtD XDXDWDxWDrjVDd\WDVNWDAtD;3`WD-% WDVD VDVDlVD@VD VDVDUDtDUDfUD~@UDxp UDjbUD\TTDNFTD@ ,$Tx xTTx|xT|T T8f^T8?4 `T @T aOT 6&4$ TeST:*8(  C == C 99 C 5Ӌ5Ӌ C 11 C --~ yC s)k)e `C Z%oR%oL GC A!V9!V3 .C (= = C $$ $  -;@8><?A9:-;@8><?A9:=4.2015/36+B,7*1B8Ugpy4 ~ $8#\*/L/p01.(6=T7Kh9\:kD|\FKL*SS:0QSB,q/OE^ OHO;gMUDp2]x # _extra_asserts_extra_headers_map_proto___i686.get_pc_thunk.bx_print_deref_print_include_print_struct_defn_print_enum_consts_field_not_empty___i686.get_pc_thunk.cx_print_map_args_print_union_map_c_print_union_hdr_c_main_action_c___i686.get_pc_thunk.axdyld_stub_binding_helper_output_c_code_crt_map_crt_arg_crt_fld_crt_ec_crt_en_crt_prim_crt_cmp_crt_id_crt_str_allow_stack_unique_allow_vec_crt_union_algebra_close_file_open_file_strcmp_is_complex_type_size_type_output_sprintf_strlen_msg_print_name_type_assign_component_deref_component_print_assert_decs_print_assert_fns_gen_max_gbuff.0_gen_print_simple_cons_check_null_print_types_c_print_ptr_c_print_list_c_print_stack_c_print_vec_c_print_vec_ptr_c_print_size_c_print_prim_c_print_enum_c_print_struct_c_print_union_c_print_main_c_print_cons_args_print_field_c_print_map_table_print_union_ops_c_print_func_tab_print_func_hdr