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

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "compile_to_c.h"
  9. /*No:CALL_INFIX_GE.arguments*/
  10. T0* r890add_comment(T890* C,T0* a1){
  11. T0* R=NULL;
  12. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  13. R=(T0*)C;
  14. }
  15. else {
  16. {T529*n=malloc(sizeof(*n));
  17. *n=M529;
  18. r529make(n,(T0*)C,a1);
  19. R=(T0*)n;
  20. }
  21. }
  22. /*FI*/return R;
  23. }
  24. int r890to_integer(T890* C){
  25. int R=0;
  26. r890error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T890*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  27. return R;
  28. }
  29. int r890is_a(T890* C,T0* a1){
  30. int R=0;
  31. R=X291is_a(X291run_type((((T890*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
  32. /*IF*/if (!(R)) {
  33. r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T890*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/);
  34. r890error(X662start_position(a1),((T0*)ms4_662));
  35. }
  36. /*FI*/return R;
  37. }
  38. /*No:CALL_INFIX_GE.is_current*/
  39. void r890mapping_c_arg(T890* C,T0* a1){
  40. T0* _actual_type=NULL;
  41. _actual_type=X291run_type((((T890*)C))->_result_type/*20*/);
  42. /*IF*/if (X291is_reference(_actual_type)) {
  43. /*IF*/if (X291is_reference(a1)) {
  44. r890compile_to_c(C);
  45. }
  46. else {
  47. X291to_expanded(_actual_type);
  48. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  49. char b1='\50';
  50. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  51. }/*]*/
  52. /*]*/
  53. r890compile_to_c(C);
  54. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  55. char b1='\51';
  56. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  57. }/*]*/
  58. /*]*/
  59. }
  60. /*FI*/}
  61. else {
  62. /*IF*/if (X291is_reference(a1)) {
  63. X291to_reference(_actual_type);
  64. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  65. char b1='\50';
  66. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  67. }/*]*/
  68. /*]*/
  69. r890compile_to_c(C);
  70. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  71. char b1='\51';
  72. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  73. }/*]*/
  74. /*]*/
  75. }
  76. else {
  77. /*IF*/if (X291need_c_struct(a1)) {
  78. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  79. char b1='\46';
  80. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  81. }/*]*/
  82. /*]*/
  83. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  84. char b1='\50';
  85. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  86. }/*]*/
  87. /*]*/
  88. r890compile_to_c(C);
  89. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  90. char b1='\51';
  91. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  92. }/*]*/
  93. /*]*/
  94. }
  95. else {
  96. r890compile_to_c(C);
  97. }
  98. /*FI*/}
  99. /*FI*/}
  100. /*FI*/}
  101. /*No:CALL_INFIX_GE.static_value*/
  102. void r890make(T890* C,T0* a1,T0* a2,T0* a3){
  103. T0* _eal=NULL;
  104. /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
  105. r683add_position(a2);
  106. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
  107. r683fatal_error(((T683*)(oBC364eh)),b1);
  108. }/*]*/
  109. }
  110. /*FI*/{T454*n=malloc(sizeof(*n));
  111. *n=M454;
  112. r454make(n,r890operator(),a2);
  113. C->_feature_name=(T0*)n;
  114. }
  115. {T431*n=malloc(sizeof(*n));
  116. *n=M431;
  117. /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
  118. /*]*/
  119. _eal=(T0*)n;
  120. }
  121. r890make_call_1(C,a1,(((T890*)C))->_feature_name/*28*/,_eal);
  122. }
  123. void r890mapping_c_target(T890* C,T0* a1){
  124. T0* _actual_type=NULL;
  125. int _flag=0;
  126. _flag=r324call_invariant_start(a1);
  127. _actual_type=X291run_type((((T890*)C))->_result_type/*20*/);
  128. /*IF*/if (X291is_reference(_actual_type)) {
  129. /*IF*/if (X291is_reference(a1)) {
  130. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  131. char b1='\50';
  132. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  133. }/*]*/
  134. /*]*/
  135. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  136. char b1='\50';
  137. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  138. }/*]*/
  139. /*]*/
  140. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  141. char b1='T';
  142. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  143. }/*]*/
  144. /*]*/
  145. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X291id(a1));
  146. /*]*/
  147. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  148. char b1='\52';
  149. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  150. }/*]*/
  151. /*]*/
  152. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  153. char b1='\51';
  154. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  155. }/*]*/
  156. /*]*/
  157. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  158. char b1='\50';
  159. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  160. }/*]*/
  161. /*]*/
  162. r890compile_to_c(C);
  163. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  164. char b1='\51';
  165. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  166. }/*]*/
  167. /*]*/
  168. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  169. char b1='\51';
  170. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  171. }/*]*/
  172. /*]*/
  173. }
  174. else {
  175. X291to_expanded(_actual_type);
  176. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  177. char b1='\50';
  178. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  179. }/*]*/
  180. /*]*/
  181. r890compile_to_c(C);
  182. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  183. char b1='\51';
  184. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  185. }/*]*/
  186. /*]*/
  187. }
  188. /*FI*/}
  189. else {
  190. /*IF*/if (X291is_reference(a1)) {
  191. X291to_reference(_actual_type);
  192. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  193. char b1='\50';
  194. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  195. }/*]*/
  196. /*]*/
  197. r890compile_to_c(C);
  198. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  199. char b1='\51';
  200. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  201. }/*]*/
  202. /*]*/
  203. }
  204. else {
  205. /*IF*/if (X291need_c_struct(a1)) {
  206. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  207. char b1='\46';
  208. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  209. }/*]*/
  210. /*]*/
  211. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  212. char b1='\50';
  213. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  214. }/*]*/
  215. /*]*/
  216. r890compile_to_c(C);
  217. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  218. char b1='\51';
  219. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  220. }/*]*/
  221. /*]*/
  222. }
  223. else {
  224. r890compile_to_c(C);
  225. }
  226. /*FI*/}
  227. /*FI*/}
  228. /*FI*//*IF*/if (_flag) {
  229. /*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T544* C1=((T544*)(oBC324out_c));
  230. char b1='\51';
  231. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  232. }/*]*/
  233. /*]*/
  234. }
  235. /*FI*/}
  236. /*No:CALL_INFIX_GE.nb_errors*/
  237. /*No:CALL_INFIX_GE.feature_name*/
  238. /*No:CALL_INFIX_GE.fz_iinaiv*/
  239. /*No:CALL_INFIX_GE.arg_count*/
  240. /*No:CALL_INFIX_GE.dca_inline_argument*/
  241. /*No:CALL_INFIX_GE.run_feature*/
  242. /*No:CALL_INFIX_GE.call_proc_call_c2c*/
  243. /*No:CALL_INFIX_GE.start_position*/
  244. /*No:CALL_INFIX_GE.target*/
  245. void r890compile_to_c(T890* C){
  246. /*IF*/if ((r590boost(((T590*)(oBC364run_control))))&&(X291is_character(X291run_type(X662result_type((((T890*)C))->_target/*12*/))))) {
  247. r890c2c_cast_op(C,((T0*)ms132_470),((T0*)ms32_473));
  248. }
  249. else {
  250. /*[IRF3.6call_proc_call_c2c*/{T890* C1=C;
  251. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  252. }/*]*/
  253. }
  254. /*FI*/}
  255. /*No:CALL_INFIX_GE.c_simple*/
  256. /*No:CALL_INFIX_GE.us_ge*/
  257. T0* r890to_runnable(T890* C,T0* a1){
  258. T0* R=NULL;
  259. T0* _tla=NULL;
  260. T0* _a=NULL;
  261. /*IF*/if (((((T890*)C))->_current_type/*8*/)==((void*)(NULL))) {
  262. r890to_runnable_0(C,a1);
  263. _a=X431to_runnable((((T890*)C))->_arguments/*24*/,a1);
  264. /*IF*/if ((_a)==((void*)(NULL))) {
  265. r890error(X662start_position(r890arg1(C)),((T0*)ms55_470));
  266. }
  267. else {
  268. C->_arguments=_a;
  269. }
  270. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  271. X431match_with((((T890*)C))->_arguments/*24*/,(((T890*)C))->_run_feature/*16*/);
  272. }
  273. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  274. _tla=(((T890*)C))->_result_type/*20*/;
  275. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  276. case 239: 
  277. break;
  278. default:
  279. _tla=NULL;
  280. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  281. C->_result_type=X291run_type(X662result_type(r890arg1(C)));
  282. }
  283. /*FI*/}
  284. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  285. R=(T0*)C;
  286. }
  287. /*FI*/}
  288. else {
  289. R=r890twin(C);
  290. /*[IRF3.3set_current_type*/((((T890*)(((T890*)R))))->_current_type)=(NULL);
  291. /*]*/
  292. R=r890to_runnable(((T890*)R),a1);
  293. }
  294. /*FI*/return R;
  295. }
  296. /*No:CALL_INFIX_GE.result_type*/
  297. /*No:CALL_INFIX_GE.is_result*/
  298. T0* r890twin(T890* C){
  299. T0* R=NULL;
  300. R=malloc(sizeof(*C));
  301. *((T890*)R)=*C;
  302. return R;
  303. }
  304. /*No:CALL_INFIX_GE.set_current_type*/
  305. T0* r890operator(void){
  306. T0* R=NULL;
  307. R=((T0*)ms32_473);
  308. return R;
  309. }
  310. int r890is_static(T890* C){
  311. int R=0;
  312. /*IF*/if (X291is_integer(X662result_type((((T890*)C))->_target/*12*/))) {
  313. /*IF*/if ((X662is_static((((T890*)C))->_target/*12*/))&&(X662is_static(r890arg1(C)))) {
  314. R=1;
  315. /*IF*/if ((X662static_value((((T890*)C))->_target/*12*/))>=(X662static_value(r890arg1(C)))) {
  316. C->_static_value_mem=1;
  317. }
  318. else {
  319. C->_static_value_mem=0;
  320. }
  321. /*FI*/}
  322. /*FI*/}
  323. /*FI*/return R;
  324. }
  325. /*No:CALL_INFIX_GE.fz_07*/
  326. /*No:CALL_INFIX_GE.fz_unsigned*/
  327. /*No:CALL_INFIX_GE.can_be_dropped*/
  328. /*No:CALL_INFIX_GE.current_type*/
  329. void r890compile_to_c_old(T890* C){
  330. X662compile_to_c_old((((T890*)C))->_target/*12*/);
  331. /*IF*/{/*AT*/X431compile_to_c_old((((T890*)C))->_arguments/*24*/);
  332. }
  333. /*FI*/}
  334. void r890c2c_cast_op(T890* C,T0* a1,T0* a2){
  335. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  336. char b1='\50';
  337. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  338. }/*]*/
  339. /*]*/
  340. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  341. char b1='\50';
  342. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  343. }/*]*/
  344. /*]*/
  345. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  346. char b1='\50';
  347. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  348. }/*]*/
  349. /*]*/
  350. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),a1);
  351. /*]*/
  352. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  353. char b1='\51';
  354. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  355. }/*]*/
  356. /*]*/
  357. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  358. char b1='\50';
  359. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  360. }/*]*/
  361. /*]*/
  362. X662compile_to_c((((T890*)C))->_target/*12*/);
  363. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  364. char b1='\51';
  365. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  366. }/*]*/
  367. /*]*/
  368. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  369. char b1='\51';
  370. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  371. }/*]*/
  372. /*]*/
  373. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),a2);
  374. /*]*/
  375. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  376. char b1='\50';
  377. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  378. }/*]*/
  379. /*]*/
  380. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  381. char b1='\50';
  382. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  383. }/*]*/
  384. /*]*/
  385. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),a1);
  386. /*]*/
  387. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  388. char b1='\51';
  389. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  390. }/*]*/
  391. /*]*/
  392. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  393. char b1='\50';
  394. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  395. }/*]*/
  396. /*]*/
  397. X662compile_to_c(r890arg1(C));
  398. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  399. char b1='\51';
  400. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  401. }/*]*/
  402. /*]*/
  403. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  404. char b1='\51';
  405. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  406. }/*]*/
  407. /*]*/
  408. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  409. char b1='\51';
  410. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  411. }/*]*/
  412. /*]*/
  413. }
  414. /*No:CALL_INFIX_GE.static_value_mem*/
  415. void r890make_call_1(T890* C,T0* a1,T0* a2,T0* a3){
  416. C->_target=a1;
  417. C->_feature_name=a2;
  418. C->_arguments=a3;
  419. }
  420. /*No:CALL_INFIX_GE.is_manifest_string*/
  421. /*No:CALL_INFIX_GE.is_void*/
  422. void r890to_runnable_0(T890* C,T0* a1){
  423. C->_current_type=a1;
  424. r890cpc_to_runnable(C,a1);
  425. C->_result_type=/*X496*/((T0*)(((T832*)((T832*)((((T890*)C))->_run_feature/*16*/))))->_result_type/*24*/);
  426. /*IF*/if (((((T890*)C))->_result_type/*20*/)==((void*)(NULL))) {
  427. r683add_position(X496start_position((((T890*)C))->_run_feature/*16*/));
  428. r890error((((T454*)((T454*)((((T890*)C))->_feature_name/*28*/))))->_start_position/*8*/,((T0*)ms1_295));
  429. }
  430.  else if (X291is_like_current((((T890*)C))->_result_type/*20*/)) {
  431. C->_result_type=X662result_type((((T890*)C))->_target/*12*/);
  432. }
  433. /*FI*/}
  434. /*No:CALL_INFIX_GE.is_pre_computable*/
  435. void r890cpc_to_runnable(T890* C,T0* a1){
  436. T0* _rc=NULL;
  437. T0* _t=NULL;
  438. _t=X662to_runnable((((T890*)C))->_target/*12*/,a1);
  439. /*IF*/if ((_t)==((void*)(NULL))) {
  440. r683add_position(X662start_position((((T890*)C))->_target/*12*/));
  441. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  442. r683fatal_error(((T683*)(oBC364eh)),b1);
  443. }/*]*/
  444. }
  445. /*FI*/C->_target=_t;
  446. _rc=X291run_class(X662result_type((((T890*)C))->_target/*12*/));
  447. C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C);
  448. r576update((((T890*)C))->_target/*12*/,(((T890*)C))->_run_feature/*16*/);
  449. }
  450. int r890use_current(T890* C){
  451. int R=0;
  452. /*IF*/{/*AT*/R=X431use_current((((T890*)C))->_arguments/*24*/);
  453. }
  454. /*FI*//*IF*/if (R) {
  455. }
  456.  else if (X662is_current((((T890*)C))->_target/*12*/)) {
  457. R=X496use_current((((T890*)C))->_run_feature/*16*/);
  458. }
  459. else {
  460. R=X662use_current((((T890*)C))->_target/*12*/);
  461. }
  462. /*FI*/return R;
  463. }
  464. void r890finalize(T890* C){
  465. T0* _rf=NULL;
  466. T0* _rc=NULL;
  467. _rf=(((T890*)C))->_run_feature/*16*/;
  468. _rc=X291run_class(/*X496*/((T0*)(((T832*)((T832*)_rf)))->_current_type/*4*/));
  469. /*IF*/if (!((((T355*)((T355*)_rc)))->_at_run_time/*8*/)) {
  470. _rf=r355dynamic(((T355*)(r396first(((T396*)((((T355*)((T355*)_rc)))->_running/*12*/))))),_rf);
  471. C->_run_feature=_rf;
  472. }
  473. /*FI*/}
  474. void r890error(T0* a1,T0* a2){
  475. r683add_position(a1);
  476. r683error(((T683*)(oBC364eh)),a2);
  477. }
  478. /*No:CALL_INFIX_GE.isa_dca_inline_argument*/
  479. /*No:CALL_INFIX_GE.fatal_error*/
  480. /*No:CALL_INFIX_GE.fz_bad_argument*/
  481. T0* r890arg1(T890* C){
  482. T0* R=NULL;
  483. R=X431first((((T890*)C))->_arguments/*24*/);
  484. return R;
  485. }
  486. void r890afd_check(T890* C){
  487. T0* _running=NULL;
  488. T0* _rc=NULL;
  489. _rc=X291run_class(X662result_type((((T890*)C))->_target/*12*/));
  490. _running=(((T355*)((T355*)_rc)))->_running/*12*/;
  491. /*IF*/if ((_running)==((void*)(NULL))) {
  492. r683add_position(X662start_position((((T890*)C))->_target/*12*/));
  493. /*[IRF3.6append*/{T0* b1=((T0*)ms1_135);
  494. r7append(((T7*)(oBC683explanation)),b1);
  495. }/*]*/
  496. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/);
  497. r7append(((T7*)(oBC683explanation)),b1);
  498. }/*]*/
  499. /*[IRF3.6append*/{T0* b1=((T0*)ms141_470);
  500. r7append(((T7*)(oBC683explanation)),b1);
  501. }/*]*/
  502. r683print_as_warning(((T683*)(oBC364eh)));
  503. r355set_at_run_time(((T355*)_rc));
  504. }
  505.  else if ((r396count(((T396*)_running)))>(0)) {
  506. r576update((((T890*)C))->_target/*12*/,(((T890*)C))->_run_feature/*16*/);
  507. }
  508. /*FI*/X662afd_check((((T890*)C))->_target/*12*/);
  509. /*IF*/{/*AT*/X431afd_check((((T890*)C))->_arguments/*24*/);
  510. }
  511. /*FI*/}
  512. /*No:CALL_INFIX_TIMES.arguments*/
  513. T0* r414add_comment(T414* C,T0* a1){
  514. T0* R=NULL;
  515. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  516. R=(T0*)C;
  517. }
  518. else {
  519. {T529*n=malloc(sizeof(*n));
  520. *n=M529;
  521. r529make(n,(T0*)C,a1);
  522. R=(T0*)n;
  523. }
  524. }
  525. /*FI*/return R;
  526. }
  527. int r414to_integer(T414* C){
  528. int R=0;
  529. r414error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T414*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  530. return R;
  531. }
  532. int r414is_a(T414* C,T0* a1){
  533. int R=0;
  534. R=X291is_a(X291run_type((((T414*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
  535. /*IF*/if (!(R)) {
  536. r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T414*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/);
  537. r414error(X662start_position(a1),((T0*)ms4_662));
  538. }
  539. /*FI*/return R;
  540. }
  541. /*No:CALL_INFIX_TIMES.is_current*/
  542. void r414mapping_c_arg(T414* C,T0* a1){
  543. T0* _actual_type=NULL;
  544. _actual_type=X291run_type((((T414*)C))->_result_type/*20*/);
  545. /*IF*/if (X291is_reference(_actual_type)) {
  546. /*IF*/if (X291is_reference(a1)) {
  547. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T414* C1=C;
  548. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  549. }/*]*/
  550. /*]*/
  551. }
  552. else {
  553. X291to_expanded(_actual_type);
  554. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  555. char b1='\50';
  556. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  557. }/*]*/
  558. /*]*/
  559. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T414* C1=C;
  560. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  561. }/*]*/
  562. /*]*/
  563. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  564. char b1='\51';
  565. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  566. }/*]*/
  567. /*]*/
  568. }
  569. /*FI*/}
  570. else {
  571. /*IF*/if (X291is_reference(a1)) {
  572. X291to_reference(_actual_type);
  573. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  574. char b1='\50';
  575. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  576. }/*]*/
  577. /*]*/
  578. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T414* C1=C;
  579. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  580. }/*]*/
  581. /*]*/
  582. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  583. char b1='\51';
  584. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  585. }/*]*/
  586. /*]*/
  587. }
  588. else {
  589. /*IF*/if (X291need_c_struct(a1)) {
  590. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  591. char b1='\46';
  592. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  593. }/*]*/
  594. /*]*/
  595. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  596. char b1='\50';
  597. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  598. }/*]*/
  599. /*]*/
  600. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T414* C1=C;
  601. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  602. }/*]*/
  603. /*]*/
  604. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  605. char b1='\51';
  606. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  607. }/*]*/
  608. /*]*/
  609. }
  610. else {
  611. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T414* C1=C;
  612. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  613. }/*]*/
  614. /*]*/
  615. }
  616. /*FI*/}
  617. /*FI*/}
  618. /*FI*/}
  619. /*No:CALL_INFIX_TIMES.static_value*/
  620. void r414make(T414* C,T0* a1,T0* a2,T0* a3){
  621. T0* _eal=NULL;
  622. /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
  623. r683add_position(a2);
  624. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
  625. r683fatal_error(((T683*)(oBC364eh)),b1);
  626. }/*]*/
  627. }
  628. /*FI*/{T454*n=malloc(sizeof(*n));
  629. *n=M454;
  630. r454make(n,r414operator(),a2);
  631. C->_feature_name=(T0*)n;
  632. }
  633. {T431*n=malloc(sizeof(*n));
  634. *n=M431;
  635. /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
  636. /*]*/
  637. _eal=(T0*)n;
  638. }
  639. r414make_call_1(C,a1,(((T414*)C))->_feature_name/*28*/,_eal);
  640. }
  641. void r414mapping_c_target(T414* C,T0* a1){
  642. T0* _actual_type=NULL;
  643. int _flag=0;
  644. _flag=r324call_invariant_start(a1);
  645. _actual_type=X291run_type((((T414*)C))->_result_type/*20*/);
  646. /*IF*/if (X291is_reference(_actual_type)) {
  647. /*IF*/if (X291is_reference(a1)) {
  648. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  649. char b1='\50';
  650. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  651. }/*]*/
  652. /*]*/
  653. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  654. char b1='\50';
  655. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  656. }/*]*/
  657. /*]*/
  658. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  659. char b1='T';
  660. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  661. }/*]*/
  662. /*]*/
  663. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X291id(a1));
  664. /*]*/
  665. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  666. char b1='\52';
  667. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  668. }/*]*/
  669. /*]*/
  670. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  671. char b1='\51';
  672. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  673. }/*]*/
  674. /*]*/
  675. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  676. char b1='\50';
  677. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  678. }/*]*/
  679. /*]*/
  680. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T414* C1=C;
  681. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  682. }/*]*/
  683. /*]*/
  684. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  685. char b1='\51';
  686. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  687. }/*]*/
  688. /*]*/
  689. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  690. char b1='\51';
  691. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  692. }/*]*/
  693. /*]*/
  694. }
  695. else {
  696. X291to_expanded(_actual_type);
  697. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  698. char b1='\50';
  699. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  700. }/*]*/
  701. /*]*/
  702. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T414* C1=C;
  703. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  704. }/*]*/
  705. /*]*/
  706. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  707. char b1='\51';
  708. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  709. }/*]*/
  710. /*]*/
  711. }
  712. /*FI*/}
  713. else {
  714. /*IF*/if (X291is_reference(a1)) {
  715. X291to_reference(_actual_type);
  716. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  717. char b1='\50';
  718. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  719. }/*]*/
  720. /*]*/
  721. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T414* C1=C;
  722. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  723. }/*]*/
  724. /*]*/
  725. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  726. char b1='\51';
  727. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  728. }/*]*/
  729. /*]*/
  730. }
  731. else {
  732. /*IF*/if (X291need_c_struct(a1)) {
  733. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  734. char b1='\46';
  735. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  736. }/*]*/
  737. /*]*/
  738. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  739. char b1='\50';
  740. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  741. }/*]*/
  742. /*]*/
  743. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T414* C1=C;
  744. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  745. }/*]*/
  746. /*]*/
  747. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  748. char b1='\51';
  749. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  750. }/*]*/
  751. /*]*/
  752. }
  753. else {
  754. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T414* C1=C;
  755. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  756. }/*]*/
  757. /*]*/
  758. }
  759. /*FI*/}
  760. /*FI*/}
  761. /*FI*//*IF*/if (_flag) {
  762. /*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T544* C1=((T544*)(oBC324out_c));
  763. char b1='\51';
  764. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  765. }/*]*/
  766. /*]*/
  767. }
  768. /*FI*/}
  769. /*No:CALL_INFIX_TIMES.nb_errors*/
  770. /*No:CALL_INFIX_TIMES.feature_name*/
  771. /*No:CALL_INFIX_TIMES.fz_iinaiv*/
  772. /*No:CALL_INFIX_TIMES.arg_count*/
  773. /*No:CALL_INFIX_TIMES.dca_inline_argument*/
  774. /*No:CALL_INFIX_TIMES.run_feature*/
  775. /*No:CALL_INFIX_TIMES.call_proc_call_c2c*/
  776. /*No:CALL_INFIX_TIMES.start_position*/
  777. /*No:CALL_INFIX_TIMES.target*/
  778. /*No:CALL_INFIX_TIMES.compile_to_c*/
  779. /*No:CALL_INFIX_TIMES.c_simple*/
  780. T0* r414to_runnable(T414* C,T0* a1){
  781. T0* R=NULL;
  782. T0* _tla=NULL;
  783. T0* _a=NULL;
  784. /*IF*/if (((((T414*)C))->_current_type/*8*/)==((void*)(NULL))) {
  785. r414to_runnable_0(C,a1);
  786. _a=X431to_runnable((((T414*)C))->_arguments/*24*/,a1);
  787. /*IF*/if ((_a)==((void*)(NULL))) {
  788. r414error(X662start_position(r414arg1(C)),((T0*)ms55_470));
  789. }
  790. else {
  791. C->_arguments=_a;
  792. }
  793. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  794. X431match_with((((T414*)C))->_arguments/*24*/,(((T414*)C))->_run_feature/*16*/);
  795. }
  796. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  797. _tla=(((T414*)C))->_result_type/*20*/;
  798. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  799. case 239: 
  800. break;
  801. default:
  802. _tla=NULL;
  803. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  804. C->_result_type=X291run_type(X662result_type(r414arg1(C)));
  805. }
  806. /*FI*/}
  807. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  808. R=(T0*)C;
  809. }
  810. /*FI*/}
  811. else {
  812. R=r414twin(C);
  813. /*[IRF3.3set_current_type*/((((T414*)(((T414*)R))))->_current_type)=(NULL);
  814. /*]*/
  815. R=r414to_runnable(((T414*)R),a1);
  816. }
  817. /*FI*/return R;
  818. }
  819. /*No:CALL_INFIX_TIMES.result_type*/
  820. /*No:CALL_INFIX_TIMES.is_result*/
  821. T0* r414twin(T414* C){
  822. T0* R=NULL;
  823. R=malloc(sizeof(*C));
  824. *((T414*)R)=*C;
  825. return R;
  826. }
  827. /*No:CALL_INFIX_TIMES.set_current_type*/
  828. T0* r414operator(void){
  829. T0* R=NULL;
  830. R=((T0*)ms38_473);
  831. return R;
  832. }
  833. int r414is_static(T414* C){
  834. int R=0;
  835. /*IF*/if (X291is_integer((((T414*)C))->_result_type/*20*/)) {
  836. /*IF*/if ((X662is_static((((T414*)C))->_target/*12*/))&&(X662is_static(r414arg1(C)))) {
  837. R=1;
  838. C->_static_value_mem=(X662static_value((((T414*)C))->_target/*12*/))*(X662static_value(r414arg1(C)));
  839. }
  840. /*FI*/}
  841. /*FI*/return R;
  842. }
  843. /*No:CALL_INFIX_TIMES.fz_07*/
  844. /*No:CALL_INFIX_TIMES.can_be_dropped*/
  845. /*No:CALL_INFIX_TIMES.current_type*/
  846. void r414compile_to_c_old(T414* C){
  847. X662compile_to_c_old((((T414*)C))->_target/*12*/);
  848. /*IF*/{/*AT*/X431compile_to_c_old((((T414*)C))->_arguments/*24*/);
  849. }
  850. /*FI*/}
  851. /*No:CALL_INFIX_TIMES.static_value_mem*/
  852. void r414make_call_1(T414* C,T0* a1,T0* a2,T0* a3){
  853. C->_target=a1;
  854. C->_feature_name=a2;
  855. C->_arguments=a3;
  856. }
  857. /*No:CALL_INFIX_TIMES.is_manifest_string*/
  858. /*No:CALL_INFIX_TIMES.is_void*/
  859. void r414to_runnable_0(T414* C,T0* a1){
  860. C->_current_type=a1;
  861. r414cpc_to_runnable(C,a1);
  862. C->_result_type=/*X496*/((T0*)(((T832*)((T832*)((((T414*)C))->_run_feature/*16*/))))->_result_type/*24*/);
  863. /*IF*/if (((((T414*)C))->_result_type/*20*/)==((void*)(NULL))) {
  864. r683add_position(X496start_position((((T414*)C))->_run_feature/*16*/));
  865. r414error((((T454*)((T454*)((((T414*)C))->_feature_name/*28*/))))->_start_position/*8*/,((T0*)ms1_295));
  866. }
  867.  else if (X291is_like_current((((T414*)C))->_result_type/*20*/)) {
  868. C->_result_type=X662result_type((((T414*)C))->_target/*12*/);
  869. }
  870. /*FI*/}
  871. /*No:CALL_INFIX_TIMES.is_pre_computable*/
  872. void r414cpc_to_runnable(T414* C,T0* a1){
  873. T0* _rc=NULL;
  874. T0* _t=NULL;
  875. _t=X662to_runnable((((T414*)C))->_target/*12*/,a1);
  876. /*IF*/if ((_t)==((void*)(NULL))) {
  877. r683add_position(X662start_position((((T414*)C))->_target/*12*/));
  878. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  879. r683fatal_error(((T683*)(oBC364eh)),b1);
  880. }/*]*/
  881. }
  882. /*FI*/C->_target=_t;
  883. _rc=X291run_class(X662result_type((((T414*)C))->_target/*12*/));
  884. C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C);
  885. r576update((((T414*)C))->_target/*12*/,(((T414*)C))->_run_feature/*16*/);
  886. }
  887. int r414use_current(T414* C){
  888. int R=0;
  889. /*IF*/{/*AT*/R=X431use_current((((T414*)C))->_arguments/*24*/);
  890. }
  891. /*FI*//*IF*/if (R) {
  892. }
  893.  else if (X662is_current((((T414*)C))->_target/*12*/)) {
  894. R=X496use_current((((T414*)C))->_run_feature/*16*/);
  895. }
  896. else {
  897. R=X662use_current((((T414*)C))->_target/*12*/);
  898. }
  899. /*FI*/return R;
  900. }
  901. void r414finalize(T414* C){
  902. T0* _rf=NULL;
  903. T0* _rc=NULL;
  904. _rf=(((T414*)C))->_run_feature/*16*/;
  905. _rc=X291run_class(/*X496*/((T0*)(((T832*)((T832*)_rf)))->_current_type/*4*/));
  906. /*IF*/if (!((((T355*)((T355*)_rc)))->_at_run_time/*8*/)) {
  907. _rf=r355dynamic(((T355*)(r396first(((T396*)((((T355*)((T355*)_rc)))->_running/*12*/))))),_rf);
  908. C->_run_feature=_rf;
  909. }
  910. /*FI*/}
  911. /*No:CALL_INFIX_TIMES.us_muls*/
  912. void r414error(T0* a1,T0* a2){
  913. r683add_position(a1);
  914. r683error(((T683*)(oBC364eh)),a2);
  915. }
  916. /*No:CALL_INFIX_TIMES.isa_dca_inline_argument*/
  917. /*No:CALL_INFIX_TIMES.fatal_error*/
  918. /*No:CALL_INFIX_TIMES.fz_bad_argument*/
  919. T0* r414arg1(T414* C){
  920. T0* R=NULL;
  921. R=X431first((((T414*)C))->_arguments/*24*/);
  922. return R;
  923. }
  924. void r414afd_check(T414* C){
  925. T0* _running=NULL;
  926. T0* _rc=NULL;
  927. _rc=X291run_class(X662result_type((((T414*)C))->_target/*12*/));
  928. _running=(((T355*)((T355*)_rc)))->_running/*12*/;
  929. /*IF*/if ((_running)==((void*)(NULL))) {
  930. r683add_position(X662start_position((((T414*)C))->_target/*12*/));
  931. /*[IRF3.6append*/{T0* b1=((T0*)ms1_135);
  932. r7append(((T7*)(oBC683explanation)),b1);
  933. }/*]*/
  934. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/);
  935. r7append(((T7*)(oBC683explanation)),b1);
  936. }/*]*/
  937. /*[IRF3.6append*/{T0* b1=((T0*)ms141_470);
  938. r7append(((T7*)(oBC683explanation)),b1);
  939. }/*]*/
  940. r683print_as_warning(((T683*)(oBC364eh)));
  941. r355set_at_run_time(((T355*)_rc));
  942. }
  943.  else if ((r396count(((T396*)_running)))>(0)) {
  944. r576update((((T414*)C))->_target/*12*/,(((T414*)C))->_run_feature/*16*/);
  945. }
  946. /*FI*/X662afd_check((((T414*)C))->_target/*12*/);
  947. /*IF*/{/*AT*/X431afd_check((((T414*)C))->_arguments/*24*/);
  948. }
  949. /*FI*/}
  950. T0*oBC817tmp_file_read=NULL;
  951. /*No:STD_OUTPUT.make*/
  952. void r830append_file(T830* C,T0* a1){
  953. char _c=0;
  954. r675connect_to(((T675*)(oBC817tmp_file_read)),a1);
  955. r675read_character(((T675*)(oBC817tmp_file_read)));
  956. while (!(r675end_of_input(((T675*)(oBC817tmp_file_read))))) {
  957. _c=/*(IRF4.6last_character*/((char)((((T675*)((T675*)(oBC817tmp_file_read))))->_memory/*12*/))/*)*/;
  958. /*[IRF3.6put_character*/{T830* C1=C;
  959. char b1=_c;
  960. putc(b1,((FILE*)(stdout)));
  961. }/*]*/
  962. r675read_character(((T675*)(oBC817tmp_file_read)));
  963. }
  964. r675disconnect(((T675*)(oBC817tmp_file_read)));
  965. }
  966. /*No:STD_OUTPUT.flush*/
  967. void r830put_double_format(T830* C,double a1,int a2){
  968. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC817tmp_string)))))->_count)=(0);
  969. /*]*/
  970. r5append_in_format(a1,oBC817tmp_string,a2);
  971. r830put_string(C,oBC817tmp_string);
  972. }
  973. void r830put_string(T830* C,T0* a1){
  974. int _i=0;
  975. _i=1;
  976. while (!((_i)>((((T7*)((T7*)a1)))->_count/*4*/))) {
  977. /*[IRF3.6put_character*/{T830* C1=C;
  978. char b1=/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(_i)-(1)]/*)*/;
  979. putc(b1,((FILE*)(stdout)));
  980. }/*]*/
  981. _i=(_i)+(1);
  982. }
  983. }
  984. void r830put_integer(T830* C,int a1){
  985. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC817tmp_string)))))->_count)=(0);
  986. /*]*/
  987. r2append_in(a1,oBC817tmp_string);
  988. r830put_string(C,oBC817tmp_string);
  989. }
  990. /*No:STD_OUTPUT.put_character*/
  991. /*No:TYPE_NATIVE_ARRAY.us_put*/
  992. int r933id(T933* C){
  993. int R=0;
  994. R=(((T355*)((T355*)(r933run_class(C)))))->_id/*4*/;
  995. return R;
  996. }
  997. /*No:TYPE_NATIVE_ARRAY.has_creation*/
  998. /*No:TYPE_NATIVE_ARRAY.is_anchored*/
  999. /*No:TYPE_NATIVE_ARRAY.is_array*/
  1000. /*No:TYPE_NATIVE_ARRAY.fz_typedef*/
  1001. int r933is_a(T933* C,T0* a1){
  1002. int R=0;
  1003. R=(r933run_time_mark(C))==((void*)(X291run_time_mark(a1)));
  1004. /*IF*/if (!(R)) {
  1005. r683add_type((T0*)C,((T0*)ms71_470));
  1006. r683add_type(a1,((T0*)ms67_470));
  1007. }
  1008. /*FI*/return R;
  1009. }
  1010. T0*oBC933tmp_str=NULL;
  1011. /*No:TYPE_NATIVE_ARRAY.c_initialize_in*/
  1012. void r933c_type_for_argument_in(T933* C,T0* a1){
  1013. r7extend(((T7*)a1),'T');
  1014. r2append_in(r933id(C),a1);
  1015. }
  1016. void r933gc_call_new_in(T933* C,T0* a1){
  1017. r7append(((T7*)a1),((T0*)ms115_470));
  1018. r2append_in(r933id(C),a1);
  1019. r7extend(((T7*)a1),'\50');
  1020. r7extend(((T7*)a1),'\51');
  1021. }
  1022. int r933space_for_pointer(void){
  1023. int R=0;
  1024. void* _p=0;
  1025. R=sizeof(T8);
  1026. return R;
  1027. }
  1028. /*No:TYPE_NATIVE_ARRAY.is_pointer*/
  1029. /*No:TYPE_NATIVE_ARRAY.run_type*/
  1030. /*No:TYPE_NATIVE_ARRAY.is_dummy_expanded*/
  1031. /*No:TYPE_NATIVE_ARRAY.is_string*/
  1032. /*No:TYPE_NATIVE_ARRAY.space_for_variable*/
  1033. /*No:TYPE_NATIVE_ARRAY.is_like_feature*/
  1034. /*No:TYPE_NATIVE_ARRAY.is_like_current*/
  1035. void r933make(T933* C,T0* a1,T0* a2){
  1036. {T451*n=malloc(sizeof(*n));
  1037. *n=M451;
  1038. r451make(n,((T0*)ms18_473),a1);
  1039. C->_base_class_name=(T0*)n;
  1040. }
  1041. C->_generic_list=se_ma701(1,a2);
  1042. r7copy(((T7*)(oBC933tmp_str)),((T0*)ms18_473));
  1043. r7extend(((T7*)(oBC933tmp_str)),'\133');
  1044. r7append(((T7*)(oBC933tmp_str)),X291written_mark(a2));
  1045. r7extend(((T7*)(oBC933tmp_str)),'\135');
  1046. C->_written_mark=r902item(oBC933tmp_str);
  1047. }
  1048. /*No:TYPE_NATIVE_ARRAY.nb_errors*/
  1049. /*No:TYPE_NATIVE_ARRAY.us_item*/
  1050. T0* r933type_any(void){
  1051. if (fBC364type_any==0){
  1052. T0* R=NULL;
  1053. fBC364type_any=1;
  1054. {T669*n=malloc(sizeof(*n));
  1055. *n=M669;
  1056. r669make(n,NULL);
  1057. R=(T0*)n;
  1058. }
  1059. oBC364type_any=R;}
  1060. return oBC364type_any;}
  1061. void r933mapping_cast(T933* C){
  1062. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC291tmp_string)))))->_count)=(0);
  1063. /*]*/
  1064. r7extend(((T7*)(oBC291tmp_string)),'\50');
  1065. /*[IRF3.6c_type_for_target_in*/{T933* C1=C;
  1066. T0* b1=oBC291tmp_string;
  1067. r933c_type_for_argument_in(C1,b1);
  1068. }/*]*/
  1069. r7extend(((T7*)(oBC291tmp_string)),'\51');
  1070. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC291tmp_string);
  1071. /*]*/
  1072. }
  1073. /*No:TYPE_NATIVE_ARRAY.start_position*/
  1074. /*No:TYPE_NATIVE_ARRAY.c_type_for_target_in*/
  1075. /*No:TYPE_NATIVE_ARRAY.fz_printf*/
  1076. /*No:TYPE_NATIVE_ARRAY.gc_set_marked_in*/
  1077. /*No:TYPE_NATIVE_ARRAY.fz_gc_mark*/
  1078. /*No:TYPE_NATIVE_ARRAY.fz_inako*/
  1079. /*No:TYPE_NATIVE_ARRAY.gc_initialize*/
  1080. /*No:TYPE_NATIVE_ARRAY.fz_00*/
  1081. /*No:TYPE_NATIVE_ARRAY.is_character*/
  1082. /*No:TYPE_NATIVE_ARRAY.is_user_expanded*/
  1083. void r933c_type_in(T933* C,T0* a1){
  1084. T0* _elt_type=NULL;
  1085. _elt_type=r701item(((T701*)((((T933*)C))->_generic_list/*8*/)),1);
  1086. r7extend(((T7*)a1),'T');
  1087. /*IF*/if (X291is_reference(_elt_type)) {
  1088. r7extend(((T7*)a1),'0');
  1089. r7extend(((T7*)a1),'\52');
  1090. }
  1091. else {
  1092. r2append_in(X291id(_elt_type),a1);
  1093. }
  1094. /*FI*/r7extend(((T7*)a1),'\52');
  1095. }
  1096. /*No:TYPE_NATIVE_ARRAY.written_mark*/
  1097. T0* r933to_runnable(T933* C,T0* a1){
  1098. T0* R=NULL;
  1099. T0* _rc=NULL;
  1100. T0* _rt=NULL;
  1101. T0* _elt2=NULL;
  1102. T0* _elt1=NULL;
  1103. /*IF*/if (((((T933*)C))->_run_type/*16*/)==((void*)(C))) {
  1104. R=(T0*)C;
  1105. }
  1106. else {
  1107. _elt1=r701item(((T701*)((((T933*)C))->_generic_list/*8*/)),1);
  1108. _elt2=X291to_runnable(_elt1,a1);
  1109. /*IF*/if (((_elt2)==((void*)(NULL)))||(!(X291is_run_type(_elt2)))) {
  1110. /*IF*/if ((_elt2)!=((void*)(NULL))) {
  1111. r683add_position(X291start_position(_elt2));
  1112. }
  1113. /*FI*/r933error(X291start_position(_elt1),((T0*)ms59_470));
  1114. }
  1115. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1116. _elt2=X291run_type(_elt2);
  1117. /*IF*/if (((((T933*)C))->_run_type/*16*/)==((void*)(NULL))) {
  1118. R=(T0*)C;
  1119. /*IF*/if ((_elt2)==((void*)(_elt1))) {
  1120. C->_run_type=(T0*)C;
  1121. r933load_basic_features(C);
  1122. }
  1123. else {
  1124. {T933*n=malloc(sizeof(*n));
  1125. *n=M933;
  1126. r933make_runnable(n,/*(IRF4.6start_position*/(((T451*)((T451*)((((T933*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,_elt2);
  1127. C->_run_type=(T0*)n;
  1128. }
  1129. r933load_basic_features(((T933*)((((T933*)C))->_run_type/*16*/)));
  1130. }
  1131. /*FI*/}
  1132. else {
  1133. R=r933twin(C);
  1134. {T933*n=malloc(sizeof(*n));
  1135. *n=M933;
  1136. r933make_runnable(n,/*(IRF4.6start_position*/(((T451*)((T451*)((((T933*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,_elt2);
  1137. _rt=(T0*)n;
  1138. }
  1139. /*[IRF3.3set_run_type*/((((T933*)(((T933*)R))))->_run_type)=(_rt);
  1140. /*]*/
  1141. r933load_basic_features(((T933*)_rt));
  1142. }
  1143. /*FI*/}
  1144. /*FI*/}
  1145. /*FI*/_rc=r933run_class(((T933*)R));
  1146. r355set_at_run_time(((T355*)_rc));
  1147. return R;
  1148. }
  1149. int r933is_run_type(T933* C){
  1150. int R=0;
  1151. T0* _t=NULL;
  1152. /*IF*/if (((((T933*)C))->_run_type/*16*/)!=((void*)(NULL))) {
  1153. R=1;
  1154. }
  1155. else {
  1156. _t=r701item(((T701*)((((T933*)C))->_generic_list/*8*/)),1);
  1157. /*IF*/if ((X291is_run_type(_t))&&((X291run_type(_t))==((void*)(_t)))) {
  1158. C->_run_type=(T0*)C;
  1159. r933load_basic_features(C);
  1160. R=1;
  1161. }
  1162. /*FI*/}
  1163. /*FI*/return R;
  1164. }
  1165. /*No:TYPE_NATIVE_ARRAY.fz_10*/
  1166. void r933c_type_for_external_in(T933* C,T0* a1){
  1167. /*IF*//*AF*//*AE*/
  1168. /*[IRF3.6c_type_for_result_in*/{T933* C1=C;
  1169. T0* b1=a1;
  1170. r933c_type_for_argument_in(C1,b1);
  1171. }/*]*/
  1172. /*FI*/}
  1173. /*No:TYPE_NATIVE_ARRAY.is_formal_generic*/
  1174. /*No:TYPE_NATIVE_ARRAY.generic_list*/
  1175. /*No:TYPE_NATIVE_ARRAY.fz_null*/
  1176. void r933demangling_in(T933* C,T0* a1){
  1177. /*IF*//*AF*//*AE*/
  1178. r7extend(((T7*)a1),'E');
  1179. /*FI*/r7extend(((T7*)a1),'\40');
  1180. r7append(((T7*)a1),r933run_time_mark(C));
  1181. }
  1182. /*No:TYPE_NATIVE_ARRAY.is_real*/
  1183. T0* r933twin(T933* C){
  1184. T0* R=NULL;
  1185. R=malloc(sizeof(*C));
  1186. *((T933*)R)=*C;
  1187. return R;
  1188. }
  1189. void r933gc_info_nb_in(T933* C,T0* a1){
  1190. r7append(((T7*)a1),((T0*)ms59_291));
  1191. r2append_in(r933id(C),a1);
  1192. }
  1193. /*No:TYPE_NATIVE_ARRAY.fz_14*/
  1194. /*No:TYPE_NATIVE_ARRAY.is_bit*/
  1195. /*No:TYPE_NATIVE_ARRAY.fz_new*/
  1196. T0* r933smallest_ancestor(T933* C,T0* a1){
  1197. T0* R=NULL;
  1198. T0* _rto=NULL;
  1199. _rto=X291run_type(a1);
  1200. /*IF*/if (X291is_a(_rto,(((T933*)C))->_run_type/*16*/)) {
  1201. R=_rto;
  1202. }
  1203.  else if (r933is_a(((T933*)((((T933*)C))->_run_type/*16*/)),_rto)) {
  1204. R=(((T933*)C))->_run_type/*16*/;
  1205. }
  1206. else {
  1207. R=r933type_any();
  1208. }
  1209. /*FI*//*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
  1210. /*]*/
  1211. r38clear(((T38*)(oBC683positions)));
  1212. /*]*/
  1213. return R;
  1214. }
  1215. /*No:TYPE_NATIVE_ARRAY.set_run_type*/
  1216. /*No:TYPE_NATIVE_ARRAY.is_boolean*/
  1217. /*No:TYPE_NATIVE_ARRAY.is_double*/
  1218. T0* r933run_class(T933* C){
  1219. T0* R=NULL;
  1220. /*IF*/if (r933is_run_type(C)) {
  1221. R=r604run_class((((T933*)C))->_run_type/*16*/);
  1222. }
  1223. /*FI*/return R;
  1224. }
  1225. /*No:TYPE_NATIVE_ARRAY.c_initialize*/
  1226. T0* r933run_time_mark(T933* C){
  1227. T0* R=NULL;
  1228. /*IF*/if (r933is_run_type(C)) {
  1229. R=(((T933*)((T933*)((((T933*)C))->_run_type/*16*/))))->_written_mark/*12*/;
  1230. }
  1231. /*FI*/return R;
  1232. }
  1233. void r933cast_to_ref(T933* C){
  1234. r933cast_to_ref(((T933*)((((T933*)C))->_run_type/*16*/)));
  1235. }
  1236. void r933gc_mark_in(T933* C,T0* a1){
  1237. r7append(((T7*)a1),((T0*)ms107_470));
  1238. r2append_in(r933id(C),a1);
  1239. }
  1240. int r933is_a_in(T933* C,T0* a1,T0* a2){
  1241. int R=0;
  1242. T0* _ct=NULL;
  1243. T0* _t2=NULL;
  1244. T0* _t1=NULL;
  1245. /*IF*/if (((((T933*)C))->_written_mark/*12*/)==((void*)(X291written_mark(a1)))) {
  1246. R=1;
  1247. }
  1248. else {
  1249. _ct=(((T355*)((T355*)a2)))->_current_type/*0*/;
  1250. _t1=r933to_runnable(C,_ct);
  1251. _t2=X291to_runnable(a1,_ct);
  1252. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  1253. R=1;
  1254. }
  1255. else {
  1256. R=X291is_a(_t1,_t2);
  1257. }
  1258. /*FI*/}
  1259. /*FI*/return R;
  1260. }
  1261. T0* r933look_up_for(T933* C,T0* a1,T0* a2){
  1262. T0* R=NULL;
  1263. R=r605look_up_for(((T605*)(r933base_class(C))),a1,a2);
  1264. return R;
  1265. }
  1266. /*No:TYPE_NATIVE_ARRAY.c_header_pass1*/
  1267. /*No:TYPE_NATIVE_ARRAY.c_type_for_result_in*/
  1268. /*No:TYPE_NATIVE_ARRAY.fz_int*/
  1269. /*No:TYPE_NATIVE_ARRAY.expanded_initializer*/
  1270. /*No:TYPE_NATIVE_ARRAY.fz_void*/
  1271. /*No:TYPE_NATIVE_ARRAY.fz_dot*/
  1272. /*No:TYPE_NATIVE_ARRAY.is_generic*/
  1273. /*No:TYPE_NATIVE_ARRAY.fz_bga*/
  1274. /*No:TYPE_NATIVE_ARRAY.used_as_reference*/
  1275. void r933c_header_pass2(T933* C){
  1276. T0* _elt_type=NULL;
  1277. _elt_type=X291run_type(r701item(((T701*)((((T933*)C))->_generic_list/*8*/)),1));
  1278. r7copy(((T7*)(oBC291tmp_string)),((T0*)ms131_470));
  1279. r933c_type_in(C,oBC291tmp_string);
  1280. r7extend(((T7*)(oBC291tmp_string)),'T');
  1281. r2append_in(r933id(C),oBC291tmp_string);
  1282. r7append(((T7*)(oBC291tmp_string)),((T0*)ms134_470));
  1283. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC291tmp_string);
  1284. /*]*/
  1285. }
  1286. void r933gc_define1(T933* C){
  1287. int _rcid=0;
  1288. T0* _rc=NULL;
  1289. _rc=r933run_class(C);
  1290. _rcid=(((T355*)((T355*)_rc)))->_id/*4*/;
  1291. /*IF*/if ((((T548*)((T548*)(oBC364gc_handler))))->_info_flag/*4*/) {
  1292. r7copy(((T7*)(oBC291tmp_string)),((T0*)ms111_470));
  1293. r7extend(((T7*)(oBC291tmp_string)),'\40');
  1294. r933gc_info_nb_in(C,oBC291tmp_string);
  1295. r324put_extern2(((T324*)(oBC364cpp)),oBC291tmp_string,'0');
  1296. }
  1297. /*FI*/}
  1298. /*No:TYPE_NATIVE_ARRAY.need_c_struct*/
  1299. /*No:TYPE_NATIVE_ARRAY.is_reference*/
  1300. void r933gc_info_in(T933* C,T0* a1){
  1301. r7append(((T7*)a1),((T0*)ms119_470));
  1302. r7extend(((T7*)a1),'\50');
  1303. r7extend(((T7*)a1),'\42');
  1304. r7append(((T7*)a1),r933run_time_mark(C));
  1305. r7append(((T7*)a1),((T0*)ms144_470));
  1306. r933gc_info_nb_in(C,a1);
  1307. r7append(((T7*)a1),((T0*)ms148_470));
  1308. }
  1309. void r933error(T0* a1,T0* a2){
  1310. r683add_position(a1);
  1311. r683error(((T683*)(oBC364eh)),a2);
  1312. }
  1313. void r933load_basic_features(T933* C){
  1314. T0* _rc=NULL;
  1315. T0* _rf=NULL;
  1316. T0* _elt_type=NULL;
  1317. _rc=r933run_class(C);
  1318. r355set_at_run_time(((T355*)_rc));
  1319. _elt_type=r701item(((T701*)((((T933*)C))->_generic_list/*8*/)),1);
  1320. /*IF*/if (X291is_expanded(_elt_type)) {
  1321. r355set_at_run_time(((T355*)(X291run_class(_elt_type))));
  1322. }
  1323. /*FI*/_rf=r355get_feature_with(((T355*)_rc),((T0*)ms86_473));
  1324. _rf=r355get_feature_with(((T355*)_rc),((T0*)ms104_473));
  1325. /*IF*/if ((X291expanded_initializer(_elt_type))!=((void*)(NULL))) {
  1326. _rf=r355get_feature_with(((T355*)_rc),((T0*)ms57_473));
  1327. }
  1328. /*FI*/}
  1329. T0* r933base_class(T933* C){
  1330. T0* R=NULL;
  1331. T0* _bcn=NULL;
  1332. _bcn=(((T933*)C))->_base_class_name/*4*/;
  1333. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  1334. R=r451base_class(((T451*)_bcn));
  1335. }
  1336. else {
  1337. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  1338. r7append(((T7*)(oBC683explanation)),b1);
  1339. }/*]*/
  1340. r683add_type((T0*)C,((T0*)ms67_470));
  1341. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1342. }
  1343. /*FI*/return R;
  1344. }
  1345. /*No:TYPE_NATIVE_ARRAY.call_gc_sweep_in*/
  1346. void r933gc_define2(T933* C){
  1347. int _rcid=0;
  1348. T0* _elt_rc=NULL;
  1349. T0* _elt_type=NULL;
  1350. _elt_type=r701item(((T701*)((((T933*)C))->_generic_list/*8*/)),1);
  1351. _elt_rc=X291run_class(_elt_type);
  1352. _rcid=(((T355*)((T355*)(r933run_class(C)))))->_id/*4*/;
  1353. r7copy(((T7*)(oBC291header)),((T0*)ms133_470));
  1354. r7extend(((T7*)(oBC291header)),'\40');
  1355. r933gc_mark_in(C,oBC291header);
  1356. r7append(((T7*)(oBC291header)),((T0*)ms1_933));
  1357. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC291body)))))->_count)=(0);
  1358. /*]*/
  1359. /*[IRF3.6gc_if_unmarked_in*/{T0* b1=oBC291body;
  1360. r7append(((T7*)b1),((T0*)ms65_291));
  1361. }/*]*/
  1362. /*[IRF3.6gc_set_marked_in*/{T0* b1=oBC291body;
  1363. r7append(((T7*)b1),((T0*)ms62_291));
  1364. }/*]*/
  1365. /*IF*/if ((X291is_reference(_elt_type))||(r355gc_mark_to_follow(((T355*)_elt_rc)))) {
  1366. r7extend(((T7*)(oBC291body)),'\173');
  1367. r933c_type_in(C,oBC291body);
  1368. r7remove_last(((T7*)(oBC291body)),1);
  1369. r7extend(((T7*)(oBC291body)),'\40');
  1370. r7extend(((T7*)(oBC291body)),'o');
  1371. r7append(((T7*)(oBC291body)),((T0*)ms134_470));
  1372. r933c_type_in(C,oBC291body);
  1373. r7append(((T7*)(oBC291body)),((T0*)ms2_933));
  1374. r933c_type_in(C,oBC291body);
  1375. r7append(((T7*)(oBC291body)),((T0*)ms3_933));
  1376. r548native_array_mark(oBC291body,_elt_rc);
  1377. r7extend(((T7*)(oBC291body)),'\175');
  1378. r7extend(((T7*)(oBC291body)),'\175');
  1379. }
  1380. /*FI*/r7extend(((T7*)(oBC291body)),'\175');
  1381. r324put_c_function(((T324*)(oBC364cpp)),oBC291header,oBC291body);
  1382. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC291header)))))->_count)=(0);
  1383. /*]*/
  1384. r7extend(((T7*)(oBC291header)),'T');
  1385. r2append_in(_rcid,oBC291header);
  1386. r7extend(((T7*)(oBC291header)),'\40');
  1387. r7append(((T7*)(oBC291header)),((T0*)ms115_470));
  1388. r2append_in(_rcid,oBC291header);
  1389. r7extend(((T7*)(oBC291header)),'\50');
  1390. r7append(((T7*)(oBC291header)),((T0*)ms111_470));
  1391. r7extend(((T7*)(oBC291header)),'\40');
  1392. r7extend(((T7*)(oBC291header)),'n');
  1393. r7extend(((T7*)(oBC291header)),'\51');
  1394. r7copy(((T7*)(oBC291body)),((T0*)ms4_933));
  1395. /*IF*/if (X291is_reference(_elt_type)) {
  1396. r7extend(((T7*)(oBC291body)),'0');
  1397. r7extend(((T7*)(oBC291body)),'\52');
  1398. }
  1399. else {
  1400. r2append_in(X291id(_elt_type),oBC291body);
  1401. }
  1402. /*FI*/r7append(((T7*)(oBC291body)),((T0*)ms5_933));
  1403. /*IF*/if ((((T548*)((T548*)(oBC364gc_handler))))->_info_flag/*4*/) {
  1404. r933gc_info_nb_in(C,oBC291body);
  1405. r7append(((T7*)(oBC291body)),((T0*)ms6_933));
  1406. }
  1407. /*FI*/r7append(((T7*)(oBC291body)),((T0*)ms7_933));
  1408. r2append_in((2048)-(1),oBC291body);
  1409. r7append(((T7*)(oBC291body)),((T0*)ms8_933));
  1410. r7append(((T7*)(oBC291body)),((T0*)ms9_933));
  1411. r933gc_mark_in(C,oBC291body);
  1412. r7append(((T7*)(oBC291body)),((T0*)ms10_933));
  1413. r324put_c_function(((T324*)(oBC364cpp)),oBC291header,oBC291body);
  1414. }
  1415. /*No:TYPE_NATIVE_ARRAY.need_gc_mark_function*/
  1416. /*No:TYPE_NATIVE_ARRAY.is_any*/
  1417. /*No:TYPE_NATIVE_ARRAY.us_clear_all*/
  1418. /*No:TYPE_NATIVE_ARRAY.to_reference*/
  1419. /*No:TYPE_NATIVE_ARRAY.c_header_pass3*/
  1420. /*No:TYPE_NATIVE_ARRAY.base_class_name*/
  1421. /*No:TYPE_NATIVE_ARRAY.us_native_array*/
  1422. /*No:TYPE_NATIVE_ARRAY.is_expanded*/
  1423. /*No:TYPE_NATIVE_ARRAY.gc_if_unmarked_in*/
  1424. /*No:TYPE_NATIVE_ARRAY.is_basic_eiffel_expanded*/
  1425. /*No:TYPE_NATIVE_ARRAY.is_none*/
  1426. /*No:TYPE_NATIVE_ARRAY.to_expanded*/
  1427. /*No:TYPE_NATIVE_ARRAY.is_integer*/
  1428. void r933make_runnable(T933* C,T0* a1,T0* a2){
  1429. r933make(C,a1,a2);
  1430. C->_run_type=(T0*)C;
  1431. }
  1432. /*No:TYPE_NATIVE_ARRAY.c_header_pass4*/
  1433. int r904id(T904* C){
  1434. int R=0;
  1435. R=X291id((((T904*)C))->_current_type/*4*/);
  1436. return R;
  1437. }
  1438. /*No:RUN_FEATURE_9.arguments*/
  1439. /*No:RUN_FEATURE_9.ucs_true*/
  1440. /*No:RUN_FEATURE_9.c_define*/
  1441. /*No:RUN_FEATURE_9.actuals_clients*/
  1442. /*No:RUN_FEATURE_9.ucs_in_computation*/
  1443. void r904make(T904* C,T0* a1,T0* a2,T0* a3){
  1444. C->_current_type=a1;
  1445. C->_name=a2;
  1446. C->_base_feature=a3;
  1447. r199put(((T199*)((((T355*)((T355*)(r904run_class(C)))))->_feature_dictionary/*24*/)),(T0*)C,X776to_key(a2));
  1448. r604incr_magic_count(((T604*)(oBC364small_eiffel)));
  1449. C->_use_current_state=1005;
  1450. r604push(((T604*)(oBC364small_eiffel)),(T0*)C);
  1451. r904initialize(C);
  1452. r604pop(((T604*)(oBC364small_eiffel)));
  1453. }
  1454. /*No:RUN_FEATURE_9.name*/
  1455. void r904mapping_name(T904* C){
  1456. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1457. char b1='r';
  1458. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1459. }/*]*/
  1460. /*]*/
  1461. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),r904id(C));
  1462. /*]*/
  1463. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X776to_key((((T904*)C))->_name/*16*/));
  1464. /*]*/
  1465. }
  1466. int r904arg_count(T904* C){
  1467. int R=0;
  1468. /*IF*/if (((((T904*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  1469. R=/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T904*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/;
  1470. }
  1471. /*FI*/return R;
  1472. }
  1473. void r904routine_afd_check(T904* C){
  1474. /*IF*/if (((((T904*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
  1475. r567afd_check(((T567*)((((T904*)C))->_require_assertion/*28*/)));
  1476. }
  1477. /*FI*//*IF*/if (((((T904*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
  1478. r592afd_check(((T592*)((((T904*)C))->_routine_body/*32*/)));
  1479. }
  1480. /*FI*//*IF*/if (((((T904*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  1481. r633afd_check(((T633*)((((T904*)C))->_ensure_assertion/*36*/)));
  1482. }
  1483. /*FI*/}
  1484. /*No:RUN_FEATURE_9.local_vars*/
  1485. /*No:RUN_FEATURE_9.base_feature*/
  1486. T0* r904start_position(T904* C){
  1487. T0* R=NULL;
  1488. R=X249start_position((((T904*)C))->_base_feature/*44*/);
  1489. return R;
  1490. }
  1491. /*No:RUN_FEATURE_9.ensure_assertion*/
  1492. int r904is_exported_in(T904* C,T0* a1){
  1493. int R=0;
  1494. R=r636gives_permission_to(((T636*)(r904clients(C))),a1);
  1495. return R;
  1496. }
  1497. /*No:RUN_FEATURE_9.compute_use_current*/
  1498. /*No:RUN_FEATURE_9.result_type*/
  1499. /*No:RUN_FEATURE_9.is_static*/
  1500. void r904add_client(T904* C,T0* a1){
  1501. int _i=0;
  1502. /*IF*/if (((((T904*)C))->_actuals_clients/*12*/)==((void*)(NULL))) {
  1503. {T187*n=malloc(sizeof(*n));
  1504. *n=M187;
  1505. r187with_capacity(n,4);
  1506. C->_actuals_clients=(T0*)n;
  1507. }
  1508. r187add_last(((T187*)((((T904*)C))->_actuals_clients/*12*/)),a1);
  1509. }
  1510. else {
  1511. _i=r187fast_index_of(((T187*)((((T904*)C))->_actuals_clients/*12*/)),a1);
  1512. /*IF*/if ((_i)>((((T187*)((T187*)((((T904*)C))->_actuals_clients/*12*/))))->_upper/*8*/)) {
  1513. r187add_last(((T187*)((((T904*)C))->_actuals_clients/*12*/)),a1);
  1514. }
  1515. /*FI*/}
  1516. /*FI*/r355add_client(((T355*)(r904run_class(C))),a1);
  1517. }
  1518. /*No:RUN_FEATURE_9.require_assertion*/
  1519. /*No:RUN_FEATURE_9.use_current_state*/
  1520. /*No:RUN_FEATURE_9.can_be_dropped*/
  1521. /*No:RUN_FEATURE_9.current_type*/
  1522. T0* r904run_class(T904* C){
  1523. T0* R=NULL;
  1524. R=X291run_class((((T904*)C))->_current_type/*4*/);
  1525. return R;
  1526. }
  1527. /*No:RUN_FEATURE_9.static_value_mem*/
  1528. /*No:RUN_FEATURE_9.ucs_not_computed*/
  1529. /*No:RUN_FEATURE_9.routine_body*/
  1530. void r904fall_down(T904* C){
  1531. T0* _rf=NULL;
  1532. T0* _sub_name=NULL;
  1533. T0* _sub_bc=NULL;
  1534. T0* _current_bc=NULL;
  1535. T0* _sub_rc=NULL;
  1536. T0* _current_rc=NULL;
  1537. int _i=0;
  1538. T0* _running=NULL;
  1539. _current_rc=X291run_class((((T904*)C))->_current_type/*4*/);
  1540. _running=(((T355*)((T355*)_current_rc)))->_running/*12*/;
  1541. /*IF*/if ((_running)!=((void*)(NULL))) {
  1542. _current_bc=X291base_class((((T904*)C))->_current_type/*4*/);
  1543. _i=(((T396*)((T396*)_running)))->_lower/*12*/;
  1544. while (!((_i)>((((T396*)((T396*)_running)))->_upper/*8*/))) {
  1545. _sub_rc=r396item(((T396*)_running),_i);
  1546. /*IF*/if ((_sub_rc)!=((void*)(_current_rc))) {
  1547. _sub_bc=X291base_class((((T355*)((T355*)_sub_rc)))->_current_type/*0*/);
  1548. _sub_name=r605new_name_of(((T605*)_sub_bc),_current_bc,(((T904*)C))->_name/*16*/);
  1549. _rf=r355get_feature(((T355*)_sub_rc),_sub_name);
  1550. }
  1551. /*FI*/_i=(_i)+(1);
  1552. }
  1553. }
  1554. /*FI*/}
  1555. /*No:RUN_FEATURE_9.ucs_false*/
  1556. /*No:RUN_FEATURE_9.is_pre_computable*/
  1557. T0* r904clients(T904* C){
  1558. T0* R=NULL;
  1559. T0* _bfbc=NULL;
  1560. T0* _bc=NULL;
  1561. /*IF*/if (((((T904*)C))->_clients_memory/*8*/)==((void*)(NULL))) {
  1562. _bc=X291base_class((((T904*)C))->_current_type/*4*/);
  1563. _bfbc=/*X249*/((T0*)(((T853*)((T853*)((((T904*)C))->_base_feature/*44*/))))->_base_class/*4*/);
  1564. /*IF*/if ((_bc)==((void*)(_bfbc))) {
  1565. R=/*X249*/((T0*)(((T853*)((T853*)((((T904*)C))->_base_feature/*44*/))))->_clients/*20*/);
  1566. }
  1567. else {
  1568. R=r605clients_for(((T605*)_bc),(((T904*)C))->_name/*16*/);
  1569. }
  1570. /*FI*/C->_clients_memory=R;
  1571. }
  1572. else {
  1573. R=(((T904*)C))->_clients_memory/*8*/;
  1574. }
  1575. /*FI*/return R;
  1576. }
  1577. int r904use_current(T904* C){
  1578. int R=0;
  1579. {int z1=(((T904*)C))->_use_current_state/*40*/;
  1580.  
  1581. if((1004==z1)){
  1582. R=1;
  1583. }
  1584.  else 
  1585. if((1003==z1)){
  1586. }
  1587.  else 
  1588. if((1005==z1)){
  1589. C->_use_current_state=1006;
  1590. /*[IRF3.1compute_use_current*//*]*/
  1591. R=r904use_current(C);
  1592. }
  1593.  else {R=1;
  1594. }}
  1595. return R;
  1596. }
  1597. /*No:RUN_FEATURE_9.mapping_c*/
  1598. /*No:RUN_FEATURE_9.address_of*/
  1599. void r904put_tag(T904* C){
  1600. T0* _fn=NULL;
  1601. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1602. char b1='\42';
  1603. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1604. }/*]*/
  1605. /*]*/
  1606. _fn=/*X249*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T853*)((T853*)((((T904*)C))->_base_feature/*44*/))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  1607. X776cpp_put_infix_or_prefix(_fn);
  1608. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X776to_string(_fn));
  1609. /*]*/
  1610. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms1_496));
  1611. /*]*/
  1612. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),(((T451*)((T451*)(/*X249*/((T0*)/*(IRF4.6base_class_name*/(((T605*)((T605*)((((T853*)((T853*)((((T904*)C))->_base_feature/*44*/))))->_base_class/*4*/))))->_base_class_name/*24*//*)*/)))))->_to_string/*0*/);
  1613. /*]*/
  1614. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1615. char b1='\42';
  1616. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1617. }/*]*/
  1618. /*]*/
  1619. }
  1620. /*No:RUN_FEATURE_9.clients_memory*/
  1621. void r904initialize(T904* C){
  1622. C->_arguments=/*X249*/((T0*)(((T853*)((T853*)((((T904*)C))->_base_feature/*44*/))))->_arguments/*24*/);
  1623. /*IF*/if ((((((T904*)C))->_arguments/*20*/)!=((void*)(NULL)))&&((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T904*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)>(0))) {
  1624. C->_arguments=r31to_runnable(((T31*)((((T904*)C))->_arguments/*20*/)),(((T904*)C))->_current_type/*4*/);
  1625. }
  1626. /*FI*/C->_result_type=/*X249*/((T0*)(((T853*)((T853*)((((T904*)C))->_base_feature/*44*/))))->_result_type/*12*/);
  1627. /*IF*/if (((((T904*)C))->_result_type/*24*/)!=((void*)(NULL))) {
  1628. C->_result_type=X291to_runnable((((T904*)C))->_result_type/*24*/,(((T904*)C))->_current_type/*4*/);
  1629. }
  1630. /*FI*/}
  1631. void r904afd_check(T904* C){
  1632. r904routine_afd_check(C);
  1633. r604afd_check_deferred((T0*)C);
  1634. }
  1635. T0* r936add_comment(T936* C,T0* a1){
  1636. T0* R=NULL;
  1637. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1638. R=(T0*)C;
  1639. }
  1640. else {
  1641. {T529*n=malloc(sizeof(*n));
  1642. *n=M529;
  1643. r529make(n,(T0*)C,a1);
  1644. R=(T0*)n;
  1645. }
  1646. }
  1647. /*FI*/return R;
  1648. }
  1649. int r936to_integer(T936* C){
  1650. int R=0;
  1651. r936error((((T936*)C))->_start_position/*12*/,((T0*)ms69_470));
  1652. return R;
  1653. }
  1654. int r936is_a(T936* C,T0* a1){
  1655. int R=0;
  1656. R=X291is_a(/*(IRF4.4run_type*/((T0*)((T209*)r936result_type()))/*)*/,X291run_type(X662result_type(a1)));
  1657. /*IF*/if (!(R)) {
  1658. r683add_position((((T936*)C))->_start_position/*12*/);
  1659. r936error(X662start_position(a1),((T0*)ms4_662));
  1660. }
  1661. /*FI*/return R;
  1662. }
  1663. /*No:REAL_CONSTANT.is_current*/
  1664. void r936mapping_c_arg(T936* C,T0* a1){
  1665. /*IF*/if (X291is_reference(a1)) {
  1666. /*[IRF3.6to_reference*/{T209* C1=((T209*)(r936result_type()));
  1667. r324to_reference(((T324*)(oBC364cpp)),(T0*)C1,r209type_real_ref());
  1668. }/*]*/
  1669. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1670. char b1='\50';
  1671. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1672. }/*]*/
  1673. /*]*/
  1674. /*[IRF3.6compile_to_c*/{T936* C1=C;
  1675. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),(((T936*)C1))->_to_string/*16*/);
  1676. /*]*/
  1677. }/*]*/
  1678. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1679. char b1='\51';
  1680. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1681. }/*]*/
  1682. /*]*/
  1683. }
  1684. else {
  1685. /*[IRF3.6compile_to_c*/{T936* C1=C;
  1686. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),(((T936*)C1))->_to_string/*16*/);
  1687. /*]*/
  1688. }/*]*/
  1689. }
  1690. /*FI*/}
  1691. /*No:REAL_CONSTANT.static_value*/
  1692. void r936make(T936* C,T0* a1,T0* a2){
  1693. C->_start_position=a1;
  1694. C->_to_string=a2;
  1695. }
  1696. /*No:REAL_CONSTANT.mapping_c_target*/
  1697. /*No:REAL_CONSTANT.to_string*/
  1698. /*No:REAL_CONSTANT.fz_iinaiv*/
  1699. /*No:REAL_CONSTANT.unary_minus*/
  1700. /*No:REAL_CONSTANT.dca_inline_argument*/
  1701. /*No:REAL_CONSTANT.start_position*/
  1702. /*No:REAL_CONSTANT.compile_to_c*/
  1703. /*No:REAL_CONSTANT.c_simple*/
  1704. T0* r936to_runnable(T936* C,T0* a1){
  1705. T0* R=NULL;
  1706. /*IF*/if (((((T936*)C))->_current_type/*8*/)==((void*)(NULL))) {
  1707. C->_current_type=a1;
  1708. R=(T0*)C;
  1709. }
  1710. else {
  1711. R=r936twin(C);
  1712. /*[IRF3.3set_current_type*/((((T936*)(((T936*)R))))->_current_type)=(a1);
  1713. /*]*/
  1714. }
  1715. /*FI*/return R;
  1716. }
  1717. int fBC936result_type=0;
  1718. T0*oBC936result_type=NULL;
  1719. T0* r936result_type(void){
  1720. if (fBC936result_type==0){
  1721. T0* R=NULL;
  1722. fBC936result_type=1;
  1723. {T209*n=malloc(sizeof(*n));
  1724. *n=M209;
  1725. r209make(n,NULL);
  1726. R=(T0*)n;
  1727. }
  1728. oBC936result_type=R;}
  1729. return oBC936result_type;}
  1730. /*No:REAL_CONSTANT.is_result*/
  1731. T0* r936twin(T936* C){
  1732. T0* R=NULL;
  1733. R=malloc(sizeof(*C));
  1734. *((T936*)R)=*C;
  1735. return R;
  1736. }
  1737. /*No:REAL_CONSTANT.set_current_type*/
  1738. /*No:REAL_CONSTANT.is_static*/
  1739. /*No:REAL_CONSTANT.can_be_dropped*/
  1740. /*No:REAL_CONSTANT.current_type*/
  1741. /*No:REAL_CONSTANT.compile_to_c_old*/
  1742. /*No:REAL_CONSTANT.static_value_mem*/
  1743. /*No:REAL_CONSTANT.is_manifest_string*/
  1744. /*No:REAL_CONSTANT.is_void*/
  1745. /*No:REAL_CONSTANT.is_pre_computable*/
  1746. /*No:REAL_CONSTANT.use_current*/
  1747. void r936error(T0* a1,T0* a2){
  1748. r683add_position(a1);
  1749. r683error(((T683*)(oBC364eh)),a2);
  1750. }
  1751. int r936isa_dca_inline_argument(void){
  1752. int R=0;
  1753. /*IF*//*AF*//*AE*/
  1754. /*FI*/return R;
  1755. }
  1756. /*No:REAL_CONSTANT.afd_check*/
  1757. int r627before(T627* C,T0* a1){
  1758. int R=0;
  1759. /*IF*/if ((/*(IRF4.6line*/((((T627*)C))->_mem_line_column/*4*/)/(1000)/*)*/)<(/*(IRF4.6line*/((((T627*)((T627*)a1)))->_mem_line_column/*4*/)/(1000)/*)*/)) {
  1760. R=1;
  1761. }
  1762.  else if ((/*(IRF4.6line*/((((T627*)C))->_mem_line_column/*4*/)/(1000)/*)*/)==(/*(IRF4.6line*/((((T627*)((T627*)a1)))->_mem_line_column/*4*/)/(1000)/*)*/)) {
  1763. R=(/*(IRF4.6column*/((((T627*)C))->_mem_line_column/*4*/)%(1000)/*)*/)<(/*(IRF4.6column*/((((T627*)((T627*)a1)))->_mem_line_column/*4*/)%(1000)/*)*/);
  1764. }
  1765. /*FI*/return R;
  1766. }
  1767. /*No:POSITION.line*/
  1768. void r627make(T627* C,int a1,int a2){
  1769. C->_mem_line_column=((a1)*(1000))+(a2);
  1770. C->_base_class_name=/*(IRF4.6current_class_name*/(((T605*)((T605*)((((T818*)((T818*)(oBC364eiffel_parser))))->_last_base_class/*65*/))))->_base_class_name/*24*//*)*/;
  1771. }
  1772. T0* r627get_line(T627* C){
  1773. T0* R=NULL;
  1774. int _i=0;
  1775. T0* _p=NULL;
  1776. _p=r627path(C);
  1777. /*IF*/if ((_p)!=((void*)(NULL))) {
  1778. r675connect_to(((T675*)(oBC364tmp_file_read)),_p);
  1779. while (!((_i)==(/*(IRF4.6line*/((((T627*)C))->_mem_line_column/*4*/)/(1000)/*)*/))) {
  1780. r675read_line(((T675*)(oBC364tmp_file_read)));
  1781. _i=(_i)+(1);
  1782. }
  1783. R=oBC762last_string;
  1784. r675disconnect(((T675*)(oBC364tmp_file_read)));
  1785. }
  1786. /*FI*/return R;
  1787. }
  1788. T0* r627path(T627* C){
  1789. T0* R=NULL;
  1790. T0* _bc=NULL;
  1791. T0* _bcn=NULL;
  1792. _bcn=(((T451*)((T451*)((((T627*)C))->_base_class_name/*0*/))))->_to_string/*0*/;
  1793. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  1794. /*IF*/if (r604is_used(_bcn)) {
  1795. _bc=r451base_class(((T451*)((((T627*)C))->_base_class_name/*0*/)));
  1796. }
  1797.  else if ((((T818*)((T818*)(oBC364eiffel_parser))))->_is_running/*8*/) {
  1798. /*IF*/if (((((T451*)((T451*)(/*(IRF4.6current_class_name*/(((T605*)((T605*)((((T818*)((T818*)(oBC364eiffel_parser))))->_last_base_class/*65*/))))->_base_class_name/*24*//*)*/))))->_to_string/*0*/)==((void*)(_bcn))) {
  1799. _bc=/*(IRF4.3current_class*/(((T818*)((T818*)(oBC364eiffel_parser))))->_last_base_class/*65*//*)*/;
  1800. }
  1801. /*FI*/}
  1802. else {
  1803. _bc=r451base_class(((T451*)((((T627*)C))->_base_class_name/*0*/)));
  1804. }
  1805. /*FI*//*IF*/if ((_bc)!=((void*)(NULL))) {
  1806. R=(((T605*)((T605*)_bc)))->_path/*4*/;
  1807. }
  1808. /*FI*/}
  1809. /*FI*/return R;
  1810. }
  1811. /*No:POSITION.column*/
  1812. void r627with(T627* C,int a1,int a2,T0* a3){
  1813. C->_mem_line_column=((a1)*(1000))+(a2);
  1814. C->_base_class_name=a3;
  1815. }
  1816. int r627is_equal(T627* C,T0* a1){
  1817. int R=0;
  1818. R=(((((/*(IRF4.6line*/((((T627*)C))->_mem_line_column/*4*/)/(1000)/*)*/)==(/*(IRF4.6line*/((((T627*)((T627*)a1)))->_mem_line_column/*4*/)/(1000)/*)*/))&&((/*(IRF4.6column*/((((T627*)C))->_mem_line_column/*4*/)%(1000)/*)*/)==(/*(IRF4.6column*/((((T627*)((T627*)a1)))->_mem_line_column/*4*/)%(1000)/*)*/)))&&(((((T627*)C))->_base_class_name/*0*/)!=((void*)(NULL))))&&(((((T627*)((T627*)a1)))->_base_class_name/*0*/)!=((void*)(NULL))))&&(((((T451*)((T451*)((((T627*)C))->_base_class_name/*0*/))))->_to_string/*0*/)==((void*)((((T451*)((T451*)((((T627*)((T627*)a1)))->_base_class_name/*0*/))))->_to_string/*0*/)));
  1819. return R;
  1820. }
  1821. void r627show(T627* C){
  1822. T0* _the_line=NULL;
  1823. T0* _str=NULL;
  1824. T0* _n=NULL;
  1825. int _nb=0;
  1826. int _c=0;
  1827. _n=(((T451*)((T451*)((((T627*)C))->_base_class_name/*0*/))))->_to_string/*0*/;
  1828. r441put_string(((T441*)(oBC1std_error)),((T0*)ms3_627));
  1829. r441put_integer(((T441*)(oBC1std_error)),/*(IRF4.6line*/((((T627*)C))->_mem_line_column/*4*/)/(1000)/*)*/);
  1830. r441put_string(((T441*)(oBC1std_error)),((T0*)ms4_627));
  1831. r441put_integer(((T441*)(oBC1std_error)),/*(IRF4.6column*/((((T627*)C))->_mem_line_column/*4*/)%(1000)/*)*/);
  1832. r441put_string(((T441*)(oBC1std_error)),((T0*)ms5_627));
  1833. r441put_string(((T441*)(oBC1std_error)),_n);
  1834. _str=r627path(C);
  1835. /*IF*/if ((_str)!=((void*)(NULL))) {
  1836. r441put_string(((T441*)(oBC1std_error)),((T0*)ms6_627));
  1837. r441put_string(((T441*)(oBC1std_error)),_str);
  1838. /*[IRF3.6put_character*/{T441* C1=((T441*)(oBC1std_error));
  1839. char b1='\51';
  1840. putc(b1,((FILE*)(stderr)));
  1841. }/*]*/
  1842. }
  1843. /*FI*/r441put_string(((T441*)(oBC1std_error)),((T0*)ms7_627));
  1844. _the_line=r627get_line(C);
  1845. /*IF*/if ((_the_line)!=((void*)(NULL))) {
  1846. _c=/*(IRF4.6column*/((((T627*)C))->_mem_line_column/*4*/)%(1000)/*)*/;
  1847. r441put_string(((T441*)(oBC1std_error)),_the_line);
  1848. /*[IRF3.4put_new_line*//*[IRF3.6put_character*/{T441* C1=((T441*)(oBC1std_error));
  1849. char b1='\n';
  1850. putc(b1,((FILE*)(stderr)));
  1851. }/*]*/
  1852. /*]*/
  1853. _nb=1;
  1854. while (!((_nb)==(_c))) {
  1855. /*IF*/if ((/*(IRF4.6item*/((((T7*)((T7*)_the_line)))->_storage/*0*/)[(_nb)-(1)]/*)*/)==('\11')) {
  1856. /*[IRF3.6put_character*/{T441* C1=((T441*)(oBC1std_error));
  1857. char b1='\11';
  1858. putc(b1,((FILE*)(stderr)));
  1859. }/*]*/
  1860. }
  1861. else {
  1862. /*[IRF3.6put_character*/{T441* C1=((T441*)(oBC1std_error));
  1863. char b1='\40';
  1864. putc(b1,((FILE*)(stderr)));
  1865. }/*]*/
  1866. }
  1867. /*FI*/_nb=(_nb)+(1);
  1868. }
  1869. r441put_string(((T441*)(oBC1std_error)),((T0*)ms8_627));
  1870. }
  1871. else {
  1872. r441put_string(((T441*)(oBC1std_error)),((T0*)ms9_627));
  1873. r441put_string(((T441*)(oBC1std_error)),_n);
  1874. r441put_string(((T441*)(oBC1std_error)),((T0*)ms10_627));
  1875. }
  1876. /*FI*/}
  1877. T0* r627base_class(T627* C){
  1878. T0* R=NULL;
  1879. /*IF*/if ((((T818*)((T818*)(oBC364eiffel_parser))))->_is_running/*8*/) {
  1880. /*IF*/if (/*(IRF4.7empty*/((((T7*)((T7*)((((T451*)((T451*)((((T627*)C))->_base_class_name/*0*/))))->_to_string/*0*/))))->_count/*4*/)==(0)/*)*/) {
  1881. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_627);
  1882. r683fatal_error(((T683*)(oBC364eh)),b1);
  1883. }/*]*/
  1884. }
  1885.  else if (r604is_used((((T451*)((T451*)((((T627*)C))->_base_class_name/*0*/))))->_to_string/*0*/)) {
  1886. R=r451base_class(((T451*)((((T627*)C))->_base_class_name/*0*/)));
  1887. }
  1888. else {
  1889. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_627);
  1890. r683fatal_error(((T683*)(oBC364eh)),b1);
  1891. }/*]*/
  1892. }
  1893. /*FI*/}
  1894. else {
  1895. R=r451base_class(((T451*)((((T627*)C))->_base_class_name/*0*/)));
  1896. }
  1897. /*FI*/return R;
  1898. }
  1899. /*No:POSITION.fatal_error*/
  1900. /*No:POSITION.mem_line_column*/
  1901. /*No:POSITION.base_class_name*/
  1902. void r627set_line_column(T627* C,int a1,int a2){
  1903. C->_mem_line_column=((a1)*(1000))+(a2);
  1904. }
  1905. /*No:DOUBLE_REF.item*/
  1906. /*No:BOOLEAN_REF.item*/
  1907.  
  1908.