/*
-- ANSI C code generated by :
-- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79)      --
-- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
-- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
--                 http://www.loria.fr/SmallEiffel              --
*/
#include "short.h"


T180 r180realloc(T180 C,T2 a1,T2 a2){
T180 R=NULL;
R=calloc(a2,sizeof(T0*));
r180copy_from(R,C,(a1)-(1));
return R;
}


void r180set_all_with(T180 C,T0* a1,T2 a2){
T2 _i=0;
_i=a2;
while (!((_i)<(0))) {
(C)[_i]=(a1);
_i=(_i)-(1);
}
}


void r180copy_from(T180 C,T180 a1,T2 a2){
T2 _i=0;
_i=a2;
while (!((_i)<(0))) {
(C)[_i]=((a1)[_i]);
_i=(_i)-(1);
}
}


T91 r91realloc(T91 C,T2 a1,T2 a2){
T91 R=NULL;
R=calloc(a2,sizeof(T0*));
r91copy_from(R,C,(a1)-(1));
return R;
}


void r91copy_from(T91 C,T91 a1,T2 a2){
T2 _i=0;
_i=a2;
while (!((_i)<(0))) {
(C)[_i]=((a1)[_i]);
_i=(_i)-(1);
}
}


T6 r7has(T7* C,T3 a1){
T6 R=0;
R=(r7index_of(C,a1))!=(((C)->_count/*4*/)+(1));
return R;
}


T8 r7to_external(T7* C){
T8 R=0;
/*[IF*/
if(((C)->_capacity/*8*/)>((C)->_count/*4*/)){
C->_count=((C)->_count/*4*/)+(1);
/*[IF*/
if((/*(IRF4.6item*/((C)->_storage/*0*/)[((C)->_count/*4*/)-(1)]/*)*/)!=('\0')){
/*[IRF3.5put*/((C)->_storage/*0*/)[((C)->_count/*4*/)-(1)]=('\0');
/*]*/
}
/*FI]*/
}
else{
r7extend(C,'\0');
}
/*FI]*/
C->_count=((C)->_count/*4*/)-(1);
R=((void*)(C)->_storage/*0*/);
return R;
}
/*No:STRING.remove_suffix*/


void r7to_lower(T7* C){
T2 _i=0;
_i=(C)->_count/*4*/;
while (!((_i)==(0))) {
/*[IRF3.5put*/((C)->_storage/*0*/)[(_i)-(1)]=(r3to_lower(/*(IRF4.6item*/((C)->_storage/*0*/)[(_i)-(1)]/*)*/));
/*]*/
_i=(_i)-(1);
}
}
/*No:STRING.item*/


T3 r7last(T7* C){
T3 R=0;
R=/*(IRF4.6item*/((C)->_storage/*0*/)[((C)->_count/*4*/)-(1)]/*)*/;
return R;
}


T6 r7_px_60(T7* C,T0* a1){
T6 R=0;
T2 _i=0;
_i=1;
while (!(((((C)->_count/*4*/)<(_i))||(((((T7*)a1))->_count/*4*/)<(_i)))||((/*(IRF4.6item*/((C)->_storage/*0*/)[(_i)-(1)]/*)*/)!=(/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(_i)-(1)]/*)*/)))) {
_i=(_i)+(1);
}
/*[IF*/
if(((C)->_count/*4*/)<(_i)){
R=((((T7*)a1))->_count/*4*/)>=(_i);
}
 else if(((((T7*)a1))->_count/*4*/)<(_i)){
R=0;
}
else{
R=(((unsigned)(/*(IRF4.6item*/((C)->_storage/*0*/)[(_i)-(1)]/*)*/))<((unsigned)(/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(_i)-(1)]/*)*/)));
}
/*FI]*/
return R;
}


void r7extend(T7* C,T3 a1){
T2 _new_capacity=0;
/*[IF*/
if(((C)->_capacity/*8*/)>((C)->_count/*4*/)){
}
 else if(((C)->_capacity/*8*/)==(0)){
C->_capacity=32;
C->_storage=calloc((C)->_capacity/*8*/,sizeof(T3));
}
else{
_new_capacity=(2)*((C)->_capacity/*8*/);
C->_storage=r9realloc((C)->_storage/*0*/,(C)->_capacity/*8*/,_new_capacity);
C->_capacity=_new_capacity;
}
/*FI]*/
C->_count=((C)->_count/*4*/)+(1);
/*[IRF3.5put*/((C)->_storage/*0*/)[((C)->_count/*4*/)-(1)]=(a1);
/*]*/
}


void r7swap(T7* C,T2 a1,T2 a2){
T3 _tmp=0;
_tmp=/*(IRF4.6item*/((C)->_storage/*0*/)[(a1)-(1)]/*)*/;
/*[IRF3.5put*/((C)->_storage/*0*/)[(a1)-(1)]=(/*(IRF4.6item*/((C)->_storage/*0*/)[(a2)-(1)]/*)*/);
/*]*/
/*[IRF3.5put*/((C)->_storage/*0*/)[(a2)-(1)]=(_tmp);
/*]*/
}


void r7copy(T7* C,T0* a1){
C->_count=(((T7*)a1))->_count/*4*/;
/*[IF*/
if(((C)->_count/*4*/)>(0)){
/*[IF*/
if(((C)->_capacity/*8*/)<((C)->_count/*4*/)){
C->_storage=calloc((C)->_count/*4*/,sizeof(T3));
C->_capacity=(C)->_count/*4*/;
}
/*FI]*/
r9copy_from((C)->_storage/*0*/,(((T7*)a1))->_storage/*0*/,((C)->_count/*4*/)-(1));
}
/*FI]*/
}


T2 r7hash_code(T7* C){
T2 R=0;
T2 _i=0;
_i=(C)->_count/*4*/;
/*[IF*/
if((_i)>(5)){
R=(_i)*(((unsigned char)/*(IRF4.6item*/((C)->_storage/*0*/)[(_i)-(1)]/*)*/));
_i=5;
}
/*FI]*/
while (!((_i)<=(0))) {
R=((R)+(_i))+(((unsigned char)/*(IRF4.6item*/((C)->_storage/*0*/)[(_i)-(1)]/*)*/));
_i=(_i)-(1);
}
R=(R)*((C)->_count/*4*/);
return R;
}
/*No:STRING.put*/
/*No:STRING.storage*/


void r7remove_first(T7* C,T2 a1){
/*[IF*/
if((a1)>(0)){
r7remove_between(C,1,a1);
}
/*FI]*/
}


void r7to_upper(T7* C){
T2 _i=0;
_i=(C)->_count/*4*/;
while (!((_i)==(0))) {
/*[IRF3.5put*/((C)->_storage/*0*/)[(_i)-(1)]=(r3to_upper(/*(IRF4.6item*/((C)->_storage/*0*/)[(_i)-(1)]/*)*/));
/*]*/
_i=(_i)-(1);
}
}


T0* r7twin(T7* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T7*)R)=M7;
r7copy(((T7*)R),((T0*)C));
return R;
}


void r7set_last(T7* C,T3 a1){
/*[IF*/
if((((C)->_count/*4*/)==(0))||((/*(IRF4.6item*/((C)->_storage/*0*/)[((C)->_count/*4*/)-(1)]/*)*/)!=(a1))){
r7extend(C,a1);
}
/*FI]*/
}


void r7remove_last(T7* C,T2 a1){
C->_count=((C)->_count/*4*/)-(a1);
}


T6 r7is_equal(T7* C,T0* a1){
T6 R=0;
/*[IF*/
if((C)==((void*)(a1))){
R=1;
}
 else if(((C)->_count/*4*/)==((((T7*)a1))->_count/*4*/)){
R=r9fast_memcmp((C)->_storage/*0*/,(((T7*)a1))->_storage/*0*/,(C)->_count/*4*/);
}
/*FI]*/
return R;
}


T6 r7has_suffix(T7* C,T0* a1){
T6 R=0;
T2 _i2=0;
T2 _i1=0;
/*[IF*/
if(((((T7*)a1))->_count/*4*/)<=((C)->_count/*4*/)){
_i1=(((C)->_count/*4*/)-((((T7*)a1))->_count/*4*/))+(1);
_i2=1;
while (!((((_i1)>((C)->_count/*4*/))||((_i2)>((((T7*)a1))->_count/*4*/)))||((/*(IRF4.6item*/((C)->_storage/*0*/)[(_i1)-(1)]/*)*/)!=(/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(_i2)-(1)]/*)*/)))) {
_i1=(_i1)+(1);
_i2=(_i2)+(1);
}
R=(_i1)>((C)->_count/*4*/);
}
/*FI]*/
return R;
}


void r7remove_between(T7* C,T2 a1,T2 a2){
T2 _i=0;
_i=a2;
while (!((_i)>=((C)->_count/*4*/))) {
/*[IRF3.5put*/((C)->_storage/*0*/)[(((a1)+(_i))-(a2))-(1)]=(/*(IRF4.6item*/((C)->_storage/*0*/)[((_i)+(1))-(1)]/*)*/);
/*]*/
_i=(_i)+(1);
}
C->_count=((C)->_count/*4*/)-(((a2)-(a1))+(1));
}


T6 r7_px_62(T7* C,T0* a1){
T6 R=0;
R=r7_px_60(((T7*)a1),(T0*)C);
return R;
}


T6 r7same_as(T7* C,T0* a1){
T6 R=0;
T2 _i=0;
/*[IF*/
if((a1)==((void*)(C))){
R=1;
}
else{
/*[IF*/
if(((((T7*)a1))->_count/*4*/)!=((C)->_count/*4*/)){
}
else{
_i=(C)->_count/*4*/;
while (!(((_i)==(0))||(!(r3same_as(/*(IRF4.6item*/((C)->_storage/*0*/)[(_i)-(1)]/*)*/,/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(_i)-(1)]/*)*/))))) {
_i=(_i)-(1);
}
R=(_i)==(0);
}
/*FI]*/
}
/*FI]*/
return R;
}


T2 r7index_of_string(T7* C,T0* a1){
T2 R=0;
T2 _i3=0;
T2 _i2=0;
T2 _i1=0;
T6 _stop=0;
_i1=1;
_i2=(((T7*)a1))->_count/*4*/;
_i3=_i2;
while (!((R)!=(0))) {
/*[IF*/
if((_i2)>((C)->_count/*4*/)){
R=((C)->_count/*4*/)+(1);
}
else{
_stop=0;
while (!(_stop)) {
/*[IF*/
if((_i3)==(0)){
_stop=1;
R=_i1;
}
 else if((/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(_i3)-(1)]/*)*/)!=(/*(IRF4.6item*/((C)->_storage/*0*/)[(_i2)-(1)]/*)*/)){
_stop=1;
}
/*FI]*/
_i3=(_i3)-(1);
_i2=(_i2)-(1);
}
}
/*FI]*/
_i1=(_i1)+(1);
_i3=(((T7*)a1))->_count/*4*/;
_i2=((_i1)+(_i3))-(1);
}
return R;
}


void r7prepend(T7* C,T0* a1){
T2 _old_count=0;
T2 _i=0;
_old_count=(C)->_count/*4*/;
_i=(((T7*)a1))->_count/*4*/;
while (!((_i)==(0))) {
r7extend(C,'\40');
_i=(_i)-(1);
}
_i=(C)->_count/*4*/;
while (!((_old_count)==(0))) {
/*[IRF3.5put*/((C)->_storage/*0*/)[(_i)-(1)]=(/*(IRF4.6item*/((C)->_storage/*0*/)[(_old_count)-(1)]/*)*/);
/*]*/
_i=(_i)-(1);
_old_count=(_old_count)-(1);
}
_i=(((T7*)a1))->_count/*4*/;
while (!((_i)==(0))) {
/*[IRF3.5put*/((C)->_storage/*0*/)[(_i)-(1)]=(/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(_i)-(1)]/*)*/);
/*]*/
_i=(_i)-(1);
}
}
/*No:STRING.first*/


void r7to_hexadecimal(T7* C){
T2 _value=0;
T2 _new_count=0;
T2 _k=0;
T2 _i=0;
_i=1;
_k=((C)->_count/*4*/)%(4);
/*[IF*/
if((_k)>(0)){
_new_count=1;
}
/*FI]*/
while (!((_k)==(0))) {
_value=((_value)*(2))+(r3value(/*(IRF4.6item*/((C)->_storage/*0*/)[(_i)-(1)]/*)*/));
_i=(_i)+(1);
_k=(_k)-(1);
}
/*[IF*/
if((_new_count)>(0)){
/*[IRF3.5put*/((C)->_storage/*0*/)[(_new_count)-(1)]=(r2hexadecimal_digit(_value));
/*]*/
}
/*FI]*/
while (!((_i)>((C)->_count/*4*/))) {
_value=r3value(/*(IRF4.6item*/((C)->_storage/*0*/)[(_i)-(1)]/*)*/);
_i=(_i)+(1);
_k=3;
while (!((_k)==(0))) {
_value=((_value)*(2))+(r3value(/*(IRF4.6item*/((C)->_storage/*0*/)[(_i)-(1)]/*)*/));
_i=(_i)+(1);
_k=(_k)-(1);
}
_new_count=(_new_count)+(1);
/*[IRF3.5put*/((C)->_storage/*0*/)[(_new_count)-(1)]=(r2hexadecimal_digit(_value));
/*]*/
}
C->_count=_new_count;
}
/*No:STRING.count*/


void r7add_first(T7* C,T3 a1){
T2 _i=0;
r7extend(C,'\40');
_i=(C)->_count/*4*/;
while (!((_i)==(1))) {
/*[IRF3.5put*/((C)->_storage/*0*/)[(_i)-(1)]=(/*(IRF4.6item*/((C)->_storage/*0*/)[((_i)-(1))-(1)]/*)*/);
/*]*/
_i=(_i)-(1);
}
/*[IRF3.5put*/((C)->_storage/*0*/)[(1)-(1)]=(a1);
/*]*/
}


T6 r7has_string(T7* C,T0* a1){
T6 R=0;
R=(r7index_of_string(C,a1))!=(((C)->_count/*4*/)+(1));
return R;
}


void r7make(T7* C,T2 a1){
/*[IF*/
if((a1)>(0)){
/*[IF*/
if(((C)->_capacity/*8*/)<(a1)){
C->_storage=calloc(a1,sizeof(T3));
C->_capacity=a1;
}
/*FI]*/
}
/*FI]*/
C->_count=0;
}


void r7append(T7* C,T0* a1){
T2 _needed_capacity=0;
T2 _other_count=0;
_other_count=(((T7*)a1))->_count/*4*/;
_needed_capacity=((C)->_count/*4*/)+(_other_count);
/*[IF*/
if(((C)->_capacity/*8*/)<(_needed_capacity)){
/*[IF*/
if(((C)->_capacity/*8*/)==(0)){
C->_capacity=_needed_capacity;
C->_storage=calloc((C)->_capacity/*8*/,sizeof(T3));
}
else{
C->_storage=r9realloc((C)->_storage/*0*/,(C)->_capacity/*8*/,_needed_capacity);
C->_capacity=_needed_capacity;
}
/*FI]*/
}
/*FI]*/
r9copy_at((C)->_storage/*0*/,(C)->_count/*4*/,(((T7*)a1))->_storage/*0*/,_other_count);
C->_count=_needed_capacity;
}
/*No:STRING.clear*/
/*No:STRING.empty*/


T2 r7index_of(T7* C,T3 a1){
T2 R=0;
R=(1)+(r9fast_index_of((C)->_storage/*0*/,a1,((C)->_count/*4*/)-(1)));
return R;
}
/*No:STRING.capacity*/


void r75add_last(T75* C,T0* a1){
T2 _new_capacity=0;
/*[IF*/
if(((C)->_capacity/*4*/)<((r75count(C))+(1))){
/*[IF*/
if(((C)->_capacity/*4*/)==(0)){
C->_capacity=16;
C->_storage=calloc((C)->_capacity/*4*/,sizeof(T0*));
}
else{
_new_capacity=(2)*((C)->_capacity/*4*/);
C->_storage=r76realloc((C)->_storage/*0*/,(C)->_capacity/*4*/,_new_capacity);
C->_capacity=_new_capacity;
}
/*FI]*/
}
/*FI]*/
C->_upper=((C)->_upper/*8*/)+(1);
/*[IRF3.6put*/{T75* C1=C;
T0* b1=a1;
T2 b2=(C)->_upper/*8*/;
((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
}/*]*/
}


T0* r75item(T75* C,T2 a1){
T0* R=NULL;
R=((C)->_storage/*0*/)[(a1)-((C)->_lower/*12*/)];
return R;
}


T0* r75first(T75* C){
T0* R=NULL;
R=r75item(C,(C)->_lower/*12*/);
return R;
}


T2 r75count(T75* C){
T2 R=0;
R=(((C)->_upper/*8*/)-((C)->_lower/*12*/))+(1);
return R;
}
/*No:ARRAY[CREATION_CLAUSE].lower*/
/*No:ARRAY[CREATION_CLAUSE].upper*/
/*No:ARRAY[CREATION_CLAUSE].capacity*/
/*No:ARRAY[CREATION_CLAUSE].put*/
/*No:ARRAY[CREATION_CLAUSE].storage*/


T0* r209twin(T209* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T209*)R)=M209;
r209copy(((T209*)R),((T0*)C));
return R;
}


void r209add_last(T209* C,T0* a1){
T2 _new_capacity=0;
/*[IF*/
if(((C)->_capacity/*8*/)<((r209count(C))+(1))){
/*[IF*/
if(((C)->_capacity/*8*/)==(0)){
C->_capacity=16;
C->_storage=calloc((C)->_capacity/*8*/,sizeof(T0*));
}
else{
_new_capacity=(2)*((C)->_capacity/*8*/);
C->_storage=r197realloc((C)->_storage/*4*/,(C)->_capacity/*8*/,_new_capacity);
C->_capacity=_new_capacity;
}
/*FI]*/
}
/*FI]*/
C->_upper=((C)->_upper/*12*/)+(1);
/*[IRF3.6put*/{T209* C1=C;
T0* b1=a1;
T2 b2=(C)->_upper/*12*/;
((C1)->_storage/*4*/)[(b2)-((C1)->_lower/*16*/)]=(b1);
}/*]*/
}


T0* r209item(T209* C,T2 a1){
T0* R=NULL;
R=((C)->_storage/*4*/)[(a1)-((C)->_lower/*16*/)];
return R;
}


T2 r209count(T209* C){
T2 R=0;
R=(((C)->_upper/*12*/)-((C)->_lower/*16*/))+(1);
return R;
}
/*No:ARRAY[MANIFEST_STRING].lower*/
/*No:ARRAY[MANIFEST_STRING].upper*/


void r209copy(T209* C,T0* a1){
T2 _needed_capacity=0;
C->_lower=(((T209*)a1))->_lower/*16*/;
C->_upper=(((T209*)a1))->_upper/*12*/;
_needed_capacity=(((C)->_upper/*12*/)-((C)->_lower/*16*/))+(1);
/*[IF*/
if(((C)->_capacity/*8*/)<(_needed_capacity)){
C->_capacity=_needed_capacity;
C->_storage=calloc((C)->_capacity/*8*/,sizeof(T0*));
}
/*FI]*/
/*[IF*/
if((_needed_capacity)>(0)){
r197copy_from((C)->_storage/*4*/,(((T209*)a1))->_storage/*4*/,(_needed_capacity)-(1));
}
/*FI]*/
}
/*No:ARRAY[MANIFEST_STRING].capacity*/
/*No:ARRAY[MANIFEST_STRING].put*/
/*No:ARRAY[MANIFEST_STRING].storage*/


void r328with_capacity(T328* C,T2 a1){
/*[IF*/
if(((C)->_capacity/*8*/)<(a1)){
C->_storage=calloc(a1,sizeof(T0*));
C->_capacity=a1;
}
/*FI]*/
C->_upper=-(1);
}
/*No:FIXED_ARRAY[TYPE_BIT_REF].clear_all*/


void r328add_last(T328* C,T0* a1){
T2 _new_capacity=0;
/*[IF*/
if((((C)->_upper/*12*/)+(1))<=(((C)->_capacity/*8*/)-(1))){
C->_upper=((C)->_upper/*12*/)+(1);
}
 else if(((C)->_capacity/*8*/)==(0)){
C->_storage=calloc(2,sizeof(T0*));
C->_capacity=2;
C->_upper=0;
}
else{
_new_capacity=(2)*((C)->_capacity/*8*/);
C->_storage=r329realloc((C)->_storage/*4*/,(C)->_capacity/*8*/,_new_capacity);
C->_capacity=_new_capacity;
C->_upper=((C)->_upper/*12*/)+(1);
}
/*FI]*/
/*[IRF3.5put*/((C)->_storage/*4*/)[(C)->_upper/*12*/]=(a1);
/*]*/
}
/*No:FIXED_ARRAY[TYPE_BIT_REF].set_all_with*/
/*No:FIXED_ARRAY[TYPE_BIT_REF].count*/


void r328resize(T328* C,T2 a1){
T0* _elt_default=NULL;
T2 _i=0;
T2 _new_capacity=0;
/*[IF*/
if((a1)<=(/*(IRF4.6count*/((C)->_upper/*12*/)+(1)/*)*/)){
C->_upper=(a1)-(1);
}
else{
_new_capacity=a1;
/*[IF*/
if(((C)->_capacity/*8*/)<(_new_capacity)){
/*[IF*/
if(((C)->_capacity/*8*/)==(0)){
C->_storage=calloc(_new_capacity,sizeof(T0*));
}
else{
C->_storage=r329realloc((C)->_storage/*4*/,(C)->_capacity/*8*/,_new_capacity);
}
/*FI]*/
C->_capacity=_new_capacity;
}
/*FI]*/
_new_capacity=(C)->_upper/*12*/;
C->_upper=(a1)-(1);
_i=(C)->_upper/*12*/;
while (!((_i)==(_new_capacity))) {
/*[IRF3.5put*/((C)->_storage/*4*/)[_i]=(_elt_default);
/*]*/
_i=(_i)-(1);
}
}
/*FI]*/
}


void r328make(T328* C,T2 a1){
/*[IF*/
if((a1)==(0)){
C->_upper=-(1);
}
 else if(((C)->_capacity/*8*/)==(0)){
C->_storage=calloc(a1,sizeof(T0*));
C->_capacity=a1;
C->_upper=(a1)-(1);
}
 else if(((C)->_capacity/*8*/)<(a1)){
C->_storage=calloc(a1,sizeof(T0*));
C->_capacity=a1;
C->_upper=(a1)-(1);
}
else{
C->_upper=(a1)-(1);
/*[IRF3.6clear_all*/{T328* C1=C;
T0* __value=NULL;
/*[IRF3.6set_all_with*/{T328* C2=C1;
T0* c1=__value;
r329set_all_with((C2)->_storage/*4*/,c1,(C2)->_upper/*12*/);
}/*]*/
}/*]*/
}
/*FI]*/
}
/*No:FIXED_ARRAY[TYPE_BIT_REF].upper*/
/*No:FIXED_ARRAY[TYPE_BIT_REF].capacity*/
/*No:FIXED_ARRAY[TYPE_BIT_REF].put*/
/*No:FIXED_ARRAY[TYPE_BIT_REF].storage*/


void r80with_capacity(T80* C,T2 a1){
/*[IF*/
if(((C)->_capacity/*4*/)<(a1)){
C->_storage=calloc(a1,sizeof(T0*));
C->_capacity=a1;
}
/*FI]*/
C->_upper=-(1);
}
/*No:FIXED_ARRAY[FEATURE_NAME].clear_all*/


void r80add_last(T80* C,T0* a1){
T2 _new_capacity=0;
/*[IF*/
if((((C)->_upper/*8*/)+(1))<=(((C)->_capacity/*4*/)-(1))){
C->_upper=((C)->_upper/*8*/)+(1);
}
 else if(((C)->_capacity/*4*/)==(0)){
C->_storage=calloc(2,sizeof(T0*));
C->_capacity=2;
C->_upper=0;
}
else{
_new_capacity=(2)*((C)->_capacity/*4*/);
C->_storage=r85realloc((C)->_storage/*0*/,(C)->_capacity/*4*/,_new_capacity);
C->_capacity=_new_capacity;
C->_upper=((C)->_upper/*8*/)+(1);
}
/*FI]*/
/*[IRF3.5put*/((C)->_storage/*0*/)[(C)->_upper/*8*/]=(a1);
/*]*/
}
/*No:FIXED_ARRAY[FEATURE_NAME].set_all_with*/
/*No:FIXED_ARRAY[FEATURE_NAME].item*/
/*No:FIXED_ARRAY[FEATURE_NAME].first*/
/*No:FIXED_ARRAY[FEATURE_NAME].lower*/


void r80make(T80* C,T2 a1){
/*[IF*/
if((a1)==(0)){
C->_upper=-(1);
}
 else if(((C)->_capacity/*4*/)==(0)){
C->_storage=calloc(a1,sizeof(T0*));
C->_capacity=a1;
C->_upper=(a1)-(1);
}
 else if(((C)->_capacity/*4*/)<(a1)){
C->_storage=calloc(a1,sizeof(T0*));
C->_capacity=a1;
C->_upper=(a1)-(1);
}
else{
C->_upper=(a1)-(1);
/*[IRF3.6clear_all*/{T80* C1=C;
T0* __value=NULL;
/*[IRF3.6set_all_with*/{T80* C2=C1;
T0* c1=__value;
r85set_all_with((C2)->_storage/*0*/,c1,(C2)->_upper/*8*/);
}/*]*/
}/*]*/
}
/*FI]*/
}
/*No:FIXED_ARRAY[FEATURE_NAME].upper*/
/*No:FIXED_ARRAY[FEATURE_NAME].clear*/
/*No:FIXED_ARRAY[FEATURE_NAME].capacity*/
/*No:FIXED_ARRAY[FEATURE_NAME].put*/
/*No:FIXED_ARRAY[FEATURE_NAME].storage*/


void r90add_last(T90* C,T0* a1){
T2 _new_capacity=0;
/*[IF*/
if(((C)->_capacity/*4*/)<((r90count(C))+(1))){
/*[IF*/
if(((C)->_capacity/*4*/)==(0)){
C->_capacity=16;
C->_storage=calloc((C)->_capacity/*4*/,sizeof(T0*));
}
else{
_new_capacity=(2)*((C)->_capacity/*4*/);
C->_storage=r91realloc((C)->_storage/*0*/,(C)->_capacity/*4*/,_new_capacity);
C->_capacity=_new_capacity;
}
/*FI]*/
}
/*FI]*/
C->_upper=((C)->_upper/*8*/)+(1);
/*[IRF3.6put*/{T90* C1=C;
T0* b1=a1;
T2 b2=(C)->_upper/*8*/;
((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
}/*]*/
}


T0* r90item(T90* C,T2 a1){
T0* R=NULL;
R=((C)->_storage/*0*/)[(a1)-((C)->_lower/*12*/)];
return R;
}


T2 r90count(T90* C){
T2 R=0;
R=(((C)->_upper/*8*/)-((C)->_lower/*12*/))+(1);
return R;
}
/*No:ARRAY[FEATURE_CLAUSE].lower*/
/*No:ARRAY[FEATURE_CLAUSE].upper*/
/*No:ARRAY[FEATURE_CLAUSE].capacity*/
/*No:ARRAY[FEATURE_CLAUSE].put*/
/*No:ARRAY[FEATURE_CLAUSE].storage*/


T0* r179twin(T179* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T179*)R)=M179;
r179copy(((T179*)R),((T0*)C));
return R;
}
/*No:ARRAY[ARGUMENT_NAME1].clear_all*/


void r179add_last(T179* C,T0* a1){
T2 _new_capacity=0;
/*[IF*/
if(((C)->_capacity/*8*/)<((r179count(C))+(1))){
/*[IF*/
if(((C)->_capacity/*8*/)==(0)){
C->_capacity=16;
C->_storage=calloc((C)->_capacity/*8*/,sizeof(T0*));
}
else{
_new_capacity=(2)*((C)->_capacity/*8*/);
C->_storage=r180realloc((C)->_storage/*4*/,(C)->_capacity/*8*/,_new_capacity);
C->_capacity=_new_capacity;
}
/*FI]*/
}
/*FI]*/
C->_upper=((C)->_upper/*12*/)+(1);
/*[IRF3.6put*/{T179* C1=C;
T0* b1=a1;
T2 b2=(C)->_upper/*12*/;
((C1)->_storage/*4*/)[(b2)-((C1)->_lower/*16*/)]=(b1);
}/*]*/
}
/*No:ARRAY[ARGUMENT_NAME1].set_all_with*/


T0* r179item(T179* C,T2 a1){
T0* R=NULL;
R=((C)->_storage/*4*/)[(a1)-((C)->_lower/*16*/)];
return R;
}


T0* r179first(T179* C){
T0* R=NULL;
R=r179item(C,(C)->_lower/*16*/);
return R;
}


T2 r179count(T179* C){
T2 R=0;
R=(((C)->_upper/*12*/)-((C)->_lower/*16*/))+(1);
return R;
}
/*No:ARRAY[ARGUMENT_NAME1].lower*/


void r179make(T179* C,T2 a1,T2 a2){
T2 _needed=0;
C->_lower=a1;
C->_upper=a2;
_needed=((a2)-(a1))+(1);
/*[IF*/
if((_needed)>(0)){
/*[IF*/
if(((C)->_capacity/*8*/)<(_needed)){
C->_storage=calloc(_needed,sizeof(T0*));
C->_capacity=_needed;
}
else{
/*[IRF3.6clear_all*/{T179* C1=C;
T0* __value=NULL;
/*[IRF3.6set_all_with*/{T179* C2=C1;
T0* c1=__value;
r180set_all_with((C2)->_storage/*4*/,c1,((C2)->_upper/*12*/)-((C2)->_lower/*16*/));
}/*]*/
}/*]*/
}
/*FI]*/
}
/*FI]*/
}
/*No:ARRAY[ARGUMENT_NAME1].upper*/


void r179copy(T179* C,T0* a1){
T2 _needed_capacity=0;
C->_lower=(((T179*)a1))->_lower/*16*/;
C->_upper=(((T179*)a1))->_upper/*12*/;
_needed_capacity=(((C)->_upper/*12*/)-((C)->_lower/*16*/))+(1);
/*[IF*/
if(((C)->_capacity/*8*/)<(_needed_capacity)){
C->_capacity=_needed_capacity;
C->_storage=calloc((C)->_capacity/*8*/,sizeof(T0*));
}
/*FI]*/
/*[IF*/
if((_needed_capacity)>(0)){
r180copy_from((C)->_storage/*4*/,(((T179*)a1))->_storage/*4*/,(_needed_capacity)-(1));
}
/*FI]*/
}
/*No:ARRAY[ARGUMENT_NAME1].capacity*/
/*No:ARRAY[ARGUMENT_NAME1].put*/
/*No:ARRAY[ARGUMENT_NAME1].storage*/


void r190with_capacity(T190* C,T2 a1){
/*[IF*/
if(((C)->_capacity/*8*/)<(a1)){
C->_storage=calloc(a1,sizeof(T0*));
C->_capacity=a1;
}
/*FI]*/
C->_upper=-(1);
}


T0* r190twin(T190* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T190*)R)=M190;
r190copy(((T190*)R),((T0*)C));
return R;
}
/*No:FIXED_ARRAY[INTEGER_CONSTANT].clear_all*/


void r190add_last(T190* C,T0* a1){
T2 _new_capacity=0;
/*[IF*/
if((((C)->_upper/*12*/)+(1))<=(((C)->_capacity/*8*/)-(1))){
C->_upper=((C)->_upper/*12*/)+(1);
}
 else if(((C)->_capacity/*8*/)==(0)){
C->_storage=calloc(2,sizeof(T0*));
C->_capacity=2;
C->_upper=0;
}
else{
_new_capacity=(2)*((C)->_capacity/*8*/);
C->_storage=r191realloc((C)->_storage/*4*/,(C)->_capacity/*8*/,_new_capacity);
C->_capacity=_new_capacity;
C->_upper=((C)->_upper/*12*/)+(1);
}
/*FI]*/
/*[IRF3.5put*/((C)->_storage/*4*/)[(C)->_upper/*12*/]=(a1);
/*]*/
}
/*No:FIXED_ARRAY[INTEGER_CONSTANT].item*/
/*No:FIXED_ARRAY[INTEGER_CONSTANT].set_all_with*/


void r190make(T190* C,T2 a1){
/*[IF*/
if((a1)==(0)){
C->_upper=-(1);
}
 else if(((C)->_capacity/*8*/)==(0)){
C->_storage=calloc(a1,sizeof(T0*));
C->_capacity=a1;
C->_upper=(a1)-(1);
}
 else if(((C)->_capacity/*8*/)<(a1)){
C->_storage=calloc(a1,sizeof(T0*));
C->_capacity=a1;
C->_upper=(a1)-(1);
}
else{
C->_upper=(a1)-(1);
/*[IRF3.6clear_all*/{T190* C1=C;
T0* __value=NULL;
/*[IRF3.6set_all_with*/{T190* C2=C1;
T0* c1=__value;
r191set_all_with((C2)->_storage/*4*/,c1,(C2)->_upper/*12*/);
}/*]*/
}/*]*/
}
/*FI]*/
}
/*No:FIXED_ARRAY[INTEGER_CONSTANT].upper*/


void r190copy(T190* C,T0* a1){
T2 _new_capacity=0;
T2 _other_upper=0;
_other_upper=(((T190*)a1))->_upper/*12*/;
/*[IF*/
if((_other_upper)>=(0)){
_new_capacity=(_other_upper)+(1);
/*[IF*/
if(((C)->_capacity/*8*/)<(_new_capacity)){
C->_capacity=_new_capacity;
C->_storage=calloc(_new_capacity,sizeof(T0*));
}
 else if(((C)->_capacity/*8*/)>(0)){
r191clear_all((C)->_storage/*4*/,((C)->_capacity/*8*/)-(1));
}
/*FI]*/
r191copy_from((C)->_storage/*4*/,(((T190*)a1))->_storage/*4*/,_other_upper);
}
 else if(((C)->_capacity/*8*/)>(0)){
r191clear_all((C)->_storage/*4*/,((C)->_capacity/*8*/)-(1));
}
/*FI]*/
C->_upper=_other_upper;
}
/*No:FIXED_ARRAY[INTEGER_CONSTANT].capacity*/
/*No:FIXED_ARRAY[INTEGER_CONSTANT].storage*/
/*No:FIXED_ARRAY[INTEGER_CONSTANT].put*/

