home *** CD-ROM | disk | FTP | other *** search
/ Amiga ACS 1998 #4 / amigaacscoverdisc1998-041998.iso / utilities / shareware / dev / ppcsmalleiffel / source.lha / bin_c / compile_to_c36.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  21.6 KB  |  688 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. int r90is_a(T90* C,T0* a1){
  10. int R=0;
  11. R=X291is_a(X291run_type((((T90*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
  12. /*IF*/if (!(R)) {
  13. r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T90*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/);
  14. r90error(X662start_position(a1),((T0*)ms4_662));
  15. }
  16. /*FI*/return R;
  17. }
  18. /*No:CALL_INFIX_IMPLIES.is_current*/
  19. void r90mapping_c_arg(T90* C,T0* a1){
  20. T0* _actual_type=NULL;
  21. _actual_type=X291run_type((((T90*)C))->_result_type/*20*/);
  22. /*IF*/if (X291is_reference(_actual_type)) {
  23. /*IF*/if (X291is_reference(a1)) {
  24. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T90* C1=C;
  25. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  26. }/*]*/
  27. /*]*/
  28. }
  29. else {
  30. X291to_expanded(_actual_type);
  31. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  32. char b1='\50';
  33. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  34. }/*]*/
  35. /*]*/
  36. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T90* C1=C;
  37. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  38. }/*]*/
  39. /*]*/
  40. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  41. char b1='\51';
  42. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  43. }/*]*/
  44. /*]*/
  45. }
  46. /*FI*/}
  47. else {
  48. /*IF*/if (X291is_reference(a1)) {
  49. X291to_reference(_actual_type);
  50. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  51. char b1='\50';
  52. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  53. }/*]*/
  54. /*]*/
  55. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T90* C1=C;
  56. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  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. }
  65. else {
  66. /*IF*/if (X291need_c_struct(a1)) {
  67. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  68. char b1='\46';
  69. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  70. }/*]*/
  71. /*]*/
  72. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  73. char b1='\50';
  74. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  75. }/*]*/
  76. /*]*/
  77. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T90* C1=C;
  78. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  79. }/*]*/
  80. /*]*/
  81. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  82. char b1='\51';
  83. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  84. }/*]*/
  85. /*]*/
  86. }
  87. else {
  88. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T90* C1=C;
  89. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  90. }/*]*/
  91. /*]*/
  92. }
  93. /*FI*/}
  94. /*FI*/}
  95. /*FI*/}
  96. /*No:CALL_INFIX_IMPLIES.static_value*/
  97. void r90make(T90* C,T0* a1,T0* a2,T0* a3){
  98. T0* _eal=NULL;
  99. /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
  100. r683add_position(a2);
  101. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
  102. r683fatal_error(((T683*)(oBC364eh)),b1);
  103. }/*]*/
  104. }
  105. /*FI*/{T454*n=malloc(sizeof(*n));
  106. *n=M454;
  107. r454make(n,r90operator(),a2);
  108. C->_feature_name=(T0*)n;
  109. }
  110. {T431*n=malloc(sizeof(*n));
  111. *n=M431;
  112. /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
  113. /*]*/
  114. _eal=(T0*)n;
  115. }
  116. r90make_call_1(C,a1,(((T90*)C))->_feature_name/*28*/,_eal);
  117. }
  118. void r90mapping_c_target(T90* C,T0* a1){
  119. T0* _actual_type=NULL;
  120. int _flag=0;
  121. _flag=r324call_invariant_start(a1);
  122. _actual_type=X291run_type((((T90*)C))->_result_type/*20*/);
  123. /*IF*/if (X291is_reference(_actual_type)) {
  124. /*IF*/if (X291is_reference(a1)) {
  125. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  126. char b1='\50';
  127. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  128. }/*]*/
  129. /*]*/
  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='T';
  137. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  138. }/*]*/
  139. /*]*/
  140. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X291id(a1));
  141. /*]*/
  142. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  143. char b1='\52';
  144. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  145. }/*]*/
  146. /*]*/
  147. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  148. char b1='\51';
  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='\50';
  154. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  155. }/*]*/
  156. /*]*/
  157. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T90* C1=C;
  158. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  159. }/*]*/
  160. /*]*/
  161. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  162. char b1='\51';
  163. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  164. }/*]*/
  165. /*]*/
  166. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  167. char b1='\51';
  168. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  169. }/*]*/
  170. /*]*/
  171. }
  172. else {
  173. X291to_expanded(_actual_type);
  174. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  175. char b1='\50';
  176. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  177. }/*]*/
  178. /*]*/
  179. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T90* C1=C;
  180. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  181. }/*]*/
  182. /*]*/
  183. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  184. char b1='\51';
  185. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  186. }/*]*/
  187. /*]*/
  188. }
  189. /*FI*/}
  190. else {
  191. /*IF*/if (X291is_reference(a1)) {
  192. X291to_reference(_actual_type);
  193. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  194. char b1='\50';
  195. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  196. }/*]*/
  197. /*]*/
  198. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T90* C1=C;
  199. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  200. }/*]*/
  201. /*]*/
  202. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  203. char b1='\51';
  204. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  205. }/*]*/
  206. /*]*/
  207. }
  208. else {
  209. /*IF*/if (X291need_c_struct(a1)) {
  210. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  211. char b1='\46';
  212. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  213. }/*]*/
  214. /*]*/
  215. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  216. char b1='\50';
  217. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  218. }/*]*/
  219. /*]*/
  220. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T90* C1=C;
  221. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  222. }/*]*/
  223. /*]*/
  224. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  225. char b1='\51';
  226. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  227. }/*]*/
  228. /*]*/
  229. }
  230. else {
  231. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T90* C1=C;
  232. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  233. }/*]*/
  234. /*]*/
  235. }
  236. /*FI*/}
  237. /*FI*/}
  238. /*FI*//*IF*/if (_flag) {
  239. /*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T544* C1=((T544*)(oBC324out_c));
  240. char b1='\51';
  241. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  242. }/*]*/
  243. /*]*/
  244. }
  245. /*FI*/}
  246. /*No:CALL_INFIX_IMPLIES.nb_errors*/
  247. /*No:CALL_INFIX_IMPLIES.feature_name*/
  248. /*No:CALL_INFIX_IMPLIES.fz_iinaiv*/
  249. /*No:CALL_INFIX_IMPLIES.arg_count*/
  250. /*No:CALL_INFIX_IMPLIES.dca_inline_argument*/
  251. /*No:CALL_INFIX_IMPLIES.run_feature*/
  252. /*No:CALL_INFIX_IMPLIES.call_proc_call_c2c*/
  253. /*No:CALL_INFIX_IMPLIES.start_position*/
  254. /*No:CALL_INFIX_IMPLIES.target*/
  255. /*No:CALL_INFIX_IMPLIES.compile_to_c*/
  256. /*No:CALL_INFIX_IMPLIES.c_simple*/
  257. T0* r90to_runnable(T90* C,T0* a1){
  258. T0* R=NULL;
  259. T0* _tla=NULL;
  260. T0* _a=NULL;
  261. /*IF*/if (((((T90*)C))->_current_type/*8*/)==((void*)(NULL))) {
  262. r90to_runnable_0(C,a1);
  263. _a=X431to_runnable((((T90*)C))->_arguments/*24*/,a1);
  264. /*IF*/if ((_a)==((void*)(NULL))) {
  265. r90error(X662start_position(r90arg1(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((((T90*)C))->_arguments/*24*/,(((T90*)C))->_run_feature/*16*/);
  272. }
  273. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  274. _tla=(((T90*)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(r90arg1(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=r90twin(C);
  290. /*[IRF3.3set_current_type*/((((T90*)(((T90*)R))))->_current_type)=(NULL);
  291. /*]*/
  292. R=r90to_runnable(((T90*)R),a1);
  293. }
  294. /*FI*/return R;
  295. }
  296. /*No:CALL_INFIX_IMPLIES.result_type*/
  297. /*No:CALL_INFIX_IMPLIES.is_result*/
  298. T0* r90twin(T90* C){
  299. T0* R=NULL;
  300. R=malloc(sizeof(*C));
  301. *((T90*)R)=*C;
  302. return R;
  303. }
  304. /*No:CALL_INFIX_IMPLIES.set_current_type*/
  305. T0* r90operator(void){
  306. T0* R=NULL;
  307. R=((T0*)ms34_473);
  308. return R;
  309. }
  310. int r90is_static(T90* C){
  311. int R=0;
  312. /*IF*/if (X291is_boolean(X662result_type((((T90*)C))->_target/*12*/))) {
  313. /*IF*/if (X662is_static((((T90*)C))->_target/*12*/)) {
  314. /*IF*/if ((X662static_value((((T90*)C))->_target/*12*/))==(0)) {
  315. R=1;
  316. C->_static_value_mem=1;
  317. }
  318.  else if (X662is_static(r90arg1(C))) {
  319. R=1;
  320. C->_static_value_mem=X662static_value(r90arg1(C));
  321. }
  322. /*FI*/}
  323. /*FI*/}
  324. /*FI*/return R;
  325. }
  326. /*No:CALL_INFIX_IMPLIES.us_implies*/
  327. /*No:CALL_INFIX_IMPLIES.fz_07*/
  328. /*No:CALL_INFIX_IMPLIES.can_be_dropped*/
  329. /*No:CALL_INFIX_IMPLIES.current_type*/
  330. void r90compile_to_c_old(T90* C){
  331. X662compile_to_c_old((((T90*)C))->_target/*12*/);
  332. /*IF*/{/*AT*/X431compile_to_c_old((((T90*)C))->_arguments/*24*/);
  333. }
  334. /*FI*/}
  335. /*No:CALL_INFIX_IMPLIES.static_value_mem*/
  336. void r90make_call_1(T90* C,T0* a1,T0* a2,T0* a3){
  337. C->_target=a1;
  338. C->_feature_name=a2;
  339. C->_arguments=a3;
  340. }
  341. /*No:CALL_INFIX_IMPLIES.is_manifest_string*/
  342. /*No:CALL_INFIX_IMPLIES.is_void*/
  343. void r90to_runnable_0(T90* C,T0* a1){
  344. C->_current_type=a1;
  345. r90cpc_to_runnable(C,a1);
  346. C->_result_type=/*X496*/((T0*)(((T832*)((T832*)((((T90*)C))->_run_feature/*16*/))))->_result_type/*24*/);
  347. /*IF*/if (((((T90*)C))->_result_type/*20*/)==((void*)(NULL))) {
  348. r683add_position(X496start_position((((T90*)C))->_run_feature/*16*/));
  349. r90error((((T454*)((T454*)((((T90*)C))->_feature_name/*28*/))))->_start_position/*8*/,((T0*)ms1_295));
  350. }
  351.  else if (X291is_like_current((((T90*)C))->_result_type/*20*/)) {
  352. C->_result_type=X662result_type((((T90*)C))->_target/*12*/);
  353. }
  354. /*FI*/}
  355. /*No:CALL_INFIX_IMPLIES.is_pre_computable*/
  356. void r90cpc_to_runnable(T90* C,T0* a1){
  357. T0* _rc=NULL;
  358. T0* _t=NULL;
  359. _t=X662to_runnable((((T90*)C))->_target/*12*/,a1);
  360. /*IF*/if ((_t)==((void*)(NULL))) {
  361. r683add_position(X662start_position((((T90*)C))->_target/*12*/));
  362. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  363. r683fatal_error(((T683*)(oBC364eh)),b1);
  364. }/*]*/
  365. }
  366. /*FI*/C->_target=_t;
  367. _rc=X291run_class(X662result_type((((T90*)C))->_target/*12*/));
  368. C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C);
  369. r576update((((T90*)C))->_target/*12*/,(((T90*)C))->_run_feature/*16*/);
  370. }
  371. int r90use_current(T90* C){
  372. int R=0;
  373. /*IF*/{/*AT*/R=X431use_current((((T90*)C))->_arguments/*24*/);
  374. }
  375. /*FI*//*IF*/if (R) {
  376. }
  377.  else if (X662is_current((((T90*)C))->_target/*12*/)) {
  378. R=X496use_current((((T90*)C))->_run_feature/*16*/);
  379. }
  380. else {
  381. R=X662use_current((((T90*)C))->_target/*12*/);
  382. }
  383. /*FI*/return R;
  384. }
  385. void r90finalize(T90* C){
  386. T0* _rf=NULL;
  387. T0* _rc=NULL;
  388. _rf=(((T90*)C))->_run_feature/*16*/;
  389. _rc=X291run_class(/*X496*/((T0*)(((T832*)((T832*)_rf)))->_current_type/*4*/));
  390. /*IF*/if (!((((T355*)((T355*)_rc)))->_at_run_time/*8*/)) {
  391. _rf=r355dynamic(((T355*)(r396first(((T396*)((((T355*)((T355*)_rc)))->_running/*12*/))))),_rf);
  392. C->_run_feature=_rf;
  393. }
  394. /*FI*/}
  395. void r90error(T0* a1,T0* a2){
  396. r683add_position(a1);
  397. r683error(((T683*)(oBC364eh)),a2);
  398. }
  399. /*No:CALL_INFIX_IMPLIES.isa_dca_inline_argument*/
  400. /*No:CALL_INFIX_IMPLIES.fatal_error*/
  401. /*No:CALL_INFIX_IMPLIES.fz_bad_argument*/
  402. T0* r90arg1(T90* C){
  403. T0* R=NULL;
  404. R=X431first((((T90*)C))->_arguments/*24*/);
  405. return R;
  406. }
  407. void r90afd_check(T90* C){
  408. T0* _running=NULL;
  409. T0* _rc=NULL;
  410. _rc=X291run_class(X662result_type((((T90*)C))->_target/*12*/));
  411. _running=(((T355*)((T355*)_rc)))->_running/*12*/;
  412. /*IF*/if ((_running)==((void*)(NULL))) {
  413. r683add_position(X662start_position((((T90*)C))->_target/*12*/));
  414. /*[IRF3.6append*/{T0* b1=((T0*)ms1_135);
  415. r7append(((T7*)(oBC683explanation)),b1);
  416. }/*]*/
  417. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/);
  418. r7append(((T7*)(oBC683explanation)),b1);
  419. }/*]*/
  420. /*[IRF3.6append*/{T0* b1=((T0*)ms141_470);
  421. r7append(((T7*)(oBC683explanation)),b1);
  422. }/*]*/
  423. r683print_as_warning(((T683*)(oBC364eh)));
  424. r355set_at_run_time(((T355*)_rc));
  425. }
  426.  else if ((r396count(((T396*)_running)))>(0)) {
  427. r576update((((T90*)C))->_target/*12*/,(((T90*)C))->_run_feature/*16*/);
  428. }
  429. /*FI*/X662afd_check((((T90*)C))->_target/*12*/);
  430. /*IF*/{/*AT*/X431afd_check((((T90*)C))->_arguments/*24*/);
  431. }
  432. /*FI*/}
  433. T0* r715add_comment(T715* C,T0* a1){
  434. T0* R=NULL;
  435. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  436. R=(T0*)C;
  437. }
  438. else {
  439. {T529*n=malloc(sizeof(*n));
  440. *n=M529;
  441. r529make(n,(T0*)C,a1);
  442. R=(T0*)n;
  443. }
  444. }
  445. /*FI*/return R;
  446. }
  447. int r715to_integer(T715* C){
  448. int R=0;
  449. r715error((((T715*)C))->_start_position/*16*/,((T0*)ms69_470));
  450. return R;
  451. }
  452. int r715is_a(T715* C,T0* a1){
  453. int R=0;
  454. R=X291is_a(X291run_type((((T715*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
  455. /*IF*/if (!(R)) {
  456. r683add_position((((T715*)C))->_start_position/*16*/);
  457. r715error(X662start_position(a1),((T0*)ms4_662));
  458. }
  459. /*FI*/return R;
  460. }
  461. /*No:E_RESULT.is_current*/
  462. void r715mapping_c_arg(T715* C,T0* a1){
  463. T0* _rt=NULL;
  464. _rt=X291run_type((((T715*)C))->_result_type/*20*/);
  465. /*IF*/if (X291is_reference(_rt)) {
  466. /*IF*/if (X291is_reference(a1)) {
  467. /*[IRF3.2compile_to_c*//*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  468. char b1='R';
  469. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  470. }/*]*/
  471. /*]*/
  472. /*]*/
  473. }
  474. else {
  475. X291to_expanded(_rt);
  476. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  477. char b1='\50';
  478. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  479. }/*]*/
  480. /*]*/
  481. /*[IRF3.2compile_to_c*//*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  482. char b1='R';
  483. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  484. }/*]*/
  485. /*]*/
  486. /*]*/
  487. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  488. char b1='\51';
  489. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  490. }/*]*/
  491. /*]*/
  492. }
  493. /*FI*/}
  494. else {
  495. /*IF*/if (X291is_reference(a1)) {
  496. X291to_reference(_rt);
  497. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  498. char b1='\50';
  499. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  500. }/*]*/
  501. /*]*/
  502. /*[IRF3.2compile_to_c*//*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  503. char b1='R';
  504. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  505. }/*]*/
  506. /*]*/
  507. /*]*/
  508. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  509. char b1='\51';
  510. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  511. }/*]*/
  512. /*]*/
  513. }
  514. else {
  515. /*IF*/if (X291need_c_struct(_rt)) {
  516. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  517. char b1='\46';
  518. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  519. }/*]*/
  520. /*]*/
  521. }
  522. /*FI*//*[IRF3.2compile_to_c*//*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  523. char b1='R';
  524. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  525. }/*]*/
  526. /*]*/
  527. /*]*/
  528. }
  529. /*FI*/}
  530. /*FI*/}
  531. /*No:E_RESULT.static_value*/
  532. void r715make(T715* C,T0* a1){
  533. C->_to_string=((T0*)ms146_473);
  534. C->_start_position=a1;
  535. }
  536. void r715mapping_c_target(T715* C,T0* a1){
  537. T0* _rt=NULL;
  538. int _flag=0;
  539. _flag=r324call_invariant_start(a1);
  540. _rt=X291run_type((((T715*)C))->_result_type/*20*/);
  541. /*IF*/if (X291is_reference(_rt)) {
  542. /*IF*/if (X291is_reference(a1)) {
  543. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  544. char b1='\50';
  545. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  546. }/*]*/
  547. /*]*/
  548. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  549. char b1='\50';
  550. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  551. }/*]*/
  552. /*]*/
  553. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  554. char b1='T';
  555. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  556. }/*]*/
  557. /*]*/
  558. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X291id(a1));
  559. /*]*/
  560. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  561. char b1='\52';
  562. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  563. }/*]*/
  564. /*]*/
  565. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  566. char b1='\51';
  567. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  568. }/*]*/
  569. /*]*/
  570. /*[IRF3.2compile_to_c*//*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  571. char b1='R';
  572. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  573. }/*]*/
  574. /*]*/
  575. /*]*/
  576. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  577. char b1='\51';
  578. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  579. }/*]*/
  580. /*]*/
  581. }
  582. else {
  583. X291to_expanded(_rt);
  584. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  585. char b1='\50';
  586. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  587. }/*]*/
  588. /*]*/
  589. /*[IRF3.2compile_to_c*//*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  590. char b1='R';
  591. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  592. }/*]*/
  593. /*]*/
  594. /*]*/
  595. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  596. char b1='\51';
  597. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  598. }/*]*/
  599. /*]*/
  600. }
  601. /*FI*/}
  602. else {
  603. /*IF*/if (X291is_reference(a1)) {
  604. X291to_reference(_rt);
  605. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  606. char b1='\50';
  607. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  608. }/*]*/
  609. /*]*/
  610. /*[IRF3.2compile_to_c*//*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  611. char b1='R';
  612. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  613. }/*]*/
  614. /*]*/
  615. /*]*/
  616. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  617. char b1='\51';
  618. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  619. }/*]*/
  620. /*]*/
  621. }
  622. else {
  623. /*IF*/if (X291need_c_struct(_rt)) {
  624. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  625. char b1='\46';
  626. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  627. }/*]*/
  628. /*]*/
  629. }
  630. /*FI*//*[IRF3.2compile_to_c*//*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  631. char b1='R';
  632. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  633. }/*]*/
  634. /*]*/
  635. /*]*/
  636. }
  637. /*FI*/}
  638. /*FI*//*IF*/if (_flag) {
  639. /*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T544* C1=((T544*)(oBC324out_c));
  640. char b1='\51';
  641. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  642. }/*]*/
  643. /*]*/
  644. }
  645. /*FI*/}
  646. /*No:E_RESULT.to_string*/
  647. /*No:E_RESULT.fz_iinaiv*/
  648. /*No:E_RESULT.dca_inline_argument*/
  649. /*No:E_RESULT.start_position*/
  650. /*No:E_RESULT.compile_to_c*/
  651. /*No:E_RESULT.c_simple*/
  652. T0* r715to_runnable(T715* C,T0* a1){
  653. T0* R=NULL;
  654. /*IF*/if (((((T715*)C))->_current_type/*8*/)==((void*)(NULL))) {
  655. C->_current_type=a1;
  656. C->_result_type=/*X496*/((T0*)(((T832*)((T832*)(r604top_rf(((T604*)(oBC364small_eiffel)))))))->_result_type/*24*/);
  657. R=(T0*)C;
  658. }
  659. else {
  660. {T715*n=malloc(sizeof(*n));
  661. *n=M715;
  662. r715make(n,(((T715*)C))->_start_position/*16*/);
  663. R=(T0*)n;
  664. }
  665. R=r715to_runnable(((T715*)R),a1);
  666. }
  667. /*FI*/return R;
  668. }
  669. /*No:E_RESULT.result_type*/
  670. /*No:E_RESULT.is_result*/
  671. /*No:E_RESULT.is_static*/
  672. /*No:E_RESULT.us_result*/
  673. /*No:E_RESULT.can_be_dropped*/
  674. /*No:E_RESULT.current_type*/
  675. /*No:E_RESULT.compile_to_c_old*/
  676. /*No:E_RESULT.static_value_mem*/
  677. /*No:E_RESULT.is_manifest_string*/
  678. /*No:E_RESULT.is_void*/
  679. /*No:E_RESULT.is_pre_computable*/
  680. /*No:E_RESULT.use_current*/
  681. void r715error(T0* a1,T0* a2){
  682. r683add_position(a1);
  683. r683error(((T683*)(oBC364eh)),a2);
  684. }
  685. /*No:E_RESULT.isa_dca_inline_argument*/
  686. /*No:E_RESULT.afd_check*/
  687.  
  688.