home *** CD-ROM | disk | FTP | other *** search
/ Amiga ACS 1998 #4 / amigaacscoverdisc1998-041998.iso / utilities / shareware / dev / ppcsmalleiffel / source.lha / bin_c / compile_to_c13.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  87.3 KB  |  2,660 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "compile_to_c.h"
  9. /*No:ONCE_PROCEDURE.arguments*/
  10. T0* r134try_to_undefine(T134* C,T0* a1,T0* a2){
  11. T0* R=NULL;
  12. X776undefine_in(a1,a2);
  13. R=r134try_to_undefine_aux(C,a1,a2);
  14. /*IF*/if ((R)!=((void*)(NULL))) {
  15. /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T134*)C))->_clients/*24*/);
  16. /*]*/
  17. }
  18. else {
  19. r605fatal_undefine(((T605*)a2),a1);
  20. }
  21. /*FI*/return R;
  22. }
  23. T0*oBC359assertion_collector=NULL;
  24. /*No:ONCE_PROCEDURE.is_deferred*/
  25. /*No:ONCE_PROCEDURE.fz_bad_assertion*/
  26. T0* r134runnable(T0* a1,T0* a2,T0* a3){
  27. T0* R=NULL;
  28. T0* _a=NULL;
  29. int _i=0;
  30. /*IF*/if (!(r608empty(((T608*)a1)))) {
  31. R=r608twin(((T608*)a1));
  32. _i=(((T608*)((T608*)R)))->_upper/*8*/;
  33. while (!((_i)==(0))) {
  34. r604push(((T604*)(oBC364small_eiffel)),a3);
  35. _a=r348to_runnable(((T348*)(r608item(((T608*)R),_i))),a2);
  36. /*IF*/if ((_a)==((void*)(NULL))) {
  37. r134error(r348start_position(((T348*)(r608item(((T608*)R),_i)))),((T0*)ms57_470));
  38. }
  39. else {
  40. /*[IRF3.6put*/{T608* C1=((T608*)R);
  41. T0* b1=_a;
  42. int b2=_i;
  43. ((((T608*)C1))->_storage/*0*/)[(b2)-((((T608*)C1))->_lower/*12*/)]=(b1);
  44. }/*]*/
  45. }
  46. /*FI*/r604pop(((T604*)(oBC364small_eiffel)));
  47. _i=(_i)-(1);
  48. }
  49. }
  50. /*FI*/return R;
  51. }
  52. /*No:ONCE_PROCEDURE.rescue_compound*/
  53. void r134add_into(T134* C,T0* a1){
  54. T0* _fn=NULL;
  55. int _i=0;
  56. C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T134*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
  57. _i=1;
  58. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T134*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  59. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T134*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
  60. /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
  61. _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)/*)*//*)*/);
  62. r683add_position(X776start_position(_fn));
  63. r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T134*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
  64. r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
  65. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  66. r7append(((T7*)(oBC683explanation)),b1);
  67. }/*]*/
  68. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  69. }
  70. else {
  71. r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
  72. }
  73. /*FI*/_i=(_i)+(1);
  74. }
  75. }
  76. /*No:ONCE_PROCEDURE.end_comment*/
  77. T0*oBC359header_comment_memory=NULL;
  78. T0* r134try_to_undefine_aux(T134* C,T0* a1,T0* a2){
  79. T0* R=NULL;
  80. {T853*n=malloc(sizeof(*n));
  81. *n=M853;
  82. r853from_effective(n,a1,(((T134*)C))->_arguments/*28*/,(((T134*)C))->_require_assertion/*36*/,(((T134*)C))->_ensure_assertion/*40*/,a2);
  83. R=(T0*)n;
  84. }
  85. return R;
  86. }
  87. void r134make(T134* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7){
  88. r134make_routine(C,a1,a2,a3,a4,a5);
  89. C->_local_vars=a6;
  90. C->_routine_body=a7;
  91. C->_use_current_state=1024;
  92. }
  93. /*No:ONCE_PROCEDURE.not_computed*/
  94. /*No:ONCE_PROCEDURE.nb_errors*/
  95. void r134make_routine(T134* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  96. r134make_e_feature(C,a1,NULL);
  97. C->_header_comment=a4;
  98. C->_arguments=a2;
  99. C->_obsolete_mark=a3;
  100. C->_require_assertion=a5;
  101. }
  102. /*No:ONCE_PROCEDURE.local_vars*/
  103. void r134mapping_c_name_in(T134* C,T0* a1){
  104. r605mapping_c_in(((T605*)((((T134*)C))->_base_class/*4*/)),a1);
  105. r7append(((T7*)a1),X776to_key(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T134*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/));
  106. }
  107. void r134set_header_comment(T134* C,T0* a1){
  108. /*IF*/if (((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)>(1))) {
  109. C->_end_comment=a1;
  110. }
  111. /*FI*/}
  112. T0* r134start_position(T134* C){
  113. T0* R=NULL;
  114. R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T134*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  115. return R;
  116. }
  117. T0* r134to_run_feature(T134* C,T0* a1,T0* a2){
  118. T0* R=NULL;
  119. r134check_obsolete(C);
  120. {T869*n=malloc(sizeof(*n));
  121. *n=M869;
  122. r869make(n,a1,a2,(T0*)C);
  123. R=(T0*)n;
  124. }
  125. return R;
  126. }
  127. /*No:ONCE_PROCEDURE.ensure_assertion*/
  128. /*No:ONCE_PROCEDURE.code_require*/
  129. T0* r134run_ensure(T0* a1){
  130. T0* R=NULL;
  131. T0* _r=NULL;
  132. r608clear(((T608*)(oBC359assertion_collector)));
  133. /*[IRF3.3clear*/{T0* _default_item=NULL;
  134. ((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
  135. }/*]*/
  136. r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/)))),1002,/*X496*/((T0*)(((T832*)((T832*)a1)))->_name/*16*/));
  137. _r=r134runnable(oBC359assertion_collector,/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/),a1);
  138. /*IF*/if ((_r)!=((void*)(NULL))) {
  139. {T633*n=malloc(sizeof(*n));
  140. *n=M633;
  141. r633from_runnable(n,_r);
  142. R=(T0*)n;
  143. }
  144. /*[IRF3.3set_header_comment*/((((T633*)(((T633*)R))))->_header_comment)=((((T56*)((T56*)(oBC359header_comment_memory))))->_item/*0*/);
  145. /*]*/
  146. /*[IRF3.3clear*/{T0* _default_item=NULL;
  147. ((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
  148. }/*]*/
  149. }
  150. /*FI*/return R;
  151. }
  152. T0* r134run_require(T0* a1){
  153. T0* R=NULL;
  154. T0* _ar=NULL;
  155. T0* _hc=NULL;
  156. T0* _er=NULL;
  157. T0* _r=NULL;
  158. int _i=0;
  159. r522clear(((T522*)(oBC359require_collector)));
  160. r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/)))),1001,/*X496*/((T0*)(((T832*)((T832*)a1)))->_name/*16*/));
  161. /*IF*/if (!(r522empty(((T522*)(oBC359require_collector))))) {
  162. _i=1;
  163. while (!((_i)>((((T522*)((T522*)(oBC359require_collector))))->_upper/*8*/))) {
  164. _er=r522item(((T522*)(oBC359require_collector)),_i);
  165. _hc=(((T343*)((T343*)_er)))->_header_comment/*4*/;
  166. /*IF*/if (!(/*(IRF4.7empty*/((((T343*)((T343*)_er)))->_list/*8*/)==(NULL)/*)*/)) {
  167. _r=r134runnable((((T343*)((T343*)_er)))->_list/*8*/,/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/),a1);
  168. /*IF*/if ((_r)!=((void*)(NULL))) {
  169. {T343*n=malloc(sizeof(*n));
  170. *n=M343;
  171. r343from_runnable(n,_r);
  172. _er=(T0*)n;
  173. }
  174. /*[IRF3.3set_header_comment*/((((T343*)(((T343*)_er))))->_header_comment)=(_hc);
  175. /*]*/
  176. /*IF*/if ((_ar)==((void*)(NULL))) {
  177. _ar=se_ma522(1,_er);
  178. }
  179. else {
  180. r522add_last(((T522*)_ar),_er);
  181. }
  182. /*FI*/}
  183. /*FI*/}
  184. /*FI*/_i=(_i)+(1);
  185. }
  186. /*IF*/if ((_ar)!=((void*)(NULL))) {
  187. {T567*n=malloc(sizeof(*n));
  188. *n=M567;
  189. /*[IRF3.3make*/((((T567*)(n)))->_list)=(_ar);
  190. /*]*/
  191. R=(T0*)n;
  192. }
  193. }
  194. /*FI*/}
  195. /*FI*/return R;
  196. }
  197. /*No:ONCE_PROCEDURE.result_type*/
  198. /*No:ONCE_PROCEDURE.fz_03*/
  199. /*No:ONCE_PROCEDURE.em1*/
  200. /*No:ONCE_PROCEDURE.obsolete_mark*/
  201. /*No:ONCE_PROCEDURE.set_clients*/
  202. /*No:ONCE_PROCEDURE.em2*/
  203. /*No:ONCE_PROCEDURE.names*/
  204. /*No:ONCE_PROCEDURE.require_assertion*/
  205. /*No:ONCE_PROCEDURE.use_current_state*/
  206. /*No:ONCE_PROCEDURE.code_ensure*/
  207. int r134stupid_switch(T134* C,T0* a1,T0* a2){
  208. int R=0;
  209. R=((((T134*)C))->_routine_body/*52*/)==((void*)(NULL));
  210. return R;
  211. }
  212. void r134set_rescue_compound(T134* C,T0* a1){
  213. /*IF*/if (((a1)!=((void*)(NULL)))&&(/*(IRF4.1is_deferred*/0/*)*/)) {
  214. r134error(r134start_position(C),((T0*)ms6_368));
  215. }
  216. /*FI*/C->_rescue_compound=a1;
  217. }
  218. int r134can_hide(T134* C,T0* a1,T0* a2){
  219. int R=0;
  220. /*IF*/if (((((T134*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  221. /*IF*/if ((((((T134*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  222. r683add_position(X359start_position(a1));
  223. r134error(r134start_position(C),((T0*)ms5_359));
  224. }
  225. /*FI*/}
  226. /*FI*//*IF*/if (((((T134*)C))->_arguments/*28*/)!=((void*)(X359arguments(a1)))) {
  227. /*IF*/if ((((((T134*)C))->_arguments/*28*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  228. r683add_position(X359start_position(a1));
  229. r134error(r134start_position(C),((T0*)ms6_359));
  230. }
  231.  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*//*)*/)) {
  232. r683add_position(X359start_position(a1));
  233. r134error(r134start_position(C),((T0*)ms7_359));
  234. }
  235. /*FI*/}
  236. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  237. /*IF*/if (((((T134*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  238. /*IF*/if (!(X291is_a_in((((T134*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  239. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  240. r7append(((T7*)(oBC683explanation)),b1);
  241. }/*]*/
  242. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  243. r7append(((T7*)(oBC683explanation)),b1);
  244. }/*]*/
  245. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  246. }
  247. /*FI*/}
  248. /*FI*/}
  249. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  250. /*IF*/if (((((T134*)C))->_arguments/*28*/)!=((void*)(NULL))) {
  251. /*IF*/if (!(r31is_a_in(((T31*)((((T134*)C))->_arguments/*28*/)),X359arguments(a1),a2))) {
  252. r683add_position(X359start_position(a1));
  253. r683add_position(r134start_position(C));
  254. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  255. r7append(((T7*)(oBC683explanation)),b1);
  256. }/*]*/
  257. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  258. r7append(((T7*)(oBC683explanation)),b1);
  259. }/*]*/
  260. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  261. }
  262. /*FI*/}
  263. /*FI*/}
  264. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  265. return R;
  266. }
  267. /*No:ONCE_PROCEDURE.header_comment*/
  268. /*No:ONCE_PROCEDURE.routine_body*/
  269. int r134is_merge_with(T134* C,T0* a1,T0* a2){
  270. int R=0;
  271. /*IF*/if (((((T134*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  272. /*IF*/if ((((((T134*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  273. r683add_position(X359start_position(a1));
  274. r134error(r134start_position(C),((T0*)ms2_359));
  275. }
  276. /*FI*/}
  277. /*FI*//*IF*/if (((((T134*)C))->_arguments/*28*/)!=((void*)(X359arguments(a1)))) {
  278. /*IF*/if ((((((T134*)C))->_arguments/*28*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  279. r683add_position(X359start_position(a1));
  280. r134error(r134start_position(C),((T0*)ms3_359));
  281. }
  282.  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*//*)*/)) {
  283. r683add_position(X359start_position(a1));
  284. r134error(r134start_position(C),((T0*)ms4_359));
  285. }
  286. /*FI*/}
  287. /*FI*//*IF*/if (((((T134*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  288. /*IF*/if (!(X291is_a_in((((T134*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  289. r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
  290. }
  291. /*FI*/}
  292. /*FI*//*IF*/if (((((T134*)C))->_arguments/*28*/)!=((void*)(NULL))) {
  293. /*IF*/if (!(r31is_a_in(((T31*)((((T134*)C))->_arguments/*28*/)),X359arguments(a1),a2))) {
  294. r683add_position(X359start_position(a1));
  295. r134error(r134start_position(C),((T0*)ms12_359));
  296. }
  297. /*FI*/}
  298. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  299. return R;
  300. }
  301. /*No:ONCE_PROCEDURE.fz_dot*/
  302. /*No:ONCE_PROCEDURE.set_ensure_assertion*/
  303. /*No:ONCE_PROCEDURE.first_name*/
  304. /*No:ONCE_PROCEDURE.clients*/
  305. void r134collect_for(T134* C,int a1){
  306. /*IF*/if ((a1)==(1001)) {
  307. /*IF*/if (((((T134*)C))->_require_assertion/*36*/)!=((void*)(NULL))) {
  308. /*IF*/if (!(r522fast_has(((T522*)(oBC359require_collector)),(((T134*)C))->_require_assertion/*36*/))) {
  309. r522add_last(((T522*)(oBC359require_collector)),(((T134*)C))->_require_assertion/*36*/);
  310. }
  311. /*FI*/}
  312. /*FI*/}
  313. else {
  314. /*IF*/if (((((T134*)C))->_ensure_assertion/*40*/)!=((void*)(NULL))) {
  315. /*[IRF3.3set_item*/((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=((((T633*)((T633*)((((T134*)C))->_ensure_assertion/*40*/))))->_header_comment/*4*/);
  316. /*]*/
  317. r633add_into(((T633*)((((T134*)C))->_ensure_assertion/*40*/)),oBC359assertion_collector);
  318. }
  319. /*FI*/}
  320. /*FI*/}
  321. void r134error(T0* a1,T0* a2){
  322. r683add_position(a1);
  323. r683error(((T683*)(oBC364eh)),a2);
  324. }
  325. /*No:ONCE_PROCEDURE.base_class*/
  326. /*No:ONCE_PROCEDURE.base_class_name*/
  327. T0*oBC359require_collector=NULL;
  328. void r134make_e_feature(T134* C,T0* a1,T0* a2){
  329. C->_names=a1;
  330. C->_result_type=a2;
  331. }
  332. void r134check_obsolete(T134* C){
  333. /*IF*/if (!((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/)) {
  334. /*IF*/if (((((T134*)C))->_obsolete_mark/*32*/)!=((void*)(NULL))) {
  335. /*[IRF3.6append*/{T0* b1=((T0*)ms7_368);
  336. r7append(((T7*)(oBC683explanation)),b1);
  337. }/*]*/
  338. /*[IRF3.6append*/{T0* b1=(((T805*)((T805*)((((T134*)C))->_obsolete_mark/*32*/))))->_to_string/*16*/;
  339. r7append(((T7*)(oBC683explanation)),b1);
  340. }/*]*/
  341. r134warning(r134start_position(C),((T0*)ms137_470));
  342. }
  343. /*FI*/}
  344. /*FI*/}
  345. void r134warning(T0* a1,T0* a2){
  346. r683add_position(a1);
  347. r683warning(((T683*)(oBC364eh)),a2);
  348. }
  349. void r916add_function(T0* a1){
  350. r222add_last(((T222*)(oBC916function_list)),a1);
  351. }
  352. /*No:ONCE_ROUTINE_POOL.fz_gc_mark*/
  353. /*No:ONCE_ROUTINE_POOL.fz_00*/
  354. /*No:ONCE_ROUTINE_POOL.fz_cast_void_star*/
  355. /*No:ONCE_ROUTINE_POOL.fz_c_if_neq_null*/
  356. T0*oBC916function_list=NULL;
  357. void r916gc_mark_in(T0* a1){
  358. T0* _t=NULL;
  359. T0* _rf6=NULL;
  360. int _id=0;
  361. int _i=0;
  362. /*IF*/if ((/*(IRF4.6count*/((((T222*)((T222*)(oBC916function_list))))->_upper/*12*/)+(1)/*)*/)>(0)) {
  363. _i=(((T222*)((T222*)(oBC916function_list))))->_upper/*12*/;
  364. while (!((_i)<(0))) {
  365. _rf6=/*(IRF4.6item*/((((T222*)((T222*)(oBC916function_list))))->_storage/*4*/)[_i]/*)*/;
  366. _t=(((T868*)((T868*)_rf6)))->_result_type/*24*/;
  367. /*IF*/if (X291need_gc_mark_function(_t)) {
  368. _id=X291id(_t);
  369. /*IF*/if (X291is_reference(_t)) {
  370. r7append(((T7*)a1),((T0*)ms88_470));
  371. r868once_result_in(((T868*)_rf6),a1);
  372. r7extend(((T7*)a1),'\51');
  373. r7append(((T7*)a1),((T0*)ms107_470));
  374. r2append_in(_id,a1);
  375. r7extend(((T7*)a1),'\50');
  376. r7append(((T7*)a1),((T0*)ms86_470));
  377. r868once_result_in(((T868*)_rf6),a1);
  378. r7extend(((T7*)a1),'\51');
  379. }
  380.  else if (X291is_user_expanded(_t)) {
  381. }
  382. /*FI*/r7append(((T7*)a1),((T0*)ms134_470));
  383. }
  384. /*FI*/_i=(_i)-(1);
  385. }
  386. }
  387. /*FI*/}
  388. T0*oBC916procedure_list=NULL;
  389. void r916add_procedure(T0* a1){
  390. r185add_last(((T185*)(oBC916procedure_list)),a1);
  391. }
  392. int r868id(T868* C){
  393. int R=0;
  394. R=X291id((((T868*)C))->_current_type/*4*/);
  395. return R;
  396. }
  397. /*No:RUN_FEATURE_6.arguments*/
  398. T0* r868once_mark(T868* C){
  399. T0* R=NULL;
  400. R=X776to_string(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T844*)((T844*)((((T868*)C))->_base_feature/*44*/))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  401. return R;
  402. }
  403. void r868once_result(T868* C){
  404. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC496c_code)))))->_count)=(0);
  405. /*]*/
  406. r868once_result_in(C,oBC496c_code);
  407. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC496c_code);
  408. /*]*/
  409. }
  410. /*No:RUN_FEATURE_6.ucs_true*/
  411. void r868once_result_in(T868* C,T0* a1){
  412. r7extend(((T7*)a1),'o');
  413. r844mapping_c_name_in(((T844*)((((T868*)C))->_base_feature/*44*/)),a1);
  414. }
  415. void r868once_flag(T868* C){
  416. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC496c_code)))))->_count)=(0);
  417. /*]*/
  418. r868once_flag_in(C,oBC496c_code);
  419. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC496c_code);
  420. /*]*/
  421. }
  422. void r868c_define(T868* C){
  423. T0* _bfbc=NULL;
  424. _bfbc=(((T844*)((T844*)((((T868*)C))->_base_feature/*44*/))))->_base_class/*4*/;
  425. /*IF*/if (r868is_pre_computable(C)) {
  426. /*IF*/if (!(r605once_flag(((T605*)_bfbc),r868once_mark(C)))) {
  427. r868once_variable(C);
  428. }
  429. /*FI*/r324incr_pre_computed_once_count(((T324*)(oBC364cpp)),(T0*)C);
  430. }
  431. else {
  432. /*IF*/if (!(r605once_flag(((T605*)_bfbc),r868once_mark(C)))) {
  433. r868once_boolean(C);
  434. r868once_variable(C);
  435. }
  436. /*FI*/r868define_prototype(C);
  437. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms1_868));
  438. /*]*/
  439. r868once_flag(C);
  440. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms2_868));
  441. /*]*/
  442. r868define_opening(C);
  443. r868once_flag(C);
  444. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms3_868));
  445. /*]*/
  446. /*IF*/if (((((T868*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
  447. r592compile_to_c(((T592*)((((T868*)C))->_routine_body/*32*/)));
  448. }
  449. /*FI*/r868define_closing(C);
  450. r868once_result(C);
  451. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms4_868));
  452. /*]*/
  453. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms5_868));
  454. /*]*/
  455. r868once_result(C);
  456. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms6_868));
  457. /*]*/
  458. }
  459. /*FI*/}
  460. void r868c_pre_computing(T868* C){
  461. T0* _bfbc=NULL;
  462. _bfbc=(((T844*)((T844*)((((T868*)C))->_base_feature/*44*/))))->_base_class/*4*/;
  463. r306put_character(((T306*)(oBC364echo)),'\11');
  464. r306put_string(((T306*)(oBC364echo)),(((T451*)((T451*)((((T605*)((T605*)_bfbc)))->_base_class_name/*24*/))))->_to_string/*0*/);
  465. r306put_character(((T306*)(oBC364echo)),'\56');
  466. r306put_string(((T306*)(oBC364echo)),X776to_string((((T868*)C))->_name/*16*/));
  467. r306put_character(((T306*)(oBC364echo)),'\n');
  468. /*IF*/if (r590require_check(((T590*)(oBC364run_control)))) {
  469. /*IF*/if (((((T868*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
  470. r567compile_to_c(((T567*)((((T868*)C))->_require_assertion/*28*/)));
  471. }
  472. /*FI*/}
  473. /*FI*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC868tmp_string)))))->_count)=(0);
  474. /*]*/
  475. r7extend(((T7*)(oBC868tmp_string)),'\173');
  476. X291c_type_for_result_in((((T868*)C))->_result_type/*24*/,oBC868tmp_string);
  477. r7extend(((T7*)(oBC868tmp_string)),'\40');
  478. r7extend(((T7*)(oBC868tmp_string)),'R');
  479. r7extend(((T7*)(oBC868tmp_string)),'\75');
  480. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC868tmp_string);
  481. /*]*/
  482. X291c_initialize((((T868*)C))->_result_type/*24*/);
  483. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms134_470));
  484. /*]*/
  485. /*IF*/if (((((T868*)C))->_local_vars/*48*/)!=((void*)(NULL))) {
  486. r620compile_to_c(((T620*)((((T868*)C))->_local_vars/*48*/)));
  487. }
  488. /*FI*//*IF*/if (((((T868*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
  489. r592compile_to_c(((T592*)((((T868*)C))->_routine_body/*32*/)));
  490. }
  491. /*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
  492. /*IF*/if (((((T868*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  493. r633compile_to_c(((T633*)((((T868*)C))->_ensure_assertion/*36*/)));
  494. }
  495. /*FI*/}
  496. /*FI*/r868once_result(C);
  497. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms9_868));
  498. /*]*/
  499. }
  500. /*No:RUN_FEATURE_6.actuals_clients*/
  501. void r868once_flag_in(T868* C,T0* a1){
  502. r7extend(((T7*)a1),'f');
  503. r844mapping_c_name_in(((T844*)((((T868*)C))->_base_feature/*44*/)),a1);
  504. }
  505. void r868define_closing(T868* C){
  506. /*IF*/if (r868use_current(C)) {
  507. r324current_class_invariant(((T324*)(oBC364cpp)),(((T868*)C))->_current_type/*4*/);
  508. }
  509. /*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
  510. /*IF*/if (((((T868*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  511. r633compile_to_c(((T633*)((((T868*)C))->_ensure_assertion/*36*/)));
  512. }
  513. /*FI*/}
  514. /*FI*//*IF*/if (r590no_check(((T590*)(oBC364run_control)))) {
  515. /*[IRF3.6rs_unlink*/{T324* C1=((T324*)(oBC364cpp));
  516. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)C1))->_current_out/*56*/)),((T0*)ms156_324));
  517. /*]*/
  518. }/*]*/
  519. }
  520. /*FI*/}
  521. /*No:RUN_FEATURE_6.ucs_in_computation*/
  522. void r868make(T868* C,T0* a1,T0* a2,T0* a3){
  523. C->_current_type=a1;
  524. C->_name=a2;
  525. C->_base_feature=a3;
  526. r199put(((T199*)((((T355*)((T355*)(r868run_class(C)))))->_feature_dictionary/*24*/)),(T0*)C,X776to_key(a2));
  527. r604incr_magic_count(((T604*)(oBC364small_eiffel)));
  528. C->_use_current_state=1005;
  529. r604push(((T604*)(oBC364small_eiffel)),(T0*)C);
  530. r868initialize(C);
  531. r604pop(((T604*)(oBC364small_eiffel)));
  532. }
  533. void r868std_compute_use_current(T868* C){
  534. /*IF*/if (((((T868*)C))->_use_current_state/*40*/)==(1006)) {
  535. /*IF*/if (((((T868*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
  536. /*IF*/if (r567use_current(((T567*)((((T868*)C))->_require_assertion/*28*/)))) {
  537. C->_use_current_state=1004;
  538. }
  539. /*FI*/}
  540. /*FI*/}
  541. /*FI*//*IF*/if (((((T868*)C))->_use_current_state/*40*/)==(1006)) {
  542. /*IF*/if (((((T868*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
  543. /*IF*/if (r592use_current(((T592*)((((T868*)C))->_routine_body/*32*/)))) {
  544. C->_use_current_state=1004;
  545. }
  546. /*FI*/}
  547. /*FI*/}
  548. /*FI*//*IF*/if (((((T868*)C))->_use_current_state/*40*/)==(1006)) {
  549. /*IF*/if (((((T868*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  550. /*IF*/if (r633use_current(((T633*)((((T868*)C))->_ensure_assertion/*36*/)))) {
  551. C->_use_current_state=1004;
  552. }
  553. /*FI*/}
  554. /*FI*/}
  555. /*FI*//*IF*/if (((((T868*)C))->_use_current_state/*40*/)==(1006)) {
  556. C->_use_current_state=1003;
  557. }
  558. /*FI*/}
  559. /*No:RUN_FEATURE_6.name*/
  560. void r868default_mapping_function(T868* C){
  561. r868mapping_name(C);
  562. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  563. char b1='\50';
  564. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  565. }/*]*/
  566. /*]*/
  567. r324put_target_as_target(((T324*)(oBC364cpp)));
  568. /*IF*/if ((r868arg_count(C))>(0)) {
  569. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  570. char b1='\54';
  571. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  572. }/*]*/
  573. /*]*/
  574. r324put_arguments(((T324*)(oBC364cpp)));
  575. }
  576. /*FI*//*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  577. char b1='\51';
  578. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  579. }/*]*/
  580. /*]*/
  581. }
  582. void r868mapping_name(T868* C){
  583. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  584. char b1='r';
  585. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  586. }/*]*/
  587. /*]*/
  588. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),r868id(C));
  589. /*]*/
  590. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X776to_key((((T868*)C))->_name/*16*/));
  591. /*]*/
  592. }
  593. int r868arg_count(T868* C){
  594. int R=0;
  595. /*IF*/if (((((T868*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  596. R=/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T868*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/;
  597. }
  598. /*FI*/return R;
  599. }
  600. void r868routine_afd_check(T868* C){
  601. /*IF*/if (((((T868*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
  602. r567afd_check(((T567*)((((T868*)C))->_require_assertion/*28*/)));
  603. }
  604. /*FI*//*IF*/if (((((T868*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
  605. r592afd_check(((T592*)((((T868*)C))->_routine_body/*32*/)));
  606. }
  607. /*FI*//*IF*/if (((((T868*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  608. r633afd_check(((T633*)((((T868*)C))->_ensure_assertion/*36*/)));
  609. }
  610. /*FI*/}
  611. /*No:RUN_FEATURE_6.local_vars*/
  612. /*No:RUN_FEATURE_6.base_feature*/
  613. void r868define_opening(T868* C){
  614. T0* _t=NULL;
  615. int _i=0;
  616. /*IF*/if (((((T868*)C))->_result_type/*24*/)!=((void*)(NULL))) {
  617. _t=X291run_type((((T868*)C))->_result_type/*24*/);
  618. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC496c_code)))))->_count)=(0);
  619. /*]*/
  620. X291c_type_for_result_in(_t,oBC496c_code);
  621. r7extend(((T7*)(oBC496c_code)),'\40');
  622. r7extend(((T7*)(oBC496c_code)),'R');
  623. r7extend(((T7*)(oBC496c_code)),'\75');
  624. X291c_initialize_in(_t,oBC496c_code);
  625. r7append(((T7*)(oBC496c_code)),((T0*)ms134_470));
  626. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC496c_code);
  627. /*]*/
  628. }
  629. /*FI*//*IF*/if (((((T868*)C))->_local_vars/*48*/)!=((void*)(NULL))) {
  630. r620compile_to_c(((T620*)((((T868*)C))->_local_vars/*48*/)));
  631. }
  632. /*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
  633. /*IF*/if (((((T868*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  634. r633compile_to_c_old(((T633*)((((T868*)C))->_ensure_assertion/*36*/)));
  635. }
  636. /*FI*/}
  637. /*FI*//*IF*/if (((((T868*)C))->_local_vars/*48*/)!=((void*)(NULL))) {
  638. r620initialize_expanded(((T620*)((((T868*)C))->_local_vars/*48*/)));
  639. }
  640. /*FI*//*IF*/if (r590no_check(((T590*)(oBC364run_control)))) {
  641. r324rs_link(((T324*)(oBC364cpp)),(T0*)C);
  642. /*IF*/if (r868use_current(C)) {
  643. /*[IRF3.6rs_push_current*/{T324* C1=((T324*)(oBC364cpp));
  644. T0* b1=(((T868*)C))->_current_type/*4*/;
  645. r324rs_push(C1,((T0*)ms143_473),((T0*)ms157_324),b1);
  646. }/*]*/
  647. }
  648. /*FI*/_i=1;
  649. while (!((_i)>(r868arg_count(C)))) {
  650. _t=X291run_type(r31type(((T31*)((((T868*)C))->_arguments/*20*/)),_i));
  651. r324rs_push_argument(((T324*)(oBC364cpp)),(((T873*)((T873*)(/*(IRF4.6name*/r65item(((T65*)((((T31*)((T31*)((((T868*)C))->_arguments/*20*/))))->_flat_list/*12*/)),_i)/*)*/))))->_to_string/*12*/,_i,_t);
  652. _i=(_i)+(1);
  653. }
  654. /*IF*/if (((((T868*)C))->_result_type/*24*/)!=((void*)(NULL))) {
  655. /*[IRF3.6rs_push_result*/{T324* C1=((T324*)(oBC364cpp));
  656. T0* b1=X291run_type((((T868*)C))->_result_type/*24*/);
  657. r324rs_push(C1,((T0*)ms146_473),((T0*)ms158_324),b1);
  658. }/*]*/
  659. }
  660. /*FI*//*IF*/if (((((T868*)C))->_local_vars/*48*/)!=((void*)(NULL))) {
  661. _i=1;
  662. while (!((_i)>(/*(IRF4.6count*/(((T733*)((T733*)((((T620*)((T620*)((((T868*)C))->_local_vars/*48*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/))) {
  663. r39c_trace(((T39*)(/*(IRF4.6name*/r733item(((T733*)((((T620*)((T620*)((((T868*)C))->_local_vars/*48*/))))->_flat_list/*12*/)),_i)/*)*/)));
  664. _i=(_i)+(1);
  665. }
  666. }
  667. /*FI*/}
  668. /*FI*//*IF*/if (((((T868*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
  669. r567compile_to_c(((T567*)((((T868*)C))->_require_assertion/*28*/)));
  670. }
  671. /*FI*/}
  672. /*No:RUN_FEATURE_6.start_position*/
  673. /*No:RUN_FEATURE_6.us_std_output*/
  674. /*No:RUN_FEATURE_6.fz_00*/
  675. /*No:RUN_FEATURE_6.ensure_assertion*/
  676. int r868is_exported_in(T868* C,T0* a1){
  677. int R=0;
  678. R=r636gives_permission_to(((T636*)(r868clients(C))),a1);
  679. return R;
  680. }
  681. /*No:RUN_FEATURE_6.compute_use_current*/
  682. /*No:RUN_FEATURE_6.result_type*/
  683. /*No:RUN_FEATURE_6.us_std_error*/
  684. /*No:RUN_FEATURE_6.is_static*/
  685. T0*oBC364once_routine_pool=NULL;
  686. void r868add_client(T868* C,T0* a1){
  687. int _i=0;
  688. /*IF*/if (((((T868*)C))->_actuals_clients/*12*/)==((void*)(NULL))) {
  689. {T187*n=malloc(sizeof(*n));
  690. *n=M187;
  691. r187with_capacity(n,4);
  692. C->_actuals_clients=(T0*)n;
  693. }
  694. r187add_last(((T187*)((((T868*)C))->_actuals_clients/*12*/)),a1);
  695. }
  696. else {
  697. _i=r187fast_index_of(((T187*)((((T868*)C))->_actuals_clients/*12*/)),a1);
  698. /*IF*/if ((_i)>((((T187*)((T187*)((((T868*)C))->_actuals_clients/*12*/))))->_upper/*8*/)) {
  699. r187add_last(((T187*)((((T868*)C))->_actuals_clients/*12*/)),a1);
  700. }
  701. /*FI*/}
  702. /*FI*/r355add_client(((T355*)(r868run_class(C))),a1);
  703. }
  704. /*No:RUN_FEATURE_6.require_assertion*/
  705. T0*oBC868tmp_string=NULL;
  706. /*No:RUN_FEATURE_6.use_current_state*/
  707. T0*oBC496c_code=NULL;
  708. int r868can_be_dropped(T868* C){
  709. int R=0;
  710. /*IF*/if (r868is_pre_computable(C)) {
  711. R=1;
  712. }
  713. /*FI*/return R;
  714. }
  715. /*No:RUN_FEATURE_6.current_type*/
  716. T0* r868run_class(T868* C){
  717. T0* R=NULL;
  718. R=X291run_class((((T868*)C))->_current_type/*4*/);
  719. return R;
  720. }
  721. /*No:RUN_FEATURE_6.static_value_mem*/
  722. void r868define_prototype(T868* C){
  723. int _mem_id=0;
  724. _mem_id=r868id(C);
  725. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC496c_code)))))->_count)=(0);
  726. /*]*/
  727. /*IF*/if (((((T868*)C))->_result_type/*24*/)==((void*)(NULL))) {
  728. r7append(((T7*)(oBC496c_code)),((T0*)ms133_470));
  729. }
  730. else {
  731. X291c_type_for_result_in(X291run_type((((T868*)C))->_result_type/*24*/),oBC496c_code);
  732. }
  733. /*FI*/r7extend(((T7*)(oBC496c_code)),'\40');
  734. r7extend(((T7*)(oBC496c_code)),'r');
  735. r2append_in(_mem_id,oBC496c_code);
  736. X776mapping_c_in((((T868*)C))->_name/*16*/,oBC496c_code);
  737. r7extend(((T7*)(oBC496c_code)),'\50');
  738. /*IF*/if (r868use_current(C)) {
  739. X291c_type_for_target_in((((T868*)C))->_current_type/*4*/,oBC496c_code);
  740. r7extend(((T7*)(oBC496c_code)),'\40');
  741. r7extend(((T7*)(oBC496c_code)),'C');
  742. /*IF*/if (((((T868*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  743. r7extend(((T7*)(oBC496c_code)),'\54');
  744. }
  745. /*FI*/}
  746. /*FI*//*IF*/if (((((T868*)C))->_arguments/*20*/)==((void*)(NULL))) {
  747. /*IF*/if (!(r868use_current(C))) {
  748. r7append(((T7*)(oBC496c_code)),((T0*)ms133_470));
  749. }
  750. /*FI*/}
  751. else {
  752. r31compile_to_c_in(((T31*)((((T868*)C))->_arguments/*20*/)),oBC496c_code);
  753. }
  754. /*FI*/r7extend(((T7*)(oBC496c_code)),'\51');
  755. r324put_c_heading(((T324*)(oBC364cpp)),oBC496c_code);
  756. /*[IRF3.3swap_on_c*/((((T324*)(((T324*)(oBC364cpp)))))->_current_out)=(oBC324out_c);
  757. /*]*/
  758. }
  759. T0*oBC496c_code2=NULL;
  760. /*No:RUN_FEATURE_6.ucs_not_computed*/
  761. /*No:RUN_FEATURE_6.fz_int*/
  762. void r868fall_down(T868* C){
  763. T0* _rf=NULL;
  764. T0* _sub_name=NULL;
  765. T0* _sub_bc=NULL;
  766. T0* _current_bc=NULL;
  767. T0* _sub_rc=NULL;
  768. T0* _current_rc=NULL;
  769. int _i=0;
  770. T0* _running=NULL;
  771. _current_rc=X291run_class((((T868*)C))->_current_type/*4*/);
  772. _running=(((T355*)((T355*)_current_rc)))->_running/*12*/;
  773. /*IF*/if ((_running)!=((void*)(NULL))) {
  774. _current_bc=X291base_class((((T868*)C))->_current_type/*4*/);
  775. _i=(((T396*)((T396*)_running)))->_lower/*12*/;
  776. while (!((_i)>((((T396*)((T396*)_running)))->_upper/*8*/))) {
  777. _sub_rc=r396item(((T396*)_running),_i);
  778. /*IF*/if ((_sub_rc)!=((void*)(_current_rc))) {
  779. _sub_bc=X291base_class((((T355*)((T355*)_sub_rc)))->_current_type/*0*/);
  780. _sub_name=r605new_name_of(((T605*)_sub_bc),_current_bc,(((T868*)C))->_name/*16*/);
  781. _rf=r355get_feature(((T355*)_sub_rc),_sub_name);
  782. }
  783. /*FI*/_i=(_i)+(1);
  784. }
  785. }
  786. /*FI*/}
  787. /*No:RUN_FEATURE_6.routine_body*/
  788. /*No:RUN_FEATURE_6.us_io*/
  789. /*No:RUN_FEATURE_6.fz_void*/
  790. /*No:RUN_FEATURE_6.ucs_false*/
  791. T0* r868clients(T868* C){
  792. T0* R=NULL;
  793. T0* _bfbc=NULL;
  794. T0* _bc=NULL;
  795. /*IF*/if (((((T868*)C))->_clients_memory/*8*/)==((void*)(NULL))) {
  796. _bc=X291base_class((((T868*)C))->_current_type/*4*/);
  797. _bfbc=(((T844*)((T844*)((((T868*)C))->_base_feature/*44*/))))->_base_class/*4*/;
  798. /*IF*/if ((_bc)==((void*)(_bfbc))) {
  799. R=(((T844*)((T844*)((((T868*)C))->_base_feature/*44*/))))->_clients/*24*/;
  800. }
  801. else {
  802. R=r605clients_for(((T605*)_bc),(((T868*)C))->_name/*16*/);
  803. }
  804. /*FI*/C->_clients_memory=R;
  805. }
  806. else {
  807. R=(((T868*)C))->_clients_memory/*8*/;
  808. }
  809. /*FI*/return R;
  810. }
  811. int r868is_pre_computable(T868* C){
  812. int R=0;
  813. /*IF*/if (r52fast_has(((T52*)(oBC868frozen_general)),X776to_string((((T868*)C))->_name/*16*/))) {
  814. R=1;
  815. }
  816.  else if ((((((T868*)C))->_arguments/*20*/)==((void*)(NULL)))&&(!(r868use_current(C)))) {
  817. /*IF*/if (((((T868*)C))->_routine_body/*32*/)==((void*)(NULL))) {
  818. R=1;
  819. }
  820.  else if (!(r590invariant_check(((T590*)(oBC364run_control))))) {
  821. R=r592is_pre_computable(((T592*)((((T868*)C))->_routine_body/*32*/)));
  822. }
  823. /*FI*/}
  824. /*FI*/return R;
  825. }
  826. int r868use_current(T868* C){
  827. int R=0;
  828. {int z1=(((T868*)C))->_use_current_state/*40*/;
  829.  
  830. if((1004==z1)){
  831. R=1;
  832. }
  833.  else 
  834. if((1003==z1)){
  835. }
  836.  else 
  837. if((1005==z1)){
  838. C->_use_current_state=1006;
  839. /*[IRF3.4compute_use_current*/r868std_compute_use_current(C);
  840. /*]*/
  841. R=r868use_current(C);
  842. }
  843.  else {R=1;
  844. }}
  845. return R;
  846. }
  847. void r868mapping_c(T868* C){
  848. int _tcbd=0;
  849. /*IF*/if (r868is_pre_computable(C)) {
  850. r868once_result(C);
  851. }
  852.  else if (r868use_current(C)) {
  853. r868default_mapping_function(C);
  854. }
  855. else {
  856. _tcbd=r324target_cannot_be_dropped(((T324*)(oBC364cpp)));
  857. /*IF*/if (_tcbd) {
  858. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  859. char b1='\54';
  860. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  861. }/*]*/
  862. /*]*/
  863. }
  864. /*FI*/r868mapping_name(C);
  865. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  866. char b1='\50';
  867. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  868. }/*]*/
  869. /*]*/
  870. /*IF*/if ((r868arg_count(C))>(0)) {
  871. r324put_arguments(((T324*)(oBC364cpp)));
  872. }
  873. /*FI*//*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  874. char b1='\51';
  875. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  876. }/*]*/
  877. /*]*/
  878. /*IF*/if (_tcbd) {
  879. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  880. char b1='\51';
  881. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  882. }/*]*/
  883. /*]*/
  884. }
  885. /*FI*/}
  886. /*FI*/}
  887. /*No:RUN_FEATURE_6.fatal_error*/
  888. /*No:RUN_FEATURE_6.address_of*/
  889. void r868put_tag(T868* C){
  890. T0* _fn=NULL;
  891. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  892. char b1='\42';
  893. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  894. }/*]*/
  895. /*]*/
  896. _fn=/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T844*)((T844*)((((T868*)C))->_base_feature/*44*/))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/;
  897. X776cpp_put_infix_or_prefix(_fn);
  898. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X776to_string(_fn));
  899. /*]*/
  900. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms1_496));
  901. /*]*/
  902. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),(((T451*)((T451*)(/*(IRF4.6base_class_name*/(((T605*)((T605*)((((T844*)((T844*)((((T868*)C))->_base_feature/*44*/))))->_base_class/*4*/))))->_base_class_name/*24*//*)*/))))->_to_string/*0*/);
  903. /*]*/
  904. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  905. char b1='\42';
  906. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  907. }/*]*/
  908. /*]*/
  909. }
  910. /*No:RUN_FEATURE_6.clients_memory*/
  911. void r868initialize(T868* C){
  912. C->_arguments=(((T844*)((T844*)((((T868*)C))->_base_feature/*44*/))))->_arguments/*28*/;
  913. /*IF*/if ((((((T868*)C))->_arguments/*20*/)!=((void*)(NULL)))&&((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T868*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)>(0))) {
  914. C->_arguments=r31to_runnable(((T31*)((((T868*)C))->_arguments/*20*/)),(((T868*)C))->_current_type/*4*/);
  915. }
  916. /*FI*/C->_result_type=(((T844*)((T844*)((((T868*)C))->_base_feature/*44*/))))->_result_type/*12*/;
  917. /*IF*/if (X291is_anchored((((T868*)C))->_result_type/*24*/)) {
  918. r683add_position(X291start_position((((T868*)C))->_result_type/*24*/));
  919. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms7_868);
  920. r683fatal_error(((T683*)(oBC364eh)),b1);
  921. }/*]*/
  922. }
  923.  else if (X291is_formal_generic((((T868*)C))->_result_type/*24*/)) {
  924. r683add_position(X291start_position((((T868*)C))->_result_type/*24*/));
  925. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms8_868);
  926. r683fatal_error(((T683*)(oBC364eh)),b1);
  927. }/*]*/
  928. }
  929. /*FI*/C->_result_type=X291to_runnable((((T868*)C))->_result_type/*24*/,(((T868*)C))->_current_type/*4*/);
  930. C->_local_vars=(((T844*)((T844*)((((T868*)C))->_base_feature/*44*/))))->_local_vars/*20*/;
  931. /*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))) {
  932. C->_local_vars=r620to_runnable(((T620*)((((T868*)C))->_local_vars/*48*/)),(((T868*)C))->_current_type/*4*/);
  933. }
  934. /*FI*/C->_routine_body=(((T844*)((T844*)((((T868*)C))->_base_feature/*44*/))))->_routine_body/*52*/;
  935. /*IF*/if (((((T868*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
  936. C->_routine_body=r592to_runnable(((T592*)((((T868*)C))->_routine_body/*32*/)),(((T868*)C))->_current_type/*4*/);
  937. }
  938. /*FI*//*IF*/if (r590require_check(((T590*)(oBC364run_control)))) {
  939. C->_require_assertion=r844run_require((T0*)C);
  940. }
  941. /*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
  942. C->_ensure_assertion=r844run_ensure((T0*)C);
  943. }
  944. /*FI*/r916add_function((T0*)C);
  945. }
  946. T0*oBC868frozen_general=NULL;
  947. /*No:RUN_FEATURE_6.us_std_input*/
  948. /*No:RUN_FEATURE_6.afd_check*/
  949. void r868once_variable(T868* C){
  950. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC496c_code)))))->_count)=(0);
  951. /*]*/
  952. r7extend(((T7*)(oBC496c_code)),'T');
  953. /*IF*/if (X291is_expanded((((T868*)C))->_result_type/*24*/)) {
  954. r2append_in(X291id((((T868*)C))->_result_type/*24*/),oBC496c_code);
  955. r7extend(((T7*)(oBC496c_code)),'\40');
  956. }
  957. else {
  958. r7extend(((T7*)(oBC496c_code)),'0');
  959. r7extend(((T7*)(oBC496c_code)),'\52');
  960. }
  961. /*FI*/r868once_result_in(C,oBC496c_code);
  962. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC496c_code2)))))->_count)=(0);
  963. /*]*/
  964. X291c_initialize_in((((T868*)C))->_result_type/*24*/,oBC496c_code2);
  965. r324put_extern5(((T324*)(oBC364cpp)),oBC496c_code,oBC496c_code2);
  966. }
  967. void r868once_boolean(T868* C){
  968. r7copy(((T7*)(oBC496c_code)),((T0*)ms111_470));
  969. r7extend(((T7*)(oBC496c_code)),'\40');
  970. r868once_flag_in(C,oBC496c_code);
  971. r324put_extern2(((T324*)(oBC364cpp)),oBC496c_code,'0');
  972. }
  973. /*No:CST_ATT_STRING.arguments*/
  974. T0* r380try_to_undefine(T380* C,T0* a1,T0* a2){
  975. T0* R=NULL;
  976. X776undefine_in(a1,a2);
  977. R=r380try_to_undefine_aux(C,a1,a2);
  978. /*IF*/if ((R)!=((void*)(NULL))) {
  979. /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T380*)C))->_clients/*20*/);
  980. /*]*/
  981. }
  982. else {
  983. r605fatal_undefine(((T605*)a2),a1);
  984. }
  985. /*FI*/return R;
  986. }
  987. /*No:CST_ATT_STRING.is_deferred*/
  988. void r380add_into(T380* C,T0* a1){
  989. T0* _fn=NULL;
  990. int _i=0;
  991. C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T380*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
  992. _i=1;
  993. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T380*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  994. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T380*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
  995. /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
  996. _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)/*)*//*)*/);
  997. r683add_position(X776start_position(_fn));
  998. r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T380*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
  999. r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
  1000. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  1001. r7append(((T7*)(oBC683explanation)),b1);
  1002. }/*]*/
  1003. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1004. }
  1005. else {
  1006. r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
  1007. }
  1008. /*FI*/_i=(_i)+(1);
  1009. }
  1010. }
  1011. T0* r380try_to_undefine_aux(T380* C,T0* a1,T0* a2){
  1012. T0* R=NULL;
  1013. r683add_position(r380start_position(C));
  1014. r380error(X776start_position(a1),((T0*)ms1_308));
  1015. r605fatal_undefine(((T605*)a2),a1);
  1016. return R;
  1017. }
  1018. void r380make(T380* C,T0* a1,T0* a2,T0* a3){
  1019. T0* _ms=NULL;
  1020. int _i=0;
  1021. r380make_e_feature(C,a1,a2);
  1022. {T381*n=malloc(sizeof(*n));
  1023. *n=M381;
  1024. r381make(n,1,/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T380*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/);
  1025. C->_values=(T0*)n;
  1026. }
  1027. /*[IRF3.6put*/{T381* C1=((T381*)((((T380*)C))->_values/*24*/));
  1028. T0* b1=a3;
  1029. int b2=1;
  1030. ((((T381*)C1))->_storage/*4*/)[(b2)-((((T381*)C1))->_lower/*16*/)]=(b1);
  1031. }/*]*/
  1032. _i=2;
  1033. while (!((_i)>((((T381*)((T381*)((((T380*)C))->_values/*24*/))))->_upper/*12*/))) {
  1034. {T805*n=malloc(sizeof(*n));
  1035. *n=M805;
  1036. r805from_manifest_string(n,a3,_i);
  1037. _ms=(T0*)n;
  1038. }
  1039. /*[IRF3.6put*/{T381* C1=((T381*)((((T380*)C))->_values/*24*/));
  1040. T0* b1=_ms;
  1041. int b2=_i;
  1042. ((((T381*)C1))->_storage/*4*/)[(b2)-((((T381*)C1))->_lower/*16*/)]=(b1);
  1043. }/*]*/
  1044. _i=(_i)+(1);
  1045. }
  1046. }
  1047. /*No:CST_ATT_STRING.nb_errors*/
  1048. /*No:CST_ATT_STRING.set_header_comment*/
  1049. /*No:CST_ATT_STRING.values*/
  1050. T0* r380start_position(T380* C){
  1051. T0* R=NULL;
  1052. R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T380*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  1053. return R;
  1054. }
  1055. T0* r380to_run_feature(T380* C,T0* a1,T0* a2){
  1056. T0* R=NULL;
  1057. T0* _rc=NULL;
  1058. _rc=X291run_class(a1);
  1059. R=r355at(((T355*)_rc),a2);
  1060. if(NULL!=(R))switch(((T0*)R)->id) {
  1061. case 808: 
  1062. break;
  1063. default:
  1064. R=NULL;
  1065. };/*IF*/if ((R)==((void*)(NULL))) {
  1066. {T808*n=malloc(sizeof(*n));
  1067. *n=M808;
  1068. r808make(n,a1,a2,(T0*)C);
  1069. R=(T0*)n;
  1070. }
  1071. }
  1072. /*FI*/return R;
  1073. }
  1074. /*No:CST_ATT_STRING.ensure_assertion*/
  1075. /*No:CST_ATT_STRING.code_require*/
  1076. /*No:CST_ATT_STRING.result_type*/
  1077. /*No:CST_ATT_STRING.em1*/
  1078. /*No:CST_ATT_STRING.set_clients*/
  1079. /*No:CST_ATT_STRING.em2*/
  1080. /*No:CST_ATT_STRING.value*/
  1081. /*No:CST_ATT_STRING.require_assertion*/
  1082. /*No:CST_ATT_STRING.names*/
  1083. /*No:CST_ATT_STRING.stupid_switch*/
  1084. int r380can_hide(T380* C,T0* a1,T0* a2){
  1085. int R=0;
  1086. /*IF*/if (((((T380*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  1087. /*IF*/if ((((((T380*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  1088. r683add_position(X359start_position(a1));
  1089. r380error(r380start_position(C),((T0*)ms5_359));
  1090. }
  1091. /*FI*/}
  1092. /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
  1093. /*IF*/{/*AT*/r683add_position(X359start_position(a1));
  1094. r380error(r380start_position(C),((T0*)ms6_359));
  1095. }
  1096. /*FI*/}
  1097. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1098. /*IF*/if (((((T380*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  1099. /*IF*/if (!(X291is_a_in((((T380*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  1100. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  1101. r7append(((T7*)(oBC683explanation)),b1);
  1102. }/*]*/
  1103. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  1104. r7append(((T7*)(oBC683explanation)),b1);
  1105. }/*]*/
  1106. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1107. }
  1108. /*FI*/}
  1109. /*FI*/}
  1110. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1111. /*IF*//*AF*//*AE*/
  1112. /*FI*/}
  1113. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  1114. return R;
  1115. }
  1116. /*No:CST_ATT_STRING.header_comment*/
  1117. int r380is_merge_with(T380* C,T0* a1,T0* a2){
  1118. int R=0;
  1119. /*IF*/if (((((T380*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  1120. /*IF*/if ((((((T380*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  1121. r683add_position(X359start_position(a1));
  1122. r380error(r380start_position(C),((T0*)ms2_359));
  1123. }
  1124. /*FI*/}
  1125. /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
  1126. /*IF*/{/*AT*/r683add_position(X359start_position(a1));
  1127. r380error(r380start_position(C),((T0*)ms3_359));
  1128. }
  1129. /*FI*/}
  1130. /*FI*//*IF*/if (((((T380*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  1131. /*IF*/if (!(X291is_a_in((((T380*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  1132. r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
  1133. }
  1134. /*FI*/}
  1135. /*FI*//*IF*//*AF*//*AE*/
  1136. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  1137. return R;
  1138. }
  1139. /*No:CST_ATT_STRING.fz_dot*/
  1140. /*No:CST_ATT_STRING.first_name*/
  1141. /*No:CST_ATT_STRING.clients*/
  1142. void r380collect_for(int a1){
  1143. /*IF*/if ((a1)==(1001)) {
  1144. /*IF*//*AF*//*AE*/
  1145. /*FI*/}
  1146. else {
  1147. /*IF*//*AF*//*AE*/
  1148. /*FI*/}
  1149. /*FI*/}
  1150. void r380error(T0* a1,T0* a2){
  1151. r683add_position(a1);
  1152. r683error(((T683*)(oBC364eh)),a2);
  1153. }
  1154. /*No:CST_ATT_STRING.base_class*/
  1155. /*No:CST_ATT_STRING.base_class_name*/
  1156. void r380make_e_feature(T380* C,T0* a1,T0* a2){
  1157. C->_names=a1;
  1158. C->_result_type=a2;
  1159. }
  1160. /*No:CST_ATT_BIT.arguments*/
  1161. T0* r588try_to_undefine(T588* C,T0* a1,T0* a2){
  1162. T0* R=NULL;
  1163. X776undefine_in(a1,a2);
  1164. R=r588try_to_undefine_aux(C,a1,a2);
  1165. /*IF*/if ((R)!=((void*)(NULL))) {
  1166. /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T588*)C))->_clients/*20*/);
  1167. /*]*/
  1168. }
  1169. else {
  1170. r605fatal_undefine(((T605*)a2),a1);
  1171. }
  1172. /*FI*/return R;
  1173. }
  1174. /*No:CST_ATT_BIT.is_deferred*/
  1175. void r588add_into(T588* C,T0* a1){
  1176. T0* _fn=NULL;
  1177. int _i=0;
  1178. C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T588*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
  1179. _i=1;
  1180. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T588*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  1181. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T588*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
  1182. /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
  1183. _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)/*)*//*)*/);
  1184. r683add_position(X776start_position(_fn));
  1185. r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T588*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
  1186. r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
  1187. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  1188. r7append(((T7*)(oBC683explanation)),b1);
  1189. }/*]*/
  1190. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1191. }
  1192. else {
  1193. r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
  1194. }
  1195. /*FI*/_i=(_i)+(1);
  1196. }
  1197. }
  1198. T0* r588try_to_undefine_aux(T588* C,T0* a1,T0* a2){
  1199. T0* R=NULL;
  1200. r683add_position(r588start_position(C));
  1201. r588error(X776start_position(a1),((T0*)ms1_308));
  1202. r605fatal_undefine(((T605*)a2),a1);
  1203. return R;
  1204. }
  1205. void r588make(T588* C,T0* a1,T0* a2,T0* a3){
  1206. r588make_e_feature(C,a1,a2);
  1207. C->_value_mem=a3;
  1208. }
  1209. /*No:CST_ATT_BIT.nb_errors*/
  1210. /*No:CST_ATT_BIT.set_header_comment*/
  1211. T0* r588start_position(T588* C){
  1212. T0* R=NULL;
  1213. R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T588*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  1214. return R;
  1215. }
  1216. T0* r588to_run_feature(T588* C,T0* a1,T0* a2){
  1217. T0* R=NULL;
  1218. T0* _rc=NULL;
  1219. _rc=X291run_class(a1);
  1220. R=r355at(((T355*)_rc),a2);
  1221. if(NULL!=(R))switch(((T0*)R)->id) {
  1222. case 808: 
  1223. break;
  1224. default:
  1225. R=NULL;
  1226. };/*IF*/if ((R)==((void*)(NULL))) {
  1227. {T808*n=malloc(sizeof(*n));
  1228. *n=M808;
  1229. r808make(n,a1,a2,(T0*)C);
  1230. R=(T0*)n;
  1231. }
  1232. }
  1233. /*FI*/return R;
  1234. }
  1235. /*No:CST_ATT_BIT.ensure_assertion*/
  1236. /*No:CST_ATT_BIT.code_require*/
  1237. /*No:CST_ATT_BIT.result_type*/
  1238. /*No:CST_ATT_BIT.em1*/
  1239. /*No:CST_ATT_BIT.set_clients*/
  1240. /*No:CST_ATT_BIT.em2*/
  1241. /*No:CST_ATT_BIT.value*/
  1242. /*No:CST_ATT_BIT.require_assertion*/
  1243. /*No:CST_ATT_BIT.names*/
  1244. /*No:CST_ATT_BIT.value_mem*/
  1245. /*No:CST_ATT_BIT.stupid_switch*/
  1246. int r588can_hide(T588* C,T0* a1,T0* a2){
  1247. int R=0;
  1248. /*IF*/if (((((T588*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  1249. /*IF*/if ((((((T588*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  1250. r683add_position(X359start_position(a1));
  1251. r588error(r588start_position(C),((T0*)ms5_359));
  1252. }
  1253. /*FI*/}
  1254. /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
  1255. /*IF*/{/*AT*/r683add_position(X359start_position(a1));
  1256. r588error(r588start_position(C),((T0*)ms6_359));
  1257. }
  1258. /*FI*/}
  1259. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1260. /*IF*/if (((((T588*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  1261. /*IF*/if (!(X291is_a_in((((T588*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  1262. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  1263. r7append(((T7*)(oBC683explanation)),b1);
  1264. }/*]*/
  1265. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  1266. r7append(((T7*)(oBC683explanation)),b1);
  1267. }/*]*/
  1268. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1269. }
  1270. /*FI*/}
  1271. /*FI*/}
  1272. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1273. /*IF*//*AF*//*AE*/
  1274. /*FI*/}
  1275. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  1276. return R;
  1277. }
  1278. /*No:CST_ATT_BIT.header_comment*/
  1279. int r588is_merge_with(T588* C,T0* a1,T0* a2){
  1280. int R=0;
  1281. /*IF*/if (((((T588*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  1282. /*IF*/if ((((((T588*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  1283. r683add_position(X359start_position(a1));
  1284. r588error(r588start_position(C),((T0*)ms2_359));
  1285. }
  1286. /*FI*/}
  1287. /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
  1288. /*IF*/{/*AT*/r683add_position(X359start_position(a1));
  1289. r588error(r588start_position(C),((T0*)ms3_359));
  1290. }
  1291. /*FI*/}
  1292. /*FI*//*IF*/if (((((T588*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  1293. /*IF*/if (!(X291is_a_in((((T588*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  1294. r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
  1295. }
  1296. /*FI*/}
  1297. /*FI*//*IF*//*AF*//*AE*/
  1298. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  1299. return R;
  1300. }
  1301. /*No:CST_ATT_BIT.fz_dot*/
  1302. /*No:CST_ATT_BIT.first_name*/
  1303. /*No:CST_ATT_BIT.clients*/
  1304. void r588collect_for(int a1){
  1305. /*IF*/if ((a1)==(1001)) {
  1306. /*IF*//*AF*//*AE*/
  1307. /*FI*/}
  1308. else {
  1309. /*IF*//*AF*//*AE*/
  1310. /*FI*/}
  1311. /*FI*/}
  1312. void r588error(T0* a1,T0* a2){
  1313. r683add_position(a1);
  1314. r683error(((T683*)(oBC364eh)),a2);
  1315. }
  1316. /*No:CST_ATT_BIT.base_class*/
  1317. /*No:CST_ATT_BIT.base_class_name*/
  1318. void r588make_e_feature(T588* C,T0* a1,T0* a2){
  1319. C->_names=a1;
  1320. C->_result_type=a2;
  1321. }
  1322. /*No:SMALL_EIFFEL.dos_system*/
  1323. /*No:SMALL_EIFFEL.fz_system_se*/
  1324. /*No:SMALL_EIFFEL.fz_sys*/
  1325. /*No:SMALL_EIFFEL.falling_down*/
  1326. /*No:SMALL_EIFFEL.initialize_generating_type*/
  1327. T0* r604get_started(T604* C,T0* a1,T0* a2){
  1328. T0* R=NULL;
  1329. int _magic=0;
  1330. T0* _root_type=NULL;
  1331. T0* _root_proc=NULL;
  1332. T0* _root=NULL;
  1333. T0* _root_proc_name=NULL;
  1334. T0* _root_name=NULL;
  1335. r306put_string(((T306*)(oBC364echo)),((T0*)ms1_604));
  1336. r306put_string(((T306*)(oBC364echo)),((T0*)ms28_604));
  1337. _root=r604load_class(C,a1);
  1338. /*IF*/if ((_root)==((void*)(NULL))) {
  1339. /*[IRF3.6append*/{T0* b1=((T0*)ms29_604);
  1340. r7append(((T7*)(oBC683explanation)),b1);
  1341. }/*]*/
  1342. /*[IRF3.6append*/{T0* b1=a1;
  1343. r7append(((T7*)(oBC683explanation)),b1);
  1344. }/*]*/
  1345. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1346. }
  1347. else {
  1348. _root_name=(((T605*)((T605*)_root)))->_base_class_name/*24*/;
  1349. {T446*n=malloc(sizeof(*n));
  1350. *n=M446;
  1351. r446make(n,a2,NULL);
  1352. _root_proc_name=(T0*)n;
  1353. }
  1354. _root_proc=r605root_procedure(((T605*)_root),a2);
  1355. }
  1356. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1357. /*IF*/if (((((T297*)((T297*)_root_proc)))->_arguments/*28*/)!=((void*)(NULL))) {
  1358. r683add_position(r297start_position(((T297*)_root_proc)));
  1359. /*[IRF3.6append*/{T0* b1=((T0*)ms30_604);
  1360. r7append(((T7*)(oBC683explanation)),b1);
  1361. }/*]*/
  1362. /*[IRF3.6append*/{T0* b1=a2;
  1363. r7append(((T7*)(oBC683explanation)),b1);
  1364. }/*]*/
  1365. r683error(((T683*)(oBC364eh)),((T0*)ms31_604));
  1366. }
  1367. /*FI*/}
  1368. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1369. _root_type=(((T355*)((T355*)(r605run_class(((T605*)_root))))))->_current_type/*0*/;
  1370. }
  1371. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1372. R=r297to_run_feature(((T297*)_root_proc),_root_type,_root_proc_name);
  1373. /*IF*/if ((((T548*)((T548*)(oBC364gc_handler))))->_is_on/*0*/) {
  1374. /*[IRF3.3do_not_inline*/((((T832*)(((T832*)R))))->_in_line_status)=(-(1));
  1375. /*]*/
  1376. }
  1377. /*FI*/}
  1378. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1379. r306put_string(((T306*)(oBC364echo)),((T0*)ms32_604));
  1380. r306put_integer(((T306*)(oBC364echo)),(((T604*)C))->_magic_count/*8*/);
  1381. r306put_string(((T306*)(oBC364echo)),((T0*)ms61_604));
  1382. /*[IRF3.2falling_down*/{int _i=0;
  1383. T0* _rc=NULL;
  1384. /*[IRF3.2falling_down*/{int _count2=0;
  1385. int _count1=0;
  1386. T0* _dictionary2=NULL;
  1387. /*IF*/if (!(/*(IRF4.7empty*/((((T338*)((T338*)(oBC576dictionary))))->_count/*40*/)==(0)/*)*/)) {
  1388. _count1=1;
  1389. while (!((_count1)>((((T338*)((T338*)(oBC576dictionary))))->_count/*40*/))) {
  1390. _dictionary2=r338item(((T338*)(oBC576dictionary)),_count1);
  1391. _count2=1;
  1392. while (!((_count2)>((((T199*)((T199*)_dictionary2)))->_count/*40*/))) {
  1393. X496fall_down(r199item(((T199*)_dictionary2),_count2));
  1394. _count2=(_count2)+(1);
  1395. }
  1396. _count1=(_count1)+(1);
  1397. }
  1398. }
  1399. /*FI*/}/*]*/
  1400. _i=1;
  1401. while (!((_i)>((((T250*)((T250*)(oBC604run_class_dictionary))))->_count/*40*/))) {
  1402. _rc=r250item(((T250*)(oBC604run_class_dictionary)),_i);
  1403. r355falling_down(((T355*)_rc));
  1404. _i=(_i)+(1);
  1405. }
  1406. }/*]*/
  1407. r625fill_up(((T625*)(oBC364cecil_pool)));
  1408. while (!(((_magic)==((((T604*)C))->_magic_count/*8*/))||((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)>(0)))) {
  1409. _magic=(((T604*)C))->_magic_count/*8*/;
  1410. /*[IRF3.2falling_down*/{int _i=0;
  1411. T0* _rc=NULL;
  1412. /*[IRF3.2falling_down*/{int _count2=0;
  1413. int _count1=0;
  1414. T0* _dictionary2=NULL;
  1415. /*IF*/if (!(/*(IRF4.7empty*/((((T338*)((T338*)(oBC576dictionary))))->_count/*40*/)==(0)/*)*/)) {
  1416. _count1=1;
  1417. while (!((_count1)>((((T338*)((T338*)(oBC576dictionary))))->_count/*40*/))) {
  1418. _dictionary2=r338item(((T338*)(oBC576dictionary)),_count1);
  1419. _count2=1;
  1420. while (!((_count2)>((((T199*)((T199*)_dictionary2)))->_count/*40*/))) {
  1421. X496fall_down(r199item(((T199*)_dictionary2),_count2));
  1422. _count2=(_count2)+(1);
  1423. }
  1424. _count1=(_count1)+(1);
  1425. }
  1426. }
  1427. /*FI*/}/*]*/
  1428. _i=1;
  1429. while (!((_i)>((((T250*)((T250*)(oBC604run_class_dictionary))))->_count/*40*/))) {
  1430. _rc=r250item(((T250*)(oBC604run_class_dictionary)),_i);
  1431. r355falling_down(((T355*)_rc));
  1432. _i=(_i)+(1);
  1433. }
  1434. }/*]*/
  1435. }
  1436. r306put_string(((T306*)(oBC364echo)),((T0*)ms33_604));
  1437. r306put_integer(((T306*)(oBC364echo)),(((T604*)C))->_magic_count/*8*/);
  1438. r306put_string(((T306*)(oBC364echo)),((T0*)ms61_604));
  1439. }
  1440. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1441. r306put_string(((T306*)(oBC364echo)),((T0*)ms34_604));
  1442. r306put_integer(((T306*)(oBC364echo)),(((T604*)C))->_magic_count/*8*/);
  1443. r306put_string(((T306*)(oBC364echo)),((T0*)ms61_604));
  1444. /*[IRF3.2afd_check*/{int _i=0;
  1445. T0* _rc=NULL;
  1446. _i=1;
  1447. while (!((_i)>((((T250*)((T250*)(oBC604run_class_dictionary))))->_count/*40*/))) {
  1448. _rc=r250item(((T250*)(oBC604run_class_dictionary)),_i);
  1449. r355afd_check(((T355*)_rc));
  1450. _i=(_i)+(1);
  1451. }
  1452. }/*]*/
  1453. while (!(((_magic)==((((T604*)C))->_magic_count/*8*/))||((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)>(0)))) {
  1454. _magic=(((T604*)C))->_magic_count/*8*/;
  1455. /*[IRF3.2falling_down*/{int _i=0;
  1456. T0* _rc=NULL;
  1457. /*[IRF3.2falling_down*/{int _count2=0;
  1458. int _count1=0;
  1459. T0* _dictionary2=NULL;
  1460. /*IF*/if (!(/*(IRF4.7empty*/((((T338*)((T338*)(oBC576dictionary))))->_count/*40*/)==(0)/*)*/)) {
  1461. _count1=1;
  1462. while (!((_count1)>((((T338*)((T338*)(oBC576dictionary))))->_count/*40*/))) {
  1463. _dictionary2=r338item(((T338*)(oBC576dictionary)),_count1);
  1464. _count2=1;
  1465. while (!((_count2)>((((T199*)((T199*)_dictionary2)))->_count/*40*/))) {
  1466. X496fall_down(r199item(((T199*)_dictionary2),_count2));
  1467. _count2=(_count2)+(1);
  1468. }
  1469. _count1=(_count1)+(1);
  1470. }
  1471. }
  1472. /*FI*/}/*]*/
  1473. _i=1;
  1474. while (!((_i)>((((T250*)((T250*)(oBC604run_class_dictionary))))->_count/*40*/))) {
  1475. _rc=r250item(((T250*)(oBC604run_class_dictionary)),_i);
  1476. r355falling_down(((T355*)_rc));
  1477. _i=(_i)+(1);
  1478. }
  1479. }/*]*/
  1480. /*[IRF3.2afd_check*/{int _i=0;
  1481. T0* _rc=NULL;
  1482. _i=1;
  1483. while (!((_i)>((((T250*)((T250*)(oBC604run_class_dictionary))))->_count/*40*/))) {
  1484. _rc=r250item(((T250*)(oBC604run_class_dictionary)),_i);
  1485. r355afd_check(((T355*)_rc));
  1486. _i=(_i)+(1);
  1487. }
  1488. }/*]*/
  1489. }
  1490. r306put_string(((T306*)(oBC364echo)),((T0*)ms35_604));
  1491. r306put_integer(((T306*)(oBC364echo)),(((T604*)C))->_magic_count/*8*/);
  1492. r306put_string(((T306*)(oBC364echo)),((T0*)ms61_604));
  1493. /*[IRF3.2check_for_deferred*/{T0* _rc=NULL;
  1494. T0* _rf9=NULL;
  1495. int _i=0;
  1496. _i=/*X321*/((int)(((T321*)((T321*)(oBC604rf9_memory))))->_upper/*12*/);
  1497. r306print_count(((T306*)(oBC364echo)),((T0*)ms38_604),(_i)+(1));
  1498. while (!((_i)<(0))) {
  1499. _rf9=/*X321*/((T0*)r321item(((T321*)(oBC604rf9_memory)),_i));
  1500. _rc=X291run_class(/*X496*/((T0*)(((T832*)((T832*)_rf9)))->_current_type/*4*/));
  1501. /*IF*/if ((((T355*)((T355*)_rc)))->_at_run_time/*8*/) {
  1502. r683add_position(X496start_position(_rf9));
  1503. /*[IRF3.6append*/{T0* b1=X776to_string(/*X496*/((T0*)(((T832*)((T832*)_rf9)))->_name/*16*/));
  1504. r7append(((T7*)(oBC683explanation)),b1);
  1505. }/*]*/
  1506. /*[IRF3.6append*/{T0* b1=((T0*)ms39_604);
  1507. r7append(((T7*)(oBC683explanation)),b1);
  1508. }/*]*/
  1509. /*[IRF3.6append*/{T0* b1=X291written_mark(/*X496*/((T0*)(((T832*)((T832*)_rf9)))->_current_type/*4*/));
  1510. r7append(((T7*)(oBC683explanation)),b1);
  1511. }/*]*/
  1512. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms67_470);
  1513. r683fatal_error(((T683*)(oBC364eh)),b1);
  1514. }/*]*/
  1515. }
  1516. /*FI*/_i=(_i)-(1);
  1517. }
  1518. }/*]*/
  1519. }
  1520. /*FI*//*IF*/if (!(r683empty())) {
  1521. /*[IRF3.6append*/{T0* b1=((T0*)ms36_604);
  1522. r7append(((T7*)(oBC683explanation)),b1);
  1523. }/*]*/
  1524. r683print_as_warning(((T683*)(oBC364eh)));
  1525. }
  1526. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1527. C->_is_ready=1;
  1528. r306print_count(((T306*)(oBC364echo)),((T0*)ms37_604),(((T718*)((T718*)(oBC604base_class_dictionary))))->_count/*40*/);
  1529. }
  1530. /*FI*/return R;
  1531. }
  1532. int fBC604loading_path=0;
  1533. T0*oBC604loading_path=NULL;
  1534. T0* r604loading_path(T604* C){
  1535. if (fBC604loading_path==0){
  1536. T0* R=NULL;
  1537. T0* _file=NULL;
  1538. T0* _path=NULL;
  1539. fBC604loading_path=1;
  1540. {T52*n=malloc(sizeof(*n));
  1541. *n=M52;
  1542. r52make(n,1,10);
  1543. R=(T0*)n;
  1544. }
  1545. r52clear(((T52*)R));
  1546. {T675*n=malloc(sizeof(*n));
  1547. *n=M675;
  1548. r675connect_to(n,((T0*)ms2_604));
  1549. _file=(T0*)n;
  1550. }
  1551. /*IF*/if (/*(IRF4.7is_connected*/((((T675*)((T675*)_file)))->_path/*4*/)!=(NULL)/*)*/) {
  1552. while (!(r675end_of_input(((T675*)_file)))) {
  1553. r675read_line(((T675*)_file));
  1554. r52add_last(((T52*)R),r7twin(((T7*)(oBC762last_string))));
  1555. }
  1556. r675disconnect(((T675*)_file));
  1557. }
  1558. /*FI*/_path=r7twin(((T7*)(r604small_eiffel_directory(C))));
  1559. r604add_directory(C,_path,((T0*)ms126_470));
  1560. r7append(((T7*)_path),((T0*)ms3_604));
  1561. r7append(((T7*)_path),r604system_name(C));
  1562. r675connect_to(((T675*)_file),_path);
  1563. /*IF*/if (/*(IRF4.7is_connected*/((((T675*)((T675*)_file)))->_path/*4*/)!=(NULL)/*)*/) {
  1564. while (!(r675end_of_input(((T675*)_file)))) {
  1565. r675read_line(((T675*)_file));
  1566. r52add_last(((T52*)R),r7twin(((T7*)(oBC762last_string))));
  1567. }
  1568. r675disconnect(((T675*)_file));
  1569. }
  1570. else {
  1571. r306w_put_string(((T0*)ms4_604));
  1572. r306w_put_string(_path);
  1573. r306w_put_string(((T0*)ms5_604));
  1574. }
  1575. /*FI*/oBC604loading_path=R;}
  1576. return oBC604loading_path;}
  1577. /*No:SMALL_EIFFEL.initialize_path_table*/
  1578. /*No:SMALL_EIFFEL.unix_system*/
  1579. /*No:SMALL_EIFFEL.exit_failure_code*/
  1580. /*No:SMALL_EIFFEL.vms_system*/
  1581. T0*oBC604run_class_dictionary=NULL;
  1582. T0* r604small_eiffel_directory(T604* C){
  1583. if (fBC364small_eiffel_directory==0){
  1584. T0* R=NULL;
  1585. char _slash=0;
  1586. int _i=0;
  1587. fBC364small_eiffel_directory=1;
  1588. R=r604get_environment_variable(C,((T0*)ms121_470));
  1589. /*IF*/if ((R)==((void*)(NULL))) {
  1590. R=r7twin(((T7*)(((T0*)ms121_470))));
  1591. r7to_upper(((T7*)R));
  1592. R=r604get_environment_variable(C,R);
  1593. /*IF*/if ((R)!=((void*)(NULL))) {
  1594. r7to_upper(((T7*)(((T0*)ms121_470))));
  1595. }
  1596. /*FI*/}
  1597. /*FI*//*IF*/if ((R)==((void*)(NULL))) {
  1598. R=((T0*)ms1_364);
  1599. }
  1600. /*FI*/_i=(((T7*)((T7*)R)))->_count/*4*/;
  1601. while (!((_i)<(0))) {
  1602. _slash=/*(IRF4.6item*/((((T7*)((T7*)R)))->_storage/*0*/)[(_i)-(1)]/*)*/;
  1603. /*IF*/if ((r3is_letter(_slash))||(r3is_digit(_slash))) {
  1604. _i=(_i)-(1);
  1605. }
  1606. else {
  1607. _i=-(1);
  1608. }
  1609. /*FI*/}
  1610. /*IF*/if ((_i)==(0)) {
  1611. r7extend(((T7*)R),'\57');
  1612. }
  1613.  else if (!((r7last(((T7*)R)))==(_slash))) {
  1614. r7extend(((T7*)R),_slash);
  1615. }
  1616. /*FI*/oBC364small_eiffel_directory=R;}
  1617. return oBC364small_eiffel_directory;}
  1618. /*No:SMALL_EIFFEL.us_array*/
  1619. int r604string_at_run_time(void){
  1620. int R=0;
  1621. T0* _rc=NULL;
  1622. /*IF*/if (r250has(((T250*)(oBC604run_class_dictionary)),((T0*)ms25_473))) {
  1623. _rc=r250at(((T250*)(oBC604run_class_dictionary)),((T0*)ms25_473));
  1624. R=(((T355*)((T355*)_rc)))->_at_run_time/*8*/;
  1625. }
  1626. /*FI*/return R;
  1627. }
  1628. T0*oBC604stack_rf=NULL;
  1629. /*No:SMALL_EIFFEL.fz_t7_star*/
  1630. /*No:SMALL_EIFFEL.amiga_system*/
  1631. void r604afd_check_deferred(T0* a1){
  1632. /*IF*/if (!(X321fast_has(oBC604rf9_memory,a1))) {
  1633. X321add_last(oBC604rf9_memory,a1);
  1634. }
  1635. /*FI*/}
  1636. /*No:SMALL_EIFFEL.make*/
  1637. /*No:SMALL_EIFFEL.last_unique*/
  1638. /*No:SMALL_EIFFEL.nb_errors*/
  1639. T0*oBC604tmp_tail=NULL;
  1640. int fBC604tmp_class_name=0;
  1641. T0*oBC604tmp_class_name=NULL;
  1642. T0* r604tmp_class_name(void){
  1643. if (fBC604tmp_class_name==0){
  1644. T0* R=NULL;
  1645. fBC604tmp_class_name=1;
  1646. {T451*n=malloc(sizeof(*n));
  1647. *n=M451;
  1648. r451make(n,((T0*)ms1_473),NULL);
  1649. R=(T0*)n;
  1650. }
  1651. oBC604tmp_class_name=R;}
  1652. return oBC604tmp_class_name;}
  1653. /*No:SMALL_EIFFEL.check_for_deferred*/
  1654. /*No:SMALL_EIFFEL.us_string*/
  1655. T0*oBC364parser_buffer=NULL;
  1656. void r604add_class(T604* C,T0* a1){
  1657. r718put(((T718*)(oBC604base_class_dictionary)),a1,(((T451*)((T451*)((((T605*)((T605*)a1)))->_base_class_name/*24*/))))->_to_string/*0*/);
  1658. r604incr_magic_count(C);
  1659. }
  1660. void r604push(T604* C,T0* a1){
  1661. C->_top=((((T604*)C))->_top/*12*/)+(1);
  1662. X477force(oBC604stack_rf,a1,(((T604*)C))->_top/*12*/);
  1663. }
  1664. int r604next_unique(T604* C){
  1665. int R=0;
  1666. /*IF*/if (((((T604*)C))->_last_unique/*16*/)<(1000)) {
  1667. C->_last_unique=1000;
  1668. }
  1669. /*FI*/C->_last_unique=((((T604*)C))->_last_unique/*16*/)+(1);
  1670. R=(((T604*)C))->_last_unique/*16*/;
  1671. return R;
  1672. }
  1673. T0* r604top_rf(T604* C){
  1674. T0* R=NULL;
  1675. R=/*X477*/((T0*)r477item(((T477*)(oBC604stack_rf)),(((T604*)C))->_top/*12*/));
  1676. return R;
  1677. }
  1678. /*No:SMALL_EIFFEL.copyright*/
  1679. void r604add_directory(T604* C,T0* a1,T0* a2){
  1680. /*IF*/if ((((T0*)ms17_364))==((void*)(r604system_name(C)))) {
  1681. r7set_last(((T7*)a1),'\57');
  1682. r7append(((T7*)a1),a2);
  1683. r7set_last(((T7*)a1),'\57');
  1684. }
  1685.  else if ((((T0*)ms19_364))==((void*)(r604system_name(C)))) {
  1686. r7set_last(((T7*)a1),'\134');
  1687. r7append(((T7*)a1),a2);
  1688. r7set_last(((T7*)a1),'\134');
  1689. }
  1690.  else if ((((T0*)ms15_364))==((void*)(r604system_name(C)))) {
  1691. r7set_last(((T7*)a1),'\72');
  1692. r7append(((T7*)a1),a2);
  1693. r7set_last(((T7*)a1),'\72');
  1694. }
  1695.  else if ((((T0*)ms14_364))==((void*)(r604system_name(C)))) {
  1696. r7set_last(((T7*)a1),'\134');
  1697. r7append(((T7*)a1),a2);
  1698. r7set_last(((T7*)a1),'\134');
  1699. }
  1700.  else if ((((T0*)ms16_364))==((void*)(r604system_name(C)))) {
  1701. r7set_last(((T7*)a1),'\134');
  1702. r7append(((T7*)a1),a2);
  1703. r7set_last(((T7*)a1),'\134');
  1704. }
  1705.  else if ((((T0*)ms13_364))==((void*)(r604system_name(C)))) {
  1706. r7set_last(((T7*)a1),'\57');
  1707. r7append(((T7*)a1),a2);
  1708. r7set_last(((T7*)a1),'\57');
  1709. }
  1710.  else if ((((T0*)ms18_364))==((void*)(r604system_name(C)))) {
  1711. r7set_last(((T7*)a1),'\135');
  1712. r7remove_last(((T7*)a1),1);
  1713. r7set_last(((T7*)a1),'\56');
  1714. r7append(((T7*)a1),a2);
  1715. r7set_last(((T7*)a1),'\135');
  1716. }
  1717. /*FI*/}
  1718. T0*oBC604parser_buffer_path=NULL;
  1719. void r604compile_to_c(T604* C,T0* a1,T0* a2){
  1720. int _gc_flag=0;
  1721. int _i=0;
  1722. T0* _rf3=NULL;
  1723. int _run_count=0;
  1724. T0* _rc=NULL;
  1725. _rf3=r604get_started(C,a1,a2);
  1726. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1727. r324get_started(((T324*)(oBC364cpp)));
  1728. r324swap_on_h(((T324*)(oBC364cpp)));
  1729. _gc_flag=(((T548*)((T548*)(oBC364gc_handler))))->_is_on/*0*/;
  1730. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms18_604));
  1731. /*]*/
  1732. _i=1;
  1733. while (!((_i)>((((T250*)((T250*)(oBC604run_class_dictionary))))->_count/*40*/))) {
  1734. _rc=r250item(((T250*)(oBC604run_class_dictionary)),_i);
  1735. /*IF*/if ((((T355*)((T355*)_rc)))->_at_run_time/*8*/) {
  1736. _run_count=(_run_count)+(1);
  1737. }
  1738. /*FI*/r355demangling(((T355*)_rc));
  1739. _i=(_i)+(1);
  1740. }
  1741. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms19_604));
  1742. /*]*/
  1743. r324put_comment_line(((T324*)(oBC364cpp)),((T0*)ms20_604));
  1744. _i=1;
  1745. while (!((_i)>((((T250*)((T250*)(oBC604run_class_dictionary))))->_count/*40*/))) {
  1746. _rc=r250item(((T250*)(oBC604run_class_dictionary)),_i);
  1747. r355c_header_pass1(((T355*)_rc));
  1748. _i=(_i)+(1);
  1749. }
  1750. r324put_comment_line(((T324*)(oBC364cpp)),((T0*)ms21_604));
  1751. _i=1;
  1752. while (!((_i)>((((T250*)((T250*)(oBC604run_class_dictionary))))->_count/*40*/))) {
  1753. _rc=r250item(((T250*)(oBC604run_class_dictionary)),_i);
  1754. r355c_header_pass2(((T355*)_rc));
  1755. _i=(_i)+(1);
  1756. }
  1757. r324put_comment_line(((T324*)(oBC364cpp)),((T0*)ms22_604));
  1758. _i=1;
  1759. while (!((_i)>((((T250*)((T250*)(oBC604run_class_dictionary))))->_count/*40*/))) {
  1760. _rc=r250item(((T250*)(oBC604run_class_dictionary)),_i);
  1761. r355c_header_pass3(((T355*)_rc));
  1762. _i=(_i)+(1);
  1763. }
  1764. r324put_comment_line(((T324*)(oBC364cpp)),((T0*)ms23_604));
  1765. _i=1;
  1766. while (!((_i)>((((T250*)((T250*)(oBC604run_class_dictionary))))->_count/*40*/))) {
  1767. _rc=r250item(((T250*)(oBC604run_class_dictionary)),_i);
  1768. r355c_header_pass4(((T355*)_rc));
  1769. _i=(_i)+(1);
  1770. }
  1771. /*IF*/if ((((T548*)((T548*)(oBC364gc_handler))))->_is_on/*0*/) {
  1772. r548define1(((T548*)(oBC364gc_handler)));
  1773. }
  1774. /*FI*//*[IRF3.2compile_routines*/{T0* _bcn=NULL;
  1775. int _stop=0;
  1776. int _i=0;
  1777. int _deep=0;
  1778. T0* _ct=NULL;
  1779. T0* _rc_string=NULL;
  1780. T0* _rc=NULL;
  1781. r306put_string(((T306*)(oBC364echo)),((T0*)ms59_604));
  1782. r306put_integer(((T306*)(oBC364echo)),(((T250*)((T250*)(oBC604run_class_dictionary))))->_count/*40*/);
  1783. r306put_string(((T306*)(oBC364echo)),((T0*)ms60_604));
  1784. /*[IRF3.3swap_on_c*/((((T324*)(((T324*)(oBC364cpp)))))->_current_out)=(oBC324out_c);
  1785. /*]*/
  1786. _i=1;
  1787. while (!((_i)>((((T250*)((T250*)(oBC604run_class_dictionary))))->_count/*40*/))) {
  1788. _rc=r250item(((T250*)(oBC604run_class_dictionary)),_i);
  1789. _ct=(((T355*)((T355*)_rc)))->_current_type/*0*/;
  1790. /*IF*/if (X291is_basic_eiffel_expanded(_ct)) {
  1791. r355compile_to_c(((T355*)_rc),0);
  1792. }
  1793.  else if (X291is_string(_ct)) {
  1794. _rc_string=_rc;
  1795. }
  1796. /*FI*/_i=(_i)+(1);
  1797. }
  1798. _i=1;
  1799. while (!((_i)>((((T250*)((T250*)(oBC604run_class_dictionary))))->_count/*40*/))) {
  1800. _rc=r250item(((T250*)(oBC604run_class_dictionary)),_i);
  1801. _ct=(((T355*)((T355*)_rc)))->_current_type/*0*/;
  1802. /*IF*/if (X291is_bit(_ct)) {
  1803. r355compile_to_c(((T355*)_rc),0);
  1804. }
  1805. /*FI*/_i=(_i)+(1);
  1806. }
  1807. _i=1;
  1808. while (!((_i)>((((T250*)((T250*)(oBC604run_class_dictionary))))->_count/*40*/))) {
  1809. _rc=r250item(((T250*)(oBC604run_class_dictionary)),_i);
  1810. _bcn=(((T451*)((T451*)(r355base_class_name(((T355*)_rc))))))->_to_string/*0*/;
  1811. /*IF*/if ((((T0*)ms18_473))==((void*)(_bcn))) {
  1812. r355compile_to_c(((T355*)_rc),0);
  1813. }
  1814. /*FI*/_i=(_i)+(1);
  1815. }
  1816. /*IF*/if ((_rc_string)!=((void*)(NULL))) {
  1817. r355compile_to_c(((T355*)_rc_string),0);
  1818. }
  1819. /*FI*/_i=1;
  1820. while (!((_i)>((((T250*)((T250*)(oBC604run_class_dictionary))))->_count/*40*/))) {
  1821. _rc=r250item(((T250*)(oBC604run_class_dictionary)),_i);
  1822. _ct=(((T355*)((T355*)_rc)))->_current_type/*0*/;
  1823. _bcn=(((T451*)((T451*)(X291base_class_name(_ct)))))->_to_string/*0*/;
  1824. /*IF*/if (((((T0*)ms2_473))==((void*)(_bcn)))||((((T0*)ms13_473))==((void*)(_bcn)))) {
  1825. r355compile_to_c(((T355*)_rc),0);
  1826. }
  1827. /*FI*/_i=(_i)+(1);
  1828. }
  1829. _i=1;
  1830. while (!((_i)>((((T250*)((T250*)(oBC604run_class_dictionary))))->_count/*40*/))) {
  1831. _rc=r250item(((T250*)(oBC604run_class_dictionary)),_i);
  1832. _ct=(((T355*)((T355*)_rc)))->_current_type/*0*/;
  1833. /*IF*/if (X291is_generic(_ct)) {
  1834. r355compile_to_c(((T355*)_rc),0);
  1835. }
  1836. /*FI*/_i=(_i)+(1);
  1837. }
  1838. _deep=6;
  1839. while (!(_stop)) {
  1840. _stop=1;
  1841. _i=1;
  1842. while (!((_i)>((((T250*)((T250*)(oBC604run_class_dictionary))))->_count/*40*/))) {
  1843. _rc=r250item(((T250*)(oBC604run_class_dictionary)),_i);
  1844. /*IF*/if (!((((T355*)((T355*)_rc)))->_compile_to_c_done/*20*/)) {
  1845. _stop=0;
  1846. r355compile_to_c(((T355*)_rc),_deep);
  1847. }
  1848. /*FI*/_i=(_i)+(1);
  1849. }
  1850. _deep=(_deep)-(1);
  1851. }
  1852. }/*]*/
  1853. r324cecil_define(((T324*)(oBC364cpp)));
  1854. /*IF*/if ((((T548*)((T548*)(oBC364gc_handler))))->_is_on/*0*/) {
  1855. r548define2(((T548*)(oBC364gc_handler)));
  1856. }
  1857. /*FI*/r324define_main(((T324*)(oBC364cpp)),_rf3);
  1858. r324define_used_basics(((T324*)(oBC364cpp)));
  1859. r324write_make_file(((T324*)(oBC364cpp)));
  1860. }
  1861. else {
  1862. r683error(((T683*)(oBC364eh)),((T0*)ms25_604));
  1863. }
  1864. /*FI*/}
  1865. /*No:SMALL_EIFFEL.fz_00*/
  1866. /*No:SMALL_EIFFEL.windows_system*/
  1867. /*No:SMALL_EIFFEL.initialize_generator*/
  1868. T0* r604get_environment_variable(T604* C,T0* a1){
  1869. T0* R=NULL;
  1870. void* _p=0;
  1871. _p=r7to_external(((T7*)a1));
  1872. R=(NULL==(_p=getenv((char*)_p)))?NULL:((T0*)e2s((char*)_p));
  1873. return R;
  1874. }
  1875. /*No:SMALL_EIFFEL.short_flag*/
  1876. /*No:SMALL_EIFFEL.fz_03*/
  1877. T0* r604get_class(T0* a1){
  1878. T0* R=NULL;
  1879. /*IF*/if (r718has(((T718*)(oBC604base_class_dictionary)),a1)) {
  1880. R=r718at(((T718*)(oBC604base_class_dictionary)),a1);
  1881. }
  1882. else {
  1883. r451make(((T451*)(r604tmp_class_name())),a1,NULL);
  1884. R=r451base_class(((T451*)(r604tmp_class_name())));
  1885. }
  1886. /*FI*/return R;
  1887. }
  1888. /*No:SMALL_EIFFEL.fz_14*/
  1889. T0* r604system_name(T604* C){
  1890. if (fBC364system_name==0){
  1891. T0* R=NULL;
  1892. int _i=0;
  1893. fBC364system_name=1;
  1894. r7copy(((T7*)(oBC364tmp_path)),r604small_eiffel_directory(C));
  1895. /*IF*/if (r7has(((T7*)(oBC364tmp_path)),'\57')) {
  1896. r7set_last(((T7*)(oBC364tmp_path)),'\57');
  1897. r7append(((T7*)(oBC364tmp_path)),((T0*)ms126_470));
  1898. r7extend(((T7*)(oBC364tmp_path)),'\57');
  1899. r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
  1900. r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
  1901. }
  1902. /*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
  1903. r7copy(((T7*)(oBC364tmp_path)),r604small_eiffel_directory(C));
  1904. /*IF*/if (r7has(((T7*)(oBC364tmp_path)),'\134')) {
  1905. r7set_last(((T7*)(oBC364tmp_path)),'\134');
  1906. r7append(((T7*)(oBC364tmp_path)),((T0*)ms126_470));
  1907. r7extend(((T7*)(oBC364tmp_path)),'\134');
  1908. r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
  1909. r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
  1910. }
  1911. /*FI*/}
  1912. /*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
  1913. r7copy(((T7*)(oBC364tmp_path)),r604small_eiffel_directory(C));
  1914. /*IF*/if (r7has(((T7*)(oBC364tmp_path)),'\72')) {
  1915. r7set_last(((T7*)(oBC364tmp_path)),'\72');
  1916. r7append(((T7*)(oBC364tmp_path)),((T0*)ms126_470));
  1917. r7extend(((T7*)(oBC364tmp_path)),'\72');
  1918. r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
  1919. r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
  1920. }
  1921. /*FI*/}
  1922. /*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
  1923. r7copy(((T7*)(oBC364tmp_path)),r604small_eiffel_directory(C));
  1924. /*IF*/if (r7has(((T7*)(oBC364tmp_path)),'\135')) {
  1925. r7set_last(((T7*)(oBC364tmp_path)),'\135');
  1926. r7remove_last(((T7*)(oBC364tmp_path)),1);
  1927. r7extend(((T7*)(oBC364tmp_path)),'\56');
  1928. r7append(((T7*)(oBC364tmp_path)),((T0*)ms126_470));
  1929. r7extend(((T7*)(oBC364tmp_path)),'\135');
  1930. r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
  1931. r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
  1932. }
  1933. /*FI*/}
  1934. /*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
  1935. r7copy(((T7*)(oBC364tmp_path)),r604small_eiffel_directory(C));
  1936. r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
  1937. r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
  1938. }
  1939. /*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
  1940. r306w_put_string(((T0*)ms20_364));
  1941. r306w_put_string(((T0*)ms127_470));
  1942. r306w_put_string(((T0*)ms21_364));
  1943. r306w_put_string(r604small_eiffel_directory(C));
  1944. r306w_put_string(((T0*)ms242_470));
  1945. exit(1);
  1946. }
  1947. /*FI*/r675read_line(((T675*)(oBC364tmp_file_read)));
  1948. R=oBC762last_string;
  1949. _i=r52index_of(((T52*)(oBC364system_list)),R);
  1950. r675disconnect(((T675*)(oBC364tmp_file_read)));
  1951. /*IF*/if ((_i)>((((T52*)((T52*)(oBC364system_list))))->_upper/*8*/)) {
  1952. r306w_put_string(((T0*)ms22_364));
  1953. r306w_put_string(oBC364tmp_path);
  1954. r306w_put_string(((T0*)ms23_364));
  1955. _i=1;
  1956. while (!((_i)>((((T52*)((T52*)(oBC364system_list))))->_upper/*8*/))) {
  1957. r306w_put_string(r52item(((T52*)(oBC364system_list)),_i));
  1958. r306w_put_character('\n');
  1959. _i=(_i)+(1);
  1960. }
  1961. }
  1962. else {
  1963. R=r52item(((T52*)(oBC364system_list)),_i);
  1964. r306put_string(((T306*)(oBC364echo)),((T0*)ms24_364));
  1965. r306put_string(((T306*)(oBC364echo)),R);
  1966. r306put_string(((T306*)(oBC364echo)),((T0*)ms242_470));
  1967. }
  1968. /*FI*/oBC364system_name=R;}
  1969. return oBC364system_name;}
  1970. int r604parser_buffer_for(T604* C,T0* a1){
  1971. int R=0;
  1972. int _i=0;
  1973. r7copy(((T7*)(oBC604tmp_tail)),a1);
  1974. r7to_lower(((T7*)(oBC604tmp_tail)));
  1975. /*IF*/if (!(r7has_suffix(((T7*)(oBC604tmp_tail)),((T0*)ms25_364)))) {
  1976. r7append(((T7*)(oBC604tmp_tail)),((T0*)ms25_364));
  1977. }
  1978. /*FI*/_i=(((T52*)((T52*)(r604loading_path(C)))))->_lower/*12*/;
  1979. while (!(((_i)>((((T52*)((T52*)(r604loading_path(C)))))->_upper/*8*/))||(R))) {
  1980. r7copy(((T7*)(oBC604parser_buffer_path)),r52item(((T52*)(r604loading_path(C))),_i));
  1981. r7append(((T7*)(oBC604parser_buffer_path)),oBC604tmp_tail);
  1982. r676load_file(((T676*)(oBC364parser_buffer)),oBC604parser_buffer_path);
  1983. R=/*(IRF4.7is_ready*/((((T676*)((T676*)(oBC364parser_buffer))))->_path/*0*/)!=(NULL)/*)*/;
  1984. _i=(_i)+(1);
  1985. }
  1986. /*IF*/if ((!(R))&&(r794has(((T794*)(r604rename_dictionary(C))),oBC604tmp_tail))) {
  1987. r7copy(((T7*)(oBC604parser_buffer_path)),r794at(((T794*)(r604rename_dictionary(C))),oBC604tmp_tail));
  1988. r676load_file(((T676*)(oBC364parser_buffer)),oBC604parser_buffer_path);
  1989. /*IF*/if (/*(IRF4.7is_ready*/((((T676*)((T676*)(oBC364parser_buffer))))->_path/*0*/)!=(NULL)/*)*/) {
  1990. R=1;
  1991. }
  1992. else {
  1993. r306w_put_string(((T0*)ms10_604));
  1994. r306w_put_string(oBC604parser_buffer_path);
  1995. r306w_put_string(((T0*)ms137_470));
  1996. exit(1);
  1997. }
  1998. /*FI*/}
  1999. /*FI*//*IF*/if (!(R)) {
  2000. r7copy(((T7*)(oBC604tmp_tail)),a1);
  2001. /*IF*/if (!(r7has_suffix(((T7*)(oBC604tmp_tail)),((T0*)ms25_364)))) {
  2002. r7append(((T7*)(oBC604tmp_tail)),((T0*)ms25_364));
  2003. }
  2004. /*FI*/_i=(((T52*)((T52*)(r604loading_path(C)))))->_lower/*12*/;
  2005. while (!(((_i)>((((T52*)((T52*)(r604loading_path(C)))))->_upper/*8*/))||(R))) {
  2006. r7copy(((T7*)(oBC604parser_buffer_path)),r52item(((T52*)(r604loading_path(C))),_i));
  2007. r7append(((T7*)(oBC604parser_buffer_path)),oBC604tmp_tail);
  2008. r676load_file(((T676*)(oBC364parser_buffer)),oBC604parser_buffer_path);
  2009. R=/*(IRF4.7is_ready*/((((T676*)((T676*)(oBC364parser_buffer))))->_path/*0*/)!=(NULL)/*)*/;
  2010. _i=(_i)+(1);
  2011. }
  2012. }
  2013. /*FI*//*IF*/if (!(R)) {
  2014. r306w_put_string(((T0*)ms11_604));
  2015. r306w_put_string(a1);
  2016. r306w_put_string(((T0*)ms12_604));
  2017. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC604parser_buffer_path)))))->_count)=(0);
  2018. /*]*/
  2019. r604append_loading_path_in(C,oBC604parser_buffer_path);
  2020. r306w_put_string(oBC604parser_buffer_path);
  2021. }
  2022. /*FI*/return R;
  2023. }
  2024. /*No:SMALL_EIFFEL.fz_b0*/
  2025. /*No:SMALL_EIFFEL.em1*/
  2026. /*No:SMALL_EIFFEL.is_ready*/
  2027. /*No:SMALL_EIFFEL.base_class_count*/
  2028. /*No:SMALL_EIFFEL.fz_se*/
  2029. /*No:SMALL_EIFFEL.os2_system*/
  2030. void r604pop(T604* C){
  2031. C->_top=((((T604*)C))->_top/*12*/)-(1);
  2032. }
  2033. int fBC604rename_dictionary=0;
  2034. T0*oBC604rename_dictionary=NULL;
  2035. T0* r604rename_dictionary(T604* C){
  2036. if (fBC604rename_dictionary==0){
  2037. T0* R=NULL;
  2038. T0* _short_name=NULL;
  2039. T0* _full_name=NULL;
  2040. int _i=0;
  2041. fBC604rename_dictionary=1;
  2042. {T794*n=malloc(sizeof(*n));
  2043. *n=M794;
  2044. r794make(n);
  2045. R=(T0*)n;
  2046. }
  2047. _i=1;
  2048. while (!((_i)>((((T52*)((T52*)(r604loading_path(C)))))->_upper/*8*/))) {
  2049. r7copy(((T7*)(oBC364tmp_path)),r52item(((T52*)(r604loading_path(C))),_i));
  2050. r7append(((T7*)(oBC364tmp_path)),((T0*)ms13_604));
  2051. r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
  2052. /*IF*/if (/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/) {
  2053. while (!(r675end_of_input(((T675*)(oBC364tmp_file_read))))) {
  2054. r675read_word(((T675*)(oBC364tmp_file_read)));
  2055. _full_name=r7twin(((T7*)(oBC762last_string)));
  2056. r675read_word(((T675*)(oBC364tmp_file_read)));
  2057. _short_name=r7twin(((T7*)(oBC762last_string)));
  2058. r7prepend(((T7*)_short_name),r52item(((T52*)(r604loading_path(C))),_i));
  2059. /*IF*/if (r794has(((T794*)R),_full_name)) {
  2060. r306w_put_string(((T0*)ms14_604));
  2061. r306w_put_string(_full_name);
  2062. r306w_put_string(((T0*)ms15_604));
  2063. r306w_put_string(_short_name);
  2064. r306w_put_string(((T0*)ms16_604));
  2065. r306w_put_string(r794at(((T794*)R),_full_name));
  2066. r306w_put_string(((T0*)ms17_604));
  2067. exit(1);
  2068. }
  2069. /*FI*/r794put(((T794*)R),_short_name,_full_name);
  2070. r675skip_separators(((T675*)(oBC364tmp_file_read)));
  2071. }
  2072. r675disconnect(((T675*)(oBC364tmp_file_read)));
  2073. }
  2074. /*FI*/_i=(_i)+(1);
  2075. }
  2076. oBC604rename_dictionary=R;}
  2077. return oBC604rename_dictionary;}
  2078. int fBC364id_provider=0;
  2079. T0*oBC364id_provider=NULL;
  2080. T0* r604id_provider(void){
  2081. if (fBC364id_provider==0){
  2082. T0* R=NULL;
  2083. fBC364id_provider=1;
  2084. {T410*n=malloc(sizeof(*n));
  2085. *n=M410;
  2086. r410make(n);
  2087. R=(T0*)n;
  2088. }
  2089. oBC364id_provider=R;}
  2090. return oBC364id_provider;}
  2091. T0* r604run_class(T0* a1){
  2092. T0* R=NULL;
  2093. T0* _run_string=NULL;
  2094. _run_string=X291run_time_mark(a1);
  2095. /*IF*/if (r250has(((T250*)(oBC604run_class_dictionary)),_run_string)) {
  2096. R=r250at(((T250*)(oBC604run_class_dictionary)),_run_string);
  2097. }
  2098. else {
  2099. {T355*n=malloc(sizeof(*n));
  2100. *n=M355;
  2101. r355make(n,a1);
  2102. R=(T0*)n;
  2103. }
  2104. }
  2105. /*FI*/return R;
  2106. }
  2107. void r604append_loading_path_in(T604* C,T0* a1){
  2108. T0* _sed=NULL;
  2109. int _i=0;
  2110. r7append(((T7*)a1),((T0*)ms62_604));
  2111. _i=(((T52*)((T52*)(r604loading_path(C)))))->_lower/*12*/;
  2112. while (!((_i)>((((T52*)((T52*)(r604loading_path(C)))))->_upper/*8*/))) {
  2113. r7extend(((T7*)a1),'\42');
  2114. r7append(((T7*)a1),r52item(((T52*)(r604loading_path(C))),_i));
  2115. r7extend(((T7*)a1),'\42');
  2116. r7extend(((T7*)a1),'\n');
  2117. _i=(_i)+(1);
  2118. }
  2119. r7append(((T7*)a1),((T0*)ms63_604));
  2120. r7append(((T7*)a1),((T0*)ms121_470));
  2121. _sed=r604get_environment_variable(C,((T0*)ms121_470));
  2122. r7append(((T7*)a1),((T0*)ms64_604));
  2123. /*IF*/if ((_sed)==((void*)(NULL))) {
  2124. r7append(((T7*)a1),((T0*)ms65_604));
  2125. }
  2126. else {
  2127. r7append(((T7*)a1),((T0*)ms66_604));
  2128. r7append(((T7*)a1),_sed);
  2129. r7append(((T7*)a1),((T0*)ms67_604));
  2130. }
  2131. /*FI*/r7extend(((T7*)a1),'\n');
  2132. }
  2133. /*No:SMALL_EIFFEL.top*/
  2134. /*No:SMALL_EIFFEL.compile_routines*/
  2135. T0*oBC604rf9_memory=NULL;
  2136. int r604is_used(T0* a1){
  2137. int R=0;
  2138. R=r718has(((T718*)(oBC604base_class_dictionary)),a1);
  2139. return R;
  2140. }
  2141. /*No:SMALL_EIFFEL.macintosh_system*/
  2142. /*No:SMALL_EIFFEL.fz_dot*/
  2143. /*No:SMALL_EIFFEL.define_extern_tables*/
  2144. void r604incr_magic_count(T604* C){
  2145. C->_magic_count=((((T604*)C))->_magic_count/*8*/)+(1);
  2146. }
  2147. /*No:SMALL_EIFFEL.magic_count*/
  2148. /*No:SMALL_EIFFEL.eiffel_suffix*/
  2149. T0* r604base_class(T604* C,T0* a1){
  2150. T0* R=NULL;
  2151. /*IF*/if (r718has(((T718*)(oBC604base_class_dictionary)),(((T451*)((T451*)a1)))->_to_string/*0*/)) {
  2152. R=r718at(((T718*)(oBC604base_class_dictionary)),(((T451*)((T451*)a1)))->_to_string/*0*/);
  2153. }
  2154.  else if ((((T818*)((T818*)(oBC364eiffel_parser))))->_is_running/*8*/) {
  2155. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms6_604);
  2156. r683fatal_error(((T683*)(oBC364eh)),b1);
  2157. }/*]*/
  2158. }
  2159. else {
  2160. /*IF*/if (r604parser_buffer_for(C,(((T451*)((T451*)a1)))->_to_string/*0*/)) {
  2161. R=r818analyse_class(((T818*)(oBC364eiffel_parser)),a1);
  2162. }
  2163. /*FI*//*IF*/if ((R)==((void*)(NULL))) {
  2164. r683add_position((((T451*)((T451*)a1)))->_start_position/*4*/);
  2165. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms7_604);
  2166. r683fatal_error(((T683*)(oBC364eh)),b1);
  2167. }/*]*/
  2168. }
  2169. /*FI*/}
  2170. /*FI*/return R;
  2171. }
  2172. /*No:SMALL_EIFFEL.fatal_error*/
  2173. T0* r604load_class(T604* C,T0* a1){
  2174. T0* R=NULL;
  2175. /*IF*/if (r604parser_buffer_for(C,a1)) {
  2176. R=r818analyse_class(((T818*)(oBC364eiffel_parser)),NULL);
  2177. /*IF*/if ((R)==((void*)(NULL))) {
  2178. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms8_604);
  2179. r683fatal_error(((T683*)(oBC364eh)),b1);
  2180. }/*]*/
  2181. }
  2182. /*FI*/}
  2183. else {
  2184. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms9_604);
  2185. r683fatal_error(((T683*)(oBC364eh)),b1);
  2186. }/*]*/
  2187. }
  2188. /*FI*/return R;
  2189. }
  2190. /*No:SMALL_EIFFEL.us_native_array*/
  2191. /*No:SMALL_EIFFEL.us_fixed_array*/
  2192. /*No:SMALL_EIFFEL.afd_check*/
  2193. /*No:SMALL_EIFFEL.us_any*/
  2194. T0*oBC604base_class_dictionary=NULL;
  2195. int r604is_tagged(T0* a1){
  2196. int R=0;
  2197. T0* _rc2=NULL;
  2198. T0* _rcd=NULL;
  2199. T0* _r=NULL;
  2200. int _up=0;
  2201. int _i=0;
  2202. _i=1;
  2203. _rcd=oBC604run_class_dictionary;
  2204. _up=(((T250*)((T250*)_rcd)))->_count/*40*/;
  2205. while (!((R)||((_i)>(_up)))) {
  2206. _rc2=r250item(((T250*)_rcd),_i);
  2207. _r=(((T355*)((T355*)_rc2)))->_running/*12*/;
  2208. /*IF*/if ((_r)==((void*)(NULL))) {
  2209. }
  2210.  else if (r396fast_has(((T396*)_r),a1)) {
  2211. R=(r396count(((T396*)_r)))>(1);
  2212. }
  2213. /*FI*/_i=(_i)+(1);
  2214. }
  2215. return R;
  2216. }
  2217. T0*oBC431isa_dca_inline_memory=NULL;
  2218. int r431isa_dca_inline(T431* C,T0* a1,T0* a2){
  2219. int R=0;
  2220. int _r=0;
  2221. int _i=0;
  2222. T0* _e=NULL;
  2223. T0* _args=NULL;
  2224. T0* _relay_args=NULL;
  2225. _relay_args=/*X496*/((T0*)(((T832*)((T832*)a1)))->_arguments/*20*/);
  2226. _args=/*X496*/((T0*)(((T832*)((T832*)a2)))->_arguments/*20*/);
  2227. R=1;
  2228. _i=/*X96*/((int)(((T96*)((T96*)((((T431*)C))->_list/*4*/))))->_upper/*12*/);
  2229. r353force(((T353*)(oBC431isa_dca_inline_memory)),0,_i);
  2230. /*[IRF3.6clear_all*/{T353* C1=((T353*)(oBC431isa_dca_inline_memory));
  2231. int __value=0;
  2232. /*[IRF3.6set_all_with*/{T353* C2=C1;
  2233. int c1=__value;
  2234. r541set_all_with((((T353*)C2))->_storage/*0*/,c1,((((T353*)C2))->_upper/*8*/)-((((T353*)C2))->_lower/*12*/));
  2235. }/*]*/
  2236. }/*]*/
  2237. while (!((!(R))||((_i)==(0)))) {
  2238. _e=/*X96*/((T0*)r96item(((T96*)((((T431*)C))->_list/*4*/)),_i));
  2239. _r=X662isa_dca_inline_argument(_e);
  2240. {int z1=_r;
  2241.  
  2242. if((0==z1)){
  2243. R=0;
  2244. }
  2245.  else 
  2246. if((-1==z1)){
  2247. /*IF*/if (X291is_expanded(r31type(((T31*)_args),_i))) {
  2248. R=X291is_expanded(X662result_type(_e));
  2249. }
  2250. else {
  2251. R=X291is_reference(X662result_type(_e));
  2252. }
  2253. /*FI*/}
  2254.  else{/*[IRF3.6put*/{T353* C1=((T353*)(oBC431isa_dca_inline_memory));
  2255. int b1=1;
  2256. int b2=_r;
  2257. ((((T353*)C1))->_storage/*0*/)[(b2)-((((T353*)C1))->_lower/*12*/)]=(b1);
  2258. }/*]*/
  2259. /*IF*/if (X291is_reference(r31type(((T31*)_relay_args),_r))) {
  2260. /*IF*/if (X291is_reference(r31type(((T31*)_args),_i))) {
  2261. R=X291is_reference(X662result_type(_e));
  2262. }
  2263. else {
  2264. R=0;
  2265. }
  2266. /*FI*/}
  2267.  else if (X291is_expanded(r31type(((T31*)_args),_i))) {
  2268. R=X291is_expanded(X662result_type(_e));
  2269. }
  2270. else {
  2271. R=0;
  2272. }
  2273. /*FI*/}}
  2274. _i=(_i)-(1);
  2275. }
  2276. /*IF*/if (R) {
  2277. _i=X496arg_count(a1);
  2278. while (!((!(R))||((_i)==(0)))) {
  2279. R=r353item(((T353*)(oBC431isa_dca_inline_memory)),_i);
  2280. _i=(_i)-(1);
  2281. }
  2282. }
  2283. /*FI*/return R;
  2284. }
  2285. int r431is_like_argument(T431* C,T0* a1,T0* a2,T0* a3){
  2286. int R=0;
  2287. T0* _ot=NULL;
  2288. T0* _tla=NULL;
  2289. _tla=a3;
  2290. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  2291. case 239: 
  2292. break;
  2293. default:
  2294. _tla=NULL;
  2295. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  2296. R=1;
  2297. _ot=X662result_type(r431expression(C,/*(IRF4.6rank*/(((T886*)((T886*)((((T239*)((T239*)_tla)))->_like_what/*12*/))))->_rank/*20*//*)*/));
  2298. /*IF*/if (!(X291is_a(X291run_type(a2),X291run_type(_ot)))) {
  2299. r683add_position(X662start_position(a1));
  2300. r431error(X291start_position(a3),((T0*)ms12_431));
  2301. }
  2302. /*FI*/}
  2303. /*FI*/return R;
  2304. }
  2305. void r431match_with(T431* C,T0* a1){
  2306. T0* _ft=NULL;
  2307. T0* _at=NULL;
  2308. T0* _e=NULL;
  2309. int _i=0;
  2310. T0* _fal=NULL;
  2311. _fal=/*X496*/((T0*)(((T832*)((T832*)a1)))->_arguments/*20*/);
  2312. /*IF*/if ((_fal)==((void*)(NULL))) {
  2313. r683add_position(X496start_position(a1));
  2314. r431error(r431start_position(C),((T0*)ms14_431));
  2315. }
  2316. /*FI*//*IF*/if (((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0))&&((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)_fal)))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(r431count(C)))) {
  2317. r683add_position((((T31*)((T31*)_fal)))->_start_position/*4*/);
  2318. r431error(r431start_position(C),((T0*)ms14_431));
  2319. }
  2320. /*FI*/_i=/*X96*/((int)(((T96*)((T96*)((((T431*)C))->_list/*4*/))))->_upper/*12*/);
  2321. while (!(((_i)==(0))||((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)>(0)))) {
  2322. _e=/*X96*/((T0*)r96item(((T96*)((((T431*)C))->_list/*4*/)),_i));
  2323. _at=X662result_type(_e);
  2324. _ft=r31type(((T31*)_fal),_i);
  2325. /*IF*/if (X662is_void(_e)) {
  2326. /*IF*/if (X291is_expanded(_ft)) {
  2327. r683add_position(X662start_position(_e));
  2328. r431error(X291start_position(_ft),((T0*)ms2_431));
  2329. }
  2330. /*FI*/}
  2331.  else if (X291is_like_current(_ft)) {
  2332. /*IF*/if (X662is_current(_e)) {
  2333. }
  2334.  else if (X291is_a(X291run_type(_at),X291run_type(_ft))) {
  2335. /*IF*/if (X291is_expanded(X291run_type(_at))) {
  2336. }
  2337.  else if (X291is_a(X291run_type(_ft),X291run_type(_at))) {
  2338. }
  2339. else {
  2340. r683add_position(X662start_position(_e));
  2341. r431error(X291start_position(_ft),((T0*)ms13_431));
  2342. }
  2343. /*FI*/}
  2344. else {
  2345. r683add_position(X662start_position(_e));
  2346. r431error(X291start_position(_ft),((T0*)ms13_431));
  2347. }
  2348. /*FI*/}
  2349.  else if (X291is_like_feature(_ft)) {
  2350. /*IF*/if (X291is_a(X291run_type(_at),X291run_type(_ft))) {
  2351. }
  2352. else {
  2353. r683add_position(X662start_position(_e));
  2354. r431error(X291start_position(_ft),((T0*)ms3_431));
  2355. }
  2356. /*FI*/}
  2357.  else if (r431is_like_argument(C,_e,_at,_ft)) {
  2358. }
  2359.  else if (X291is_a(X291run_type(_at),X291run_type(_ft))) {
  2360. }
  2361. else {
  2362. r683print_as_error(((T683*)(oBC364eh)));
  2363. r683add_position(X291start_position(_ft));
  2364. r431error(X662start_position(_e),((T0*)ms4_431));
  2365. }
  2366. /*FI*/_at=X291run_type(_at);
  2367. _ft=X291run_type(_ft);
  2368. /*IF*/if (X291is_expanded(_ft)) {
  2369. /*IF*/if (X291is_expanded(_at)) {
  2370. }
  2371. else {
  2372. X291used_as_reference(_ft);
  2373. }
  2374. /*FI*/}
  2375.  else if (X291is_expanded(_at)) {
  2376. X291used_as_reference(_at);
  2377. }
  2378. /*FI*/_i=(_i)-(1);
  2379. }
  2380. }
  2381. /*No:EFFECTIVE_ARG_LIST.make*/
  2382. /*No:EFFECTIVE_ARG_LIST.nb_errors*/
  2383. T0* r431expression(T431* C,int a1){
  2384. T0* R=NULL;
  2385. R=/*X96*/((T0*)r96item(((T96*)((((T431*)C))->_list/*4*/)),a1));
  2386. return R;
  2387. }
  2388. T0* r431start_position(T431* C){
  2389. T0* R=NULL;
  2390. R=X662start_position(/*X96*/((T0*)r96item(((T96*)((((T431*)C))->_list/*4*/)),1)));
  2391. return R;
  2392. }
  2393. void r431compile_to_c(T431* C,T0* a1){
  2394. int _up=0;
  2395. int _i=0;
  2396. _i=1;
  2397. _up=r431count(C);
  2398. while (!((_i)>(_up))) {
  2399. r431compile_to_c_ith(C,a1,_i);
  2400. _i=(_i)+(1);
  2401. /*IF*/if ((_i)<=(_up)) {
  2402. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2403. char b1='\54';
  2404. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2405. }/*]*/
  2406. /*]*/
  2407. }
  2408. /*FI*/}
  2409. }
  2410. T0* r431to_runnable(T431* C,T0* a1){
  2411. T0* R=NULL;
  2412. T0* _e2=NULL;
  2413. T0* _e1=NULL;
  2414. int _i=0;
  2415. /*IF*/if (((((T431*)C))->_current_type/*8*/)==((void*)(NULL))) {
  2416. C->_current_type=a1;
  2417. _i=/*X96*/((int)(((T96*)((T96*)((((T431*)C))->_list/*4*/))))->_upper/*12*/);
  2418. while (!((_i)==(0))) {
  2419. _e1=/*X96*/((T0*)r96item(((T96*)((((T431*)C))->_list/*4*/)),_i));
  2420. _e2=X662to_runnable(_e1,(((T431*)C))->_current_type/*8*/);
  2421. /*IF*/if ((_e2)==((void*)(NULL))) {
  2422. r431error(X662start_position(_e1),((T0*)ms5_431));
  2423. }
  2424.  else if ((_e1)!=((void*)(_e2))) {
  2425. /*X96*//*[IRF3.6put*/{T96* C1=((T96*)((((T431*)C))->_list/*4*/));
  2426. T0* b1=_e2;
  2427. int b2=_i;
  2428. ((((T96*)C1))->_storage/*4*/)[(b2)-((((T96*)C1))->_lower/*16*/)]=(b1);
  2429. }/*]*/
  2430. }
  2431. /*FI*/_i=(_i)-(1);
  2432. }
  2433. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  2434. R=(T0*)C;
  2435. }
  2436. /*FI*/}
  2437.  else if ((X291run_class(a1))==((void*)(r431run_class(C)))) {
  2438. R=(T0*)C;
  2439. }
  2440. else {
  2441. {T431*n=malloc(sizeof(*n));
  2442. *n=M431;
  2443. /*[IRF3.3make*/((((T431*)(n)))->_list)=(X96twin((((T431*)C))->_list/*4*/));
  2444. /*]*/
  2445. R=(T0*)n;
  2446. }
  2447. R=X431to_runnable(R,a1);
  2448. }
  2449. /*FI*/return R;
  2450. }
  2451. void r431compile_to_c_ith(T431* C,T0* a1,int a2){
  2452. T0* _ft=NULL;
  2453. T0* _e=NULL;
  2454. _e=r431expression(C,a2);
  2455. _ft=X291run_type(r31type(((T31*)a1),a2));
  2456. X662mapping_c_arg(_e,_ft);
  2457. }
  2458. int r431is_static(T431* C){
  2459. int R=0;
  2460. int _i=0;
  2461. R=1;
  2462. _i=/*X96*/((int)(((T96*)((T96*)((((T431*)C))->_list/*4*/))))->_upper/*12*/);
  2463. while (!((!(R))||((_i)==(0)))) {
  2464. R=X662is_static(r431expression(C,_i));
  2465. _i=(_i)-(1);
  2466. }
  2467. return R;
  2468. }
  2469. /*No:EFFECTIVE_ARG_LIST.em1*/
  2470. /*No:EFFECTIVE_ARG_LIST.list*/
  2471. /*No:EFFECTIVE_ARG_LIST.em2*/
  2472. void r431dca_inline_ith(T431* C,T0* a1,int a2){
  2473. T0* _ft=NULL;
  2474. T0* _e=NULL;
  2475. _e=r431expression(C,a2);
  2476. _ft=X291run_type(r31type(((T31*)a1),a2));
  2477. X662dca_inline_argument(_e,_ft);
  2478. }
  2479. int r431can_be_dropped(T431* C){
  2480. int R=0;
  2481. int _i=0;
  2482. R=1;
  2483. _i=/*X96*/((int)(((T96*)((T96*)((((T431*)C))->_list/*4*/))))->_upper/*12*/);
  2484. while (!((!(R))||((_i)==(0)))) {
  2485. R=X662can_be_dropped(r431expression(C,_i));
  2486. _i=(_i)-(1);
  2487. }
  2488. return R;
  2489. }
  2490. /*No:EFFECTIVE_ARG_LIST.current_type*/
  2491. T0* r431run_class(T431* C){
  2492. T0* R=NULL;
  2493. R=X291run_class((((T431*)C))->_current_type/*8*/);
  2494. return R;
  2495. }
  2496. void r431compile_to_c_old(T431* C){
  2497. int _i=0;
  2498. /*IF*/if (((((T431*)C))->_list/*4*/)!=((void*)(NULL))) {
  2499. _i=1;
  2500. while (!((_i)>(/*X96*/((int)(((T96*)((T96*)((((T431*)C))->_list/*4*/))))->_upper/*12*/)))) {
  2501. X662compile_to_c_old(/*X96*/((T0*)r96item(((T96*)((((T431*)C))->_list/*4*/)),_i)));
  2502. _i=(_i)+(1);
  2503. }
  2504. }
  2505. /*FI*/}
  2506. int r431is_pre_computable(T431* C){
  2507. int R=0;
  2508. int _i=0;
  2509. _i=r431count(C);
  2510. R=1;
  2511. while (!((!(R))||((_i)==(0)))) {
  2512. R=X662is_pre_computable(r431expression(C,_i));
  2513. _i=(_i)-(1);
  2514. }
  2515. return R;
  2516. }
  2517. int r431use_current(T431* C){
  2518. int R=0;
  2519. int _i=0;
  2520. _i=1;
  2521. while (!(((_i)>(r431count(C)))||(R))) {
  2522. R=X662use_current(r431expression(C,_i));
  2523. _i=(_i)+(1);
  2524. }
  2525. return R;
  2526. }
  2527. void r431dca_inline(T431* C,T0* a1){
  2528. int _up=0;
  2529. int _i=0;
  2530. _up=/*X96*/((int)(((T96*)((T96*)((((T431*)C))->_list/*4*/))))->_upper/*12*/);
  2531. _i=1;
  2532. while (!((_i)>(_up))) {
  2533. r431dca_inline_ith(C,a1,_i);
  2534. _i=(_i)+(1);
  2535. /*IF*/if ((_i)<=(_up)) {
  2536. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2537. char b1='\54';
  2538. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2539. }/*]*/
  2540. /*]*/
  2541. }
  2542. /*FI*/}
  2543. }
  2544. void r431error(T0* a1,T0* a2){
  2545. r683add_position(a1);
  2546. r683error(((T683*)(oBC364eh)),a2);
  2547. }
  2548. int r431count(T431* C){
  2549. int R=0;
  2550. R=/*X96*/((int)(((T96*)((T96*)((((T431*)C))->_list/*4*/))))->_upper/*12*/);
  2551. return R;
  2552. }
  2553. T0* r431first(T431* C){
  2554. T0* R=NULL;
  2555. R=X96first((((T431*)C))->_list/*4*/);
  2556. return R;
  2557. }
  2558. void r431afd_check(T431* C){
  2559. int _i=0;
  2560. _i=/*X96*/((int)(((T96*)((T96*)((((T431*)C))->_list/*4*/))))->_upper/*12*/);
  2561. while (!((_i)==(0))) {
  2562. X662afd_check(/*X96*/((T0*)r96item(((T96*)((((T431*)C))->_list/*4*/)),_i)));
  2563. _i=(_i)-(1);
  2564. }
  2565. }
  2566. T0* r873add_comment(T873* C,T0* a1){
  2567. T0* R=NULL;
  2568. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  2569. R=(T0*)C;
  2570. }
  2571. else {
  2572. {T529*n=malloc(sizeof(*n));
  2573. *n=M529;
  2574. r529make(n,(T0*)C,a1);
  2575. R=(T0*)n;
  2576. }
  2577. }
  2578. /*FI*/return R;
  2579. }
  2580. int r873to_integer(T873* C){
  2581. int R=0;
  2582. r873error((((T873*)C))->_start_position/*16*/,((T0*)ms69_470));
  2583. return R;
  2584. }
  2585. int r873is_a(T873* C,T0* a1){
  2586. int R=0;
  2587. R=X291is_a(X291run_type((((T873*)C))->_result_type/*24*/),X291run_type(X662result_type(a1)));
  2588. /*IF*/if (!(R)) {
  2589. r683add_position((((T873*)C))->_start_position/*16*/);
  2590. r873error(X662start_position(a1),((T0*)ms4_662));
  2591. }
  2592. /*FI*/return R;
  2593. }
  2594. void r873name_clash(T873* C){
  2595. T0* _rc=NULL;
  2596. T0* _rf=NULL;
  2597. /*IF*/if (r605has_feature(((T605*)(r873base_class_written(C))),(((T873*)C))->_to_string/*12*/)) {
  2598. _rc=X291run_class((((T873*)C))->_current_type/*8*/);
  2599. _rf=r355get_feature_with(((T355*)_rc),(((T873*)C))->_to_string/*12*/);
  2600. /*IF*/if ((_rf)!=((void*)(NULL))) {
  2601. r683add_position(X496start_position(_rf));
  2602. }
  2603. /*FI*/r873error((((T873*)C))->_start_position/*16*/,((T0*)ms1_873));
  2604. }
  2605. /*FI*/}
  2606. /*No:ARGUMENT_NAME1.is_current*/
  2607. void r873mapping_c_arg(T873* C,T0* a1){
  2608. T0* _rt=NULL;
  2609. _rt=X291run_type((((T873*)C))->_result_type/*24*/);
  2610. /*IF*/if (X291is_reference(_rt)) {
  2611. /*IF*/if (X291is_reference(a1)) {
  2612. r324print_argument(((T324*)(oBC364cpp)),(((T873*)C))->_rank/*20*/);
  2613. }
  2614. else {
  2615. X291to_expanded(_rt);
  2616. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2617. char b1='\50';
  2618. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2619. }/*]*/
  2620. /*]*/
  2621. r324print_argument(((T324*)(oBC364cpp)),(((T873*)C))->_rank/*20*/);
  2622. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2623. char b1='\51';
  2624. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2625. }/*]*/
  2626. /*]*/
  2627. }
  2628. /*FI*/}
  2629. else {
  2630. /*IF*/if (X291is_reference(a1)) {
  2631. X291to_reference(_rt);
  2632. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2633. char b1='\50';
  2634. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2635. }/*]*/
  2636. /*]*/
  2637. r324print_argument(((T324*)(oBC364cpp)),(((T873*)C))->_rank/*20*/);
  2638. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2639. char b1='\51';
  2640. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2641. }/*]*/
  2642. /*]*/
  2643. }
  2644. else {
  2645. r324print_argument(((T324*)(oBC364cpp)),(((T873*)C))->_rank/*20*/);
  2646. }
  2647. /*FI*/}
  2648. /*FI*/}
  2649. T0* r873written_in(T873* C){
  2650. T0* R=NULL;
  2651. T0* _sp=NULL;
  2652. _sp=(((T873*)C))->_start_position/*16*/;
  2653. /*IF*/if ((_sp)!=((void*)(NULL))) {
  2654. R=(((T627*)((T627*)_sp)))->_base_class_name/*0*/;
  2655. }
  2656. /*FI*/return R;
  2657. }
  2658. /*No:ARGUMENT_NAME1.static_value*/
  2659.  
  2660.