/*
-- ANSI C code generated by :
-- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82)      --
-- 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"
T0* r199at(T199* C,T0* a1){
T0* R=NULL;
int _foo=0;
_foo=r199has(C,a1);
R=r477item(((T477*)((((T199*)C))->_store/*4*/)),(((T199*)C))->_has_mem/*24*/);
return R;
}
void r199expand(T199* C){
int _old_size=0;
int _i=0;
C->_item_mem=0;
_old_size=r477count(((T477*)((((T199*)C))->_store/*4*/)));
r429resize(((T429*)((((T199*)C))->_chain/*12*/)),1,(2)*(_old_size));
r52resize(((T52*)((((T199*)C))->_keys/*0*/)),1,(2)*(_old_size));
r477resize(((T477*)((((T199*)C))->_store/*4*/)),1,(2)*(_old_size));
_i=(_old_size)+(1);
while (!((_i)==(r429count(((T429*)((((T199*)C))->_chain/*12*/)))))) {
/*[IRF3.6put*/{T429* C1=((T429*)((((T199*)C))->_chain/*12*/));
int b1=(_i)+(1);
int b2=_i;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
_i=(_i)+(1);
}
/*[IRF3.6put*/{T429* C1=((T429*)((((T199*)C))->_chain/*12*/));
int b1=(((T199*)C))->_free/*16*/;
int b2=_i;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
C->_free=(_old_size)+(1);
}
/*No:DICTIONARY[RUN_FEATURE,STRING].free*/
void r199make(T199* C){
C->_modulus=(2)*(32);
{T226*n=malloc(sizeof(*n));
*n=M226;
r226make(n,(((T199*)C))->_modulus/*20*/);
C->_buckets=(T0*)n;
}
{T429*n=malloc(sizeof(*n));
*n=M429;
r429make(n,1,32);
C->_chain=(T0*)n;
}
{T477*n=malloc(sizeof(*n));
*n=M477;
r477make(n,1,32);
C->_store=(T0*)n;
}
{T52*n=malloc(sizeof(*n));
*n=M52;
r52make(n,1,32);
C->_keys=(T0*)n;
}
r199initialize(C);
}
void r199resize(T199* C,int a1){
int _p=0;
int _n=0;
int _i=0;
int _hash=0;
r226copy(((T226*)(oBC672tmp_buckets)),(((T199*)C))->_buckets/*8*/);
r226make(((T226*)((((T199*)C))->_buckets/*8*/)),a1);
_i=0;
while (!((_i)>=((((T199*)C))->_modulus/*20*/))) {
_n=/*(IRF4.6item*/((((T226*)((T226*)(oBC672tmp_buckets))))->_storage/*0*/)[_i]/*)*/;
while (!((_n)==(0))) {
_p=r429item(((T429*)((((T199*)C))->_chain/*12*/)),_n);
_hash=(r7hash_code(((T7*)(r52item(((T52*)((((T199*)C))->_keys/*0*/)),_n)))))%(a1);
/*[IRF3.6put*/{T429* C1=((T429*)((((T199*)C))->_chain/*12*/));
int b1=/*(IRF4.6item*/((((T226*)((T226*)((((T199*)C))->_buckets/*8*/))))->_storage/*0*/)[_hash]/*)*/;
int b2=_n;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
/*[IRF3.5put*/((((T226*)((T226*)((((T199*)C))->_buckets/*8*/))))->_storage/*0*/)[_hash]=(_n);
/*]*/
_n=_p;
}
_i=(_i)+(1);
}
C->_modulus=a1;
C->_item_mem=0;
}
/*No:DICTIONARY[RUN_FEATURE,STRING].item_mem*/
/*No:DICTIONARY[RUN_FEATURE,STRING].chain*/
/*No:DICTIONARY[RUN_FEATURE,STRING].buckets*/
/*No:DICTIONARY[RUN_FEATURE,STRING].keys*/
int r199has(T199* C,T0* a1){
int R=0;
/*IF*/if ((((((T199*)C))->_has_mem/*24*/)==(0))||(!(r7is_equal(((T7*)a1),r52item(((T52*)((((T199*)C))->_keys/*0*/)),(((T199*)C))->_has_mem/*24*/))))) {
C->_has_mem=/*(IRF4.6item*/((((T226*)((T226*)((((T199*)C))->_buckets/*8*/))))->_storage/*0*/)[(r7hash_code(((T7*)a1)))%((((T199*)C))->_modulus/*20*/)]/*)*/;
while (!((((((T199*)C))->_has_mem/*24*/)==(0))||(r7is_equal(((T7*)a1),r52item(((T52*)((((T199*)C))->_keys/*0*/)),(((T199*)C))->_has_mem/*24*/))))) {
C->_has_mem=r429item(((T429*)((((T199*)C))->_chain/*12*/)),(((T199*)C))->_has_mem/*24*/);
}
}
/*FI*/R=((((T199*)C))->_has_mem/*24*/)!=(0);
return R;
}
/*No:DICTIONARY[RUN_FEATURE,STRING].Min_size*/
/*No:DICTIONARY[RUN_FEATURE,STRING].store*/
void r199with_capacity(T199* C,int a1){
int _i=0;
_i=32;
while (!((_i)>=(a1))) {
_i=(2)*(_i);
}
C->_modulus=(2)*(_i);
{T226*n=malloc(sizeof(*n));
*n=M226;
r226make(n,(((T199*)C))->_modulus/*20*/);
C->_buckets=(T0*)n;
}
{T429*n=malloc(sizeof(*n));
*n=M429;
r429make(n,1,_i);
C->_chain=(T0*)n;
}
{T477*n=malloc(sizeof(*n));
*n=M477;
r477make(n,1,_i);
C->_store=(T0*)n;
}
{T52*n=malloc(sizeof(*n));
*n=M52;
r52make(n,1,_i);
C->_keys=(T0*)n;
}
r199initialize(C);
}
void r199put(T199* C,T0* a1,T0* a2){
int _hash=0;
_hash=(r7hash_code(((T7*)a2)))%((((T199*)C))->_modulus/*20*/);
/*IF*/if ((((((T199*)C))->_has_mem/*24*/)==(0))||(!(r7is_equal(((T7*)a2),r52item(((T52*)((((T199*)C))->_keys/*0*/)),(((T199*)C))->_has_mem/*24*/))))) {
C->_has_mem=/*(IRF4.6item*/((((T226*)((T226*)((((T199*)C))->_buckets/*8*/))))->_storage/*0*/)[_hash]/*)*/;
while (!((((((T199*)C))->_has_mem/*24*/)==(0))||(r7is_equal(((T7*)a2),r52item(((T52*)((((T199*)C))->_keys/*0*/)),(((T199*)C))->_has_mem/*24*/))))) {
C->_has_mem=r429item(((T429*)((((T199*)C))->_chain/*12*/)),(((T199*)C))->_has_mem/*24*/);
}
/*IF*/if (((((T199*)C))->_has_mem/*24*/)==(0)) {
/*IF*/if (((((T199*)C))->_count/*32*/)>=(r477count(((T477*)((((T199*)C))->_store/*4*/))))) {
r199expand(C);
}
/*FI*//*[IRF3.6put*/{T52* C1=((T52*)((((T199*)C))->_keys/*0*/));
T0* b1=a2;
int b2=(((T199*)C))->_free/*16*/;
((((T52*)C1))->_storage/*0*/)[(b2)-((((T52*)C1))->_lower/*12*/)]=(b1);
}/*]*/
/*[IRF3.6put*/{T477* C1=((T477*)((((T199*)C))->_store/*4*/));
T0* b1=a1;
int b2=(((T199*)C))->_free/*16*/;
((((T477*)C1))->_storage/*0*/)[(b2)-((((T477*)C1))->_lower/*12*/)]=(b1);
}/*]*/
C->_has_mem=(((T199*)C))->_free/*16*/;
C->_free=r429item(((T429*)((((T199*)C))->_chain/*12*/)),(((T199*)C))->_free/*16*/);
/*[IRF3.6put*/{T429* C1=((T429*)((((T199*)C))->_chain/*12*/));
int b1=/*(IRF4.6item*/((((T226*)((T226*)((((T199*)C))->_buckets/*8*/))))->_storage/*0*/)[_hash]/*)*/;
int b2=(((T199*)C))->_has_mem/*24*/;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
/*[IRF3.5put*/((((T226*)((T226*)((((T199*)C))->_buckets/*8*/))))->_storage/*0*/)[_hash]=((((T199*)C))->_has_mem/*24*/);
/*]*/
C->_count=((((T199*)C))->_count/*32*/)+(1);
/*IF*/if (((((T199*)C))->_count/*32*/)>(((((T199*)C))->_modulus/*20*/)*(2))) {
r199resize(C,(2)*((((T199*)C))->_modulus/*20*/));
}
/*FI*/}
/*FI*/}
else {
/*[IRF3.6put*/{T477* C1=((T477*)((((T199*)C))->_store/*4*/));
T0* b1=a1;
int b2=(((T199*)C))->_has_mem/*24*/;
((((T477*)C1))->_storage/*0*/)[(b2)-((((T477*)C1))->_lower/*12*/)]=(b1);
}/*]*/
}
/*FI*/C->_item_mem=0;
}
/*No:DICTIONARY[RUN_FEATURE,STRING].modulus*/
/*No:DICTIONARY[RUN_FEATURE,STRING].count*/
/*No:DICTIONARY[RUN_FEATURE,STRING].has_mem*/
void r199initialize(T199* C){
int _i=0;
C->_count=0;
C->_free=1;
C->_has_mem=0;
C->_item_mem=0;
_i=1;
while (!((_i)==(r429count(((T429*)((((T199*)C))->_chain/*12*/)))))) {
/*[IRF3.6put*/{T429* C1=((T429*)((((T199*)C))->_chain/*12*/));
int b1=(_i)+(1);
int b2=_i;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
_i=(_i)+(1);
}
/*[IRF3.6put*/{T429* C1=((T429*)((((T199*)C))->_chain/*12*/));
int b1=0;
int b2=_i;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
_i=0;
while (!((_i)>=((((T199*)C))->_modulus/*20*/))) {
/*[IRF3.5put*/((((T226*)((T226*)((((T199*)C))->_buckets/*8*/))))->_storage/*0*/)[_i]=(0);
/*]*/
_i=(_i)+(1);
}
}
T0* r718at(T718* C,T0* a1){
T0* R=NULL;
int _foo=0;
_foo=r718has(C,a1);
R=r863item(((T863*)((((T718*)C))->_store/*4*/)),(((T718*)C))->_has_mem/*24*/);
return R;
}
void r718expand(T718* C){
int _old_size=0;
int _i=0;
C->_item_mem=0;
_old_size=r863count(((T863*)((((T718*)C))->_store/*4*/)));
r429resize(((T429*)((((T718*)C))->_chain/*12*/)),1,(2)*(_old_size));
r52resize(((T52*)((((T718*)C))->_keys/*0*/)),1,(2)*(_old_size));
r863resize(((T863*)((((T718*)C))->_store/*4*/)),1,(2)*(_old_size));
_i=(_old_size)+(1);
while (!((_i)==(r429count(((T429*)((((T718*)C))->_chain/*12*/)))))) {
/*[IRF3.6put*/{T429* C1=((T429*)((((T718*)C))->_chain/*12*/));
int b1=(_i)+(1);
int b2=_i;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
_i=(_i)+(1);
}
/*[IRF3.6put*/{T429* C1=((T429*)((((T718*)C))->_chain/*12*/));
int b1=(((T718*)C))->_free/*16*/;
int b2=_i;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
C->_free=(_old_size)+(1);
}
/*No:DICTIONARY[BASE_CLASS,STRING].free*/
void r718make(T718* C){
C->_modulus=(2)*(32);
{T226*n=malloc(sizeof(*n));
*n=M226;
r226make(n,(((T718*)C))->_modulus/*20*/);
C->_buckets=(T0*)n;
}
{T429*n=malloc(sizeof(*n));
*n=M429;
r429make(n,1,32);
C->_chain=(T0*)n;
}
{T863*n=malloc(sizeof(*n));
*n=M863;
r863make(n,1,32);
C->_store=(T0*)n;
}
{T52*n=malloc(sizeof(*n));
*n=M52;
r52make(n,1,32);
C->_keys=(T0*)n;
}
r718initialize(C);
}
void r718resize(T718* C,int a1){
int _p=0;
int _n=0;
int _i=0;
int _hash=0;
r226copy(((T226*)(oBC672tmp_buckets)),(((T718*)C))->_buckets/*8*/);
r226make(((T226*)((((T718*)C))->_buckets/*8*/)),a1);
_i=0;
while (!((_i)>=((((T718*)C))->_modulus/*20*/))) {
_n=/*(IRF4.6item*/((((T226*)((T226*)(oBC672tmp_buckets))))->_storage/*0*/)[_i]/*)*/;
while (!((_n)==(0))) {
_p=r429item(((T429*)((((T718*)C))->_chain/*12*/)),_n);
_hash=(r7hash_code(((T7*)(r52item(((T52*)((((T718*)C))->_keys/*0*/)),_n)))))%(a1);
/*[IRF3.6put*/{T429* C1=((T429*)((((T718*)C))->_chain/*12*/));
int b1=/*(IRF4.6item*/((((T226*)((T226*)((((T718*)C))->_buckets/*8*/))))->_storage/*0*/)[_hash]/*)*/;
int b2=_n;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
/*[IRF3.5put*/((((T226*)((T226*)((((T718*)C))->_buckets/*8*/))))->_storage/*0*/)[_hash]=(_n);
/*]*/
_n=_p;
}
_i=(_i)+(1);
}
C->_modulus=a1;
C->_item_mem=0;
}
/*No:DICTIONARY[BASE_CLASS,STRING].item_mem*/
/*No:DICTIONARY[BASE_CLASS,STRING].chain*/
/*No:DICTIONARY[BASE_CLASS,STRING].keys*/
/*No:DICTIONARY[BASE_CLASS,STRING].buckets*/
int r718has(T718* C,T0* a1){
int R=0;
/*IF*/if ((((((T718*)C))->_has_mem/*24*/)==(0))||(!(r7is_equal(((T7*)a1),r52item(((T52*)((((T718*)C))->_keys/*0*/)),(((T718*)C))->_has_mem/*24*/))))) {
C->_has_mem=/*(IRF4.6item*/((((T226*)((T226*)((((T718*)C))->_buckets/*8*/))))->_storage/*0*/)[(r7hash_code(((T7*)a1)))%((((T718*)C))->_modulus/*20*/)]/*)*/;
while (!((((((T718*)C))->_has_mem/*24*/)==(0))||(r7is_equal(((T7*)a1),r52item(((T52*)((((T718*)C))->_keys/*0*/)),(((T718*)C))->_has_mem/*24*/))))) {
C->_has_mem=r429item(((T429*)((((T718*)C))->_chain/*12*/)),(((T718*)C))->_has_mem/*24*/);
}
}
/*FI*/R=((((T718*)C))->_has_mem/*24*/)!=(0);
return R;
}
/*No:DICTIONARY[BASE_CLASS,STRING].Min_size*/
/*No:DICTIONARY[BASE_CLASS,STRING].store*/
void r718put(T718* C,T0* a1,T0* a2){
int _hash=0;
_hash=(r7hash_code(((T7*)a2)))%((((T718*)C))->_modulus/*20*/);
/*IF*/if ((((((T718*)C))->_has_mem/*24*/)==(0))||(!(r7is_equal(((T7*)a2),r52item(((T52*)((((T718*)C))->_keys/*0*/)),(((T718*)C))->_has_mem/*24*/))))) {
C->_has_mem=/*(IRF4.6item*/((((T226*)((T226*)((((T718*)C))->_buckets/*8*/))))->_storage/*0*/)[_hash]/*)*/;
while (!((((((T718*)C))->_has_mem/*24*/)==(0))||(r7is_equal(((T7*)a2),r52item(((T52*)((((T718*)C))->_keys/*0*/)),(((T718*)C))->_has_mem/*24*/))))) {
C->_has_mem=r429item(((T429*)((((T718*)C))->_chain/*12*/)),(((T718*)C))->_has_mem/*24*/);
}
/*IF*/if (((((T718*)C))->_has_mem/*24*/)==(0)) {
/*IF*/if (((((T718*)C))->_count/*32*/)>=(r863count(((T863*)((((T718*)C))->_store/*4*/))))) {
r718expand(C);
}
/*FI*//*[IRF3.6put*/{T52* C1=((T52*)((((T718*)C))->_keys/*0*/));
T0* b1=a2;
int b2=(((T718*)C))->_free/*16*/;
((((T52*)C1))->_storage/*0*/)[(b2)-((((T52*)C1))->_lower/*12*/)]=(b1);
}/*]*/
/*[IRF3.6put*/{T863* C1=((T863*)((((T718*)C))->_store/*4*/));
T0* b1=a1;
int b2=(((T718*)C))->_free/*16*/;
((((T863*)C1))->_storage/*0*/)[(b2)-((((T863*)C1))->_lower/*12*/)]=(b1);
}/*]*/
C->_has_mem=(((T718*)C))->_free/*16*/;
C->_free=r429item(((T429*)((((T718*)C))->_chain/*12*/)),(((T718*)C))->_free/*16*/);
/*[IRF3.6put*/{T429* C1=((T429*)((((T718*)C))->_chain/*12*/));
int b1=/*(IRF4.6item*/((((T226*)((T226*)((((T718*)C))->_buckets/*8*/))))->_storage/*0*/)[_hash]/*)*/;
int b2=(((T718*)C))->_has_mem/*24*/;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
/*[IRF3.5put*/((((T226*)((T226*)((((T718*)C))->_buckets/*8*/))))->_storage/*0*/)[_hash]=((((T718*)C))->_has_mem/*24*/);
/*]*/
C->_count=((((T718*)C))->_count/*32*/)+(1);
/*IF*/if (((((T718*)C))->_count/*32*/)>(((((T718*)C))->_modulus/*20*/)*(2))) {
r718resize(C,(2)*((((T718*)C))->_modulus/*20*/));
}
/*FI*/}
/*FI*/}
else {
/*[IRF3.6put*/{T863* C1=((T863*)((((T718*)C))->_store/*4*/));
T0* b1=a1;
int b2=(((T718*)C))->_has_mem/*24*/;
((((T863*)C1))->_storage/*0*/)[(b2)-((((T863*)C1))->_lower/*12*/)]=(b1);
}/*]*/
}
/*FI*/C->_item_mem=0;
}
/*No:DICTIONARY[BASE_CLASS,STRING].modulus*/
/*No:DICTIONARY[BASE_CLASS,STRING].count*/
/*No:DICTIONARY[BASE_CLASS,STRING].has_mem*/
void r718initialize(T718* C){
int _i=0;
C->_count=0;
C->_free=1;
C->_has_mem=0;
C->_item_mem=0;
_i=1;
while (!((_i)==(r429count(((T429*)((((T718*)C))->_chain/*12*/)))))) {
/*[IRF3.6put*/{T429* C1=((T429*)((((T718*)C))->_chain/*12*/));
int b1=(_i)+(1);
int b2=_i;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
_i=(_i)+(1);
}
/*[IRF3.6put*/{T429* C1=((T429*)((((T718*)C))->_chain/*12*/));
int b1=0;
int b2=_i;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
_i=0;
while (!((_i)>=((((T718*)C))->_modulus/*20*/))) {
/*[IRF3.5put*/((((T226*)((T226*)((((T718*)C))->_buckets/*8*/))))->_storage/*0*/)[_i]=(0);
/*]*/
_i=(_i)+(1);
}
}
/*No:MEMO[COMMENT].item*/
/*No:MEMO[COMMENT].clear*/
/*No:MEMO[COMMENT].set_item*/
T0* r250at(T250* C,T0* a1){
T0* R=NULL;
int _foo=0;
_foo=r250has(C,a1);
R=r396item(((T396*)((((T250*)C))->_store/*4*/)),(((T250*)C))->_has_mem/*24*/);
return R;
}
void r250expand(T250* C){
int _old_size=0;
int _i=0;
C->_item_mem=0;
_old_size=r396count(((T396*)((((T250*)C))->_store/*4*/)));
r429resize(((T429*)((((T250*)C))->_chain/*12*/)),1,(2)*(_old_size));
r52resize(((T52*)((((T250*)C))->_keys/*0*/)),1,(2)*(_old_size));
r396resize(((T396*)((((T250*)C))->_store/*4*/)),1,(2)*(_old_size));
_i=(_old_size)+(1);
while (!((_i)==(r429count(((T429*)((((T250*)C))->_chain/*12*/)))))) {
/*[IRF3.6put*/{T429* C1=((T429*)((((T250*)C))->_chain/*12*/));
int b1=(_i)+(1);
int b2=_i;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
_i=(_i)+(1);
}
/*[IRF3.6put*/{T429* C1=((T429*)((((T250*)C))->_chain/*12*/));
int b1=(((T250*)C))->_free/*16*/;
int b2=_i;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
C->_free=(_old_size)+(1);
}
/*No:DICTIONARY[RUN_CLASS,STRING].free*/
void r250make(T250* C){
C->_modulus=(2)*(32);
{T226*n=malloc(sizeof(*n));
*n=M226;
r226make(n,(((T250*)C))->_modulus/*20*/);
C->_buckets=(T0*)n;
}
{T429*n=malloc(sizeof(*n));
*n=M429;
r429make(n,1,32);
C->_chain=(T0*)n;
}
{T396*n=malloc(sizeof(*n));
*n=M396;
r396make(n,1,32);
C->_store=(T0*)n;
}
{T52*n=malloc(sizeof(*n));
*n=M52;
r52make(n,1,32);
C->_keys=(T0*)n;
}
r250initialize(C);
}
T0* r250item(T250* C,int a1){
T0* R=NULL;
/*IF*/if (((((T250*)C))->_item_mem/*28*/)==(0)) {
r250first(C);
while (!((a1)==((((T250*)C))->_item_mem/*28*/))) {
r250forth(C);
}
R=r396item(((T396*)((((T250*)C))->_store/*4*/)),(((T250*)C))->_item_mem_j/*32*/);
}
 else if (((((T250*)C))->_item_mem/*28*/)<=(a1)) {
while (!((a1)==((((T250*)C))->_item_mem/*28*/))) {
r250forth(C);
}
R=r396item(((T396*)((((T250*)C))->_store/*4*/)),(((T250*)C))->_item_mem_j/*32*/);
}
else {
C->_item_mem=0;
R=r250item(C,a1);
}
/*FI*/return R;
}
/*No:DICTIONARY[RUN_CLASS,STRING].item_mem_i*/
void r250resize(T250* C,int a1){
int _p=0;
int _n=0;
int _i=0;
int _hash=0;
r226copy(((T226*)(oBC672tmp_buckets)),(((T250*)C))->_buckets/*8*/);
r226make(((T226*)((((T250*)C))->_buckets/*8*/)),a1);
_i=0;
while (!((_i)>=((((T250*)C))->_modulus/*20*/))) {
_n=/*(IRF4.6item*/((((T226*)((T226*)(oBC672tmp_buckets))))->_storage/*0*/)[_i]/*)*/;
while (!((_n)==(0))) {
_p=r429item(((T429*)((((T250*)C))->_chain/*12*/)),_n);
_hash=(r7hash_code(((T7*)(r52item(((T52*)((((T250*)C))->_keys/*0*/)),_n)))))%(a1);
/*[IRF3.6put*/{T429* C1=((T429*)((((T250*)C))->_chain/*12*/));
int b1=/*(IRF4.6item*/((((T226*)((T226*)((((T250*)C))->_buckets/*8*/))))->_storage/*0*/)[_hash]/*)*/;
int b2=_n;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
/*[IRF3.5put*/((((T226*)((T226*)((((T250*)C))->_buckets/*8*/))))->_storage/*0*/)[_hash]=(_n);
/*]*/
_n=_p;
}
_i=(_i)+(1);
}
C->_modulus=a1;
C->_item_mem=0;
}
/*No:DICTIONARY[RUN_CLASS,STRING].item_mem_j*/
/*No:DICTIONARY[RUN_CLASS,STRING].item_mem*/
/*No:DICTIONARY[RUN_CLASS,STRING].chain*/
/*No:DICTIONARY[RUN_CLASS,STRING].keys*/
/*No:DICTIONARY[RUN_CLASS,STRING].buckets*/
int r250has(T250* C,T0* a1){
int R=0;
/*IF*/if ((((((T250*)C))->_has_mem/*24*/)==(0))||(!(r7is_equal(((T7*)a1),r52item(((T52*)((((T250*)C))->_keys/*0*/)),(((T250*)C))->_has_mem/*24*/))))) {
C->_has_mem=/*(IRF4.6item*/((((T226*)((T226*)((((T250*)C))->_buckets/*8*/))))->_storage/*0*/)[(r7hash_code(((T7*)a1)))%((((T250*)C))->_modulus/*20*/)]/*)*/;
while (!((((((T250*)C))->_has_mem/*24*/)==(0))||(r7is_equal(((T7*)a1),r52item(((T52*)((((T250*)C))->_keys/*0*/)),(((T250*)C))->_has_mem/*24*/))))) {
C->_has_mem=r429item(((T429*)((((T250*)C))->_chain/*12*/)),(((T250*)C))->_has_mem/*24*/);
}
}
/*FI*/R=((((T250*)C))->_has_mem/*24*/)!=(0);
return R;
}
/*No:DICTIONARY[RUN_CLASS,STRING].Min_size*/
void r250forth(T250* C){
int _i=0;
/*IF*/if ((r429item(((T429*)((((T250*)C))->_chain/*12*/)),(((T250*)C))->_item_mem_j/*32*/))!=(0)) {
C->_item_mem_j=r429item(((T429*)((((T250*)C))->_chain/*12*/)),(((T250*)C))->_item_mem_j/*32*/);
}
else {
_i=((((T250*)C))->_item_mem_i/*36*/)+(1);
while (!((/*(IRF4.6item*/((((T226*)((T226*)((((T250*)C))->_buckets/*8*/))))->_storage/*0*/)[_i]/*)*/)!=(0))) {
_i=(_i)+(1);
}
C->_item_mem_i=_i;
C->_item_mem_j=/*(IRF4.6item*/((((T226*)((T226*)((((T250*)C))->_buckets/*8*/))))->_storage/*0*/)[_i]/*)*/;
}
/*FI*/C->_item_mem=((((T250*)C))->_item_mem/*28*/)+(1);
}
/*No:DICTIONARY[RUN_CLASS,STRING].store*/
void r250put(T250* C,T0* a1,T0* a2){
int _hash=0;
_hash=(r7hash_code(((T7*)a2)))%((((T250*)C))->_modulus/*20*/);
/*IF*/if ((((((T250*)C))->_has_mem/*24*/)==(0))||(!(r7is_equal(((T7*)a2),r52item(((T52*)((((T250*)C))->_keys/*0*/)),(((T250*)C))->_has_mem/*24*/))))) {
C->_has_mem=/*(IRF4.6item*/((((T226*)((T226*)((((T250*)C))->_buckets/*8*/))))->_storage/*0*/)[_hash]/*)*/;
while (!((((((T250*)C))->_has_mem/*24*/)==(0))||(r7is_equal(((T7*)a2),r52item(((T52*)((((T250*)C))->_keys/*0*/)),(((T250*)C))->_has_mem/*24*/))))) {
C->_has_mem=r429item(((T429*)((((T250*)C))->_chain/*12*/)),(((T250*)C))->_has_mem/*24*/);
}
/*IF*/if (((((T250*)C))->_has_mem/*24*/)==(0)) {
/*IF*/if (((((T250*)C))->_count/*40*/)>=(r396count(((T396*)((((T250*)C))->_store/*4*/))))) {
r250expand(C);
}
/*FI*//*[IRF3.6put*/{T52* C1=((T52*)((((T250*)C))->_keys/*0*/));
T0* b1=a2;
int b2=(((T250*)C))->_free/*16*/;
((((T52*)C1))->_storage/*0*/)[(b2)-((((T52*)C1))->_lower/*12*/)]=(b1);
}/*]*/
/*[IRF3.6put*/{T396* C1=((T396*)((((T250*)C))->_store/*4*/));
T0* b1=a1;
int b2=(((T250*)C))->_free/*16*/;
((((T396*)C1))->_storage/*0*/)[(b2)-((((T396*)C1))->_lower/*12*/)]=(b1);
}/*]*/
C->_has_mem=(((T250*)C))->_free/*16*/;
C->_free=r429item(((T429*)((((T250*)C))->_chain/*12*/)),(((T250*)C))->_free/*16*/);
/*[IRF3.6put*/{T429* C1=((T429*)((((T250*)C))->_chain/*12*/));
int b1=/*(IRF4.6item*/((((T226*)((T226*)((((T250*)C))->_buckets/*8*/))))->_storage/*0*/)[_hash]/*)*/;
int b2=(((T250*)C))->_has_mem/*24*/;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
/*[IRF3.5put*/((((T226*)((T226*)((((T250*)C))->_buckets/*8*/))))->_storage/*0*/)[_hash]=((((T250*)C))->_has_mem/*24*/);
/*]*/
C->_count=((((T250*)C))->_count/*40*/)+(1);
/*IF*/if (((((T250*)C))->_count/*40*/)>(((((T250*)C))->_modulus/*20*/)*(2))) {
r250resize(C,(2)*((((T250*)C))->_modulus/*20*/));
}
/*FI*/}
/*FI*/}
else {
/*[IRF3.6put*/{T396* C1=((T396*)((((T250*)C))->_store/*4*/));
T0* b1=a1;
int b2=(((T250*)C))->_has_mem/*24*/;
((((T396*)C1))->_storage/*0*/)[(b2)-((((T396*)C1))->_lower/*12*/)]=(b1);
}/*]*/
}
/*FI*/C->_item_mem=0;
}
/*No:DICTIONARY[RUN_CLASS,STRING].modulus*/
/*No:DICTIONARY[RUN_CLASS,STRING].count*/
/*No:DICTIONARY[RUN_CLASS,STRING].has_mem*/
void r250first(T250* C){
int _i=0;
_i=0;
while (!((/*(IRF4.6item*/((((T226*)((T226*)((((T250*)C))->_buckets/*8*/))))->_storage/*0*/)[_i]/*)*/)!=(0))) {
_i=(_i)+(1);
}
C->_item_mem_i=_i;
C->_item_mem_j=/*(IRF4.6item*/((((T226*)((T226*)((((T250*)C))->_buckets/*8*/))))->_storage/*0*/)[_i]/*)*/;
C->_item_mem=1;
}
void r250initialize(T250* C){
int _i=0;
C->_count=0;
C->_free=1;
C->_has_mem=0;
C->_item_mem=0;
_i=1;
while (!((_i)==(r429count(((T429*)((((T250*)C))->_chain/*12*/)))))) {
/*[IRF3.6put*/{T429* C1=((T429*)((((T250*)C))->_chain/*12*/));
int b1=(_i)+(1);
int b2=_i;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
_i=(_i)+(1);
}
/*[IRF3.6put*/{T429* C1=((T429*)((((T250*)C))->_chain/*12*/));
int b1=0;
int b2=_i;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
_i=0;
while (!((_i)>=((((T250*)C))->_modulus/*20*/))) {
/*[IRF3.5put*/((((T226*)((T226*)((((T250*)C))->_buckets/*8*/))))->_storage/*0*/)[_i]=(0);
/*]*/
_i=(_i)+(1);
}
}
T0* r237at(T237* C,T0* a1){
T0* R=NULL;
int _foo=0;
_foo=r237has(C,a1);
R=r495item(((T495*)((((T237*)C))->_store/*4*/)),(((T237*)C))->_has_mem/*24*/);
return R;
}
void r237expand(T237* C){
int _old_size=0;
int _i=0;
C->_item_mem=0;
_old_size=r495count(((T495*)((((T237*)C))->_store/*4*/)));
r429resize(((T429*)((((T237*)C))->_chain/*12*/)),1,(2)*(_old_size));
r52resize(((T52*)((((T237*)C))->_keys/*0*/)),1,(2)*(_old_size));
r495resize(((T495*)((((T237*)C))->_store/*4*/)),1,(2)*(_old_size));
_i=(_old_size)+(1);
while (!((_i)==(r429count(((T429*)((((T237*)C))->_chain/*12*/)))))) {
/*[IRF3.6put*/{T429* C1=((T429*)((((T237*)C))->_chain/*12*/));
int b1=(_i)+(1);
int b2=_i;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
_i=(_i)+(1);
}
/*[IRF3.6put*/{T429* C1=((T429*)((((T237*)C))->_chain/*12*/));
int b1=(((T237*)C))->_free/*16*/;
int b2=_i;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
C->_free=(_old_size)+(1);
}
/*No:DICTIONARY[E_FEATURE,STRING].free*/
void r237resize(T237* C,int a1){
int _p=0;
int _n=0;
int _i=0;
int _hash=0;
r226copy(((T226*)(oBC672tmp_buckets)),(((T237*)C))->_buckets/*8*/);
r226make(((T226*)((((T237*)C))->_buckets/*8*/)),a1);
_i=0;
while (!((_i)>=((((T237*)C))->_modulus/*20*/))) {
_n=/*(IRF4.6item*/((((T226*)((T226*)(oBC672tmp_buckets))))->_storage/*0*/)[_i]/*)*/;
while (!((_n)==(0))) {
_p=r429item(((T429*)((((T237*)C))->_chain/*12*/)),_n);
_hash=(r7hash_code(((T7*)(r52item(((T52*)((((T237*)C))->_keys/*0*/)),_n)))))%(a1);
/*[IRF3.6put*/{T429* C1=((T429*)((((T237*)C))->_chain/*12*/));
int b1=/*(IRF4.6item*/((((T226*)((T226*)((((T237*)C))->_buckets/*8*/))))->_storage/*0*/)[_hash]/*)*/;
int b2=_n;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
/*[IRF3.5put*/((((T226*)((T226*)((((T237*)C))->_buckets/*8*/))))->_storage/*0*/)[_hash]=(_n);
/*]*/
_n=_p;
}
_i=(_i)+(1);
}
C->_modulus=a1;
C->_item_mem=0;
}
/*No:DICTIONARY[E_FEATURE,STRING].item_mem*/
/*No:DICTIONARY[E_FEATURE,STRING].chain*/
/*No:DICTIONARY[E_FEATURE,STRING].buckets*/
/*No:DICTIONARY[E_FEATURE,STRING].keys*/
int r237has(T237* C,T0* a1){
int R=0;
/*IF*/if ((((((T237*)C))->_has_mem/*24*/)==(0))||(!(r7is_equal(((T7*)a1),r52item(((T52*)((((T237*)C))->_keys/*0*/)),(((T237*)C))->_has_mem/*24*/))))) {
C->_has_mem=/*(IRF4.6item*/((((T226*)((T226*)((((T237*)C))->_buckets/*8*/))))->_storage/*0*/)[(r7hash_code(((T7*)a1)))%((((T237*)C))->_modulus/*20*/)]/*)*/;
while (!((((((T237*)C))->_has_mem/*24*/)==(0))||(r7is_equal(((T7*)a1),r52item(((T52*)((((T237*)C))->_keys/*0*/)),(((T237*)C))->_has_mem/*24*/))))) {
C->_has_mem=r429item(((T429*)((((T237*)C))->_chain/*12*/)),(((T237*)C))->_has_mem/*24*/);
}
}
/*FI*/R=((((T237*)C))->_has_mem/*24*/)!=(0);
return R;
}
/*No:DICTIONARY[E_FEATURE,STRING].Min_size*/
/*No:DICTIONARY[E_FEATURE,STRING].store*/
void r237with_capacity(T237* C,int a1){
int _i=0;
_i=32;
while (!((_i)>=(a1))) {
_i=(2)*(_i);
}
C->_modulus=(2)*(_i);
{T226*n=malloc(sizeof(*n));
*n=M226;
r226make(n,(((T237*)C))->_modulus/*20*/);
C->_buckets=(T0*)n;
}
{T429*n=malloc(sizeof(*n));
*n=M429;
r429make(n,1,_i);
C->_chain=(T0*)n;
}
{T495*n=malloc(sizeof(*n));
*n=M495;
r495make(n,1,_i);
C->_store=(T0*)n;
}
{T52*n=malloc(sizeof(*n));
*n=M52;
r52make(n,1,_i);
C->_keys=(T0*)n;
}
r237initialize(C);
}
void r237put(T237* C,T0* a1,T0* a2){
int _hash=0;
_hash=(r7hash_code(((T7*)a2)))%((((T237*)C))->_modulus/*20*/);
/*IF*/if ((((((T237*)C))->_has_mem/*24*/)==(0))||(!(r7is_equal(((T7*)a2),r52item(((T52*)((((T237*)C))->_keys/*0*/)),(((T237*)C))->_has_mem/*24*/))))) {
C->_has_mem=/*(IRF4.6item*/((((T226*)((T226*)((((T237*)C))->_buckets/*8*/))))->_storage/*0*/)[_hash]/*)*/;
while (!((((((T237*)C))->_has_mem/*24*/)==(0))||(r7is_equal(((T7*)a2),r52item(((T52*)((((T237*)C))->_keys/*0*/)),(((T237*)C))->_has_mem/*24*/))))) {
C->_has_mem=r429item(((T429*)((((T237*)C))->_chain/*12*/)),(((T237*)C))->_has_mem/*24*/);
}
/*IF*/if (((((T237*)C))->_has_mem/*24*/)==(0)) {
/*IF*/if (((((T237*)C))->_count/*32*/)>=(r495count(((T495*)((((T237*)C))->_store/*4*/))))) {
r237expand(C);
}
/*FI*//*[IRF3.6put*/{T52* C1=((T52*)((((T237*)C))->_keys/*0*/));
T0* b1=a2;
int b2=(((T237*)C))->_free/*16*/;
((((T52*)C1))->_storage/*0*/)[(b2)-((((T52*)C1))->_lower/*12*/)]=(b1);
}/*]*/
/*[IRF3.6put*/{T495* C1=((T495*)((((T237*)C))->_store/*4*/));
T0* b1=a1;
int b2=(((T237*)C))->_free/*16*/;
((((T495*)C1))->_storage/*0*/)[(b2)-((((T495*)C1))->_lower/*12*/)]=(b1);
}/*]*/
C->_has_mem=(((T237*)C))->_free/*16*/;
C->_free=r429item(((T429*)((((T237*)C))->_chain/*12*/)),(((T237*)C))->_free/*16*/);
/*[IRF3.6put*/{T429* C1=((T429*)((((T237*)C))->_chain/*12*/));
int b1=/*(IRF4.6item*/((((T226*)((T226*)((((T237*)C))->_buckets/*8*/))))->_storage/*0*/)[_hash]/*)*/;
int b2=(((T237*)C))->_has_mem/*24*/;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
/*[IRF3.5put*/((((T226*)((T226*)((((T237*)C))->_buckets/*8*/))))->_storage/*0*/)[_hash]=((((T237*)C))->_has_mem/*24*/);
/*]*/
C->_count=((((T237*)C))->_count/*32*/)+(1);
/*IF*/if (((((T237*)C))->_count/*32*/)>(((((T237*)C))->_modulus/*20*/)*(2))) {
r237resize(C,(2)*((((T237*)C))->_modulus/*20*/));
}
/*FI*/}
/*FI*/}
else {
/*[IRF3.6put*/{T495* C1=((T495*)((((T237*)C))->_store/*4*/));
T0* b1=a1;
int b2=(((T237*)C))->_has_mem/*24*/;
((((T495*)C1))->_storage/*0*/)[(b2)-((((T495*)C1))->_lower/*12*/)]=(b1);
}/*]*/
}
/*FI*/C->_item_mem=0;
}
/*No:DICTIONARY[E_FEATURE,STRING].modulus*/
/*No:DICTIONARY[E_FEATURE,STRING].count*/
/*No:DICTIONARY[E_FEATURE,STRING].has_mem*/
void r237initialize(T237* C){
int _i=0;
C->_count=0;
C->_free=1;
C->_has_mem=0;
C->_item_mem=0;
_i=1;
while (!((_i)==(r429count(((T429*)((((T237*)C))->_chain/*12*/)))))) {
/*[IRF3.6put*/{T429* C1=((T429*)((((T237*)C))->_chain/*12*/));
int b1=(_i)+(1);
int b2=_i;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
_i=(_i)+(1);
}
/*[IRF3.6put*/{T429* C1=((T429*)((((T237*)C))->_chain/*12*/));
int b1=0;
int b2=_i;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
_i=0;
while (!((_i)>=((((T237*)C))->_modulus/*20*/))) {
/*[IRF3.5put*/((((T226*)((T226*)((((T237*)C))->_buckets/*8*/))))->_storage/*0*/)[_i]=(0);
/*]*/
_i=(_i)+(1);
}
}
T0*oBC364eh=NULL;
void r376check_creation_clause(T376* C,T0* a1){
/*IF*/if (/*(IRF4.7has_creation_clause*/((((T605*)((T605*)(X291base_class(a1)))))->_creation_clause_list/*44*/)!=(NULL)/*)*/) {
/*[IRF3.6append*/{T0* b1=((T0*)ms1_334);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683add_type(a1,((T0*)ms2_334));
r376error((((T376*)C))->_start_position/*8*/,((T0*)ms3_334));
}
/*FI*/}
T0* r376add_comment(T376* C,T0* a1){
T0* R=NULL;
/*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
R=(T0*)C;
}
/*AF*/else {
{T59*n=malloc(sizeof(*n));
*n=M59;
r59make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI*/return R;
}
void r376check_created_type(T376* C,T0* a1){
T0* _rt=NULL;
_rt=X291run_type(a1);
/*IF*/if ((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/) {
}
 else if ((((T605*)((T605*)(X291base_class(_rt)))))->_is_deferred/*16*/) {
r683add_type(_rt,((T0*)ms2_747));
r683add_position((((T376*)C))->_start_position/*8*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms3_747);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*//*IF*/if (X291is_formal_generic(a1)) {
r683add_position((((T376*)C))->_start_position/*8*/);
/*[IRF3.6append*/{T0* b1=((T0*)ms4_747);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683add_type(a1,((T0*)ms5_747));
r683print_as_fatal_error(((T683*)(oBC364eh)));
}
/*FI*/r368set_at_run_time(((T368*)(X291run_class(_rt))));
}
/*No:CREATION_CALL_2.writable*/
void r376make(T376* C,T0* a1,T0* a2,T0* a3){
C->_start_position=a1;
C->_type=a2;
C->_writable=a3;
}
/*No:CREATION_CALL_2.type*/
/*No:CREATION_CALL_2.start_position*/
T0* r376to_runnable(T376* C,T0* a1){
T0* R=NULL;
/*IF*/if (((((T376*)C))->_run_compound/*4*/)==((void*)(NULL))) {
r376check_writable(C,a1);
r376check_explicit_type(C);
r376check_created_type(C,(((T376*)C))->_type/*16*/);
r376check_creation_clause(C,(((T376*)C))->_type/*16*/);
R=(T0*)C;
}
else {
{T376*n=malloc(sizeof(*n));
*n=M376;
r376make(n,(((T376*)C))->_start_position/*8*/,(((T376*)C))->_type/*16*/,(((T376*)C))->_writable/*12*/);
R=(T0*)n;
}
R=r376to_runnable(((T376*)R),a1);
}
/*FI*/return R;
}
T0* r376current_type(T376* C){
T0* R=NULL;
/*IF*/if (((((T376*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
R=(((T592*)((T592*)((((T376*)C))->_run_compound/*4*/))))->_current_type/*4*/;
}
/*FI*/return R;
}
T0*oBC364small_eiffel=NULL;
/*No:CREATION_CALL_2.run_compound*/
void r376check_explicit_type(T376* C){
T0* _t=NULL;
_t=X291to_runnable((((T376*)C))->_type/*16*/,r376current_type(C));
/*IF*/if (((_t)==((void*)(NULL)))||(!(X291is_run_type(_t)))) {
r683add_position(X291start_position((((T376*)C))->_type/*16*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_432);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
else {
C->_type=_t;
}
/*FI*//*IF*/if (!(X291is_a((((T376*)C))->_type/*16*/,X662result_type((((T376*)C))->_writable/*12*/)))) {
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_432);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/}
void r376check_writable(T376* C,T0* a1){
T0* _w=NULL;
C->_run_compound=a1;
_w=X662to_runnable((((T376*)C))->_writable/*12*/,r376current_type(C));
/*IF*/if ((_w)==((void*)(NULL))) {
r683add_position(X662start_position((((T376*)C))->_writable/*12*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_747);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
else {
C->_writable=_w;
}
/*FI*/}
void r376error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:CREATION_CALL_2.fatal_error*/
/*No:CREATION_CALL_2.end_mark_comment*/
void r343short(T343* C,T0* a1,T0* a2){
int _i=0;
r580hook_or(((T580*)(oBC364short_print)),a1,a2);
/*IF*/if (((((T343*)C))->_header_comment/*4*/)==((void*)(NULL))) {
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms3_343),((T0*)ms4_343));
}
else {
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms5_343),((T0*)ms6_343));
r393short(((T393*)((((T343*)C))->_header_comment/*4*/)),((T0*)ms7_343),((T0*)ms8_343),((T0*)ms9_343),((T0*)ms10_343));
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms11_343),((T0*)ms12_343));
}
/*FI*//*IF*/if (((((T343*)C))->_list/*8*/)==((void*)(NULL))) {
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms13_343),((T0*)ms14_343));
}
else {
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms15_343),((T0*)ms16_343));
_i=1;
while (!((_i)==((((T608*)((T608*)((((T343*)C))->_list/*8*/))))->_upper/*8*/))) {
r348short(((T348*)(r608item(((T608*)((((T343*)C))->_list/*8*/)),_i))),((T0*)ms17_343),((T0*)ms18_343),((T0*)ms19_343),((T0*)ms20_343),((T0*)ms21_343),((T0*)ms22_343),((T0*)ms23_343),((T0*)ms24_343),((T0*)ms25_343),((T0*)ms26_343),((T0*)ms27_343),((T0*)ms28_343),((T0*)ms29_343),((T0*)ms30_343),((T0*)ms31_343),((T0*)ms32_343),((T0*)ms33_343),((T0*)ms34_343),((T0*)ms35_343),((T0*)ms36_343),((T0*)ms37_343),((T0*)ms38_343),((T0*)ms39_343),((T0*)ms40_343),((T0*)ms41_343),((T0*)ms42_343));
_i=(_i)+(1);
}
r348short(((T348*)(r608item(((T608*)((((T343*)C))->_list/*8*/)),_i))),((T0*)ms43_343),((T0*)ms44_343),((T0*)ms45_343),((T0*)ms46_343),((T0*)ms47_343),((T0*)ms48_343),((T0*)ms49_343),((T0*)ms50_343),((T0*)ms51_343),((T0*)ms52_343),((T0*)ms53_343),((T0*)ms54_343),((T0*)ms55_343),((T0*)ms56_343),((T0*)ms57_343),((T0*)ms58_343),((T0*)ms59_343),((T0*)ms60_343),((T0*)ms61_343),((T0*)ms62_343),((T0*)ms63_343),((T0*)ms64_343),((T0*)ms65_343),((T0*)ms66_343),((T0*)ms67_343),((T0*)ms68_343));
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms69_343),((T0*)ms70_343));
}
/*FI*/r580hook_or(((T580*)(oBC364short_print)),((T0*)ms71_343),((T0*)ms72_343));
}
/*No:E_REQUIRE.is_require_else*/
/*No:E_REQUIRE.empty*/
void r343from_runnable(T343* C,T0* a1){
C->_list=a1;
C->_current_type=(((T348*)((T348*)(r608item(((T608*)((((T343*)C))->_list/*8*/)),1)))))->_current_type/*12*/;
}
T0*oBC364short_print=NULL;
void r343make(T343* C,T0* a1,T0* a2,T0* a3){
C->_start_position=a1;
C->_header_comment=a2;
C->_list=a3;
}
/*No:E_REQUIRE.set_header_comment*/
/*No:E_REQUIRE.start_position*/
/*No:E_REQUIRE.list*/
/*No:E_REQUIRE.current_type*/
/*No:E_REQUIRE.header_comment*/
/*No:E_REQUIRE.set_require_else*/
/*No:INFIX_NAME.short*/
T0*oBC364unique_string=NULL;
/*No:INFIX_NAME.set_is_frozen*/
void r454make(T454* C,T0* a1,T0* a2){
C->_to_string=r902item(a1);
C->_start_position=a2;
C->_to_key=r902for_infix((((T454*)C))->_to_string/*4*/);
}
/*No:INFIX_NAME.to_string*/
/*No:INFIX_NAME.start_position*/
/*No:INFIX_NAME.to_key*/
/*No:INFIX_NAME.is_frozen*/
void r454undefine_in(T454* C,T0* a1){
/*IF*/if ((((T454*)C))->_is_frozen/*12*/) {
r454error((((T454*)C))->_start_position/*8*/,((T0*)ms1_776));
r605fatal_undefine(((T605*)a1),(T0*)C);
}
/*FI*/}
void r454error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
T0* r454origin_base_class(T454* C){
T0* R=NULL;
T0* _sp=NULL;
_sp=(((T454*)C))->_start_position/*8*/;
/*IF*/if ((_sp)!=((void*)(NULL))) {
R=r627base_class(((T627*)_sp));
}
/*FI*/return R;
}
/*No:ONCE_PROCEDURE.arguments*/
T0* r134try_to_undefine(T134* C,T0* a1,T0* a2){
T0* R=NULL;
X776undefine_in(a1,a2);
R=r134try_to_undefine_aux(C,a1,a2);
/*IF*/if ((R)!=((void*)(NULL))) {
/*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T134*)C))->_clients/*24*/);
/*]*/
}
else {
r605fatal_undefine(((T605*)a2),a1);
}
/*FI*/return R;
}
T0*oBC359assertion_collector=NULL;
/*No:ONCE_PROCEDURE.is_deferred*/
/*No:ONCE_PROCEDURE.fz_bad_assertion*/
T0* r134runnable(T0* a1,T0* a2,T0* a3){
T0* R=NULL;
T0* _a=NULL;
int _i=0;
/*IF*/if (!(r608empty(((T608*)a1)))) {
R=r608twin(((T608*)a1));
_i=(((T608*)((T608*)R)))->_upper/*8*/;
while (!((_i)==(0))) {
r604push(((T604*)(oBC364small_eiffel)),a3);
_a=r348to_runnable(((T348*)(r608item(((T608*)R),_i))),a2);
/*IF*/if ((_a)==((void*)(NULL))) {
r134error(r348start_position(((T348*)(r608item(((T608*)R),_i)))),((T0*)ms57_470));
}
else {
/*[IRF3.6put*/{T608* C1=((T608*)R);
T0* b1=_a;
int b2=_i;
((((T608*)C1))->_storage/*0*/)[(b2)-((((T608*)C1))->_lower/*12*/)]=(b1);
}/*]*/
}
/*FI*/r604pop(((T604*)(oBC364small_eiffel)));
_i=(_i)-(1);
}
}
/*FI*/return R;
}
/*No:ONCE_PROCEDURE.rescue_compound*/
void r134add_into(T134* C,T0* a1){
T0* _fn=NULL;
int _i=0;
C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T134*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
_i=1;
while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T134*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
_fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T134*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
/*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
_fn=/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)(r237at(((T237*)a1),X776to_key(_fn))))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
r683add_position(X776start_position(_fn));
r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T134*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
/*[IRF3.6append*/{T0* b1=X776to_string(_fn);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
}
else {
r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
}
/*FI*/_i=(_i)+(1);
}
}
/*No:ONCE_PROCEDURE.end_comment*/
T0*oBC359header_comment_memory=NULL;
T0* r134try_to_undefine_aux(T134* C,T0* a1,T0* a2){
T0* R=NULL;
{T853*n=malloc(sizeof(*n));
*n=M853;
r853from_effective(n,a1,(((T134*)C))->_arguments/*28*/,(((T134*)C))->_require_assertion/*36*/,(((T134*)C))->_ensure_assertion/*40*/,a2);
R=(T0*)n;
}
return R;
}
void r134make(T134* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7){
r134make_routine(C,a1,a2,a3,a4,a5);
C->_local_vars=a6;
C->_routine_body=a7;
C->_use_current_state=1011;
}
/*No:ONCE_PROCEDURE.not_computed*/
/*No:ONCE_PROCEDURE.nb_errors*/
void r134make_routine(T134* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
r134make_e_feature(C,a1,NULL);
C->_header_comment=a4;
C->_arguments=a2;
C->_obsolete_mark=a3;
C->_require_assertion=a5;
}
/*No:ONCE_PROCEDURE.local_vars*/
void r134set_header_comment(T134* C,T0* a1){
/*IF*/if (((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)>(1))) {
C->_end_comment=a1;
}
/*FI*/}
T0* r134start_position(T134* C){
T0* R=NULL;
R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T134*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
return R;
}
T0* r134to_run_feature(T134* C,T0* a1,T0* a2){
T0* R=NULL;
r134check_obsolete(C);
{T869*n=malloc(sizeof(*n));
*n=M869;
r869make(n,a1,a2,(T0*)C);
R=(T0*)n;
}
return R;
}
/*No:ONCE_PROCEDURE.ensure_assertion*/
/*No:ONCE_PROCEDURE.code_require*/
T0* r134run_ensure(T0* a1){
T0* R=NULL;
T0* _r=NULL;
r608clear(((T608*)(oBC359assertion_collector)));
/*[IRF3.3clear*/{T0* _default_item=NULL;
((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
}/*]*/
r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/)))),1002,/*X496*/((T0*)(((T808*)((T808*)a1)))->_name/*16*/));
_r=r134runnable(oBC359assertion_collector,/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/),a1);
/*IF*/if ((_r)!=((void*)(NULL))) {
{T633*n=malloc(sizeof(*n));
*n=M633;
r633from_runnable(n,_r);
R=(T0*)n;
}
/*[IRF3.3set_header_comment*/((((T633*)(((T633*)R))))->_header_comment)=((((T56*)((T56*)(oBC359header_comment_memory))))->_item/*0*/);
/*]*/
/*[IRF3.3clear*/{T0* _default_item=NULL;
((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
}/*]*/
}
/*FI*/return R;
}
T0* r134run_require(T0* a1){
T0* R=NULL;
T0* _ar=NULL;
T0* _hc=NULL;
T0* _er=NULL;
T0* _r=NULL;
int _i=0;
r522clear(((T522*)(oBC359require_collector)));
r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/)))),1001,/*X496*/((T0*)(((T808*)((T808*)a1)))->_name/*16*/));
/*IF*/if (!(r522empty(((T522*)(oBC359require_collector))))) {
_i=1;
while (!((_i)>((((T522*)((T522*)(oBC359require_collector))))->_upper/*8*/))) {
_er=r522item(((T522*)(oBC359require_collector)),_i);
_hc=(((T343*)((T343*)_er)))->_header_comment/*4*/;
/*IF*/if (!(/*(IRF4.7empty*/((((T343*)((T343*)_er)))->_list/*8*/)==(NULL)/*)*/)) {
_r=r134runnable((((T343*)((T343*)_er)))->_list/*8*/,/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/),a1);
/*IF*/if ((_r)!=((void*)(NULL))) {
{T343*n=malloc(sizeof(*n));
*n=M343;
r343from_runnable(n,_r);
_er=(T0*)n;
}
/*[IRF3.3set_header_comment*/((((T343*)(((T343*)_er))))->_header_comment)=(_hc);
/*]*/
/*IF*/if ((_ar)==((void*)(NULL))) {
_ar=se_ma522(1,_er);
}
else {
r522add_last(((T522*)_ar),_er);
}
/*FI*/}
/*FI*/}
/*FI*/_i=(_i)+(1);
}
/*IF*/if ((_ar)!=((void*)(NULL))) {
{T541*n=malloc(sizeof(*n));
*n=M541;
/*[IRF3.3make*/((((T541*)(n)))->_list)=(_ar);
/*]*/
R=(T0*)n;
}
}
/*FI*/}
/*FI*/return R;
}
/*No:ONCE_PROCEDURE.result_type*/
/*No:ONCE_PROCEDURE.fz_03*/
/*No:ONCE_PROCEDURE.em1*/
/*No:ONCE_PROCEDURE.obsolete_mark*/
/*No:ONCE_PROCEDURE.set_clients*/
/*No:ONCE_PROCEDURE.em2*/
/*No:ONCE_PROCEDURE.names*/
/*No:ONCE_PROCEDURE.require_assertion*/
/*No:ONCE_PROCEDURE.use_current_state*/
/*No:ONCE_PROCEDURE.code_ensure*/
void r134set_rescue_compound(T134* C,T0* a1){
/*IF*/if (((a1)!=((void*)(NULL)))&&(/*(IRF4.1is_deferred*/0/*)*/)) {
r134error(r134start_position(C),((T0*)ms6_355));
}
/*FI*/C->_rescue_compound=a1;
}
int r134can_hide(T134* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T134*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T134*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r134error(r134start_position(C),((T0*)ms5_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T134*)C))->_arguments/*28*/)!=((void*)(X359arguments(a1)))) {
/*IF*/if ((((((T134*)C))->_arguments/*28*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r134error(r134start_position(C),((T0*)ms6_359));
}
 else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T134*)C))->_arguments/*28*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
r683add_position(X359start_position(a1));
r134error(r134start_position(C),((T0*)ms7_359));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*/if (((((T134*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T134*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
/*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X291run_time_mark((((T368*)((T368*)a2)))->_current_type/*0*/);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
}
/*FI*/}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*/if (((((T134*)C))->_arguments/*28*/)!=((void*)(NULL))) {
/*IF*/if (!(r31is_a_in(((T31*)((((T134*)C))->_arguments/*28*/)),X359arguments(a1),a2))) {
r683add_position(X359start_position(a1));
r683add_position(r134start_position(C));
/*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X291run_time_mark((((T368*)((T368*)a2)))->_current_type/*0*/);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
}
/*FI*/}
/*FI*/}
/*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
return R;
}
/*No:ONCE_PROCEDURE.header_comment*/
/*No:ONCE_PROCEDURE.routine_body*/
int r134is_merge_with(T134* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T134*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T134*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r134error(r134start_position(C),((T0*)ms2_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T134*)C))->_arguments/*28*/)!=((void*)(X359arguments(a1)))) {
/*IF*/if ((((((T134*)C))->_arguments/*28*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r134error(r134start_position(C),((T0*)ms3_359));
}
 else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T134*)C))->_arguments/*28*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
r683add_position(X359start_position(a1));
r134error(r134start_position(C),((T0*)ms4_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T134*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T134*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T134*)C))->_arguments/*28*/)!=((void*)(NULL))) {
/*IF*/if (!(r31is_a_in(((T31*)((((T134*)C))->_arguments/*28*/)),X359arguments(a1),a2))) {
r683add_position(X359start_position(a1));
r134error(r134start_position(C),((T0*)ms12_359));
}
/*FI*/}
/*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
return R;
}
/*No:ONCE_PROCEDURE.fz_dot*/
/*No:ONCE_PROCEDURE.set_ensure_assertion*/
/*No:ONCE_PROCEDURE.first_name*/
/*No:ONCE_PROCEDURE.clients*/
void r134collect_for(T134* C,int a1){
/*IF*/if ((a1)==(1001)) {
/*IF*/if (((((T134*)C))->_require_assertion/*36*/)!=((void*)(NULL))) {
/*IF*/if (!(r522fast_has(((T522*)(oBC359require_collector)),(((T134*)C))->_require_assertion/*36*/))) {
r522add_last(((T522*)(oBC359require_collector)),(((T134*)C))->_require_assertion/*36*/);
}
/*FI*/}
/*FI*/}
else {
/*IF*/if (((((T134*)C))->_ensure_assertion/*40*/)!=((void*)(NULL))) {
/*[IRF3.3set_item*/((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=((((T633*)((T633*)((((T134*)C))->_ensure_assertion/*40*/))))->_header_comment/*4*/);
/*]*/
r633add_into(((T633*)((((T134*)C))->_ensure_assertion/*40*/)),oBC359assertion_collector);
}
/*FI*/}
/*FI*/}
void r134error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:ONCE_PROCEDURE.base_class*/
T0*oBC359require_collector=NULL;
void r134make_e_feature(T134* C,T0* a1,T0* a2){
C->_names=a1;
C->_result_type=a2;
}
void r134check_obsolete(T134* C){
/*IF*/if (!((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/)) {
/*IF*/if (((((T134*)C))->_obsolete_mark/*32*/)!=((void*)(NULL))) {
/*[IRF3.6append*/{T0* b1=((T0*)ms7_355);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=(((T805*)((T805*)((((T134*)C))->_obsolete_mark/*32*/))))->_to_string/*12*/;
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r134warning(r134start_position(C),((T0*)ms137_470));
}
/*FI*/}
/*FI*/}
void r134warning(T0* a1,T0* a2){
r683add_position(a1);
r683warning(((T683*)(oBC364eh)),a2);
}
/*No:RUN_FEATURE_6.arguments*/
T0*oBC364run_control=NULL;
/*No:RUN_FEATURE_6.actuals_clients*/
void r868make(T868* C,T0* a1,T0* a2,T0* a3){
C->_current_type=a1;
C->_name=a2;
C->_base_feature=a3;
r199put(((T199*)((((T368*)((T368*)(r868run_class(C)))))->_feature_dictionary/*24*/)),(T0*)C,X776to_key(a2));
r604incr_magic_count(((T604*)(oBC364small_eiffel)));
C->_use_current_state=1015;
r604push(((T604*)(oBC364small_eiffel)),(T0*)C);
r868initialize(C);
r604pop(((T604*)(oBC364small_eiffel)));
}
/*No:RUN_FEATURE_6.name*/
int r868arg_count(T868* C){
int R=0;
/*IF*/if (((((T868*)C))->_arguments/*20*/)!=((void*)(NULL))) {
R=/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T868*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/;
}
/*FI*/return R;
}
/*No:RUN_FEATURE_6.local_vars*/
/*No:RUN_FEATURE_6.base_feature*/
/*No:RUN_FEATURE_6.start_position*/
/*No:RUN_FEATURE_6.ensure_assertion*/
int r868is_exported_in(T868* C,T0* a1){
int R=0;
R=r636gives_permission_to(((T636*)(r868clients(C))),a1);
return R;
}
/*No:RUN_FEATURE_6.result_type*/
T0*oBC364once_routine_pool=NULL;
void r868add_client(T868* C,T0* a1){
int _i=0;
/*IF*/if (((((T868*)C))->_actuals_clients/*12*/)==((void*)(NULL))) {
{T187*n=malloc(sizeof(*n));
*n=M187;
r187with_capacity(n,4);
C->_actuals_clients=(T0*)n;
}
r187add_last(((T187*)((((T868*)C))->_actuals_clients/*12*/)),a1);
}
else {
_i=r187fast_index_of(((T187*)((((T868*)C))->_actuals_clients/*12*/)),a1);
/*IF*/if ((_i)>((((T187*)((T187*)((((T868*)C))->_actuals_clients/*12*/))))->_upper/*8*/)) {
r187add_last(((T187*)((((T868*)C))->_actuals_clients/*12*/)),a1);
}
/*FI*/}
/*FI*/r368add_client(((T368*)(r868run_class(C))),a1);
}
/*No:RUN_FEATURE_6.require_assertion*/
/*No:RUN_FEATURE_6.use_current_state*/
/*No:RUN_FEATURE_6.current_type*/
T0* r868run_class(T868* C){
T0* R=NULL;
R=X291run_class((((T868*)C))->_current_type/*4*/);
return R;
}
/*No:RUN_FEATURE_6.ucs_not_computed*/
/*No:RUN_FEATURE_6.routine_body*/
T0* r868clients(T868* C){
T0* R=NULL;
T0* _bfbc=NULL;
T0* _bc=NULL;
/*IF*/if (((((T868*)C))->_clients_memory/*8*/)==((void*)(NULL))) {
_bc=X291base_class((((T868*)C))->_current_type/*4*/);
_bfbc=(((T844*)((T844*)((((T868*)C))->_base_feature/*44*/))))->_base_class/*4*/;
/*IF*/if ((_bc)==((void*)(_bfbc))) {
R=(((T844*)((T844*)((((T868*)C))->_base_feature/*44*/))))->_clients/*24*/;
}
else {
R=r605clients_for(((T605*)_bc),(((T868*)C))->_name/*16*/);
}
/*FI*/C->_clients_memory=R;
}
else {
R=(((T868*)C))->_clients_memory/*8*/;
}
/*FI*/return R;
}
/*No:RUN_FEATURE_6.fatal_error*/
/*No:RUN_FEATURE_6.clients_memory*/
void r868initialize(T868* C){
C->_arguments=(((T844*)((T844*)((((T868*)C))->_base_feature/*44*/))))->_arguments/*28*/;
/*IF*/if ((((((T868*)C))->_arguments/*20*/)!=((void*)(NULL)))&&((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T868*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)>(0))) {
C->_arguments=r31to_runnable(((T31*)((((T868*)C))->_arguments/*20*/)),(((T868*)C))->_current_type/*4*/);
}
/*FI*/C->_result_type=(((T844*)((T844*)((((T868*)C))->_base_feature/*44*/))))->_result_type/*12*/;
/*IF*/if (X291is_anchored((((T868*)C))->_result_type/*24*/)) {
r683add_position(X291start_position((((T868*)C))->_result_type/*24*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms7_868);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
 else if (X291is_formal_generic((((T868*)C))->_result_type/*24*/)) {
r683add_position(X291start_position((((T868*)C))->_result_type/*24*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms8_868);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/C->_result_type=X291to_runnable((((T868*)C))->_result_type/*24*/,(((T868*)C))->_current_type/*4*/);
C->_local_vars=(((T844*)((T844*)((((T868*)C))->_base_feature/*44*/))))->_local_vars/*20*/;
/*IF*/if ((((((T868*)C))->_local_vars/*48*/)!=((void*)(NULL)))&&((/*(IRF4.6count*/(((T733*)((T733*)((((T620*)((T620*)((((T868*)C))->_local_vars/*48*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)>(0))) {
C->_local_vars=r620to_runnable(((T620*)((((T868*)C))->_local_vars/*48*/)),(((T868*)C))->_current_type/*4*/);
}
/*FI*/C->_routine_body=(((T844*)((T844*)((((T868*)C))->_base_feature/*44*/))))->_routine_body/*52*/;
/*IF*/if (((((T868*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
C->_routine_body=r592to_runnable(((T592*)((((T868*)C))->_routine_body/*32*/)),(((T868*)C))->_current_type/*4*/);
}
/*FI*//*IF*/if (r590require_check(((T590*)(oBC364run_control)))) {
C->_require_assertion=r844run_require((T0*)C);
}
/*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
C->_ensure_assertion=r844run_ensure((T0*)C);
}
/*FI*/r916add_function((T0*)C);
}

