home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
sa104os2.zip
/
SATHR104.ZIP
/
SATHER
/
BOOT
/
CS.COD
/
CODE0.C
next >
Wrap
C/C++ Source or Header
|
1995-02-15
|
224KB
|
8,259 lines
/* C code generated by Sather 1.0 compiler */
#include "sather.h"
#include "strings.h"
OPTIONS OPTIONS_create_O(OPTIONS self) {
OPTIONS noname61;
OPTIONS r;
OPTIONS local0;
local0 = ((OPTIONS) sbi_alloc(sizeof(struct OPTIONS_struct), OPTIONS_tag));
r = local0;
r->bounds_all = TRUE;
r->void_all = TRUE;
r->when_all = TRUE;
r->return_all = TRUE;
r->main_class = ((STR) &MAIN);
return r;
}
TP_TBL TP_TBL_create_PR(TP_TBL self, PROG prog_62) {
TP_TBL noname63;
TP_TBL r;
TP_TBL local0;
local0 = ((TP_TBL) sbi_alloc(sizeof(struct TP_TBL_struct), TP_TBL_tag));
r = local0;
r->prog = prog_62;
return r;
}
INT STR_asize_INT(STR self) {
INT noname64 = ((INT) 0);
return self->asize;
fprintf(stderr,"Last statement wasn't return ../Library/aref.sa:20:8\n");
exit(16);
}
BOOL INT_is_bet_INT_I(INT self, INT l, INT u_65) {
BOOL noname66 = ((BOOL) 0);
BOOL local0;
BOOL local1;
BOOL local2;
if ((l<=self)) {
local1 = (self<=u_65);
} else {
local1 = FALSE;
}
if (local1) {
local0 = TRUE;
} else {
if ((u_65<=self)) {
local2 = (self<=l);
} else {
local2 = FALSE;
}
local0 = local2;
}
return local0;
}
CHAR STR_aget_INT_CHAR(STR self, INT ind_67) {
CHAR noname68 = ((CHAR) 0);
BOOL local0;
INT local1;
INT local2;
if ((!((self==((STR) NULL))))) {
local1 = 0;
local2 = (self->asize);
local0 = INT_is_bet_INT_I(ind_67, local1, (c_INT_minus_INT_INT_chk(local2,1)));
} else {
local0 = FALSE;
}
if (!(local0)) {
fprintf(stderr,"Violation of precondition ../Library/aref.sa:33:7\n");
exit(16);
}
if (ind_67<0||ind_67>=self->asize) {
fprintf(stderr,"Index out of bounds ../Library/aref.sa:33:7\n");
exit(16);
}
return self->arr_part[ind_67];
}
INT STR_hash_INT(STR self) {
INT noname69 = ((INT) 0);
INT i = ((INT) 0);
INT r = ((INT) 0);
INT local0;
INT local1;
INT local2;
INT local3;
INT local4;
if ((self==((STR) NULL))) {
return 0;
}
local0 = (self->asize);
if ((local0==0)) {
return 0;
}
local1 = (self->asize);
i = (c_INT_minus_INT_INT_chk(local1,1));
local2 = 532415;
r = (c_INT_uplus_INT_INT_chk(local2,((INT)STR_aget_INT_CHAR(self, i))));
i = (c_INT_minus_INT_INT_chk(i,1));
while (1) {
if ((i>=0)) {
}
else {
goto after_loop;
}
local3 = (c_INT_utimes_INT_INT_chk(r,1664525));
local4 = (c_INT_uplus_INT_INT_chk(local3,1013904223));
r = (c_INT_uplus_INT_INT_chk(local4,((INT)STR_aget_INT_CHAR(self, i))));
i = (c_INT_minus_INT_INT_chk(i,1));
}
after_loop: ;
return r;
}
INT IDENT_TBL_query_(IDENT_TBL self, STR s_71) {
INT noname72 = ((INT) 0);
return STR_hash_INT(s_71);
if (!IDENT_TBL_invari(self)) {
fprintf(stderr,"Failed invariant IDENT_TBL::invariant:BOOL ./ident.sa:63:13\n");
exit(16);
}
}
INT IDENT_TBL_asize_INT(IDENT_TBL self) {
INT noname73 = ((INT) 0);
return self->asize;
fprintf(stderr,"Last statement wasn't return ../Library/aref.sa:20:8\n");
exit(16);
}
IDENT IDENT_TBL_aget_I(IDENT_TBL self, INT ind_74) {
IDENT noname75 = IDENT_zero;
BOOL local0;
INT local1;
INT local2;
if ((!((self==((IDENT_TBL) NULL))))) {
local1 = 0;
local2 = (self->asize);
local0 = INT_is_bet_INT_I(ind_74, local1, (c_INT_minus_INT_INT_chk(local2,1)));
} else {
local0 = FALSE;
}
if (!(local0)) {
fprintf(stderr,"Violation of precondition ../Library/aref.sa:33:7\n");
exit(16);
}
if (ind_74<0||ind_74>=self->asize) {
fprintf(stderr,"Index out of bounds ../Library/aref.sa:33:7\n");
exit(16);
}
return self->arr_part[ind_74];
}
BOOL STR_is_eq_STR_BOOL(STR self, STR s_76) {
BOOL noname77 = ((BOOL) 0);
INT local0;
INT local1;
INT local2;
if ((self==((STR) NULL))) {
if ((s_76==((STR) NULL))) {
return TRUE;
}
else {
local0 = (s_76->asize);
if ((local0==0)) {
return TRUE;
}
else {
return FALSE;
}
}
}
else {
if ((s_76==((STR) NULL))) {
local1 = (self->asize);
if ((local1==0)) {
return TRUE;
}
else {
return FALSE;
}
}
else {
local2 = (self->asize);
if ((local2!=(s_76->asize))) {
return FALSE;
}
}
}
return ((memcmp(self->arr_part,s_76->arr_part,(self->asize))==0 ? TRUE : FALSE));
}
BOOL IDENT_TBL_query__78(IDENT_TBL self, STR s_79, IDENT i) {
BOOL noname80 = ((BOOL) 0);
return STR_is_eq_STR_BOOL(s_79, i.str_4);
if (!IDENT_TBL_invari(self)) {
fprintf(stderr,"Failed invariant IDENT_TBL::invariant:BOOL ./ident.sa:59:13\n");
exit(16);
}
}
IDENT IDENT_TBL_elt_ni(IDENT_TBL self) {
IDENT noname81 = IDENT_zero;
IDENT t = IDENT_zero;
return IDENT_zero;
if (!IDENT_TBL_invari(self)) {
fprintf(stderr,"Failed invariant IDENT_TBL::invariant:BOOL ../Library/fqset.sa:69:10\n");
exit(16);
}
}
BOOL IDENT_is_eq_IDEN(IDENT self, IDENT i) {
BOOL noname82 = ((BOOL) 0);
return c_SYS_ob_eq_OB_OB_BOOL(((OB) self.str_4),((OB) i.str_4));
}
BOOL IDENT_TBL_elt_eq(IDENT_TBL self, IDENT e1_83, IDENT e2_84) {
BOOL noname85 = ((BOOL) 0);
OB local0;
OB local1;
return IDENT_is_eq_IDEN(e1_83, e2_84);
local0 = (OB)((IDENT_boxed) sbi_alloc(sizeof(struct IDENT_boxed_struct), IDENT_tag));
((IDENT_boxed) local0)->value_part = e1_83;
local1 = (OB)((IDENT_boxed) sbi_alloc(sizeof(struct IDENT_boxed_struct), IDENT_tag));
((IDENT_boxed) local1)->value_part = e2_84;
return c_SYS_ob_eq_OB_OB_BOOL(local0,local1);
if (!IDENT_TBL_invari(self)) {
fprintf(stderr,"Failed invariant IDENT_TBL::invariant:BOOL ../Library/fqset.sa:62:9\n");
exit(16);
}
}
IDENT IDENT_TBL_get_qu(IDENT_TBL self, STR q) {
IDENT noname86 = IDENT_zero;
INT h = ((INT) 0);
IDENT e_87 = IDENT_zero;
IDENT e_88 = IDENT_zero;
INT local0;
INT local1;
INT local2;
INT local3;
if ((self==((IDENT_TBL) NULL))) {
return IDENT_zero;
}
local0 = IDENT_TBL_query_(self, q);
local1 = (self->asize);
h = (local0&(c_INT_minus_INT_INT_chk(local1,2)));
while (1) {
e_87 = IDENT_TBL_aget_I(self, h);
if (IDENT_TBL_query__78(self, q, e_87)) {
return e_87;
}
else {
if (IDENT_TBL_elt_eq(self, e_87, IDENT_TBL_elt_ni(self))) {
goto after_loop;
}
}
h = (c_INT_plus_INT_INT_chk(h,1));
}
after_loop: ;
local2 = (self->asize);
if ((h==(c_INT_minus_INT_INT_chk(local2,1)))) {
h = 0;
while (1) {
e_88 = IDENT_TBL_aget_I(self, h);
if (IDENT_TBL_query__78(self, q, e_88)) {
return e_88;
}
else {
if (IDENT_TBL_elt_eq(self, e_88, IDENT_TBL_elt_ni(self))) {
goto after_loop_90;
}
}
h = (c_INT_plus_INT_INT_chk(h,1));
}
after_loop_90: ;
local3 = (self->asize);
if (!((h!=(c_INT_minus_INT_INT_chk(local3,1))))) {
fprintf(stderr,"Violation of assertion ../Library/fqset.sa:142:15\n");
exit(16);
}
}
return IDENT_TBL_elt_ni(self);
if (!IDENT_TBL_invari(self)) {
fprintf(stderr,"Failed invariant IDENT_TBL::invariant:BOOL ../Library/fqset.sa:128:12\n");
exit(16);
}
}
IDENT IDENT_str_STR_IDENT(IDENT self, STR str_92) {
IDENT local0;
local0 = self;
local0.str_4 = str_92;
return local0;
}
IDENT IDENT_create_STR(IDENT self, STR s_93) {
IDENT noname94 = IDENT_zero;
IDENT r = IDENT_zero;
return IDENT_str_STR_IDENT(r, s_93);
}
IDENT_TBL IDENT_TBL_alloca(IDENT_TBL self, INT n) {
IDENT_TBL noname95;
IDENT_TBL r;
IDENT_TBL noname96;
IDENT_TBL local0;
local0 = ((IDENT_TBL) sbi_arr_alloc(sizeof(struct IDENT_TBL_struct), IDENT_TBL_tag, sizeof(IDENT) , n));
local0->asize = n;
r = local0;
if ((!(((IDENT_blob=IDENT_TBL_elt_ni(self)).str_4==(STR)0)))) {
{
struct IDENT_TBL_aset_IDENT_frame_struct temp97_0;
IDENT_TBL_aset_IDENT_frame
noname98 = &temp97_0;
noname98->state = 0;
while (1) {
if (noname98->state == 0) {
noname96 = r;
noname98->arg0 = noname96;
}
noname98->arg1 = IDENT_TBL_elt_ni(self);
IDENT_TBL_aset_IDENT(noname98);
if (noname98->state == -1) goto after_loop;
0 /* No return value from iter call */;
}
}
after_loop: ;
}
return r;
}
IDENT_TBL IDENT_TBL_double(IDENT_TBL self) {
IDENT_TBL noname99;
IDENT_TBL r;
IDENT_TBL noname100;
INT local0;
INT local1;
INT local2;
IDENT local3;
if (!((!((self==((IDENT_TBL) NULL)))))) {
fprintf(stderr,"Violation of precondition ../Library/fqset.sa:190:22\n");
exit(16);
}
local0 = (self->asize);
local1 = (c_INT_minus_INT_INT_chk(local0,1));
local2 = (c_INT_times_INT_INT_chk(local1,2));
r = IDENT_TBL_alloca(self, (c_INT_plus_INT_INT_chk(local2,1)));
{
struct IDENT_TBL_elt_IDENT_frame_struct temp101_0;
IDENT_TBL_elt_IDENT_frame
noname102 = &temp101_0;
noname102->state = 0;
while (1) {
if (noname102->state == 0) {
noname100 = self;
noname102->arg0 = noname100;
}
local3 = IDENT_TBL_elt_IDENT(noname102);
if (noname102->state == -1) goto after_loop;
r = IDENT_TBL_insert(r, local3);
}
}
after_loop: ;
return r;
}
INT IDENT_TBL_elt_ha(IDENT_TBL self, IDENT i) {
INT noname103 = ((INT) 0);
return STR_hash_INT(i.str_4);
if (!IDENT_TBL_invari(self)) {
fprintf(stderr,"Failed invariant IDENT_TBL::invariant:BOOL ./ident.sa:67:11\n");
exit(16);
}
}
void IDENT_TBL_aset_I(IDENT_TBL self, INT ind_104, IDENT val_105) {
BOOL local0;
INT local1;
INT local2;
if ((!((self==((IDENT_TBL) NULL))))) {
local1 = 0;
local2 = (self->asize);
local0 = INT_is_bet_INT_I(ind_104, local1, (c_INT_minus_INT_INT_chk(local2,1)));
} else {
local0 = FALSE;
}
if (!(local0)) {
fprintf(stderr,"Violation of precondition ../Library/aref.sa:38:7\n");
exit(16);
}
if (ind_104<0||ind_104>=self->asize) {
fprintf(stderr,"Index out of bounds ../Library/aref.sa:38:7\n");
exit(16);
}
self->arr_part[ind_104] = val_105;
}
IDENT_TBL IDENT_TBL_insert(IDENT_TBL self, IDENT e_106) {
IDENT_TBL noname107;
IDENT_TBL r;
INT asz_108 = ((INT) 0);
INT h = ((INT) 0);
IDENT te = IDENT_zero;
IDENT te_109 = IDENT_zero;
INT local0;
INT local1;
INT local2;
r = self;
if (IDENT_TBL_elt_eq(self, e_106, IDENT_TBL_elt_ni(self))) {
return r;
}
if ((r==((IDENT_TBL) NULL))) {
r = IDENT_TBL_alloca(self, 5);
}
else {
local0 = (c_INT_plus_INT_INT_chk(self->hsize,1));
local1 = (c_INT_times_INT_INT_chk(local0,2));
if ((local1>(self->asize))) {
r = IDENT_TBL_double(r);
}
}
asz_108 = (r->asize);
local2 = IDENT_TBL_elt_ha(r, e_106);
h = (local2&(c_INT_minus_INT_INT_chk(asz_108,2)));
while (1) {
te = IDENT_TBL_aget_I(r, h);
if (IDENT_TBL_elt_eq(self, te, IDENT_TBL_elt_ni(self))) {
goto after_loop;
}
else {
if (IDENT_TBL_elt_eq(self, te, e_106)) {
IDENT_TBL_aset_I(r, h, e_106);
return r;
}
}
h = (c_INT_plus_INT_INT_chk(h,1));
}
after_loop: ;
if ((h==(c_INT_minus_INT_INT_chk(asz_108,1)))) {
h = 0;
while (1) {
te_109 = IDENT_TBL_aget_I(r, h);
if (IDENT_TBL_elt_eq(self, te_109, IDENT_TBL_elt_ni(self))) {
goto after_loop_111;
}
else {
if (IDENT_TBL_elt_eq(self, te_109, e_106)) {
IDENT_TBL_aset_I(r, h, e_106);
return r;
}
}
h = (c_INT_plus_INT_INT_chk(h,1));
}
after_loop_111: ;
if (!((h!=(c_INT_minus_INT_INT_chk(asz_108,1))))) {
fprintf(stderr,"Violation of assertion ../Library/fqset.sa:218:15\n");
exit(16);
}
}
IDENT_TBL_aset_I(r, h, e_106);
r->hsize = (c_INT_plus_INT_INT_chk(r->hsize,1));
return r;
if (!IDENT_TBL_invari(self)) {
fprintf(stderr,"Failed invariant IDENT_TBL::invariant:BOOL ../Library/fqset.sa:198:9\n");
exit(16);
}
}
IDENT PROG_ident_for_S(PROG self, STR s_113) {
IDENT noname114 = IDENT_zero;
IDENT i = IDENT_zero;
i = IDENT_TBL_get_qu(self->ident_tbl, s_113);
if ((i.str_4==(STR)0)) {
i = IDENT_create_STR(IDENT_zero, s_113);
self->ident_tbl = IDENT_TBL_insert(self->ident_tbl, i);
}
return i;
}
TUPIDENTARRAYTP TUPIDENTARRAYTP_(TUPIDENTARRAYTP self, IDENT t1_115) {
TUPIDENTARRAYTP local0;
local0 = self;
local0.t1 = t1_115;
return local0;
}
TUPIDENTARRAYTP TUPIDENTARRAYTP__116(TUPIDENTARRAYTP self, ARRAYTP t2_117) {
TUPIDENTARRAYTP local0;
local0 = self;
local0.t2 = t2_117;
return local0;
}
TUPIDENTARRAYTP TUPIDENTARRAYTP__118(TUPIDENTARRAYTP self, IDENT at1, ARRAYTP at2) {
TUPIDENTARRAYTP noname119 = TUPIDENTARRAYTP_zero;
TUPIDENTARRAYTP local0;
local0 = TUPIDENTARRAYTP_(self, at1);
return TUPIDENTARRAYTP__116(local0, at2);
}
INT IDENT_hash_INT(IDENT self) {
INT noname120 = ((INT) 0);
INT x = ((INT) 0);
INT local0;
x = (c_SYS_id_OB_INT(((SYS) NULL),((OB) self.str_4)));
local0 = (c_INT_times_INT_INT_chk(x,1664525));
return (c_INT_plus_INT_INT_chk(local0,1013904223));
}
INT TP_CLASS_TBL_que(TP_CLASS_TBL self, TUPIDENTARRAYTP q) {
INT noname121 = ((INT) 0);
INT s_122 = ((INT) 0);
INT r = ((INT) 0);
ARRAYTP noname123;
SYS local0;
TP local1;
INT local2;
s_122 = 3;
r = IDENT_hash_INT(q.t1);
{
struct ARRAYTP_elt_TP_frame_struct temp124_0;
ARRAYTP_elt_TP_frame
noname125 = &temp124_0;
noname125->state = 0;
while (1) {
s_122 = (c_INT_plus_INT_INT_chk(s_122,98));
local0 = ((SYS) NULL);
if (noname125->state == 0) {
noname123 = q.t2;
noname125->arg0 = noname123;
}
local1 = ARRAYTP_elt_TP(noname125);
if (noname125->state == -1) goto after_loop;
local2 = (c_SYS_id_OB_INT(local0,((OB) local1)));
r = (r^(c_INT_times_INT_INT_chk(local2,s_122)));
}
}
after_loop: ;
return r;
if (!TP_CLASS_TBL_inv(self)) {
fprintf(stderr,"Failed invariant TP_CLASS_TBL::invariant:BOOL ./tp.sa:554:13\n");
exit(16);
}
}
INT TP_CLASS_TBL_asi(TP_CLASS_TBL self) {
INT noname126 = ((INT) 0);
return self->asize;
fprintf(stderr,"Last statement wasn't return ../Library/aref.sa:20:8\n");
exit(16);
}
TP_CLASS TP_CLASS_TBL_age(TP_CLASS_TBL self, INT ind_127) {
TP_CLASS noname128;
BOOL local0;
INT local1;
INT local2;
if ((!((self==((TP_CLASS_TBL) NULL))))) {
local1 = 0;
local2 = (self->asize);
local0 = INT_is_bet_INT_I(ind_127, local1, (c_INT_minus_INT_INT_chk(local2,1)));
} else {
local0 = FALSE;
}
if (!(local0)) {
fprintf(stderr,"Violation of precondition ../Library/aref.sa:33:7\n");
exit(16);
}
if (ind_127<0||ind_127>=self->asize) {
fprintf(stderr,"Index out of bounds ../Library/aref.sa:33:7\n");
exit(16);
}
return self->arr_part[ind_127];
}
BOOL IDENT_is_neq_IDE(IDENT self, IDENT i) {
BOOL noname129 = ((BOOL) 0);
return (!(c_SYS_ob_eq_OB_OB_BOOL(((OB) self.str_4),((OB) i.str_4))));
}
INT ARRAYTP_asize_INT(ARRAYTP self) {
INT noname130 = ((INT) 0);
return self->asize;
fprintf(stderr,"Last statement wasn't return ../Library/aref.sa:20:8\n");
exit(16);
}
INT ARRAYTP_size_INT(ARRAYTP self) {
INT noname131 = ((INT) 0);
if ((self==((ARRAYTP) NULL))) {
return 0;
}
return (self->asize);
}
BOOL TP_CLASS_TBL_que_132(TP_CLASS_TBL self, TUPIDENTARRAYTP q, TP_CLASS t) {
BOOL noname133 = ((BOOL) 0);
ARRAYTP noname134;
ARRAYTP noname135;
INT local0;
TP local1;
TP local2;
TP local3;
TP local4;
if ((t==((TP_CLASS) NULL))) {
return FALSE;
}
if (IDENT_is_neq_IDE(q.t1, t->name_19)) {
return FALSE;
}
local0 = ARRAYTP_size_INT(q.t2);
if ((local0!=ARRAYTP_size_INT(t->params))) {
return FALSE;
}
{
struct ARRAYTP_elt_TP_frame_struct temp136_0;
ARRAYTP_elt_TP_frame
noname137 = &temp136_0;
struct ARRAYTP_elt_TP_frame_struct temp136_1;
ARRAYTP_elt_TP_frame
noname138 = &temp136_1;
noname137->state = 0;
noname138->state = 0;
while (1) {
if (noname137->state == 0) {
noname134 = q.t2;
noname137->arg0 = noname134;
}
local1 = ARRAYTP_elt_TP(noname137);
if (noname137->state == -1) goto after_loop;
local2 = local1;
if (noname138->state == 0) {
noname135 = t->params;
noname138->arg0 = noname135;
}
local3 = ARRAYTP_elt_TP(noname138);
if (noname138->state == -1) goto after_loop;
local4 = local2;
if ((*TP_is_neq_TP_BOOL[local4->header.tag+TP_is_neq_TP_BOOL_offset])(local4, local3)) {
return FALSE;
}
}
}
after_loop: ;
return TRUE;
if (!TP_CLASS_TBL_inv(self)) {
fprintf(stderr,"Failed invariant TP_CLASS_TBL::invariant:BOOL ./tp.sa:546:13\n");
exit(16);
}
}
TP_CLASS TP_CLASS_TBL_elt(TP_CLASS_TBL self) {
TP_CLASS noname139;
TP_CLASS t = ((TP_CLASS) NULL);
return ((TP_CLASS) NULL);
if (!TP_CLASS_TBL_inv(self)) {
fprintf(stderr,"Failed invariant TP_CLASS_TBL::invariant:BOOL ../Library/fqset.sa:69:10\n");
exit(16);
}
}
BOOL TP_CLASS_TBL_elt_140(TP_CLASS_TBL self, TP_CLASS e1_141, TP_CLASS e2_142) {
BOOL noname143 = ((BOOL) 0);
return c_SYS_ob_eq_OB_OB_BOOL(((OB) e1_141),((OB) e2_142));
if (!TP_CLASS_TBL_inv(self)) {
fprintf(stderr,"Failed invariant TP_CLASS_TBL::invariant:BOOL ../Library/fqset.sa:62:9\n");
exit(16);
}
}
TP_CLASS TP_CLASS_TBL_get(TP_CLASS_TBL self, TUPIDENTARRAYTP q) {
TP_CLASS noname144;
INT h = ((INT) 0);
TP_CLASS e_145;
TP_CLASS e_146;
INT local0;
INT local1;
INT local2;
INT local3;
if ((self==((TP_CLASS_TBL) NULL))) {
return ((TP_CLASS) NULL);
}
local0 = TP_CLASS_TBL_que(self, q);
local1 = (self->asize);
h = (local0&(c_INT_minus_INT_INT_chk(local1,2)));
while (1) {
e_145 = TP_CLASS_TBL_age(self, h);
if (TP_CLASS_TBL_que_132(self, q, e_145)) {
return e_145;
}
else {
if (TP_CLASS_TBL_elt_140(self, e_145, TP_CLASS_TBL_elt(self))) {
goto after_loop;
}
}
h = (c_INT_plus_INT_INT_chk(h,1));
}
after_loop: ;
local2 = (self->asize);
if ((h==(c_INT_minus_INT_INT_chk(local2,1)))) {
h = 0;
while (1) {
e_146 = TP_CLASS_TBL_age(self, h);
if (TP_CLASS_TBL_que_132(self, q, e_146)) {
return e_146;
}
else {
if (TP_CLASS_TBL_elt_140(self, e_146, TP_CLASS_TBL_elt(self))) {
goto after_loop_148;
}
}
h = (c_INT_plus_INT_INT_chk(h,1));
}
after_loop_148: ;
local3 = (self->asize);
if (!((h!=(c_INT_minus_INT_INT_chk(local3,1))))) {
fprintf(stderr,"Violation of assertion ../Library/fqset.sa:142:15\n");
exit(16);
}
}
return TP_CLASS_TBL_elt(self);
if (!TP_CLASS_TBL_inv(self)) {
fprintf(stderr,"Failed invariant TP_CLASS_TBL::invariant:BOOL ../Library/fqset.sa:128:12\n");
exit(16);
}
}
TP_CLASS TP_CLASS_create_(TP_CLASS self, IDENT name_150, ARRAYTP params_151, PROG prog_152) {
TP_CLASS noname153;
TP_CLASS r;
TP_CLASS local0;
local0 = ((TP_CLASS) sbi_alloc(sizeof(struct TP_CLASS_struct), TP_CLASS_tag));
r = local0;
r->name_19 = name_150;
r->params = params_151;
r->prog = prog_152;
r->kind_cache = shared_TP_KIND_m;
r->use_cached_atomic = FALSE;
return r;
}
TP_CLASS_TBL TP_CLASS_TBL_all(TP_CLASS_TBL self, INT n) {
TP_CLASS_TBL noname154;
TP_CLASS_TBL r;
TP_CLASS_TBL noname155;
TP_CLASS_TBL local0;
local0 = ((TP_CLASS_TBL) sbi_arr_alloc(sizeof(struct TP_CLASS_TBL_struct), TP_CLASS_TBL_tag, sizeof(TP_CLASS) , n));
local0->asize = n;
r = local0;
if ((!((TP_CLASS_TBL_elt(self)==((TP_CLASS) NULL))))) {
{
struct TP_CLASS_TBL_ase_frame_struct temp156_0;
TP_CLASS_TBL_ase_frame
noname157 = &temp156_0;
noname157->state = 0;
while (1) {
if (noname157->state == 0) {
noname155 = r;
noname157->arg0 = noname155;
}
noname157->arg1 = TP_CLASS_TBL_elt(self);
TP_CLASS_TBL_ase(noname157);
if (noname157->state == -1) goto after_loop;
0 /* No return value from iter call */;
}
}
after_loop: ;
}
return r;
}
TP_CLASS_TBL TP_CLASS_TBL_dou(TP_CLASS_TBL self) {
TP_CLASS_TBL noname158;
TP_CLASS_TBL r;
TP_CLASS_TBL noname159;
INT local0;
INT local1;
INT local2;
TP_CLASS local3;
if (!((!((self==((TP_CLASS_TBL) NULL)))))) {
fprintf(stderr,"Violation of precondition ../Library/fqset.sa:190:22\n");
exit(16);
}
local0 = (self->asize);
local1 = (c_INT_minus_INT_INT_chk(local0,1));
local2 = (c_INT_times_INT_INT_chk(local1,2));
r = TP_CLASS_TBL_all(self, (c_INT_plus_INT_INT_chk(local2,1)));
{
struct TP_CLASS_TBL_elt_161_frame_struct temp160_0;
TP_CLASS_TBL_elt_161_frame
noname162 = &temp160_0;
noname162->state = 0;
while (1) {
if (noname162->state == 0) {
noname159 = self;
noname162->arg0 = noname159;
}
local3 = TP_CLASS_TBL_elt_161(noname162);
if (noname162->state == -1) goto after_loop;
r = TP_CLASS_TBL_ins(r, local3);
}
}
after_loop: ;
return r;
}
INT TP_CLASS_TBL_elt_163(TP_CLASS_TBL self, TP_CLASS e_164) {
INT noname165 = ((INT) 0);
INT s_166 = ((INT) 0);
INT r = ((INT) 0);
ARRAYTP noname167;
SYS local0;
TP local1;
INT local2;
s_166 = 3;
r = IDENT_hash_INT(e_164->name_19);
{
struct ARRAYTP_elt_TP_frame_struct temp168_0;
ARRAYTP_elt_TP_frame
noname169 = &temp168_0;
noname169->state = 0;
while (1) {
s_166 = (c_INT_plus_INT_INT_chk(s_166,98));
local0 = ((SYS) NULL);
if (noname169->state == 0) {
noname167 = e_164->params;
noname169->arg0 = noname167;
}
local1 = ARRAYTP_elt_TP(noname169);
if (noname169->state == -1) goto after_loop;
local2 = (c_SYS_id_OB_INT(local0,((OB) local1)));
r = (r^(c_INT_times_INT_INT_chk(local2,s_166)));
}
}
after_loop: ;
return r;
if (!TP_CLASS_TBL_inv(self)) {
fprintf(stderr,"Failed invariant TP_CLASS_TBL::invariant:BOOL ./tp.sa:561:11\n");
exit(16);
}
}
void TP_CLASS_TBL_ase_170(TP_CLASS_TBL self, INT ind_171, TP_CLASS val_172) {
BOOL local0;
INT local1;
INT local2;
if ((!((self==((TP_CLASS_TBL) NULL))))) {
local1 = 0;
local2 = (self->asize);
local0 = INT_is_bet_INT_I(ind_171, local1, (c_INT_minus_INT_INT_chk(local2,1)));
} else {
local0 = FALSE;
}
if (!(local0)) {
fprintf(stderr,"Violation of precondition ../Library/aref.sa:38:7\n");
exit(16);
}
if (ind_171<0||ind_171>=self->asize) {
fprintf(stderr,"Index out of bounds ../Library/aref.sa:38:7\n");
exit(16);
}
self->arr_part[ind_171] = val_172;
}
TP_CLASS_TBL TP_CLASS_TBL_ins(TP_CLASS_TBL self, TP_CLASS e_173) {
TP_CLASS_TBL noname174;
TP_CLASS_TBL r;
INT asz_175 = ((INT) 0);
INT h = ((INT) 0);
TP_CLASS te;
TP_CLASS te_176;
INT local0;
INT local1;
INT local2;
r = self;
if (TP_CLASS_TBL_elt_140(self, e_173, TP_CLASS_TBL_elt(self))) {
return r;
}
if ((r==((TP_CLASS_TBL) NULL))) {
r = TP_CLASS_TBL_all(self, 5);
}
else {
local0 = (c_INT_plus_INT_INT_chk(self->hsize,1));
local1 = (c_INT_times_INT_INT_chk(local0,2));
if ((local1>(self->asize))) {
r = TP_CLASS_TBL_dou(r);
}
}
asz_175 = (r->asize);
local2 = TP_CLASS_TBL_elt_163(r, e_173);
h = (local2&(c_INT_minus_INT_INT_chk(asz_175,2)));
while (1) {
te = TP_CLASS_TBL_age(r, h);
if (TP_CLASS_TBL_elt_140(self, te, TP_CLASS_TBL_elt(self))) {
goto after_loop;
}
else {
if (TP_CLASS_TBL_elt_140(self, te, e_173)) {
TP_CLASS_TBL_ase_170(r, h, e_173);
return r;
}
}
h = (c_INT_plus_INT_INT_chk(h,1));
}
after_loop: ;
if ((h==(c_INT_minus_INT_INT_chk(asz_175,1)))) {
h = 0;
while (1) {
te_176 = TP_CLASS_TBL_age(r, h);
if (TP_CLASS_TBL_elt_140(self, te_176, TP_CLASS_TBL_elt(self))) {
goto after_loop_178;
}
else {
if (TP_CLASS_TBL_elt_140(self, te_176, e_173)) {
TP_CLASS_TBL_ase_170(r, h, e_173);
return r;
}
}
h = (c_INT_plus_INT_INT_chk(h,1));
}
after_loop_178: ;
if (!((h!=(c_INT_minus_INT_INT_chk(asz_175,1))))) {
fprintf(stderr,"Violation of assertion ../Library/fqset.sa:218:15\n");
exit(16);
}
}
TP_CLASS_TBL_ase_170(r, h, e_173);
r->hsize = (c_INT_plus_INT_INT_chk(r->hsize,1));
return r;
if (!TP_CLASS_TBL_inv(self)) {
fprintf(stderr,"Failed invariant TP_CLASS_TBL::invariant:BOOL ../Library/fqset.sa:198:9\n");
exit(16);
}
}
TP_CLASS TP_TBL_tp_class_(TP_TBL self, IDENT name_180, ARRAYTP params_181) {
TP_CLASS noname182;
TP_CLASS r;
TP_CLASS_TBL local0;
local0 = self->class_tbl;
r = TP_CLASS_TBL_get(local0, TUPIDENTARRAYTP__118(TUPIDENTARRAYTP_zero, name_180, params_181));
if ((r==((TP_CLASS) NULL))) {
r = TP_CLASS_create_(((TP_CLASS) NULL), name_180, params_181, self->prog);
self->class_tbl = TP_CLASS_TBL_ins(self->class_tbl, r);
}
return r;
}
TUPARRAYTPTP TUPARRAYTPTP_t1_(TUPARRAYTPTP self, ARRAYTP t1_183) {
TUPARRAYTPTP local0;
local0 = self;
local0.t1 = t1_183;
return local0;
}
TUPARRAYTPTP TUPARRAYTPTP_t2_(TUPARRAYTPTP self, TP t2_184) {
TUPARRAYTPTP local0;
local0 = self;
local0.t2 = t2_184;
return local0;
}
TUPARRAYTPTP TUPARRAYTPTP_cre(TUPARRAYTPTP self, ARRAYTP at1, TP at2) {
TUPARRAYTPTP noname185 = TUPARRAYTPTP_zero;
TUPARRAYTPTP local0;
local0 = TUPARRAYTPTP_t1_(self, at1);
return TUPARRAYTPTP_t2_(local0, at2);
}
INT TP_ROUT_TBL_quer(TP_ROUT_TBL self, TUPARRAYTPTP q) {
INT noname186 = ((INT) 0);
INT s_187 = ((INT) 0);
INT r = ((INT) 0);
ARRAYTP noname188;
SYS local0;
TP local1;
INT local2;
s_187 = 3;
r = 0;
if ((!((q.t2==((TP) NULL))))) {
r = (c_SYS_id_OB_INT(((SYS) NULL),((OB) q.t2)));
}
{
struct ARRAYTP_elt_TP_frame_struct temp189_0;
ARRAYTP_elt_TP_frame
noname190 = &temp189_0;
noname190->state = 0;
while (1) {
local0 = ((SYS) NULL);
if (noname190->state == 0) {
noname188 = q.t1;
noname190->arg0 = noname188;
}
local1 = ARRAYTP_elt_TP(noname190);
if (noname190->state == -1) goto after_loop;
local2 = (c_SYS_id_OB_INT(local0,((OB) local1)));
r = (r^(c_INT_times_INT_INT_chk(local2,s_187)));
s_187 = (c_INT_plus_INT_INT_chk(s_187,98));
}
}
after_loop: ;
return r;
if (!TP_ROUT_TBL_inva(self)) {
fprintf(stderr,"Failed invariant TP_ROUT_TBL::invariant:BOOL ./tp.sa:591:13\n");
exit(16);
}
}
INT TP_ROUT_TBL_asiz(TP_ROUT_TBL self) {
INT noname191 = ((INT) 0);
return self->asize;
fprintf(stderr,"Last statement wasn't return ../Library/aref.sa:20:8\n");
exit(16);
}
TP_ROUT TP_ROUT_TBL_aget(TP_ROUT_TBL self, INT ind_192) {
TP_ROUT noname193;
BOOL local0;
INT local1;
INT local2;
if ((!((self==((TP_ROUT_TBL) NULL))))) {
local1 = 0;
local2 = (self->asize);
local0 = INT_is_bet_INT_I(ind_192, local1, (c_INT_minus_INT_INT_chk(local2,1)));
} else {
local0 = FALSE;
}
if (!(local0)) {
fprintf(stderr,"Violation of precondition ../Library/aref.sa:33:7\n");
exit(16);
}
if (ind_192<0||ind_192>=self->asize) {
fprintf(stderr,"Index out of bounds ../Library/aref.sa:33:7\n");
exit(16);
}
return self->arr_part[ind_192];
}
BOOL TP_ROUT_TBL_quer_194(TP_ROUT_TBL self, TUPARRAYTPTP q, TP_ROUT t) {
BOOL noname195 = ((BOOL) 0);
ARRAYTP noname196;
ARRAYTP noname197;
TP local0;
INT local1;
TP local2;
TP local3;
TP local4;
TP local5;
if ((t==((TP_ROUT) NULL))) {
return FALSE;
}
if ((q.t2==((TP) NULL))) {
if ((!((t->ret==((TP) NULL))))) {
return FALSE;
}
}
else {
local0 = q.t2;
if ((*TP_is_neq_TP_BOOL[local0->header.tag+TP_is_neq_TP_BOOL_offset])(local0, t->ret)) {
return FALSE;
}
}
local1 = ARRAYTP_size_INT(q.t1);
if ((local1!=ARRAYTP_size_INT(t->args_7))) {
return FALSE;
}
{
struct ARRAYTP_elt_TP_frame_struct temp198_0;
ARRAYTP_elt_TP_frame
noname199 = &temp198_0;
struct ARRAYTP_elt_TP_frame_struct temp198_1;
ARRAYTP_elt_TP_frame
noname200 = &temp198_1;
noname199->state = 0;
noname200->state = 0;
while (1) {
if (noname199->state == 0) {
noname196 = q.t1;
noname199->arg0 = noname196;
}
local2 = ARRAYTP_elt_TP(noname199);
if (noname199->state == -1) goto after_loop;
local3 = local2;
if (noname200->state == 0) {
noname197 = t->args_7;
noname200->arg0 = noname197;
}
local4 = ARRAYTP_elt_TP(noname200);
if (noname200->state == -1) goto after_loop;
local5 = local3;
if ((*TP_is_neq_TP_BOOL[local5->header.tag+TP_is_neq_TP_BOOL_offset])(local5, local4)) {
return FALSE;
}
}
}
after_loop: ;
return TRUE;
if (!TP_ROUT_TBL_inva(self)) {
fprintf(stderr,"Failed invariant TP_ROUT_TBL::invariant:BOOL ./tp.sa:581:13\n");
exit(16);
}
}
TP_ROUT TP_ROUT_TBL_elt_(TP_ROUT_TBL self) {
TP_ROUT noname201;
TP_ROUT t = ((TP_ROUT) NULL);
return ((TP_ROUT) NULL);
if (!TP_ROUT_TBL_inva(self)) {
fprintf(stderr,"Failed invariant TP_ROUT_TBL::invariant:BOOL ../Library/fqset.sa:69:10\n");
exit(16);
}
}
BOOL TP_ROUT_TBL_elt__202(TP_ROUT_TBL self, TP_ROUT e1_203, TP_ROUT e2_204) {
BOOL noname205 = ((BOOL) 0);
return c_SYS_ob_eq_OB_OB_BOOL(((OB) e1_203),((OB) e2_204));
if (!TP_ROUT_TBL_inva(self)) {
fprintf(stderr,"Failed invariant TP_ROUT_TBL::invariant:BOOL ../Library/fqset.sa:62:9\n");
exit(16);
}
}
TP_ROUT TP_ROUT_TBL_get_(TP_ROUT_TBL self, TUPARRAYTPTP q) {
TP_ROUT noname206;
INT h = ((INT) 0);
TP_ROUT e_207;
TP_ROUT e_208;
INT local0;
INT local1;
INT local2;
INT local3;
if ((self==((TP_ROUT_TBL) NULL))) {
return ((TP_ROUT) NULL);
}
local0 = TP_ROUT_TBL_quer(self, q);
local1 = (self->asize);
h = (local0&(c_INT_minus_INT_INT_chk(local1,2)));
while (1) {
e_207 = TP_ROUT_TBL_aget(self, h);
if (TP_ROUT_TBL_quer_194(self, q, e_207)) {
return e_207;
}
else {
if (TP_ROUT_TBL_elt__202(self, e_207, TP_ROUT_TBL_elt_(self))) {
goto after_loop;
}
}
h = (c_INT_plus_INT_INT_chk(h,1));
}
after_loop: ;
local2 = (self->asize);
if ((h==(c_INT_minus_INT_INT_chk(local2,1)))) {
h = 0;
while (1) {
e_208 = TP_ROUT_TBL_aget(self, h);
if (TP_ROUT_TBL_quer_194(self, q, e_208)) {
return e_208;
}
else {
if (TP_ROUT_TBL_elt__202(self, e_208, TP_ROUT_TBL_elt_(self))) {
goto after_loop_210;
}
}
h = (c_INT_plus_INT_INT_chk(h,1));
}
after_loop_210: ;
local3 = (self->asize);
if (!((h!=(c_INT_minus_INT_INT_chk(local3,1))))) {
fprintf(stderr,"Violation of assertion ../Library/fqset.sa:142:15\n");
exit(16);
}
}
return TP_ROUT_TBL_elt_(self);
if (!TP_ROUT_TBL_inva(self)) {
fprintf(stderr,"Failed invariant TP_ROUT_TBL::invariant:BOOL ../Library/fqset.sa:128:12\n");
exit(16);
}
}
TP_ROUT TP_ROUT_create_A(TP_ROUT self, ARRAYTP args_212, TP ret_213, PROG prog_214) {
TP_ROUT noname215;
TP_ROUT r;
TP_ROUT local0;
local0 = ((TP_ROUT) sbi_alloc(sizeof(struct TP_ROUT_struct), TP_ROUT_tag));
r = local0;
r->args_7 = args_212;
r->ret = ret_213;
r->prog = prog_214;
return r;
}
TP_ROUT_TBL TP_ROUT_TBL_allo(TP_ROUT_TBL self, INT n) {
TP_ROUT_TBL noname216;
TP_ROUT_TBL r;
TP_ROUT_TBL noname217;
TP_ROUT_TBL local0;
local0 = ((TP_ROUT_TBL) sbi_arr_alloc(sizeof(struct TP_ROUT_TBL_struct), TP_ROUT_TBL_tag, sizeof(TP_ROUT) , n));
local0->asize = n;
r = local0;
if ((!((TP_ROUT_TBL_elt_(self)==((TP_ROUT) NULL))))) {
{
struct TP_ROUT_TBL_aset_frame_struct temp218_0;
TP_ROUT_TBL_aset_frame
noname219 = &temp218_0;
noname219->state = 0;
while (1) {
if (noname219->state == 0) {
noname217 = r;
noname219->arg0 = noname217;
}
noname219->arg1 = TP_ROUT_TBL_elt_(self);
TP_ROUT_TBL_aset(noname219);
if (noname219->state == -1) goto after_loop;
0 /* No return value from iter call */;
}
}
after_loop: ;
}
return r;
}
TP_ROUT_TBL TP_ROUT_TBL_doub(TP_ROUT_TBL self) {
TP_ROUT_TBL noname220;
TP_ROUT_TBL r;
TP_ROUT_TBL noname221;
INT local0;
INT local1;
INT local2;
TP_ROUT local3;
if (!((!((self==((TP_ROUT_TBL) NULL)))))) {
fprintf(stderr,"Violation of precondition ../Library/fqset.sa:190:22\n");
exit(16);
}
local0 = (self->asize);
local1 = (c_INT_minus_INT_INT_chk(local0,1));
local2 = (c_INT_times_INT_INT_chk(local1,2));
r = TP_ROUT_TBL_allo(self, (c_INT_plus_INT_INT_chk(local2,1)));
{
struct TP_ROUT_TBL_elt__223_frame_struct temp222_0;
TP_ROUT_TBL_elt__223_frame
noname224 = &temp222_0;
noname224->state = 0;
while (1) {
if (noname224->state == 0) {
noname221 = self;
noname224->arg0 = noname221;
}
local3 = TP_ROUT_TBL_elt__223(noname224);
if (noname224->state == -1) goto after_loop;
r = TP_ROUT_TBL_inse(r, local3);
}
}
after_loop: ;
return r;
}
INT TP_ROUT_TBL_elt__225(TP_ROUT_TBL self, TP_ROUT e_226) {
INT noname227 = ((INT) 0);
INT s_228 = ((INT) 0);
INT r = ((INT) 0);
ARRAYTP noname229;
SYS local0;
TP local1;
INT local2;
s_228 = 3;
r = 0;
if ((!((e_226->ret==((TP) NULL))))) {
r = (c_SYS_id_OB_INT(((SYS) NULL),((OB) e_226->ret)));
}
{
struct ARRAYTP_elt_TP_frame_struct temp230_0;
ARRAYTP_elt_TP_frame
noname231 = &temp230_0;
noname231->state = 0;
while (1) {
local0 = ((SYS) NULL);
if (noname231->state == 0) {
noname229 = e_226->args_7;
noname231->arg0 = noname229;
}
local1 = ARRAYTP_elt_TP(noname231);
if (noname231->state == -1) goto after_loop;
local2 = (c_SYS_id_OB_INT(local0,((OB) local1)));
r = (r^(c_INT_times_INT_INT_chk(local2,s_228)));
s_228 = (c_INT_plus_INT_INT_chk(s_228,98));
}
}
after_loop: ;
return r;
if (!TP_ROUT_TBL_inva(self)) {
fprintf(stderr,"Failed invariant TP_ROUT_TBL::invariant:BOOL ./tp.sa:599:11\n");
exit(16);
}
}
void TP_ROUT_TBL_aset_232(TP_ROUT_TBL self, INT ind_233, TP_ROUT val_234) {
BOOL local0;
INT local1;
INT local2;
if ((!((self==((TP_ROUT_TBL) NULL))))) {
local1 = 0;
local2 = (self->asize);
local0 = INT_is_bet_INT_I(ind_233, local1, (c_INT_minus_INT_INT_chk(local2,1)));
} else {
local0 = FALSE;
}
if (!(local0)) {
fprintf(stderr,"Violation of precondition ../Library/aref.sa:38:7\n");
exit(16);
}
if (ind_233<0||ind_233>=self->asize) {
fprintf(stderr,"Index out of bounds ../Library/aref.sa:38:7\n");
exit(16);
}
self->arr_part[ind_233] = val_234;
}
TP_ROUT_TBL TP_ROUT_TBL_inse(TP_ROUT_TBL self, TP_ROUT e_235) {
TP_ROUT_TBL noname236;
TP_ROUT_TBL r;
INT asz_237 = ((INT) 0);
INT h = ((INT) 0);
TP_ROUT te;
TP_ROUT te_238;
INT local0;
INT local1;
INT local2;
r = self;
if (TP_ROUT_TBL_elt__202(self, e_235, TP_ROUT_TBL_elt_(self))) {
return r;
}
if ((r==((TP_ROUT_TBL) NULL))) {
r = TP_ROUT_TBL_allo(self, 5);
}
else {
local0 = (c_INT_plus_INT_INT_chk(self->hsize,1));
local1 = (c_INT_times_INT_INT_chk(local0,2));
if ((local1>(self->asize))) {
r = TP_ROUT_TBL_doub(r);
}
}
asz_237 = (r->asize);
local2 = TP_ROUT_TBL_elt__225(r, e_235);
h = (local2&(c_INT_minus_INT_INT_chk(asz_237,2)));
while (1) {
te = TP_ROUT_TBL_aget(r, h);
if (TP_ROUT_TBL_elt__202(self, te, TP_ROUT_TBL_elt_(self))) {
goto after_loop;
}
else {
if (TP_ROUT_TBL_elt__202(self, te, e_235)) {
TP_ROUT_TBL_aset_232(r, h, e_235);
return r;
}
}
h = (c_INT_plus_INT_INT_chk(h,1));
}
after_loop: ;
if ((h==(c_INT_minus_INT_INT_chk(asz_237,1)))) {
h = 0;
while (1) {
te_238 = TP_ROUT_TBL_aget(r, h);
if (TP_ROUT_TBL_elt__202(self, te_238, TP_ROUT_TBL_elt_(self))) {
goto after_loop_240;
}
else {
if (TP_ROUT_TBL_elt__202(self, te_238, e_235)) {
TP_ROUT_TBL_aset_232(r, h, e_235);
return r;
}
}
h = (c_INT_plus_INT_INT_chk(h,1));
}
after_loop_240: ;
if (!((h!=(c_INT_minus_INT_INT_chk(asz_237,1))))) {
fprintf(stderr,"Violation of assertion ../Library/fqset.sa:218:15\n");
exit(16);
}
}
TP_ROUT_TBL_aset_232(r, h, e_235);
r->hsize = (c_INT_plus_INT_INT_chk(r->hsize,1));
return r;
if (!TP_ROUT_TBL_inva(self)) {
fprintf(stderr,"Failed invariant TP_ROUT_TBL::invariant:BOOL ../Library/fqset.sa:198:9\n");
exit(16);
}
}
TP_ROUT TP_TBL_tp_rout_f(TP_TBL self, ARRAYTP args_242, TP ret_243) {
TP_ROUT noname244;
TP_ROUT r;
TP_ROUT_TBL local0;
local0 = self->rout_tbl;
r = TP_ROUT_TBL_get_(local0, TUPARRAYTPTP_cre(TUPARRAYTPTP_zero, args_242, ret_243));
if ((r==((TP_ROUT) NULL))) {
r = TP_ROUT_create_A(((TP_ROUT) NULL), args_242, ret_243, self->prog);
self->rout_tbl = TP_ROUT_TBL_inse(self->rout_tbl, r);
}
return r;
}
ARRAYTP ARRAYTP_create_I(ARRAYTP self, INT n) {
ARRAYTP noname245;
ARRAYTP local0;
if (!((n>=0))) {
fprintf(stderr,"Violation of precondition ../Library/array.sa:56:9\n");
exit(16);
}
local0 = ((ARRAYTP) sbi_arr_alloc(sizeof(struct ARRAYTP_struct), ARRAYTP_tag, sizeof(TP) , n));
local0->asize = n;
return local0;
}
void ARRAYTP_aset_INT_TP(ARRAYTP self, INT ind_246, TP val_247) {
BOOL local0;
INT local1;
INT local2;
if ((!((self==((ARRAYTP) NULL))))) {
local1 = 0;
local2 = (self->asize);
local0 = INT_is_bet_INT_I(ind_246, local1, (c_INT_minus_INT_INT_chk(local2,1)));
} else {
local0 = FALSE;
}
if (!(local0)) {
fprintf(stderr,"Violation of precondition ../Library/aref.sa:38:7\n");
exit(16);
}
if (ind_246<0||ind_246>=self->asize) {
fprintf(stderr,"Index out of bounds ../Library/aref.sa:38:7\n");
exit(16);
}
self->arr_part[ind_246] = val_247;
}
TP_BUILTIN TP_BUILTIN_creat(TP_BUILTIN self, PROG prog_248) {
TP_BUILTIN noname249;
TP_TBL t;
TP_BUILTIN r;
ARRAYTP arr_250;
TP_BUILTIN local0;
IDENT local1;
IDENT local2;
IDENT local3;
IDENT local4;
IDENT local5;
IDENT local6;
IDENT local7;
IDENT local8;
IDENT local9;
IDENT local10;
IDENT local11;
IDENT local12;
IDENT local13;
IDENT local14;
IDENT local15;
t = prog_248->tp_tbl;
local0 = ((TP_BUILTIN) sbi_alloc(sizeof(struct TP_BUILTIN_struct), TP_BUILTIN_tag));
r = local0;
local1 = PROG_ident_for_S(prog_248, ((STR) &OB_251));
r->dollar_ob = TP_TBL_tp_class_(t, local1, ((ARRAYTP) NULL));
local2 = PROG_ident_for_S(prog_248, ((STR) &BOOL_252));
r->bool_2 = TP_TBL_tp_class_(t, local2, ((ARRAYTP) NULL));
local3 = PROG_ident_for_S(prog_248, ((STR) &CHAR_253));
r->char_5 = TP_TBL_tp_class_(t, local3, ((ARRAYTP) NULL));
local4 = PROG_ident_for_S(prog_248, ((STR) &INT_254));
r->int_1 = TP_TBL_tp_class_(t, local4, ((ARRAYTP) NULL));
local5 = PROG_ident_for_S(prog_248, ((STR) &INTI_255));
r->inti = TP_TBL_tp_class_(t, local5, ((ARRAYTP) NULL));
local6 = PROG_ident_for_S(prog_248, ((STR) &FLT_256));
r->flt = TP_TBL_tp_class_(t, local6, ((ARRAYTP) NULL));
local7 = PROG_ident_for_S(prog_248, ((STR) &FLTD_257));
r->fltd = TP_TBL_tp_class_(t, local7, ((ARRAYTP) NULL));
local8 = PROG_ident_for_S(prog_248, ((STR) &FLTX_258));
r->fltx = TP_TBL_tp_class_(t, local8, ((ARRAYTP) NULL));
local9 = PROG_ident_for_S(prog_248, ((STR) &FLTDX_259));
r->fltdx = TP_TBL_tp_class_(t, local9, ((ARRAYTP) NULL));
local10 = PROG_ident_for_S(prog_248, ((STR) &FLTI_260));
r->flti = TP_TBL_tp_class_(t, local10, ((ARRAYTP) NULL));
local11 = PROG_ident_for_S(prog_248, ((STR) &STR_261));
r->str_4 = TP_TBL_tp_class_(t, local11, ((ARRAYTP) NULL));
local12 = PROG_ident_for_S(prog_248, ((STR) &SYS_262));
r->sys_3 = TP_TBL_tp_class_(t, local12, ((ARRAYTP) NULL));
local13 = PROG_ident_for_S(prog_248, ((STR) &EXT_OB_263));
r->ext_ob = TP_TBL_tp_class_(t, local13, ((ARRAYTP) NULL));
local14 = PROG_ident_for_S(prog_248, ((STR) &REHASH));
r->dollar_rehash = TP_TBL_tp_class_(t, local14, ((ARRAYTP) NULL));
r->rout = TP_TBL_tp_rout_f(t, ((ARRAYTP) NULL), ((TP) NULL));
arr_250 = ARRAYTP_create_I(((ARRAYTP) NULL), 1);
ARRAYTP_aset_INT_TP(arr_250, 0, ((TP) r->str_4));
local15 = PROG_ident_for_S(prog_248, ((STR) &ARRAY));
r->arr_of_str = TP_TBL_tp_class_(t, local15, arr_250);
return r;
}
IDENT_BUILTIN IDENT_BUILTIN_cr(IDENT_BUILTIN self, PROG p) {
IDENT_BUILTIN noname264;
IDENT_BUILTIN r;
IDENT_BUILTIN local0;
local0 = ((IDENT_BUILTIN) sbi_alloc(sizeof(struct IDENT_BUILTIN_struct), IDENT_BUILTIN_tag));
r = local0;
r->dollar_OB_ident = PROG_ident_for_S(p, ((STR) &OB_265));
r->ARR_ident = PROG_ident_for_S(p, ((STR) &ARR));
r->INT_ident = PROG_ident_for_S(p, ((STR) &INT_266));
r->INTI_ident = PROG_ident_for_S(p, ((STR) &INTI_267));
r->FLT_ident = PROG_ident_for_S(p, ((STR) &FLT_268));
r->FLTD_ident = PROG_ident_for_S(p, ((STR) &FLTD_269));
r->FLTDX_ident = PROG_ident_for_S(p, ((STR) &FLTDX_270));
r->FLTX_ident = PROG_ident_for_S(p, ((STR) &FLTX_271));
r->plus_ident = PROG_ident_for_S(p, ((STR) &plus_272));
r->minus_ident = PROG_ident_for_S(p, ((STR) &minus));
r->times_ident = PROG_ident_for_S(p, ((STR) ×_273));
r->div_ident = PROG_ident_for_S(p, ((STR) &div_274));
r->pow_ident = PROG_ident_for_S(p, ((STR) &pow_275));
r->mod_ident = PROG_ident_for_S(p, ((STR) &mod));
r->is_lt_ident = PROG_ident_for_S(p, ((STR) &is_lt));
r->is_leq_ident = PROG_ident_for_S(p, ((STR) &is_leq));
r->is_gt_ident = PROG_ident_for_S(p, ((STR) &is_gt));
r->is_geq_ident = PROG_ident_for_S(p, ((STR) &is_geq));
r->negate_ident = PROG_ident_for_S(p, ((STR) &negate));
r->not_ident = PROG_ident_for_S(p, ((STR) ¬_276));
r->AVAL_ident = PROG_ident_for_S(p, ((STR) &AVAL));
r->AREF_ident = PROG_ident_for_S(p, ((STR) &AREF));
r->aget_ident = PROG_ident_for_S(p, ((STR) &aget));
r->aset_ident = PROG_ident_for_S(p, ((STR) &aset));
r->call_ident = PROG_ident_for_S(p, ((STR) &call_277));
r->call_bang_ident = PROG_ident_for_S(p, ((STR) &call_278));
r->create_ident = PROG_ident_for_S(p, ((STR) &create_279));
r->ARRAY_ident = PROG_ident_for_S(p, ((STR) &ARRAY_280));
r->self_ident = PROG_ident_for_S(p, ((STR) &self_281));
r->invariant_ident = PROG_ident_for_S(p, ((STR) &invariant));
r->asize_ident = PROG_ident_for_S(p, ((STR) &asize_282));
r->main_ident = PROG_ident_for_S(p, ((STR) &main_283));
r->is_eq_ident = PROG_ident_for_S(p, ((STR) &is_eq));
r->is_neq_ident = PROG_ident_for_S(p, ((STR) &is_neq));
return r;
}
TP_GRAPH_ANC TP_GRAPH_ANC_cre(TP_GRAPH_ANC self, PROG prog_284) {
TP_GRAPH_ANC noname285;
TP_GRAPH_ANC r;
TP_GRAPH_ANC local0;
local0 = ((TP_GRAPH_ANC) sbi_alloc(sizeof(struct TP_GRAPH_ANC_struct), TP_GRAPH_ANC_tag));
r = local0;
r->prog = prog_284;
return r;
}
TP_GRAPH_DES TP_GRAPH_DES_cre(TP_GRAPH_DES self, PROG prog_286) {
TP_GRAPH_DES noname287;
TP_GRAPH_DES r;
TP_GRAPH_DES local0;
local0 = ((TP_GRAPH_DES) sbi_alloc(sizeof(struct TP_GRAPH_DES_struct), TP_GRAPH_DES_tag));
r = local0;
r->prog = prog_286;
return r;
}
TP_GRAPH TP_GRAPH_create_(TP_GRAPH self, PROG prog_288) {
TP_GRAPH noname289;
TP_GRAPH r;
TP_GRAPH local0;
local0 = ((TP_GRAPH) sbi_alloc(sizeof(struct TP_GRAPH_struct), TP_GRAPH_tag));
r = local0;
r->prog = prog_288;
r->anc = TP_GRAPH_ANC_cre(((TP_GRAPH_ANC) NULL), prog_288);
r->des_15 = TP_GRAPH_DES_cre(((TP_GRAPH_DES) NULL), prog_288);
return r;
}
TP_GRAPH_ABS_DES TP_GRAPH_ABS_DES_290(TP_GRAPH_ABS_DES self, PROG prog_291) {
TP_GRAPH_ABS_DES noname292;
TP_GRAPH_ABS_DES r;
TP_GRAPH_ABS_DES local0;
local0 = ((TP_GRAPH_ABS_DES) sbi_alloc(sizeof(struct TP_GRAPH_ABS_DES_struct), TP_GRAPH_ABS_DES_tag));
r = local0;
r->prog = prog_291;
return r;
}
IMPL_TBL IMPL_TBL_create_(IMPL_TBL self, PROG p) {
IMPL_TBL noname293;
IMPL_TBL r;
IMPL_TBL local0;
local0 = ((IMPL_TBL) sbi_alloc(sizeof(struct IMPL_TBL_struct), IMPL_TBL_tag));
r = local0;
r->prog = p;
return r;
}
IFC_TBL IFC_TBL_create_P(IFC_TBL self, PROG p) {
IFC_TBL noname294;
IFC_TBL r;
IFC_TBL local0;
local0 = ((IFC_TBL) sbi_alloc(sizeof(struct IFC_TBL_struct), IFC_TBL_tag));
r = local0;
r->prog = p;
return r;
}
GLOBAL_TBL GLOBAL_TBL_creat(GLOBAL_TBL self, PROG p) {
GLOBAL_TBL noname295;
GLOBAL_TBL local0;
local0 = ((GLOBAL_TBL) sbi_alloc(sizeof(struct GLOBAL_TBL_struct), GLOBAL_TBL_tag));
return local0;
}
PROG_PARSE PROG_PARSE_creat(PROG_PARSE self, PROG p) {
PROG_PARSE noname296;
PROG_PARSE r;
PROG_PARSE local0;
local0 = ((PROG_PARSE) sbi_alloc(sizeof(struct PROG_PARSE_struct), PROG_PARSE_tag));
r = local0;
r->prog = p;
return r;
}
PROG_FIND_TYPES PROG_FIND_TYPES_(PROG_FIND_TYPES self, PROG p) {
PROG_FIND_TYPES noname297;
PROG_FIND_TYPES r;
PROG_FIND_TYPES local0;
local0 = ((PROG_FIND_TYPES) sbi_alloc(sizeof(struct PROG_FIND_TYPES_struct), PROG_FIND_TYPES_tag));
r = local0;
r->prog = p;
return r;
}
PROG_TYPE_GRAPH PROG_TYPE_GRAPH_(PROG_TYPE_GRAPH self, PROG p) {
PROG_TYPE_GRAPH noname298;
PROG_TYPE_GRAPH r;
PROG_TYPE_GRAPH local0;
local0 = ((PROG_TYPE_GRAPH) sbi_alloc(sizeof(struct PROG_TYPE_GRAPH_struct), PROG_TYPE_GRAPH_tag));
r = local0;
r->prog = p;
return r;
}
PROG_IFC_CONFORMANCE PROG_IFC_CONFORM(PROG_IFC_CONFORMANCE self, PROG p) {
PROG_IFC_CONFORMANCE noname299;
PROG_IFC_CONFORMANCE r;
PROG_IFC_CONFORMANCE local0;
local0 = ((PROG_IFC_CONFORMANCE) sbi_alloc(sizeof(struct PROG_IFC_CONFORMANCE_struct), PROG_IFC_CONFORMANCE_tag));
r = local0;
r->prog = p;
return r;
}
PROG_GET_MAIN PROG_GET_MAIN_cr(PROG_GET_MAIN self, PROG p) {
PROG_GET_MAIN noname300;
PROG_GET_MAIN r;
PROG_GET_MAIN local0;
local0 = ((PROG_GET_MAIN) sbi_alloc(sizeof(struct PROG_GET_MAIN_struct), PROG_GET_MAIN_tag));
r = local0;
r->prog = p;
return r;
}
INT INT_highest_bit_INT(INT self) {
INT noname301 = ((INT) 0);
INT x = ((INT) 0);
INT z = ((INT) 0);
INT r = ((INT) 0);
INT noname302 = ((INT) 0);
INT noname303 = ((INT) 0);
INT i = ((INT) 0);
INT local0;
INT local1;
if ((self==0)) {
return -1;
}
if ((shared_INT_asize==32)) {
x = self;
z = (((unsigned)x)>>((unsigned)16));
if ((z!=0)) {
x = z;
r = (c_INT_plus_INT_INT_chk(r,16));
}
z = (((unsigned)x)>>((unsigned)8));
if ((z!=0)) {
x = z;
r = (c_INT_plus_INT_INT_chk(r,8));
}
z = (((unsigned)x)>>((unsigned)4));
if ((z!=0)) {
x = z;
r = (c_INT_plus_INT_INT_chk(r,4));
}
z = (((unsigned)x)>>((unsigned)2));
if ((z!=0)) {
x = z;
r = (c_INT_plus_INT_INT_chk(r,2));
}
z = (((unsigned)x)>>((unsigned)1));
if ((z!=0)) {
x = z;
r = (c_INT_plus_INT_INT_chk(r,1));
}
return r;
}
else {
{
struct INT_downto_INT_INT_frame_struct temp304_0;
INT_downto_INT_INT_frame
noname305 = &temp304_0;
noname305->state = 0;
while (1) {
if (noname305->state == 0) {
noname302 = (c_INT_minus_INT_INT_chk(shared_INT_asize,1));
noname303 = 0;
noname305->arg0 = noname302;
noname305->arg1 = noname303;
}
local0 = INT_downto_INT_INT(noname305);
if (noname305->state == -1) goto after_loop;
i = local0;
local1 = (c_INT_rshift_INT_INT(self,i));
if ((local1==0)) {
return (c_INT_minus_INT_INT_chk(i,1));
}
}
}
after_loop: ;
}
return (c_INT_minus_INT_INT_chk(shared_INT_asize,1));
}
INLINE INLINE_TBL_elt_n(INLINE_TBL self) {
INLINE noname306;
INLINE t = ((INLINE) NULL);
if (t==NULL) {
} else
switch (t->header.tag) {
default: ;
}
return ((INLINE) NULL);
if (!INLINE_TBL_invar(self)) {
fprintf(stderr,"Failed invariant INLINE_TBL::invariant:BOOL ../Library/fqset.sa:69:10\n");
exit(16);
}
}
INLINE_TBL INLINE_TBL_alloc(INLINE_TBL self, INT n) {
INLINE_TBL noname307;
INLINE_TBL r;
INLINE_TBL noname308;
INLINE_TBL local0;
local0 = ((INLINE_TBL) sbi_arr_alloc(sizeof(struct INLINE_TBL_struct), INLINE_TBL_tag, sizeof(INLINE) , n));
local0->asize = n;
r = local0;
if ((!((INLINE_TBL_elt_n(self)==((INLINE) NULL))))) {
{
struct INLINE_TBL_aset__frame_struct temp309_0;
INLINE_TBL_aset__frame
noname310 = &temp309_0;
noname310->state = 0;
while (1) {
if (noname310->state == 0) {
noname308 = r;
noname310->arg0 = noname308;
}
noname310->arg1 = INLINE_TBL_elt_n(self);
INLINE_TBL_aset_(noname310);
if (noname310->state == -1) goto after_loop;
0 /* No return value from iter call */;
}
}
after_loop: ;
}
return r;
}
INLINE_TBL INLINE_TBL_old_c(INLINE_TBL self, INT n) {
INLINE_TBL noname311;
INLINE_TBL r;
INT local0;
INT local1;
INT local2;
INT local3;
if (!((n>=1))) {
fprintf(stderr,"Violation of precondition ../Library/fqset.sa:81:9\n");
exit(16);
}
local0 = 1;
local1 = (c_INT_times_INT_INT_chk(3,n));
local2 = INT_highest_bit_INT((c_INT_div_INT_INT_chk(local1,2)));
local3 = (local0<<(c_INT_plus_INT_INT_chk(local2,1)));
r = INLINE_TBL_alloc(self, (c_INT_plus_INT_INT_chk(local3,1)));
return r;
if (!INLINE_TBL_invar(self)) {
fprintf(stderr,"Failed invariant INLINE_TBL::invariant:BOOL ../Library/fqset.sa:81:9\n");
exit(16);
}
}
SIG SIG_create_SIG(SIG self) {
SIG noname312;
SIG local0;
local0 = ((SIG) sbi_alloc(sizeof(struct SIG_struct), SIG_tag));
return local0;
}
void INLINE_INT_FOLD_(INLINE_INT_FOLD self, INT routines_313) {
shared_INLINE_IN = routines_313;
}
INLINE_INT_FOLD INLINE_INT_FOLD__314(INLINE_INT_FOLD self, SIG s_315) {
INLINE_INT_FOLD noname316;
INLINE_INT_FOLD r;
INLINE_INT_FOLD local0;
local0 = ((INLINE_INT_FOLD) sbi_alloc(sizeof(struct INLINE_INT_FOLD_struct), INLINE_INT_FOLD_tag));
r = local0;
r->sig_6 = s_315;
INLINE_INT_FOLD_(self, (c_INT_plus_INT_INT_chk(shared_INLINE_IN,1)));
return r;
}
BOOL INLINE_TBL_elt_e(INLINE_TBL self, INLINE e1_317, INLINE e2_318) {
BOOL noname319 = ((BOOL) 0);
if (e1_317==NULL) {
} else
switch (e1_317->header.tag) {
default: ;
}
return c_SYS_ob_eq_OB_OB_BOOL(((OB) e1_317),((OB) e2_318));
if (!INLINE_TBL_invar(self)) {
fprintf(stderr,"Failed invariant INLINE_TBL::invariant:BOOL ../Library/fqset.sa:62:9\n");
exit(16);
}
}
INT INLINE_TBL_asize_INT(INLINE_TBL self) {
INT noname320 = ((INT) 0);
return self->asize;
fprintf(stderr,"Last statement wasn't return ../Library/aref.sa:20:8\n");
exit(16);
}
INLINE_TBL INLINE_TBL_doubl(INLINE_TBL self) {
INLINE_TBL noname321;
INLINE_TBL r;
INLINE_TBL noname322;
INT local0;
INT local1;
INT local2;
INLINE local3;
if (!((!((self==((INLINE_TBL) NULL)))))) {
fprintf(stderr,"Violation of precondition ../Library/fqset.sa:190:22\n");
exit(16);
}
local0 = (self->asize);
local1 = (c_INT_minus_INT_INT_chk(local0,1));
local2 = (c_INT_times_INT_INT_chk(local1,2));
r = INLINE_TBL_alloc(self, (c_INT_plus_INT_INT_chk(local2,1)));
{
struct INLINE_TBL_elt_I_frame_struct temp323_0;
INLINE_TBL_elt_I_frame
noname324 = &temp323_0;
noname324->state = 0;
while (1) {
if (noname324->state == 0) {
noname322 = self;
noname324->arg0 = noname322;
}
local3 = INLINE_TBL_elt_I(noname324);
if (noname324->state == -1) goto after_loop;
r = INLINE_TBL_inser(r, local3);
}
}
after_loop: ;
return r;
}
INT INLINE_TBL_query(INLINE_TBL self, SIG s_325) {
INT noname326 = ((INT) 0);
INT sc = ((INT) 0);
INT r = ((INT) 0);
ARRAYTP noname327;
TP local0;
INT local1;
TP local2;
TP local3;
INT local4;
sc = 3;
r = IDENT_hash_INT(s_325->name_19);
local0 = s_325->tp;
local1 = (*TP_hash_INT[local0->header.tag+TP_hash_INT_offset])(local0);
r = (r^(c_INT_times_INT_INT_chk(local1,sc)));
{
struct ARRAYTP_elt_TP_frame_struct temp328_0;
ARRAYTP_elt_TP_frame
noname329 = &temp328_0;
noname329->state = 0;
while (1) {
sc = (c_INT_plus_INT_INT_chk(sc,98));
if (noname329->state == 0) {
noname327 = s_325->args_7;
noname329->arg0 = noname327;
}
local2 = ARRAYTP_elt_TP(noname329);
if (noname329->state == -1) goto after_loop;
local3 = local2;
local4 = (*TP_hash_INT[local3->header.tag+TP_hash_INT_offset])(local3);
r = (r^(c_INT_times_INT_INT_chk(local4,sc)));
}
}
after_loop: ;
return r;
if (!INLINE_TBL_invar(self)) {
fprintf(stderr,"Failed invariant INLINE_TBL::invariant:BOOL ./inline.sa:315:13\n");
exit(16);
}
}
INT INLINE_TBL_elt_h(INLINE_TBL self, INLINE in) {
INT noname330 = ((INT) 0);
INLINE local0;
local0 = in;
return INLINE_TBL_query(self, (*INLINE_sig_SIG[local0->header.tag+INLINE_sig_SIG_offset])(local0));
if (!INLINE_TBL_invar(self)) {
fprintf(stderr,"Failed invariant INLINE_TBL::invariant:BOOL ./inline.sa:323:11\n");
exit(16);
}
}
INLINE INLINE_TBL_aget_(INLINE_TBL self, INT ind_331) {
INLINE noname332;
BOOL local0;
INT local1;
INT local2;
if ((!((self==((INLINE_TBL) NULL))))) {
local1 = 0;
local2 = (self->asize);
local0 = INT_is_bet_INT_I(ind_331, local1, (c_INT_minus_INT_INT_chk(local2,1)));
} else {
local0 = FALSE;
}
if (!(local0)) {
fprintf(stderr,"Violation of precondition ../Library/aref.sa:33:7\n");
exit(16);
}
if (ind_331<0||ind_331>=self->asize) {
fprintf(stderr,"Index out of bounds ../Library/aref.sa:33:7\n");
exit(16);
}
return self->arr_part[ind_331];
}
void INLINE_TBL_aset__333(INLINE_TBL self, INT ind_334, INLINE val_335) {
BOOL local0;
INT local1;
INT local2;
if ((!((self==((INLINE_TBL) NULL))))) {
local1 = 0;
local2 = (self->asize);
local0 = INT_is_bet_INT_I(ind_334, local1, (c_INT_minus_INT_INT_chk(local2,1)));
} else {
local0 = FALSE;
}
if (!(local0)) {
fprintf(stderr,"Violation of precondition ../Library/aref.sa:38:7\n");
exit(16);
}
if (ind_334<0||ind_334>=self->asize) {
fprintf(stderr,"Index out of bounds ../Library/aref.sa:38:7\n");
exit(16);
}
self->arr_part[ind_334] = val_335;
}
INLINE_TBL INLINE_TBL_inser(INLINE_TBL self, INLINE e_336) {
INLINE_TBL noname337;
INLINE_TBL r;
INT asz_338 = ((INT) 0);
INT h = ((INT) 0);
INLINE te;
INLINE te_339;
INT local0;
INT local1;
INT local2;
r = self;
if (INLINE_TBL_elt_e(self, e_336, INLINE_TBL_elt_n(self))) {
return r;
}
if ((r==((INLINE_TBL) NULL))) {
r = INLINE_TBL_alloc(self, 5);
}
else {
local0 = (c_INT_plus_INT_INT_chk(self->hsize,1));
local1 = (c_INT_times_INT_INT_chk(local0,2));
if ((local1>(self->asize))) {
r = INLINE_TBL_doubl(r);
}
}
asz_338 = (r->asize);
local2 = INLINE_TBL_elt_h(r, e_336);
h = (local2&(c_INT_minus_INT_INT_chk(asz_338,2)));
while (1) {
te = INLINE_TBL_aget_(r, h);
if (INLINE_TBL_elt_e(self, te, INLINE_TBL_elt_n(self))) {
goto after_loop;
}
else {
if (INLINE_TBL_elt_e(self, te, e_336)) {
INLINE_TBL_aset__333(r, h, e_336);
return r;
}
}
h = (c_INT_plus_INT_INT_chk(h,1));
}
after_loop: ;
if ((h==(c_INT_minus_INT_INT_chk(asz_338,1)))) {
h = 0;
while (1) {
te_339 = INLINE_TBL_aget_(r, h);
if (INLINE_TBL_elt_e(self, te_339, INLINE_TBL_elt_n(self))) {
goto after_loop_341;
}
else {
if (INLINE_TBL_elt_e(self, te_339, e_336)) {
INLINE_TBL_aset__333(r, h, e_336);
return r;
}
}
h = (c_INT_plus_INT_INT_chk(h,1));
}
after_loop_341: ;
if (!((h!=(c_INT_minus_INT_INT_chk(asz_338,1))))) {
fprintf(stderr,"Violation of assertion ../Library/fqset.sa:218:15\n");
exit(16);
}
}
INLINE_TBL_aset__333(r, h, e_336);
r->hsize = (c_INT_plus_INT_INT_chk(r->hsize,1));
return r;
if (!INLINE_TBL_invar(self)) {
fprintf(stderr,"Failed invariant INLINE_TBL::invariant:BOOL ../Library/fqset.sa:198:9\n");
exit(16);
}
}
INLINE_TBL INLINE_TBL_creat(INLINE_TBL self, PROG p) {
INLINE_TBL noname343;
INLINE_TBL r;
SIG ipiis;
TP_CLASS int_tp;
r = INLINE_TBL_old_c(self, 1024);
r->prog = p;
ipiis = SIG_create_SIG(((SIG) NULL));
int_tp = p->tp_builtin->int_1;
ipiis->tp = ((TP) int_tp);
ipiis->name_19 = PROG_ident_for_S(p, ((STR) &plus_344));
ipiis->args_7 = ARRAYTP_create_I(((ARRAYTP) NULL), 1);
ARRAYTP_aset_INT_TP(ipiis->args_7, 0, ((TP) int_tp));
ipiis->ret = ((TP) int_tp);
ipiis->is_builtin = TRUE;
r = INLINE_TBL_inser(r, ((INLINE) INLINE_INT_FOLD__314(((INLINE_INT_FOLD) NULL), ipiis)));
return r;
if (!INLINE_TBL_invar(self)) {
fprintf(stderr,"Failed invariant INLINE_TBL::invariant:BOOL ./inline.sa:295:9\n");
exit(16);
}
}
PROG_AM_GENERATE PROG_AM_GENERATE_345(PROG_AM_GENERATE self, PROG p) {
PROG_AM_GENERATE noname346;
PROG_AM_GENERATE r;
PROG_AM_GENERATE local0;
local0 = ((PROG_AM_GENERATE) sbi_alloc(sizeof(struct PROG_AM_GENERATE_struct), PROG_AM_GENERATE_tag));
r = local0;
r->prog = p;
r->inline_tbl = INLINE_TBL_creat(((INLINE_TBL) NULL), p);
return r;
}
PROG_AM_CHECK PROG_AM_CHECK_cr(PROG_AM_CHECK self, PROG p) {
PROG_AM_CHECK noname347;
PROG_AM_CHECK r;
PROG_AM_CHECK local0;
local0 = ((PROG_AM_CHECK) sbi_alloc(sizeof(struct PROG_AM_CHECK_struct), PROG_AM_CHECK_tag));
r = local0;
r->prog = p;
return r;
}
PROG PROG_create_PROG(PROG self) {
PROG noname348;
PROG r;
PROG local0;
local0 = ((PROG) sbi_alloc(sizeof(struct PROG_struct), PROG_tag));
r = local0;
r->options_55 = OPTIONS_create_O(((OPTIONS) NULL));
r->tp_tbl = TP_TBL_create_PR(((TP_TBL) NULL), r);
r->tp_builtin = TP_BUILTIN_creat(((TP_BUILTIN) NULL), r);
r->ident_builtin = IDENT_BUILTIN_cr(((IDENT_BUILTIN) NULL), r);
r->tp_graph = TP_GRAPH_create_(((TP_GRAPH) NULL), r);
r->tp_graph_abs_des = TP_GRAPH_ABS_DES_290(((TP_GRAPH_ABS_DES) NULL), r);
r->impl_tbl = IMPL_TBL_create_(((IMPL_TBL) NULL), r);
r->ifc_tbl = IFC_TBL_create_P(((IFC_TBL) NULL), r);
r->global_tbl = GLOBAL_TBL_creat(((GLOBAL_TBL) NULL), r);
r->prog_parse = PROG_PARSE_creat(((PROG_PARSE) NULL), r);
r->prog_find_types = PROG_FIND_TYPES_(((PROG_FIND_TYPES) NULL), r);
r->prog_type_graph = PROG_TYPE_GRAPH_(((PROG_TYPE_GRAPH) NULL), r);
r->prog_ifc_conformance = PROG_IFC_CONFORM(((PROG_IFC_CONFORMANCE) NULL), r);
r->prog_get_main = PROG_GET_MAIN_cr(((PROG_GET_MAIN) NULL), r);
r->prog_am_generate = PROG_AM_GENERATE_345(((PROG_AM_GENERATE) NULL), r);
r->prog_am_check = PROG_AM_CHECK_cr(((PROG_AM_CHECK) NULL), r);
return r;
}
INT ARRAYSTR_asize_INT(ARRAYSTR self) {
INT noname349 = ((INT) 0);
return self->asize;
fprintf(stderr,"Last statement wasn't return ../Library/aref.sa:20:8\n");
exit(16);
}
INT ARRAYSTR_size_INT(ARRAYSTR self) {
INT noname350 = ((INT) 0);
if ((self==((ARRAYSTR) NULL))) {
return 0;
}
return (self->asize);
}
BOOL OPTIONS_more_arg(OPTIONS self) {
BOOL noname351 = ((BOOL) 0);
INT local0;
local0 = self->next_8;
return (local0<ARRAYSTR_size_INT(self->args_7));
}
STR ARRAYSTR_aget_IN(ARRAYSTR self, INT ind_352) {
STR noname353;
BOOL local0;
INT local1;
INT local2;
if ((!((self==((ARRAYSTR) NULL))))) {
local1 = 0;
local2 = (self->asize);
local0 = INT_is_bet_INT_I(ind_352, local1, (c_INT_minus_INT_INT_chk(local2,1)));
} else {
local0 = FALSE;
}
if (!(local0)) {
fprintf(stderr,"Violation of precondition ../Library/aref.sa:33:7\n");
exit(16);
}
if (ind_352<0||ind_352>=self->asize) {
fprintf(stderr,"Index out of bounds ../Library/aref.sa:33:7\n");
exit(16);
}
return self->arr_part[ind_352];
}
ERR_26 ERR_create_ERR(ERR_26 self) {
ERR_26 noname354;
return self;
}
INT STR_size_INT(STR self) {
INT noname355 = ((INT) 0);
if ((self==((STR) NULL))) {
return 0;
}
return (self->asize);
}
ERR_26 ERR_plus_STR_ERR(ERR_26 self, STR s_356) {
ERR_26 noname357;
INT local0;
local0 = STR_size_INT(s_356);
c_err_nstr(local0, ((s_356==NULL)?NULL:s_356->arr_part));
return self;
}
INT INT_min_INT_INT(INT self, INT i) {
INT noname358 = ((INT) 0);
if ((self<i)) {
return self;
}
return i;
}
void ERR_plus_CHAR(ERR_26 self, CHAR c) {
c_err_char(c);
}
void ERR_plus_STR(ERR_26 self, STR s_359) {
INT local0;
local0 = STR_size_INT(s_359);
c_err_nstr(local0, ((s_359==NULL)?NULL:s_359->arr_part));
}
void UNIX_exit_INT(UNIX self, INT code_360) {
exit(code_360);
}
void OPTIONS_usage(OPTIONS self) {
ERR_26 local0;
ERR_26 local1;
ARRAYSTR local2;
INT local3;
INT local4;
ERR_26 local5;
ERR_26 local6;
local0 = ERR_create_ERR(((ERR_26) NULL));
local1 = ERR_plus_STR_ERR(local0, ((STR) &Commandlineerrornear));
local2 = self->args_7;
local3 = self->next_8;
local4 = ARRAYSTR_size_INT(self->args_7);
local5 = ERR_plus_STR_ERR(local1, ARRAYSTR_aget_IN(local2, INT_min_INT_INT(local3, (c_INT_minus_INT_INT_chk(local4,1)))));
ERR_plus_CHAR(local5, '\n');
local6 = ERR_create_ERR(((ERR_26) NULL));
ERR_plus_STR(local6, ((STR) &Seemanpage));
UNIX_exit_INT(((UNIX) NULL), 1);
}
STR OPTIONS_next_arg_STR(OPTIONS self) {
STR noname361;
STR res;
if (OPTIONS_more_arg(self)) {
res = ARRAYSTR_aget_IN(self->args_7, self->next_8);
self->next_8 = (c_INT_plus_INT_INT_chk(self->next_8,1));
return res;
}
OPTIONS_usage(self);
return ((STR) &name_362);
}
INT STR_length_INT(STR self) {
INT noname363 = ((INT) 0);
if ((self==((STR) NULL))) {
return 0;
}
return (self->asize);
}
void STR_acopy_INT_IN(STR self, INT beg, INT num_364, INT srcbeg, STR src_365) {
STR noname366;
INT noname367 = ((INT) 0);
INT noname368 = ((INT) 0);
STR noname369;
INT noname370 = ((INT) 0);
INT noname371 = ((INT) 0);
BOOL local0;
BOOL local1;
BOOL local2;
BOOL local3;
INT local4;
INT local5;
INT local6;
INT local7;
INT local8;
CHAR local9;
if ((!((self==((STR) NULL))))) {
local3 = (!((src_365==((STR) NULL))));
} else {
local3 = FALSE;
}
if (local3) {
local4 = 0;
local5 = (self->asize);
local2 = INT_is_bet_INT_I(beg, local4, (c_INT_minus_INT_INT_chk(local5,1)));
} else {
local2 = FALSE;
}
if (local2) {
local6 = 0;
local7 = (self->asize);
local1 = INT_is_bet_INT_I(num_364, local6, (c_INT_minus_INT_INT_chk(local7,beg)));
} else {
local1 = FALSE;
}
if (local1) {
local8 = (src_365->asize);
local0 = (num_364<=(c_INT_minus_INT_INT_chk(local8,srcbeg)));
} else {
local0 = FALSE;
}
if (!(local0)) {
fprintf(stderr,"Violation of precondition ../Library/aref.sa:122:8\n");
exit(16);
}
{
struct STR_aelt_INT_INT_frame_struct temp372_0;
STR_aelt_INT_INT_frame
noname373 = &temp372_0;
struct STR_aset_INT_INT_frame_struct temp372_1;
STR_aset_INT_INT_frame
noname374 = &temp372_1;
noname373->state = 0;
noname374->state = 0;
while (1) {
if (noname374->state == 0) {
noname369 = self;
noname370 = beg;
noname371 = num_364;
noname374->arg0 = noname369;
noname374->arg1 = noname370;
noname374->arg2 = noname371;
}
if (noname373->state == 0) {
noname366 = src_365;
noname367 = srcbeg;
noname368 = num_364;
noname373->arg0 = noname366;
noname373->arg1 = noname367;
noname373->arg2 = noname368;
}
local9 = STR_aelt_INT_INT(noname373);
if (noname373->state == -1) goto after_loop;
noname374->arg3 = local9;
STR_aset_INT_INT(noname374);
if (noname374->state == -1) goto after_loop;
0 /* No return value from iter call */;
}
}
after_loop: ;
}
STR STR_tail_INT_STR(STR self, INT i) {
STR noname375;
STR r;
INT local0;
STR local1;
INT local2;
INT local3;
INT local4;
local0 = 0;
if (!(INT_is_bet_INT_I(i, local0, STR_size_INT(self)))) {
fprintf(stderr,"Violation of precondition ../Library/str.sa:426:7\n");
exit(16);
}
if ((self==((STR) NULL))) {
return self;
}
local1 = ((STR) sbi_arr_alloc_atomic(sizeof(struct STR_struct), STR_tag, sizeof(CHAR) , i));
local1->asize = i;
r = local1;
local2 = 0;
local3 = (self->asize);
local4 = (c_INT_minus_INT_INT_chk(local3,i));
STR_acopy_INT_IN(r, local2, i, local4, self);
return r;
}
STR OPTIONS_suffix_S(OPTIONS self, STR a) {
STR noname376;
INT pos_377 = ((INT) 0);
INT noname378 = ((INT) 0);
INT noname379 = ((INT) 0);
INT local0;
INT local1;
CHAR local2;
INT local3;
{
struct INT_downto_INT_INT_frame_struct temp380_0;
INT_downto_INT_INT_frame
noname381 = &temp380_0;
noname381->state = 0;
while (1) {
if (noname381->state == 0) {
local1 = STR_length_INT(a);
noname378 = (c_INT_minus_INT_INT_chk(local1,1));
noname379 = 0;
noname381->arg0 = noname378;
noname381->arg1 = noname379;
}
local0 = INT_downto_INT_INT(noname381);
if (noname381->state == -1) goto after_loop;
pos_377 = local0;
local2 = STR_aget_INT_CHAR(a, pos_377);
if ((local2=='.')) {
goto after_loop;
}
}
}
after_loop: ;
local3 = STR_length_INT(a);
return STR_tail_INT_STR(a, (c_INT_minus_INT_INT_chk(local3,pos_377)));
}
STR FSETSTR_elt_nil_STR(FSETSTR self) {
STR noname382;
STR t = ((STR) NULL);
return ((STR) NULL);
if (!FSETSTR_invarian(self)) {
fprintf(stderr,"Failed invariant FSET{STR}::invariant:BOOL ../Library/fset.sa:53:10\n");
exit(16);
}
}
FSETSTR FSETSTR_allocate(FSETSTR self, INT n) {
FSETSTR noname383;
FSETSTR r;
FSETSTR noname384;
FSETSTR local0;
local0 = ((FSETSTR) sbi_arr_alloc(sizeof(struct FSETSTR_struct), FSETSTR_tag, sizeof(STR) , n));
local0->asize = n;
r = local0;
if ((!((FSETSTR_elt_nil_STR(self)==((STR) NULL))))) {
{
struct FSETSTR_aset_STR_frame_struct temp385_0;
FSETSTR_aset_STR_frame
noname386 = &temp385_0;
noname386->state = 0;
while (1) {
if (noname386->state == 0) {
noname384 = r;
noname386->arg0 = noname384;
}
noname386->arg1 = FSETSTR_elt_nil_STR(self);
FSETSTR_aset_STR(noname386);
if (noname386->state == -1) goto after_loop;
0 /* No return value from iter call */;
}
}
after_loop: ;
}
return r;
}
INT FSETSTR_asize_INT(FSETSTR self) {
INT noname387 = ((INT) 0);
return self->asize;
fprintf(stderr,"Last statement wasn't return ../Library/aref.sa:20:8\n");
exit(16);
}
FSETSTR FSETSTR_double_s(FSETSTR self) {
FSETSTR noname388;
FSETSTR r;
FSETSTR noname389;
INT local0;
INT local1;
INT local2;
STR local3;
if (!((!((self==((FSETSTR) NULL)))))) {
fprintf(stderr,"Violation of precondition ../Library/fset.sa:150:22\n");
exit(16);
}
local0 = (self->asize);
local1 = (c_INT_minus_INT_INT_chk(local0,1));
local2 = (c_INT_times_INT_INT_chk(local1,2));
r = FSETSTR_allocate(self, (c_INT_plus_INT_INT_chk(local2,1)));
{
struct FSETSTR_elt_STR_frame_struct temp390_0;
FSETSTR_elt_STR_frame
noname391 = &temp390_0;
noname391->state = 0;
while (1) {
if (noname391->state == 0) {
noname389 = self;
noname391->arg0 = noname389;
}
local3 = FSETSTR_elt_STR(noname391);
if (noname391->state == -1) goto after_loop;
r = FSETSTR_insert_S(r, local3);
}
}
after_loop: ;
return r;
}
INT FSETSTR_elt_hash(FSETSTR self, STR e_392) {
INT noname393 = ((INT) 0);
return STR_hash_INT(e_392);
return (c_SYS_id_OB_INT(((SYS) NULL),((OB) e_392)));
if (!FSETSTR_invarian(self)) {
fprintf(stderr,"Failed invariant FSET{STR}::invariant:BOOL ../Library/fset.sa:63:11\n");
exit(16);
}
}
STR FSETSTR_aget_INT_STR(FSETSTR self, INT ind_394) {
STR noname395;
BOOL local0;
INT local1;
INT local2;
if ((!((self==((FSETSTR) NULL))))) {
local1 = 0;
local2 = (self->asize);
local0 = INT_is_bet_INT_I(ind_394, local1, (c_INT_minus_INT_INT_chk(local2,1)));
} else {
local0 = FALSE;
}
if (!(local0)) {
fprintf(stderr,"Violation of precondition ../Library/aref.sa:33:7\n");
exit(16);
}
if (ind_394<0||ind_394>=self->asize) {
fprintf(stderr,"Index out of bounds ../Library/aref.sa:33:7\n");
exit(16);
}
return self->arr_part[ind_394];
if (!FSETSTR_invarian(self)) {
fprintf(stderr,"Failed invariant FSET{STR}::invariant:BOOL ../Library/aref.sa:33:7\n");
exit(16);
}
}
BOOL FSETSTR_elt_eq_S(FSETSTR self, STR e1_396, STR e2_397) {
BOOL noname398 = ((BOOL) 0);
return STR_is_eq_STR_BOOL(e1_396, e2_397);
return c_SYS_ob_eq_OB_OB_BOOL(((OB) e1_396),((OB) e2_397));
if (!FSETSTR_invarian(self)) {
fprintf(stderr,"Failed invariant FSET{STR}::invariant:BOOL ../Library/fset.sa:44:9\n");
exit(16);
}
}
void FSETSTR_aset_INT_STR(FSETSTR self, INT ind_399, STR val_400) {
BOOL local0;
INT local1;
INT local2;
if ((!((self==((FSETSTR) NULL))))) {
local1 = 0;
local2 = (self->asize);
local0 = INT_is_bet_INT_I(ind_399, local1, (c_INT_minus_INT_INT_chk(local2,1)));
} else {
local0 = FALSE;
}
if (!(local0)) {
fprintf(stderr,"Violation of precondition ../Library/aref.sa:38:7\n");
exit(16);
}
if (ind_399<0||ind_399>=self->asize) {
fprintf(stderr,"Index out of bounds ../Library/aref.sa:38:7\n");
exit(16);
}
self->arr_part[ind_399] = val_400;
if (!FSETSTR_invarian(self)) {
fprintf(stderr,"Failed invariant FSET{STR}::invariant:BOOL ../Library/aref.sa:38:7\n");
exit(16);
}
}
FSETSTR FSETSTR_insert_S(FSETSTR self, STR e_401) {
FSETSTR noname402;
FSETSTR r;
INT asz_403 = ((INT) 0);
INT h = ((INT) 0);
STR te;
STR te_404;
INT local0;
INT local1;
INT local2;
r = self;
if ((r==((FSETSTR) NULL))) {
r = FSETSTR_allocate(self, 5);
}
else {
local0 = (c_INT_plus_INT_INT_chk(self->hsize,1));
local1 = (c_INT_times_INT_INT_chk(local0,2));
if ((local1>(self->asize))) {
r = FSETSTR_double_s(self);
}
}
asz_403 = (r->asize);
local2 = FSETSTR_elt_hash(r, e_401);
h = (local2&(c_INT_minus_INT_INT_chk(asz_403,2)));
while (1) {
te = FSETSTR_aget_INT_STR(r, h);
if (FSETSTR_elt_eq_S(self, te, FSETSTR_elt_nil_STR(self))) {
goto after_loop;
}
else {
if (FSETSTR_elt_eq_S(self, te, e_401)) {
FSETSTR_aset_INT_STR(r, h, e_401);
return r;
}
}
h = (c_INT_plus_INT_INT_chk(h,1));
}
after_loop: ;
if ((h==(c_INT_minus_INT_INT_chk(asz_403,1)))) {
h = 0;
while (1) {
te_404 = FSETSTR_aget_INT_STR(r, h);
if (FSETSTR_elt_eq_S(self, te_404, FSETSTR_elt_nil_STR(self))) {
goto after_loop_406;
}
else {
if (FSETSTR_elt_eq_S(self, te_404, e_401)) {
FSETSTR_aset_INT_STR(r, h, e_401);
return r;
}
}
h = (c_INT_plus_INT_INT_chk(h,1));
}
after_loop_406: ;
if (!((h!=(c_INT_minus_INT_INT_chk(asz_403,1))))) {
fprintf(stderr,"Violation of assertion ../Library/fset.sa:177:15\n");
exit(16);
}
}
FSETSTR_aset_INT_STR(r, h, e_401);
r->hsize = (c_INT_plus_INT_INT_chk(r->hsize,1));
return r;
if (!FSETSTR_invarian(self)) {
fprintf(stderr,"Failed invariant FSET{STR}::invariant:BOOL ../Library/fset.sa:158:9\n");
exit(16);
}
}
STR FILE_resolve_pat(FILE_20 self, STR fn) {
STR noname408;
return fn;
}
BOOL FSETSTR_test_STR(FSETSTR self, STR e_409) {
BOOL noname410 = ((BOOL) 0);
INT h = ((INT) 0);
STR te;
STR te_411;
INT local0;
INT local1;
INT local2;
INT local3;
if ((self==((FSETSTR) NULL))) {
return FALSE;
}
local0 = FSETSTR_elt_hash(self, e_409);
local1 = (self->asize);
h = (local0&(c_INT_minus_INT_INT_chk(local1,2)));
while (1) {
te = FSETSTR_aget_INT_STR(self, h);
if (FSETSTR_elt_eq_S(self, te, e_409)) {
return TRUE;
}
else {
if (FSETSTR_elt_eq_S(self, te, FSETSTR_elt_nil_STR(self))) {
goto after_loop;
}
}
h = (c_INT_plus_INT_INT_chk(h,1));
}
after_loop: ;
local2 = (self->asize);
if ((h==(c_INT_minus_INT_INT_chk(local2,1)))) {
h = 0;
while (1) {
te_411 = FSETSTR_aget_INT_STR(self, h);
if (FSETSTR_elt_eq_S(self, te_411, e_409)) {
return TRUE;
}
else {
if (FSETSTR_elt_eq_S(self, te_411, FSETSTR_elt_nil_STR(self))) {
goto after_loop_413;
}
}
h = (c_INT_plus_INT_INT_chk(h,1));
}
after_loop_413: ;
local3 = (self->asize);
if (!((h!=(c_INT_minus_INT_INT_chk(local3,1))))) {
fprintf(stderr,"Violation of assertion ../Library/fset.sa:127:15\n");
exit(16);
}
}
return FALSE;
if (!FSETSTR_invarian(self)) {
fprintf(stderr,"Failed invariant FSET{STR}::invariant:BOOL ../Library/fset.sa:112:7\n");
exit(16);
}
}
INT FLISTSTR_asize_INT(FLISTSTR self) {
INT noname415 = ((INT) 0);
return self->asize;
fprintf(stderr,"Last statement wasn't return ../Library/aref.sa:20:8\n");
exit(16);
}
INT FLISTSTR_size_INT(FLISTSTR self) {
INT noname416 = ((INT) 0);
if ((self==((FLISTSTR) NULL))) {
return 0;
}
return self->loc_17;
if (!FLISTSTR_invaria(self)) {
fprintf(stderr,"Failed invariant FLIST{STR}::invariant:BOOL ../Library/flist.sa:50:7\n");
exit(16);
}
}
BOOL FLISTSTR_is_empt(FLISTSTR self) {
BOOL noname417 = ((BOOL) 0);
INT local0;
local0 = FLISTSTR_size_INT(self);
return (local0==0);
if (!FLISTSTR_invaria(self)) {
fprintf(stderr,"Failed invariant FLIST{STR}::invariant:BOOL ../Library/flist.sa:113:11\n");
exit(16);
}
}
void FLISTSTR_aclear(FLISTSTR self) {
STR nil = ((STR) NULL);
FLISTSTR noname418;
if (!((!((self==((FLISTSTR) NULL)))))) {
fprintf(stderr,"Violation of precondition ../Library/aref.sa:43:9\n");
exit(16);
}
{
struct FLISTSTR_aset_STR_frame_struct temp419_0;
FLISTSTR_aset_STR_frame
noname420 = &temp419_0;
noname420->state = 0;
while (1) {
if (noname420->state == 0) {
noname418 = self;
noname420->arg0 = noname418;
}
noname420->arg1 = nil;
FLISTSTR_aset_STR(noname420);
if (noname420->state == -1) goto after_loop;
0 /* No return value from iter call */;
}
}
after_loop: ;
}
void FLISTSTR_clear(FLISTSTR self) {
if (FLISTSTR_is_empt(self)) {
return;
}
else {
FLISTSTR_aclear(self);
self->loc_17 = 0;
}
if (!FLISTSTR_invaria(self)) {
fprintf(stderr,"Failed invariant FLIST{STR}::invariant:BOOL ../Library/flist.sa:117:8\n");
exit(16);
}
}
void FLISTSTR_aref_as(FLISTSTR self, INT ind_421, STR val_422) {
BOOL local0;
INT local1;
INT local2;
if ((!((self==((FLISTSTR) NULL))))) {
local1 = 0;
local2 = (self->asize);
local0 = INT_is_bet_INT_I(ind_421, local1, (c_INT_minus_INT_INT_chk(local2,1)));
} else {
local0 = FALSE;
}
if (!(local0)) {
fprintf(stderr,"Violation of precondition ../Library/aref.sa:38:7\n");
exit(16);
}
if (ind_421<0||ind_421>=self->asize) {
fprintf(stderr,"Index out of bounds ../Library/aref.sa:38:7\n");
exit(16);
}
self->arr_part[ind_421] = val_422;
}
void FLISTSTR_aset_IN(FLISTSTR self, INT ind_423, STR val_424) {
BOOL local0;
INT local1;
if ((!((self==((FLISTSTR) NULL))))) {
local1 = 0;
local0 = INT_is_bet_INT_I(ind_423, local1, (c_INT_minus_INT_INT_chk(self->loc_17,1)));
} else {
local0 = FALSE;
}
if (!(local0)) {
fprintf(stderr,"Violation of precondition ../Library/flist.sa:73:7\n");
exit(16);
}
FLISTSTR_aref_as(self, ind_423, val_424);
if (!FLISTSTR_invaria(self)) {
fprintf(stderr,"Failed invariant FLIST{STR}::invariant:BOOL ../Library/flist.sa:73:7\n");
exit(16);
}
}
FLISTSTR FLISTSTR_push_ST(FLISTSTR self, STR e_425) {
FLISTSTR noname426;
FLISTSTR r = ((FLISTSTR) NULL);
FLISTSTR noname427;
FLISTSTR noname428;
FLISTSTR local0;
INT local1;
FLISTSTR local2;
INT local3;
STR local4;
INT local5;
if ((self==((FLISTSTR) NULL))) {
local0 = ((FLISTSTR) sbi_arr_alloc(sizeof(struct FLISTSTR_struct), FLISTSTR_tag, sizeof(STR) , 5));
local0->asize = 5;
r = local0;
}
else {
local1 = self->loc_17;
if ((local1<(self->asize))) {
r = self;
}
else {
local3 = 2;
local2 = ((FLISTSTR) sbi_arr_alloc(sizeof(struct FLISTSTR_struct), FLISTSTR_tag, sizeof(STR) , (c_INT_times_INT_INT_chk(local3,(self->asize)))));
local2->asize = (c_INT_times_INT_INT_chk(local3,(self->asize)));
r = local2;
r->loc_17 = self->loc_17;
{
struct FLISTSTR_elt_STR_frame_struct temp429_0;
FLISTSTR_elt_STR_frame
noname430 = &temp429_0;
struct FLISTSTR_aset_STR_frame_struct temp429_1;
FLISTSTR_aset_STR_frame
noname431 = &temp429_1;
noname430->state = 0;
noname431->state = 0;
while (1) {
if (noname431->state == 0) {
noname428 = r;
noname431->arg0 = noname428;
}
if (noname430->state == 0) {
noname427 = self;
noname430->arg0 = noname427;
}
local4 = FLISTSTR_elt_STR(noname430);
if (noname430->state == -1) goto after_loop;
noname431->arg1 = local4;
FLISTSTR_aset_STR(noname431);
if (noname431->state == -1) goto after_loop;
0 /* No return value from iter call */;
}
}
after_loop: ;
FLISTSTR_clear(self);
}
}
r->loc_17 = (c_INT_plus_INT_INT_chk(r->loc_17,1));
local5 = (c_INT_minus_INT_INT_chk(r->loc_17,1));
FLISTSTR_aset_IN(r, local5, e_425);
return r;
if (!FLISTSTR_invaria(self)) {
fprintf(stderr,"Failed invariant FLIST{STR}::invariant:BOOL ../Library/flist.sa:79:7\n");
exit(16);
}
}
void OPTIONS_rewind(OPTIONS self) {
self->next_8 = (c_INT_minus_INT_INT_chk(self->next_8,1));
}
void OPTIONS_get_files(OPTIONS self) {
STR arg_432;
STR suf;
STR path_433;
while (1) {
if (OPTIONS_more_arg(self)) {
}
else {
goto after_loop;
}
arg_432 = OPTIONS_next_arg_STR(self);
suf = OPTIONS_suffix_S(self, arg_432);
if (STR_is_eq_STR_BOOL(suf, ((STR) &c))) {
self->c_files = FSETSTR_insert_S(self->c_files, arg_432);
}
else {
if (STR_is_eq_STR_BOOL(suf, ((STR) &obj))) {
self->object_files = FSETSTR_insert_S(self->object_files, arg_432);
}
else {
if (STR_is_eq_STR_BOOL(suf, ((STR) &sa))) {
path_433 = FILE_resolve_pat(((FILE_20) NULL), arg_432);
if ((!(FSETSTR_test_STR(self->paths, path_433)))) {
self->sather_files = FSETSTR_insert_S(self->sather_files, arg_432);
self->paths = FSETSTR_insert_S(self->paths, path_433);
}
}
else {
if (STR_is_eq_STR_BOOL(suf, ((STR) &lib_435))) {
self->archive_files = FLISTSTR_push_ST(self->archive_files, arg_432);
}
else {
OPTIONS_rewind(self);
return;
}
}
}
}
}
after_loop: ;
}
FLISTSTR FLISTSTR_create_(FLISTSTR self) {
FLISTSTR noname436;
return ((FLISTSTR) NULL);
if (!FLISTSTR_invaria(self)) {
fprintf(stderr,"Failed invariant FLIST{STR}::invariant:BOOL ../Library/flist.sa:55:9\n");
exit(16);
}
}
STR STR_create_from_(STR self, EXT_OB s_437) {
STR noname438;
INT len_439 = ((INT) 0);
STR r;
EXT_OB ext;
STR local0;
if ((s_437==((EXT_OB) NULL))) {
return ((STR) NULL);
}
len_439 = strlen(s_437);
local0 = ((STR) sbi_arr_alloc_atomic(sizeof(struct STR_struct), STR_tag, sizeof(CHAR) , len_439));
local0->asize = len_439;
r = local0;
ext = strcpy(((r==NULL)?NULL:r->arr_part), s_437);
return r;
}
STR UNIX_get_env_STR_STR(UNIX self, STR var) {
STR noname440;
EXT_OB r;
r = getenv(((var==NULL)?NULL:var->arr_part));
if ((r==((EXT_OB) NULL))) {
return ((STR) NULL);
}
return STR_create_from_(((STR) NULL), r);
}
BOOL CHAR_is_space_BOOL(CHAR self) {
BOOL noname441 = ((BOOL) 0);
CHAR noname442 = ((CHAR) 0);
noname442 = self;
switch (noname442) {
case ' ':
case '\f':
case '\n':
case '\r':
case '\t':
case '\v':
case '\32':
return TRUE;
break;
default: ;
}
return FALSE;
}
void STR_aset_INT_CHAR(STR self, INT ind_443, CHAR val_444) {
BOOL local0;
INT local1;
INT local2;
if ((!((self==((STR) NULL))))) {
local1 = 0;
local2 = (self->asize);
local0 = INT_is_bet_INT_I(ind_443, local1, (c_INT_minus_INT_INT_chk(local2,1)));
} else {
local0 = FALSE;
}
if (!(local0)) {
fprintf(stderr,"Violation of precondition ../Library/aref.sa:38:7\n");
exit(16);
}
if (ind_443<0||ind_443>=self->asize) {
fprintf(stderr,"Index out of bounds ../Library/aref.sa:38:7\n");
exit(16);
}
self->arr_part[ind_443] = val_444;
}
STR STR_plus_CHAR_STR(STR self, CHAR c_445) {
STR noname446;
STR r = ((STR) NULL);
STR local0;
STR local1;
INT local2;
INT local3;
if ((self==((STR) NULL))) {
local0 = ((STR) sbi_arr_alloc_atomic(sizeof(struct STR_struct), STR_tag, sizeof(CHAR) , 1));
local0->asize = 1;
r = local0;
}
else {
local2 = (self->asize);
local1 = ((STR) sbi_arr_alloc_atomic(sizeof(struct STR_struct), STR_tag, sizeof(CHAR) , (c_INT_plus_INT_INT_chk(local2,1))));
local1->asize = (c_INT_plus_INT_INT_chk(local2,1));
r = local1;
(memcpy(r->arr_part,self->arr_part,(r->asize) > (self->asize) ? self->asize:r->asize));
}
local3 = STR_size_INT(self);
STR_aset_INT_CHAR(r, local3, c_445);
return r;
}
BOOL STR_is_neq_STR_BOOL(STR self, STR s_447) {
BOOL noname448 = ((BOOL) 0);
return (!(STR_is_eq_STR_BOOL(self, s_447)));
}
FLISTSTR OPTIONS_args_fro(OPTIONS self) {
FLISTSTR noname449;
FLISTSTR cl;
STR sc;
STR tok;
STR noname450;
CHAR c_451 = ((CHAR) 0);
CHAR local0;
STR local1;
CHAR *local0p; INT local0n;
cl = FLISTSTR_create_(((FLISTSTR) NULL));
sc = UNIX_get_env_STR_STR(((UNIX) NULL), ((STR) &SATHER_COMMANDS));
if ((sc==((STR) NULL))) {
sc = ((STR) &name_452);
}
tok = ((STR) &name_453);
{
BOOL noname455 = TRUE;
while (1) {
if (noname455) {
noname455 = FALSE;
noname450 = sc;
local1 = noname450;
local0p = local1->arr_part; local0n = local1->asize;
} else {
local0p++; local0n--;
}
if (local0n<=0) goto after_loop; local0 = *local0p;
c_451 = local0;
if ((c_451=='\\')) {
c_451 = '/';
}
if ((!(CHAR_is_space_BOOL(c_451)))) {
tok = STR_plus_CHAR_STR(tok, c_451);
}
else {
if (STR_is_neq_STR_BOOL(tok, ((STR) &name_456))) {
cl = FLISTSTR_push_ST(cl, tok);
tok = ((STR) &name_457);
}
}
}
}
after_loop: ;
if (STR_is_neq_STR_BOOL(tok, ((STR) &name_458))) {
cl = FLISTSTR_push_ST(cl, tok);
}
return cl;
}
void ARRAYSTR_acopy_I(ARRAYSTR self, INT beg, INT num_459, INT srcbeg, ARRAYSTR src_460) {
ARRAYSTR noname461;
INT noname462 = ((INT) 0);
INT noname463 = ((INT) 0);
ARRAYSTR noname464;
INT noname465 = ((INT) 0);
INT noname466 = ((INT) 0);
BOOL local0;
BOOL local1;
BOOL local2;
BOOL local3;
INT local4;
INT local5;
INT local6;
INT local7;
INT local8;
STR local9;
if ((!((self==((ARRAYSTR) NULL))))) {
local3 = (!((src_460==((ARRAYSTR) NULL))));
} else {
local3 = FALSE;
}
if (local3) {
local4 = 0;
local5 = (self->asize);
local2 = INT_is_bet_INT_I(beg, local4, (c_INT_minus_INT_INT_chk(local5,1)));
} else {
local2 = FALSE;
}
if (local2) {
local6 = 0;
local7 = (self->asize);
local1 = INT_is_bet_INT_I(num_459, local6, (c_INT_minus_INT_INT_chk(local7,beg)));
} else {
local1 = FALSE;
}
if (local1) {
local8 = (src_460->asize);
local0 = (num_459<=(c_INT_minus_INT_INT_chk(local8,srcbeg)));
} else {
local0 = FALSE;
}
if (!(local0)) {
fprintf(stderr,"Violation of precondition ../Library/aref.sa:122:8\n");
exit(16);
}
{
struct ARRAYSTR_aelt_IN_frame_struct temp467_0;
ARRAYSTR_aelt_IN_frame
noname468 = &temp467_0;
struct ARRAYSTR_aset_IN_frame_struct temp467_1;
ARRAYSTR_aset_IN_frame
noname469 = &temp467_1;
noname468->state = 0;
noname469->state = 0;
while (1) {
if (noname469->state == 0) {
noname464 = self;
noname465 = beg;
noname466 = num_459;
noname469->arg0 = noname464;
noname469->arg1 = noname465;
noname469->arg2 = noname466;
}
if (noname468->state == 0) {
noname461 = src_460;
noname462 = srcbeg;
noname463 = num_459;
noname468->arg0 = noname461;
noname468->arg1 = noname462;
noname468->arg2 = noname463;
}
local9 = ARRAYSTR_aelt_IN(noname468);
if (noname468->state == -1) goto after_loop;
noname469->arg3 = local9;
ARRAYSTR_aset_IN(noname469);
if (noname469->state == -1) goto after_loop;
0 /* No return value from iter call */;
}
}
after_loop: ;
}
void ARRAYSTR_copy_IN(ARRAYSTR self, INT beg, INT num_470, INT srcbeg, ARRAYSTR src_471) {
BOOL local0;
BOOL local1;
BOOL local2;
BOOL local3;
INT local4;
INT local5;
INT local6;
INT local7;
INT local8;
if ((!((self==((ARRAYSTR) NULL))))) {
local3 = (!((src_471==((ARRAYSTR) NULL))));
} else {
local3 = FALSE;
}
if (local3) {
local4 = 0;
local5 = ARRAYSTR_size_INT(self);
local2 = INT_is_bet_INT_I(beg, local4, (c_INT_minus_INT_INT_chk(local5,1)));
} else {
local2 = FALSE;
}
if (local2) {
local6 = 0;
local7 = ARRAYSTR_size_INT(self);
local1 = INT_is_bet_INT_I(num_470, local6, (c_INT_minus_INT_INT_chk(local7,beg)));
} else {
local1 = FALSE;
}
if (local1) {
local8 = ARRAYSTR_size_INT(src_471);
local0 = (num_470<=(c_INT_minus_INT_INT_chk(local8,srcbeg)));
} else {
local0 = FALSE;
}
if (!(local0)) {
fprintf(stderr,"Violation of precondition ../Library/array.sa:146:7\n");
exit(16);
}
ARRAYSTR_acopy_I(self, beg, num_470, srcbeg, src_471);
}
ARRAYSTR ARRAYSTR_subarr_(ARRAYSTR self, INT beg, INT num_472) {
ARRAYSTR noname473;
ARRAYSTR r;
BOOL local0;
BOOL local1;
INT local2;
INT local3;
INT local4;
INT local5;
ARRAYSTR local6;
if ((!((self==((ARRAYSTR) NULL))))) {
local2 = 0;
local3 = ARRAYSTR_size_INT(self);
local1 = INT_is_bet_INT_I(beg, local2, (c_INT_minus_INT_INT_chk(local3,1)));
} else {
local1 = FALSE;
}
if (local1) {
local4 = 0;
local5 = ARRAYSTR_size_INT(self);
local0 = INT_is_bet_INT_I(num_472, local4, (c_INT_minus_INT_INT_chk(local5,beg)));
} else {
local0 = FALSE;
}
if (!(local0)) {
fprintf(stderr,"Violation of precondition ../Library/array.sa:158:9\n");
exit(16);
}
local6 = ((ARRAYSTR) sbi_arr_alloc(sizeof(struct ARRAYSTR_struct), ARRAYSTR_tag, sizeof(STR) , num_472));
local6->asize = num_472;
r = local6;
ARRAYSTR_copy_IN(r, 0, num_472, beg, self);
return r;
}
ARRAYSTR ARRAYSTR_create_(ARRAYSTR self, INT n) {
ARRAYSTR noname474;
ARRAYSTR local0;
if (!((n>=0))) {
fprintf(stderr,"Violation of precondition ../Library/array.sa:56:9\n");
exit(16);
}
local0 = ((ARRAYSTR) sbi_arr_alloc(sizeof(struct ARRAYSTR_struct), ARRAYSTR_tag, sizeof(STR) , n));
local0->asize = n;
return local0;
}
ARRAYSTR FLISTSTR_array_A(FLISTSTR self) {
ARRAYSTR noname475;
ARRAYSTR r;
FLISTSTR noname476;
ARRAYSTR noname477;
STR local0;
if ((self==((FLISTSTR) NULL))) {
return ((ARRAYSTR) NULL);
}
r = ARRAYSTR_create_(((ARRAYSTR) NULL), self->loc_17);
{
struct FLISTSTR_elt_STR_frame_struct temp478_0;
FLISTSTR_elt_STR_frame
noname479 = &temp478_0;
struct ARRAYSTR_set_STR_frame_struct temp478_1;
ARRAYSTR_set_STR_frame
noname480 = &temp478_1;
noname479->state = 0;
noname480->state = 0;
while (1) {
if (noname480->state == 0) {
noname477 = r;
noname480->arg0 = noname477;
}
if (noname479->state == 0) {
noname476 = self;
noname479->arg0 = noname476;
}
local0 = FLISTSTR_elt_STR(noname479);
if (noname479->state == -1) goto after_loop;
noname480->arg1 = local0;
ARRAYSTR_set_STR(noname480);
if (noname480->state == -1) goto after_loop;
0 /* No return value from iter call */;
}
}
after_loop: ;
return r;
if (!FLISTSTR_invaria(self)) {
fprintf(stderr,"Failed invariant FLIST{STR}::invariant:BOOL ../Library/flist.sa:121:8\n");
exit(16);
}
}
void ARRAYSTR_acopy_A(ARRAYSTR self, ARRAYSTR src_481) {
ARRAYSTR noname482;
ARRAYSTR noname483;
BOOL local0;
STR local1;
if ((!((self==((ARRAYSTR) NULL))))) {
local0 = (!((src_481==((ARRAYSTR) NULL))));
} else {
local0 = FALSE;
}
if (!(local0)) {
fprintf(stderr,"Violation of precondition ../Library/aref.sa:103:8\n");
exit(16);
}
{
struct ARRAYSTR_aelt_STR_frame_struct temp484_0;
ARRAYSTR_aelt_STR_frame
noname485 = &temp484_0;
struct ARRAYSTR_aset_STR_frame_struct temp484_1;
ARRAYSTR_aset_STR_frame
noname486 = &temp484_1;
noname485->state = 0;
noname486->state = 0;
while (1) {
if (noname486->state == 0) {
noname483 = self;
noname486->arg0 = noname483;
}
if (noname485->state == 0) {
noname482 = src_481;
noname485->arg0 = noname482;
}
local1 = ARRAYSTR_aelt_STR(noname485);
if (noname485->state == -1) goto after_loop;
noname486->arg1 = local1;
ARRAYSTR_aset_STR(noname486);
if (noname486->state == -1) goto after_loop;
0 /* No return value from iter call */;
}
}
after_loop: ;
}
void ARRAYSTR_copy_AR(ARRAYSTR self, ARRAYSTR src_487) {
BOOL local0;
if ((!((self==((ARRAYSTR) NULL))))) {
local0 = (!((src_487==((ARRAYSTR) NULL))));
} else {
local0 = FALSE;
}
if (local0) {
ARRAYSTR_acopy_A(self, src_487);
}
}
ARRAYSTR ARRAYSTR_copy_AR_488(ARRAYSTR self) {
ARRAYSTR noname489;
ARRAYSTR r;
r = ARRAYSTR_create_(self, ARRAYSTR_size_INT(self));
ARRAYSTR_copy_AR(r, self);
return r;
}
void ARRAYSTR_acopy_I_490(ARRAYSTR self, INT beg, ARRAYSTR src_491) {
ARRAYSTR noname492;
ARRAYSTR noname493;
INT noname494 = ((INT) 0);
BOOL local0;
BOOL local1;
BOOL local2;
INT local3;
INT local4;
INT local5;
STR local6;
if ((!((self==((ARRAYSTR) NULL))))) {
local1 = (!((src_491==((ARRAYSTR) NULL))));
} else {
local1 = FALSE;
}
if (local1) {
local3 = 0;
local4 = (self->asize);
if (INT_is_bet_INT_I(beg, local3, (c_INT_minus_INT_INT_chk(local4,1)))) {
local2 = TRUE;
} else {
local5 = (src_491->asize);
local2 = (local5==0);
}
local0 = local2;
} else {
local0 = FALSE;
}
if (!(local0)) {
fprintf(stderr,"Violation of precondition ../Library/aref.sa:109:8\n");
exit(16);
}
{
struct ARRAYSTR_aelt_STR_frame_struct temp495_0;
ARRAYSTR_aelt_STR_frame
noname496 = &temp495_0;
struct ARRAYSTR_aset_IN_497_frame_struct temp495_1;
ARRAYSTR_aset_IN_497_frame
noname498 = &temp495_1;
noname496->state = 0;
noname498->state = 0;
while (1) {
if (noname498->state == 0) {
noname493 = self;
noname494 = beg;
noname498->arg0 = noname493;
noname498->arg1 = noname494;
}
if (noname496->state == 0) {
noname492 = src_491;
noname496->arg0 = noname492;
}
local6 = ARRAYSTR_aelt_STR(noname496);
if (noname496->state == -1) goto after_loop;
noname498->arg2 = local6;
ARRAYSTR_aset_IN_497(noname498);
if (noname498->state == -1) goto after_loop;
0 /* No return value from iter call */;
}
}
after_loop: ;
}
void ARRAYSTR_copy_IN_499(ARRAYSTR self, INT beg, ARRAYSTR src_500) {
BOOL local0;
BOOL local1;
INT local2;
INT local3;
INT local4;
if ((!((self==((ARRAYSTR) NULL))))) {
local2 = 0;
local3 = ARRAYSTR_size_INT(self);
if (INT_is_bet_INT_I(beg, local2, (c_INT_minus_INT_INT_chk(local3,1)))) {
local1 = TRUE;
} else {
local4 = ARRAYSTR_size_INT(src_500);
local1 = (local4==0);
}
local0 = local1;
} else {
local0 = FALSE;
}
if (!(local0)) {
fprintf(stderr,"Violation of precondition ../Library/array.sa:132:7\n");
exit(16);
}
if ((!((src_500==((ARRAYSTR) NULL))))) {
ARRAYSTR_acopy_I_490(self, beg, src_500);
}
}
ARRAYSTR ARRAYSTR_append_(ARRAYSTR self, ARRAYSTR a) {
ARRAYSTR noname501;
ARRAYSTR r;
ARRAYSTR local0;
INT local1;
INT local2;
if ((self==((ARRAYSTR) NULL))) {
return ARRAYSTR_copy_AR_488(a);
}
else {
if ((a==((ARRAYSTR) NULL))) {
return ARRAYSTR_copy_AR_488(self);
}
}
local1 = ARRAYSTR_size_INT(self);
local0 = ((ARRAYSTR) sbi_arr_alloc(sizeof(struct ARRAYSTR_struct), ARRAYSTR_tag, sizeof(STR) , (c_INT_plus_INT_INT_chk(local1,ARRAYSTR_size_INT(a)))));
local0->asize = (c_INT_plus_INT_INT_chk(local1,ARRAYSTR_size_INT(a)));
r = local0;
ARRAYSTR_copy_AR(r, self);
local2 = ARRAYSTR_size_INT(self);
ARRAYSTR_copy_IN_499(r, local2, a);
return r;
}
void OPTIONS_insert_h(OPTIONS self, FLISTSTR cl) {
ARRAYSTR tail = ((ARRAYSTR) NULL);
ARRAYSTR local0;
INT local1;
INT local2;
ARRAYSTR local3;
if (OPTIONS_more_arg(self)) {
local0 = self->args_7;
local1 = self->next_8;
local2 = ARRAYSTR_size_INT(self->args_7);
tail = ARRAYSTR_subarr_(local0, local1, (c_INT_minus_INT_INT_chk(local2,self->next_8)));
}
else {
tail = ARRAYSTR_create_(((ARRAYSTR) NULL), 0);
}
local3 = FLISTSTR_array_A(cl);
self->args_7 = ARRAYSTR_append_(local3, tail);
self->next_8 = 0;
}
FSETSTR FSETSTR_create_F(FSETSTR self) {
FSETSTR noname502;
return ((FSETSTR) NULL);
if (!FSETSTR_invarian(self)) {
fprintf(stderr,"Failed invariant FSET{STR}::invariant:BOOL ../Library/fset.sa:73:9\n");
exit(16);
}
}
BOOL CHAR_is_upper_BOOL(CHAR self) {
BOOL noname503 = ((BOOL) 0);
CHAR noname504 = ((CHAR) 0);
noname504 = self;
switch (noname504) {
case 'A':
case 'B':
case 'C':
case 'D':
case 'E':
case 'F':
case 'G':
case 'H':
case 'I':
case 'J':
case 'K':
case 'L':
case 'M':
case 'N':
case 'O':
case 'P':
case 'Q':
case 'R':
case 'S':
case 'T':
case 'U':
case 'V':
case 'W':
case 'X':
case 'Y':
case 'Z':
return TRUE;
break;
default: ;
}
return FALSE;
}
BOOL OPTIONS_is_class(OPTIONS self, STR nm_505) {
BOOL noname506 = ((BOOL) 0);
STR noname507;
INT noname508 = ((INT) 0);
CHAR c_509 = ((CHAR) 0);
CHAR noname510 = ((CHAR) 0);
BOOL local0;
CHAR local1;
CHAR local2;
local1 = STR_aget_INT_CHAR(nm_505, 0);
if ((local1!='$')) {
local0 = (!(CHAR_is_upper_BOOL(STR_aget_INT_CHAR(nm_505, 0))));
} else {
local0 = FALSE;
}
if (local0) {
return FALSE;
}
{
struct STR_elt_INT_CHAR_frame_struct temp511_0;
STR_elt_INT_CHAR_frame
noname512 = &temp511_0;
noname512->state = 0;
while (1) {
if (noname512->state == 0) {
noname507 = nm_505;
noname508 = 1;
noname512->arg0 = noname507;
noname512->arg1 = noname508;
}
local2 = STR_elt_INT_CHAR(noname512);
if (noname512->state == -1) goto after_loop;
c_509 = local2;
noname510 = c_509;
switch (noname510) {
case 'A':
case 'B':
case 'C':
case 'D':
case 'E':
case 'F':
case 'G':
case 'H':
case 'I':
case 'J':
case 'K':
case 'L':
case 'M':
case 'N':
case 'O':
case 'P':
case 'Q':
case 'R':
case 'S':
case 'T':
case 'U':
case 'V':
case 'W':
case 'X':
case 'Y':
case 'Z':
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
case '_':
break;
default: ;
return FALSE;
}
}
}
after_loop: ;
return TRUE;
}
void OPTIONS_get_classes(OPTIONS self) {
STR arg_513;
self->classes_14 = FSETSTR_create_F(((FSETSTR) NULL));
while (1) {
if (OPTIONS_more_arg(self)) {
}
else {
goto after_loop;
}
arg_513 = OPTIONS_next_arg_STR(self);
self->all_10 = STR_is_eq_STR_BOOL(arg_513, ((STR) &all_515));
if (self->all_10) {
return;
}
else {
if (OPTIONS_is_class(self, arg_513)) {
self->classes_14 = FSETSTR_insert_S(self->classes_14, arg_513);
}
else {
OPTIONS_rewind(self);
return;
}
}
}
after_loop: ;
}
FSETSTR FSETSTR_copy_FSETSTR(FSETSTR self) {
FSETSTR noname516;
FSETSTR r = ((FSETSTR) NULL);
FSETSTR noname517;
STR local0;
{
struct FSETSTR_elt_STR_frame_struct temp518_0;
FSETSTR_elt_STR_frame
noname519 = &temp518_0;
noname519->state = 0;
while (1) {
if (noname519->state == 0) {
noname517 = self;
noname519->arg0 = noname517;
}
local0 = FSETSTR_elt_STR(noname519);
if (noname519->state == -1) goto after_loop;
r = FSETSTR_insert_S(r, local0);
}
}
after_loop: ;
return r;
if (!FSETSTR_invarian(self)) {
fprintf(stderr,"Failed invariant FSET{STR}::invariant:BOOL ../Library/fset.sa:94:7\n");
exit(16);
}
}
FSETSTR FSETSTR_to_union(FSETSTR self, FSETSTR s_520) {
FSETSTR noname521;
FSETSTR r;
FSETSTR noname522;
STR local0;
r = self;
{
struct FSETSTR_elt_STR_frame_struct temp523_0;
FSETSTR_elt_STR_frame
noname524 = &temp523_0;
noname524->state = 0;
while (1) {
if (noname524->state == 0) {
noname522 = s_520;
noname524->arg0 = noname522;
}
local0 = FSETSTR_elt_STR(noname524);
if (noname524->state == -1) goto after_loop;
r = FSETSTR_insert_S(r, local0);
}
}
after_loop: ;
return r;
if (!FSETSTR_invarian(self)) {
fprintf(stderr,"Failed invariant FSET{STR}::invariant:BOOL ../Library/fset.sa:252:11\n");
exit(16);
}
}
FSETSTR FSETSTR_union_FS(FSETSTR self, FSETSTR s_525) {
FSETSTR noname526;
FSETSTR local0;
local0 = FSETSTR_copy_FSETSTR(self);
return FSETSTR_to_union(local0, s_525);
if (!FSETSTR_invarian(self)) {
fprintf(stderr,"Failed invariant FSET{STR}::invariant:BOOL ../Library/fset.sa:257:8\n");
exit(16);
}
}
FSETSTR FSETSTR_differen(FSETSTR self, FSETSTR s_527) {
FSETSTR noname528;
FSETSTR r = ((FSETSTR) NULL);
FSETSTR noname529;
STR e_530;
STR local0;
{
struct FSETSTR_elt_STR_frame_struct temp531_0;
FSETSTR_elt_STR_frame
noname532 = &temp531_0;
noname532->state = 0;
while (1) {
if (noname532->state == 0) {
noname529 = self;
noname532->arg0 = noname529;
}
local0 = FSETSTR_elt_STR(noname532);
if (noname532->state == -1) goto after_loop;
e_530 = local0;
if ((!(FSETSTR_test_STR(s_527, e_530)))) {
r = FSETSTR_insert_S(r, e_530);
}
}
}
after_loop: ;
return r;
if (!FSETSTR_invarian(self)) {
fprintf(stderr,"Failed invariant FSET{STR}::invariant:BOOL ../Library/fset.sa:279:13\n");
exit(16);
}
}
BOOL OPTIONS_is_filen(OPTIONS self, STR fn) {
BOOL noname533 = ((BOOL) 0);
STR noname534;
CHAR local0;
local0 = STR_aget_INT_CHAR(fn, 0);
if ((local0=='-')) {
return FALSE;
}
noname534 = OPTIONS_suffix_S(self, fn);
if (STR_is_eq_STR_BOOL(noname534, ((STR) &c_535))) {
return TRUE;
}
else {
if (STR_is_eq_STR_BOOL(noname534, ((STR) &sa_536))) {
return TRUE;
}
else {
if (STR_is_eq_STR_BOOL(noname534, ((STR) &obj_537))) {
return TRUE;
}
else {
if (STR_is_eq_STR_BOOL(noname534, ((STR) &lib_538))) {
return TRUE;
}
}
}
}
return FALSE;
}
FSETSTR OPTIONS_files_FS(OPTIONS self) {
FSETSTR noname539;
FSETSTR r;
STR arg_540;
r = FSETSTR_create_F(((FSETSTR) NULL));
while (1) {
if (OPTIONS_more_arg(self)) {
}
else {
goto after_loop;
}
arg_540 = OPTIONS_next_arg_STR(self);
if (OPTIONS_is_filen(self, arg_540)) {
r = FSETSTR_insert_S(r, arg_540);
}
else {
OPTIONS_rewind(self);
return r;
}
}
after_loop: ;
return r;
}
STR FMAPSTRFSETSTR_k(FMAPSTRFSETSTR self) {
STR noname542;
STR k = ((STR) NULL);
return ((STR) NULL);
if (!FMAPSTRFSETSTR_i(self)) {
fprintf(stderr,"Failed invariant FMAP{STR,FSET{STR}}::invariant:BOOL ../Library/fmap.sa:54:10\n");
exit(16);
}
}
TUPSTRFSETSTR TUPSTRFSETSTR_t1(TUPSTRFSETSTR self, STR t1_543) {
TUPSTRFSETSTR local0;
local0 = self;
local0.t1 = t1_543;
return local0;
}
TUPSTRFSETSTR TUPSTRFSETSTR_t2(TUPSTRFSETSTR self, FSETSTR t2_544) {
TUPSTRFSETSTR local0;
local0 = self;
local0.t2 = t2_544;
return local0;
}
TUPSTRFSETSTR TUPSTRFSETSTR_cr(TUPSTRFSETSTR self, STR at1, FSETSTR at2) {
TUPSTRFSETSTR noname545 = TUPSTRFSETSTR_zero;
TUPSTRFSETSTR local0;
local0 = TUPSTRFSETSTR_t1(self, at1);
return TUPSTRFSETSTR_t2(local0, at2);
}
FMAPSTRFSETSTR FMAPSTRFSETSTR_a(FMAPSTRFSETSTR self, INT n) {
FMAPSTRFSETSTR noname546;
FMAPSTRFSETSTR r;
FMAPSTRFSETSTR noname547;
FMAPSTRFSETSTR local0;
TUPSTRFSETSTR local1;
STR local2;
local0 = ((FMAPSTRFSETSTR) sbi_arr_alloc(sizeof(struct FMAPSTRFSETSTR_struct), FMAPSTRFSETSTR_tag, sizeof(TUPSTRFSETSTR) , n));
local0->asize = n;
r = local0;
if ((!((FMAPSTRFSETSTR_k(self)==((STR) NULL))))) {
{
struct FMAPSTRFSETSTR_a_549_frame_struct temp548_0;
FMAPSTRFSETSTR_a_549_frame
noname550 = &temp548_0;
noname550->state = 0;
while (1) {
if (noname550->state == 0) {
noname547 = r;
noname550->arg0 = noname547;
}
local1 = TUPSTRFSETSTR_zero;
local2 = FMAPSTRFSETSTR_k(self);
noname550->arg1 = TUPSTRFSETSTR_cr(local1, local2, ((FSETSTR) NULL));
FMAPSTRFSETSTR_a_549(noname550);
if (noname550->state == -1) goto after_loop;
0 /* No return value from iter call */;
}
}
after_loop: ;
}
return r;
}
INT FMAPSTRFSETSTR_a_551(FMAPSTRFSETSTR self) {
INT noname552 = ((INT) 0);
return self->asize;
fprintf(stderr,"Last statement wasn't return ../Library/aref.sa:20:8\n");
exit(16);
}
FMAPSTRFSETSTR FMAPSTRFSETSTR_i_553(FMAPSTRFSETSTR self, TUPSTRFSETSTR p) {
FMAPSTRFSETSTR noname554;
return FMAPSTRFSETSTR_i_555(self, p.t1, p.t2);
if (!FMAPSTRFSETSTR_i(self)) {
fprintf(stderr,"Failed invariant FMAP{STR,FSET{STR}}::invariant:BOOL ../Library/fmap.sa:202:14\n");
exit(16);
}
}
FMAPSTRFSETSTR FMAPSTRFSETSTR_d(FMAPSTRFSETSTR self) {
FMAPSTRFSETSTR noname556;
INT ns = ((INT) 0);
FMAPSTRFSETSTR r;
FMAPSTRFSETSTR noname557;
INT local0;
INT local1;
INT local2;
TUPSTRFSETSTR local3;
if (!((!((self==((FMAPSTRFSETSTR) NULL)))))) {
fprintf(stderr,"Violation of precondition ../Library/fmap.sa:172:22\n");
exit(16);
}
local0 = (self->asize);
local1 = (c_INT_minus_INT_INT_chk(local0,1));
local2 = (c_INT_times_INT_INT_chk(local1,2));
ns = (c_INT_plus_INT_INT_chk(local2,1));
r = FMAPSTRFSETSTR_a(self, ns);
{
struct FMAPSTRFSETSTR_p_frame_struct temp558_0;
FMAPSTRFSETSTR_p_frame
noname559 = &temp558_0;
noname559->state = 0;
while (1) {
if (noname559->state == 0) {
noname557 = self;
noname559->arg0 = noname557;
}
local3 = FMAPSTRFSETSTR_p(noname559);
if (noname559->state == -1) goto after_loop;
r = FMAPSTRFSETSTR_i_553(r, local3);
}
}
after_loop: ;
return r;
}
INT FMAPSTRFSETSTR_k_560(FMAPSTRFSETSTR self, STR k) {
INT noname561 = ((INT) 0);
return STR_hash_INT(k);
return (c_SYS_id_OB_INT(((SYS) NULL),((OB) k)));
if (!FMAPSTRFSETSTR_i(self)) {
fprintf(stderr,"Failed invariant FMAP{STR,FSET{STR}}::invariant:BOOL ../Library/fmap.sa:64:11\n");
exit(16);
}
}
TUPSTRFSETSTR FMAPSTRFSETSTR_a_562(FMAPSTRFSETSTR self, INT ind_563) {
TUPSTRFSETSTR noname564 = TUPSTRFSETSTR_zero;
BOOL local0;
INT local1;
INT local2;
if ((!((self==((FMAPSTRFSETSTR) NULL))))) {
local1 = 0;
local2 = (self->asize);
local0 = INT_is_bet_INT_I(ind_563, local1, (c_INT_minus_INT_INT_chk(local2,1)));
} else {
local0 = FALSE;
}
if (!(local0)) {
fprintf(stderr,"Violation of precondition ../Library/aref.sa:33:7\n");
exit(16);
}
if (ind_563<0||ind_563>=self->asize) {
fprintf(stderr,"Index out of bounds ../Library/aref.sa:33:7\n");
exit(16);
}
return self->arr_part[ind_563];
}
BOOL FMAPSTRFSETSTR_k_565(FMAPSTRFSETSTR self, STR k1, STR k2) {
BOOL noname566 = ((BOOL) 0);
return STR_is_eq_STR_BOOL(k1, k2);
return c_SYS_ob_eq_OB_OB_BOOL(((OB) k1),((OB) k2));
if (!FMAPSTRFSETSTR_i(self)) {
fprintf(stderr,"Failed invariant FMAP{STR,FSET{STR}}::invariant:BOOL ../Library/fmap.sa:44:9\n");
exit(16);
}
}
void FMAPSTRFSETSTR_a_567(FMAPSTRFSETSTR self, INT ind_568, TUPSTRFSETSTR val_569) {
BOOL local0;
INT local1;
INT local2;
if ((!((self==((FMAPSTRFSETSTR) NULL))))) {
local1 = 0;
local2 = (self->asize);
local0 = INT_is_bet_INT_I(ind_568, local1, (c_INT_minus_INT_INT_chk(local2,1)));
} else {
local0 = FALSE;
}
if (!(local0)) {
fprintf(stderr,"Violation of precondition ../Library/aref.sa:38:7\n");
exit(16);
}
if (ind_568<0||ind_568>=self->asize) {
fprintf(stderr,"Index out of bounds ../Library/aref.sa:38:7\n");
exit(16);
}
self->arr_part[ind_568] = val_569;
}
FMAPSTRFSETSTR FMAPSTRFSETSTR_i_555(FMAPSTRFSETSTR self, STR k, FSETSTR t) {
FMAPSTRFSETSTR noname570;
FMAPSTRFSETSTR r;
INT h = ((INT) 0);
INT asm_571 = ((INT) 0);
STR tk;
STR tk_572;
INT local0;
INT local1;
INT local2;
INT local3;
INT local4;
r = self;
if ((r==((FMAPSTRFSETSTR) NULL))) {
r = FMAPSTRFSETSTR_a(self, 5);
}
else {
local0 = (c_INT_plus_INT_INT_chk(self->hsize,1));
local1 = (c_INT_times_INT_INT_chk(local0,2));
if ((local1>(self->asize))) {
r = FMAPSTRFSETSTR_d(self);
}
}
local2 = FMAPSTRFSETSTR_k_560(r, k);
local3 = (r->asize);
h = (local2&(c_INT_minus_INT_INT_chk(local3,2)));
local4 = (r->asize);
asm_571 = (c_INT_minus_INT_INT_chk(local4,1));
while (1) {
tk = (TUPSTRFSETSTR_blob=FMAPSTRFSETSTR_a_562(r, h)).t1;
if (FMAPSTRFSETSTR_k_565(self, tk, FMAPSTRFSETSTR_k(self))) {
goto after_loop;
}
if (FMAPSTRFSETSTR_k_565(self, tk, k)) {
FMAPSTRFSETSTR_a_567(r, h, TUPSTRFSETSTR_cr(TUPSTRFSETSTR_zero, k, t));
return r;
}
h = (c_INT_plus_INT_INT_chk(h,1));
}
after_loop: ;
if ((h==asm_571)) {
h = 0;
while (1) {
tk_572 = (TUPSTRFSETSTR_blob=FMAPSTRFSETSTR_a_562(r, h)).t1;
if (FMAPSTRFSETSTR_k_565(self, tk_572, FMAPSTRFSETSTR_k(self))) {
goto after_loop_574;
}
if (FMAPSTRFSETSTR_k_565(self, tk_572, k)) {
FMAPSTRFSETSTR_a_567(r, h, TUPSTRFSETSTR_cr(TUPSTRFSETSTR_zero, k, t));
return r;
}
h = (c_INT_plus_INT_INT_chk(h,1));
}
after_loop_574: ;
if (!((h!=asm_571))) {
fprintf(stderr,"Violation of assertion ../Library/fmap.sa:199:15\n");
exit(16);
}
}
FMAPSTRFSETSTR_a_567(r, h, TUPSTRFSETSTR_cr(TUPSTRFSETSTR_zero, k, t));
r->hsize = (c_INT_plus_INT_INT_chk(r->hsize,1));
return r;
if (!FMAPSTRFSETSTR_i(self)) {
fprintf(stderr,"Failed invariant FMAP{STR,FSET{STR}}::invariant:BOOL ../Library/fmap.sa:180:9\n");
exit(16);
}
}
STR FMAPSTRSTR_key_n(FMAPSTRSTR self) {
STR noname576;
STR k = ((STR) NULL);
return ((STR) NULL);
if (!FMAPSTRSTR_invar(self)) {
fprintf(stderr,"Failed invariant FMAP{STR,STR}::invariant:BOOL ../Library/fmap.sa:54:10\n");
exit(16);
}
}
TUPSTRSTR TUPSTRSTR_t1_STR(TUPSTRSTR self, STR t1_577) {
TUPSTRSTR local0;
local0 = self;
local0.t1 = t1_577;
return local0;
}
TUPSTRSTR TUPSTRSTR_t2_STR(TUPSTRSTR self, STR t2_578) {
TUPSTRSTR local0;
local0 = self;
local0.t2 = t2_578;
return local0;
}
TUPSTRSTR TUPSTRSTR_create(TUPSTRSTR self, STR at1, STR at2) {
TUPSTRSTR noname579 = TUPSTRSTR_zero;
TUPSTRSTR local0;
local0 = TUPSTRSTR_t1_STR(self, at1);
return TUPSTRSTR_t2_STR(local0, at2);
}
FMAPSTRSTR FMAPSTRSTR_alloc(FMAPSTRSTR self, INT n) {
FMAPSTRSTR noname580;
FMAPSTRSTR r;
FMAPSTRSTR noname581;
FMAPSTRSTR local0;
TUPSTRSTR local1;
STR local2;
local0 = ((FMAPSTRSTR) sbi_arr_alloc(sizeof(struct FMAPSTRSTR_struct), FMAPSTRSTR_tag, sizeof(TUPSTRSTR) , n));
local0->asize = n;
r = local0;
if ((!((FMAPSTRSTR_key_n(self)==((STR) NULL))))) {
{
struct FMAPSTRSTR_aset__frame_struct temp582_0;
FMAPSTRSTR_aset__frame
noname583 = &temp582_0;
noname583->state = 0;
while (1) {
if (noname583->state == 0) {
noname581 = r;
noname583->arg0 = noname581;
}
local1 = TUPSTRSTR_zero;
local2 = FMAPSTRSTR_key_n(self);
noname583->arg1 = TUPSTRSTR_create(local1, local2, ((STR) NULL));
FMAPSTRSTR_aset_(noname583);
if (noname583->state == -1) goto after_loop;
0 /* No return value from iter call */;
}
}
after_loop: ;
}
return r;
}
INT FMAPSTRSTR_asize_INT(FMAPSTRSTR self) {
INT noname584 = ((INT) 0);
return self->asize;
fprintf(stderr,"Last statement wasn't return ../Library/aref.sa:20:8\n");
exit(16);
}
FMAPSTRSTR FMAPSTRSTR_inser(FMAPSTRSTR self, TUPSTRSTR p) {
FMAPSTRSTR noname585;
return FMAPSTRSTR_inser_586(self, p.t1, p.t2);
if (!FMAPSTRSTR_invar(self)) {
fprintf(stderr,"Failed invariant FMAP{STR,STR}::invariant:BOOL ../Library/fmap.sa:202:14\n");
exit(16);
}
}
FMAPSTRSTR FMAPSTRSTR_doubl(FMAPSTRSTR self) {
FMAPSTRSTR noname587;
INT ns = ((INT) 0);
FMAPSTRSTR r;
FMAPSTRSTR noname588;
INT local0;
INT local1;
INT local2;
TUPSTRSTR local3;
if (!((!((self==((FMAPSTRSTR) NULL)))))) {
fprintf(stderr,"Violation of precondition ../Library/fmap.sa:172:22\n");
exit(16);
}
local0 = (self->asize);
local1 = (c_INT_minus_INT_INT_chk(local0,1));
local2 = (c_INT_times_INT_INT_chk(local1,2));
ns = (c_INT_plus_INT_INT_chk(local2,1));
r = FMAPSTRSTR_alloc(self, ns);
{
struct FMAPSTRSTR_pairs_frame_struct temp589_0;
FMAPSTRSTR_pairs_frame
noname590 = &temp589_0;
noname590->state = 0;
while (1) {
if (noname590->state == 0) {
noname588 = self;
noname590->arg0 = noname588;
}
local3 = FMAPSTRSTR_pairs(noname590);
if (noname590->state == -1) goto after_loop;
r = FMAPSTRSTR_inser(r, local3);
}
}
after_loop: ;
return r;
}
INT FMAPSTRSTR_key_h(FMAPSTRSTR self, STR k) {
INT noname591 = ((INT) 0);
return STR_hash_INT(k);
return (c_SYS_id_OB_INT(((SYS) NULL),((OB) k)));
if (!FMAPSTRSTR_invar(self)) {
fprintf(stderr,"Failed invariant FMAP{STR,STR}::invariant:BOOL ../Library/fmap.sa:64:11\n");
exit(16);
}
}
TUPSTRSTR FMAPSTRSTR_aget_(FMAPSTRSTR self, INT ind_592) {
TUPSTRSTR noname593 = TUPSTRSTR_zero;
BOOL local0;
INT local1;
INT local2;
if ((!((self==((FMAPSTRSTR) NULL))))) {
local1 = 0;
local2 = (self->asize);
local0 = INT_is_bet_INT_I(ind_592, local1, (c_INT_minus_INT_INT_chk(local2,1)));
} else {
local0 = FALSE;
}
if (!(local0)) {
fprintf(stderr,"Violation of precondition ../Library/aref.sa:33:7\n");
exit(16);
}
if (ind_592<0||ind_592>=self->asize) {
fprintf(stderr,"Index out of bounds ../Library/aref.sa:33:7\n");
exit(16);
}
return self->arr_part[ind_592];
}
BOOL FMAPSTRSTR_key_e(FMAPSTRSTR self, STR k1, STR k2) {
BOOL noname594 = ((BOOL) 0);
return STR_is_eq_STR_BOOL(k1, k2);
return c_SYS_ob_eq_OB_OB_BOOL(((OB) k1),((OB) k2));
if (!FMAPSTRSTR_invar(self)) {
fprintf(stderr,"Failed invariant FMAP{STR,STR}::invariant:BOOL ../Library/fmap.sa:44:9\n");
exit(16);
}
}
void FMAPSTRSTR_aset__595(FMAPSTRSTR self, INT ind_596, TUPSTRSTR val_597) {
BOOL local0;
INT local1;
INT local2;
if ((!((self==((FMAPSTRSTR) NULL))))) {
local1 = 0;
local2 = (self->asize);
local0 = INT_is_bet_INT_I(ind_596, local1, (c_INT_minus_INT_INT_chk(local2,1)));
} else {
local0 = FALSE;
}
if (!(local0)) {
fprintf(stderr,"Violation of precondition ../Library/aref.sa:38:7\n");
exit(16);
}
if (ind_596<0||ind_596>=self->asize) {
fprintf(stderr,"Index out of bounds ../Library/aref.sa:38:7\n");
exit(16);
}
self->arr_part[ind_596] = val_597;
}
FMAPSTRSTR FMAPSTRSTR_inser_586(FMAPSTRSTR self, STR k, STR t) {
FMAPSTRSTR noname598;
FMAPSTRSTR r;
INT h = ((INT) 0);
INT asm_599 = ((INT) 0);
STR tk;
STR tk_600;
INT local0;
INT local1;
INT local2;
INT local3;
INT local4;
r = self;
if ((r==((FMAPSTRSTR) NULL))) {
r = FMAPSTRSTR_alloc(self, 5);
}
else {
local0 = (c_INT_plus_INT_INT_chk(self->hsize,1));
local1 = (c_INT_times_INT_INT_chk(local0,2));
if ((local1>(self->asize))) {
r = FMAPSTRSTR_doubl(self);
}
}
local2 = FMAPSTRSTR_key_h(r, k);
local3 = (r->asize);
h = (local2&(c_INT_minus_INT_INT_chk(local3,2)));
local4 = (r->asize);
asm_599 = (c_INT_minus_INT_INT_chk(local4,1));
while (1) {
tk = (TUPSTRSTR_blob=FMAPSTRSTR_aget_(r, h)).t1;
if (FMAPSTRSTR_key_e(self, tk, FMAPSTRSTR_key_n(self))) {
goto after_loop;
}
if (FMAPSTRSTR_key_e(self, tk, k)) {
FMAPSTRSTR_aset__595(r, h, TUPSTRSTR_create(TUPSTRSTR_zero, k, t));
return r;
}
h = (c_INT_plus_INT_INT_chk(h,1));
}
after_loop: ;
if ((h==asm_599)) {
h = 0;
while (1) {
tk_600 = (TUPSTRSTR_blob=FMAPSTRSTR_aget_(r, h)).t1;
if (FMAPSTRSTR_key_e(self, tk_600, FMAPSTRSTR_key_n(self))) {
goto after_loop_602;
}
if (FMAPSTRSTR_key_e(self, tk_600, k)) {
FMAPSTRSTR_aset__595(r, h, TUPSTRSTR_create(TUPSTRSTR_zero, k, t));
return r;
}
h = (c_INT_plus_INT_INT_chk(h,1));
}
after_loop_602: ;
if (!((h!=asm_599))) {
fprintf(stderr,"Violation of assertion ../Library/fmap.sa:199:15\n");
exit(16);
}
}
FMAPSTRSTR_aset__595(r, h, TUPSTRSTR_create(TUPSTRSTR_zero, k, t));
r->hsize = (c_INT_plus_INT_INT_chk(r->hsize,1));
return r;
if (!FMAPSTRSTR_invar(self)) {
fprintf(stderr,"Failed invariant FMAP{STR,STR}::invariant:BOOL ../Library/fmap.sa:180:9\n");
exit(16);
}
}
STR STR_replace_CHAR(STR self, CHAR o, CHAR n) {
STR noname604;
STR r;
STR noname605;
CHAR c_606 = ((CHAR) 0);
STR noname607;
STR local0;
CHAR local1;
STR local2;
CHAR *local1p; INT local1n;
STR local3;
CHAR *noname610tp; INT noname610tn;
if ((self==((STR) NULL))) {
return ((STR) NULL);
}
local0 = ((STR) sbi_arr_alloc_atomic(sizeof(struct STR_struct), STR_tag, sizeof(CHAR) , (self->asize)));
local0->asize = (self->asize);
r = local0;
{
BOOL noname609 = TRUE;
BOOL noname610 = TRUE;
while (1) {
if (noname609) {
noname609 = FALSE;
noname605 = self;
local2 = noname605;
local1p = local2->arr_part; local1n = local2->asize;
} else {
local1p++; local1n--;
}
if (local1n<=0) goto after_loop; local1 = *local1p;
c_606 = local1;
if ((c_606==o)) {
c_606 = n;
}
if (noname610) {
noname610 = FALSE;
noname607 = r;
local3 = noname607;
noname610tp = local3->arr_part; noname610tn = local3->asize;
} else {
noname610tp++; noname610tn--;
}
if (noname610tn<=0) goto after_loop; *noname610tp = c_606;
0 /* no return value from inlined iter */;
}
}
after_loop: ;
return r;
}
STR STR_head_INT_STR(STR self, INT i) {
STR noname611;
STR r;
INT local0;
STR local1;
local0 = 0;
if (!(INT_is_bet_INT_I(i, local0, STR_size_INT(self)))) {
fprintf(stderr,"Violation of precondition ../Library/str.sa:419:7\n");
exit(16);
}
if ((self==((STR) NULL))) {
return ((STR) NULL);
}
local1 = ((STR) sbi_arr_alloc_atomic(sizeof(struct STR_struct), STR_tag, sizeof(CHAR) , i));
local1->asize = i;
r = local1;
(memcpy(r->arr_part,self->arr_part,(r->asize) > (self->asize) ? self->asize:r->asize));
return r;
}
STR OPTIONS_director(OPTIONS self, STR nm_612) {
STR noname613;
INT pos_614 = ((INT) 0);
INT noname615 = ((INT) 0);
INT noname616 = ((INT) 0);
STR r;
INT local0;
INT local1;
CHAR local2;
{
struct INT_downto_INT_INT_frame_struct temp617_0;
INT_downto_INT_INT_frame
noname618 = &temp617_0;
noname618->state = 0;
while (1) {
if (noname618->state == 0) {
local1 = STR_size_INT(nm_612);
noname615 = (c_INT_minus_INT_INT_chk(local1,1));
noname616 = 0;
noname618->arg0 = noname615;
noname618->arg1 = noname616;
}
local0 = INT_downto_INT_INT(noname618);
if (noname618->state == -1) goto after_loop;
pos_614 = local0;
local2 = STR_aget_INT_CHAR(nm_612, pos_614);
if ((local2=='/')) {
goto after_loop;
}
}
}
after_loop: ;
r = STR_head_INT_STR(nm_612, pos_614);
if (STR_is_eq_STR_BOOL(r, ((STR) &name_619))) {
r = ((STR) &name_620);
}
return r;
}
FILE_20 FILE_open_for_re(FILE_20 self, STR nm_621) {
FILE_20 noname622;
FILE_20 r;
FILE_20 local0;
local0 = ((FILE_20) sbi_alloc(sizeof(struct FILE_20_struct), FILE_20_tag));
r = local0;
r->fp = fopen(((nm_621==NULL)?NULL:nm_621->arr_part), ((((STR) &r_623)==NULL)?NULL:((STR) &r_623)->arr_part));
return r;
}
BOOL FILE_error_BOOL(FILE_20 self) {
BOOL noname624 = ((BOOL) 0);
BOOL local0;
if ((self->fp==((EXT_OB) NULL))) {
local0 = TRUE;
} else {
local0 = ferror(self->fp);
}
return local0;
}
INT FILE_current_loc_INT(FILE_20 self) {
INT noname625 = ((INT) 0);
if (!((!((self->fp==((EXT_OB) NULL)))))) {
fprintf(stderr,"Violation of precondition ../Library/file.sa:95:14\n");
exit(16);
}
return ftell(self->fp);
}
void FILE_seek_from_e(FILE_20 self, INT off_626) {
INT dummy_627 = ((INT) 0);
if (!((!((self->fp==((EXT_OB) NULL)))))) {
fprintf(stderr,"Violation of precondition ../Library/file.sa:91:16\n");
exit(16);
}
dummy_627 = fseek(self->fp, off_626, 2);
}
void FILE_seek_from_f(FILE_20 self, INT off_628) {
INT dummy_629 = ((INT) 0);
if (!((!((self->fp==((EXT_OB) NULL)))))) {
fprintf(stderr,"Violation of precondition ../Library/file.sa:83:18\n");
exit(16);
}
dummy_629 = fseek(self->fp, off_628, 0);
}
INT FILE_size_INT(FILE_20 self) {
INT noname630 = ((INT) 0);
INT current_631 = ((INT) 0);
INT r = ((INT) 0);
if (!((!((self->fp==((EXT_OB) NULL)))))) {
fprintf(stderr,"Violation of precondition ../Library/file.sa:75:7\n");
exit(16);
}
current_631 = FILE_current_loc_INT(self);
FILE_seek_from_e(self, 0);
r = FILE_current_loc_INT(self);
FILE_seek_from_f(self, current_631);
return r;
}
FSTR FSTR_create_INT_FSTR(FSTR self, INT sz) {
FSTR noname632;
FSTR local0;
if (!((sz>=0))) {
fprintf(stderr,"Violation of precondition ../Library/fstr.sa:38:9\n");
exit(16);
}
local0 = ((FSTR) sbi_arr_alloc_atomic(sizeof(struct FSTR_struct), FSTR_tag, sizeof(CHAR) , sz));
local0->asize = sz;
return local0;
if (!FSTR_invariant_BOOL(self)) {
fprintf(stderr,"Failed invariant FSTR::invariant:BOOL ../Library/fstr.sa:38:9\n");
exit(16);
}
}
FSTR FILE_fstr_FSTR(FILE_20 self) {
FSTR noname633;
INT fsize = ((INT) 0);
FSTR r;
INT bsize = ((INT) 0);
if (!((!((self->fp==((EXT_OB) NULL)))))) {
fprintf(stderr,"Violation of precondition ../Library/file.sa:99:7\n");
exit(16);
}
fsize = FILE_size_INT(self);
if ((fsize==-1)) {
return ((FSTR) NULL);
}
r = FSTR_create_INT_FSTR(((FSTR) NULL), fsize);
FILE_seek_from_f(self, 0);
bsize = fread(((r==NULL)?NULL:r->arr_part), 1, fsize, self->fp);
r->loc_17 = bsize;
return r;
}
FSTR FSTR_create_FSTR(FSTR self) {
FSTR noname634;
FSTR local0;
local0 = ((FSTR) sbi_arr_alloc_atomic(sizeof(struct FSTR_struct), FSTR_tag, sizeof(CHAR) , 16));
local0->asize = 16;
return local0;
if (!FSTR_invariant_BOOL(self)) {
fprintf(stderr,"Failed invariant FSTR::invariant:BOOL ../Library/fstr.sa:34:9\n");
exit(16);
}
}
INT FSTR_asize_INT(FSTR self) {
INT noname635 = ((INT) 0);
return self->asize;
fprintf(stderr,"Last statement wasn't return ../Library/aref.sa:20:8\n");
exit(16);
}
void FSTR_aref_aset_I(FSTR self, INT ind_636, CHAR val_637) {
BOOL local0;
INT local1;
INT local2;
if ((!((self==((FSTR) NULL))))) {
local1 = 0;
local2 = (self->asize);
local0 = INT_is_bet_INT_I(ind_636, local1, (c_INT_minus_INT_INT_chk(local2,1)));
} else {
local0 = FALSE;
}
if (!(local0)) {
fprintf(stderr,"Violation of precondition ../Library/aref.sa:38:7\n");
exit(16);
}
if (ind_636<0||ind_636>=self->asize) {
fprintf(stderr,"Index out of bounds ../Library/aref.sa:38:7\n");
exit(16);
}
self->arr_part[ind_636] = val_637;
}
void FSTR_aset_INT_CHAR(FSTR self, INT ind_638, CHAR val_639) {
BOOL local0;
INT local1;
if ((!((self==((FSTR) NULL))))) {
local1 = 0;
local0 = INT_is_bet_INT_I(ind_638, local1, (c_INT_minus_INT_INT_chk(self->loc_17,1)));
} else {
local0 = FALSE;
}
if (!(local0)) {
fprintf(stderr,"Violation of precondition ../Library/flist.sa:73:7\n");
exit(16);
}
FSTR_aref_aset_I(self, ind_638, val_639);
if (!FSTR_invariant_BOOL(self)) {
fprintf(stderr,"Failed invariant FSTR::invariant:BOOL ../Library/flist.sa:73:7\n");
exit(16);
}
}
FSTR FSTR_push_CHAR_FSTR(FSTR self, CHAR c_640) {
FSTR noname641;
FSTR r = ((FSTR) NULL);
INT l = ((INT) 0);
INT local0;
FSTR local1;
INT local2;
if ((self==((FSTR) NULL))) {
r = FSTR_create_FSTR(self);
l = 0;
}
else {
local0 = self->loc_17;
if ((local0<(self->asize))) {
r = self;
l = r->loc_17;
}
else {
local2 = 2;
local1 = ((FSTR) sbi_arr_alloc_atomic(sizeof(struct FSTR_struct), FSTR_tag, sizeof(CHAR) , (c_INT_times_INT_INT_chk(local2,(self->asize)))));
local1->asize = (c_INT_times_INT_INT_chk(local2,(self->asize)));
r = local1;
l = self->loc_17;
(memcpy(r->arr_part,self->arr_part,l));
}
}
r->loc_17 = (c_INT_plus_INT_INT_chk(l,1));
FSTR_aset_INT_CHAR(r, l, c_640);
return r;
if (!FSTR_invariant_BOOL(self)) {
fprintf(stderr,"Failed invariant FSTR::invariant:BOOL ../Library/fstr.sa:77:7\n");
exit(16);
}
}
FSTR FSTR_plus_CHAR_FSTR(FSTR self, CHAR c_642) {
FSTR noname643;
return FSTR_push_CHAR_FSTR(self, c_642);
if (!FSTR_invariant_BOOL(self)) {
fprintf(stderr,"Failed invariant FSTR::invariant:BOOL ../Library/fstr.sa:136:7\n");
exit(16);
}
}
void FILE_close(FILE_20 self) {
if (!((!((self->fp==((EXT_OB) NULL)))))) {
fprintf(stderr,"Violation of precondition ../Library/file.sa:193:8\n");
exit(16);
}
fclose(self->fp);
}
INT FSTR_size_INT(FSTR self) {
INT noname644 = ((INT) 0);
if ((self==((FSTR) NULL))) {
return 0;
}
return self->loc_17;
if (!FSTR_invariant_BOOL(self)) {
fprintf(stderr,"Failed invariant FSTR::invariant:BOOL ../Library/flist.sa:50:7\n");
exit(16);
}
}
CHAR FSTR_aref_aget_I(FSTR self, INT ind_645) {
CHAR noname646 = ((CHAR) 0);
BOOL local0;
INT local1;
INT local2;
if ((!((self==((FSTR) NULL))))) {
local1 = 0;
local2 = (self->asize);
local0 = INT_is_bet_INT_I(ind_645, local1, (c_INT_minus_INT_INT_chk(local2,1)));
} else {
local0 = FALSE;
}
if (!(local0)) {
fprintf(stderr,"Violation of precondition ../Library/aref.sa:33:7\n");
exit(16);
}
if (ind_645<0||ind_645>=self->asize) {
fprintf(stderr,"Index out of bounds ../Library/aref.sa:33:7\n");
exit(16);
}
return self->arr_part[ind_645];
}
CHAR FSTR_aget_INT_CHAR(FSTR self, INT ind_647) {
CHAR noname648 = ((CHAR) 0);
BOOL local0;
INT local1;
if ((!((self==((FSTR) NULL))))) {
local1 = 0;
local0 = INT_is_bet_INT_I(ind_647, local1, (c_INT_minus_INT_INT_chk(self->loc_17,1)));
} else {
local0 = FALSE;
}
if (!(local0)) {
fprintf(stderr,"Violation of precondition ../Library/flist.sa:68:7\n");
exit(16);
}
return FSTR_aref_aget_I(self, ind_647);
if (!FSTR_invariant_BOOL(self)) {
fprintf(stderr,"Failed invariant FSTR::invariant:BOOL ../Library/flist.sa:68:7\n");
exit(16);
}
}
STR STR_plus_STR_STR(STR self, STR s_649) {
STR noname650;
INT sz = ((INT) 0);
STR r;
INT local0;
STR local1;
INT local2;
INT local3;
local0 = STR_size_INT(self);
if ((local0==0)) {
return s_649;
}
sz = STR_size_INT(s_649);
if ((sz==0)) {
return self;
}
local2 = (self->asize);
local1 = ((STR) sbi_arr_alloc_atomic(sizeof(struct STR_struct), STR_tag, sizeof(CHAR) , (c_INT_plus_INT_INT_chk(local2,sz))));
local1->asize = (c_INT_plus_INT_INT_chk(local2,sz));
r = local1;
(memcpy(r->arr_part,self->arr_part,(self->asize)));
local3 = (self->asize);
(memcpy(r->arr_part+local3,s_649->arr_part,(r->asize)-local3 > s_649->asize ? s_649->asize:(r->asize)-local3));
return r;
}
FLISTSTR OPTIONS_args_fro_651(OPTIONS self, STR fname) {
FLISTSTR noname652;
STR name_653;
STR wd;
FLISTSTR cl;
FILE_20 f;
FSTR fs;
STR tok;
INT pos_654 = ((INT) 0);
CHAR c_655 = ((CHAR) 0);
ERR_26 local0;
ERR_26 local1;
ERR_26 local2;
FSTR local3;
CHAR local4;
BOOL local5;
BOOL local6;
CHAR local7;
CHAR local8;
BOOL local9;
CHAR local10;
STR local11;
name_653 = STR_replace_CHAR(fname, '\\', '/');
wd = OPTIONS_director(self, name_653);
cl = FLISTSTR_create_(((FLISTSTR) NULL));
f = FILE_open_for_re(((FILE_20) NULL), name_653);
if (FILE_error_BOOL(f)) {
local0 = ERR_create_ERR(((ERR_26) NULL));
local1 = ERR_plus_STR_ERR(local0, ((STR) &Couldntopenfile));
local2 = ERR_plus_STR_ERR(local1, name_653);
ERR_plus_CHAR(local2, '\n');
OPTIONS_usage(self);
}
local3 = FILE_fstr_FSTR(f);
fs = FSTR_plus_CHAR_FSTR(local3, ' ');
FILE_close(f);
tok = ((STR) &name_656);
pos_654 = 0;
while (1) {
if ((pos_654>=FSTR_size_INT(fs))) {
goto after_loop;
}
c_655 = FSTR_aget_INT_CHAR(fs, pos_654);
if ((c_655=='\\')) {
c_655 = '/';
}
if ((c_655=='-')) {
local4 = FSTR_aget_INT_CHAR(fs, (c_INT_plus_INT_INT_chk(pos_654,1)));
if ((local4=='-')) {
while (1) {
pos_654 = (c_INT_plus_INT_INT_chk(pos_654,1));
if ((pos_654>=FSTR_size_INT(fs))) {
local6 = TRUE;
} else {
local7 = FSTR_aget_INT_CHAR(fs, pos_654);
local6 = (local7=='\n');
}
if (local6) {
local5 = TRUE;
} else {
local8 = FSTR_aget_INT_CHAR(fs, pos_654);
local5 = (local8=='\r');
}
if (local5) {
goto after_loop_658;
}
}
after_loop_658: ;
}
else {
tok = STR_plus_CHAR_STR(tok, '-');
}
}
else {
if ((!(CHAR_is_space_BOOL(c_655)))) {
tok = STR_plus_CHAR_STR(tok, c_655);
}
else {
if (STR_is_neq_STR_BOOL(tok, ((STR) &name_660))) {
if (OPTIONS_is_filen(self, tok)) {
local10 = STR_aget_INT_CHAR(tok, 0);
local9 = (local10!='/');
} else {
local9 = FALSE;
}
if (local9) {
local11 = STR_plus_CHAR_STR(wd, '/');
tok = STR_plus_STR_STR(local11, tok);
}
cl = FLISTSTR_push_ST(cl, tok);
tok = ((STR) &name_661);
}
}
}
pos_654 = (c_INT_plus_INT_INT_chk(pos_654,1));
}
after_loop: ;
return cl;
}
void OPTIONS_barf_STR(OPTIONS self, STR msg_662) {
ERR_26 local0;
ERR_26 local1;
local0 = ERR_create_ERR(((ERR_26) NULL));
local1 = ERR_plus_STR_ERR(local0, msg_662);
ERR_plus_CHAR(local1, '\n');
UNIX_exit_INT(((UNIX) NULL), 1);
}
void BE_LEX_barf_STR(BE_LEX self, STR msg_663) {
ERR_26 local0;
ERR_26 local1;
local0 = ERR_create_ERR(((ERR_26) NULL));
local1 = ERR_plus_STR_ERR(local0, msg_663);
ERR_plus_CHAR(local1, '\n');
UNIX_exit_INT(((UNIX) NULL), 1);
}
BE_LEX BE_LEX_create_ST(BE_LEX self, STR s_664) {
BE_LEX noname665;
BE_LEX res;
FILE_20 f;
BE_LEX local0;
local0 = ((BE_LEX) sbi_alloc(sizeof(struct BE_LEX_struct), BE_LEX_tag));
res = local0;
res->name_19 = s_664;
f = FILE_open_for_re(((FILE_20) NULL), s_664);
if (FILE_error_BOOL(f)) {
BE_LEX_barf_STR(self, STR_plus_STR_STR(((STR) &Couldntopensyste), s_664));
}
res->lex_state = 0;
res->buf_18 = FILE_fstr_FSTR(f);
res->pos = 0;
return res;
}
BOOL CHAR_is_print_BOOL(CHAR self) {
BOOL noname666 = ((BOOL) 0);
CHAR noname667 = ((CHAR) 0);
noname667 = self;
switch (noname667) {
case ' ':
case 'a':
case 'b':
case 'c':
case 'd':
case 'e':
case 'f':
case 'g':
case 'h':
case 'i':
case 'j':
case 'k':
case 'l':
case 'm':
case 'n':
case 'o':
case 'p':
case 'q':
case 'r':
case 's':
case 't':
case 'u':
case 'v':
case 'w':
case 'x':
case 'y':
case 'z':
case 'A':
case 'B':
case 'C':
case 'D':
case 'E':
case 'F':
case 'G':
case 'H':
case 'I':
case 'J':
case 'K':
case 'L':
case 'M':
case 'N':
case 'O':
case 'P':
case 'Q':
case 'R':
case 'S':
case 'T':
case 'U':
case 'V':
case 'W':
case 'X':
case 'Y':
case 'Z':
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
case '!':
case '\"':
case '#':
case '$':
case '%':
case '&':
case '\'':
case '(':
case ')':
case '*':
case '+':
case '-':
case '.':
case '/':
case ':':
case ';':
case '<':
case '=':
case '>':
case '?':
case '@':
case '[':
case '\\':
case ']':
case '^':
case '_':
case '`':
case '{':
case '|':
case '}':
case '~':
case ',':
return TRUE;
break;
default: ;
}
return FALSE;
}
void FSTR_clear(FSTR self) {
if ((!((self==((FSTR) NULL))))) {
self->loc_17 = 0;
}
if (!FSTR_invariant_BOOL(self)) {
fprintf(stderr,"Failed invariant FSTR::invariant:BOOL ../Library/fstr.sa:96:8\n");
exit(16);
}
}
CHAR INT_digit_char_CHAR(INT self) {
CHAR noname668 = ((CHAR) 0);
if (!(INT_is_bet_INT_I(self, 0, 15))) {
fprintf(stderr,"Violation of precondition ../Library/int.sa:250:13\n");
exit(16);
}
return STR_aget_INT_CHAR(((STR) &S0123456789ABCDEF), self);
}
void INT_buf_FSTR(INT self, FSTR buf_669) {
shared_INT_buf = buf_669;
}
STR STR_from_fstr_FS(STR self, FSTR s_670) {
STR noname671;
INT sz = ((INT) 0);
STR r;
STR local0;
sz = FSTR_size_INT(s_670);
if ((sz==0)) {
return ((STR) &name_672);
}
local0 = ((STR) sbi_arr_alloc_atomic(sizeof(struct STR_struct), STR_tag, sizeof(CHAR) , sz));
local0->asize = sz;
r = local0;
(memcpy(r->arr_part,s_670->arr_part,sz));
return r;
}
STR FSTR_str_STR(FSTR self) {
STR noname673;
return STR_from_fstr_FS(((STR) NULL), self);
if (!FSTR_invariant_BOOL(self)) {
fprintf(stderr,"Failed invariant FSTR::invariant:BOOL ../Library/fstr.sa:92:6\n");
exit(16);
}
}
FSTR FSTR_plus_STR_FSTR(FSTR self, STR s_674) {
FSTR noname675;
FSTR noname676;
FSTR r = ((FSTR) NULL);
INT l = ((INT) 0);
INT local0;
FSTR local1;
INT local2;
INT local3;
STR local4;
STR local5;
noname676 = self;
l = STR_length_INT(s_674);
if ((self==((FSTR) NULL))) {
r = FSTR_create_INT_FSTR(self, (c_INT_times_INT_INT_chk(2,l)));
}
else {
local0 = (c_INT_plus_INT_INT_chk(self->loc_17,l));
if ((local0<(self->asize))) {
r = self;
}
else {
local2 = 2;
local3 = (self->asize);
local1 = ((FSTR) sbi_arr_alloc_atomic(sizeof(struct FSTR_struct), FSTR_tag, sizeof(CHAR) , (c_INT_times_INT_INT_chk(local2,(c_INT_plus_INT_INT_chk(local3,l))))));
local1->asize = (c_INT_times_INT_INT_chk(local2,(c_INT_plus_INT_INT_chk(local3,l))));
r = local1;
r->loc_17 = self->loc_17;
(memcpy(r->arr_part,self->arr_part,(r->asize) > (self->asize) ? self->asize:r->asize));
}
}
if ((l==0)) {
return r;
}
(memcpy(r->arr_part+r->loc_17,s_674->arr_part,(r->asize)-r->loc_17 > s_674->asize ? s_674->asize:(r->asize)-r->loc_17));
r->loc_17 = (c_INT_plus_INT_INT_chk(r->loc_17,l));
return r;
local4 = FSTR_str_STR(noname675);
local5 = FSTR_str_STR(noname676);
if (!(STR_is_eq_STR_BOOL(local4, STR_plus_STR_STR(local5, s_674)))) {
fprintf(stderr,"Violation of postcondition ../Library/fstr.sa:105:7\n");
exit(16);
}
if (!FSTR_invariant_BOOL(self)) {
fprintf(stderr,"Failed invariant FSTR::invariant:BOOL ../Library/fstr.sa:105:7\n");
exit(16);
}
}
void FSTR_to_reverse(FSTR self) {
INT noname677 = ((INT) 0);
INT i = ((INT) 0);
INT u_678 = ((INT) 0);
CHAR t = ((CHAR) 0);
INT local0;
INT local1;
INT local2;
if ((self==((FSTR) NULL))) {
return;
}
{
BOOL noname680 = TRUE;
while (1) {
if (noname680) {
noname680 = FALSE;
noname677 = (c_INT_div_INT_INT_chk(self->loc_17,2));
local1 = noname677;
local0 = 0;
} else {
local0++;
}
if (local0>=local1) goto after_loop;
i = local0;
local2 = (c_INT_minus_INT_INT_chk(self->loc_17,i));
u_678 = (c_INT_minus_INT_INT_chk(local2,1));
t = FSTR_aget_INT_CHAR(self, i);
FSTR_aset_INT_CHAR(self, i, FSTR_aget_INT_CHAR(self, u_678));
FSTR_aset_INT_CHAR(self, u_678, t);
}
}
after_loop: ;
if (!FSTR_invariant_BOOL(self)) {
fprintf(stderr,"Failed invariant FSTR::invariant:BOOL ../Library/flist.sa:236:13\n");
exit(16);
}
}
STR INT_octal_str_STR(INT self) {
STR noname681;
INT i = ((INT) 0);
FSTR local0;
FSTR_clear(shared_INT_buf);
i = self;
while (1) {
local0 = shared_INT_buf;
INT_buf_FSTR(self, FSTR_plus_CHAR_FSTR(local0, INT_digit_char_CHAR((i&7))));
i = (((unsigned)i)>>((unsigned)3));
if ((i==0)) {
goto after_loop;
}
}
after_loop: ;
INT_buf_FSTR(self, FSTR_plus_STR_FSTR(shared_INT_buf, ((STR) &o0)));
FSTR_to_reverse(shared_INT_buf);
return FSTR_str_STR(shared_INT_buf);
}
STR STR_append_STR_S(STR self, STR s1, STR s2) {
STR noname683;
STR r;
INT local0;
INT local1;
INT local2;
STR local3;
INT local4;
INT local5;
INT local6;
INT local7;
INT local8;
local0 = STR_size_INT(self);
if ((local0==0)) {
return STR_plus_STR_STR(s1, s2);
}
else {
local1 = STR_size_INT(s1);
if ((local1==0)) {
return STR_plus_STR_STR(self, s2);
}
else {
local2 = STR_size_INT(s2);
if ((local2==0)) {
return STR_plus_STR_STR(self, s1);
}
}
}
local4 = (self->asize);
local5 = (c_INT_plus_INT_INT_chk(local4,(s1->asize)));
local3 = ((STR) sbi_arr_alloc_atomic(sizeof(struct STR_struct), STR_tag, sizeof(CHAR) , (c_INT_plus_INT_INT_chk(local5,(s2->asize)))));
local3->asize = (c_INT_plus_INT_INT_chk(local5,(s2->asize)));
r = local3;
(memcpy(r->arr_part,self->arr_part,(r->asize) > (self->asize) ? self->asize:r->asize));
local6 = (self->asize);
(memcpy(r->arr_part+local6,s1->arr_part,(r->asize)-local6 > s1->asize ? s1->asize:(r->asize)-local6));
local7 = (self->asize);
local8 = (c_INT_plus_INT_INT_chk(local7,(s1->asize)));
(memcpy(r->arr_part+local8,s2->arr_part,(r->asize)-local8 > s2->asize ? s2->asize:(r->asize)-local8));
return r;
}
STR CHAR_pretty_STR(CHAR self) {
STR noname684;
CHAR noname685 = ((CHAR) 0);
STR s_686;
BOOL local0;
BOOL local1;
STR local2;
STR local3;
INT local4;
STR local5;
if (CHAR_is_print_BOOL(self)) {
local1 = (self!='\'');
} else {
local1 = FALSE;
}
if (local1) {
local0 = (self!='\\');
} else {
local0 = FALSE;
}
if (local0) {
local2 = STR_plus_CHAR_STR(((STR) &name_687), self);
return STR_plus_STR_STR(local2, ((STR) &name_688));
}
noname685 = self;
switch (noname685) {
case 'a':
return ((STR) &a);
break;
case '\b':
return ((STR) &b);
break;
case '\f':
return ((STR) &f);
break;
case '\n':
return ((STR) &n);
break;
case '\r':
return ((STR) &r);
break;
case '\t':
return ((STR) &t);
break;
case '\v':
return ((STR) &v_689);
break;
case '\\':
return ((STR) &name_690);
break;
case '\'':
return ((STR) &name_691);
break;
default: ;
}
s_686 = INT_octal_str_STR(((INT)self));
local3 = ((STR) &name_692);
local4 = STR_size_INT(s_686);
local5 = STR_tail_INT_STR(s_686, (c_INT_minus_INT_INT_chk(local4,2)));
return STR_append_STR_S(local3, local5, ((STR) &name_693));
}
STR BE_LEX_get_str_STR(BE_LEX self) {
STR noname694;
CHAR c_695 = ((CHAR) 0);
FSTR tmp_696;
INT noname697 = ((INT) 0);
CHAR noname698 = ((CHAR) 0);
CHAR noname699 = ((CHAR) 0);
CHAR noname700 = ((CHAR) 0);
INT local0;
STR local1;
STR local2;
STR local3;
tmp_696 = FSTR_create_FSTR(((FSTR) NULL));
while (1) {
local0 = self->pos;
if ((local0>=FSTR_size_INT(self->buf_18))) {
goto after_loop;
}
c_695 = FSTR_aget_INT_CHAR(self->buf_18, self->pos);
self->pos = (c_INT_plus_INT_INT_chk(self->pos,1));
noname697 = self->lex_state;
switch (noname697) {
case 0:
noname698 = c_695;
switch (noname698) {
case '-':
self->lex_state = 1;
break;
case '\"':
self->lex_state = 2;
break;
case '\n':
break;
case ' ':
break;
case '\t':
break;
case '\r':
break;
case '\\':
break;
default: ;
local1 = ((STR) &Illegalcharacter);
local2 = STR_plus_STR_STR(local1, CHAR_pretty_STR(c_695));
local3 = STR_plus_STR_STR(local2, ((STR) &ininputfile));
BE_LEX_barf_STR(self, STR_plus_STR_STR(local3, self->name_19));
}
break;
case 1:
noname699 = c_695;
switch (noname699) {
case '\n':
case '\r':
self->lex_state = 0;
break;
default: ;
}
break;
case 2:
noname700 = c_695;
switch (noname700) {
case '\"':
self->lex_state = 0;
return FSTR_str_STR(tmp_696);
break;
default: ;
tmp_696 = FSTR_plus_CHAR_FSTR(tmp_696, c_695);
}
break;
default: ;
BE_LEX_barf_STR(self, ((STR) &Unknownlexstatei));
}
}
after_loop: ;
return ((STR) NULL);
}
BOOL BOOL_from_str_ST(BOOL self, STR s_702) {
BOOL noname703 = ((BOOL) 0);
STR noname704;
noname704 = s_702;
if (STR_is_eq_STR_BOOL(noname704, ((STR) &true_705))) {
return TRUE;
}
else {
if (STR_is_eq_STR_BOOL(noname704, ((STR) &t_706))) {
return TRUE;
}
else {
if (STR_is_eq_STR_BOOL(noname704, ((STR) &True))) {
return TRUE;
}
else {
if (STR_is_eq_STR_BOOL(noname704, ((STR) &T))) {
return TRUE;
}
else {
if (STR_is_eq_STR_BOOL(noname704, ((STR) &TRUE_707))) {
return TRUE;
}
else {
if (STR_is_eq_STR_BOOL(noname704, ((STR) &false))) {
return FALSE;
}
else {
if (STR_is_eq_STR_BOOL(noname704, ((STR) &f_708))) {
return FALSE;
}
else {
if (STR_is_eq_STR_BOOL(noname704, ((STR) &False))) {
return FALSE;
}
else {
if (STR_is_eq_STR_BOOL(noname704, ((STR) &F))) {
return FALSE;
}
else {
if (STR_is_eq_STR_BOOL(noname704, ((STR) &FALSE_709))) {
return FALSE;
}
else {
exception = ((OB) STR_plus_STR_STR(((STR) &Cantinterpretboo), s_702));
longjmp(last_protect,1);
}
}
}
}
}
}
}
}
}
}
return FALSE;
}
void OPTIONS_interpre(OPTIONS self, ARRAYSTR a_710) {
STR s_711;
STR noname712;
STR fn;
FSETSTR noname713;
BE_LEX l;
STR t_714;
STR noname715;
CHAR c_716 = ((CHAR) 0);
FSETSTR local0;
FLISTSTR local1;
FMAPSTRFSETSTR local2;
STR local3;
FMAPSTRSTR local4;
STR local5;
STR local6;
BE_LEX local7;
CHAR local8;
STR local9;
CHAR *local8p; INT local8n;
self->args_7 = a_710;
self->next_8 = 1;
OPTIONS_get_files(self);
OPTIONS_insert_h(self, OPTIONS_args_fro(self));
while (1) {
if (OPTIONS_more_arg(self)) {
}
else {
goto after_loop;
}
s_711 = OPTIONS_next_arg_STR(self);
noname712 = s_711;
if (STR_is_eq_STR_BOOL(noname712, ((STR) &main_718))) {
self->main_class = OPTIONS_next_arg_STR(self);
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &o))) {
self->executable_9 = OPTIONS_next_arg_STR(self);
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &home_719))) {
self->home = OPTIONS_next_arg_STR(self);
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &output_C))) {
self->gen_c = TRUE;
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &pretty_720))) {
self->pretty = TRUE;
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &verbose_721))) {
self->verbose = TRUE;
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &psather_722))) {
self->psather = TRUE;
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &only_parse_723))) {
self->only_parse = TRUE;
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &only_check_724))) {
self->only_check = TRUE;
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &only_C_725))) {
self->only_C = TRUE;
self->gen_c = TRUE;
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &only_reachable_726))) {
self->only_reachable = TRUE;
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &check_727))) {
OPTIONS_get_classes(self);
if (self->all_10) {
self->arith_all = TRUE;
self->arith_out = FSETSTR_create_F(((FSETSTR) NULL));
self->bounds_all = TRUE;
self->bounds_out = FSETSTR_create_F(((FSETSTR) NULL));
self->void_all = TRUE;
self->void_out = FSETSTR_create_F(((FSETSTR) NULL));
self->pre_all = TRUE;
self->pre_out = FSETSTR_create_F(((FSETSTR) NULL));
self->post_all = TRUE;
self->post_out = FSETSTR_create_F(((FSETSTR) NULL));
self->assert_all = TRUE;
self->assert_out = FSETSTR_create_F(((FSETSTR) NULL));
self->invariant_all = TRUE;
self->invariant_out = FSETSTR_create_F(((FSETSTR) NULL));
self->when_all = TRUE;
self->when_out = FSETSTR_create_F(((FSETSTR) NULL));
self->destroy_all = TRUE;
self->destroy_out = FSETSTR_create_F(((FSETSTR) NULL));
self->return_all = TRUE;
self->return_out = FSETSTR_create_F(((FSETSTR) NULL));
}
else {
self->arith_in = FSETSTR_union_FS(self->arith_in, self->classes_14);
self->bounds_in = FSETSTR_union_FS(self->bounds_in, self->classes_14);
self->void_in = FSETSTR_union_FS(self->void_in, self->classes_14);
self->pre_in = FSETSTR_union_FS(self->pre_in, self->classes_14);
self->post_in = FSETSTR_union_FS(self->post_in, self->classes_14);
self->assert_in = FSETSTR_union_FS(self->assert_in, self->classes_14);
self->invariant_in = FSETSTR_union_FS(self->invariant_in, self->classes_14);
self->when_in = FSETSTR_union_FS(self->when_in, self->classes_14);
self->destroy_in = FSETSTR_union_FS(self->destroy_in, self->classes_14);
self->return_in = FSETSTR_union_FS(self->return_in, self->classes_14);
self->arith_out = FSETSTR_differen(self->arith_out, self->classes_14);
self->bounds_out = FSETSTR_differen(self->bounds_out, self->classes_14);
self->void_out = FSETSTR_differen(self->void_out, self->classes_14);
self->pre_out = FSETSTR_differen(self->pre_out, self->classes_14);
self->post_out = FSETSTR_differen(self->post_out, self->classes_14);
self->assert_out = FSETSTR_differen(self->assert_out, self->classes_14);
self->invariant_out = FSETSTR_differen(self->invariant_out, self->classes_14);
self->when_out = FSETSTR_differen(self->when_out, self->classes_14);
self->destroy_out = FSETSTR_differen(self->destroy_out, self->classes_14);
self->return_out = FSETSTR_differen(self->return_out, self->classes_14);
}
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &arith))) {
OPTIONS_get_classes(self);
if (self->all_10) {
self->arith_all = TRUE;
self->arith_out = FSETSTR_create_F(((FSETSTR) NULL));
}
else {
self->arith_in = FSETSTR_union_FS(self->arith_in, self->classes_14);
self->arith_out = FSETSTR_differen(self->arith_out, self->classes_14);
}
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &bounds))) {
OPTIONS_get_classes(self);
if (self->all_10) {
self->bounds_all = TRUE;
self->bounds_out = FSETSTR_create_F(((FSETSTR) NULL));
}
else {
self->bounds_in = FSETSTR_union_FS(self->bounds_in, self->classes_14);
self->bounds_out = FSETSTR_differen(self->bounds_out, self->classes_14);
}
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &void_728))) {
OPTIONS_get_classes(self);
if (self->all_10) {
self->void_all = TRUE;
self->void_out = FSETSTR_create_F(((FSETSTR) NULL));
}
else {
self->void_in = FSETSTR_union_FS(self->void_in, self->classes_14);
self->void_out = FSETSTR_differen(self->void_out, self->classes_14);
}
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &pre))) {
OPTIONS_get_classes(self);
if (self->all_10) {
self->pre_all = TRUE;
self->pre_out = FSETSTR_create_F(((FSETSTR) NULL));
}
else {
self->pre_in = FSETSTR_union_FS(self->pre_in, self->classes_14);
self->pre_out = FSETSTR_differen(self->pre_out, self->classes_14);
}
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &post))) {
OPTIONS_get_classes(self);
if (self->all_10) {
self->post_all = TRUE;
self->post_out = FSETSTR_create_F(((FSETSTR) NULL));
}
else {
self->post_in = FSETSTR_union_FS(self->post_in, self->classes_14);
self->post_out = FSETSTR_differen(self->post_out, self->classes_14);
}
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &assert_729))) {
OPTIONS_get_classes(self);
if (self->all_10) {
self->assert_all = TRUE;
self->assert_out = FSETSTR_create_F(((FSETSTR) NULL));
}
else {
self->assert_in = FSETSTR_union_FS(self->assert_in, self->classes_14);
self->assert_out = FSETSTR_differen(self->assert_out, self->classes_14);
}
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &invariant_730))) {
OPTIONS_get_classes(self);
if (self->all_10) {
self->invariant_all = TRUE;
self->invariant_out = FSETSTR_create_F(((FSETSTR) NULL));
}
else {
self->invariant_in = FSETSTR_union_FS(self->invariant_in, self->classes_14);
self->invariant_out = FSETSTR_differen(self->invariant_out, self->classes_14);
}
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &when_731))) {
OPTIONS_get_classes(self);
if (self->all_10) {
self->when_all = TRUE;
self->when_out = FSETSTR_create_F(((FSETSTR) NULL));
}
else {
self->when_in = FSETSTR_union_FS(self->when_in, self->classes_14);
self->when_out = FSETSTR_differen(self->when_out, self->classes_14);
}
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &destroy))) {
OPTIONS_get_classes(self);
if (self->all_10) {
self->destroy_all = TRUE;
self->destroy_out = FSETSTR_create_F(((FSETSTR) NULL));
}
else {
self->destroy_in = FSETSTR_union_FS(self->destroy_in, self->classes_14);
self->destroy_out = FSETSTR_differen(self->destroy_out, self->classes_14);
}
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &return_732))) {
OPTIONS_get_classes(self);
if (self->all_10) {
self->return_all = TRUE;
self->return_out = FSETSTR_create_F(((FSETSTR) NULL));
}
else {
self->return_in = FSETSTR_union_FS(self->return_in, self->classes_14);
self->return_out = FSETSTR_differen(self->return_out, self->classes_14);
}
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &when_733))) {
OPTIONS_get_classes(self);
if (self->all_10) {
self->when_all = TRUE;
self->when_out = FSETSTR_create_F(((FSETSTR) NULL));
}
else {
self->when_in = FSETSTR_union_FS(self->when_in, self->classes_14);
self->when_out = FSETSTR_differen(self->when_out, self->classes_14);
}
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &no_check))) {
OPTIONS_get_classes(self);
if (self->all_10) {
self->arith_in = FSETSTR_create_F(((FSETSTR) NULL));
self->arith_all = FALSE;
self->bounds_in = FSETSTR_create_F(((FSETSTR) NULL));
self->bounds_all = FALSE;
self->void_in = FSETSTR_create_F(((FSETSTR) NULL));
self->void_all = FALSE;
self->pre_in = FSETSTR_create_F(((FSETSTR) NULL));
self->pre_all = FALSE;
self->post_in = FSETSTR_create_F(((FSETSTR) NULL));
self->post_all = FALSE;
self->assert_in = FSETSTR_create_F(((FSETSTR) NULL));
self->assert_all = FALSE;
self->invariant_in = FSETSTR_create_F(((FSETSTR) NULL));
self->invariant_all = FALSE;
self->when_in = FSETSTR_create_F(((FSETSTR) NULL));
self->when_all = FALSE;
self->destroy_in = FSETSTR_create_F(((FSETSTR) NULL));
self->destroy_all = FALSE;
self->return_in = FSETSTR_create_F(((FSETSTR) NULL));
self->return_all = FALSE;
}
else {
self->arith_out = FSETSTR_union_FS(self->arith_out, self->classes_14);
self->bounds_out = FSETSTR_union_FS(self->bounds_out, self->classes_14);
self->void_out = FSETSTR_union_FS(self->void_out, self->classes_14);
self->pre_out = FSETSTR_union_FS(self->pre_out, self->classes_14);
self->post_out = FSETSTR_union_FS(self->post_out, self->classes_14);
self->assert_out = FSETSTR_union_FS(self->assert_out, self->classes_14);
self->invariant_out = FSETSTR_union_FS(self->invariant_out, self->classes_14);
self->when_out = FSETSTR_union_FS(self->when_out, self->classes_14);
self->destroy_out = FSETSTR_union_FS(self->destroy_out, self->classes_14);
self->return_out = FSETSTR_union_FS(self->return_out, self->classes_14);
}
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &no_arith))) {
OPTIONS_get_classes(self);
if (self->all_10) {
self->arith_in = FSETSTR_create_F(((FSETSTR) NULL));
self->arith_all = FALSE;
}
else {
self->arith_out = FSETSTR_union_FS(self->arith_out, self->classes_14);
}
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &no_bounds))) {
OPTIONS_get_classes(self);
if (self->all_10) {
self->bounds_in = FSETSTR_create_F(((FSETSTR) NULL));
self->bounds_all = FALSE;
}
else {
self->bounds_out = FSETSTR_union_FS(self->bounds_out, self->classes_14);
}
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &no_void))) {
OPTIONS_get_classes(self);
if (self->all_10) {
self->void_in = FSETSTR_create_F(((FSETSTR) NULL));
self->void_all = FALSE;
}
else {
self->void_out = FSETSTR_union_FS(self->void_out, self->classes_14);
}
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &no_pre))) {
OPTIONS_get_classes(self);
if (self->all_10) {
self->pre_in = FSETSTR_create_F(((FSETSTR) NULL));
self->pre_all = FALSE;
}
else {
self->pre_out = FSETSTR_union_FS(self->pre_out, self->classes_14);
}
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &no_post))) {
OPTIONS_get_classes(self);
if (self->all_10) {
self->post_in = FSETSTR_create_F(((FSETSTR) NULL));
self->post_all = FALSE;
}
else {
self->post_out = FSETSTR_union_FS(self->post_out, self->classes_14);
}
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &no_assert))) {
OPTIONS_get_classes(self);
if (self->all_10) {
self->assert_in = FSETSTR_create_F(((FSETSTR) NULL));
self->assert_all = FALSE;
}
else {
self->assert_out = FSETSTR_union_FS(self->assert_out, self->classes_14);
}
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &no_invariant))) {
OPTIONS_get_classes(self);
if (self->all_10) {
self->invariant_in = FSETSTR_create_F(((FSETSTR) NULL));
self->invariant_all = FALSE;
}
else {
self->invariant_out = FSETSTR_union_FS(self->invariant_out, self->classes_14);
}
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &no_destroy))) {
OPTIONS_get_classes(self);
if (self->all_10) {
self->destroy_in = FSETSTR_create_F(((FSETSTR) NULL));
self->destroy_all = FALSE;
}
else {
self->destroy_out = FSETSTR_union_FS(self->destroy_out, self->classes_14);
}
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &no_return))) {
OPTIONS_get_classes(self);
if (self->all_10) {
self->return_in = FSETSTR_create_F(((FSETSTR) NULL));
self->return_all = FALSE;
}
else {
self->return_out = FSETSTR_union_FS(self->return_out, self->classes_14);
}
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &no_when))) {
OPTIONS_get_classes(self);
if (self->all_10) {
self->when_in = FSETSTR_create_F(((FSETSTR) NULL));
self->when_all = FALSE;
}
else {
self->when_out = FSETSTR_union_FS(self->when_out, self->classes_14);
}
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &optimize_734))) {
self->optimize = TRUE;
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &O))) {
self->optimize = TRUE;
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &fast_735))) {
self->optimize = TRUE;
self->arith_in = FSETSTR_create_F(((FSETSTR) NULL));
self->arith_all = FALSE;
self->bounds_in = FSETSTR_create_F(((FSETSTR) NULL));
self->bounds_all = FALSE;
self->void_in = FSETSTR_create_F(((FSETSTR) NULL));
self->void_all = FALSE;
self->pre_in = FSETSTR_create_F(((FSETSTR) NULL));
self->pre_all = FALSE;
self->post_in = FSETSTR_create_F(((FSETSTR) NULL));
self->post_all = FALSE;
self->assert_in = FSETSTR_create_F(((FSETSTR) NULL));
self->assert_all = FALSE;
self->invariant_in = FSETSTR_create_F(((FSETSTR) NULL));
self->invariant_all = FALSE;
self->when_in = FSETSTR_create_F(((FSETSTR) NULL));
self->when_all = FALSE;
self->destroy_in = FSETSTR_create_F(((FSETSTR) NULL));
self->destroy_all = FALSE;
self->return_in = FSETSTR_create_F(((FSETSTR) NULL));
self->return_all = FALSE;
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &debug_736))) {
self->debug_11 = TRUE;
self->gen_c = TRUE;
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &g))) {
self->debug_11 = TRUE;
self->gen_c = TRUE;
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &deterministic_737))) {
self->deterministic_12 = TRUE;
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &force_738))) {
local0 = self->force_routines;
self->force_routines = FSETSTR_insert_S(local0, OPTIONS_next_arg_STR(self));
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &force_all_739))) {
self->force_all = TRUE;
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &C_flag))) {
local1 = self->c_flags;
self->c_flags = FLISTSTR_push_ST(local1, OPTIONS_next_arg_STR(self));
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &external_740))) {
local2 = self->externals;
local3 = OPTIONS_next_arg_STR(self);
self->externals = FMAPSTRFSETSTR_i_555(local2, local3, OPTIONS_files_FS(self));
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &has_741))) {
fn = OPTIONS_next_arg_STR(self);
self->known_files = FSETSTR_insert_S(self->known_files, fn);
OPTIONS_get_classes(self);
{
struct FSETSTR_elt_STR_frame_struct temp743_0;
FSETSTR_elt_STR_frame
noname744 = &temp743_0;
noname744->state = 0;
while (1) {
local4 = self->has_13;
if (noname744->state == 0) {
noname713 = self->classes_14;
noname744->arg0 = noname713;
}
local5 = FSETSTR_elt_STR(noname744);
if (noname744->state == -1) goto after_loop_742;
local6 = local5;
self->has_13 = FMAPSTRSTR_inser_586(local4, local6, fn);
}
}
after_loop_742: ;
}
else {
if (STR_is_eq_STR_BOOL(noname712, ((STR) &com))) {
OPTIONS_insert_h(self, OPTIONS_args_fro_651(self, OPTIONS_next_arg_STR(self)));
}
else {
if (OPTIONS_is_filen(self, s_711)) {
OPTIONS_rewind(self);
OPTIONS_get_files(self);
}
else {
OPTIONS_rewind(self);
OPTIONS_usage(self);
return;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
after_loop: ;
if ((self->home==((STR) NULL))) {
OPTIONS_barf_STR(self, ((STR) &Nohomedirectorys));
}
if ((self->executable_9==((STR) NULL))) {
OPTIONS_barf_STR(self, ((STR) &Noexecutablespec));
}
local7 = ((BE_LEX) NULL);
l = BE_LEX_create_ST(local7, STR_plus_STR_STR(self->home, ((STR) &SystemCONFIG)));
if ((l==((BE_LEX) NULL))) {
OPTIONS_barf_STR(self, ((STR) &CouldnotopenCONF));
}
self->c_compile1 = BE_LEX_get_str_STR(l);
if ((self->c_compile1==((STR) NULL))) {
OPTIONS_barf_STR(self, ((STR) &CouldnotreadCONFIGc1));
}
t_714 = BE_LEX_get_str_STR(l);
if ((t_714==((STR) NULL))) {
OPTIONS_barf_STR(self, ((STR) &CouldnotreadCONFIGc2));
}
self->c_compile2 = ((STR) &name_745);
{
BOOL noname748 = TRUE;
while (1) {
if (noname748) {
noname748 = FALSE;
noname715 = t_714;
local9 = noname715;
local8p = local9->arr_part; local8n = local9->asize;
} else {
local8p++; local8n--;
}
if (local8n<=0) goto after_loop_746; local8 = *local8p;
c_716 = local8;
if ((c_716=='\\')) {
c_716 = '/';
}
if ((c_716!='#')) {
self->c_compile2 = STR_plus_CHAR_STR(self->c_compile2, c_716);
}
else {
if (STR_is_eq_STR_BOOL(self->home, ((STR) &name_749))) {
self->c_compile2 = STR_plus_STR_STR(self->c_compile2, ((STR) &name_750));
}
else {
self->c_compile2 = STR_plus_STR_STR(self->c_compile2, self->home);
}
}
}
}
after_loop_746: ;
self->c_opt = BE_LEX_get_str_STR(l);
if ((self->c_opt==((STR) NULL))) {
OPTIONS_barf_STR(self, ((STR) &CouldnotreadCONF));
}
self->c_debug = BE_LEX_get_str_STR(l);
if ((self->c_debug==((STR) NULL))) {
OPTIONS_barf_STR(self, ((STR) &CouldnotreadCONF_751));
}
self->c_verbose = BE_LEX_get_str_STR(l);
if ((self->c_verbose==((STR) NULL))) {
OPTIONS_barf_STR(self, ((STR) &CouldnotreadCONF_752));
}
self->make_command = BE_LEX_get_str_STR(l);
if ((self->make_command==((STR) NULL))) {
OPTIONS_barf_STR(self, ((STR) &CouldnotreadCONF_753));
}
self->make_silent = BE_LEX_get_str_STR(l);
if ((self->make_silent==((STR) NULL))) {
OPTIONS_barf_STR(self, ((STR) &CouldnotreadCONF_754));
}
self->c_exec = BE_LEX_get_str_STR(l);
if ((self->c_exec==((STR) NULL))) {
OPTIONS_barf_STR(self, ((STR) &CouldnotreadCONF_755));
}
t_714 = BE_LEX_get_str_STR(l);
if ((t_714==((STR) NULL))) {
OPTIONS_barf_STR(self, ((STR) &CouldnotreadCONF_756));
}
self->null_segfaults = BOOL_from_str_ST(((BOOL) 0), t_714);
}
BOOL FSETSTR_is_empty(FSETSTR self) {
BOOL noname757 = ((BOOL) 0);
BOOL local0;
if ((self==((FSETSTR) NULL))) {
local0 = TRUE;
} else {
local0 = (self->hsize==0);
}
return local0;
if (!FSETSTR_invarian(self)) {
fprintf(stderr,"Failed invariant FSET{STR}::invariant:BOOL ../Library/fset.sa:225:11\n");
exit(16);
}
}
INT FLISTSFILE_ID_as(FLISTSFILE_ID self) {
INT noname758 = ((INT) 0);
return self->asize;
fprintf(stderr,"Last statement wasn't return ../Library/aref.sa:20:8\n");
exit(16);
}
INT FLISTSFILE_ID_si(FLISTSFILE_ID self) {
INT noname759 = ((INT) 0);
if ((self==((FLISTSFILE_ID) NULL))) {
return 0;
}
return self->loc_17;
if (!FLISTSFILE_ID_in(self)) {
fprintf(stderr,"Failed invariant FLIST{SFILE_ID}::invariant:BOOL ../Library/flist.sa:50:7\n");
exit(16);
}
}
BOOL FLISTSFILE_ID_is(FLISTSFILE_ID self) {
BOOL noname760 = ((BOOL) 0);
INT local0;
local0 = FLISTSFILE_ID_si(self);
return (local0==0);
if (!FLISTSFILE_ID_in(self)) {
fprintf(stderr,"Failed invariant FLIST{SFILE_ID}::invariant:BOOL ../Library/flist.sa:113:11\n");
exit(16);
}
}
void FLISTSFILE_ID_aclear(FLISTSFILE_ID self) {
SFILE_ID nil = SFILE_ID_zero;
FLISTSFILE_ID noname761;
if (!((!((self==((FLISTSFILE_ID) NULL)))))) {
fprintf(stderr,"Violation of precondition ../Library/aref.sa:43:9\n");
exit(16);
}
{
struct FLISTSFILE_ID_as_763_frame_struct temp762_0;
FLISTSFILE_ID_as_763_frame
noname764 = &temp762_0;
noname764->state = 0;
while (1) {
if (noname764->state == 0) {
noname761 = self;
noname764->arg0 = noname761;
}
noname764->arg1 = nil;
FLISTSFILE_ID_as_763(noname764);
if (noname764->state == -1) goto after_loop;
0 /* No return value from iter call */;
}
}
after_loop: ;
}
void FLISTSFILE_ID_clear(FLISTSFILE_ID self) {
if (FLISTSFILE_ID_is(self)) {
return;
}
else {
FLISTSFILE_ID_aclear(self);
self->loc_17 = 0;
}
if (!FLISTSFILE_ID_in(self)) {
fprintf(stderr,"Failed invariant FLIST{SFILE_ID}::invariant:BOOL ../Library/flist.sa:117:8\n");
exit(16);
}
}
void FLISTSFILE_ID_ar(FLISTSFILE_ID self, INT ind_765, SFILE_ID val_766) {
BOOL local0;
INT local1;
INT local2;
if ((!((self==((FLISTSFILE_ID) NULL))))) {
local1 = 0;
local2 = (self->asize);
local0 = INT_is_bet_INT_I(ind_765, local1, (c_INT_minus_INT_INT_chk(local2,1)));
} else {
local0 = FALSE;
}
if (!(local0)) {
fprintf(stderr,"Violation of precondition ../Library/aref.sa:38:7\n");
exit(16);
}
if (ind_765<0||ind_765>=self->asize) {
fprintf(stderr,"Index out of bounds ../Library/aref.sa:38:7\n");
exit(16);
}
self->arr_part[ind_765] = val_766;
}
void FLISTSFILE_ID_as_767(FLISTSFILE_ID self, INT ind_768, SFILE_ID val_769) {
BOOL local0;
INT local1;
if ((!((self==((FLISTSFILE_ID) NULL))))) {
local1 = 0;
local0 = INT_is_bet_INT_I(ind_768, local1, (c_INT_minus_INT_INT_chk(self->loc_17,1)));
} else {
local0 = FALSE;
}
if (!(local0)) {
fprintf(stderr,"Violation of precondition ../Library/flist.sa:73:7\n");
exit(16);
}
FLISTSFILE_ID_ar(self, ind_768, val_769);
if (!FLISTSFILE_ID_in(self)) {
fprintf(stderr,"Failed invariant FLIST{SFILE_ID}::invariant:BOOL ../Library/flist.sa:73:7\n");
exit(16);
}
}
FLISTSFILE_ID FLISTSFILE_ID_pu(FLISTSFILE_ID self, SFILE_ID e_770) {
FLISTSFILE_ID noname771;
FLISTSFILE_ID r_772 = ((FLISTSFILE_ID) NULL);
FLISTSFILE_ID noname773;
FLISTSFILE_ID noname774;
FLISTSFILE_ID local0;
INT local1;
FLISTSFILE_ID local2;
INT local3;
SFILE_ID local4;
INT local5;
if ((self==((FLISTSFILE_ID) NULL))) {
local0 = ((FLISTSFILE_ID) sbi_arr_alloc_atomic(sizeof(struct FLISTSFILE_ID_struct), FLISTSFILE_ID_tag, sizeof(SFILE_ID) , 5));
local0->asize = 5;
r_772 = local0;
}
else {
local1 = self->loc_17;
if ((local1<(self->asize))) {
r_772 = self;
}
else {
local3 = 2;
local2 = ((FLISTSFILE_ID) sbi_arr_alloc_atomic(sizeof(struct FLISTSFILE_ID_struct), FLISTSFILE_ID_tag, sizeof(SFILE_ID) , (c_INT_times_INT_INT_chk(local3,(self->asize)))));
local2->asize = (c_INT_times_INT_INT_chk(local3,(self->asize)));
r_772 = local2;
r_772->loc_17 = self->loc_17;
{
struct FLISTSFILE_ID_el_frame_struct temp775_0;
FLISTSFILE_ID_el_frame
noname776 = &temp775_0;
struct FLISTSFILE_ID_as_763_frame_struct temp775_1;
FLISTSFILE_ID_as_763_frame
noname777 = &temp775_1;
noname776->state = 0;
noname777->state = 0;
while (1) {
if (noname777->state == 0) {
noname774 = r_772;
noname777->arg0 = noname774;
}
if (noname776->state == 0) {
noname773 = self;
noname776->arg0 = noname773;
}
local4 = FLISTSFILE_ID_el(noname776);
if (noname776->state == -1) goto after_loop;
noname777->arg1 = local4;
FLISTSFILE_ID_as_763(noname777);
if (noname777->state == -1) goto after_loop;
0 /* No return value from iter call */;
}
}
after_loop: ;
FLISTSFILE_ID_clear(self);
}
}
r_772->loc_17 = (c_INT_plus_INT_INT_chk(r_772->loc_17,1));
local5 = (c_INT_minus_INT_INT_chk(r_772->loc_17,1));
FLISTSFILE_ID_as_767(r_772, local5, e_770);
return r_772;
if (!FLISTSFILE_ID_in(self)) {
fprintf(stderr,"Failed invariant FLIST{SFILE_ID}::invariant:BOOL ../Library/flist.sa:79:7\n");
exit(16);
}
}
SFILE_ID FLISTSFILE_ID_ar_778(FLISTSFILE_ID self, INT ind_779) {
SFILE_ID noname780 = SFILE_ID_zero;
BOOL local0;
INT local1;
INT local2;
if ((!((self==((FLISTSFILE_ID) NULL))))) {
local1 = 0;
local2 = (self->asize);
local0 = INT_is_bet_INT_I(ind_779, local1, (c_INT_minus_INT_INT_chk(local2,1)));
} else {
local0 = FALSE;
}
if (!(local0)) {
fprintf(stderr,"Violation of precondition ../Library/aref.sa:33:7\n");
exit(16);
}
if (ind_779<0||ind_779>=self->asize) {
fprintf(stderr,"Index out of bounds ../Library/aref.sa:33:7\n");
exit(16);
}
return self->arr_part[ind_779];
}
SFILE_ID FLISTSFILE_ID_ag(FLISTSFILE_ID self, INT ind_781) {
SFILE_ID noname782 = SFILE_ID_zero;
BOOL local0;
INT local1;
if ((!((self==((FLISTSFILE_ID) NULL))))) {
local1 = 0;
local0 = INT_is_bet_INT_I(ind_781, local1, (c_INT_minus_INT_INT_chk(self->loc_17,1)));
} else {
local0 = FALSE;
}
if (!(local0)) {
fprintf(stderr,"Violation of precondition ../Library/flist.sa:68:7\n");
exit(16);
}
return FLISTSFILE_ID_ar_778(self, ind_781);
if (!FLISTSFILE_ID_in(self)) {
fprintf(stderr,"Failed invariant FLIST{SFILE_ID}::invariant:BOOL ../Library/flist.sa:68:7\n");
exit(16);
}
}
BOOL SFILE_ID_is_eq_S(SFILE_ID self, SFILE_ID y) {
BOOL noname783 = ((BOOL) 0);
return (self.loc_17==y.loc_17);
}
BOOL PROG_err_loc_old(PROG self, SFILE_ID l) {
BOOL noname784 = ((BOOL) 0);
INT i = ((INT) 0);
i = 0;
if ((self->err_list==((FLISTSFILE_ID) NULL))) {
self->err_list = FLISTSFILE_ID_pu(self->err_list, l);
return FALSE;
}
while (1) {
if ((i<FLISTSFILE_ID_si(self->err_list))) {
}
else {
goto after_loop;
}
if (SFILE_ID_is_eq_S(l, FLISTSFILE_ID_ag(self->err_list, i))) {
return TRUE;
}
i = (c_INT_plus_INT_INT_chk(i,1));
}
after_loop: ;
self->err_list = FLISTSFILE_ID_pu(self->err_list, l);
return FALSE;
}
OUT OUT_create_OUT(OUT self) {
OUT noname786;
return self;
}
INT FLISTINT_size_INT(FLISTINT self) {
INT noname787 = ((INT) 0);
if ((self==((FLISTINT) NULL))) {
return 0;
}
return self->loc_17;
if (!FLISTINT_invaria(self)) {
fprintf(stderr,"Failed invariant FLIST{INT}::invariant:BOOL ../Library/flist.sa:50:7\n");
exit(16);
}
}
INT FLISTINT_asize_INT(FLISTINT self) {
INT noname788 = ((INT) 0);
return self->asize;
fprintf(stderr,"Last statement wasn't return ../Library/aref.sa:20:8\n");
exit(16);
}
INT FLISTINT_aref_ag(FLISTINT self, INT ind_789) {
INT noname790 = ((INT) 0);
BOOL local0;
INT local1;
INT local2;
if ((!((self==((FLISTINT) NULL))))) {
local1 = 0;
local2 = (self->asize);
local0 = INT_is_bet_INT_I(ind_789, local1, (c_INT_minus_INT_INT_chk(local2,1)));
} else {
local0 = FALSE;
}
if (!(local0)) {
fprintf(stderr,"Violation of precondition ../Library/aref.sa:33:7\n");
exit(16);
}
if (ind_789<0||ind_789>=self->asize) {
fprintf(stderr,"Index out of bounds ../Library/aref.sa:33:7\n");
exit(16);
}
return self->arr_part[ind_789];
}
INT FLISTINT_aget_IN(FLISTINT self, INT ind_791) {
INT noname792 = ((INT) 0);
BOOL local0;
INT local1;
if ((!((self==((FLISTINT) NULL))))) {
local1 = 0;
local0 = INT_is_bet_INT_I(ind_791, local1, (c_INT_minus_INT_INT_chk(self->loc_17,1)));
} else {
local0 = FALSE;
}
if (!(local0)) {
fprintf(stderr,"Violation of precondition ../Library/flist.sa:68:7\n");
exit(16);
}
return FLISTINT_aref_ag(self, ind_791);
if (!FLISTINT_invaria(self)) {
fprintf(stderr,"Failed invariant FLIST{INT}::invariant:BOOL ../Library/flist.sa:68:7\n");
exit(16);
}
}
void OUT_plus_STR(OUT self, STR s_793) {
INT local0;
local0 = STR_size_INT(s_793);
c_out_nstr(local0, ((s_793==NULL)?NULL:s_793->arr_part));
}
INT SFILE_ID_index_INT(SFILE_ID self) {
INT noname794 = ((INT) 0);
INT i = ((INT) 0);
INT l = ((INT) 0);
INT p = ((INT) 0);
BOOL local0;
OUT local1;
if ((!((shared_SFILE_ID_==((FLISTINT) NULL))))) {
i = 0;
l = (c_INT_div_INT_INT_chk(self.loc_17,shared_SFILE_ID_B));
p = -1;
while (1) {
if ((i<FLISTINT_size_INT(shared_SFILE_ID_))) {
}
else {
goto after_loop;
}
if ((p<l)) {
local0 = (l<=FLISTINT_aget_IN(shared_SFILE_ID_, i));
} else {
local0 = FALSE;
}
if (local0) {
goto after_loop;
}
p = FLISTINT_aget_IN(shared_SFILE_ID_, i);
i = (c_INT_plus_INT_INT_chk(i,1));
}
after_loop: ;
return i;
}
else {
local1 = OUT_create_OUT(((OUT) NULL));
OUT_plus_STR(local1, ((STR) &compilererrorinS));
}
return 0;
}
STR FLISTSTR_aref_ag(FLISTSTR self, INT ind_796) {
STR noname797;
BOOL local0;
INT local1;
INT local2;
if ((!((self==((FLISTSTR) NULL))))) {
local1 = 0;
local2 = (self->asize);
local0 = INT_is_bet_INT_I(ind_796, local1, (c_INT_minus_INT_INT_chk(local2,1)));
} else {
local0 = FALSE;
}
if (!(local0)) {
fprintf(stderr,"Violation of precondition ../Library/aref.sa:33:7\n");
exit(16);
}
if (ind_796<0||ind_796>=self->asize) {
fprintf(stderr,"Index out of bounds ../Library/aref.sa:33:7\n");
exit(16);
}
return self->arr_part[ind_796];
}
STR FLISTSTR_aget_IN(FLISTSTR self, INT ind_798) {
STR noname799;
BOOL local0;
INT local1;
if ((!((self==((FLISTSTR) NULL))))) {
local1 = 0;
local0 = INT_is_bet_INT_I(ind_798, local1, (c_INT_minus_INT_INT_chk(self->loc_17,1)));
} else {
local0 = FALSE;
}
if (!(local0)) {
fprintf(stderr,"Violation of precondition ../Library/flist.sa:68:7\n");
exit(16);
}
return FLISTSTR_aref_ag(self, ind_798);
if (!FLISTSTR_invaria(self)) {
fprintf(stderr,"Failed invariant FLIST{STR}::invariant:BOOL ../Library/flist.sa:68:7\n");
exit(16);
}
}
STR SFILE_ID_file_in_STR(SFILE_ID self) {
STR noname800;
FLISTSTR local0;
local0 = shared_SFILE_ID__801;
return FLISTSTR_aget_IN(local0, SFILE_ID_index_INT(self));
}
INT SFILE_ID_line_nu(SFILE_ID self) {
INT noname802 = ((INT) 0);
INT i = ((INT) 0);
INT local0;
FLISTINT local1;
i = SFILE_ID_index_INT(self);
if ((i>0)) {
local0 = (c_INT_div_INT_INT_chk(self.loc_17,shared_SFILE_ID_B));
local1 = shared_SFILE_ID_;
return (c_INT_minus_INT_INT_chk(local0,FLISTINT_aget_IN(local1, (c_INT_minus_INT_INT_chk(i,1)))));
}
return (c_INT_div_INT_INT_chk(self.loc_17,shared_SFILE_ID_B));
}
void STR_buf_FSTR(STR self, FSTR buf_803) {
shared_STR_buf = buf_803;
}
INT INT_nil_INT(INT self) {
INT noname804 = ((INT) 0);
INT local0;
local0 = 1;
return (local0<<(c_INT_minus_INT_INT_chk(shared_INT_asize,1)));
}
BOOL INT_is_odd_BOOL(INT self) {
BOOL noname805 = ((BOOL) 0);
INT local0;
local0 = (self&1);
return (local0!=0);
}
INT INT_negate_INT(INT self) {
INT noname806 = ((INT) 0);
return (c_INT_minus_INT_INT_chk(0,self));
}
INT INT_abs_INT(INT self) {
INT noname807 = ((INT) 0);
if ((self<0)) {
return INT_negate_INT(self);
}
return self;
}
INT INTI_asize_INT(INTI self) {
INT noname808 = ((INT) 0);
return self->asize;
fprintf(stderr,"Last statement wasn't return ../Library/aref.sa:20:8\n");
exit(16);
}
INT INTI_aget_INT_INT(INTI self, INT ind_809) {
INT noname810 = ((INT) 0);
BOOL local0;
INT local1;
INT local2;
if ((!((self==((INTI) NULL))))) {
local1 = 0;
local2 = (self->asize);
local0 = INT_is_bet_INT_I(ind_809, local1, (c_INT_minus_INT_INT_chk(local2,1)));
} else {
local0 = FALSE;
}
if (!(local0)) {
fprintf(stderr,"Violation of precondition ../Library/aref.sa:33:7\n");
exit(16);
}
if (ind_809<0||ind_809>=self->asize) {
fprintf(stderr,"Index out of bounds ../Library/aref.sa:33:7\n");
exit(16);
}
return self->arr_part[ind_809];
}
void INTI_aset_INT_INT(INTI self, INT ind_811, INT val_812) {
BOOL local0;
INT local1;
INT local2;
if ((!((self==((INTI) NULL))))) {
local1 = 0;
local2 = (self->asize);
local0 = INT_is_bet_INT_I(ind_811, local1, (c_INT_minus_INT_INT_chk(local2,1)));
} else {
local0 = FALSE;
}
if (!(local0)) {
fprintf(stderr,"Violation of precondition ../Library/aref.sa:38:7\n");
exit(16);
}
if (ind_811<0||ind_811>=self->asize) {
fprintf(stderr,"Index out of bounds ../Library/aref.sa:38:7\n");
exit(16);
}
self->arr_part[ind_811] = val_812;
}
INT INT_square_INT(INT self) {
INT noname813 = ((INT) 0);
return (c_INT_times_INT_INT_chk(self,self));
}
INT INT_pow_INT_INT(INT self, INT i) {
INT noname814 = ((INT) 0);
INT r_815 = ((INT) 0);
INT noname816 = ((INT) 0);
INT x = ((INT) 0);
INT local0;
INT local1;
INT local2;
INT local3;
INT local4;
INT local5;
INT local6;
if (!((i>=0))) {
fprintf(stderr,"Violation of precondition ../Library/int.sa:175:6\n");
exit(16);
}
noname816 = i;
switch (noname816) {
case 0:
return 1;
break;
case 1:
return self;
break;
case 2:
return (c_INT_times_INT_INT_chk(self,self));
break;
case 3:
local0 = (c_INT_times_INT_INT_chk(self,self));
return (c_INT_times_INT_INT_chk(local0,self));
break;
case 4:
r_815 = (c_INT_times_INT_INT_chk(self,self));
return (c_INT_times_INT_INT_chk(r_815,r_815));
break;
case 5:
r_815 = (c_INT_times_INT_INT_chk(self,self));
local1 = (c_INT_times_INT_INT_chk(self,r_815));
return (c_INT_times_INT_INT_chk(local1,r_815));
break;
case 6:
r_815 = (c_INT_times_INT_INT_chk(self,self));
local2 = (c_INT_times_INT_INT_chk(r_815,r_815));
return (c_INT_times_INT_INT_chk(local2,r_815));
break;
case 7:
r_815 = (c_INT_times_INT_INT_chk(self,self));
local3 = (c_INT_times_INT_INT_chk(self,r_815));
local4 = (c_INT_times_INT_INT_chk(local3,r_815));
return (c_INT_times_INT_INT_chk(local4,r_815));
break;
case 8:
r_815 = (c_INT_times_INT_INT_chk(self,self));
r_815 = (c_INT_times_INT_INT_chk(r_815,r_815));
return (c_INT_times_INT_INT_chk(r_815,r_815));
break;
case 9:
r_815 = (c_INT_times_INT_INT_chk(self,self));
r_815 = (c_INT_times_INT_INT_chk(r_815,r_815));
local5 = (c_INT_times_INT_INT_chk(self,r_815));
return (c_INT_times_INT_INT_chk(local5,r_815));
break;
case 10:
r_815 = (c_INT_times_INT_INT_chk(self,self));
local6 = (c_INT_times_INT_INT_chk(self,r_815));
r_815 = (c_INT_times_INT_INT_chk(local6,r_815));
return (c_INT_times_INT_INT_chk(r_815,r_815));
break;
default: ;
x = self;
r_815 = 1;
while (1) {
if ((i>0)) {
}
else {
goto after_loop;
}
if (INT_is_odd_BOOL(i)) {
r_815 = (c_INT_times_INT_INT_chk(r_815,x));
}
x = INT_square_INT(x);
i = (c_INT_rshift_INT_INT(i,1));
}
after_loop: ;
}
return r_815;
}
INTI INTI_u_times_INT(INTI self, INTI x, INTI y) {
INTI noname818;
INT xl = ((INT) 0);
INT yl = ((INT) 0);
INT i = ((INT) 0);
INT j = ((INT) 0);
INT k = ((INT) 0);
INT d = ((INT) 0);
INT c_819 = ((INT) 0);
INTI z;
INTI local0;
INT local1;
xl = INT_abs_INT(x->len_37);
yl = INT_abs_INT(y->len_37);
i = (c_INT_plus_INT_INT_chk(xl,yl));
local0 = ((INTI) sbi_arr_alloc_atomic(sizeof(struct INTI_struct), INTI_tag, sizeof(INT) , i));
local0->asize = i;
z = local0;
while (1) {
if ((i>0)) {
}
else {
goto after_loop;
}
i = (c_INT_minus_INT_INT_chk(i,1));
INTI_aset_INT_INT(z, i, 0);
}
after_loop: ;
while (1) {
if ((i<xl)) {
}
else {
goto after_loop_821;
}
d = INTI_aget_INT_INT(x, i);
if ((d!=0)) {
j = 0;
k = i;
c_819 = 0;
while (1) {
if ((j<yl)) {
}
else {
goto after_loop_823;
}
local1 = (c_INT_plus_INT_INT_chk(c_819,INTI_aget_INT_INT(z, k)));
c_819 = (c_INT_plus_INT_INT_chk(local1,(c_INT_times_INT_INT_chk(d,INTI_aget_INT_INT(y, j)))));
INTI_aset_INT_INT(z, k, (c_INT_mod_INT_INT_chk(c_819,shared_INTI_B)));
c_819 = (c_INT_div_INT_INT_chk(c_819,shared_INTI_B));
j = (c_INT_plus_INT_INT_chk(j,1));
k = (c_INT_plus_INT_INT_chk(k,1));
}
after_loop_823: ;
if ((c_819!=0)) {
INTI_aset_INT_INT(z, k, c_819);
k = (c_INT_plus_INT_INT_chk(k,1));
}
}
i = (c_INT_plus_INT_INT_chk(i,1));
}
after_loop_821: ;
z->len_37 = k;
return z;
}
INTI INTI_times_INTI_INTI(INTI self, INTI y) {
INTI noname825;
INTI z = ((INTI) NULL);
BOOL local0;
BOOL local1;
INT local2;
INT local3;
INTI local4;
INT local5;
INT local6;
BOOL local7;
if ((self->len_37==0)) {
local0 = TRUE;
} else {
local0 = (y->len_37==0);
}
if (local0) {
z = INTI_create_INT_INTI(((INTI) NULL), 0);
}
else {
local2 = INT_abs_INT(self->len_37);
if ((local2==1)) {
local3 = INT_abs_INT(y->len_37);
local1 = (local3==1);
} else {
local1 = FALSE;
}
if (local1) {
local4 = ((INTI) NULL);
local5 = INTI_aget_INT_INT(self, 0);
z = INTI_create_INT_INTI(local4, (c_INT_times_INT_INT_chk(local5,INTI_aget_INT_INT(y, 0))));
}
else {
local6 = INT_abs_INT(self->len_37);
if ((local6<INT_abs_INT(y->len_37))) {
z = INTI_u_times_INT(self, self, y);
}
else {
z = INTI_u_times_INT(self, y, self);
}
}
}
local7 = (self->len_37<0);
if (((local7)!=((y->len_37<0)))) {
z->len_37 = INT_negate_INT(z->len_37);
}
return z;
}
INTI INTI_square_INTI(INTI self) {
INTI noname826;
return INTI_times_INTI_INTI(self, self);
}
INTI INTI_pow_INT_INTI(INTI self, INT i) {
INTI noname827;
INTI x;
INTI z;
x = self;
z = INTI_create_INT_INTI(((INTI) NULL), 1);
while (1) {
if ((i>0)) {
}
else {
goto after_loop;
}
if (INT_is_odd_BOOL(i)) {
z = INTI_times_INTI_INTI(z, x);
}
x = INTI_square_INTI(x);
i = (c_INT_div_INT_INT_chk(i,2));
}
after_loop: ;
return z;
}
INTI INTI_copy_INTI(INTI self) {
INTI noname829;
INT i = ((INT) 0);
INTI z;
INTI local0;
i = INT_abs_INT(self->len_37);
local0 = ((INTI) sbi_arr_alloc_atomic(sizeof(struct INTI_struct), INTI_tag, sizeof(INT) , (c_INT_plus_INT_INT_chk(i,1))));
local0->asize = (c_INT_plus_INT_INT_chk(i,1));
z = local0;
z->len_37 = self->len_37;
while (1) {
if ((i>0)) {
}
else {
goto after_loop;
}
i = (c_INT_minus_INT_INT_chk(i,1));
INTI_aset_INT_INT(z, i, INTI_aget_INT_INT(self, i));
}
after_loop: ;
return z;
}
INTI INTI_negate_INTI(INTI self) {
INTI noname831;
INTI z;
if ((self->len_37!=0)) {
z = INTI_copy_INTI(self);
z->len_37 = INT_negate_INT(self->len_37);
return z;
}
return self;
}
INTI INTI_create_INT_INTI(INTI self, INT x) {
INTI noname832;
INTI z = ((INTI) NULL);
INT a_833 = ((INT) 0);
INT i = ((INT) 0);
INTI local0;
INTI local1;
INT local2;
INT local3;
if ((x==INT_nil_INT(((INT) 0)))) {
local0 = INTI_create_INT_INTI(((INTI) NULL), 2);
z = INTI_negate_INTI(INTI_pow_INT_INTI(local0, (c_INT_minus_INT_INT_chk(shared_INT_asize,1))));
}
else {
a_833 = INT_abs_INT(x);
i = 0;
local2 = INT_highest_bit_INT(a_833);
local3 = (c_INT_div_INT_INT_chk(local2,shared_INTI_log2B));
local1 = ((INTI) sbi_arr_alloc_atomic(sizeof(struct INTI_struct), INTI_tag, sizeof(INT) , (c_INT_plus_INT_INT_chk(local3,1))));
local1->asize = (c_INT_plus_INT_INT_chk(local3,1));
z = local1;
while (1) {
if ((a_833!=0)) {
}
else {
goto after_loop;
}
INTI_aset_INT_INT(z, i, (c_INT_mod_INT_INT_chk(a_833,shared_INTI_B)));
a_833 = (c_INT_div_INT_INT_chk(a_833,shared_INTI_B));
i = (c_INT_plus_INT_INT_chk(i,1));
}
after_loop: ;
if ((x<0)) {
z->len_37 = INT_negate_INT(i);
}
else {
z->len_37 = i;
}
}
return z;
}
INT FSTR_length_INT(FSTR self) {
INT noname835 = ((INT) 0);
return FSTR_size_INT(self);
if (!FSTR_invariant_BOOL(self)) {
fprintf(stderr,"Failed invariant FSTR::invariant:BOOL ../Library/fstr.sa:73:9\n");
exit(16);
}
}
INT INTI_u_mod_INTI_(INTI self, INTI x, INT d) {
INT noname836 = ((INT) 0);
INT xl = ((INT) 0);
INT i = ((INT) 0);
INT c_837 = ((INT) 0);
BOOL local0;
INT local1;
INT local2;
if ((1<=d)) {
local0 = (d<shared_INTI_B);
} else {
local0 = FALSE;
}
if (!(local0)) {
fprintf(stderr,"Violation of precondition ../Library/inti.sa:188:16\n");
exit(16);
}
xl = INT_abs_INT(x->len_37);
i = xl;
c_837 = 0;
while (1) {
if ((i>0)) {
}
else {
goto after_loop;
}
i = (c_INT_minus_INT_INT_chk(i,1));
local1 = (c_INT_times_INT_INT_chk(c_837,shared_INTI_B));
c_837 = (c_INT_plus_INT_INT_chk(local1,INTI_aget_INT_INT(x, i)));
INTI_aset_INT_INT(x, i, (c_INT_div_INT_INT_chk(c_837,d)));
c_837 = (c_INT_mod_INT_INT_chk(c_837,d));
}
after_loop: ;
local2 = INTI_aget_INT_INT(x, (c_INT_minus_INT_INT_chk(xl,1)));
if ((local2==0)) {
x->len_37 = (c_INT_minus_INT_INT_chk(xl,1));
}
return c_837;
}
FSTR INTI_str_in_FSTR(INTI self, FSTR s_839, INT n_840, INT b_841, CHAR f_842) {
FSTR noname843;
INTI x;
INT i = ((INT) 0);
INT j = ((INT) 0);
CHAR ch = ((CHAR) 0);
INT local0;
if (!(INT_is_bet_INT_I(b_841, 2, 16))) {
fprintf(stderr,"Violation of precondition ../Library/inti.sa:378:9\n");
exit(16);
}
x = INTI_copy_INTI(self);
i = FSTR_length_INT(s_839);
while (1) {
s_839 = FSTR_plus_CHAR_FSTR(s_839, INT_digit_char_CHAR(INTI_u_mod_INTI_(self, x, b_841)));
n_840 = (c_INT_minus_INT_INT_chk(n_840,1));
if ((x->len_37==0)) {
goto after_loop;
}
}
after_loop: ;
if ((self->len_37<0)) {
s_839 = FSTR_plus_CHAR_FSTR(s_839, '-');
n_840 = (c_INT_minus_INT_INT_chk(n_840,1));
}
while (1) {
if ((n_840>0)) {
}
else {
goto after_loop_845;
}
s_839 = FSTR_plus_CHAR_FSTR(s_839, f_842);
n_840 = (c_INT_minus_INT_INT_chk(n_840,1));
}
after_loop_845: ;
local0 = FSTR_length_INT(s_839);
j = (c_INT_minus_INT_INT_chk(local0,1));
while (1) {
if ((i<j)) {
}
else {
goto after_loop_847;
}
ch = FSTR_aget_INT_CHAR(s_839, i);
FSTR_aset_INT_CHAR(s_839, i, FSTR_aget_INT_CHAR(s_839, j));
FSTR_aset_INT_CHAR(s_839, j, ch);
i = (c_INT_plus_INT_INT_chk(i,1));
j = (c_INT_minus_INT_INT_chk(j,1));
}
after_loop_847: ;
return s_839;
}
FSTR INT_str_in_FSTR_(INT self, FSTR s_849, INT n_850, INT b_851, CHAR f_852) {
FSTR noname853;
INT x = ((INT) 0);
INT i = ((INT) 0);
INT j = ((INT) 0);
CHAR ch = ((CHAR) 0);
INTI local0;
INTI local1;
INT local2;
if (!(INT_is_bet_INT_I(b_851, 2, 16))) {
fprintf(stderr,"Violation of precondition ../Library/int.sa:220:9\n");
exit(16);
}
if ((self==INT_nil_INT(self))) {
local0 = ((INTI) NULL);
local1 = INTI_create_INT_INTI(local0, INT_nil_INT(self));
return INTI_str_in_FSTR(local1, s_849, n_850, b_851, f_852);
}
else {
x = INT_abs_INT(self);
i = FSTR_length_INT(s_849);
while (1) {
s_849 = FSTR_plus_CHAR_FSTR(s_849, INT_digit_char_CHAR((c_INT_mod_INT_INT_chk(x,b_851))));
x = (c_INT_div_INT_INT_chk(x,b_851));
n_850 = (c_INT_minus_INT_INT_chk(n_850,1));
if ((x==0)) {
goto after_loop;
}
}
after_loop: ;
if ((self<0)) {
s_849 = FSTR_plus_CHAR_FSTR(s_849, '-');
n_850 = (c_INT_minus_INT_INT_chk(n_850,1));
}
while (1) {
if ((n_850>0)) {
}
else {
goto after_loop_855;
}
s_849 = FSTR_plus_CHAR_FSTR(s_849, f_852);
n_850 = (c_INT_minus_INT_INT_chk(n_850,1));
}
after_loop_855: ;
local2 = FSTR_length_INT(s_849);
j = (c_INT_minus_INT_INT_chk(local2,1));
while (1) {
if ((i<j)) {
}
else {
goto after_loop_857;
}
ch = FSTR_aget_INT_CHAR(s_849, i);
FSTR_aset_INT_CHAR(s_849, i, FSTR_aget_INT_CHAR(s_849, j));
FSTR_aset_INT_CHAR(s_849, j, ch);
i = (c_INT_plus_INT_INT_chk(i,1));
j = (c_INT_minus_INT_INT_chk(j,1));
}
after_loop_857: ;
}
return s_849;
}
FSTR INT_str_in_FSTR_FSTR(INT self, FSTR s_859) {
FSTR noname860;
return INT_str_in_FSTR_(self, s_859, 0, 10, ' ');
}
STR STR_plus_INT_STR(STR self, INT i) {
STR noname861;
FSTR_clear(shared_STR_buf);
if ((!((self==((STR) NULL))))) {
STR_buf_FSTR(self, FSTR_plus_STR_FSTR(shared_STR_buf, self));
}
STR_buf_FSTR(self, INT_str_in_FSTR_FSTR(i, shared_STR_buf));
return STR_from_fstr_FS(self, shared_STR_buf);
}
INT SFILE_ID_col_num(SFILE_ID self) {
INT noname862 = ((INT) 0);
return (c_INT_mod_INT_INT_chk(self.loc_17,shared_SFILE_ID_B));
}
STR SFILE_ID_str_STR(SFILE_ID self) {
STR noname863;
STR local0;
STR local1;
STR local2;
STR local3;
if ((self.loc_17==-1)) {
return ((STR) &atunknownlocation);
}
local0 = SFILE_ID_file_in_STR(self);
local1 = STR_plus_CHAR_STR(local0, ':');
local2 = STR_plus_INT_STR(local1, SFILE_ID_line_nu(self));
local3 = STR_plus_CHAR_STR(local2, ':');
return STR_plus_INT_STR(local3, SFILE_ID_col_num(self));
}
OUT OUT_plus_STR_OUT(OUT self, STR s_864) {
OUT noname865;
INT local0;
local0 = STR_size_INT(s_864);
c_out_nstr(local0, ((s_864==NULL)?NULL:s_864->arr_part));
return self;
}
void PROG_err_STR(PROG self, STR s_866) {
OUT local0;
OUT local1;
OUT local2;
OUT local3;
self->err_seen = TRUE;
if ((!((self->eloc.loc_17==(INT)0)))) {
if (PROG_err_loc_old(self, self->eloc)) {
return;
}
}
if ((!((self->eloc.loc_17==(INT)0)))) {
local0 = OUT_create_OUT(((OUT) NULL));
local1 = OUT_plus_STR_OUT(local0, SFILE_ID_str_STR(self->eloc));
OUT_plus_STR(local1, ((STR) &name_867));
}
local2 = OUT_create_OUT(((OUT) NULL));
local3 = OUT_plus_STR_OUT(local2, s_866);
OUT_plus_STR(local3, ((STR) &name_868));
}
BOOL FMAPSTRFSETSTR_i_869(FMAPSTRFSETSTR self) {
BOOL noname870 = ((BOOL) 0);
BOOL local0;
if ((self==((FMAPSTRFSETSTR) NULL))) {
local0 = TRUE;
} else {
local0 = (self->hsize==0);
}
return local0;
if (!FMAPSTRFSETSTR_i(self)) {
fprintf(stderr,"Failed invariant FMAP{STR,FSET{STR}}::invariant:BOOL ../Library/fmap.sa:254:11\n");
exit(16);
}
}
STR OPTIONS_mention_(OPTIONS self, STR name_871, STR s1, STR s2) {
STR noname872;
STR local0;
STR local1;
STR local2;
if (STR_is_neq_STR_BOOL(s2, ((STR) &name_873))) {
local0 = STR_plus_CHAR_STR(s1, '\n');
local1 = STR_plus_STR_STR(local0, name_871);
local2 = STR_plus_STR_STR(local1, ((STR) &name_874));
return STR_plus_STR_STR(local2, s2);
}
return s1;
}
BOOL FMAPSTRSTR_is_em(FMAPSTRSTR self) {
BOOL noname875 = ((BOOL) 0);
BOOL local0;
if ((self==((FMAPSTRSTR) NULL))) {
local0 = TRUE;
} else {
local0 = (self->hsize==0);
}
return local0;
if (!FMAPSTRSTR_invar(self)) {
fprintf(stderr,"Failed invariant FMAP{STR,STR}::invariant:BOOL ../Library/fmap.sa:254:11\n");
exit(16);
}
}
STR OPTIONS_str_STR(OPTIONS self) {
STR noname876;
STR r_877 = ((STR) NULL);
STR s_878 = ((STR) NULL);
FSETSTR noname879;
FSETSTR noname880;
FSETSTR noname881;
FLISTSTR noname882;
FSETSTR noname883;
FSETSTR noname884;
FSETSTR noname885;
FSETSTR noname886;
FSETSTR noname887;
FSETSTR noname888;
FSETSTR noname889;
FSETSTR noname890;
FSETSTR noname891;
FSETSTR noname892;
FSETSTR noname893;
FSETSTR noname894;
FSETSTR noname895;
FSETSTR noname896;
FSETSTR noname897;
FSETSTR noname898;
FSETSTR noname899;
FSETSTR noname900;
FSETSTR noname901;
FSETSTR noname902;
FSETSTR noname903;
FLISTSTR noname904;
FMAPSTRFSETSTR noname905;
TUPSTRFSETSTR p = TUPSTRFSETSTR_zero;
FSETSTR noname906;
STR noname907;
FMAPSTRSTR noname908;
TUPSTRSTR p_909 = TUPSTRSTR_zero;
STR local0;
STR local1;
STR local2;
STR local3;
STR local4;
STR local5;
STR local6;
STR local7;
STR local8;
STR local9;
STR local10;
STR local11;
STR local12;
STR local13;
STR local14;
STR local15;
STR local16;
STR local17;
STR local18;
STR local19;
STR local20;
STR local21;
STR local22;
STR local23;
STR local24;
STR local25;
STR local26;
STR local27;
STR local28;
STR local29;
STR local30;
STR local31;
STR local32;
STR local33;
STR local34;
STR local35;
STR local36;
STR local37;
STR local38;
STR local39;
STR local40;
STR local41;
STR local42;
STR local43;
STR local44;
STR local45;
STR local46;
STR local47;
STR local48;
STR local49;
STR local50;
STR local51;
STR local52;
TUPSTRFSETSTR local53;
STR local54;
STR local55;
STR local56;
STR local57;
TUPSTRSTR local58;
STR local59;
STR local60;
STR local61;
r_877 = ((STR) &name_910);
{
struct FSETSTR_elt_STR_frame_struct temp911_0;
FSETSTR_elt_STR_frame
noname912 = &temp911_0;
noname912->state = 0;
while (1) {
local0 = STR_plus_CHAR_STR(r_877, ' ');
if (noname912->state == 0) {
noname879 = self->sather_files;
noname912->arg0 = noname879;
}
local1 = FSETSTR_elt_STR(noname912);
if (noname912->state == -1) goto after_loop;
r_877 = STR_plus_STR_STR(local0, local1);
}
}
after_loop: ;
s_878 = OPTIONS_mention_(self, ((STR) &Satherfiles), ((STR) &name_913), r_877);
r_877 = ((STR) &name_914);
{
struct FSETSTR_elt_STR_frame_struct temp916_0;
FSETSTR_elt_STR_frame
noname917 = &temp916_0;
noname917->state = 0;
while (1) {
local2 = STR_plus_CHAR_STR(r_877, ' ');
if (noname917->state == 0) {
noname880 = self->c_files;
noname917->arg0 = noname880;
}
local3 = FSETSTR_elt_STR(noname917);
if (noname917->state == -1) goto after_loop_915;
r_877 = STR_plus_STR_STR(local2, local3);
}
}
after_loop_915: ;
s_878 = OPTIONS_mention_(self, ((STR) &Cfiles), s_878, r_877);
r_877 = ((STR) &name_918);
{
struct FSETSTR_elt_STR_frame_struct temp920_0;
FSETSTR_elt_STR_frame
noname921 = &temp920_0;
noname921->state = 0;
while (1) {
local4 = STR_plus_CHAR_STR(r_877, ' ');
if (noname921->state == 0) {
noname881 = self->object_files;
noname921->arg0 = noname881;
}
local5 = FSETSTR_elt_STR(noname921);
if (noname921->state == -1) goto after_loop_919;
r_877 = STR_plus_STR_STR(local4, local5);
}
}
after_loop_919: ;
s_878 = OPTIONS_mention_(self, ((STR) &objectfiles), s_878, r_877);
r_877 = ((STR) &name_922);
{
struct FLISTSTR_elt_STR_frame_struct temp924_0;
FLISTSTR_elt_STR_frame
noname925 = &temp924_0;
noname925->state = 0;
while (1) {
local6 = STR_plus_CHAR_STR(r_877, ' ');
if (noname925->state == 0) {
noname882 = self->archive_files;
noname925->arg0 = noname882;
}
local7 = FLISTSTR_elt_STR(noname925);
if (noname925->state == -1) goto after_loop_923;
r_877 = STR_plus_STR_STR(local6, local7);
}
}
after_loop_923: ;
s_878 = OPTIONS_mention_(self, ((STR) &archivefiles), s_878, r_877);
s_878 = OPTIONS_mention_(self, ((STR) &Mainclass), s_878, self->main_class);
s_878 = OPTIONS_mention_(self, ((STR) &Executable), s_878, self->executable_9);
local8 = STR_plus_STR_STR(s_878, ((STR) &Homedirectory));
s_878 = STR_plus_STR_STR(local8, self->home);
if (self->gen_c) {
s_878 = STR_plus_STR_STR(s_878, ((STR) &GenerateC));
}
if (self->pretty) {
s_878 = STR_plus_STR_STR(s_878, ((STR) &PrettyC));
}
if (self->verbose) {
s_878 = STR_plus_STR_STR(s_878, ((STR) &Verbose));
}
if (self->optimize) {
s_878 = STR_plus_STR_STR(s_878, ((STR) &Optimize));
}
if (self->debug_11) {
s_878 = STR_plus_STR_STR(s_878, ((STR) &Generatedebuggin));
}
if (self->psather) {
s_878 = STR_plus_STR_STR(s_878, ((STR) &AcceptpSathercode));
}
if (self->deterministic_12) {
s_878 = STR_plus_STR_STR(s_878, ((STR) &Generatedetermin));
}
if (self->only_parse) {
s_878 = STR_plus_STR_STR(s_878, ((STR) &Stopafterparsing));
}
if (self->only_check) {
s_878 = STR_plus_STR_STR(s_878, ((STR) &Dontgeneratecode));
}
if (self->only_C) {
s_878 = STR_plus_STR_STR(s_878, ((STR) &DontcompileC));
}
if (self->only_reachable) {
s_878 = STR_plus_STR_STR(s_878, ((STR) &Dontcheckunreach));
}
r_877 = ((STR) &name_926);
if (self->pre_all) {
r_877 = STR_plus_STR_STR(r_877, ((STR) &All_927));
}
else {
{
struct FSETSTR_elt_STR_frame_struct temp929_0;
FSETSTR_elt_STR_frame
noname930 = &temp929_0;
noname930->state = 0;
while (1) {
local9 = STR_plus_CHAR_STR(r_877, '+');
if (noname930->state == 0) {
noname883 = self->pre_in;
noname930->arg0 = noname883;
}
local10 = FSETSTR_elt_STR(noname930);
if (noname930->state == -1) goto after_loop_928;
r_877 = STR_plus_STR_STR(local9, local10);
}
}
after_loop_928: ;
}
{
struct FSETSTR_elt_STR_frame_struct temp932_0;
FSETSTR_elt_STR_frame
noname933 = &temp932_0;
noname933->state = 0;
while (1) {
local11 = STR_plus_CHAR_STR(r_877, '-');
if (noname933->state == 0) {
noname884 = self->pre_out;
noname933->arg0 = noname884;
}
local12 = FSETSTR_elt_STR(noname933);
if (noname933->state == -1) goto after_loop_931;
r_877 = STR_plus_STR_STR(local11, local12);
}
}
after_loop_931: ;
s_878 = OPTIONS_mention_(self, ((STR) &Preconditions), s_878, r_877);
r_877 = ((STR) &name_934);
if (self->post_all) {
r_877 = STR_plus_STR_STR(r_877, ((STR) &All_935));
}
else {
{
struct FSETSTR_elt_STR_frame_struct temp937_0;
FSETSTR_elt_STR_frame
noname938 = &temp937_0;
noname938->state = 0;
while (1) {
local13 = STR_plus_CHAR_STR(r_877, '+');
if (noname938->state == 0) {
noname885 = self->post_in;
noname938->arg0 = noname885;
}
local14 = FSETSTR_elt_STR(noname938);
if (noname938->state == -1) goto after_loop_936;
r_877 = STR_plus_STR_STR(local13, local14);
}
}
after_loop_936: ;
}
{
struct FSETSTR_elt_STR_frame_struct temp940_0;
FSETSTR_elt_STR_frame
noname941 = &temp940_0;
noname941->state = 0;
while (1) {
local15 = STR_plus_CHAR_STR(r_877, '-');
if (noname941->state == 0) {
noname886 = self->post_out;
noname941->arg0 = noname886;
}
local16 = FSETSTR_elt_STR(noname941);
if (noname941->state == -1) goto after_loop_939;
r_877 = STR_plus_STR_STR(local15, local16);
}
}
after_loop_939: ;
s_878 = OPTIONS_mention_(self, ((STR) &Postconditions), s_878, r_877);
r_877 = ((STR) &name_942);
if (self->invariant_all) {
r_877 = STR_plus_STR_STR(r_877, ((STR) &All_943));
}
else {
{
struct FSETSTR_elt_STR_frame_struct temp945_0;
FSETSTR_elt_STR_frame
noname946 = &temp945_0;
noname946->state = 0;
while (1) {
local17 = STR_plus_CHAR_STR(r_877, '+');
if (noname946->state == 0) {
noname887 = self->invariant_in;
noname946->arg0 = noname887;
}
local18 = FSETSTR_elt_STR(noname946);
if (noname946->state == -1) goto after_loop_944;
r_877 = STR_plus_STR_STR(local17, local18);
}
}
after_loop_944: ;
}
{
struct FSETSTR_elt_STR_frame_struct temp948_0;
FSETSTR_elt_STR_frame
noname949 = &temp948_0;
noname949->state = 0;
while (1) {
local19 = STR_plus_CHAR_STR(r_877, '-');
if (noname949->state == 0) {
noname888 = self->invariant_out;
noname949->arg0 = noname888;
}
local20 = FSETSTR_elt_STR(noname949);
if (noname949->state == -1) goto after_loop_947;
r_877 = STR_plus_STR_STR(local19, local20);
}
}
after_loop_947: ;
s_878 = OPTIONS_mention_(self, ((STR) &Invariants), s_878, r_877);
r_877 = ((STR) &name_950);
if (self->assert_all) {
r_877 = STR_plus_STR_STR(r_877, ((STR) &All_951));
}
else {
{
struct FSETSTR_elt_STR_frame_struct temp953_0;
FSETSTR_elt_STR_frame
noname954 = &temp953_0;
noname954->state = 0;
while (1) {
local21 = STR_plus_CHAR_STR(r_877, '+');
if (noname954->state == 0) {
noname889 = self->assert_in;
noname954->arg0 = noname889;
}
local22 = FSETSTR_elt_STR(noname954);
if (noname954->state == -1) goto after_loop_952;
r_877 = STR_plus_STR_STR(local21, local22);
}
}
after_loop_952: ;
}
{
struct FSETSTR_elt_STR_frame_struct temp956_0;
FSETSTR_elt_STR_frame
noname957 = &temp956_0;
noname957->state = 0;
while (1) {
local23 = STR_plus_CHAR_STR(r_877, '-');
if (noname957->state == 0) {
noname890 = self->assert_out;
noname957->arg0 = noname890;
}
local24 = FSETSTR_elt_STR(noname957);
if (noname957->state == -1) goto after_loop_955;
r_877 = STR_plus_STR_STR(local23, local24);
}
}
after_loop_955: ;
s_878 = OPTIONS_mention_(self, ((STR) &Asserts), s_878, r_877);
r_877 = ((STR) &name_958);
if (self->void_all) {
r_877 = STR_plus_STR_STR(r_877, ((STR) &All_959));
}
else {
{
struct FSETSTR_elt_STR_frame_struct temp961_0;
FSETSTR_elt_STR_frame
noname962 = &temp961_0;
noname962->state = 0;
while (1) {
local25 = STR_plus_CHAR_STR(r_877, '+');
if (noname962->state == 0) {
noname891 = self->void_in;
noname962->arg0 = noname891;
}
local26 = FSETSTR_elt_STR(noname962);
if (noname962->state == -1) goto after_loop_960;
r_877 = STR_plus_STR_STR(local25, local26);
}
}
after_loop_960: ;
}
{
struct FSETSTR_elt_STR_frame_struct temp964_0;
FSETSTR_elt_STR_frame
noname965 = &temp964_0;
noname965->state = 0;
while (1) {
local27 = STR_plus_CHAR_STR(r_877, '-');
if (noname965->state == 0) {
noname892 = self->void_out;
noname965->arg0 = noname892;
}
local28 = FSETSTR_elt_STR(noname965);
if (noname965->state == -1) goto after_loop_963;
r_877 = STR_plus_STR_STR(local27, local28);
}
}
after_loop_963: ;
s_878 = OPTIONS_mention_(self, ((STR) &Voidchecks), s_878, r_877);
r_877 = ((STR) &name_966);
if (self->when_all) {
r_877 = STR_plus_STR_STR(r_877, ((STR) &All_967));
}
else {
{
struct FSETSTR_elt_STR_frame_struct temp969_0;
FSETSTR_elt_STR_frame
noname970 = &temp969_0;
noname970->state = 0;
while (1) {
local29 = STR_plus_CHAR_STR(r_877, '+');
if (noname970->state == 0) {
noname893 = self->when_in;
noname970->arg0 = noname893;
}
local30 = FSETSTR_elt_STR(noname970);
if (noname970->state == -1) goto after_loop_968;
r_877 = STR_plus_STR_STR(local29, local30);
}
}
after_loop_968: ;
}
{
struct FSETSTR_elt_STR_frame_struct temp972_0;
FSETSTR_elt_STR_frame
noname973 = &temp972_0;
noname973->state = 0;
while (1) {
local31 = STR_plus_CHAR_STR(r_877, '-');
if (noname973->state == 0) {
noname894 = self->when_out;
noname973->arg0 = noname894;
}
local32 = FSETSTR_elt_STR(noname973);
if (noname973->state == -1) goto after_loop_971;
r_877 = STR_plus_STR_STR(local31, local32);
}
}
after_loop_971: ;
s_878 = OPTIONS_mention_(self, ((STR) &Whenclause), s_878, r_877);
r_877 = ((STR) &name_974);
if (self->bounds_all) {
r_877 = STR_plus_STR_STR(r_877, ((STR) &All_975));
}
else {
{
struct FSETSTR_elt_STR_frame_struct temp977_0;
FSETSTR_elt_STR_frame
noname978 = &temp977_0;
noname978->state = 0;
while (1) {
local33 = STR_plus_CHAR_STR(r_877, '+');
if (noname978->state == 0) {
noname895 = self->bounds_in;
noname978->arg0 = noname895;
}
local34 = FSETSTR_elt_STR(noname978);
if (noname978->state == -1) goto after_loop_976;
r_877 = STR_plus_STR_STR(local33, local34);
}
}
after_loop_976: ;
}
{
struct FSETSTR_elt_STR_frame_struct temp980_0;
FSETSTR_elt_STR_frame
noname981 = &temp980_0;
noname981->state = 0;
while (1) {
local35 = STR_plus_CHAR_STR(r_877, '-');
if (noname981->state == 0) {
noname896 = self->bounds_out;
noname981->arg0 = noname896;
}
local36 = FSETSTR_elt_STR(noname981);
if (noname981->state == -1) goto after_loop_979;
r_877 = STR_plus_STR_STR(local35, local36);
}
}
after_loop_979: ;
s_878 = OPTIONS_mention_(self, ((STR) &Bounds), s_878, r_877);
r_877 = ((STR) &name_982);
if (self->destroy_all) {
r_877 = STR_plus_STR_STR(r_877, ((STR) &All_983));
}
else {
{
struct FSETSTR_elt_STR_frame_struct temp985_0;
FSETSTR_elt_STR_frame
noname986 = &temp985_0;
noname986->state = 0;
while (1) {
local37 = STR_plus_CHAR_STR(r_877, '+');
if (noname986->state == 0) {
noname897 = self->destroy_in;
noname986->arg0 = noname897;
}
local38 = FSETSTR_elt_STR(noname986);
if (noname986->state == -1) goto after_loop_984;
r_877 = STR_plus_STR_STR(local37, local38);
}
}
after_loop_984: ;
}
{
struct FSETSTR_elt_STR_frame_struct temp988_0;
FSETSTR_elt_STR_frame
noname989 = &temp988_0;
noname989->state = 0;
while (1) {
local39 = STR_plus_CHAR_STR(r_877, '-');
if (noname989->state == 0) {
noname898 = self->destroy_out;
noname989->arg0 = noname898;
}
local40 = FSETSTR_elt_STR(noname989);
if (noname989->state == -1) goto after_loop_987;
r_877 = STR_plus_STR_STR(local39, local40);
}
}
after_loop_987: ;
s_878 = OPTIONS_mention_(self, ((STR) &Destroy), s_878, r_877);
r_877 = ((STR) &name_990);
if (self->arith_all) {
r_877 = STR_plus_STR_STR(r_877, ((STR) &All_991));
}
else {
{
struct FSETSTR_elt_STR_frame_struct temp993_0;
FSETSTR_elt_STR_frame
noname994 = &temp993_0;
noname994->state = 0;
while (1) {
local41 = STR_plus_CHAR_STR(r_877, '+');
if (noname994->state == 0) {
noname899 = self->arith_in;
noname994->arg0 = noname899;
}
local42 = FSETSTR_elt_STR(noname994);
if (noname994->state == -1) goto after_loop_992;
r_877 = STR_plus_STR_STR(local41, local42);
}
}
after_loop_992: ;
}
{
struct FSETSTR_elt_STR_frame_struct temp996_0;
FSETSTR_elt_STR_frame
noname997 = &temp996_0;
noname997->state = 0;
while (1) {
local43 = STR_plus_CHAR_STR(r_877, '-');
if (noname997->state == 0) {
noname900 = self->arith_out;
noname997->arg0 = noname900;
}
local44 = FSETSTR_elt_STR(noname997);
if (noname997->state == -1) goto after_loop_995;
r_877 = STR_plus_STR_STR(local43, local44);
}
}
after_loop_995: ;
s_878 = OPTIONS_mention_(self, ((STR) &Arith), s_878, r_877);
r_877 = ((STR) &name_998);
if (self->return_all) {
r_877 = STR_plus_STR_STR(r_877, ((STR) &All_999));
}
else {
{
struct FSETSTR_elt_STR_frame_struct temp1001_0;
FSETSTR_elt_STR_frame
noname1002 = &temp1001_0;
noname1002->state = 0;
while (1) {
local45 = STR_plus_CHAR_STR(r_877, '+');
if (noname1002->state == 0) {
noname901 = self->return_in;
noname1002->arg0 = noname901;
}
local46 = FSETSTR_elt_STR(noname1002);
if (noname1002->state == -1) goto after_loop_1000;
r_877 = STR_plus_STR_STR(local45, local46);
}
}
after_loop_1000: ;
}
{
struct FSETSTR_elt_STR_frame_struct temp1004_0;
FSETSTR_elt_STR_frame
noname1005 = &temp1004_0;
noname1005->state = 0;
while (1) {
local47 = STR_plus_CHAR_STR(r_877, '-');
if (noname1005->state == 0) {
noname902 = self->return_out;
noname1005->arg0 = noname902;
}
local48 = FSETSTR_elt_STR(noname1005);
if (noname1005->state == -1) goto after_loop_1003;
r_877 = STR_plus_STR_STR(local47, local48);
}
}
after_loop_1003: ;
s_878 = OPTIONS_mention_(self, ((STR) &Return), s_878, r_877);
r_877 = ((STR) &name_1006);
if (self->force_all) {
r_877 = STR_plus_STR_STR(r_877, ((STR) &All_1007));
}
else {
if ((!(FSETSTR_is_empty(self->force_routines)))) {
{
struct FSETSTR_elt_STR_frame_struct temp1009_0;
FSETSTR_elt_STR_frame
noname1010 = &temp1009_0;
noname1010->state = 0;
while (1) {
local49 = STR_plus_CHAR_STR(r_877, ' ');
if (noname1010->state == 0) {
noname903 = self->force_routines;
noname1010->arg0 = noname903;
}
local50 = FSETSTR_elt_STR(noname1010);
if (noname1010->state == -1) goto after_loop_1008;
r_877 = STR_plus_STR_STR(local49, local50);
}
}
after_loop_1008: ;
}
}
s_878 = OPTIONS_mention_(self, ((STR) &Forcedroutines), s_878, r_877);
r_877 = ((STR) &name_1011);
if ((!(FLISTSTR_is_empt(self->c_flags)))) {
{
struct FLISTSTR_elt_STR_frame_struct temp1013_0;
FLISTSTR_elt_STR_frame
noname1014 = &temp1013_0;
noname1014->state = 0;
while (1) {
local51 = STR_plus_CHAR_STR(r_877, ' ');
if (noname1014->state == 0) {
noname904 = self->c_flags;
noname1014->arg0 = noname904;
}
local52 = FLISTSTR_elt_STR(noname1014);
if (noname1014->state == -1) goto after_loop_1012;
r_877 = STR_plus_STR_STR(local51, local52);
}
}
after_loop_1012: ;
}
s_878 = OPTIONS_mention_(self, ((STR) &Cflags), s_878, r_877);
if ((!(FMAPSTRFSETSTR_i_869(self->externals)))) {
s_878 = STR_plus_STR_STR(s_878, ((STR) &Externals));
{
struct FMAPSTRFSETSTR_p_frame_struct temp1016_0;
FMAPSTRFSETSTR_p_frame
noname1017 = &temp1016_0;
noname1017->state = 0;
while (1) {
if (noname1017->state == 0) {
noname905 = self->externals;
noname1017->arg0 = noname905;
}
local53 = FMAPSTRFSETSTR_p(noname1017);
if (noname1017->state == -1) goto after_loop_1015;
p = local53;
local54 = STR_plus_STR_STR(s_878, ((STR) &name_1018));
local55 = STR_plus_STR_STR(local54, p.t1);
s_878 = STR_plus_STR_STR(local55, ((STR) &name_1019));
{
struct FSETSTR_elt_STR_frame_struct temp1021_0;
FSETSTR_elt_STR_frame
noname1022 = &temp1021_0;
struct STR_separate_STR_STR_frame_struct temp1021_1;
STR_separate_STR_STR_frame
noname1023 = &temp1021_1;
noname1022->state = 0;
noname1023->state = 0;
while (1) {
if (noname1023->state == 0) {
noname907 = ((STR) &name_1024);
noname1023->arg0 = noname907;
}
if (noname1022->state == 0) {
noname906 = p.t2;
noname1022->arg0 = noname906;
}
local57 = FSETSTR_elt_STR(noname1022);
if (noname1022->state == -1) goto after_loop_1020;
noname1023->arg1 = local57;
local56 = STR_separate_STR_STR(noname1023);
if (noname1023->state == -1) goto after_loop_1020;
r_877 = STR_plus_STR_STR(r_877, local56);
}
}
after_loop_1020: ;
s_878 = STR_plus_STR_STR(s_878, ((STR) &name_1025));
}
}
after_loop_1015: ;
}
if ((!(FMAPSTRSTR_is_em(self->has_13)))) {
s_878 = STR_plus_STR_STR(s_878, ((STR) &Has));
{
struct FMAPSTRSTR_pairs_frame_struct temp1027_0;
FMAPSTRSTR_pairs_frame
noname1028 = &temp1027_0;
noname1028->state = 0;
while (1) {
if (noname1028->state == 0) {
noname908 = self->has_13;
noname1028->arg0 = noname908;
}
local58 = FMAPSTRSTR_pairs(noname1028);
if (noname1028->state == -1) goto after_loop_1026;
p_909 = local58;
local59 = STR_plus_STR_STR(s_878, ((STR) &name_1029));
local60 = STR_plus_STR_STR(local59, p_909.t1);
local61 = STR_plus_STR_STR(local60, ((STR) &in));
s_878 = STR_plus_STR_STR(local61, p_909.t2);
}
}
after_loop_1026: ;
s_878 = STR_plus_STR_STR(s_878, ((STR) &name_1030));
}
return s_878;
}
FMAPOBSTR FMAPOBSTR_create(FMAPOBSTR self) {
FMAPOBSTR noname1031;
return ((FMAPOBSTR) NULL);
if (!FMAPOBSTR_invari(self)) {
fprintf(stderr,"Failed invariant FMAP{$OB,STR}::invariant:BOOL ../Library/fmap.sa:79:9\n");
exit(16);
}
}
FMAPSTRSTR FMAPSTRSTR_creat(FMAPSTRSTR self) {
FMAPSTRSTR noname1032;
return ((FMAPSTRSTR) NULL);
if (!FMAPSTRSTR_invar(self)) {
fprintf(stderr,"Failed invariant FMAP{STR,STR}::invariant:BOOL ../Library/fmap.sa:79:9\n");
exit(16);
}
}
FMAPSTRTUPSTRSTR FMAPSTRTUPSTRSTR_1033(FMAPSTRTUPSTRSTR self) {
FMAPSTRTUPSTRSTR noname1034;
return ((FMAPSTRTUPSTRSTR) NULL);
if (!FMAPSTRTUPSTRSTR_1035(self)) {
fprintf(stderr,"Failed invariant FMAP{STR,TUP{STR,STR}}::invariant:BOOL ../Library/fmap.sa:79:9\n");
exit(16);
}
}
FMAPSTRITER_INLINE FMAPSTRITER_INLI(FMAPSTRITER_INLINE self) {
FMAPSTRITER_INLINE noname1036;
return ((FMAPSTRITER_INLINE) NULL);
if (!FMAPSTRITER_INLI_1037(self)) {
fprintf(stderr,"Failed invariant FMAP{STR,ITER_INLINE}::invariant:BOOL ../Library/fmap.sa:79:9\n");
exit(16);
}
}
FSETTP FSETTP_create_FSETTP(FSETTP self) {
FSETTP noname1038;
return ((FSETTP) NULL);
if (!FSETTP_invariant(self)) {
fprintf(stderr,"Failed invariant FSET{$TP}::invariant:BOOL ../Library/fset.sa:73:9\n");
exit(16);
}
}
FLISTAM_ROUT_DEF FLISTAM_ROUT_DEF_1039(FLISTAM_ROUT_DEF self) {
FLISTAM_ROUT_DEF noname1040;
return ((FLISTAM_ROUT_DEF) NULL);
if (!FLISTAM_ROUT_DEF_1041(self)) {
fprintf(stderr,"Failed invariant FLIST{AM_ROUT_DEF}::invariant:BOOL ../Library/flist.sa:55:9\n");
exit(16);
}
}
FLISTAM_BND_CREA FLISTAM_BND_CREA_1042(FLISTAM_BND_CREA self) {
FLISTAM_BND_CREA noname1043;
return ((FLISTAM_BND_CREA) NULL);
if (!FLISTAM_BND_CREA_1044(self)) {
fprintf(stderr,"Failed invariant FLIST{AM_BND_CREATE_EXPR}::invariant:BOOL ../Library/flist.sa:55:9\n");
exit(16);
}
}
FMAPSIGAM_ROUT_DEF FMAPSIGAM_ROUT_D(FMAPSIGAM_ROUT_DEF self) {
FMAPSIGAM_ROUT_DEF noname1045;
return ((FMAPSIGAM_ROUT_DEF) NULL);
if (!FMAPSIGAM_ROUT_D_1046(self)) {
fprintf(stderr,"Failed invariant FMAP{SIG,AM_ROUT_DEF}::invariant:BOOL ../Library/fmap.sa:79:9\n");
exit(16);
}
}
void BE_forbid_STR(BE self, STR s_1047) {
self->forbidden = FSETSTR_insert_S(self->forbidden, s_1047);
}
void BE_insert_forbid(BE self) {
BE_LEX l;
BE_LEX noname1048;
BE_LEX local0;
STR local1;
local0 = ((BE_LEX) NULL);
l = BE_LEX_create_ST(local0, STR_plus_STR_STR(self->prog->options_55->home, ((STR) &SystemFORBID)));
{
struct BE_LEX_elt_STR_frame_struct temp1049_0;
BE_LEX_elt_STR_frame
noname1050 = &temp1049_0;
noname1050->state = 0;
while (1) {
if (noname1050->state == 0) {
noname1048 = l;
noname1050->arg0 = noname1048;
}
local1 = BE_LEX_elt_STR(noname1050);
if (noname1050->state == -1) goto after_loop;
BE_forbid_STR(self, local1);
}
}
after_loop: ;
}
void PROG_err_loc_PRO(PROG self, PROG_ERR t_1051) {
PROG_ERR local0;
if ((t_1051==((PROG_ERR) NULL))) {
self->eloc = SFILE_ID_zero;
return;
}
local0 = t_1051;
self->eloc = (*PROG_ERR_source_[local0->header.tag+PROG_ERR_source__offset])(local0);
}
void BE_barf_at_STR_P(BE self, STR msg_1052, PROG_ERR at_1053) {
PROG local0;
PROG_err_loc_PRO(self->prog, at_1053);
local0 = self->prog;
PROG_err_STR(local0, STR_plus_STR_STR(((STR) &Internalcompiler), msg_1052));
UNIX_exit_INT(((UNIX) NULL), 1);
}
void BE_barf_STR(BE self, STR msg_1054) {
BE_barf_at_STR_P(self, msg_1054, ((PROG_ERR) NULL));
}
STR FMAPSTRTUPSTRSTR_1055(FMAPSTRTUPSTRSTR self) {
STR noname1056;
STR k = ((STR) NULL);
return ((STR) NULL);
if (!FMAPSTRTUPSTRSTR_1035(self)) {
fprintf(stderr,"Failed invariant FMAP{STR,TUP{STR,STR}}::invariant:BOOL ../Library/fmap.sa:54:10\n");
exit(16);
}
}
TUPSTRTUPSTRSTR TUPSTRTUPSTRSTR_(TUPSTRTUPSTRSTR self, STR t1_1057) {
TUPSTRTUPSTRSTR local0;
local0 = self;
local0.t1 = t1_1057;
return local0;
}