ftp.nice.ch/pub/next/developer/languages/eiffel/SmallEiffel.0.91.N.bs.tar.gz#/SmallEiffel/bin_c/finder1.c

This is finder1.c in view mode; [Download] [Up]

/* ANSI C code generated by SmallEiffel. */
/*
-- SmallEiffel  -- Release (- 0.91)    --      FRANCE
-- Copyright (C), 1994 - Dominique COLNET and Suzanne COLLIN 
-- University Henri Poincare' - Nancy 1 - email colnet@loria.fr 
-- CRIN (Centre de Recherche en Informatique de Nancy)
-- FRANCE 
*/
#include "finder.h"
T0 *se_new(int id){
int sz=s[id];
T0 *n=malloc((size_t)sz);
memset(n,0,sz);
n->id=id;
return n;
}
/*FINDER*/T0* rT26get_environment_variable(/*C*/T0* a1){
T0* R=NULL;
void * _p=0;
_p=rT7to_external((T7*)a1);
_p=((void*)getenv((char*)_p));
/*IF*/if (((int)_p)) {
R=(T0*)e2s((char*)_p);
}
/*FI*/return R;
}
int ofBC27directory_separator=0;
T3 oRBC27directory_separator;
/*FINDER*/char rT26directory_separator(/*C*/void){
if (ofBC27directory_separator==0){
char R=0;
ofBC27directory_separator=1;
R=rT7last((T7*)rT26small_eiffel_directory());
oRBC27directory_separator=R;}
return oRBC27directory_separator;}
/*FINDER*/void rT26die_with_code(/*C*/int a1){
exit(a1);
}T0*oRBC27hlp_file_name;
/*FINDER*/void rT26add_directory(/*C*/T0* a1,T0* a2){
rT7append((T7*)a1,a2);
rT7extend((T7*)a1,rT26directory_separator());
}/*FINDER*/void rT26print_hlp(/*C*/T0* a1){
rT7copy((T7*)oRBC27hlp_file_name,rT26small_eiffel_directory());
rT26add_directory(oRBC27hlp_file_name,(T0 *)ms2_27);
rT7append((T7*)oRBC27hlp_file_name,a1);
/*IF*/if (!(rT7has_suffix((T7*)oRBC27hlp_file_name,(T0 *)ms35_27))) {
rT7append((T7*)oRBC27hlp_file_name,(T0 *)ms35_27);
}
/*FI*//*IF*/if (!(rT26file_exists(oRBC27hlp_file_name))) {
rT38put_string((T38*)oRBC1std_error,(T0 *)ms3_27);
rT38put_string((T38*)oRBC1std_error,oRBC27hlp_file_name);
rT38put_string((T38*)oRBC1std_error,(T0 *)ms4_27);
rT26die_with_code(1);
}
/*FI*/rT42append_file((T42*)oRBC1std_output,oRBC27hlp_file_name);
}T0*oRBC1command_arguments;
T0*oRBC1std_error;
T0*oRBC27small_eiffel;
T0*oRBC1std_output;
int ofBC27small_eiffel_directory=0;
T0*oRBC27small_eiffel_directory;
/*FINDER*/T0* rT26small_eiffel_directory(/*C*/void){
if (ofBC27small_eiffel_directory==0){
T0* R=NULL;
char _slash=0;
int _i=0;
ofBC27small_eiffel_directory=1;
R=rT26get_environment_variable((T0 *)ms124_27);
/*IF*/if (!(R)) {
R=rT7twin((T7*)(T0 *)ms124_27);
rT7to_upper((T7*)R);
R=rT26get_environment_variable(R);
/*IF*/if (((int)R)) {
rT7to_upper((T7*)(T0 *)ms124_27);
}
/*FI*/}
/*FI*//*IF*/if (!(R)) {
R=(T0 *)ms1_27;
}
/*FI*/_i=((T7*)R)->_count;
while (!((_i)<(0))) {
_slash=rT7item((T7*)R,_i);
/*IF*/if ((rT3is_letter(_slash))||(rT3is_digit(_slash))) {
_i=(_i)-(1);
}
else {
_i=-(1);
}
/*FI*/}
/*IF*/if ((_i)==(0)) {
rT7extend((T7*)R,'\57');
}
 else if (!((rT7last((T7*)R))==(_slash))) {
rT7extend((T7*)R,_slash);
}
/*FI*/oRBC27small_eiffel_directory=R;}
return oRBC27small_eiffel_directory;}
/*FINDER*/T0* rT26argument(/*C*/int a1){
T0* R=NULL;
R=rT34item((T34*)oRBC1command_arguments,a1);
return R;
}
/*FINDER*/int rT26file_exists(/*C*/T0* a1){
int R=0;
void * _p=0;
_p=rT7to_external((T7*)a1);
{FILE *f=fopen(((char*)_p),"r");
R=(f != NULL);
if (R) fclose(f);}
return R;
}
/*DICTIONARY[STRING,STRING]*/void rT48resize(T48 *C,int a1){
int _p=0;
int _n=0;
int _i=0;
T0* _new_buc=NULL;
int _hash=0;
{T49 *n=((T49*)se_new(49));
rT49make(n,a1);
_new_buc=(T0 *)n;}
_i=0;
while (!((_i)>=((C)->_modulus))) {
_n=rT49item((T49*)(C)->_buckets,_i);
while (!((_n)==(0))) {
_p=rT50item((T50*)(C)->_chain,_n);
_hash=(rT7hash_code((T7*)rT46item((T46*)(C)->_keys,_n)))%(a1);
rT50put((T50*)(C)->_chain,rT49item((T49*)_new_buc,_hash),_n);
rT49put((T49*)_new_buc,_n,_hash);
_n=_p;
}
_i=(_i)+(1);
}
C->_buckets=_new_buc;
C->_modulus=a1;
C->_item_mem=0;
}/*DICTIONARY[STRING,STRING]*/T0* rT48at(T48 *C,T0* a1){
T0* R=NULL;
int _foo=0;
_foo=rT48has(C,a1);
R=rT46item((T46*)(C)->_store,(C)->_has_mem);
return R;
}
/*DICTIONARY[STRING,STRING]*/void rT48put(T48 *C,T0* a1,T0* a2){
int _hash=0;
_hash=(rT7hash_code((T7*)a2))%((C)->_modulus);
/*IF*/if ((((C)->_has_mem)==(0))||(!(rT7is_equal((T7*)a2,rT46item((T46*)(C)->_keys,(C)->_has_mem))))) {
C->_has_mem=rT49item((T49*)(C)->_buckets,_hash);
while (!((((C)->_has_mem)==(0))||(rT7is_equal((T7*)a2,rT46item((T46*)(C)->_keys,(C)->_has_mem))))) {
C->_has_mem=rT50item((T50*)(C)->_chain,(C)->_has_mem);
}
/*IF*/if (((C)->_has_mem)==(0)) {
/*IF*/if (((C)->_count)>=(rT46count((T46*)(C)->_store))) {
rT48expand(C);
}
/*FI*/rT46put((T46*)(C)->_keys,a2,(C)->_free);
rT46put((T46*)(C)->_store,a1,(C)->_free);
C->_has_mem=(C)->_free;
C->_free=rT50item((T50*)(C)->_chain,(C)->_free);
rT50put((T50*)(C)->_chain,rT49item((T49*)(C)->_buckets,_hash),(C)->_has_mem);
rT49put((T49*)(C)->_buckets,(C)->_has_mem,_hash);
C->_count=((C)->_count)+(1);
/*IF*/if (((C)->_count)>(((C)->_modulus)*(2))) {
rT48resize(C,(2)*((C)->_modulus));
}
/*FI*/}
/*FI*/}
else {
rT46put((T46*)(C)->_store,a1,(C)->_has_mem);
}
/*FI*/C->_item_mem=0;
}/*DICTIONARY[STRING,STRING]*/void rT48expand(T48 *C){
int _old_size=0;
int _i=0;
C->_item_mem=0;
_old_size=rT46count((T46*)(C)->_store);
rT50resize((T50*)(C)->_chain,1,(2)*(_old_size));
rT46resize((T46*)(C)->_keys,1,(2)*(_old_size));
rT46resize((T46*)(C)->_store,1,(2)*(_old_size));
_i=(_old_size)+(1);
while (!((_i)==(rT50count((T50*)(C)->_chain)))) {
rT50put((T50*)(C)->_chain,(_i)+(1),_i);
_i=(_i)+(1);
}
rT50put((T50*)(C)->_chain,(C)->_free,_i);
C->_free=(_old_size)+(1);
}/*DICTIONARY[STRING,STRING]*/int rT48has(T48 *C,T0* a1){
int R=0;
/*IF*/if ((((C)->_has_mem)==(0))||(!(rT7is_equal((T7*)a1,rT46item((T46*)(C)->_keys,(C)->_has_mem))))) {
C->_has_mem=rT49item((T49*)(C)->_buckets,(rT7hash_code((T7*)a1))%((C)->_modulus));
while (!((((C)->_has_mem)==(0))||(rT7is_equal((T7*)a1,rT46item((T46*)(C)->_keys,(C)->_has_mem))))) {
C->_has_mem=rT50item((T50*)(C)->_chain,(C)->_has_mem);
}
}
/*FI*/R=((C)->_has_mem)!=(0);
return R;
}
/*DICTIONARY[STRING,STRING]*/void rT48make(T48 *C){
int _i=0;
C->_modulus=32;
C->_count=0;
C->_free=1;
C->_has_mem=0;
C->_item_mem=0;
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_modulus);
C->_buckets=(T0 *)n;}
{T50 *n=((T50*)se_new(50));
rT50make(n,1,16);
C->_chain=(T0 *)n;}
{T46 *n=((T46*)se_new(46));
rT46make(n,1,16);
C->_store=(T0 *)n;}
{T46 *n=((T46*)se_new(46));
rT46make(n,1,16);
C->_keys=(T0 *)n;}
_i=1;
while (!((_i)==(rT50count((T50*)(C)->_chain)))) {
rT50put((T50*)(C)->_chain,(_i)+(1),_i);
_i=(_i)+(1);
}
rT50put((T50*)(C)->_chain,0,_i);
_i=0;
while (!((_i)>=((C)->_modulus))) {
rT49put((T49*)(C)->_buckets,0,_i);
_i=(_i)+(1);
}
}/*STD_ERROR*/void rT38die_with_code(/*C*/int a1){
exit(a1);
}/*STD_ERROR*/void rT38put_string(T38 *C,T0* a1){
int _i=0;
_i=1;
while (!((_i)>(((T7*)a1)->_count))) {
rT38put_character(C,rT7item((T7*)a1,_i));
_i=(_i)+(1);
}
}/*STD_ERROR*/void rT38put_character(T38 *C,char a1){
char _err=0;
_err=fputc(a1,(C)->_output_stream);
/*IF*/if ((_err)!=(a1)) {
rT38put_string((T38*)oRBC1std_error,(T0 *)ms2_39);
/*[IRF3:crash*/rsp();
rT38die_with_code(1);
/*]*/
}
/*FI*/}/*STD_ERROR*/void rT38make(T38 *C){
C->_output_stream=stderr;
}/*FIXED_ARRAY[INTEGER]*/void rT49clear_all(T49 *C){
int _value=0;
rT49set_all_with(C,_value);
}/*FIXED_ARRAY[INTEGER]*/void rT49set_all_with(T49 *C,int a1){
int _i=0;
_i=(C)->_upper;
while (!((_i)<(0))) {
rT49put(C,a1,_i);
_i=(_i)-(1);
}
}/*FIXED_ARRAY[INTEGER]*/int rT49item(T49 *C,int a1){
int R=0;
R=(((int*)(C->_storage))[a1]);
return R;
}
/*FIXED_ARRAY[INTEGER]*/int* rT49realloc(/*C*/int* a1,int a2){
int* R=0;
T37 _mem={0/*dummy*/};
int _x=0;
/*IF*/{/*AT*/R=realloc(a1,(a2)*(((0),sizeof(T2))));
}
/*FI*/return R;
}
/*FIXED_ARRAY[INTEGER]*/int* rT49malloc(/*C*/int a1){
int* R=0;
T37 _mem={0/*dummy*/};
int _x=0;
/*IF*/{/*AT*/R=malloc((a1)*(((0),sizeof(T2))));
}
/*FI*/return R;
}
/*FIXED_ARRAY[INTEGER]*/void rT49put(T49 *C,int a1,int a2){
((int*)(C->_storage))[a2]=a1;
}
/*FIXED_ARRAY[INTEGER]*/void rT49make(T49 *C,int a1){
/*IF*/if (((int)(C)->_storage)) {
C->_storage=rT49realloc((C)->_storage,a1);
}
else {
C->_storage=rT49malloc(a1);
}
/*FI*/C->_upper=(a1)-(1);
rT49clear_all(C);
}

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.