home *** CD-ROM | disk | FTP | other *** search
/ Amiga ACS 1998 #4 / amigaacscoverdisc1998-041998.iso / utilities / shareware / dev / ppcsmalleiffel / source.lha / bin_c / compile_to_c32.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  38.9 KB  |  1,333 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 r517make(T517* C,T0* a1,T0* a2,T0* a3){
  10. T0* _eal=NULL;
  11. /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
  12. r683add_position(a2);
  13. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
  14. r683fatal_error(((T683*)(oBC364eh)),b1);
  15. }/*]*/
  16. }
  17. /*FI*/{T454*n=malloc(sizeof(*n));
  18. *n=M454;
  19. r454make(n,((T0*)ms1_517),a2);
  20. C->_feature_name=(T0*)n;
  21. }
  22. {T431*n=malloc(sizeof(*n));
  23. *n=M431;
  24. /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
  25. /*]*/
  26. _eal=(T0*)n;
  27. }
  28. r517make_call_1(C,a1,(((T517*)C))->_feature_name/*28*/,_eal);
  29. }
  30. void r517mapping_c_target(T517* C,T0* a1){
  31. T0* _actual_type=NULL;
  32. int _flag=0;
  33. _flag=r324call_invariant_start(a1);
  34. _actual_type=X291run_type((((T517*)C))->_result_type/*20*/);
  35. /*IF*/if (X291is_reference(_actual_type)) {
  36. /*IF*/if (X291is_reference(a1)) {
  37. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  38. char b1='\50';
  39. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  40. }/*]*/
  41. /*]*/
  42. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  43. char b1='\50';
  44. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  45. }/*]*/
  46. /*]*/
  47. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  48. char b1='T';
  49. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  50. }/*]*/
  51. /*]*/
  52. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X291id(a1));
  53. /*]*/
  54. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  55. char b1='\52';
  56. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  57. }/*]*/
  58. /*]*/
  59. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  60. char b1='\51';
  61. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  62. }/*]*/
  63. /*]*/
  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. r517compile_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. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  76. char b1='\51';
  77. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  78. }/*]*/
  79. /*]*/
  80. }
  81. else {
  82. X291to_expanded(_actual_type);
  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. r517compile_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. /*FI*/}
  96. else {
  97. /*IF*/if (X291is_reference(a1)) {
  98. X291to_reference(_actual_type);
  99. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  100. char b1='\50';
  101. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  102. }/*]*/
  103. /*]*/
  104. r517compile_to_c(C);
  105. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  106. char b1='\51';
  107. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  108. }/*]*/
  109. /*]*/
  110. }
  111. else {
  112. /*IF*/if (X291need_c_struct(a1)) {
  113. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  114. char b1='\46';
  115. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  116. }/*]*/
  117. /*]*/
  118. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  119. char b1='\50';
  120. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  121. }/*]*/
  122. /*]*/
  123. r517compile_to_c(C);
  124. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  125. char b1='\51';
  126. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  127. }/*]*/
  128. /*]*/
  129. }
  130. else {
  131. r517compile_to_c(C);
  132. }
  133. /*FI*/}
  134. /*FI*/}
  135. /*FI*//*IF*/if (_flag) {
  136. /*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T544* C1=((T544*)(oBC324out_c));
  137. char b1='\51';
  138. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  139. }/*]*/
  140. /*]*/
  141. }
  142. /*FI*/}
  143. /*No:CALL_INFIX_NEQ.nb_errors*/
  144. void r517to_runnable_equal_not_equal(T517* C,T0* a1){
  145. T0* _at=NULL;
  146. T0* _tt=NULL;
  147. T0* _a=NULL;
  148. T0* _t=NULL;
  149. C->_current_type=a1;
  150. _t=X662to_runnable((((T517*)C))->_target/*12*/,a1);
  151. /*IF*/if ((_t)==((void*)(NULL))) {
  152. r517error(X662start_position((((T517*)C))->_target/*12*/),((T0*)ms1_841));
  153. }
  154. else {
  155. C->_target=_t;
  156. }
  157. /*FI*/_a=X431to_runnable((((T517*)C))->_arguments/*24*/,a1);
  158. /*IF*/if ((_a)!=((void*)(NULL))) {
  159. C->_arguments=_a;
  160. }
  161. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  162. _tt=X291run_type(X662result_type((((T517*)C))->_target/*12*/));
  163. _at=X291run_type(X662result_type(r517arg1(C)));
  164. /*IF*/if (X291is_none(_tt)) {
  165. /*IF*/if (X291is_expanded(_at)) {
  166. X291used_as_reference(_at);
  167. }
  168. /*FI*/}
  169.  else if (X291is_none(_at)) {
  170. /*IF*/if (X291is_expanded(_tt)) {
  171. X291used_as_reference(_tt);
  172. }
  173. /*FI*/}
  174.  else if (X291is_reference(_tt)) {
  175. /*IF*/if (X291is_reference(_at)) {
  176. /*IF*/if (X291is_a(_tt,_at)) {
  177. }
  178. else {
  179. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
  180. /*]*/
  181. r38clear(((T38*)(oBC683positions)));
  182. /*]*/
  183. /*IF*/if (X291is_a(_at,_tt)) {
  184. }
  185. else {
  186. r517error_comparison(C,((T0*)ms2_841));
  187. }
  188. /*FI*/}
  189. /*FI*/}
  190.  else if (!(X291is_a(_at,_tt))) {
  191. r517error_comparison(C,((T0*)ms3_841));
  192. }
  193. else {
  194. X291used_as_reference(_at);
  195. }
  196. /*FI*/}
  197. else {
  198. /*IF*/if (X291is_expanded(_at)) {
  199. /*IF*/if (X291is_basic_eiffel_expanded(_at)) {
  200. /*IF*/if (X291is_a(_tt,_at)) {
  201. }
  202. else {
  203. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
  204. /*]*/
  205. r38clear(((T38*)(oBC683positions)));
  206. /*]*/
  207. /*IF*/if (X291is_a(_at,_tt)) {
  208. }
  209. else {
  210. r517error_comparison(C,((T0*)ms4_841));
  211. }
  212. /*FI*/}
  213. /*FI*/}
  214.  else if (X291is_bit(_tt)) {
  215. r517bit_limitation(C,_tt,_at);
  216. }
  217.  else if (!(X291is_a(_at,_tt))) {
  218. r517error_comparison(C,((T0*)ms5_841));
  219. }
  220. /*FI*/}
  221.  else if (!(X291is_a(_tt,_at))) {
  222. r517error_comparison(C,((T0*)ms6_841));
  223. }
  224. else {
  225. X291used_as_reference(_tt);
  226. }
  227. /*FI*/}
  228. /*FI*/}
  229. /*FI*/}
  230. /*No:CALL_INFIX_NEQ.feature_name*/
  231. /*No:CALL_INFIX_NEQ.fz_iinaiv*/
  232. /*No:CALL_INFIX_NEQ.arg_count*/
  233. /*No:CALL_INFIX_NEQ.dca_inline_argument*/
  234. /*No:CALL_INFIX_NEQ.run_feature*/
  235. /*No:CALL_INFIX_NEQ.start_position*/
  236. /*No:CALL_INFIX_NEQ.target*/
  237. void r517compile_to_c(T517* C){
  238. T0* _at=NULL;
  239. T0* _tt=NULL;
  240. _tt=X291run_type(X662result_type((((T517*)C))->_target/*12*/));
  241. _at=X291run_type(X662result_type(r517arg1(C)));
  242. /*IF*/if (X291is_expanded(_tt)) {
  243. /*IF*/if (X291is_expanded(_at)) {
  244. /*IF*/if (X291is_user_expanded(_tt)) {
  245. r517cmp_user_expanded(C,0,_tt);
  246. }
  247.  else if (X291is_basic_eiffel_expanded(_tt)) {
  248. r517cmp_basic_eiffel_expanded(C,0,_at,_tt);
  249. }
  250.  else if (X291is_bit(_tt)) {
  251. r517cmp_bit(C,0,_tt);
  252. }
  253. else {
  254. r517cmp_basic_ref(C,0);
  255. }
  256. /*FI*/}
  257. else {
  258. r517c2c_exp_ref((((T517*)C))->_target/*12*/,_tt,r517arg1(C),_at);
  259. }
  260. /*FI*/}
  261.  else if (X291is_expanded(_at)) {
  262. r517c2c_exp_ref(r517arg1(C),_at,(((T517*)C))->_target/*12*/,_tt);
  263. }
  264. else {
  265. r517cmp_basic_ref(C,0);
  266. }
  267. /*FI*/}
  268. /*No:CALL_INFIX_NEQ.c_simple*/
  269. T0* r517to_runnable(T517* C,T0* a1){
  270. T0* R=NULL;
  271. /*IF*/if (((((T517*)C))->_current_type/*8*/)==((void*)(NULL))) {
  272. r517to_runnable_equal_not_equal(C,a1);
  273. C->_result_type=r517type_boolean();
  274. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  275. R=(T0*)C;
  276. }
  277. /*FI*/}
  278. else {
  279. {T517*n=malloc(sizeof(*n));
  280. *n=M517;
  281. r517make(n,(((T517*)C))->_target/*12*/,(((T454*)((T454*)((((T517*)C))->_feature_name/*28*/))))->_start_position/*8*/,r517arg1(C));
  282. R=(T0*)n;
  283. }
  284. R=r517to_runnable(((T517*)R),a1);
  285. }
  286. /*FI*/return R;
  287. }
  288. /*No:CALL_INFIX_NEQ.fz_cast_void_star*/
  289. /*No:CALL_INFIX_NEQ.result_type*/
  290. /*No:CALL_INFIX_NEQ.is_result*/
  291. /*No:CALL_INFIX_NEQ.fz_13*/
  292. /*No:CALL_INFIX_NEQ.operator*/
  293. int r517is_static(T517* C){
  294. int R=0;
  295. /*IF*/if (X662is_void((((T517*)C))->_target/*12*/)) {
  296. R=r517is_static_neq_void(C,r517arg1(C));
  297. }
  298.  else if (X662is_void(r517arg1(C))) {
  299. R=r517is_static_neq_void(C,(((T517*)C))->_target/*12*/);
  300. }
  301.  else if ((X662is_static((((T517*)C))->_target/*12*/))&&(X662is_static(r517arg1(C)))) {
  302. R=1;
  303. /*IF*/if ((X662static_value((((T517*)C))->_target/*12*/))!=(X662static_value(r517arg1(C)))) {
  304. C->_static_value_mem=1;
  305. }
  306. /*FI*/}
  307. /*FI*/return R;
  308. }
  309. void r517cmp_basic_ref(T517* C,int a1){
  310. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  311. char b1='\50';
  312. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  313. }/*]*/
  314. /*]*/
  315. X662compile_to_c((((T517*)C))->_target/*12*/);
  316. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  317. char b1='\51';
  318. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  319. }/*]*/
  320. /*]*/
  321. /*IF*/if (a1) {
  322. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms87_470));
  323. /*]*/
  324. }
  325. else {
  326. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms92_470));
  327. /*]*/
  328. }
  329. /*FI*//*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  330. char b1='\50';
  331. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  332. }/*]*/
  333. /*]*/
  334. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms86_470));
  335. /*]*/
  336. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  337. char b1='\50';
  338. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  339. }/*]*/
  340. /*]*/
  341. X662compile_to_c(r517arg1(C));
  342. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  343. char b1='\51';
  344. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  345. }/*]*/
  346. /*]*/
  347. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  348. char b1='\51';
  349. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  350. }/*]*/
  351. /*]*/
  352. }
  353. int r517is_static_neq_void(T517* C,T0* a1){
  354. int R=0;
  355. T0* _rt=NULL;
  356. /*IF*/if (((X662is_current(a1))||(X662is_manifest_string(a1)))||(r517is_manifest_array(a1))) {
  357. R=1;
  358. C->_static_value_mem=1;
  359. }
  360. else {
  361. _rt=X291run_type(X662result_type(a1));
  362. /*IF*/if (X291is_expanded(_rt)) {
  363. R=1;
  364. C->_static_value_mem=1;
  365. }
  366.  else if (X662is_static(a1)) {
  367. R=1;
  368. /*IF*/if ((X662static_value(a1))!=(0)) {
  369. C->_static_value_mem=1;
  370. }
  371. /*FI*/}
  372. /*FI*/}
  373. /*FI*/return R;
  374. }
  375. /*No:CALL_INFIX_NEQ.can_be_dropped*/
  376. void r517bit_limitation(T517* C,T0* a1,T0* a2){
  377. T0* _b2=NULL;
  378. T0* _b1=NULL;
  379. _b1=a1;
  380. if(NULL!=(_b1))switch(((T0*)_b1)->id) {
  381. case 549: case 558: 
  382. break;
  383. default:
  384. _b1=NULL;
  385. };_b2=a2;
  386. if(NULL!=(_b2))switch(((T0*)_b2)->id) {
  387. case 549: case 558: 
  388. break;
  389. default:
  390. _b2=NULL;
  391. };/*IF*/if ((X609nb(_b1))!=(X609nb(_b2))) {
  392. r683add_position((((T454*)((T454*)((((T517*)C))->_feature_name/*28*/))))->_start_position/*8*/);
  393. /*[IRF3.6append*/{T0* b1=((T0*)ms9_841);
  394. r7append(((T7*)(oBC683explanation)),b1);
  395. }/*]*/
  396. r683add_type(_b1,((T0*)ms10_841));
  397. r683add_type(_b2,((T0*)ms11_841));
  398. r683print_as_fatal_error(((T683*)(oBC364eh)));
  399. }
  400. /*FI*/}
  401. /*No:CALL_INFIX_NEQ.current_type*/
  402. void r517compile_to_c_old(T517* C){
  403. X662compile_to_c_old((((T517*)C))->_target/*12*/);
  404. /*IF*/{/*AT*/X431compile_to_c_old((((T517*)C))->_arguments/*24*/);
  405. }
  406. /*FI*/}
  407. void r517cmp_basic_eiffel_expanded(T517* C,int a1,T0* a2,T0* a3){
  408. int _flag=0;
  409. _flag=(X291is_real(a2))||(X291is_real(a3));
  410. /*IF*/if (_flag) {
  411. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms19_841));
  412. /*]*/
  413. }
  414. /*FI*//*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  415. char b1='\50';
  416. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  417. }/*]*/
  418. /*]*/
  419. X662compile_to_c((((T517*)C))->_target/*12*/);
  420. /*IF*/if (_flag) {
  421. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms147_470));
  422. /*]*/
  423. }
  424. /*FI*//*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  425. char b1='\51';
  426. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  427. }/*]*/
  428. /*]*/
  429. /*IF*/if (a1) {
  430. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms87_470));
  431. /*]*/
  432. }
  433. else {
  434. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms92_470));
  435. /*]*/
  436. }
  437. /*FI*//*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  438. char b1='\50';
  439. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  440. }/*]*/
  441. /*]*/
  442. /*IF*/if (_flag) {
  443. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms19_841));
  444. /*]*/
  445. }
  446. /*FI*/X662compile_to_c(r517arg1(C));
  447. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  448. char b1='\51';
  449. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  450. }/*]*/
  451. /*]*/
  452. /*IF*/if (_flag) {
  453. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms147_470));
  454. /*]*/
  455. }
  456. /*FI*/}
  457. /*No:CALL_INFIX_NEQ.static_value_mem*/
  458. void r517make_call_1(T517* C,T0* a1,T0* a2,T0* a3){
  459. C->_target=a1;
  460. C->_feature_name=a2;
  461. C->_arguments=a3;
  462. }
  463. /*No:CALL_INFIX_NEQ.is_manifest_string*/
  464. /*No:CALL_INFIX_NEQ.fz_c_neq*/
  465. /*No:CALL_INFIX_NEQ.fz_c_eq*/
  466. /*No:CALL_INFIX_NEQ.is_void*/
  467. int r517is_manifest_array(T0* a1){
  468. int R=0;
  469. T0* _ma=NULL;
  470. _ma=a1;
  471. if(NULL!=(_ma))switch(((T0*)_ma)->id) {
  472. case 436: 
  473. break;
  474. default:
  475. _ma=NULL;
  476. };R=(_ma)!=((void*)(NULL));
  477. return R;
  478. }
  479. /*No:CALL_INFIX_NEQ.fz_dot*/
  480. /*No:CALL_INFIX_NEQ.is_pre_computable*/
  481. int r517use_current(T517* C){
  482. int R=0;
  483. R=(X662use_current((((T517*)C))->_target/*12*/))||(X662use_current(r517arg1(C)));
  484. return R;
  485. }
  486. /*No:CALL_INFIX_NEQ.finalize*/
  487. void r517dca_inline(T517* C,T0* a1){
  488. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  489. char b1='\50';
  490. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  491. }/*]*/
  492. /*]*/
  493. r324put_target_as_value(((T324*)(oBC364cpp)));
  494. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  495. char b1='\51';
  496. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  497. }/*]*/
  498. /*]*/
  499. /*IF*/if ((/*(IRF4.5first*//*(IRF4.6item*/((((T7*)((T7*)(((T0*)ms1_517)))))->_storage/*0*/)[(1)-(1)]/*)*//*)*/)==('\75')) {
  500. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms87_470));
  501. /*]*/
  502. }
  503. else {
  504. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms92_470));
  505. /*]*/
  506. }
  507. /*FI*//*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  508. char b1='\50';
  509. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  510. }/*]*/
  511. /*]*/
  512. X662dca_inline_argument(r517arg1(C),a1);
  513. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  514. char b1='\51';
  515. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  516. }/*]*/
  517. /*]*/
  518. }
  519. void r517error(T0* a1,T0* a2){
  520. r683add_position(a1);
  521. r683error(((T683*)(oBC364eh)),a2);
  522. }
  523. /*No:CALL_INFIX_NEQ.isa_dca_inline_argument*/
  524. /*No:CALL_INFIX_NEQ.fatal_error*/
  525. T0* r517arg1(T517* C){
  526. T0* R=NULL;
  527. R=X431first((((T517*)C))->_arguments/*24*/);
  528. return R;
  529. }
  530. /*No:CALL_INFIX_NEQ.fz_cast_float*/
  531. void r517afd_check(T517* C){
  532. X662afd_check((((T517*)C))->_target/*12*/);
  533. X662afd_check(r517arg1(C));
  534. }
  535. /*No:CALL_INFIX_DIV.arguments*/
  536. T0* r520add_comment(T520* C,T0* a1){
  537. T0* R=NULL;
  538. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  539. R=(T0*)C;
  540. }
  541. else {
  542. {T529*n=malloc(sizeof(*n));
  543. *n=M529;
  544. r529make(n,(T0*)C,a1);
  545. R=(T0*)n;
  546. }
  547. }
  548. /*FI*/return R;
  549. }
  550. int r520to_integer(T520* C){
  551. int R=0;
  552. r520error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T520*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  553. return R;
  554. }
  555. int r520is_a(T520* C,T0* a1){
  556. int R=0;
  557. R=X291is_a(X291run_type((((T520*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
  558. /*IF*/if (!(R)) {
  559. r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T520*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/);
  560. r520error(X662start_position(a1),((T0*)ms4_662));
  561. }
  562. /*FI*/return R;
  563. }
  564. /*No:CALL_INFIX_DIV.is_current*/
  565. void r520mapping_c_arg(T520* C,T0* a1){
  566. T0* _actual_type=NULL;
  567. _actual_type=X291run_type((((T520*)C))->_result_type/*20*/);
  568. /*IF*/if (X291is_reference(_actual_type)) {
  569. /*IF*/if (X291is_reference(a1)) {
  570. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T520* C1=C;
  571. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  572. }/*]*/
  573. /*]*/
  574. }
  575. else {
  576. X291to_expanded(_actual_type);
  577. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  578. char b1='\50';
  579. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  580. }/*]*/
  581. /*]*/
  582. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T520* C1=C;
  583. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  584. }/*]*/
  585. /*]*/
  586. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  587. char b1='\51';
  588. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  589. }/*]*/
  590. /*]*/
  591. }
  592. /*FI*/}
  593. else {
  594. /*IF*/if (X291is_reference(a1)) {
  595. X291to_reference(_actual_type);
  596. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  597. char b1='\50';
  598. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  599. }/*]*/
  600. /*]*/
  601. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T520* C1=C;
  602. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  603. }/*]*/
  604. /*]*/
  605. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  606. char b1='\51';
  607. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  608. }/*]*/
  609. /*]*/
  610. }
  611. else {
  612. /*IF*/if (X291need_c_struct(a1)) {
  613. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  614. char b1='\46';
  615. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  616. }/*]*/
  617. /*]*/
  618. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  619. char b1='\50';
  620. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  621. }/*]*/
  622. /*]*/
  623. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T520* C1=C;
  624. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  625. }/*]*/
  626. /*]*/
  627. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  628. char b1='\51';
  629. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  630. }/*]*/
  631. /*]*/
  632. }
  633. else {
  634. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T520* C1=C;
  635. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  636. }/*]*/
  637. /*]*/
  638. }
  639. /*FI*/}
  640. /*FI*/}
  641. /*FI*/}
  642. /*No:CALL_INFIX_DIV.static_value*/
  643. void r520make(T520* C,T0* a1,T0* a2,T0* a3){
  644. T0* _eal=NULL;
  645. /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
  646. r683add_position(a2);
  647. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
  648. r683fatal_error(((T683*)(oBC364eh)),b1);
  649. }/*]*/
  650. }
  651. /*FI*/{T454*n=malloc(sizeof(*n));
  652. *n=M454;
  653. r454make(n,r520operator(),a2);
  654. C->_feature_name=(T0*)n;
  655. }
  656. {T431*n=malloc(sizeof(*n));
  657. *n=M431;
  658. /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
  659. /*]*/
  660. _eal=(T0*)n;
  661. }
  662. r520make_call_1(C,a1,(((T520*)C))->_feature_name/*28*/,_eal);
  663. }
  664. void r520mapping_c_target(T520* C,T0* a1){
  665. T0* _actual_type=NULL;
  666. int _flag=0;
  667. _flag=r324call_invariant_start(a1);
  668. _actual_type=X291run_type((((T520*)C))->_result_type/*20*/);
  669. /*IF*/if (X291is_reference(_actual_type)) {
  670. /*IF*/if (X291is_reference(a1)) {
  671. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  672. char b1='\50';
  673. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  674. }/*]*/
  675. /*]*/
  676. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  677. char b1='\50';
  678. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  679. }/*]*/
  680. /*]*/
  681. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  682. char b1='T';
  683. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  684. }/*]*/
  685. /*]*/
  686. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X291id(a1));
  687. /*]*/
  688. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  689. char b1='\52';
  690. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  691. }/*]*/
  692. /*]*/
  693. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  694. char b1='\51';
  695. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  696. }/*]*/
  697. /*]*/
  698. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  699. char b1='\50';
  700. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  701. }/*]*/
  702. /*]*/
  703. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T520* C1=C;
  704. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  705. }/*]*/
  706. /*]*/
  707. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  708. char b1='\51';
  709. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  710. }/*]*/
  711. /*]*/
  712. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  713. char b1='\51';
  714. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  715. }/*]*/
  716. /*]*/
  717. }
  718. else {
  719. X291to_expanded(_actual_type);
  720. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  721. char b1='\50';
  722. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  723. }/*]*/
  724. /*]*/
  725. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T520* C1=C;
  726. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  727. }/*]*/
  728. /*]*/
  729. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  730. char b1='\51';
  731. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  732. }/*]*/
  733. /*]*/
  734. }
  735. /*FI*/}
  736. else {
  737. /*IF*/if (X291is_reference(a1)) {
  738. X291to_reference(_actual_type);
  739. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  740. char b1='\50';
  741. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  742. }/*]*/
  743. /*]*/
  744. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T520* C1=C;
  745. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  746. }/*]*/
  747. /*]*/
  748. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  749. char b1='\51';
  750. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  751. }/*]*/
  752. /*]*/
  753. }
  754. else {
  755. /*IF*/if (X291need_c_struct(a1)) {
  756. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  757. char b1='\46';
  758. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  759. }/*]*/
  760. /*]*/
  761. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  762. char b1='\50';
  763. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  764. }/*]*/
  765. /*]*/
  766. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T520* C1=C;
  767. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  768. }/*]*/
  769. /*]*/
  770. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  771. char b1='\51';
  772. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  773. }/*]*/
  774. /*]*/
  775. }
  776. else {
  777. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T520* C1=C;
  778. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  779. }/*]*/
  780. /*]*/
  781. }
  782. /*FI*/}
  783. /*FI*/}
  784. /*FI*//*IF*/if (_flag) {
  785. /*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T544* C1=((T544*)(oBC324out_c));
  786. char b1='\51';
  787. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  788. }/*]*/
  789. /*]*/
  790. }
  791. /*FI*/}
  792. /*No:CALL_INFIX_DIV.nb_errors*/
  793. /*No:CALL_INFIX_DIV.feature_name*/
  794. /*No:CALL_INFIX_DIV.fz_iinaiv*/
  795. /*No:CALL_INFIX_DIV.arg_count*/
  796. /*No:CALL_INFIX_DIV.dca_inline_argument*/
  797. /*No:CALL_INFIX_DIV.run_feature*/
  798. /*No:CALL_INFIX_DIV.call_proc_call_c2c*/
  799. /*No:CALL_INFIX_DIV.start_position*/
  800. /*No:CALL_INFIX_DIV.target*/
  801. /*No:CALL_INFIX_DIV.compile_to_c*/
  802. /*No:CALL_INFIX_DIV.c_simple*/
  803. T0* r520to_runnable(T520* C,T0* a1){
  804. T0* R=NULL;
  805. T0* _tla=NULL;
  806. T0* _a=NULL;
  807. /*IF*/if (((((T520*)C))->_current_type/*8*/)==((void*)(NULL))) {
  808. r520to_runnable_0(C,a1);
  809. _a=X431to_runnable((((T520*)C))->_arguments/*24*/,a1);
  810. /*IF*/if ((_a)==((void*)(NULL))) {
  811. r520error(X662start_position(r520arg1(C)),((T0*)ms55_470));
  812. }
  813. else {
  814. C->_arguments=_a;
  815. }
  816. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  817. X431match_with((((T520*)C))->_arguments/*24*/,(((T520*)C))->_run_feature/*16*/);
  818. }
  819. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  820. _tla=(((T520*)C))->_result_type/*20*/;
  821. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  822. case 239: 
  823. break;
  824. default:
  825. _tla=NULL;
  826. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  827. C->_result_type=X291run_type(X662result_type(r520arg1(C)));
  828. }
  829. /*FI*/}
  830. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  831. R=(T0*)C;
  832. }
  833. /*FI*/}
  834. else {
  835. R=r520twin(C);
  836. /*[IRF3.3set_current_type*/((((T520*)(((T520*)R))))->_current_type)=(NULL);
  837. /*]*/
  838. R=r520to_runnable(((T520*)R),a1);
  839. }
  840. /*FI*/return R;
  841. }
  842. /*No:CALL_INFIX_DIV.us_slash*/
  843. /*No:CALL_INFIX_DIV.result_type*/
  844. /*No:CALL_INFIX_DIV.is_result*/
  845. T0* r520twin(T520* C){
  846. T0* R=NULL;
  847. R=malloc(sizeof(*C));
  848. *((T520*)R)=*C;
  849. return R;
  850. }
  851. /*No:CALL_INFIX_DIV.set_current_type*/
  852. T0* r520operator(void){
  853. T0* R=NULL;
  854. R=((T0*)ms47_473);
  855. return R;
  856. }
  857. /*No:CALL_INFIX_DIV.is_static*/
  858. /*No:CALL_INFIX_DIV.fz_07*/
  859. /*No:CALL_INFIX_DIV.can_be_dropped*/
  860. /*No:CALL_INFIX_DIV.current_type*/
  861. void r520compile_to_c_old(T520* C){
  862. X662compile_to_c_old((((T520*)C))->_target/*12*/);
  863. /*IF*/{/*AT*/X431compile_to_c_old((((T520*)C))->_arguments/*24*/);
  864. }
  865. /*FI*/}
  866. /*No:CALL_INFIX_DIV.static_value_mem*/
  867. void r520make_call_1(T520* C,T0* a1,T0* a2,T0* a3){
  868. C->_target=a1;
  869. C->_feature_name=a2;
  870. C->_arguments=a3;
  871. }
  872. /*No:CALL_INFIX_DIV.is_manifest_string*/
  873. /*No:CALL_INFIX_DIV.is_void*/
  874. void r520to_runnable_0(T520* C,T0* a1){
  875. C->_current_type=a1;
  876. r520cpc_to_runnable(C,a1);
  877. C->_result_type=/*X496*/((T0*)(((T832*)((T832*)((((T520*)C))->_run_feature/*16*/))))->_result_type/*24*/);
  878. /*IF*/if (((((T520*)C))->_result_type/*20*/)==((void*)(NULL))) {
  879. r683add_position(X496start_position((((T520*)C))->_run_feature/*16*/));
  880. r520error((((T454*)((T454*)((((T520*)C))->_feature_name/*28*/))))->_start_position/*8*/,((T0*)ms1_295));
  881. }
  882.  else if (X291is_like_current((((T520*)C))->_result_type/*20*/)) {
  883. C->_result_type=X662result_type((((T520*)C))->_target/*12*/);
  884. }
  885. /*FI*/}
  886. /*No:CALL_INFIX_DIV.is_pre_computable*/
  887. void r520cpc_to_runnable(T520* C,T0* a1){
  888. T0* _rc=NULL;
  889. T0* _t=NULL;
  890. _t=X662to_runnable((((T520*)C))->_target/*12*/,a1);
  891. /*IF*/if ((_t)==((void*)(NULL))) {
  892. r683add_position(X662start_position((((T520*)C))->_target/*12*/));
  893. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  894. r683fatal_error(((T683*)(oBC364eh)),b1);
  895. }/*]*/
  896. }
  897. /*FI*/C->_target=_t;
  898. _rc=X291run_class(X662result_type((((T520*)C))->_target/*12*/));
  899. C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C);
  900. r576update((((T520*)C))->_target/*12*/,(((T520*)C))->_run_feature/*16*/);
  901. }
  902. int r520use_current(T520* C){
  903. int R=0;
  904. /*IF*/{/*AT*/R=X431use_current((((T520*)C))->_arguments/*24*/);
  905. }
  906. /*FI*//*IF*/if (R) {
  907. }
  908.  else if (X662is_current((((T520*)C))->_target/*12*/)) {
  909. R=X496use_current((((T520*)C))->_run_feature/*16*/);
  910. }
  911. else {
  912. R=X662use_current((((T520*)C))->_target/*12*/);
  913. }
  914. /*FI*/return R;
  915. }
  916. void r520finalize(T520* C){
  917. T0* _rf=NULL;
  918. T0* _rc=NULL;
  919. _rf=(((T520*)C))->_run_feature/*16*/;
  920. _rc=X291run_class(/*X496*/((T0*)(((T832*)((T832*)_rf)))->_current_type/*4*/));
  921. /*IF*/if (!((((T355*)((T355*)_rc)))->_at_run_time/*8*/)) {
  922. _rf=r355dynamic(((T355*)(r396first(((T396*)((((T355*)((T355*)_rc)))->_running/*12*/))))),_rf);
  923. C->_run_feature=_rf;
  924. }
  925. /*FI*/}
  926. void r520error(T0* a1,T0* a2){
  927. r683add_position(a1);
  928. r683error(((T683*)(oBC364eh)),a2);
  929. }
  930. /*No:CALL_INFIX_DIV.isa_dca_inline_argument*/
  931. /*No:CALL_INFIX_DIV.fatal_error*/
  932. /*No:CALL_INFIX_DIV.fz_bad_argument*/
  933. T0* r520arg1(T520* C){
  934. T0* R=NULL;
  935. R=X431first((((T520*)C))->_arguments/*24*/);
  936. return R;
  937. }
  938. void r520afd_check(T520* C){
  939. T0* _running=NULL;
  940. T0* _rc=NULL;
  941. _rc=X291run_class(X662result_type((((T520*)C))->_target/*12*/));
  942. _running=(((T355*)((T355*)_rc)))->_running/*12*/;
  943. /*IF*/if ((_running)==((void*)(NULL))) {
  944. r683add_position(X662start_position((((T520*)C))->_target/*12*/));
  945. /*[IRF3.6append*/{T0* b1=((T0*)ms1_135);
  946. r7append(((T7*)(oBC683explanation)),b1);
  947. }/*]*/
  948. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/);
  949. r7append(((T7*)(oBC683explanation)),b1);
  950. }/*]*/
  951. /*[IRF3.6append*/{T0* b1=((T0*)ms141_470);
  952. r7append(((T7*)(oBC683explanation)),b1);
  953. }/*]*/
  954. r683print_as_warning(((T683*)(oBC364eh)));
  955. r355set_at_run_time(((T355*)_rc));
  956. }
  957.  else if ((r396count(((T396*)_running)))>(0)) {
  958. r576update((((T520*)C))->_target/*12*/,(((T520*)C))->_run_feature/*16*/);
  959. }
  960. /*FI*/X662afd_check((((T520*)C))->_target/*12*/);
  961. /*IF*/{/*AT*/X431afd_check((((T520*)C))->_arguments/*24*/);
  962. }
  963. /*FI*/}
  964. int r521isa_dca_inline(T521* C,T0* a1,T0* a2){
  965. int R=0;
  966. int _r=0;
  967. int _i=0;
  968. T0* _e=NULL;
  969. T0* _args=NULL;
  970. T0* _relay_args=NULL;
  971. _relay_args=/*X496*/((T0*)(((T832*)((T832*)a1)))->_arguments/*20*/);
  972. _args=/*X496*/((T0*)(((T832*)((T832*)a2)))->_arguments/*20*/);
  973. R=1;
  974. _i=/*X96*/((int)(((T96*)((T96*)((((T521*)C))->_list/*4*/))))->_upper/*12*/);
  975. r353force(((T353*)(oBC431isa_dca_inline_memory)),0,_i);
  976. /*[IRF3.6clear_all*/{T353* C1=((T353*)(oBC431isa_dca_inline_memory));
  977. int __value=0;
  978. /*[IRF3.6set_all_with*/{T353* C2=C1;
  979. int c1=__value;
  980. r541set_all_with((((T353*)C2))->_storage/*0*/,c1,((((T353*)C2))->_upper/*8*/)-((((T353*)C2))->_lower/*12*/));
  981. }/*]*/
  982. }/*]*/
  983. while (!((!(R))||((_i)==(0)))) {
  984. _e=/*X96*/((T0*)r96item(((T96*)((((T521*)C))->_list/*4*/)),_i));
  985. _r=X662isa_dca_inline_argument(_e);
  986. {int z1=_r;
  987.  
  988. if((0==z1)){
  989. R=0;
  990. }
  991.  else 
  992. if((-1==z1)){
  993. /*IF*/if (X291is_expanded(r31type(((T31*)_args),_i))) {
  994. R=X291is_expanded(X662result_type(_e));
  995. }
  996. else {
  997. R=X291is_reference(X662result_type(_e));
  998. }
  999. /*FI*/}
  1000.  else{/*[IRF3.6put*/{T353* C1=((T353*)(oBC431isa_dca_inline_memory));
  1001. int b1=1;
  1002. int b2=_r;
  1003. ((((T353*)C1))->_storage/*0*/)[(b2)-((((T353*)C1))->_lower/*12*/)]=(b1);
  1004. }/*]*/
  1005. /*IF*/if (X291is_reference(r31type(((T31*)_relay_args),_r))) {
  1006. /*IF*/if (X291is_reference(r31type(((T31*)_args),_i))) {
  1007. R=X291is_reference(X662result_type(_e));
  1008. }
  1009. else {
  1010. R=0;
  1011. }
  1012. /*FI*/}
  1013.  else if (X291is_expanded(r31type(((T31*)_args),_i))) {
  1014. R=X291is_expanded(X662result_type(_e));
  1015. }
  1016. else {
  1017. R=0;
  1018. }
  1019. /*FI*/}}
  1020. _i=(_i)-(1);
  1021. }
  1022. /*IF*/if (R) {
  1023. _i=X496arg_count(a1);
  1024. while (!((!(R))||((_i)==(0)))) {
  1025. R=r353item(((T353*)(oBC431isa_dca_inline_memory)),_i);
  1026. _i=(_i)-(1);
  1027. }
  1028. }
  1029. /*FI*/return R;
  1030. }
  1031. int r521is_like_argument(T521* C,T0* a1,T0* a2,T0* a3){
  1032. int R=0;
  1033. T0* _ot=NULL;
  1034. T0* _tla=NULL;
  1035. _tla=a3;
  1036. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  1037. case 239: 
  1038. break;
  1039. default:
  1040. _tla=NULL;
  1041. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  1042. R=1;
  1043. _ot=X662result_type(r521expression(C,/*(IRF4.6rank*/(((T886*)((T886*)((((T239*)((T239*)_tla)))->_like_what/*12*/))))->_rank/*20*//*)*/));
  1044. /*IF*/if (!(X291is_a(X291run_type(a2),X291run_type(_ot)))) {
  1045. r683add_position(X662start_position(a1));
  1046. r521error(X291start_position(a3),((T0*)ms12_431));
  1047. }
  1048. /*FI*/}
  1049. /*FI*/return R;
  1050. }
  1051. void r521match_with(T521* C,T0* a1){
  1052. T0* _ft=NULL;
  1053. T0* _at=NULL;
  1054. T0* _e=NULL;
  1055. int _i=0;
  1056. T0* _fal=NULL;
  1057. _fal=/*X496*/((T0*)(((T832*)((T832*)a1)))->_arguments/*20*/);
  1058. /*IF*/if ((_fal)==((void*)(NULL))) {
  1059. r683add_position(X496start_position(a1));
  1060. r521error(r521start_position(C),((T0*)ms14_431));
  1061. }
  1062. /*FI*//*IF*/if (((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0))&&((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)_fal)))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(r521count(C)))) {
  1063. r683add_position((((T31*)((T31*)_fal)))->_start_position/*4*/);
  1064. r521error(r521start_position(C),((T0*)ms14_431));
  1065. }
  1066. /*FI*/_i=/*X96*/((int)(((T96*)((T96*)((((T521*)C))->_list/*4*/))))->_upper/*12*/);
  1067. while (!(((_i)==(0))||((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)>(0)))) {
  1068. _e=/*X96*/((T0*)r96item(((T96*)((((T521*)C))->_list/*4*/)),_i));
  1069. _at=X662result_type(_e);
  1070. _ft=r31type(((T31*)_fal),_i);
  1071. /*IF*/if (X662is_void(_e)) {
  1072. /*IF*/if (X291is_expanded(_ft)) {
  1073. r683add_position(X662start_position(_e));
  1074. r521error(X291start_position(_ft),((T0*)ms2_431));
  1075. }
  1076. /*FI*/}
  1077.  else if (X291is_like_current(_ft)) {
  1078. /*IF*/if (X662is_current(_e)) {
  1079. }
  1080.  else if (X291is_a(X291run_type(_at),X291run_type(_ft))) {
  1081. /*IF*/if (X291is_expanded(X291run_type(_at))) {
  1082. }
  1083.  else if (X291is_a(X291run_type(_ft),X291run_type(_at))) {
  1084. }
  1085. else {
  1086. r683add_position(X662start_position(_e));
  1087. r521error(X291start_position(_ft),((T0*)ms13_431));
  1088. }
  1089. /*FI*/}
  1090. else {
  1091. r683add_position(X662start_position(_e));
  1092. r521error(X291start_position(_ft),((T0*)ms13_431));
  1093. }
  1094. /*FI*/}
  1095.  else if (X291is_like_feature(_ft)) {
  1096. /*IF*/if (X291is_a(X291run_type(_at),X291run_type(_ft))) {
  1097. }
  1098. else {
  1099. r683add_position(X662start_position(_e));
  1100. r521error(X291start_position(_ft),((T0*)ms3_431));
  1101. }
  1102. /*FI*/}
  1103.  else if (r521is_like_argument(C,_e,_at,_ft)) {
  1104. }
  1105.  else if (X291is_a(X291run_type(_at),X291run_type(_ft))) {
  1106. }
  1107. else {
  1108. r683print_as_error(((T683*)(oBC364eh)));
  1109. r683add_position(X291start_position(_ft));
  1110. r521error(X662start_position(_e),((T0*)ms4_431));
  1111. }
  1112. /*FI*/_at=X291run_type(_at);
  1113. _ft=X291run_type(_ft);
  1114. /*IF*/if (X291is_expanded(_ft)) {
  1115. /*IF*/if (X291is_expanded(_at)) {
  1116. }
  1117. else {
  1118. X291used_as_reference(_ft);
  1119. }
  1120. /*FI*/}
  1121.  else if (X291is_expanded(_at)) {
  1122. X291used_as_reference(_at);
  1123. }
  1124. /*FI*/_i=(_i)-(1);
  1125. }
  1126. }
  1127. void r521make(T521* C,T0* a1){
  1128. T0* _fal=NULL;
  1129. int _i=0;
  1130. _fal=/*X496*/((T0*)(((T832*)((T832*)a1)))->_arguments/*20*/);
  1131. {T96*n=malloc(sizeof(*n));
  1132. *n=M96;
  1133. r96make(n,1,/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)_fal)))->_flat_list/*12*/))))->_upper/*12*//*)*/);
  1134. C->_list=(T0*)n;
  1135. }
  1136. _i=/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)_fal)))->_flat_list/*12*/))))->_upper/*12*//*)*/;
  1137. while (!((_i)==(0))) {
  1138. /*X96*//*[IRF3.6put*/{T96* C1=((T96*)((((T521*)C))->_list/*4*/));
  1139. T0* b1=/*(IRF4.6name*/r65item(((T65*)((((T31*)((T31*)_fal)))->_flat_list/*12*/)),_i)/*)*/;
  1140. int b2=_i;
  1141. ((((T96*)C1))->_storage/*4*/)[(b2)-((((T96*)C1))->_lower/*16*/)]=(b1);
  1142. }/*]*/
  1143. _i=(_i)-(1);
  1144. }
  1145. C->_current_type=/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/);
  1146. }
  1147. /*No:CECIL_ARG_LIST.nb_errors*/
  1148. T0* r521expression(T521* C,int a1){
  1149. T0* R=NULL;
  1150. R=/*X96*/((T0*)r96item(((T96*)((((T521*)C))->_list/*4*/)),a1));
  1151. return R;
  1152. }
  1153. T0* r521start_position(T521* C){
  1154. T0* R=NULL;
  1155. R=X662start_position(/*X96*/((T0*)r96item(((T96*)((((T521*)C))->_list/*4*/)),1)));
  1156. return R;
  1157. }
  1158. void r521compile_to_c(T521* C,T0* a1){
  1159. int _up=0;
  1160. int _i=0;
  1161. _i=1;
  1162. _up=r521count(C);
  1163. while (!((_i)>(_up))) {
  1164. r521compile_to_c_ith(C,a1,_i);
  1165. _i=(_i)+(1);
  1166. /*IF*/if ((_i)<=(_up)) {
  1167. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1168. char b1='\54';
  1169. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1170. }/*]*/
  1171. /*]*/
  1172. }
  1173. /*FI*/}
  1174. }
  1175. T0* r521to_runnable(T521* C,T0* a1){
  1176. T0* R=NULL;
  1177. T0* _e2=NULL;
  1178. T0* _e1=NULL;
  1179. int _i=0;
  1180. /*IF*/if (((((T521*)C))->_current_type/*8*/)==((void*)(NULL))) {
  1181. C->_current_type=a1;
  1182. _i=/*X96*/((int)(((T96*)((T96*)((((T521*)C))->_list/*4*/))))->_upper/*12*/);
  1183. while (!((_i)==(0))) {
  1184. _e1=/*X96*/((T0*)r96item(((T96*)((((T521*)C))->_list/*4*/)),_i));
  1185. _e2=X662to_runnable(_e1,(((T521*)C))->_current_type/*8*/);
  1186. /*IF*/if ((_e2)==((void*)(NULL))) {
  1187. r521error(X662start_position(_e1),((T0*)ms5_431));
  1188. }
  1189.  else if ((_e1)!=((void*)(_e2))) {
  1190. /*X96*//*[IRF3.6put*/{T96* C1=((T96*)((((T521*)C))->_list/*4*/));
  1191. T0* b1=_e2;
  1192. int b2=_i;
  1193. ((((T96*)C1))->_storage/*4*/)[(b2)-((((T96*)C1))->_lower/*16*/)]=(b1);
  1194. }/*]*/
  1195. }
  1196. /*FI*/_i=(_i)-(1);
  1197. }
  1198. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1199. R=(T0*)C;
  1200. }
  1201. /*FI*/}
  1202.  else if ((X291run_class(a1))==((void*)(r521run_class(C)))) {
  1203. R=(T0*)C;
  1204. }
  1205. else {
  1206. {T521*n=malloc(sizeof(*n));
  1207. *n=M521;
  1208. /*[IRF3.3super_make*/((((T521*)(n)))->_list)=(X96twin((((T521*)C))->_list/*4*/));
  1209. /*]*/
  1210. R=(T0*)n;
  1211. }
  1212. R=r521to_runnable(((T521*)R),a1);
  1213. }
  1214. /*FI*/return R;
  1215. }
  1216. void r521compile_to_c_ith(T521* C,T0* a1,int a2){
  1217. T0* _ft=NULL;
  1218. T0* _e=NULL;
  1219. _e=r521expression(C,a2);
  1220. _ft=X291run_type(r31type(((T31*)a1),a2));
  1221. X662mapping_c_arg(_e,_ft);
  1222. }
  1223. int r521is_static(T521* C){
  1224. int R=0;
  1225. int _i=0;
  1226. R=1;
  1227. _i=/*X96*/((int)(((T96*)((T96*)((((T521*)C))->_list/*4*/))))->_upper/*12*/);
  1228. while (!((!(R))||((_i)==(0)))) {
  1229. R=X662is_static(r521expression(C,_i));
  1230. _i=(_i)-(1);
  1231. }
  1232. return R;
  1233. }
  1234. /*No:CECIL_ARG_LIST.em1*/
  1235. /*No:CECIL_ARG_LIST.list*/
  1236. /*No:CECIL_ARG_LIST.em2*/
  1237. void r521dca_inline_ith(T521* C,T0* a1,int a2){
  1238. T0* _ft=NULL;
  1239. T0* _e=NULL;
  1240. _e=r521expression(C,a2);
  1241. _ft=X291run_type(r31type(((T31*)a1),a2));
  1242. X662dca_inline_argument(_e,_ft);
  1243. }
  1244. int r521can_be_dropped(T521* C){
  1245. int R=0;
  1246. int _i=0;
  1247. R=1;
  1248. _i=/*X96*/((int)(((T96*)((T96*)((((T521*)C))->_list/*4*/))))->_upper/*12*/);
  1249. while (!((!(R))||((_i)==(0)))) {
  1250. R=X662can_be_dropped(r521expression(C,_i));
  1251. _i=(_i)-(1);
  1252. }
  1253. return R;
  1254. }
  1255. /*No:CECIL_ARG_LIST.current_type*/
  1256. T0* r521run_class(T521* C){
  1257. T0* R=NULL;
  1258. R=X291run_class((((T521*)C))->_current_type/*8*/);
  1259. return R;
  1260. }
  1261. void r521compile_to_c_old(T521* C){
  1262. int _i=0;
  1263. /*IF*/if (((((T521*)C))->_list/*4*/)!=((void*)(NULL))) {
  1264. _i=1;
  1265. while (!((_i)>(/*X96*/((int)(((T96*)((T96*)((((T521*)C))->_list/*4*/))))->_upper/*12*/)))) {
  1266. X662compile_to_c_old(/*X96*/((T0*)r96item(((T96*)((((T521*)C))->_list/*4*/)),_i)));
  1267. _i=(_i)+(1);
  1268. }
  1269. }
  1270. /*FI*/}
  1271. /*No:CECIL_ARG_LIST.super_make*/
  1272. int r521is_pre_computable(T521* C){
  1273. int R=0;
  1274. int _i=0;
  1275. _i=r521count(C);
  1276. R=1;
  1277. while (!((!(R))||((_i)==(0)))) {
  1278. R=X662is_pre_computable(r521expression(C,_i));
  1279. _i=(_i)-(1);
  1280. }
  1281. return R;
  1282. }
  1283. int r521use_current(T521* C){
  1284. int R=0;
  1285. int _i=0;
  1286. _i=1;
  1287. while (!(((_i)>(r521count(C)))||(R))) {
  1288. R=X662use_current(r521expression(C,_i));
  1289. _i=(_i)+(1);
  1290. }
  1291. return R;
  1292. }
  1293. void r521dca_inline(T521* C,T0* a1){
  1294. int _up=0;
  1295. int _i=0;
  1296. _up=/*X96*/((int)(((T96*)((T96*)((((T521*)C))->_list/*4*/))))->_upper/*12*/);
  1297. _i=1;
  1298. while (!((_i)>(_up))) {
  1299. r521dca_inline_ith(C,a1,_i);
  1300. _i=(_i)+(1);
  1301. /*IF*/if ((_i)<=(_up)) {
  1302. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1303. char b1='\54';
  1304. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1305. }/*]*/
  1306. /*]*/
  1307. }
  1308. /*FI*/}
  1309. }
  1310. int r521count(T521* C){
  1311. int R=0;
  1312. R=/*X96*/((int)(((T96*)((T96*)((((T521*)C))->_list/*4*/))))->_upper/*12*/);
  1313. return R;
  1314. }
  1315. void r521error(T0* a1,T0* a2){
  1316. r683add_position(a1);
  1317. r683error(((T683*)(oBC364eh)),a2);
  1318. }
  1319. T0* r521first(T521* C){
  1320. T0* R=NULL;
  1321. R=X96first((((T521*)C))->_list/*4*/);
  1322. return R;
  1323. }
  1324. void r521afd_check(T521* C){
  1325. int _i=0;
  1326. _i=/*X96*/((int)(((T96*)((T96*)((((T521*)C))->_list/*4*/))))->_upper/*12*/);
  1327. while (!((_i)==(0))) {
  1328. X662afd_check(/*X96*/((T0*)r96item(((T96*)((((T521*)C))->_list/*4*/)),_i)));
  1329. _i=(_i)-(1);
  1330. }
  1331. }
  1332.  
  1333.