home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 3 / AACD03.BIN / AACD / Programming / sofa / archive / SmallEiffel.lha / SmallEiffel / lib_show / directory / example01.h < prev    next >
C/C++ Source or Header  |  1999-06-05  |  27KB  |  809 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.78Beta#1)--
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                  http://SmallEiffel.loria.fr/                --
  7. */
  8.  
  9. /*
  10. -- This file is  free  software, which  comes  along  with  SmallEiffel. This
  11. -- software  is  distributed  in the hope that it will be useful, but WITHOUT 
  12. -- ANY  WARRANTY;  without  even  the  implied warranty of MERCHANTABILITY or
  13. -- FITNESS  FOR A PARTICULAR PURPOSE. You can modify it as you want, provided
  14. -- this header is kept unaltered, and a notification of the changes is added.
  15. -- You  are  allowed  to  redistribute  it and sell it, alone or as a part of 
  16. -- another product.
  17. --          Copyright (C) 1994-98 LORIA - UHP - CRIN - INRIA - FRANCE
  18. --            Dominique COLNET and Suzanne COLLIN - colnet@loria.fr 
  19. --                       http://www.loria.fr/SmallEiffel
  20. --
  21. */
  22. /*
  23.   This file (base.h) is automatically included in the header for all modes 
  24.   of compilation : -boost, -no_check, -require_check, ...
  25.   This file is also included in the header of any cecil file.
  26. */
  27. #include <stdio.h>
  28. #include <string.h>
  29. #include <math.h>
  30. #include <stdlib.h>
  31. #include <signal.h>
  32. #include <stddef.h>
  33. #include <stdarg.h>
  34. #include <limits.h>
  35. #include <float.h>
  36. #include <setjmp.h>
  37. #include <sys/types.h>
  38. #include <sys/stat.h>
  39. #include <fcntl.h>
  40. #ifndef O_RDONLY
  41. #include <sys/file.h>
  42. #endif
  43. #ifndef O_RDONLY
  44. #define O_RDONLY 0000
  45. #endif
  46.  
  47. /* 
  48.    On Linux glibc systems, we need to use sig.* versions of jmp_buf,
  49.    setjmp and longjmp to preserve the signal handling context.
  50.    Currently, the way I figured to detect this is if _SIGSET_H_types has
  51.    been defined in /usr/include/setjmp.h.
  52. */
  53. #ifdef _SIGSET_H_types
  54. # define JMP_BUF    sigjmp_buf
  55. # define SETJMP(x)  sigsetjmp( (x), 1)
  56. # define LONGJMP    siglongjmp
  57. #else
  58. # define JMP_BUF    jmp_buf
  59. # define SETJMP(x)  setjmp( (x) )
  60. # define LONGJMP    longjmp
  61. #endif
  62.  
  63. /* 
  64.    Type to store reference objects Id :
  65.  */
  66. typedef int Tid;
  67.  
  68. typedef struct S0 T0;
  69.  
  70. struct S0{
  71.   Tid id;
  72. };
  73.  
  74. /* 
  75.    The default channel used to print runtime error messages :
  76. */
  77. #define SE_ERR stderr
  78.  
  79. /* 
  80.    Eiffel type INTEGER is #2 :
  81. */
  82. typedef int T2;
  83. #define M2 (0)
  84. #define T2BITS (CHAR_BIT*sizeof(int))
  85. #define T2MIN INT_MIN
  86. #define T2MAX INT_MAX
  87.  
  88. /*
  89.   Eiffel type CHARACTER is #3 :
  90. */
  91. typedef char T3;
  92. #define M3 (0)
  93. #define T3BITS CHAR_BIT
  94. #define T3MIN (0)
  95. #define T3MAX (255)
  96.  
  97. /*
  98.   Eiffel type REAL is #4 :
  99. */
  100. typedef float T4;
  101. #define M4 (0.0)
  102. #define T4BITS (CHAR_BIT*sizeof(float))
  103. #define T4MIN (-(FLT_MAX))
  104. #define T4MAX FLT_MAX
  105.  
  106. /*
  107.   Eiffel type DOUBLE is #5 :
  108. */
  109. typedef double T5;
  110. #define M5 (0.0)
  111. #define T5BITS (CHAR_BIT*sizeof(double))
  112. #define T5MIN (-(DBL_MAX))
  113. #define T5MAX DBL_MAX
  114.  
  115. /*
  116.   Eiffel type BOOLEAN is #6 :
  117. */
  118. typedef int T6;
  119. #define M6 (0)
  120. #define T6BITS (CHAR_BIT*sizeof(int))
  121.  
  122. /* 
  123.    Eiffel type POINTER is #8 :
  124. */
  125. typedef void* T8;
  126. #define M8 (NULL)
  127. #define T8BITS (CHAR_BIT*sizeof(void*))
  128.  
  129. /* --- Mangling Table Start ---
  130. A 1  T2135 E NATIVE_ARRAY[STRING] 2135
  131. A 1  T660  R DIRECTORY 660
  132. A 1  T474  R BOOLEAN_REF 474
  133. A 1  T1405 R BASIC_DIRECTORY 1405
  134. A 1  T701  R EXAMPLE01 701
  135. A 1  T2    E INTEGER 2
  136. D 10 T98   R ANY 1405,660,714,528,2074,878,7,1886,701,474
  137. A 1  T3    E CHARACTER 3
  138. A 1  T1886 R FIXED_ARRAY[STRING] 1886
  139. A 1  T9    E NATIVE_ARRAY[CHARACTER] 9
  140. A 1  T7    R STRING 7
  141. A 2  T878  R STD_OUTPUT 878,2074
  142. A 1  T2074 R STD_INPUT_OUTPUT 2074
  143. A 1  T8    E POINTER 8
  144. A 1  T714  R CHARACTER_REF 714
  145. A 1  T6    E BOOLEAN 6
  146. A 1  T528  R INTEGER_REF 528
  147.  --- Mangling Table End --- */
  148.  
  149. /*C Header Pass 1 :*/
  150. typedef struct S660 T660;
  151. typedef struct S474 T474;
  152. typedef struct S1405 T1405;
  153. typedef struct S701 T701;
  154. typedef struct S1886 T1886;
  155. typedef struct S7 T7;
  156. typedef struct S878 T878;
  157. typedef struct S2074 T2074;
  158. typedef struct S714 T714;
  159. typedef struct S528 T528;
  160.  
  161. /*C Header Pass 2 :*/
  162. typedef T0**T2135;
  163. typedef T3*T9;
  164.  
  165. /*C Header Pass 3 :*/
  166.  
  167. /*C Header Pass 4 :*/
  168. void se_prinT2135(T2135*o);
  169. struct S660{int id;T0* _basic_directory;T6 _is_connected;};
  170. extern T660 M660;
  171. void se_prinT660(T660**o);
  172. struct S474{int id;T6 _item;};
  173. extern T474 M474;
  174. void se_prinT474(T474**o);
  175. struct S1405{int id;T0* _path;T0* _name_list;};
  176. extern T1405 M1405;
  177. void se_prinT1405(T1405**o);
  178. struct S701{int id;};
  179. extern T701 M701;
  180. void se_prinT701(T701**o);
  181. struct S1886{int id;T2135 _storage;T2 _capacity;T2 _upper;};
  182. extern T1886 M1886;
  183. void se_prinT1886(T1886**o);
  184. void se_prinT9(T9*o);
  185. struct S7{int id;T9 _storage;T2 _count;T2 _capacity;};
  186. extern T7 M7;
  187. struct S878{int id;};
  188. extern T878 M878;
  189. void se_prinT878(T878**o);
  190. struct S2074{int id;};
  191. extern T2074 M2074;
  192. void se_prinT2074(T2074**o);
  193. struct S714{int id;T3 _item;};
  194. extern T714 M714;
  195. void se_prinT714(T714**o);
  196. struct S528{int id;T2 _item;};
  197. extern T528 M528;
  198. void se_prinT528(T528**o);
  199. T7*se_ms(int c,char*e);
  200. T7*e2s(char*e);
  201. char*s2e(T7*s);
  202. /*
  203. -- This file is  free  software, which  comes  along  with  SmallEiffel. This
  204. -- software  is  distributed  in the hope that it will be useful, but WITHOUT 
  205. -- ANY  WARRANTY;  without  even  the  implied warranty of MERCHANTABILITY or
  206. -- FITNESS  FOR A PARTICULAR PURPOSE. You can modify it as you want, provided
  207. -- this header is kept unaltered, and a notification of the changes is added.
  208. -- You  are  allowed  to  redistribute  it and sell it, alone or as a part of 
  209. -- another product.
  210. --          Copyright (C) 1994-98 LORIA - UHP - CRIN - INRIA - FRANCE
  211. --            Dominique COLNET and Suzanne COLLIN - colnet@loria.fr 
  212. --                       http://www.loria.fr/SmallEiffel
  213. --
  214. */
  215. /*
  216.   This file (no_check.h) is automatically included when `run_control.no_check'
  217.   is true (ie. all modes ecxept mode -boost).
  218. */
  219. #define SE_NO_CHECK 1
  220.  
  221. /*
  222.   To be able to print a stack frame in a human readable format :
  223. */
  224. typedef struct _se_frame_descriptor se_frame_descriptor;
  225. struct _se_frame_descriptor {
  226.   char* name;
  227.   int use_current;
  228.   int local_count; /* Number of C variable to print. */
  229.   char* local_format; /* Format information. */
  230.   int assertion_flag; /* 1 when assertions can be checked. */ 
  231. };
  232.  
  233. /*
  234.   To keep the track of execution in order to be able to print a 
  235.   dump when things goes wrong :
  236. */
  237. typedef struct _se_dump_stack se_dump_stack;
  238. struct _se_dump_stack {
  239.   se_frame_descriptor* fd;
  240.   void** current; /* NULL when not used. */
  241.   int l; /* Current execution line. */
  242.   int c; /* Current execution column. */
  243.   int f; /* File path index (base class id). */
  244.   se_dump_stack* caller; /* Back to the caller. */
  245.   void*** locals;
  246. };
  247. extern se_dump_stack* se_dst;
  248. void se_print_run_time_stack(void);
  249. void se_print_one_frame(se_dump_stack*ds);
  250. void se_core_dump(char *msg);
  251.  
  252. extern int se_rspf;
  253. extern int se_require_uppermost_flag;
  254. extern int se_require_last_result;
  255. int se_rci(void*C);
  256. void error0(char*m);
  257. void error1(char*m,int l,int c,int f);
  258. void error2(T0*o,int l,int c,int f);
  259. T0* vc(void*o,int l,int c,int f);
  260. T0* ci(int id,void*o,int l,int c,int f);
  261. void ac_req(int v);
  262. void ac_ens(int v);
  263. void ac_inv(int v);
  264. void ac_liv(int v);
  265. void ac_insp(int v);
  266. int ac_lvc(int lc,int lv1,int lv2);
  267. void ac_civ(int v);
  268. void se_evobt(void*o,int l,int c,int f);
  269. void sigrsp(int sig);
  270. void se_gc_check_id(void*o,int id);
  271. /*
  272. -- This file is  free  software, which  comes  along  with  SmallEiffel. This
  273. -- software  is  distributed  in the hope that it will be useful, but WITHOUT 
  274. -- ANY  WARRANTY;  without  even  the  implied warranty of MERCHANTABILITY or
  275. -- FITNESS  FOR A PARTICULAR PURPOSE. You can modify it as you want, provided
  276. -- this header is kept unaltered, and a notification of the changes is added.
  277. -- You  are  allowed  to  redistribute  it and sell it, alone or as a part of 
  278. -- another product.
  279. --          Copyright (C) 1994-98 LORIA - UHP - CRIN - INRIA - FRANCE
  280. --            Dominique COLNET and Suzanne COLLIN - colnet@loria.fr 
  281. --                       http://www.loria.fr/SmallEiffel
  282. --
  283. */
  284. /*
  285.   This file (trace.h) is automatically included when `run_control.no_check' is
  286.   true (ie. all modes ecxept -boost).
  287.   This file comes after no_check.[hc] to implements the -trace flag as well as
  288.   some other printing stuff.
  289. */
  290.  
  291. void se_prinT0(T0**o);
  292. void se_prinT2(T2*o);
  293. void se_prinT3(T3*o);
  294. void se_prinT4(T4*o);
  295. void se_prinT5(T5*o);
  296. void se_prinT6(T6*o);
  297. void se_prinT7(T7**o);
  298. void se_prinT8(T8*o);
  299. void se_trace(se_dump_stack*ds,int l,int c,int f);
  300. /*
  301. -- This file is  free  software, which  comes  along  with  SmallEiffel. This
  302. -- software  is  distributed  in the hope that it will be useful, but WITHOUT 
  303. -- ANY  WARRANTY;  without  even  the  implied warranty of MERCHANTABILITY or
  304. -- FITNESS  FOR A PARTICULAR PURPOSE. You can modify it as you want, provided
  305. -- this header is kept unaltered, and a notification of the changes is added.
  306. -- You  are  allowed  to  redistribute  it and sell it, alone or as a part of 
  307. -- another product.
  308. --          Copyright (C) 1994-98 LORIA - UHP - CRIN - INRIA - FRANCE
  309. --            Dominique COLNET and Suzanne COLLIN - colnet@loria.fr 
  310. --                       http://www.loria.fr/SmallEiffel
  311. --
  312. */
  313. /*
  314.   This file (basic_directory.h) is automatically included when some external
  315.   "SmallEiffel" feature of class BASIC_DIRECTORY is live.
  316. */
  317. #include <dirent.h>
  318. #include <unistd.h>
  319.  
  320. void* se_dir_open(void* path);
  321. void* se_dir_name(void* dirstream);
  322. void* se_dir_next(void* dirstream);
  323. void* se_dir_gcwd(int unused);
  324. #define FSOC_SIZE 8192
  325. #define RSOC_SIZE 32768
  326. /*
  327. -- This file is  free  software, which  comes  along  with  SmallEiffel. This
  328. -- software  is  distributed  in the hope that it will be useful, but WITHOUT 
  329. -- ANY  WARRANTY;  without  even  the  implied warranty of MERCHANTABILITY or
  330. -- FITNESS  FOR A PARTICULAR PURPOSE. You can modify it as you want, provided
  331. -- this header is kept unaltered, and a notification of the changes is added.
  332. -- You  are  allowed  to  redistribute  it and sell it, alone or as a part of 
  333. -- another product.
  334. --          Copyright (C) 1994-98 LORIA - UHP - CRIN - INRIA - FRANCE
  335. --            Dominique COLNET and Suzanne COLLIN - colnet@loria.fr 
  336. --                       http://www.loria.fr/SmallEiffel
  337. --
  338. */
  339. /* This file is automatically included when the Garbage Collector
  340.    is used (default, unless option -no_gc has been selected).
  341. */
  342. #define SE_GC_LIB 1
  343.  
  344. #define RSOH_UNMARKED 15253     
  345. #define RSOH_MARKED 0
  346. #define RSOH_FREE 1
  347.  
  348.  
  349. #define FSOH_UNMARKED 1
  350. #define FSOH_MARKED 0
  351.  
  352. /* To codify the state and the type of some Memory Chunk, we are 
  353.    using the following definitions :
  354. */
  355. #define FSO_FREE_CHUNK  (-2)
  356. #define RSO_FREE_CHUNK  (-1)
  357. #define RSO_USED_CHUNK  ( 0)
  358. #define FSO_STORE_CHUNK ( 1)
  359. #define FSO_USED_CHUNK  ( 2)
  360. #define FREE_CHUNK(x) ((x)<0)
  361.  
  362. /* Minimum size for a store area in a ReSizable Objects Chunk :
  363.  */
  364. #define RSOC_MIN_STORE 512
  365.  
  366. typedef struct s_mch mch; /* Memory Chunk Header. */
  367. typedef struct s_fsoc fsoc; /* Fixed Size Objects Chunk. */
  368. typedef union u_rsoh rsoh; /* ReSizable Object Header. */
  369. typedef struct s_fll_rsoh fll_rsoh; 
  370. typedef struct s_rsoc rsoc; /* ReSizable Objects Chunk. */
  371. typedef struct s_na_env na_env; /* Native Array ENVironment. */
  372.  
  373.  
  374. struct s_mch{ 
  375.   int size; /* In number of bytes (actual argument of malloc).*/
  376.   int state_type; /* One value in : RSO_USED_CHUNK, 
  377.                      FREE_CHUNK, FSO_STORE_CHUNK, FSO_USED_CHUNK */
  378.   void(*amfp)(mch*,void*); /* Align Mark Function Pointer. */
  379.   void(*swfp)(mch*); /* SWeep Function Pointer. */
  380. };
  381.  
  382. struct s_fsoc{
  383.   mch header;
  384.   fsoc* next;
  385.   int count_minus_one;
  386.   double first_object;
  387. };
  388.  
  389. typedef struct _rso_header rso_header;
  390.  
  391. struct _rso_header{
  392.     int size;
  393.     int magic_flag;     /* RSOH_MARKED when used,
  394.                RSOH_FREE when free,
  395.                else RSOH_UNMARKED */
  396. };
  397.  
  398. union u_rsoh{
  399.   rso_header header;             
  400.   double padding; 
  401.   };
  402.  
  403. struct s_fll_rsoh {
  404.   rso_header rsoh_field;
  405.   fll_rsoh* nextflol;
  406. };
  407.  
  408. struct s_rsoc{
  409.   mch header;
  410.   rsoc* next;
  411.   fll_rsoh*free_list_of_large;
  412.   na_env*nae;
  413.   rsoh first_header;
  414. };
  415.  
  416. struct s_na_env{
  417.   int store_left;
  418.   rsoh* store;
  419.   rsoc*store_chunk;
  420.   rsoc*chunk_list;
  421.   void (*gc_mark)(T0*);
  422. };
  423.  
  424. extern void**stack_bottom;
  425. extern mch**gcmt;
  426. extern int gcmt_max;
  427. extern int gcmt_used;
  428. extern fsoc*fsocfl;
  429. extern rsoc*rsocfl;
  430. extern int gc_is_off;
  431. extern unsigned int fsoc_count;
  432. extern unsigned int rsoc_count;
  433. extern void*gcmt_tail_addr;
  434.  
  435. int na_rounded_size(int s);
  436. void gc_sweep(void);
  437. void gc_mark(void*p);
  438. int gc_stack_size(void);
  439. int garbage_delayed(void);
  440. void gc_update_ceils(void);
  441. fsoc*new_fsoc(void);
  442. char*new_na(na_env*nae,int size);
  443. void gcna_align_mark(rsoc*c,void*o);
  444. int fsocfl_count(void);
  445. int rsocfl_count(void);
  446. extern unsigned int fsoc_count_ceil;
  447. extern unsigned int rsoc_count_ceil;
  448. extern unsigned int gc_start_count;
  449. T6 r2in_range(se_dump_stack*caller,T2 C,T2 a1,T2 a2);
  450. extern se_frame_descriptor f2in_range;
  451. void r2append_in(se_dump_stack*caller,T2 C,T0* a1);
  452. extern se_frame_descriptor f2append_in;
  453. T3 r2digit(se_dump_stack*caller,T2 C);
  454. extern se_frame_descriptor f2digit;
  455. T6 r2divisible(se_dump_stack*caller,T2 a1);
  456. extern se_frame_descriptor f2divisible;
  457. T6 r3_px_6061(se_dump_stack*caller,T3 C,T3 a1);
  458. extern se_frame_descriptor f3_px_6061;
  459. T6 r3_px_60(se_dump_stack*caller,T3 C,T3 a1);
  460. extern se_frame_descriptor f3_px_60;
  461. T6 r3is_digit(se_dump_stack*caller,T3 C);
  462. extern se_frame_descriptor f3is_digit;
  463. T2 r3value(se_dump_stack*caller,T3 C);
  464. extern se_frame_descriptor f3value;
  465. T6 r8is_null(se_dump_stack*caller,T8 C);
  466. extern se_frame_descriptor f8is_null;
  467. T6 r6_px_or(se_dump_stack*caller,T6 C,T6 a1);
  468. extern se_frame_descriptor f6_px_or;
  469. T6 r6_ix_not(se_dump_stack*caller,T6 C);
  470. extern se_frame_descriptor f6_ix_not;
  471. T6 r6_px_and(se_dump_stack*caller,T6 C,T6 a1);
  472. extern se_frame_descriptor f6_px_and;
  473. T2135 r2135realloc(se_dump_stack*caller,T2135 C,T2 a1,T2 a2);
  474. extern se_frame_descriptor f2135realloc;
  475. T6 r2135is_not_null(se_dump_stack*caller,T2135 C);
  476. extern se_frame_descriptor f2135is_not_null;
  477. void r2135set_all_with(se_dump_stack*caller,T2135 C,T0* a1,T2 a2);
  478. extern se_frame_descriptor f2135set_all_with;
  479. T6 r2135equal_like(se_dump_stack*caller,T0* a1,T0* a2);
  480. extern se_frame_descriptor f2135equal_like;
  481. void r2135copy_from(se_dump_stack*caller,T2135 C,T2135 a1,T2 a2);
  482. extern se_frame_descriptor f2135copy_from;
  483. T6 r2135all_cleared(se_dump_stack*caller,T2135 C,T2 a1);
  484. extern se_frame_descriptor f2135all_cleared;
  485. T6 r2135memcmp(se_dump_stack*caller,T2135 C,T2135 a1,T2 a2);
  486. extern se_frame_descriptor f2135memcmp;
  487. T2 r2135index_of(se_dump_stack*caller,T2135 C,T0* a1,T2 a2);
  488. extern se_frame_descriptor f2135index_of;
  489. T6 r9fast_memcmp(se_dump_stack*caller,T9 C,T9 a1,T2 a2);
  490. extern se_frame_descriptor f9fast_memcmp;
  491. T9 r9realloc(se_dump_stack*caller,T9 C,T2 a1,T2 a2);
  492. extern se_frame_descriptor f9realloc;
  493. T6 r9is_not_null(se_dump_stack*caller,T9 C);
  494. extern se_frame_descriptor f9is_not_null;
  495. T6 r9fast_has(se_dump_stack*caller,T9 C,T3 a1,T2 a2);
  496. extern se_frame_descriptor f9fast_has;
  497. void r9copy_from(se_dump_stack*caller,T9 C,T9 a1,T2 a2);
  498. extern se_frame_descriptor f9copy_from;
  499. T6 r7standard_is_equal(se_dump_stack*caller,T7* C,T0* a1);
  500. extern se_frame_descriptor f7standard_is_equal;
  501. T8 r7to_external(se_dump_stack*caller,T7* C);
  502. extern se_frame_descriptor f7to_external;
  503. void r7from_external(se_dump_stack*caller,T7* C,T8 a1);
  504. extern se_frame_descriptor f7from_external;
  505. T6 r7has(se_dump_stack*caller,T7* C,T3 a1);
  506. extern se_frame_descriptor f7has;
  507. T6 r7is_equal(se_dump_stack*caller,T7* C,T0* a1);
  508. extern se_frame_descriptor f7is_equal;
  509. T3 r7item(se_dump_stack*caller,T7* C,T2 a1);
  510. extern se_frame_descriptor f7item;
  511. T6 r7valid_index(se_dump_stack*caller,T7* C,T2 a1);
  512. extern se_frame_descriptor f7valid_index;
  513. void r7make(se_dump_stack*caller,T7* C,T2 a1);
  514. extern se_frame_descriptor f7make;
  515. void r7extend(se_dump_stack*caller,T7* C,T3 a1);
  516. extern se_frame_descriptor f7extend;
  517. void r7from_external_copy(se_dump_stack*caller,T7* C,T8 a1);
  518. extern se_frame_descriptor f7from_external_copy;
  519. void r7clear(se_dump_stack*caller,T7* C);
  520. extern se_frame_descriptor f7clear;
  521. void r7swap(se_dump_stack*caller,T7* C,T2 a1,T2 a2);
  522. extern se_frame_descriptor f7swap;
  523. T6 r7empty(se_dump_stack*caller,T7* C);
  524. extern se_frame_descriptor f7empty;
  525. void r7put(se_dump_stack*caller,T7* C,T3 a1,T2 a2);
  526. extern se_frame_descriptor f7put;
  527. extern se_frame_descriptor se_ifd7;
  528. T7*se_i7(se_dump_stack*caller,T7*C);
  529. void r1886with_capacity(se_dump_stack*caller,T1886* C,T2 a1);
  530. extern se_frame_descriptor f1886with_capacity;
  531. T6 r1886standard_is_equal(se_dump_stack*caller,T1886* C,T0* a1);
  532. extern se_frame_descriptor f1886standard_is_equal;
  533. T6 r1886has(se_dump_stack*caller,T1886* C,T0* a1);
  534. extern se_frame_descriptor f1886has;
  535. void r1886clear_all(se_dump_stack*caller,T1886* C);
  536. extern se_frame_descriptor f1886clear_all;
  537. void r1886add_last(se_dump_stack*caller,T1886* C,T0* a1);
  538. extern se_frame_descriptor f1886add_last;
  539. T6 r1886is_equal(se_dump_stack*caller,T1886* C,T0* a1);
  540. extern se_frame_descriptor f1886is_equal;
  541. T0* r1886item(se_dump_stack*caller,T1886* C,T2 a1);
  542. extern se_frame_descriptor f1886item;
  543. void r1886set_all_with(se_dump_stack*caller,T1886* C,T0* a1);
  544. extern se_frame_descriptor f1886set_all_with;
  545. T6 r1886valid_index(se_dump_stack*caller,T1886* C,T2 a1);
  546. extern se_frame_descriptor f1886valid_index;
  547. T0* r1886last(se_dump_stack*caller,T1886* C);
  548. extern se_frame_descriptor f1886last;
  549. T2 r1886count(se_dump_stack*caller,T1886* C);
  550. extern se_frame_descriptor f1886count;
  551. void r1886make(se_dump_stack*caller,T1886* C,T2 a1);
  552. extern se_frame_descriptor f1886make;
  553. T6 r1886equal(se_dump_stack*caller,T1886* C,T0* a1,T0* a2);
  554. extern se_frame_descriptor f1886equal;
  555. void r1886clear(se_dump_stack*caller,T1886* C);
  556. extern se_frame_descriptor f1886clear;
  557. T6 r1886all_cleared(se_dump_stack*caller,T1886* C);
  558. extern se_frame_descriptor f1886all_cleared;
  559. T6 r1886empty(se_dump_stack*caller,T1886* C);
  560. extern se_frame_descriptor f1886empty;
  561. T2 r1886index_of(se_dump_stack*caller,T1886* C,T0* a1);
  562. extern se_frame_descriptor f1886index_of;
  563. void r1886put(se_dump_stack*caller,T1886* C,T0* a1,T2 a2);
  564. extern se_frame_descriptor f1886put;
  565. extern se_frame_descriptor se_ifd1886;
  566. T1886*se_i1886(se_dump_stack*caller,T1886*C);
  567. T6 r660standard_is_equal(se_dump_stack*caller,T660* C,T0* a1);
  568. extern se_frame_descriptor f660standard_is_equal;
  569. T6 r660has(se_dump_stack*caller,T660* C,T0* a1);
  570. extern se_frame_descriptor f660has;
  571. T0* r660path(se_dump_stack*caller,T660* C);
  572. extern se_frame_descriptor f660path;
  573. T6 r660is_equal(se_dump_stack*caller,T660* C,T0* a1);
  574. extern se_frame_descriptor f660is_equal;
  575. T6 r660valid_index(se_dump_stack*caller,T660* C,T2 a1);
  576. extern se_frame_descriptor f660valid_index;
  577. void r660connect_to(se_dump_stack*caller,T660* C,T0* a1);
  578. extern se_frame_descriptor f660connect_to;
  579. T2 r660count(se_dump_stack*caller,T660* C);
  580. extern se_frame_descriptor f660count;
  581. T0* r660name(se_dump_stack*caller,T660* C,T2 a1);
  582. extern se_frame_descriptor f660name;
  583. T6 r474standard_is_equal(se_dump_stack*caller,T474* C,T0* a1);
  584. extern se_frame_descriptor f474standard_is_equal;
  585. T6 r474is_equal(se_dump_stack*caller,T474* C,T0* a1);
  586. extern se_frame_descriptor f474is_equal;
  587. T6 r1405standard_is_equal(se_dump_stack*caller,T1405* C,T0* a1);
  588. extern se_frame_descriptor f1405standard_is_equal;
  589. T6 r1405has(se_dump_stack*caller,T1405* C,T0* a1);
  590. extern se_frame_descriptor f1405has;
  591. T6 r1405is_equal(se_dump_stack*caller,T1405* C,T0* a1);
  592. extern se_frame_descriptor f1405is_equal;
  593. T6 r1405valid_index(se_dump_stack*caller,T1405* C,T2 a1);
  594. extern se_frame_descriptor f1405valid_index;
  595. T6 r1405set_path(se_dump_stack*caller,T1405* C,T0* a1);
  596. extern se_frame_descriptor f1405set_path;
  597. T2 r1405count(se_dump_stack*caller,T1405* C);
  598. extern se_frame_descriptor f1405count;
  599. void r1405make(se_dump_stack*caller,T1405* C);
  600. extern se_frame_descriptor f1405make;
  601. T6 r1405update(se_dump_stack*caller,T1405* C);
  602. extern se_frame_descriptor f1405update;
  603. T2 r1405upper(se_dump_stack*caller,T1405* C);
  604. extern se_frame_descriptor f1405upper;
  605. T0* r1405name(se_dump_stack*caller,T1405* C,T2 a1);
  606. extern se_frame_descriptor f1405name;
  607. T6 r701standard_is_equal(se_dump_stack*caller,T701* C,T0* a1);
  608. extern se_frame_descriptor f701standard_is_equal;
  609. T6 r701is_equal(se_dump_stack*caller,T701* C,T0* a1);
  610. extern se_frame_descriptor f701is_equal;
  611. extern T0*oBC1std_output;
  612. extern T0*oBC1io;
  613. T0* r701argument(se_dump_stack*caller,T701* C,T2 a1);
  614. extern se_frame_descriptor f701argument;
  615. void r701make(se_dump_stack*caller,T701* C);
  616. extern se_frame_descriptor f701make;
  617. T2 r701argument_count(se_dump_stack*caller,T701* C);
  618. extern se_frame_descriptor f701argument_count;
  619. extern int fBC1command_arguments;
  620. extern T0*oBC1command_arguments;
  621. T0* r701command_arguments(se_dump_stack*caller);
  622. extern se_frame_descriptor f701command_arguments;
  623. void r701list_directory(se_dump_stack*caller,T701* C,T0* a1);
  624. extern se_frame_descriptor f701list_directory;
  625. T6 r878standard_is_equal(se_dump_stack*caller,T878* C,T0* a1);
  626. extern se_frame_descriptor f878standard_is_equal;
  627. T6 r878is_equal(se_dump_stack*caller,T878* C,T0* a1);
  628. extern se_frame_descriptor f878is_equal;
  629. void r878put_string(se_dump_stack*caller,T878* C,T0* a1);
  630. extern se_frame_descriptor f878put_string;
  631. void r878make(se_dump_stack*caller,T878* C);
  632. extern se_frame_descriptor f878make;
  633. void r878put_character(se_dump_stack*caller,T878* C,T3 a1);
  634. extern se_frame_descriptor f878put_character;
  635. extern int fBC1070tmp_string;
  636. extern T0*oBC1070tmp_string;
  637. T0* r878tmp_string(se_dump_stack*caller);
  638. extern se_frame_descriptor f878tmp_string;
  639. void r878put_integer(se_dump_stack*caller,T878* C,T2 a1);
  640. extern se_frame_descriptor f878put_integer;
  641. T6 r2074standard_is_equal(se_dump_stack*caller,T2074* C,T0* a1);
  642. extern se_frame_descriptor f2074standard_is_equal;
  643. T6 r2074is_equal(se_dump_stack*caller,T2074* C,T0* a1);
  644. extern se_frame_descriptor f2074is_equal;
  645. void r2074put_string(se_dump_stack*caller,T2074* C,T0* a1);
  646. extern se_frame_descriptor f2074put_string;
  647. void r2074make(se_dump_stack*caller,T2074* C);
  648. extern se_frame_descriptor f2074make;
  649. void r2074put_character(se_dump_stack*caller,T2074* C,T3 a1);
  650. extern se_frame_descriptor f2074put_character;
  651. T0* r2074tmp_string(se_dump_stack*caller);
  652. extern se_frame_descriptor f2074tmp_string;
  653. void r2074put_integer(se_dump_stack*caller,T2074* C,T2 a1);
  654. extern se_frame_descriptor f2074put_integer;
  655. T6 r714standard_is_equal(se_dump_stack*caller,T714* C,T0* a1);
  656. extern se_frame_descriptor f714standard_is_equal;
  657. T6 r714is_equal(se_dump_stack*caller,T714* C,T0* a1);
  658. extern se_frame_descriptor f714is_equal;
  659. T6 r528standard_is_equal(se_dump_stack*caller,T528* C,T0* a1);
  660. extern se_frame_descriptor f528standard_is_equal;
  661. T6 r528is_equal(se_dump_stack*caller,T528* C,T0* a1);
  662. extern se_frame_descriptor f528is_equal;
  663. extern T701*eiffel_root_object;
  664. extern int se_argc;
  665. extern char**se_argv;
  666. #define SE_MAXID 2136
  667. extern T7* g[];
  668. extern T7* t[];
  669. extern char* p[];
  670. extern void(*se_prinT[2136])(void**);
  671. void initialize_eiffel_runtime(int argc,char*argv[]);
  672. extern T7*ms701_288aa;
  673. extern T7*ms701_52800;
  674. extern T7*ms701_31430;
  675. extern T7*ms701_17488;
  676. extern T7*ms2_8350;
  677. extern T7*ms701_288a;
  678. extern T7*ms701_36322;
  679. extern T7*ms701_288;
  680. void se_msi1(void);
  681. void manifest_string_mark1(void);
  682. void once_function_mark(void);
  683. void gc_start(void);
  684. extern na_env na_env2135;
  685. typedef struct B660 gc660;
  686. struct B660{T660 object;union {int flag;gc660*next;} header;};
  687. extern gc660*store660;
  688. extern int store_left660;
  689. extern fsoc*store_chunk660;
  690. extern gc660*gc_free660;
  691. typedef struct B474 gc474;
  692. struct B474{T474 object;union {int flag;gc474*next;} header;};
  693. extern gc474*store474;
  694. extern int store_left474;
  695. extern fsoc*store_chunk474;
  696. extern gc474*gc_free474;
  697. typedef struct B1405 gc1405;
  698. struct B1405{T1405 object;union {int flag;gc1405*next;} header;};
  699. extern gc1405*store1405;
  700. extern int store_left1405;
  701. extern fsoc*store_chunk1405;
  702. extern gc1405*gc_free1405;
  703. typedef struct B701 gc701;
  704. struct B701{T701 object;union {int flag;gc701*next;} header;};
  705. extern gc701*store701;
  706. extern int store_left701;
  707. extern fsoc*store_chunk701;
  708. extern gc701*gc_free701;
  709. typedef struct B1886 gc1886;
  710. struct B1886{T1886 object;union {int flag;gc1886*next;} header;};
  711. extern gc1886*store1886;
  712. extern int store_left1886;
  713. extern fsoc*store_chunk1886;
  714. extern gc1886*gc_free1886;
  715. extern na_env na_env9;
  716. typedef struct B7 gc7;
  717. struct B7{T7 object;union {int flag;gc7*next;} header;};
  718. extern gc7*store7;
  719. extern int store_left7;
  720. extern fsoc*store_chunk7;
  721. extern gc7*gc_free7;
  722. typedef struct B878 gc878;
  723. struct B878{T878 object;union {int flag;gc878*next;} header;};
  724. extern gc878*store878;
  725. extern int store_left878;
  726. extern fsoc*store_chunk878;
  727. extern gc878*gc_free878;
  728. typedef struct B2074 gc2074;
  729. struct B2074{T2074 object;union {int flag;gc2074*next;} header;};
  730. extern gc2074*store2074;
  731. extern int store_left2074;
  732. extern fsoc*store_chunk2074;
  733. extern gc2074*gc_free2074;
  734. typedef struct B714 gc714;
  735. struct B714{T714 object;union {int flag;gc714*next;} header;};
  736. extern gc714*store714;
  737. extern int store_left714;
  738. extern fsoc*store_chunk714;
  739. extern gc714*gc_free714;
  740. typedef struct B528 gc528;
  741. struct B528{T528 object;union {int flag;gc528*next;} header;};
  742. extern gc528*store528;
  743. extern int store_left528;
  744. extern fsoc*store_chunk528;
  745. extern gc528*gc_free528;
  746. void gc_mark2135(T2135 o);
  747. T2135 new2135(int size);
  748. void gc_sweep660(fsoc*c);
  749. void gc_mark660(T660*o);
  750. void gc_align_mark660(fsoc*c,gc660*p);
  751. extern fsoc H660;
  752. T660*new660(void);
  753. void gc_sweep474(fsoc*c);
  754. void gc_mark474(T474*o);
  755. void gc_align_mark474(fsoc*c,gc474*p);
  756. extern fsoc H474;
  757. T474*new474(void);
  758. void gc_sweep1405(fsoc*c);
  759. void gc_mark1405(T1405*o);
  760. void gc_align_mark1405(fsoc*c,gc1405*p);
  761. extern fsoc H1405;
  762. T1405*new1405(void);
  763. void gc_sweep701(fsoc*c);
  764. void gc_mark701(T701*o);
  765. void gc_align_mark701(fsoc*c,gc701*p);
  766. extern fsoc H701;
  767. T701*new701(void);
  768. void gc_sweep1886(fsoc*c);
  769. void gc_mark1886(T1886*o);
  770. void gc_align_mark1886(fsoc*c,gc1886*p);
  771. extern fsoc H1886;
  772. T1886*new1886(void);
  773. void gc_mark9(T9 o);
  774. T9 new9(int size);
  775. void gc_sweep7(fsoc*c);
  776. void gc_mark7(T7*o);
  777. void gc_align_mark7(fsoc*c,gc7*p);
  778. extern fsoc H7;
  779. T7*new7(void);
  780. void gc_sweep878(fsoc*c);
  781. void gc_mark878(T878*o);
  782. void gc_align_mark878(fsoc*c,gc878*p);
  783. extern fsoc H878;
  784. T878*new878(void);
  785. void gc_sweep2074(fsoc*c);
  786. void gc_mark2074(T2074*o);
  787. void gc_align_mark2074(fsoc*c,gc2074*p);
  788. extern fsoc H2074;
  789. T2074*new2074(void);
  790. void gc_sweep714(fsoc*c);
  791. void gc_mark714(T714*o);
  792. void gc_align_mark714(fsoc*c,gc714*p);
  793. extern fsoc H714;
  794. T714*new714(void);
  795. void gc_sweep528(fsoc*c);
  796. void gc_mark528(T528*o);
  797. void gc_align_mark528(fsoc*c,gc528*p);
  798. extern fsoc H528;
  799. T528*new528(void);
  800. void Xgc_mark878(T0*o);
  801. T6 X98standard_is_equal(se_dump_stack*caller,int l,int c,int f, void *C,T0* a1);
  802. T6 X98is_equal(se_dump_stack*caller,int l,int c,int f, void *C,T0* a1);
  803. T6 X878standard_is_equal(se_dump_stack*caller,int l,int c,int f, void *C,T0* a1);
  804. T6 X878is_equal(se_dump_stack*caller,int l,int c,int f, void *C,T0* a1);
  805. void X878put_string(se_dump_stack*caller,int l,int c,int f, void *C,T0* a1);
  806. void X878put_character(se_dump_stack*caller,int l,int c,int f, void *C,T3 a1);
  807. void X878put_integer(se_dump_stack*caller,int l,int c,int f, void *C,T2 a1);
  808.  
  809.