home *** CD-ROM | disk | FTP | other *** search
/ Amiga ACS 1998 #4 / amigaacscoverdisc1998-041998.iso / utilities / shareware / dev / ppcsmalleiffel / source.lha / bin_c / compile_to_c41.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  79.7 KB  |  2,482 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. void r240c_mapping_procedure_non_small_eiffel(T0* a1,T0* a2){
  10. int _bfuc=0;
  11. T0* _bf=NULL;
  12. _bf=(((T906*)((T906*)a1)))->_base_feature/*44*/;
  13. _bfuc=r883use_current(((T883*)_bf));
  14. /*IF*/if ((!(_bfuc))&&(r324target_cannot_be_dropped(((T324*)(oBC364cpp))))) {
  15. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms148_470));
  16. /*]*/
  17. }
  18. /*FI*//*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),r883external_c_name(((T883*)_bf)));
  19. /*]*/
  20. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  21. char b1='\50';
  22. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  23. }/*]*/
  24. /*]*/
  25. /*IF*/if (_bfuc) {
  26. r324put_target_as_value(((T324*)(oBC364cpp)));
  27. }
  28. /*FI*//*IF*/if ((r906arg_count(((T906*)a1)))>(0)) {
  29. /*IF*/if (_bfuc) {
  30. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  31. char b1='\54';
  32. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  33. }/*]*/
  34. /*]*/
  35. }
  36. /*FI*/r324put_arguments(((T324*)(oBC364cpp)));
  37. }
  38. /*FI*//*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms148_470));
  39. /*]*/
  40. }
  41. void r240c_mapping_function_non_small_eiffel(T0* a1,T0* a2){
  42. int _tcbd=0;
  43. int _bfuc=0;
  44. T0* _bf=NULL;
  45. _bf=(((T892*)((T892*)a1)))->_base_feature/*48*/;
  46. _bfuc=r679use_current(((T679*)_bf));
  47. /*IF*/if (!(_bfuc)) {
  48. _tcbd=r324target_cannot_be_dropped(((T324*)(oBC364cpp)));
  49. /*IF*/if (_tcbd) {
  50. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  51. char b1='\54';
  52. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  53. }/*]*/
  54. /*]*/
  55. }
  56. /*FI*/}
  57. /*FI*//*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),r679external_c_name(((T679*)_bf)));
  58. /*]*/
  59. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  60. char b1='\50';
  61. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  62. }/*]*/
  63. /*]*/
  64. /*IF*/if (_bfuc) {
  65. r324put_target_as_value(((T324*)(oBC364cpp)));
  66. }
  67. /*FI*//*IF*/if ((r892arg_count(((T892*)a1)))>(0)) {
  68. /*IF*/if (_bfuc) {
  69. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  70. char b1='\54';
  71. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  72. }/*]*/
  73. /*]*/
  74. }
  75. /*FI*/r324put_arguments(((T324*)(oBC364cpp)));
  76. }
  77. /*FI*//*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  78. char b1='\51';
  79. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  80. }/*]*/
  81. /*]*/
  82. /*IF*/if ((!(_bfuc))&&(_tcbd)) {
  83. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  84. char b1='\51';
  85. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  86. }/*]*/
  87. /*]*/
  88. }
  89. /*FI*/}
  90. /*No:NATIVE_INLINE_WITH_CURRENT.c_define_function*/
  91. /*No:NATIVE_INLINE_WITH_CURRENT.fz_14*/
  92. /*No:NATIVE_INLINE_WITH_CURRENT.c_define_procedure*/
  93. /*No:NATIVE_INLINE_WITH_CURRENT.stupid_switch*/
  94. /*No:NATIVE_INLINE_WITH_CURRENT.c_mapping_procedure*/
  95. /*No:NATIVE_INLINE_WITH_CURRENT.c_mapping_function*/
  96. /*No:NATIVE_INLINE_WITH_CURRENT.use_current*/
  97. void r913get_started(T913* C,T0* a1){
  98. int _i=0;
  99. _i=1;
  100. while (!((_i)>((((T764*)((T764*)((((T913*)C))->_list/*0*/))))->_upper/*8*/))) {
  101. r153add_into(((T153*)(r764item(((T764*)((((T913*)C))->_list/*0*/)),_i))),a1);
  102. _i=(_i)+(1);
  103. }
  104. }
  105. /*No:FEATURE_CLAUSE_LIST.make*/
  106. /*No:FEATURE_CLAUSE_LIST.list*/
  107. /*No:FEATURE_CLAUSE_LIST.add_last*/
  108. int r870id(T870* C){
  109. int R=0;
  110. R=X291id((((T870*)C))->_current_type/*4*/);
  111. return R;
  112. }
  113. /*No:RUN_FEATURE_4.arguments*/
  114. int r870result_is_current(T870* C){
  115. int R=0;
  116. T0* _e=NULL;
  117. _e=r870body_one_result(C);
  118. /*IF*/if (((_e)!=((void*)(NULL)))&&(((((T870*)C))->_local_vars/*52*/)==((void*)(NULL)))) {
  119. /*IF*/if (X662is_current(_e)) {
  120. R=1;
  121. }
  122. /*FI*/}
  123. /*FI*/return R;
  124. }
  125. int r870direct_call(T870* C){
  126. int R=0;
  127. T0* _rf4=NULL;
  128. T0* _args=NULL;
  129. T0* _c=NULL;
  130. T0* _e=NULL;
  131. _e=r870body_one_result(C);
  132. /*IF*/if ((((_e)!=((void*)(NULL)))&&(((((T870*)C))->_arguments/*20*/)==((void*)(NULL))))&&(((((T870*)C))->_local_vars/*52*/)==((void*)(NULL)))) {
  133. _c=_e;
  134. if(NULL!=(_c))switch(((T0*)_c)->id) {
  135. case 121: case 890: case 414: case 453: case 460: case 180: case 932: case 990: case 253: case 278: case 767: case 760: case 534: case 915: case 999: case 517: case 520: case 557: case 72: case 574: case 90: case 313: case 57: case 487: case 492: case 655: case 112: 
  136. break;
  137. default:
  138. _c=NULL;
  139. };/*IF*/if ((_c)!=((void*)(NULL))) {
  140. /*IF*/if (X662is_current(/*X295*/((T0*)(((T121*)((T121*)_c)))->_target/*12*/))) {
  141. _rf4=X295run_feature(_c);
  142. if(NULL!=(_rf4))switch(((T0*)_rf4)->id) {
  143. case 870: 
  144. break;
  145. default:
  146. _rf4=NULL;
  147. };/*IF*/if ((_rf4)!=((void*)(NULL))) {
  148. _args=X295arguments(_c);
  149. /*IF*/if ((_args)==((void*)(NULL))) {
  150. R=1;
  151. }
  152. else {
  153. R=X431is_static(_args);
  154. }
  155. /*FI*/}
  156. /*FI*/}
  157. /*FI*/}
  158. /*FI*/}
  159. /*FI*/return R;
  160. }
  161. /*No:RUN_FEATURE_4.C_result_is_current*/
  162. int r870dc_pco1(T870* C){
  163. int R=0;
  164. T0* _rf6=NULL;
  165. T0* _c=NULL;
  166. _c=r870body_one_dc_pco(C);
  167. /*IF*/if (((_c)!=((void*)(NULL)))&&(X662is_current(/*X295*/((T0*)(((T121*)((T121*)_c)))->_target/*12*/)))) {
  168. _rf6=X295run_feature(_c);
  169. if(NULL!=(_rf6))switch(((T0*)_rf6)->id) {
  170. case 868: 
  171. break;
  172. default:
  173. _rf6=NULL;
  174. };/*IF*/if ((_rf6)!=((void*)(NULL))) {
  175. R=!(r868use_current(((T868*)_rf6)));
  176. }
  177. /*FI*/}
  178. /*FI*/return R;
  179. }
  180. /*No:RUN_FEATURE_4.C_dc_pco2*/
  181. /*No:RUN_FEATURE_4.ucs_true*/
  182. T0* r870body_one_result_dca(T870* C){
  183. T0* R=NULL;
  184. T0* _r=NULL;
  185. T0* _rf=NULL;
  186. T0* _rf2=NULL;
  187. T0* _c0c=NULL;
  188. T0* _c=NULL;
  189. _c=r870body_one_result(C);
  190. if(NULL!=(_c))switch(((T0*)_c)->id) {
  191. case 121: case 890: case 414: case 453: case 460: case 180: case 932: case 990: case 253: case 278: case 767: case 760: case 534: case 915: case 999: case 517: case 520: case 557: case 72: case 574: case 90: case 313: case 57: case 487: case 492: case 655: case 112: 
  192. break;
  193. default:
  194. _c=NULL;
  195. };/*IF*/if ((_c)!=((void*)(NULL))) {
  196. _c0c=/*X295*/((T0*)(((T121*)((T121*)_c)))->_target/*12*/);
  197. if(NULL!=(_c0c))switch(((T0*)_c0c)->id) {
  198. case 487: 
  199. break;
  200. default:
  201. _c0c=NULL;
  202. };/*IF*/if ((_c0c)!=((void*)(NULL))) {
  203. /*IF*/if (X662is_current((((T487*)((T487*)_c0c)))->_target/*12*/)) {
  204. _rf2=(((T487*)((T487*)_c0c)))->_run_feature/*20*/;
  205. if(NULL!=(_rf2))switch(((T0*)_rf2)->id) {
  206. case 820: 
  207. break;
  208. default:
  209. _rf2=NULL;
  210. };/*IF*/if ((_rf2)!=((void*)(NULL))) {
  211. _r=(((T355*)((T355*)(r820run_class(((T820*)_rf2))))))->_running/*12*/;
  212. /*IF*/if (((_r)!=((void*)(NULL)))&&((r396count(((T396*)_r)))==(1))) {
  213. _rf=X295run_feature(_c);
  214. /*IF*/if ((_rf)!=((void*)(NULL))) {
  215. _r=(((T355*)((T355*)(X496run_class(_rf)))))->_running/*12*/;
  216. /*IF*/if (((_r)!=((void*)(NULL)))&&((r396count(((T396*)_r)))==(1))) {
  217. R=_c;
  218. }
  219. /*FI*/}
  220. else {
  221. R=_c;
  222. }
  223. /*FI*/}
  224. /*FI*/}
  225. /*FI*/}
  226. /*FI*/}
  227. /*FI*/}
  228. /*FI*/return R;
  229. }
  230. int r870dc_pco2(T870* C){
  231. int R=0;
  232. T0* _rf6=NULL;
  233. T0* _c2=NULL;
  234. T0* _c1=NULL;
  235. _c1=r870body_one_dc_pco(C);
  236. /*IF*/if ((_c1)!=((void*)(NULL))) {
  237. _c2=/*X295*/((T0*)(((T121*)((T121*)_c1)))->_target/*12*/);
  238. if(NULL!=(_c2))switch(((T0*)_c2)->id) {
  239. case 121: case 890: case 414: case 453: case 460: case 180: case 932: case 990: case 253: case 278: case 767: case 760: case 534: case 915: case 999: case 517: case 520: case 557: case 72: case 574: case 90: case 313: case 57: case 487: case 492: case 655: case 112: 
  240. break;
  241. default:
  242. _c2=NULL;
  243. };/*IF*/if ((_c2)!=((void*)(NULL))) {
  244. _rf6=X295run_feature(_c2);
  245. if(NULL!=(_rf6))switch(((T0*)_rf6)->id) {
  246. case 868: 
  247. break;
  248. default:
  249. _rf6=NULL;
  250. };/*IF*/if ((((_rf6)!=((void*)(NULL)))&&(!(r868use_current(((T868*)_rf6)))))&&(X662is_current(/*X295*/((T0*)(((T121*)((T121*)_c2)))->_target/*12*/)))) {
  251. R=1;
  252. }
  253. /*FI*/}
  254. /*FI*/}
  255. /*FI*/return R;
  256. }
  257. void r870c_define(T870* C){
  258. /*IF*/if (r870isa_in_line(C)) {
  259. r324incr_inlined_function_count(((T324*)(oBC364cpp)));
  260. r870nothing_comment(C);
  261. }
  262. else {
  263. /*IF*/if (r870use_current(C)) {
  264. r324incr_function_count(((T324*)(oBC364cpp)));
  265. }
  266. else {
  267. r324incr_real_function_count(((T324*)(oBC364cpp)));
  268. }
  269. /*FI*/r870define_prototype(C);
  270. r870define_opening(C);
  271. /*IF*/if (((((T870*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
  272. r592compile_to_c(((T592*)((((T870*)C))->_routine_body/*32*/)));
  273. }
  274. /*FI*/r870define_closing(C);
  275. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms149_470));
  276. /*]*/
  277. }
  278. /*FI*/}
  279. /*No:RUN_FEATURE_4.rescue_compound*/
  280. /*No:RUN_FEATURE_4.actuals_clients*/
  281. void r870nothing_comment(T870* C){
  282. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms118_470));
  283. /*]*/
  284. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms4_496));
  285. /*]*/
  286. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X291run_time_mark((((T870*)C))->_current_type/*4*/));
  287. /*]*/
  288. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  289. char b1='\56';
  290. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  291. }/*]*/
  292. /*]*/
  293. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X776to_string((((T870*)C))->_name/*16*/));
  294. /*]*/
  295. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms81_470));
  296. /*]*/
  297. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  298. char b1='\n';
  299. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  300. }/*]*/
  301. /*]*/
  302. }
  303. /*No:RUN_FEATURE_4.C_value_reader*/
  304. void r870define_closing(T870* C){
  305. /*IF*/if (r870use_current(C)) {
  306. r324current_class_invariant(((T324*)(oBC364cpp)),(((T870*)C))->_current_type/*4*/);
  307. }
  308. /*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
  309. /*IF*/if (((((T870*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  310. r633compile_to_c(((T633*)((((T870*)C))->_ensure_assertion/*36*/)));
  311. }
  312. /*FI*/}
  313. /*FI*//*IF*/if (r590no_check(((T590*)(oBC364run_control)))) {
  314. /*[IRF3.6rs_unlink*/{T324* C1=((T324*)(oBC364cpp));
  315. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)C1))->_current_out/*56*/)),((T0*)ms156_324));
  316. /*]*/
  317. }/*]*/
  318. }
  319. /*FI*/}
  320. int r870empty_or_null_body(T870* C){
  321. int R=0;
  322. T0* _rb=NULL;
  323. _rb=(((T870*)C))->_routine_body/*32*/;
  324. /*IF*/if ((((_rb)==((void*)(NULL)))||(/*(IRF4.7empty_or_null_body*/((((T592*)((T592*)_rb)))->_list/*8*/)==(NULL)/*)*/))&&(((((T870*)C))->_local_vars/*52*/)==((void*)(NULL)))) {
  325. C->_static_value_mem=0;
  326. C->_is_static_flag=1;
  327. R=1;
  328. }
  329. /*FI*/return R;
  330. }
  331. /*No:RUN_FEATURE_4.ucs_in_computation*/
  332. void r870make(T870* C,T0* a1,T0* a2,T0* a3){
  333. C->_current_type=a1;
  334. C->_name=a2;
  335. C->_base_feature=a3;
  336. r199put(((T199*)((((T355*)((T355*)(r870run_class(C)))))->_feature_dictionary/*24*/)),(T0*)C,X776to_key(a2));
  337. r604incr_magic_count(((T604*)(oBC364small_eiffel)));
  338. C->_use_current_state=1005;
  339. r604push(((T604*)(oBC364small_eiffel)),(T0*)C);
  340. r870initialize(C);
  341. r604pop(((T604*)(oBC364small_eiffel)));
  342. }
  343. void r870std_compute_use_current(T870* C){
  344. /*IF*/if (((((T870*)C))->_use_current_state/*44*/)==(1006)) {
  345. /*IF*/if (((((T870*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
  346. /*IF*/if (r567use_current(((T567*)((((T870*)C))->_require_assertion/*28*/)))) {
  347. C->_use_current_state=1004;
  348. }
  349. /*FI*/}
  350. /*FI*/}
  351. /*FI*//*IF*/if (((((T870*)C))->_use_current_state/*44*/)==(1006)) {
  352. /*IF*/if (((((T870*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
  353. /*IF*/if (r592use_current(((T592*)((((T870*)C))->_routine_body/*32*/)))) {
  354. C->_use_current_state=1004;
  355. }
  356. /*FI*/}
  357. /*FI*/}
  358. /*FI*//*IF*/if (((((T870*)C))->_use_current_state/*44*/)==(1006)) {
  359. /*IF*/if (((((T870*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  360. /*IF*/if (r633use_current(((T633*)((((T870*)C))->_ensure_assertion/*36*/)))) {
  361. C->_use_current_state=1004;
  362. }
  363. /*FI*/}
  364. /*FI*/}
  365. /*FI*//*IF*/if (((((T870*)C))->_use_current_state/*44*/)==(1006)) {
  366. C->_use_current_state=1003;
  367. }
  368. /*FI*/}
  369. /*No:RUN_FEATURE_4.name*/
  370. void r870default_mapping_function(T870* C){
  371. r870mapping_name(C);
  372. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  373. char b1='\50';
  374. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  375. }/*]*/
  376. /*]*/
  377. r324put_target_as_target(((T324*)(oBC364cpp)));
  378. /*IF*/if ((r870arg_count(C))>(0)) {
  379. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  380. char b1='\54';
  381. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  382. }/*]*/
  383. /*]*/
  384. r324put_arguments(((T324*)(oBC364cpp)));
  385. }
  386. /*FI*//*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  387. char b1='\51';
  388. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  389. }/*]*/
  390. /*]*/
  391. }
  392. void r870mapping_name(T870* C){
  393. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  394. char b1='r';
  395. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  396. }/*]*/
  397. /*]*/
  398. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),r870id(C));
  399. /*]*/
  400. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X776to_key((((T870*)C))->_name/*16*/));
  401. /*]*/
  402. }
  403. int r870arg_count(T870* C){
  404. int R=0;
  405. /*IF*/if (((((T870*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  406. R=/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T870*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/;
  407. }
  408. /*FI*/return R;
  409. }
  410. void r870routine_afd_check(T870* C){
  411. /*IF*/if (((((T870*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
  412. r567afd_check(((T567*)((((T870*)C))->_require_assertion/*28*/)));
  413. }
  414. /*FI*//*IF*/if (((((T870*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
  415. r592afd_check(((T592*)((((T870*)C))->_routine_body/*32*/)));
  416. }
  417. /*FI*//*IF*/if (((((T870*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  418. r633afd_check(((T633*)((((T870*)C))->_ensure_assertion/*36*/)));
  419. }
  420. /*FI*/}
  421. /*No:RUN_FEATURE_4.fz_open_c_comment*/
  422. int r870attribute_reader(T870* C){
  423. int R=0;
  424. T0* _rf2=NULL;
  425. T0* _c0=NULL;
  426. T0* _e=NULL;
  427. _e=r870body_one_result(C);
  428. /*IF*/if (((_e)!=((void*)(NULL)))&&(((((T870*)C))->_local_vars/*52*/)==((void*)(NULL)))) {
  429. _c0=_e;
  430. if(NULL!=(_c0))switch(((T0*)_c0)->id) {
  431. case 180: case 990: case 767: case 72: case 487: 
  432. break;
  433. default:
  434. _c0=NULL;
  435. };/*IF*/if ((_c0)!=((void*)(NULL))) {
  436. /*IF*/if (X662is_current(/*X752*/((T0*)(((T180*)((T180*)_c0)))->_target/*12*/))) {
  437. _rf2=X752run_feature(_c0);
  438. if(NULL!=(_rf2))switch(((T0*)_rf2)->id) {
  439. case 820: 
  440. break;
  441. default:
  442. _rf2=NULL;
  443. };/*IF*/if ((_rf2)!=((void*)(NULL))) {
  444. R=1;
  445. }
  446. /*FI*/}
  447. /*FI*/}
  448. /*FI*/}
  449. /*FI*/return R;
  450. }
  451. /*No:RUN_FEATURE_4.local_vars*/
  452. int r870dca(T870* C){
  453. int R=0;
  454. T0* _args=NULL;
  455. T0* _rf=NULL;
  456. T0* _c=NULL;
  457. _c=r870body_one_result_dca(C);
  458. /*IF*/if (((_c)!=((void*)(NULL)))&&(((((T870*)C))->_local_vars/*52*/)==((void*)(NULL)))) {
  459. _rf=X295run_feature(_c);
  460. /*IF*/if ((_rf)!=((void*)(NULL))) {
  461. /*IF*/if ((_rf)!=((void*)(C))) {
  462. _args=X295arguments(_c);
  463. /*IF*/if ((_args)==((void*)(NULL))) {
  464. R=(r870arg_count(C))==(0);
  465. }
  466. else {
  467. R=X431isa_dca_inline(_args,(T0*)C,_rf);
  468. }
  469. /*FI*/}
  470. /*FI*/}
  471. /*FI*/}
  472. /*FI*/return R;
  473. }
  474. /*No:RUN_FEATURE_4.base_feature*/
  475. void r870define_opening(T870* C){
  476. T0* _t=NULL;
  477. int _i=0;
  478. /*IF*/if (((((T870*)C))->_result_type/*24*/)!=((void*)(NULL))) {
  479. _t=X291run_type((((T870*)C))->_result_type/*24*/);
  480. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC496c_code)))))->_count)=(0);
  481. /*]*/
  482. X291c_type_for_result_in(_t,oBC496c_code);
  483. r7extend(((T7*)(oBC496c_code)),'\40');
  484. r7extend(((T7*)(oBC496c_code)),'R');
  485. r7extend(((T7*)(oBC496c_code)),'\75');
  486. X291c_initialize_in(_t,oBC496c_code);
  487. r7append(((T7*)(oBC496c_code)),((T0*)ms134_470));
  488. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC496c_code);
  489. /*]*/
  490. }
  491. /*FI*//*IF*/if (((((T870*)C))->_local_vars/*52*/)!=((void*)(NULL))) {
  492. r620compile_to_c(((T620*)((((T870*)C))->_local_vars/*52*/)));
  493. }
  494. /*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
  495. /*IF*/if (((((T870*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  496. r633compile_to_c_old(((T633*)((((T870*)C))->_ensure_assertion/*36*/)));
  497. }
  498. /*FI*/}
  499. /*FI*//*IF*/if (((((T870*)C))->_local_vars/*52*/)!=((void*)(NULL))) {
  500. r620initialize_expanded(((T620*)((((T870*)C))->_local_vars/*52*/)));
  501. }
  502. /*FI*//*IF*/if (r590no_check(((T590*)(oBC364run_control)))) {
  503. r324rs_link(((T324*)(oBC364cpp)),(T0*)C);
  504. /*IF*/if (r870use_current(C)) {
  505. /*[IRF3.6rs_push_current*/{T324* C1=((T324*)(oBC364cpp));
  506. T0* b1=(((T870*)C))->_current_type/*4*/;
  507. r324rs_push(C1,((T0*)ms143_473),((T0*)ms157_324),b1);
  508. }/*]*/
  509. }
  510. /*FI*/_i=1;
  511. while (!((_i)>(r870arg_count(C)))) {
  512. _t=X291run_type(r31type(((T31*)((((T870*)C))->_arguments/*20*/)),_i));
  513. r324rs_push_argument(((T324*)(oBC364cpp)),(((T873*)((T873*)(/*(IRF4.6name*/r65item(((T65*)((((T31*)((T31*)((((T870*)C))->_arguments/*20*/))))->_flat_list/*12*/)),_i)/*)*/))))->_to_string/*12*/,_i,_t);
  514. _i=(_i)+(1);
  515. }
  516. /*IF*/if (((((T870*)C))->_result_type/*24*/)!=((void*)(NULL))) {
  517. /*[IRF3.6rs_push_result*/{T324* C1=((T324*)(oBC364cpp));
  518. T0* b1=X291run_type((((T870*)C))->_result_type/*24*/);
  519. r324rs_push(C1,((T0*)ms146_473),((T0*)ms158_324),b1);
  520. }/*]*/
  521. }
  522. /*FI*//*IF*/if (((((T870*)C))->_local_vars/*52*/)!=((void*)(NULL))) {
  523. _i=1;
  524. while (!((_i)>(/*(IRF4.6count*/(((T733*)((T733*)((((T620*)((T620*)((((T870*)C))->_local_vars/*52*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/))) {
  525. r39c_trace(((T39*)(/*(IRF4.6name*/r733item(((T733*)((((T620*)((T620*)((((T870*)C))->_local_vars/*52*/))))->_flat_list/*12*/)),_i)/*)*/)));
  526. _i=(_i)+(1);
  527. }
  528. }
  529. /*FI*/}
  530. /*FI*//*IF*/if (((((T870*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
  531. r567compile_to_c(((T567*)((((T870*)C))->_require_assertion/*28*/)));
  532. }
  533. /*FI*/}
  534. /*No:RUN_FEATURE_4.start_position*/
  535. /*No:RUN_FEATURE_4.fz_close_c_comment*/
  536. /*No:RUN_FEATURE_4.fz_00*/
  537. T0* r870body_one_result(T870* C){
  538. T0* R=NULL;
  539. T0* _a=NULL;
  540. T0* _rb=NULL;
  541. _rb=(((T870*)C))->_routine_body/*32*/;
  542. /*IF*/if (((_rb)!=((void*)(NULL)))&&((r592count(((T592*)_rb)))==(1))) {
  543. _a=r592first(((T592*)_rb));
  544. if(NULL!=(_a))switch(((T0*)_a)->id) {
  545. case 629: 
  546. break;
  547. default:
  548. _a=NULL;
  549. };/*IF*/if ((_a)!=((void*)(NULL))) {
  550. /*IF*/if (X662is_result((((T629*)((T629*)_a)))->_left_side/*8*/)) {
  551. R=(((T629*)((T629*)_a)))->_right_side/*12*/;
  552. }
  553. /*FI*/}
  554. /*FI*/}
  555. /*FI*/return R;
  556. }
  557. /*No:RUN_FEATURE_4.ensure_assertion*/
  558. int r870is_exported_in(T870* C,T0* a1){
  559. int R=0;
  560. R=r636gives_permission_to(((T636*)(r870clients(C))),a1);
  561. return R;
  562. }
  563. T0* r870is_direct_call_on_attribute(T870* C){
  564. T0* R=NULL;
  565. T0* _rf=NULL;
  566. T0* _c=NULL;
  567. /*IF*/if (r870isa_in_line(C)) {
  568. {int z1=(((T870*)C))->_in_line_status/*60*/;
  569.  
  570. if((6==z1)){
  571. _c=r870body_one_result(C);
  572. if(NULL!=(_c))switch(((T0*)_c)->id) {
  573. case 121: case 890: case 414: case 453: case 460: case 180: case 932: case 990: case 253: case 278: case 767: case 760: case 534: case 915: case 999: case 517: case 520: case 557: case 72: case 574: case 90: case 313: case 57: case 487: case 492: case 655: case 112: 
  574. break;
  575. default:
  576. _c=NULL;
  577. };_c=/*X295*/((T0*)(((T121*)((T121*)_c)))->_target/*12*/);
  578. if(NULL!=(_c))switch(((T0*)_c)->id) {
  579. case 121: case 890: case 414: case 453: case 460: case 180: case 932: case 990: case 253: case 278: case 767: case 760: case 534: case 915: case 999: case 517: case 520: case 557: case 72: case 574: case 90: case 313: case 57: case 487: case 492: case 655: case 112: 
  580. break;
  581. default:
  582. _c=NULL;
  583. };_rf=X295run_feature(_c);
  584. R=/*X496*/((T0*)(((T832*)((T832*)_rf)))->_name/*16*/);
  585. }
  586. }
  587. }
  588. /*FI*/return R;
  589. }
  590. void r870compute_use_current(T870* C){
  591. /*IF*/if ((X291is_reference((((T870*)C))->_current_type/*4*/))&&(r590no_check(((T590*)(oBC364run_control))))) {
  592. C->_use_current_state=1004;
  593. }
  594. else {
  595. r870std_compute_use_current(C);
  596. }
  597. /*FI*/}
  598. /*No:RUN_FEATURE_4.result_type*/
  599. /*No:RUN_FEATURE_4.in_line_status*/
  600. /*No:RUN_FEATURE_4.fz_13*/
  601. /*No:RUN_FEATURE_4.C_a_eq_neq*/
  602. int r870a_eq_neq(T870* C){
  603. int R=0;
  604. T0* _e=NULL;
  605. T0* _rf=NULL;
  606. T0* _c=NULL;
  607. _c=r870body_one_result_dca(C);
  608. /*IF*/if (((_c)!=((void*)(NULL)))&&(((((T870*)C))->_local_vars/*52*/)==((void*)(NULL)))) {
  609. _rf=X295run_feature(_c);
  610. /*IF*/if (((_rf)==((void*)(NULL)))&&((X295arg_count(_c))==(1))) {
  611. _e=X431expression(X295arguments(_c),1);
  612. {int z1=X662isa_dca_inline_argument(_e);
  613.  
  614. if((0==z1)){
  615. }
  616.  else 
  617. if((-1==z1)){
  618. R=(r870arg_count(C))==(0);
  619. }
  620.  else{R=(r870arg_count(C))==(1);
  621. }}
  622. }
  623. /*FI*/}
  624. /*FI*/return R;
  625. }
  626. int r870is_static(T870* C){
  627. int R=0;
  628. /*IF*/if (r870isa_in_line(C)) {
  629. R=(((T870*)C))->_is_static_flag/*64*/;
  630. }
  631. /*FI*/return R;
  632. }
  633. int r870value_reader(T870* C){
  634. int R=0;
  635. T0* _c0=NULL;
  636. T0* _e=NULL;
  637. _e=r870body_one_result(C);
  638. /*IF*/if (((_e)!=((void*)(NULL)))&&(((((T870*)C))->_local_vars/*52*/)==((void*)(NULL)))) {
  639. _c0=_e;
  640. if(NULL!=(_c0))switch(((T0*)_c0)->id) {
  641. case 180: case 990: case 767: case 72: case 487: 
  642. break;
  643. default:
  644. _c0=NULL;
  645. };/*IF*/if ((((_c0)!=((void*)(NULL)))&&(X662is_current(/*X752*/((T0*)(((T180*)((T180*)_c0)))->_target/*12*/))))&&((X752run_feature(_c0))==((void*)(C)))) {
  646. r683add_position(X662start_position(_e));
  647. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_870);
  648. r683fatal_error(((T683*)(oBC364eh)),b1);
  649. }/*]*/
  650. }
  651.  else if (X662is_static(_e)) {
  652. R=1;
  653. C->_static_value_mem=X662static_value(_e);
  654. C->_is_static_flag=1;
  655. }
  656. /*FI*/}
  657. /*FI*/return R;
  658. }
  659. void r870add_client(T870* C,T0* a1){
  660. int _i=0;
  661. /*IF*/if (((((T870*)C))->_actuals_clients/*12*/)==((void*)(NULL))) {
  662. {T187*n=malloc(sizeof(*n));
  663. *n=M187;
  664. r187with_capacity(n,4);
  665. C->_actuals_clients=(T0*)n;
  666. }
  667. r187add_last(((T187*)((((T870*)C))->_actuals_clients/*12*/)),a1);
  668. }
  669. else {
  670. _i=r187fast_index_of(((T187*)((((T870*)C))->_actuals_clients/*12*/)),a1);
  671. /*IF*/if ((_i)>((((T187*)((T187*)((((T870*)C))->_actuals_clients/*12*/))))->_upper/*8*/)) {
  672. r187add_last(((T187*)((((T870*)C))->_actuals_clients/*12*/)),a1);
  673. }
  674. /*FI*/}
  675. /*FI*/r355add_client(((T355*)(r870run_class(C))),a1);
  676. }
  677. /*No:RUN_FEATURE_4.fz_15*/
  678. T0*oBC870tmp_string=NULL;
  679. /*No:RUN_FEATURE_4.require_assertion*/
  680. /*No:RUN_FEATURE_4.use_current_state*/
  681. int r870isa_in_line(T870* C){
  682. int R=0;
  683. /*IF*/if (r590boost(((T590*)(oBC364run_control)))) {
  684. {int z1=(((T870*)C))->_in_line_status/*60*/;
  685.  
  686. if((-1==z1)){
  687. }
  688.  else 
  689. if((0==z1)){
  690. R=1;
  691. /*IF*/if (r870empty_or_null_body(C)) {
  692. C->_in_line_status=1;
  693. }
  694.  else if (r870value_reader(C)) {
  695. C->_in_line_status=2;
  696. }
  697.  else if (r870attribute_reader(C)) {
  698. C->_in_line_status=3;
  699. }
  700.  else if (r870result_is_current(C)) {
  701. C->_in_line_status=4;
  702. }
  703.  else if (r870direct_call(C)) {
  704. C->_in_line_status=5;
  705. }
  706.  else if (r870dca(C)) {
  707. C->_in_line_status=6;
  708. }
  709.  else if (r870a_eq_neq(C)) {
  710. C->_in_line_status=7;
  711. }
  712.  else if (r870dc_pco1(C)) {
  713. C->_in_line_status=8;
  714. }
  715.  else if (r870dc_pco2(C)) {
  716. C->_in_line_status=9;
  717. }
  718.  else if (r870direct_cse_call(C)) {
  719. C->_in_line_status=10;
  720. }
  721. else {
  722. C->_in_line_status=-(1);
  723. R=0;
  724. }
  725. /*FI*/}
  726.  else{R=1;
  727. }}
  728. }
  729. /*FI*/return R;
  730. }
  731. T0* r870body_one_dc_pco(T870* C){
  732. T0* R=NULL;
  733. T0* _args=NULL;
  734. T0* _c=NULL;
  735. _c=r870body_one_result(C);
  736. if(NULL!=(_c))switch(((T0*)_c)->id) {
  737. case 121: case 890: case 414: case 453: case 460: case 180: case 932: case 990: case 253: case 278: case 767: case 760: case 534: case 915: case 999: case 517: case 520: case 557: case 72: case 574: case 90: case 313: case 57: case 487: case 492: case 655: case 112: 
  738. break;
  739. default:
  740. _c=NULL;
  741. };/*IF*/if ((((_c)!=((void*)(NULL)))&&(((((T870*)C))->_local_vars/*52*/)==((void*)(NULL))))&&(((((T870*)C))->_arguments/*20*/)==((void*)(NULL)))) {
  742. _args=X295arguments(_c);
  743. /*IF*/if (((_args)==((void*)(NULL)))||(X431is_static(_args))) {
  744. R=_c;
  745. }
  746. /*FI*/}
  747. /*FI*/return R;
  748. }
  749. int r870can_be_dropped(T870* C){
  750. int R=0;
  751. R=((((((((T870*)C))->_arguments/*20*/)==((void*)(NULL)))&&(((((T870*)C))->_local_vars/*52*/)==((void*)(NULL))))&&(((((T870*)C))->_require_assertion/*28*/)==((void*)(NULL))))&&(((((T870*)C))->_ensure_assertion/*36*/)==((void*)(NULL))))&&(((((T870*)C))->_rescue_compound/*40*/)==((void*)(NULL)));
  752. /*IF*/if (R) {
  753. /*IF*/if (((((T870*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
  754. R=0;
  755. }
  756. /*FI*/}
  757. /*FI*/return R;
  758. }
  759. /*No:RUN_FEATURE_4.C_dca*/
  760. /*No:RUN_FEATURE_4.current_type*/
  761. T0* r870run_class(T870* C){
  762. T0* R=NULL;
  763. R=X291run_class((((T870*)C))->_current_type/*4*/);
  764. return R;
  765. }
  766. /*No:RUN_FEATURE_4.C_empty_or_null_body*/
  767. /*No:RUN_FEATURE_4.static_value_mem*/
  768. void r870define_prototype(T870* C){
  769. int _mem_id=0;
  770. _mem_id=r870id(C);
  771. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC496c_code)))))->_count)=(0);
  772. /*]*/
  773. /*IF*/if (((((T870*)C))->_result_type/*24*/)==((void*)(NULL))) {
  774. r7append(((T7*)(oBC496c_code)),((T0*)ms133_470));
  775. }
  776. else {
  777. X291c_type_for_result_in(X291run_type((((T870*)C))->_result_type/*24*/),oBC496c_code);
  778. }
  779. /*FI*/r7extend(((T7*)(oBC496c_code)),'\40');
  780. r7extend(((T7*)(oBC496c_code)),'r');
  781. r2append_in(_mem_id,oBC496c_code);
  782. X776mapping_c_in((((T870*)C))->_name/*16*/,oBC496c_code);
  783. r7extend(((T7*)(oBC496c_code)),'\50');
  784. /*IF*/if (r870use_current(C)) {
  785. X291c_type_for_target_in((((T870*)C))->_current_type/*4*/,oBC496c_code);
  786. r7extend(((T7*)(oBC496c_code)),'\40');
  787. r7extend(((T7*)(oBC496c_code)),'C');
  788. /*IF*/if (((((T870*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  789. r7extend(((T7*)(oBC496c_code)),'\54');
  790. }
  791. /*FI*/}
  792. /*FI*//*IF*/if (((((T870*)C))->_arguments/*20*/)==((void*)(NULL))) {
  793. /*IF*/if (!(r870use_current(C))) {
  794. r7append(((T7*)(oBC496c_code)),((T0*)ms133_470));
  795. }
  796. /*FI*/}
  797. else {
  798. r31compile_to_c_in(((T31*)((((T870*)C))->_arguments/*20*/)),oBC496c_code);
  799. }
  800. /*FI*/r7extend(((T7*)(oBC496c_code)),'\51');
  801. r324put_c_heading(((T324*)(oBC364cpp)),oBC496c_code);
  802. /*[IRF3.3swap_on_c*/((((T324*)(((T324*)(oBC364cpp)))))->_current_out)=(oBC324out_c);
  803. /*]*/
  804. }
  805. /*No:RUN_FEATURE_4.is_static_flag*/
  806. /*No:RUN_FEATURE_4.ucs_not_computed*/
  807. void r870in_line(T870* C){
  808. T0* _cien=NULL;
  809. T0* _rf=NULL;
  810. T0* _c=NULL;
  811. int _flag=0;
  812. T0* _e=NULL;
  813. T0* _a=NULL;
  814. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms2_870));
  815. /*]*/
  816. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),(((T870*)C))->_in_line_status/*60*/);
  817. /*]*/
  818. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X776to_string((((T870*)C))->_name/*16*/));
  819. /*]*/
  820. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms81_470));
  821. /*]*/
  822. {int z1=(((T870*)C))->_in_line_status/*60*/;
  823.  
  824. if((1==z1)){
  825. _flag=r324cannot_drop_all(((T324*)(oBC364cpp)));
  826. /*IF*/if (_flag) {
  827. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  828. char b1='\54';
  829. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  830. }/*]*/
  831. /*]*/
  832. }
  833. /*FI*/X291c_initialize(X291run_type((((T870*)C))->_result_type/*24*/));
  834. /*IF*/if (_flag) {
  835. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  836. char b1='\51';
  837. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  838. }/*]*/
  839. /*]*/
  840. }
  841. /*FI*/}
  842.  else 
  843. if((2==z1)){
  844. _flag=r324cannot_drop_all(((T324*)(oBC364cpp)));
  845. /*IF*/if (_flag) {
  846. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  847. char b1='\54';
  848. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  849. }/*]*/
  850. /*]*/
  851. }
  852. /*FI*/_a=r592first(((T592*)((((T870*)C))->_routine_body/*32*/)));
  853. if(NULL!=(_a))switch(((T0*)_a)->id) {
  854. case 629: 
  855. break;
  856. default:
  857. _a=NULL;
  858. };_e=(((T629*)((T629*)_a)))->_right_side/*12*/;
  859. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  860. char b1='\50';
  861. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  862. }/*]*/
  863. /*]*/
  864. X662compile_to_c(_e);
  865. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  866. char b1='\51';
  867. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  868. }/*]*/
  869. /*]*/
  870. /*IF*/if (_flag) {
  871. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  872. char b1='\51';
  873. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  874. }/*]*/
  875. /*]*/
  876. }
  877. /*FI*/}
  878.  else 
  879. if((3==z1)){
  880. _flag=r324arguments_cannot_be_dropped(((T324*)(oBC364cpp)));
  881. /*IF*/if (_flag) {
  882. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  883. char b1='\54';
  884. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  885. }/*]*/
  886. /*]*/
  887. }
  888. /*FI*/_a=r592first(((T592*)((((T870*)C))->_routine_body/*32*/)));
  889. if(NULL!=(_a))switch(((T0*)_a)->id) {
  890. case 629: 
  891. break;
  892. default:
  893. _a=NULL;
  894. };_c=(((T629*)((T629*)_a)))->_right_side/*12*/;
  895. if(NULL!=(_c))switch(((T0*)_c)->id) {
  896. case 121: case 890: case 414: case 453: case 460: case 180: case 932: case 990: case 253: case 278: case 767: case 760: case 534: case 915: case 999: case 517: case 520: case 557: case 72: case 574: case 90: case 313: case 57: case 487: case 492: case 655: case 112: 
  897. break;
  898. default:
  899. _c=NULL;
  900. };X496mapping_c(X295run_feature(_c));
  901. /*IF*/if (_flag) {
  902. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  903. char b1='\51';
  904. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  905. }/*]*/
  906. /*]*/
  907. }
  908. /*FI*/}
  909.  else 
  910. if((4==z1)){
  911. _flag=r324arguments_cannot_be_dropped(((T324*)(oBC364cpp)));
  912. /*IF*/if (_flag) {
  913. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  914. char b1='\54';
  915. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  916. }/*]*/
  917. /*]*/
  918. }
  919. /*FI*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC870tmp_string)))))->_count)=(0);
  920. /*]*/
  921. r7extend(((T7*)(oBC870tmp_string)),'\50');
  922. r7extend(((T7*)(oBC870tmp_string)),'\50');
  923. X291c_type_for_result_in(X291run_type((((T870*)C))->_result_type/*24*/),oBC870tmp_string);
  924. r7extend(((T7*)(oBC870tmp_string)),'\51');
  925. r7extend(((T7*)(oBC870tmp_string)),'\50');
  926. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC870tmp_string);
  927. /*]*/
  928. r324put_target_as_value(((T324*)(oBC364cpp)));
  929. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms147_470));
  930. /*]*/
  931. /*IF*/if (_flag) {
  932. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  933. char b1='\51';
  934. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  935. }/*]*/
  936. /*]*/
  937. }
  938. /*FI*/}
  939.  else 
  940. if((5==z1)){
  941. _a=r592first(((T592*)((((T870*)C))->_routine_body/*32*/)));
  942. if(NULL!=(_a))switch(((T0*)_a)->id) {
  943. case 629: 
  944. break;
  945. default:
  946. _a=NULL;
  947. };_c=(((T629*)((T629*)_a)))->_right_side/*12*/;
  948. if(NULL!=(_c))switch(((T0*)_c)->id) {
  949. case 121: case 890: case 414: case 453: case 460: case 180: case 932: case 990: case 253: case 278: case 767: case 760: case 534: case 915: case 999: case 517: case 520: case 557: case 72: case 574: case 90: case 313: case 57: case 487: case 492: case 655: case 112: 
  950. break;
  951. default:
  952. _c=NULL;
  953. };_rf=X295run_feature(_c);
  954. r324push_same_target(((T324*)(oBC364cpp)),_rf,X295arguments(_c));
  955. X496mapping_c(_rf);
  956. r324pop(((T324*)(oBC364cpp)));
  957. }
  958.  else 
  959. if((6==z1)){
  960. _a=r592first(((T592*)((((T870*)C))->_routine_body/*32*/)));
  961. if(NULL!=(_a))switch(((T0*)_a)->id) {
  962. case 629: 
  963. break;
  964. default:
  965. _a=NULL;
  966. };_c=(((T629*)((T629*)_a)))->_right_side/*12*/;
  967. if(NULL!=(_c))switch(((T0*)_c)->id) {
  968. case 121: case 890: case 414: case 453: case 460: case 180: case 932: case 990: case 253: case 278: case 767: case 760: case 534: case 915: case 999: case 517: case 520: case 557: case 72: case 574: case 90: case 313: case 57: case 487: case 492: case 655: case 112: 
  969. break;
  970. default:
  971. _c=NULL;
  972. };X295finalize(_c);
  973. r324push_inline_dca(((T324*)(oBC364cpp)),(T0*)C,_c);
  974. X496mapping_c(X295run_feature(_c));
  975. r324pop(((T324*)(oBC364cpp)));
  976. }
  977.  else 
  978. if((7==z1)){
  979. _a=r592first(((T592*)((((T870*)C))->_routine_body/*32*/)));
  980. if(NULL!=(_a))switch(((T0*)_a)->id) {
  981. case 629: 
  982. break;
  983. default:
  984. _a=NULL;
  985. };_cien=(((T629*)((T629*)_a)))->_right_side/*12*/;
  986. if(NULL!=(_cien))switch(((T0*)_cien)->id) {
  987. case 999: case 517: 
  988. break;
  989. default:
  990. _cien=NULL;
  991. };r324push_inline_dca(((T324*)(oBC364cpp)),(T0*)C,_cien);
  992. X841dca_inline(_cien,X662result_type(X841arg1(_cien)));
  993. r324pop(((T324*)(oBC364cpp)));
  994. }
  995.  else 
  996. if(((8<=z1)&&(z1<=9))){
  997. _flag=r324target_cannot_be_dropped(((T324*)(oBC364cpp)));
  998. /*IF*/if (_flag) {
  999. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1000. char b1='\54';
  1001. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1002. }/*]*/
  1003. /*]*/
  1004. }
  1005. /*FI*/_a=r592first(((T592*)((((T870*)C))->_routine_body/*32*/)));
  1006. if(NULL!=(_a))switch(((T0*)_a)->id) {
  1007. case 629: 
  1008. break;
  1009. default:
  1010. _a=NULL;
  1011. };_c=(((T629*)((T629*)_a)))->_right_side/*12*/;
  1012. if(NULL!=(_c))switch(((T0*)_c)->id) {
  1013. case 121: case 890: case 414: case 453: case 460: case 180: case 932: case 990: case 253: case 278: case 767: case 760: case 534: case 915: case 999: case 517: case 520: case 557: case 72: case 574: case 90: case 313: case 57: case 487: case 492: case 655: case 112: 
  1014. break;
  1015. default:
  1016. _c=NULL;
  1017. };_rf=X295run_feature(_c);
  1018. r324push_direct(((T324*)(oBC364cpp)),_rf,/*X295*/((T0*)(((T121*)((T121*)_c)))->_target/*12*/),X295arguments(_c));
  1019. X496mapping_c(_rf);
  1020. r324pop(((T324*)(oBC364cpp)));
  1021. /*IF*/if (_flag) {
  1022. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1023. char b1='\51';
  1024. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1025. }/*]*/
  1026. /*]*/
  1027. }
  1028. /*FI*/}
  1029.  else {_a=r592first(((T592*)((((T870*)C))->_routine_body/*32*/)));
  1030. if(NULL!=(_a))switch(((T0*)_a)->id) {
  1031. case 629: 
  1032. break;
  1033. default:
  1034. _a=NULL;
  1035. };_c=(((T629*)((T629*)_a)))->_right_side/*12*/;
  1036. if(NULL!=(_c))switch(((T0*)_c)->id) {
  1037. case 121: case 890: case 414: case 453: case 460: case 180: case 932: case 990: case 253: case 278: case 767: case 760: case 534: case 915: case 999: case 517: case 520: case 557: case 72: case 574: case 90: case 313: case 57: case 487: case 492: case 655: case 112: 
  1038. break;
  1039. default:
  1040. _c=NULL;
  1041. };_rf=X295run_feature(_c);
  1042. r324push_same_target(((T324*)(oBC364cpp)),_rf,X295arguments(_c));
  1043. X496mapping_c(_rf);
  1044. r324pop(((T324*)(oBC364cpp)));
  1045. }}
  1046. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms3_870));
  1047. /*]*/
  1048. }
  1049. void r870fall_down(T870* C){
  1050. T0* _rf=NULL;
  1051. T0* _sub_name=NULL;
  1052. T0* _sub_bc=NULL;
  1053. T0* _current_bc=NULL;
  1054. T0* _sub_rc=NULL;
  1055. T0* _current_rc=NULL;
  1056. int _i=0;
  1057. T0* _running=NULL;
  1058. _current_rc=X291run_class((((T870*)C))->_current_type/*4*/);
  1059. _running=(((T355*)((T355*)_current_rc)))->_running/*12*/;
  1060. /*IF*/if ((_running)!=((void*)(NULL))) {
  1061. _current_bc=X291base_class((((T870*)C))->_current_type/*4*/);
  1062. _i=(((T396*)((T396*)_running)))->_lower/*12*/;
  1063. while (!((_i)>((((T396*)((T396*)_running)))->_upper/*8*/))) {
  1064. _sub_rc=r396item(((T396*)_running),_i);
  1065. /*IF*/if ((_sub_rc)!=((void*)(_current_rc))) {
  1066. _sub_bc=X291base_class((((T355*)((T355*)_sub_rc)))->_current_type/*0*/);
  1067. _sub_name=r605new_name_of(((T605*)_sub_bc),_current_bc,(((T870*)C))->_name/*16*/);
  1068. _rf=r355get_feature(((T355*)_sub_rc),_sub_name);
  1069. }
  1070. /*FI*/_i=(_i)+(1);
  1071. }
  1072. }
  1073. /*FI*/}
  1074. /*No:RUN_FEATURE_4.routine_body*/
  1075. /*No:RUN_FEATURE_4.fz_void*/
  1076. /*No:RUN_FEATURE_4.C_attribute_reader*/
  1077. /*No:RUN_FEATURE_4.C_direct_call*/
  1078. /*No:RUN_FEATURE_4.ucs_false*/
  1079. /*No:RUN_FEATURE_4.is_pre_computable*/
  1080. T0* r870clients(T870* C){
  1081. T0* R=NULL;
  1082. T0* _bfbc=NULL;
  1083. T0* _bc=NULL;
  1084. /*IF*/if (((((T870*)C))->_clients_memory/*8*/)==((void*)(NULL))) {
  1085. _bc=X291base_class((((T870*)C))->_current_type/*4*/);
  1086. _bfbc=(((T696*)((T696*)((((T870*)C))->_base_feature/*48*/))))->_base_class/*4*/;
  1087. /*IF*/if ((_bc)==((void*)(_bfbc))) {
  1088. R=(((T696*)((T696*)((((T870*)C))->_base_feature/*48*/))))->_clients/*24*/;
  1089. }
  1090. else {
  1091. R=r605clients_for(((T605*)_bc),(((T870*)C))->_name/*16*/);
  1092. }
  1093. /*FI*/C->_clients_memory=R;
  1094. }
  1095. else {
  1096. R=(((T870*)C))->_clients_memory/*8*/;
  1097. }
  1098. /*FI*/return R;
  1099. }
  1100. int r870use_current(T870* C){
  1101. int R=0;
  1102. {int z1=(((T870*)C))->_use_current_state/*44*/;
  1103.  
  1104. if((1004==z1)){
  1105. R=1;
  1106. }
  1107.  else 
  1108. if((1003==z1)){
  1109. }
  1110.  else 
  1111. if((1005==z1)){
  1112. C->_use_current_state=1006;
  1113. r870compute_use_current(C);
  1114. R=r870use_current(C);
  1115. }
  1116.  else {R=1;
  1117. }}
  1118. return R;
  1119. }
  1120. void r870mapping_c(T870* C){
  1121. int _tcbd=0;
  1122. /*IF*/if (r870isa_in_line(C)) {
  1123. r870in_line(C);
  1124. }
  1125.  else if (r870use_current(C)) {
  1126. r870default_mapping_function(C);
  1127. }
  1128. else {
  1129. _tcbd=r324target_cannot_be_dropped(((T324*)(oBC364cpp)));
  1130. /*IF*/if (_tcbd) {
  1131. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1132. char b1='\54';
  1133. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1134. }/*]*/
  1135. /*]*/
  1136. }
  1137. /*FI*/r870mapping_name(C);
  1138. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1139. char b1='\50';
  1140. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1141. }/*]*/
  1142. /*]*/
  1143. /*IF*/if (((((T870*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  1144. r324put_arguments(((T324*)(oBC364cpp)));
  1145. }
  1146. /*FI*//*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1147. char b1='\51';
  1148. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1149. }/*]*/
  1150. /*]*/
  1151. /*IF*/if (_tcbd) {
  1152. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1153. char b1='\51';
  1154. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1155. }/*]*/
  1156. /*]*/
  1157. }
  1158. /*FI*/}
  1159. /*FI*/}
  1160. /*No:RUN_FEATURE_4.us_to_pointer*/
  1161. int r870direct_cse_call(T870* C){
  1162. int R=0;
  1163. T0* _rf8=NULL;
  1164. T0* _c=NULL;
  1165. /*IF*/if ((((((T870*)C))->_arguments/*20*/)==((void*)(NULL)))&&(((((T870*)C))->_local_vars/*52*/)==((void*)(NULL)))) {
  1166. _c=r870body_one_result(C);
  1167. if(NULL!=(_c))switch(((T0*)_c)->id) {
  1168. case 121: case 890: case 414: case 453: case 460: case 180: case 932: case 990: case 253: case 278: case 767: case 760: case 534: case 915: case 999: case 517: case 520: case 557: case 72: case 574: case 90: case 313: case 57: case 487: case 492: case 655: case 112: 
  1169. break;
  1170. default:
  1171. _c=NULL;
  1172. };/*IF*/if (((_c)!=((void*)(NULL)))&&((X295arguments(_c))==((void*)(NULL)))) {
  1173. _c=/*X295*/((T0*)(((T121*)((T121*)_c)))->_target/*12*/);
  1174. if(NULL!=(_c))switch(((T0*)_c)->id) {
  1175. case 121: case 890: case 414: case 453: case 460: case 180: case 932: case 990: case 253: case 278: case 767: case 760: case 534: case 915: case 999: case 517: case 520: case 557: case 72: case 574: case 90: case 313: case 57: case 487: case 492: case 655: case 112: 
  1176. break;
  1177. default:
  1178. _c=NULL;
  1179. };/*IF*/if (((_c)!=((void*)(NULL)))&&(X662is_current(/*X295*/((T0*)(((T121*)((T121*)_c)))->_target/*12*/)))) {
  1180. /*IF*/if ((X295arguments(_c))==((void*)(NULL))) {
  1181. _rf8=X295run_feature(_c);
  1182. if(NULL!=(_rf8))switch(((T0*)_rf8)->id) {
  1183. case 892: 
  1184. break;
  1185. default:
  1186. _rf8=NULL;
  1187. };/*IF*/if ((_rf8)!=((void*)(NULL))) {
  1188. R=(X776to_string((((T892*)((T892*)_rf8)))->_name/*16*/))==((void*)(((T0*)ms135_473)));
  1189. }
  1190. /*FI*/}
  1191. /*FI*/}
  1192. /*FI*/}
  1193. /*FI*/}
  1194. /*FI*/return R;
  1195. }
  1196. /*No:RUN_FEATURE_4.fatal_error*/
  1197. int r870is_empty_or_null_body(T870* C){
  1198. int R=0;
  1199. /*IF*/if (r870isa_in_line(C)) {
  1200. R=((((T870*)C))->_in_line_status/*60*/)==(1);
  1201. }
  1202. /*FI*/return R;
  1203. }
  1204. /*No:RUN_FEATURE_4.address_of*/
  1205. void r870put_tag(T870* C){
  1206. T0* _fn=NULL;
  1207. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1208. char b1='\42';
  1209. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1210. }/*]*/
  1211. /*]*/
  1212. _fn=/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T696*)((T696*)((((T870*)C))->_base_feature/*48*/))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/;
  1213. X776cpp_put_infix_or_prefix(_fn);
  1214. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X776to_string(_fn));
  1215. /*]*/
  1216. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms1_496));
  1217. /*]*/
  1218. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),(((T451*)((T451*)(/*(IRF4.6base_class_name*/(((T605*)((T605*)((((T696*)((T696*)((((T870*)C))->_base_feature/*48*/))))->_base_class/*4*/))))->_base_class_name/*24*//*)*/))))->_to_string/*0*/);
  1219. /*]*/
  1220. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1221. char b1='\42';
  1222. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1223. }/*]*/
  1224. /*]*/
  1225. }
  1226. /*No:RUN_FEATURE_4.clients_memory*/
  1227. void r870initialize(T870* C){
  1228. C->_arguments=(((T696*)((T696*)((((T870*)C))->_base_feature/*48*/))))->_arguments/*28*/;
  1229. /*IF*/if ((((((T870*)C))->_arguments/*20*/)!=((void*)(NULL)))&&((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T870*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)>(0))) {
  1230. C->_arguments=r31to_runnable(((T31*)((((T870*)C))->_arguments/*20*/)),(((T870*)C))->_current_type/*4*/);
  1231. }
  1232. /*FI*/C->_result_type=X291to_runnable((((T696*)((T696*)((((T870*)C))->_base_feature/*48*/))))->_result_type/*12*/,(((T870*)C))->_current_type/*4*/);
  1233. C->_local_vars=(((T696*)((T696*)((((T870*)C))->_base_feature/*48*/))))->_local_vars/*20*/;
  1234. /*IF*/if ((((((T870*)C))->_local_vars/*52*/)!=((void*)(NULL)))&&((/*(IRF4.6count*/(((T733*)((T733*)((((T620*)((T620*)((((T870*)C))->_local_vars/*52*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)>(0))) {
  1235. C->_local_vars=r620to_runnable(((T620*)((((T870*)C))->_local_vars/*52*/)),(((T870*)C))->_current_type/*4*/);
  1236. }
  1237. /*FI*/C->_routine_body=(((T696*)((T696*)((((T870*)C))->_base_feature/*48*/))))->_routine_body/*52*/;
  1238. /*IF*/if (((((T870*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
  1239. C->_routine_body=r592to_runnable(((T592*)((((T870*)C))->_routine_body/*32*/)),(((T870*)C))->_current_type/*4*/);
  1240. }
  1241. /*FI*//*IF*/if (r590require_check(((T590*)(oBC364run_control)))) {
  1242. C->_require_assertion=r696run_require((T0*)C);
  1243. }
  1244. /*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
  1245. C->_ensure_assertion=r696run_ensure((T0*)C);
  1246. }
  1247. /*FI*/}
  1248. /*No:RUN_FEATURE_4.C_direct_cse_call*/
  1249. T0* r870is_attribute_reader(T870* C){
  1250. T0* R=NULL;
  1251. T0* _rf=NULL;
  1252. T0* _c0=NULL;
  1253. /*IF*/if (r870isa_in_line(C)) {
  1254. /*IF*/if (((((T870*)C))->_in_line_status/*60*/)==(3)) {
  1255. _c0=r870body_one_result(C);
  1256. if(NULL!=(_c0))switch(((T0*)_c0)->id) {
  1257. case 180: case 990: case 767: case 72: case 487: 
  1258. break;
  1259. default:
  1260. _c0=NULL;
  1261. };_rf=X752run_feature(_c0);
  1262. R=/*X496*/((T0*)(((T832*)((T832*)_rf)))->_name/*16*/);
  1263. }
  1264. /*FI*/}
  1265. /*FI*/return R;
  1266. }
  1267. /*No:RUN_FEATURE_4.C_dc_pco1*/
  1268. /*No:RUN_FEATURE_4.afd_check*/
  1269. /*No:TYPE_NONE.id*/
  1270. int r284has_creation(T284* C,T0* a1){
  1271. int R=0;
  1272. r683add_position(X776start_position(a1));
  1273. r284error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T284*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_284));
  1274. return R;
  1275. }
  1276. /*No:TYPE_NONE.us_none*/
  1277. /*No:TYPE_NONE.is_anchored*/
  1278. /*No:TYPE_NONE.is_array*/
  1279. /*No:TYPE_NONE.is_a*/
  1280. /*No:TYPE_NONE.c_initialize_in*/
  1281. /*No:TYPE_NONE.c_type_for_argument_in*/
  1282. void r284gc_call_new_in(T0* a1){
  1283. r7append(((T7*)a1),((T0*)ms115_470));
  1284. r2append_in(-1,a1);
  1285. r7extend(((T7*)a1),'\50');
  1286. r7extend(((T7*)a1),'\51');
  1287. }
  1288. int r284space_for_pointer(void){
  1289. int R=0;
  1290. void* _p=0;
  1291. R=sizeof(T8);
  1292. return R;
  1293. }
  1294. /*No:TYPE_NONE.run_type*/
  1295. /*No:TYPE_NONE.is_pointer*/
  1296. /*No:TYPE_NONE.is_dummy_expanded*/
  1297. /*No:TYPE_NONE.is_string*/
  1298. /*No:TYPE_NONE.space_for_variable*/
  1299. /*No:TYPE_NONE.is_like_feature*/
  1300. /*No:TYPE_NONE.fz_t0_star*/
  1301. /*No:TYPE_NONE.is_like_current*/
  1302. void r284make(T284* C,T0* a1){
  1303. {T451*n=malloc(sizeof(*n));
  1304. *n=M451;
  1305. r451make(n,((T0*)ms19_473),a1);
  1306. C->_base_class_name=(T0*)n;
  1307. }
  1308. }
  1309. /*No:TYPE_NONE.mapping_cast*/
  1310. /*No:TYPE_NONE.start_position*/
  1311. /*No:TYPE_NONE.c_type_for_target_in*/
  1312. /*No:TYPE_NONE.fz_gc_mark*/
  1313. /*No:TYPE_NONE.gc_initialize*/
  1314. /*No:TYPE_NONE.is_character*/
  1315. /*No:TYPE_NONE.is_user_expanded*/
  1316. T0* r284written_mark(void){
  1317. T0* R=NULL;
  1318. R=((T0*)ms19_473);
  1319. return R;
  1320. }
  1321. /*No:TYPE_NONE.is_run_type*/
  1322. /*No:TYPE_NONE.to_runnable*/
  1323. void r284c_type_for_external_in(T0* a1){
  1324. /*IF*/{/*AT*/r7append(((T7*)a1),((T0*)ms133_470));
  1325. r7extend(((T7*)a1),'\52');
  1326. }
  1327. /*FI*/}
  1328. T0* r284generic_list(T284* C){
  1329. T0* R=NULL;
  1330. r284fatal_error_generic_list(C);
  1331. return R;
  1332. }
  1333. /*No:TYPE_NONE.is_formal_generic*/
  1334. /*No:TYPE_NONE.fz_null*/
  1335. void r284demangling_in(T0* a1){
  1336. /*IF*/{/*AT*/r7extend(((T7*)a1),'R');
  1337. }
  1338. /*FI*/r7extend(((T7*)a1),'\40');
  1339. r7append(((T7*)a1),r284run_time_mark());
  1340. }
  1341. /*No:TYPE_NONE.is_real*/
  1342. /*No:TYPE_NONE.is_bit*/
  1343. void r284fatal_error_generic_list(T284* C){
  1344. r683add_type((T0*)C,((T0*)ms12_291));
  1345. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1346. }
  1347. /*No:TYPE_NONE.fz_new*/
  1348. T0* r284smallest_ancestor(T0* a1){
  1349. T0* R=NULL;
  1350. R=a1;
  1351. return R;
  1352. }
  1353. /*No:TYPE_NONE.is_boolean*/
  1354. /*No:TYPE_NONE.is_double*/
  1355. /*No:TYPE_NONE.run_class*/
  1356. T0* r284run_time_mark(void){
  1357. T0* R=NULL;
  1358. R=((T0*)ms19_473);
  1359. return R;
  1360. }
  1361. /*No:TYPE_NONE.c_initialize*/
  1362. void r284cast_to_ref(T284* C){
  1363. X291cast_to_ref(/*(IRF4.4run_type*/((T0*)(C))/*)*/);
  1364. }
  1365. void r284gc_mark_in(T0* a1){
  1366. r7append(((T7*)a1),((T0*)ms107_470));
  1367. r2append_in(-1,a1);
  1368. }
  1369. int r284is_a_in(T284* C,T0* a1,T0* a2){
  1370. int R=0;
  1371. T0* _ct=NULL;
  1372. T0* _t2=NULL;
  1373. T0* _t1=NULL;
  1374. /*IF*/if ((r284written_mark())==((void*)(X291written_mark(a1)))) {
  1375. R=1;
  1376. }
  1377. else {
  1378. _ct=(((T355*)((T355*)a2)))->_current_type/*0*/;
  1379. _t1=/*(IRF4.4to_runnable*/((T0*)(C))/*)*/;
  1380. _t2=X291to_runnable(a1,_ct);
  1381. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  1382. R=1;
  1383. }
  1384. else {
  1385. R=X291is_a(_t1,_t2);
  1386. }
  1387. /*FI*/}
  1388. /*FI*/return R;
  1389. }
  1390. T0* r284look_up_for(T284* C,T0* a1,T0* a2){
  1391. T0* R=NULL;
  1392. R=r605look_up_for(((T605*)(r284base_class(C))),a1,a2);
  1393. return R;
  1394. }
  1395. /*No:TYPE_NONE.c_header_pass1*/
  1396. /*No:TYPE_NONE.c_type_for_result_in*/
  1397. /*No:TYPE_NONE.expanded_initializer*/
  1398. /*No:TYPE_NONE.fz_void*/
  1399. /*No:TYPE_NONE.fz_dot*/
  1400. /*No:TYPE_NONE.is_generic*/
  1401. /*No:TYPE_NONE.used_as_reference*/
  1402. /*No:TYPE_NONE.c_header_pass2*/
  1403. /*No:TYPE_NONE.gc_define1*/
  1404. /*No:TYPE_NONE.need_c_struct*/
  1405. /*No:TYPE_NONE.is_reference*/
  1406. /*No:TYPE_NONE.gc_info_in*/
  1407. void r284error(T0* a1,T0* a2){
  1408. r683add_position(a1);
  1409. r683error(((T683*)(oBC364eh)),a2);
  1410. }
  1411. T0* r284base_class(T284* C){
  1412. T0* R=NULL;
  1413. T0* _bcn=NULL;
  1414. _bcn=(((T284*)C))->_base_class_name/*4*/;
  1415. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  1416. R=r451base_class(((T451*)_bcn));
  1417. }
  1418. else {
  1419. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  1420. r7append(((T7*)(oBC683explanation)),b1);
  1421. }/*]*/
  1422. r683add_type((T0*)C,((T0*)ms67_470));
  1423. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1424. }
  1425. /*FI*/return R;
  1426. }
  1427. /*No:TYPE_NONE.call_gc_sweep_in*/
  1428. /*No:TYPE_NONE.gc_define2*/
  1429. /*No:TYPE_NONE.need_gc_mark_function*/
  1430. /*No:TYPE_NONE.is_any*/
  1431. /*No:TYPE_NONE.to_reference*/
  1432. /*No:TYPE_NONE.c_header_pass3*/
  1433. /*No:TYPE_NONE.base_class_name*/
  1434. /*No:TYPE_NONE.is_expanded*/
  1435. /*No:TYPE_NONE.is_basic_eiffel_expanded*/
  1436. /*No:TYPE_NONE.is_none*/
  1437. /*No:TYPE_NONE.to_expanded*/
  1438. /*No:TYPE_NONE.is_integer*/
  1439. /*No:TYPE_NONE.c_header_pass4*/
  1440. /*No:PROCEDURE.us_put*/
  1441. /*No:PROCEDURE.arguments*/
  1442. T0* r297try_to_undefine(T297* C,T0* a1,T0* a2){
  1443. T0* R=NULL;
  1444. X776undefine_in(a1,a2);
  1445. R=r297try_to_undefine_aux(C,a1,a2);
  1446. /*IF*/if ((R)!=((void*)(NULL))) {
  1447. /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T297*)C))->_clients/*24*/);
  1448. /*]*/
  1449. }
  1450. else {
  1451. r605fatal_undefine(((T605*)a2),a1);
  1452. }
  1453. /*FI*/return R;
  1454. }
  1455. /*No:PROCEDURE.is_deferred*/
  1456. /*No:PROCEDURE.fz_bad_assertion*/
  1457. T0* r297runnable(T0* a1,T0* a2,T0* a3){
  1458. T0* R=NULL;
  1459. T0* _a=NULL;
  1460. int _i=0;
  1461. /*IF*/if (!(r608empty(((T608*)a1)))) {
  1462. R=r608twin(((T608*)a1));
  1463. _i=(((T608*)((T608*)R)))->_upper/*8*/;
  1464. while (!((_i)==(0))) {
  1465. r604push(((T604*)(oBC364small_eiffel)),a3);
  1466. _a=r348to_runnable(((T348*)(r608item(((T608*)R),_i))),a2);
  1467. /*IF*/if ((_a)==((void*)(NULL))) {
  1468. r297error(r348start_position(((T348*)(r608item(((T608*)R),_i)))),((T0*)ms57_470));
  1469. }
  1470. else {
  1471. /*[IRF3.6put*/{T608* C1=((T608*)R);
  1472. T0* b1=_a;
  1473. int b2=_i;
  1474. ((((T608*)C1))->_storage/*0*/)[(b2)-((((T608*)C1))->_lower/*12*/)]=(b1);
  1475. }/*]*/
  1476. }
  1477. /*FI*/r604pop(((T604*)(oBC364small_eiffel)));
  1478. _i=(_i)-(1);
  1479. }
  1480. }
  1481. /*FI*/return R;
  1482. }
  1483. /*No:PROCEDURE.rescue_compound*/
  1484. void r297add_into(T297* C,T0* a1){
  1485. T0* _fn=NULL;
  1486. int _i=0;
  1487. C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T297*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
  1488. _i=1;
  1489. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T297*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  1490. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T297*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
  1491. /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
  1492. _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)/*)*//*)*/);
  1493. r683add_position(X776start_position(_fn));
  1494. r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T297*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
  1495. r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
  1496. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  1497. r7append(((T7*)(oBC683explanation)),b1);
  1498. }/*]*/
  1499. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1500. }
  1501. else {
  1502. r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
  1503. }
  1504. /*FI*/_i=(_i)+(1);
  1505. }
  1506. }
  1507. /*No:PROCEDURE.end_comment*/
  1508. T0* r297try_to_undefine_aux(T297* C,T0* a1,T0* a2){
  1509. T0* R=NULL;
  1510. {T853*n=malloc(sizeof(*n));
  1511. *n=M853;
  1512. r853from_effective(n,a1,(((T297*)C))->_arguments/*28*/,(((T297*)C))->_require_assertion/*36*/,(((T297*)C))->_ensure_assertion/*40*/,a2);
  1513. R=(T0*)n;
  1514. }
  1515. return R;
  1516. }
  1517. /*No:PROCEDURE.us_array*/
  1518. void r297make(T297* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7){
  1519. r297make_routine(C,a1,a2,a3,a4,a5);
  1520. C->_local_vars=a6;
  1521. C->_routine_body=a7;
  1522. C->_use_current_state=1024;
  1523. }
  1524. /*No:PROCEDURE.not_computed*/
  1525. /*No:PROCEDURE.nb_errors*/
  1526. void r297make_routine(T297* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  1527. r297make_e_feature(C,a1,NULL);
  1528. C->_header_comment=a4;
  1529. C->_arguments=a2;
  1530. C->_obsolete_mark=a3;
  1531. C->_require_assertion=a5;
  1532. }
  1533. /*No:PROCEDURE.local_vars*/
  1534. void r297set_header_comment(T297* C,T0* a1){
  1535. /*IF*/if (((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)>(1))) {
  1536. C->_end_comment=a1;
  1537. }
  1538. /*FI*/}
  1539. T0* r297start_position(T297* C){
  1540. T0* R=NULL;
  1541. R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T297*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  1542. return R;
  1543. }
  1544. T0* r297to_run_feature(T297* C,T0* a1,T0* a2){
  1545. T0* R=NULL;
  1546. r297check_obsolete(C);
  1547. {T832*n=malloc(sizeof(*n));
  1548. *n=M832;
  1549. r832make(n,a1,a2,(T0*)C);
  1550. R=(T0*)n;
  1551. }
  1552. return R;
  1553. }
  1554. /*No:PROCEDURE.ensure_assertion*/
  1555. /*No:PROCEDURE.code_require*/
  1556. T0* r297run_ensure(T0* a1){
  1557. T0* R=NULL;
  1558. T0* _r=NULL;
  1559. r608clear(((T608*)(oBC359assertion_collector)));
  1560. /*[IRF3.3clear*/{T0* _default_item=NULL;
  1561. ((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
  1562. }/*]*/
  1563. r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/)))),1002,/*X496*/((T0*)(((T832*)((T832*)a1)))->_name/*16*/));
  1564. _r=r297runnable(oBC359assertion_collector,/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/),a1);
  1565. /*IF*/if ((_r)!=((void*)(NULL))) {
  1566. {T633*n=malloc(sizeof(*n));
  1567. *n=M633;
  1568. r633from_runnable(n,_r);
  1569. R=(T0*)n;
  1570. }
  1571. /*[IRF3.3set_header_comment*/((((T633*)(((T633*)R))))->_header_comment)=((((T56*)((T56*)(oBC359header_comment_memory))))->_item/*0*/);
  1572. /*]*/
  1573. /*[IRF3.3clear*/{T0* _default_item=NULL;
  1574. ((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
  1575. }/*]*/
  1576. }
  1577. /*FI*/return R;
  1578. }
  1579. T0* r297run_require(T0* a1){
  1580. T0* R=NULL;
  1581. T0* _ar=NULL;
  1582. T0* _hc=NULL;
  1583. T0* _er=NULL;
  1584. T0* _r=NULL;
  1585. int _i=0;
  1586. r522clear(((T522*)(oBC359require_collector)));
  1587. r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/)))),1001,/*X496*/((T0*)(((T832*)((T832*)a1)))->_name/*16*/));
  1588. /*IF*/if (!(r522empty(((T522*)(oBC359require_collector))))) {
  1589. _i=1;
  1590. while (!((_i)>((((T522*)((T522*)(oBC359require_collector))))->_upper/*8*/))) {
  1591. _er=r522item(((T522*)(oBC359require_collector)),_i);
  1592. _hc=(((T343*)((T343*)_er)))->_header_comment/*4*/;
  1593. /*IF*/if (!(/*(IRF4.7empty*/((((T343*)((T343*)_er)))->_list/*8*/)==(NULL)/*)*/)) {
  1594. _r=r297runnable((((T343*)((T343*)_er)))->_list/*8*/,/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/),a1);
  1595. /*IF*/if ((_r)!=((void*)(NULL))) {
  1596. {T343*n=malloc(sizeof(*n));
  1597. *n=M343;
  1598. r343from_runnable(n,_r);
  1599. _er=(T0*)n;
  1600. }
  1601. /*[IRF3.3set_header_comment*/((((T343*)(((T343*)_er))))->_header_comment)=(_hc);
  1602. /*]*/
  1603. /*IF*/if ((_ar)==((void*)(NULL))) {
  1604. _ar=se_ma522(1,_er);
  1605. }
  1606. else {
  1607. r522add_last(((T522*)_ar),_er);
  1608. }
  1609. /*FI*/}
  1610. /*FI*/}
  1611. /*FI*/_i=(_i)+(1);
  1612. }
  1613. /*IF*/if ((_ar)!=((void*)(NULL))) {
  1614. {T567*n=malloc(sizeof(*n));
  1615. *n=M567;
  1616. /*[IRF3.3make*/((((T567*)(n)))->_list)=(_ar);
  1617. /*]*/
  1618. R=(T0*)n;
  1619. }
  1620. }
  1621. /*FI*/}
  1622. /*FI*/return R;
  1623. }
  1624. /*No:PROCEDURE.result_type*/
  1625. /*No:PROCEDURE.fz_03*/
  1626. /*No:PROCEDURE.em1*/
  1627. int r297stupid_switch_put(T0* a1,T0* a2){
  1628. int R=0;
  1629. T0* _rf=NULL;
  1630. int _i=0;
  1631. T0* _bcn=NULL;
  1632. T0* _f=NULL;
  1633. _f=X496base_feature(a1);
  1634. /*IF*/if ((((T0*)ms104_473))==((void*)(X776to_string(/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)_f)))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/))))) {
  1635. _bcn=(((T451*)((T451*)((((T605*)((T605*)(/*X359*/((T0*)(((T398*)((T398*)_f)))->_base_class/*4*/)))))->_base_class_name/*24*/))))->_to_string/*0*/;
  1636. /*IF*/if (((((T0*)ms2_473))==((void*)(_bcn)))||((((T0*)ms13_473))==((void*)(_bcn)))) {
  1637. _i=(((T396*)((T396*)a2)))->_upper/*8*/;
  1638. R=1;
  1639. while (!((!(R))||((_i)==(0)))) {
  1640. _rf=r355dynamic(((T355*)(r396item(((T396*)a2),_i))),a1);
  1641. /*IF*/if (X291is_expanded(r31type(((T31*)(/*X496*/((T0*)(((T832*)((T832*)_rf)))->_arguments/*20*/))),1))) {
  1642. R=0;
  1643. }
  1644. /*FI*/_i=(_i)-(1);
  1645. }
  1646. }
  1647. /*FI*/}
  1648. /*FI*/return R;
  1649. }
  1650. /*No:PROCEDURE.obsolete_mark*/
  1651. /*No:PROCEDURE.set_clients*/
  1652. /*No:PROCEDURE.em2*/
  1653. /*No:PROCEDURE.names*/
  1654. /*No:PROCEDURE.require_assertion*/
  1655. /*No:PROCEDURE.use_current_state*/
  1656. /*No:PROCEDURE.code_ensure*/
  1657. int r297stupid_switch(T0* a1,T0* a2){
  1658. int R=0;
  1659. T0* _sfn=NULL;
  1660. T0* _rf3=NULL;
  1661. _rf3=r355dynamic(((T355*)(r396first(((T396*)a2)))),a1);
  1662. if(NULL!=(_rf3))switch(((T0*)_rf3)->id) {
  1663. case 832: 
  1664. break;
  1665. default:
  1666. _rf3=NULL;
  1667. };/*IF*/if (r832is_empty_or_null_body(((T832*)_rf3))) {
  1668. R=1;
  1669. }
  1670. else {
  1671. _sfn=r832is_attribute_writer(((T832*)_rf3));
  1672. /*IF*/if ((_sfn)!=((void*)(NULL))) {
  1673. R=r324stupid_switch(r355get_feature(((T355*)(X496run_class(a1))),_sfn));
  1674. }
  1675. else {
  1676. R=r297stupid_switch_put(a1,a2);
  1677. }
  1678. /*FI*/}
  1679. /*FI*/return R;
  1680. }
  1681. void r297set_rescue_compound(T297* C,T0* a1){
  1682. /*IF*/if (((a1)!=((void*)(NULL)))&&(/*(IRF4.1is_deferred*/0/*)*/)) {
  1683. r297error(r297start_position(C),((T0*)ms6_368));
  1684. }
  1685. /*FI*/C->_rescue_compound=a1;
  1686. }
  1687. int r297can_hide(T297* C,T0* a1,T0* a2){
  1688. int R=0;
  1689. /*IF*/if (((((T297*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  1690. /*IF*/if ((((((T297*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  1691. r683add_position(X359start_position(a1));
  1692. r297error(r297start_position(C),((T0*)ms5_359));
  1693. }
  1694. /*FI*/}
  1695. /*FI*//*IF*/if (((((T297*)C))->_arguments/*28*/)!=((void*)(X359arguments(a1)))) {
  1696. /*IF*/if ((((((T297*)C))->_arguments/*28*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  1697. r683add_position(X359start_position(a1));
  1698. r297error(r297start_position(C),((T0*)ms6_359));
  1699. }
  1700.  else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T297*)C))->_arguments/*28*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  1701. r683add_position(X359start_position(a1));
  1702. r297error(r297start_position(C),((T0*)ms7_359));
  1703. }
  1704. /*FI*/}
  1705. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1706. /*IF*/if (((((T297*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  1707. /*IF*/if (!(X291is_a_in((((T297*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  1708. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  1709. r7append(((T7*)(oBC683explanation)),b1);
  1710. }/*]*/
  1711. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  1712. r7append(((T7*)(oBC683explanation)),b1);
  1713. }/*]*/
  1714. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1715. }
  1716. /*FI*/}
  1717. /*FI*/}
  1718. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1719. /*IF*/if (((((T297*)C))->_arguments/*28*/)!=((void*)(NULL))) {
  1720. /*IF*/if (!(r31is_a_in(((T31*)((((T297*)C))->_arguments/*28*/)),X359arguments(a1),a2))) {
  1721. r683add_position(X359start_position(a1));
  1722. r683add_position(r297start_position(C));
  1723. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  1724. r7append(((T7*)(oBC683explanation)),b1);
  1725. }/*]*/
  1726. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  1727. r7append(((T7*)(oBC683explanation)),b1);
  1728. }/*]*/
  1729. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1730. }
  1731. /*FI*/}
  1732. /*FI*/}
  1733. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  1734. return R;
  1735. }
  1736. /*No:PROCEDURE.header_comment*/
  1737. /*No:PROCEDURE.routine_body*/
  1738. int r297is_merge_with(T297* C,T0* a1,T0* a2){
  1739. int R=0;
  1740. /*IF*/if (((((T297*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  1741. /*IF*/if ((((((T297*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  1742. r683add_position(X359start_position(a1));
  1743. r297error(r297start_position(C),((T0*)ms2_359));
  1744. }
  1745. /*FI*/}
  1746. /*FI*//*IF*/if (((((T297*)C))->_arguments/*28*/)!=((void*)(X359arguments(a1)))) {
  1747. /*IF*/if ((((((T297*)C))->_arguments/*28*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  1748. r683add_position(X359start_position(a1));
  1749. r297error(r297start_position(C),((T0*)ms3_359));
  1750. }
  1751.  else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T297*)C))->_arguments/*28*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  1752. r683add_position(X359start_position(a1));
  1753. r297error(r297start_position(C),((T0*)ms4_359));
  1754. }
  1755. /*FI*/}
  1756. /*FI*//*IF*/if (((((T297*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  1757. /*IF*/if (!(X291is_a_in((((T297*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  1758. r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
  1759. }
  1760. /*FI*/}
  1761. /*FI*//*IF*/if (((((T297*)C))->_arguments/*28*/)!=((void*)(NULL))) {
  1762. /*IF*/if (!(r31is_a_in(((T31*)((((T297*)C))->_arguments/*28*/)),X359arguments(a1),a2))) {
  1763. r683add_position(X359start_position(a1));
  1764. r297error(r297start_position(C),((T0*)ms12_359));
  1765. }
  1766. /*FI*/}
  1767. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  1768. return R;
  1769. }
  1770. /*No:PROCEDURE.fz_dot*/
  1771. /*No:PROCEDURE.set_ensure_assertion*/
  1772. /*No:PROCEDURE.first_name*/
  1773. /*No:PROCEDURE.clients*/
  1774. void r297collect_for(T297* C,int a1){
  1775. /*IF*/if ((a1)==(1001)) {
  1776. /*IF*/if (((((T297*)C))->_require_assertion/*36*/)!=((void*)(NULL))) {
  1777. /*IF*/if (!(r522fast_has(((T522*)(oBC359require_collector)),(((T297*)C))->_require_assertion/*36*/))) {
  1778. r522add_last(((T522*)(oBC359require_collector)),(((T297*)C))->_require_assertion/*36*/);
  1779. }
  1780. /*FI*/}
  1781. /*FI*/}
  1782. else {
  1783. /*IF*/if (((((T297*)C))->_ensure_assertion/*40*/)!=((void*)(NULL))) {
  1784. /*[IRF3.3set_item*/((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=((((T633*)((T633*)((((T297*)C))->_ensure_assertion/*40*/))))->_header_comment/*4*/);
  1785. /*]*/
  1786. r633add_into(((T633*)((((T297*)C))->_ensure_assertion/*40*/)),oBC359assertion_collector);
  1787. }
  1788. /*FI*/}
  1789. /*FI*/}
  1790. void r297error(T0* a1,T0* a2){
  1791. r683add_position(a1);
  1792. r683error(((T683*)(oBC364eh)),a2);
  1793. }
  1794. /*No:PROCEDURE.base_class*/
  1795. /*No:PROCEDURE.base_class_name*/
  1796. /*No:PROCEDURE.us_fixed_array*/
  1797. void r297make_e_feature(T297* C,T0* a1,T0* a2){
  1798. C->_names=a1;
  1799. C->_result_type=a2;
  1800. }
  1801. void r297check_obsolete(T297* C){
  1802. /*IF*/if (!((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/)) {
  1803. /*IF*/if (((((T297*)C))->_obsolete_mark/*32*/)!=((void*)(NULL))) {
  1804. /*[IRF3.6append*/{T0* b1=((T0*)ms7_368);
  1805. r7append(((T7*)(oBC683explanation)),b1);
  1806. }/*]*/
  1807. /*[IRF3.6append*/{T0* b1=(((T805*)((T805*)((((T297*)C))->_obsolete_mark/*32*/))))->_to_string/*16*/;
  1808. r7append(((T7*)(oBC683explanation)),b1);
  1809. }/*]*/
  1810. r297warning(r297start_position(C),((T0*)ms137_470));
  1811. }
  1812. /*FI*/}
  1813. /*FI*/}
  1814. void r297warning(T0* a1,T0* a2){
  1815. r683add_position(a1);
  1816. r683warning(((T683*)(oBC364eh)),a2);
  1817. }
  1818. /*No:CST_ATT_REAL.arguments*/
  1819. T0* r835try_to_undefine(T835* C,T0* a1,T0* a2){
  1820. T0* R=NULL;
  1821. X776undefine_in(a1,a2);
  1822. R=r835try_to_undefine_aux(C,a1,a2);
  1823. /*IF*/if ((R)!=((void*)(NULL))) {
  1824. /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T835*)C))->_clients/*20*/);
  1825. /*]*/
  1826. }
  1827. else {
  1828. r605fatal_undefine(((T605*)a2),a1);
  1829. }
  1830. /*FI*/return R;
  1831. }
  1832. /*No:CST_ATT_REAL.is_deferred*/
  1833. void r835add_into(T835* C,T0* a1){
  1834. T0* _fn=NULL;
  1835. int _i=0;
  1836. C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T835*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
  1837. _i=1;
  1838. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T835*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  1839. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T835*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
  1840. /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
  1841. _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)/*)*//*)*/);
  1842. r683add_position(X776start_position(_fn));
  1843. r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T835*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
  1844. r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
  1845. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  1846. r7append(((T7*)(oBC683explanation)),b1);
  1847. }/*]*/
  1848. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1849. }
  1850. else {
  1851. r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
  1852. }
  1853. /*FI*/_i=(_i)+(1);
  1854. }
  1855. }
  1856. T0* r835try_to_undefine_aux(T835* C,T0* a1,T0* a2){
  1857. T0* R=NULL;
  1858. r683add_position(r835start_position(C));
  1859. r835error(X776start_position(a1),((T0*)ms1_308));
  1860. r605fatal_undefine(((T605*)a2),a1);
  1861. return R;
  1862. }
  1863. void r835make(T835* C,T0* a1,T0* a2,T0* a3){
  1864. r835make_e_feature(C,a1,a2);
  1865. C->_value_mem=a3;
  1866. }
  1867. /*No:CST_ATT_REAL.nb_errors*/
  1868. /*No:CST_ATT_REAL.set_header_comment*/
  1869. T0* r835start_position(T835* C){
  1870. T0* R=NULL;
  1871. R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T835*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  1872. return R;
  1873. }
  1874. T0* r835to_run_feature(T835* C,T0* a1,T0* a2){
  1875. T0* R=NULL;
  1876. T0* _rc=NULL;
  1877. _rc=X291run_class(a1);
  1878. R=r355at(((T355*)_rc),a2);
  1879. if(NULL!=(R))switch(((T0*)R)->id) {
  1880. case 808: 
  1881. break;
  1882. default:
  1883. R=NULL;
  1884. };/*IF*/if ((R)==((void*)(NULL))) {
  1885. {T808*n=malloc(sizeof(*n));
  1886. *n=M808;
  1887. r808make(n,a1,a2,(T0*)C);
  1888. R=(T0*)n;
  1889. }
  1890. }
  1891. /*FI*/return R;
  1892. }
  1893. /*No:CST_ATT_REAL.ensure_assertion*/
  1894. /*No:CST_ATT_REAL.code_require*/
  1895. /*No:CST_ATT_REAL.result_type*/
  1896. /*No:CST_ATT_REAL.em1*/
  1897. /*No:CST_ATT_REAL.set_clients*/
  1898. /*No:CST_ATT_REAL.em2*/
  1899. /*No:CST_ATT_REAL.value*/
  1900. /*No:CST_ATT_REAL.require_assertion*/
  1901. /*No:CST_ATT_REAL.names*/
  1902. /*No:CST_ATT_REAL.value_mem*/
  1903. /*No:CST_ATT_REAL.stupid_switch*/
  1904. int r835can_hide(T835* C,T0* a1,T0* a2){
  1905. int R=0;
  1906. /*IF*/if (((((T835*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  1907. /*IF*/if ((((((T835*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  1908. r683add_position(X359start_position(a1));
  1909. r835error(r835start_position(C),((T0*)ms5_359));
  1910. }
  1911. /*FI*/}
  1912. /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
  1913. /*IF*/{/*AT*/r683add_position(X359start_position(a1));
  1914. r835error(r835start_position(C),((T0*)ms6_359));
  1915. }
  1916. /*FI*/}
  1917. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1918. /*IF*/if (((((T835*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  1919. /*IF*/if (!(X291is_a_in((((T835*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  1920. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  1921. r7append(((T7*)(oBC683explanation)),b1);
  1922. }/*]*/
  1923. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  1924. r7append(((T7*)(oBC683explanation)),b1);
  1925. }/*]*/
  1926. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1927. }
  1928. /*FI*/}
  1929. /*FI*/}
  1930. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1931. /*IF*//*AF*//*AE*/
  1932. /*FI*/}
  1933. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  1934. return R;
  1935. }
  1936. /*No:CST_ATT_REAL.header_comment*/
  1937. int r835is_merge_with(T835* C,T0* a1,T0* a2){
  1938. int R=0;
  1939. /*IF*/if (((((T835*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  1940. /*IF*/if ((((((T835*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  1941. r683add_position(X359start_position(a1));
  1942. r835error(r835start_position(C),((T0*)ms2_359));
  1943. }
  1944. /*FI*/}
  1945. /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
  1946. /*IF*/{/*AT*/r683add_position(X359start_position(a1));
  1947. r835error(r835start_position(C),((T0*)ms3_359));
  1948. }
  1949. /*FI*/}
  1950. /*FI*//*IF*/if (((((T835*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  1951. /*IF*/if (!(X291is_a_in((((T835*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  1952. r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
  1953. }
  1954. /*FI*/}
  1955. /*FI*//*IF*//*AF*//*AE*/
  1956. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  1957. return R;
  1958. }
  1959. /*No:CST_ATT_REAL.fz_dot*/
  1960. /*No:CST_ATT_REAL.first_name*/
  1961. /*No:CST_ATT_REAL.clients*/
  1962. void r835collect_for(int a1){
  1963. /*IF*/if ((a1)==(1001)) {
  1964. /*IF*//*AF*//*AE*/
  1965. /*FI*/}
  1966. else {
  1967. /*IF*//*AF*//*AE*/
  1968. /*FI*/}
  1969. /*FI*/}
  1970. void r835error(T0* a1,T0* a2){
  1971. r683add_position(a1);
  1972. r683error(((T683*)(oBC364eh)),a2);
  1973. }
  1974. /*No:CST_ATT_REAL.base_class*/
  1975. /*No:CST_ATT_REAL.base_class_name*/
  1976. void r835make_e_feature(T835* C,T0* a1,T0* a2){
  1977. C->_names=a1;
  1978. C->_result_type=a2;
  1979. }
  1980. /*No:PROC_CALL_N.arguments*/
  1981. T0* r568add_comment(T568* C,T0* a1){
  1982. T0* R=NULL;
  1983. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1984. R=(T0*)C;
  1985. }
  1986. /*AF*/else {
  1987. {T46*n=malloc(sizeof(*n));
  1988. *n=M46;
  1989. r46make(n,(T0*)C,a1);
  1990. R=(T0*)n;
  1991. }
  1992. }
  1993. /*FI*/return R;
  1994. }
  1995. /*No:PROC_CALL_N.fz_bad_arguments*/
  1996. void r568make(T568* C,T0* a1,T0* a2,T0* a3){
  1997. C->_target=a1;
  1998. C->_feature_name=a2;
  1999. C->_arguments=a3;
  2000. }
  2001. /*No:PROC_CALL_N.nb_errors*/
  2002. /*No:PROC_CALL_N.feature_name*/
  2003. int r568arg_count(T568* C){
  2004. int R=0;
  2005. R=X431count((((T568*)C))->_arguments/*20*/);
  2006. return R;
  2007. }
  2008. /*No:PROC_CALL_N.run_feature*/
  2009. /*No:PROC_CALL_N.set_run_compound*/
  2010. /*No:PROC_CALL_N.call_proc_call_c2c*/
  2011. T0* r568start_position(T568* C){
  2012. T0* R=NULL;
  2013. R=X776start_position((((T568*)C))->_feature_name/*12*/);
  2014. return R;
  2015. }
  2016. /*No:PROC_CALL_N.target*/
  2017. void r568compile_to_c(T568* C){
  2018. r324rs_push_position(((T324*)(oBC364cpp)),'3',r568start_position(C));
  2019. /*[IRF3.6call_proc_call_c2c*/{T568* C1=C;
  2020. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  2021. }/*]*/
  2022. r324rs_pop_position(((T324*)(oBC364cpp)));
  2023. }
  2024. /*No:PROC_CALL_N.set_run_feature*/
  2025. T0* r568to_runnable(T568* C,T0* a1){
  2026. T0* R=NULL;
  2027. T0* _a=NULL;
  2028. /*IF*/if (((((T568*)C))->_run_compound/*4*/)==((void*)(NULL))) {
  2029. r568to_runnable_0(C,a1);
  2030. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  2031. _a=X431to_runnable((((T568*)C))->_arguments/*20*/,r568current_type(C));
  2032. /*IF*/if ((_a)==((void*)(NULL))) {
  2033. r568error(X431start_position((((T568*)C))->_arguments/*20*/),((T0*)ms56_470));
  2034. }
  2035. else {
  2036. C->_arguments=_a;
  2037. }
  2038. /*FI*/}
  2039. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  2040. X431match_with((((T568*)C))->_arguments/*20*/,(((T568*)C))->_run_feature/*16*/);
  2041. }
  2042. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  2043. R=(T0*)C;
  2044. }
  2045. /*FI*/}
  2046. else {
  2047. {T568*n=malloc(sizeof(*n));
  2048. *n=M568;
  2049. r568make(n,(((T568*)C))->_target/*8*/,(((T568*)C))->_feature_name/*12*/,(((T568*)C))->_arguments/*20*/);
  2050. R=(T0*)n;
  2051. }
  2052. R=r568to_runnable(((T568*)R),a1);
  2053. }
  2054. /*FI*/return R;
  2055. }
  2056. /*No:PROC_CALL_N.fz_07*/
  2057. T0* r568current_type(T568* C){
  2058. T0* R=NULL;
  2059. /*IF*/if (((((T568*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
  2060. R=(((T592*)((T592*)((((T568*)C))->_run_compound/*4*/))))->_current_type/*4*/;
  2061. }
  2062. /*FI*/return R;
  2063. }
  2064. /*No:PROC_CALL_N.run_compound*/
  2065. void r568to_runnable_0(T568* C,T0* a1){
  2066. C->_run_compound=a1;
  2067. r568cpc_to_runnable(C,r568current_type(C));
  2068. /*IF*/if ((/*X496*/((T0*)(((T832*)((T832*)((((T568*)C))->_run_feature/*16*/))))->_result_type/*24*/))!=((void*)(NULL))) {
  2069. r683add_position(X496start_position((((T568*)C))->_run_feature/*16*/));
  2070. r568error(X776start_position((((T568*)C))->_feature_name/*12*/),((T0*)ms1_173));
  2071. }
  2072. /*FI*/}
  2073. /*No:PROC_CALL_N.is_pre_computable*/
  2074. void r568cpc_to_runnable(T568* C,T0* a1){
  2075. T0* _rc=NULL;
  2076. T0* _t=NULL;
  2077. _t=X662to_runnable((((T568*)C))->_target/*8*/,a1);
  2078. /*IF*/if ((_t)==((void*)(NULL))) {
  2079. r683add_position(X662start_position((((T568*)C))->_target/*8*/));
  2080. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  2081. r683fatal_error(((T683*)(oBC364eh)),b1);
  2082. }/*]*/
  2083. }
  2084. /*FI*/C->_target=_t;
  2085. _rc=X291run_class(X662result_type((((T568*)C))->_target/*8*/));
  2086. C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C);
  2087. r576update((((T568*)C))->_target/*8*/,(((T568*)C))->_run_feature/*16*/);
  2088. }
  2089. int r568use_current(T568* C){
  2090. int R=0;
  2091. /*IF*/if ((r568arg_count(C))>(0)) {
  2092. R=X431use_current((((T568*)C))->_arguments/*20*/);
  2093. }
  2094. /*FI*//*IF*/if (R) {
  2095. }
  2096.  else if (X662is_current((((T568*)C))->_target/*8*/)) {
  2097. R=X496use_current((((T568*)C))->_run_feature/*16*/);
  2098. }
  2099. else {
  2100. R=X662use_current((((T568*)C))->_target/*8*/);
  2101. }
  2102. /*FI*/return R;
  2103. }
  2104. void r568finalize(T568* C){
  2105. T0* _rf=NULL;
  2106. T0* _rc=NULL;
  2107. _rf=(((T568*)C))->_run_feature/*16*/;
  2108. _rc=X291run_class(/*X496*/((T0*)(((T832*)((T832*)_rf)))->_current_type/*4*/));
  2109. /*IF*/if (!((((T355*)((T355*)_rc)))->_at_run_time/*8*/)) {
  2110. _rf=r355dynamic(((T355*)(r396first(((T396*)((((T355*)((T355*)_rc)))->_running/*12*/))))),_rf);
  2111. C->_run_feature=_rf;
  2112. }
  2113. /*FI*/}
  2114. void r568error(T0* a1,T0* a2){
  2115. r683add_position(a1);
  2116. r683error(((T683*)(oBC364eh)),a2);
  2117. }
  2118. /*No:PROC_CALL_N.fatal_error*/
  2119. /*No:PROC_CALL_N.end_mark_comment*/
  2120. void r568afd_check(T568* C){
  2121. T0* _running=NULL;
  2122. T0* _rc=NULL;
  2123. _rc=X291run_class(X662result_type((((T568*)C))->_target/*8*/));
  2124. _running=(((T355*)((T355*)_rc)))->_running/*12*/;
  2125. /*IF*/if ((_running)==((void*)(NULL))) {
  2126. r683add_position(X662start_position((((T568*)C))->_target/*8*/));
  2127. /*[IRF3.6append*/{T0* b1=((T0*)ms1_135);
  2128. r7append(((T7*)(oBC683explanation)),b1);
  2129. }/*]*/
  2130. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/);
  2131. r7append(((T7*)(oBC683explanation)),b1);
  2132. }/*]*/
  2133. /*[IRF3.6append*/{T0* b1=((T0*)ms141_470);
  2134. r7append(((T7*)(oBC683explanation)),b1);
  2135. }/*]*/
  2136. r683print_as_warning(((T683*)(oBC364eh)));
  2137. r355set_at_run_time(((T355*)_rc));
  2138. }
  2139.  else if ((r396count(((T396*)_running)))>(0)) {
  2140. r576update((((T568*)C))->_target/*8*/,(((T568*)C))->_run_feature/*16*/);
  2141. }
  2142. /*FI*/X662afd_check((((T568*)C))->_target/*8*/);
  2143. /*IF*/if ((r568arg_count(C))>(0)) {
  2144. X431afd_check((((T568*)C))->_arguments/*20*/);
  2145. }
  2146. /*FI*/}
  2147. T0* r568make_runnable(T568* C,T0* a1,T0* a2,T0* a3,T0* a4){
  2148. T0* R=NULL;
  2149. /*IF*/if (((((T568*)C))->_run_compound/*4*/)==((void*)(NULL))) {
  2150. R=(T0*)C;
  2151. r568make(((T568*)R),a2,(((T568*)C))->_feature_name/*12*/,a3);
  2152. C->_run_compound=a1;
  2153. C->_run_feature=a4;
  2154. }
  2155. else {
  2156. {T568*n=malloc(sizeof(*n));
  2157. *n=M568;
  2158. r568make(n,a2,(((T568*)C))->_feature_name/*12*/,a3);
  2159. R=(T0*)n;
  2160. }
  2161. /*[IRF3.3set_run_compound*/((((T568*)(((T568*)R))))->_run_compound)=(a1);
  2162. /*]*/
  2163. /*[IRF3.3set_run_feature*/((((T568*)(((T568*)R))))->_run_feature)=(a4);
  2164. /*]*/
  2165. }
  2166. /*FI*/return R;
  2167. }
  2168. void r362check_creation_clause(T362* C,T0* a1){
  2169. /*IF*/if (/*(IRF4.7has_creation_clause*/((((T605*)((T605*)(X291base_class(a1)))))->_creation_clause_list/*44*/)!=(NULL)/*)*/) {
  2170. /*[IRF3.6append*/{T0* b1=((T0*)ms1_334);
  2171. r7append(((T7*)(oBC683explanation)),b1);
  2172. }/*]*/
  2173. r683add_type(a1,((T0*)ms2_334));
  2174. r362error((((T362*)C))->_start_position/*8*/,((T0*)ms3_334));
  2175. }
  2176. /*FI*/}
  2177. T0* r362add_comment(T362* C,T0* a1){
  2178. T0* R=NULL;
  2179. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  2180. R=(T0*)C;
  2181. }
  2182. /*AF*/else {
  2183. {T46*n=malloc(sizeof(*n));
  2184. *n=M46;
  2185. r46make(n,(T0*)C,a1);
  2186. R=(T0*)n;
  2187. }
  2188. }
  2189. /*FI*/return R;
  2190. }
  2191. void r362check_created_type(T362* C,T0* a1){
  2192. T0* _rt=NULL;
  2193. _rt=X291run_type(a1);
  2194. /*IF*/if ((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/) {
  2195. }
  2196.  else if ((((T605*)((T605*)(X291base_class(_rt)))))->_is_deferred/*16*/) {
  2197. r683add_type(_rt,((T0*)ms2_747));
  2198. r683add_position((((T362*)C))->_start_position/*8*/);
  2199. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms3_747);
  2200. r683fatal_error(((T683*)(oBC364eh)),b1);
  2201. }/*]*/
  2202. }
  2203. /*FI*//*IF*/if (X291is_formal_generic(a1)) {
  2204. r683add_position((((T362*)C))->_start_position/*8*/);
  2205. /*[IRF3.6append*/{T0* b1=((T0*)ms4_747);
  2206. r7append(((T7*)(oBC683explanation)),b1);
  2207. }/*]*/
  2208. r683add_type(a1,((T0*)ms5_747));
  2209. r683print_as_fatal_error(((T683*)(oBC364eh)));
  2210. }
  2211. /*FI*/r355set_at_run_time(((T355*)(X291run_class(_rt))));
  2212. }
  2213. /*No:CREATION_CALL_1.writable*/
  2214. void r362make(T362* C,T0* a1,T0* a2){
  2215. C->_start_position=a1;
  2216. C->_writable=a2;
  2217. }
  2218. void r362c2c_closing(T362* C,T0* a1){
  2219. X662compile_to_c((((T362*)C))->_writable/*12*/);
  2220. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2221. char b1='\75';
  2222. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2223. }/*]*/
  2224. /*]*/
  2225. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms85_470));
  2226. /*]*/
  2227. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2228. char b1='n';
  2229. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2230. }/*]*/
  2231. /*]*/
  2232. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms134_470));
  2233. /*]*/
  2234. /*IF*/if (r324call_invariant_start(a1)) {
  2235. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2236. char b1='n';
  2237. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2238. }/*]*/
  2239. /*]*/
  2240. /*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T544* C1=((T544*)(oBC324out_c));
  2241. char b1='\51';
  2242. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2243. }/*]*/
  2244. /*]*/
  2245. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2246. char b1='\73';
  2247. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2248. }/*]*/
  2249. /*]*/
  2250. }
  2251. /*FI*//*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2252. char b1='\175';
  2253. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2254. }/*]*/
  2255. /*]*/
  2256. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2257. char b1='\n';
  2258. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2259. }/*]*/
  2260. /*]*/
  2261. r324rs_pop_position(((T324*)(oBC364cpp)));
  2262. }
  2263. void r362c2c_clear_expanded(T362* C,int a1){
  2264. X662compile_to_c((((T362*)C))->_writable/*12*/);
  2265. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2266. char b1='\75';
  2267. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2268. }/*]*/
  2269. /*]*/
  2270. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2271. char b1='M';
  2272. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2273. }/*]*/
  2274. /*]*/
  2275. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),a1);
  2276. /*]*/
  2277. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms134_470));
  2278. /*]*/
  2279. }
  2280. /*No:CREATION_CALL_1.start_position*/
  2281. void r362compile_to_c(T362* C){
  2282. T0* _t=NULL;
  2283. _t=X291run_type(X662result_type((((T362*)C))->_writable/*12*/));
  2284. /*IF*/if (X291is_reference(_t)) {
  2285. r362c2c_opening(C,_t);
  2286. r362c2c_closing(C,_t);
  2287. }
  2288. else {
  2289. r362c2c_clear_expanded(C,X291id(_t));
  2290. }
  2291. /*FI*/}
  2292. /*No:CREATION_CALL_1.fz_00*/
  2293. T0* r362to_runnable(T362* C,T0* a1){
  2294. T0* R=NULL;
  2295. T0* _t=NULL;
  2296. /*IF*/if (((((T362*)C))->_run_compound/*4*/)==((void*)(NULL))) {
  2297. r362check_writable(C,a1);
  2298. _t=X662result_type((((T362*)C))->_writable/*12*/);
  2299. r362check_created_type(C,_t);
  2300. r362check_creation_clause(C,_t);
  2301. R=(T0*)C;
  2302. }
  2303. else {
  2304. {T362*n=malloc(sizeof(*n));
  2305. *n=M362;
  2306. r362make(n,(((T362*)C))->_start_position/*8*/,(((T362*)C))->_writable/*12*/);
  2307. R=(T0*)n;
  2308. }
  2309. R=r362to_runnable(((T362*)R),a1);
  2310. }
  2311. /*FI*/return R;
  2312. }
  2313. T0* r362current_type(T362* C){
  2314. T0* R=NULL;
  2315. /*IF*/if (((((T362*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
  2316. R=(((T592*)((T592*)((((T362*)C))->_run_compound/*4*/))))->_current_type/*4*/;
  2317. }
  2318. /*FI*/return R;
  2319. }
  2320. void r362c2c_opening(T362* C,T0* a1){
  2321. T0* _rc=NULL;
  2322. _rc=X291run_class(a1);
  2323. r324rs_push_position(((T324*)(oBC364cpp)),'5',(((T362*)C))->_start_position/*8*/);
  2324. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2325. char b1='\173';
  2326. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2327. }/*]*/
  2328. /*]*/
  2329. r548put_new(((T548*)(oBC364gc_handler)),_rc);
  2330. r324expanded_attributes(((T324*)(oBC364cpp)),a1);
  2331. }
  2332. /*No:CREATION_CALL_1.run_compound*/
  2333. int r362is_pre_computable(T362* C){
  2334. int R=0;
  2335. R=X662is_result((((T362*)C))->_writable/*12*/);
  2336. return R;
  2337. }
  2338. /*No:CREATION_CALL_1.fz_cast_t0_star*/
  2339. int r362use_current(T362* C){
  2340. int R=0;
  2341. R=X662use_current((((T362*)C))->_writable/*12*/);
  2342. return R;
  2343. }
  2344. void r362check_writable(T362* C,T0* a1){
  2345. T0* _w=NULL;
  2346. C->_run_compound=a1;
  2347. _w=X662to_runnable((((T362*)C))->_writable/*12*/,r362current_type(C));
  2348. /*IF*/if ((_w)==((void*)(NULL))) {
  2349. r683add_position(X662start_position((((T362*)C))->_writable/*12*/));
  2350. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_747);
  2351. r683fatal_error(((T683*)(oBC364eh)),b1);
  2352. }/*]*/
  2353. }
  2354. else {
  2355. C->_writable=_w;
  2356. }
  2357. /*FI*/}
  2358. void r362error(T0* a1,T0* a2){
  2359. r683add_position(a1);
  2360. r683error(((T683*)(oBC364eh)),a2);
  2361. }
  2362. /*No:CREATION_CALL_1.fatal_error*/
  2363. /*No:CREATION_CALL_1.end_mark_comment*/
  2364. /*No:CREATION_CALL_1.afd_check*/
  2365. void r970fe_c2c(T0* a1){
  2366. r683add_position(X496start_position(a1));
  2367. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_845);
  2368. r683fatal_error(((T683*)(oBC364eh)),b1);
  2369. }/*]*/
  2370. }
  2371. /*No:NATIVE_JVM_INVOKEVIRTUAL.c_define_function*/
  2372. /*No:NATIVE_JVM_INVOKEVIRTUAL.c_define_procedure*/
  2373. /*No:NATIVE_JVM_INVOKEVIRTUAL.stupid_switch*/
  2374. /*No:NATIVE_JVM_INVOKEVIRTUAL.c_mapping_procedure*/
  2375. /*No:NATIVE_JVM_INVOKEVIRTUAL.c_mapping_function*/
  2376. /*No:NATIVE_JVM_INVOKEVIRTUAL.use_current*/
  2377. /*No:NATIVE_JVM_INVOKEVIRTUAL.fatal_error*/
  2378. void r620make(T620* C,T0* a1,T0* a2){
  2379. int _actual_count=0;
  2380. int _il=0;
  2381. C->_start_position=a1;
  2382. C->_list=a2;
  2383. _il=1;
  2384. while (!((_il)>((((T382*)((T382*)((((T620*)C))->_list/*8*/))))->_upper/*8*/))) {
  2385. _actual_count=(_actual_count)+(X411count(r382item(((T382*)((((T620*)C))->_list/*8*/)),_il)));
  2386. _il=(_il)+(1);
  2387. }
  2388. {T733*n=malloc(sizeof(*n));
  2389. *n=M733;
  2390. r733make(n,1,_actual_count);
  2391. C->_flat_list=(T0*)n;
  2392. }
  2393. _il=1;
  2394. while (!((_il)>((((T382*)((T382*)((((T620*)C))->_list/*8*/))))->_upper/*8*/))) {
  2395. X411append_in(r382item(((T382*)((((T620*)C))->_list/*8*/)),_il),(T0*)C);
  2396. _il=(_il)+(1);
  2397. }
  2398. }
  2399. /*No:LOCAL_VAR_LIST.name*/
  2400. /*No:LOCAL_VAR_LIST.nb_errors*/
  2401. T0* r620type(T620* C,int a1){
  2402. T0* R=NULL;
  2403. R=(((T39*)((T39*)(/*(IRF4.6name*/r733item(((T733*)((((T620*)C))->_flat_list/*12*/)),a1)/*)*/))))->_result_type/*24*/;
  2404. return R;
  2405. }
  2406. /*No:LOCAL_VAR_LIST.start_position*/
  2407. void r620inline_one_pc(T620* C){
  2408. int _i=0;
  2409. _i=/*(IRF4.6count*/(((T733*)((T733*)((((T620*)C))->_flat_list/*12*/))))->_upper/*12*//*)*/;
  2410. while (!((_i)==(0))) {
  2411. r324inline_level_incr(((T324*)(oBC364cpp)));
  2412. r39c_declare(((T39*)(/*(IRF4.6name*/r733item(((T733*)((((T620*)C))->_flat_list/*12*/)),_i)/*)*/)));
  2413. r324inline_level_decr(((T324*)(oBC364cpp)));
  2414. _i=(_i)-(1);
  2415. }
  2416. }
  2417. void r620compile_to_c(T620* C){
  2418. int _i=0;
  2419. _i=/*(IRF4.6count*/(((T733*)((T733*)((((T620*)C))->_flat_list/*12*/))))->_upper/*12*//*)*/;
  2420. while (!((_i)==(0))) {
  2421. r39c_declare(((T39*)(/*(IRF4.6name*/r733item(((T733*)((((T620*)C))->_flat_list/*12*/)),_i)/*)*/)));
  2422. _i=(_i)-(1);
  2423. }
  2424. }
  2425. T0* r620to_runnable(T620* C,T0* a1){
  2426. T0* R=NULL;
  2427. T0* _n2=NULL;
  2428. T0* _n1=NULL;
  2429. int _i=0;
  2430. /*IF*/if (((((T620*)C))->_current_type/*16*/)==((void*)(NULL))) {
  2431. C->_current_type=a1;
  2432. R=(T0*)C;
  2433. _i=(((T733*)((T733*)((((T620*)C))->_flat_list/*12*/))))->_upper/*12*/;
  2434. while (!(((_i)==(0))||((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)>(0)))) {
  2435. _n1=r733item(((T733*)((((T620*)C))->_flat_list/*12*/)),_i);
  2436. _n2=r39to_runnable(((T39*)_n1),a1);
  2437. /*IF*/if ((_n2)==((void*)(NULL))) {
  2438. r620error((((T39*)((T39*)_n1)))->_start_position/*16*/,((T0*)ms3_535));
  2439. }
  2440.  else if ((_n1)!=((void*)(_n2))) {
  2441. /*[IRF3.6put*/{T733* C1=((T733*)((((T620*)C))->_flat_list/*12*/));
  2442. T0* b1=_n2;
  2443. int b2=_i;
  2444. ((((T733*)C1))->_storage/*4*/)[(b2)-((((T733*)C1))->_lower/*16*/)]=(b1);
  2445. }/*]*/
  2446. }
  2447. /*FI*/r39name_clash(((T39*)_n2));
  2448. _i=(_i)-(1);
  2449. }
  2450. }
  2451. else {
  2452. {T620*n=malloc(sizeof(*n));
  2453. *n=M620;
  2454. r620runnable_from_current(n,(T0*)C,a1);
  2455. R=(T0*)n;
  2456. }
  2457. }
  2458. /*FI*/return R;
  2459. }
  2460. int r620produce_c(T620* C){
  2461. int R=0;
  2462. int _i=0;
  2463. _i=/*(IRF4.6count*/(((T733*)((T733*)((((T620*)C))->_flat_list/*12*/))))->_upper/*12*//*)*/;
  2464. while (!((R)||((_i)==(0)))) {
  2465. R=r39produce_c(((T39*)(/*(IRF4.6name*/r733item(((T733*)((((T620*)C))->_flat_list/*12*/)),_i)/*)*/)));
  2466. _i=(_i)-(1);
  2467. }
  2468. return R;
  2469. }
  2470. /*No:LOCAL_VAR_LIST.em1*/
  2471. /*No:LOCAL_VAR_LIST.list*/
  2472. int r620rank_of(T620* C,T0* a1){
  2473. int R=0;
  2474. R=/*(IRF4.6count*/(((T733*)((T733*)((((T620*)C))->_flat_list/*12*/))))->_upper/*12*//*)*/;
  2475. while (!(((R)==(0))||((a1)==((void*)((((T39*)((T39*)(/*(IRF4.6name*/r733item(((T733*)((((T620*)C))->_flat_list/*12*/)),R)/*)*/))))->_to_string/*12*/))))) {
  2476. R=(R)-(1);
  2477. }
  2478. return R;
  2479. }
  2480. /*No:LOCAL_VAR_LIST.current_type*/
  2481.  
  2482.