home *** CD-ROM | disk | FTP | other *** search
/ Amiga ACS 1998 #4 / amigaacscoverdisc1998-041998.iso / utilities / shareware / dev / ppcsmalleiffel / source.lha / bin_c / compile_to_c37.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  73.0 KB  |  2,227 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:CREATION_CLAUSE_LIST.make*/
  10. T0* r378start_position(T378* C){
  11. T0* R=NULL;
  12. R=(((T583*)((T583*)(r235first(((T235*)((((T378*)C))->_list/*0*/)))))))->_start_position/*0*/;
  13. return R;
  14. }
  15. void r378check_expanded_with(T378* C,T0* a1){
  16. /*IF*/if (((((T235*)((T235*)((((T378*)C))->_list/*0*/))))->_upper/*8*/)>(1)) {
  17. r683add_type(a1,((T0*)ms65_470));
  18. r683add_position((((T583*)((T583*)(r235item(((T235*)((((T378*)C))->_list/*0*/)),1)))))->_start_position/*0*/);
  19. r683add_position((((T583*)((T583*)(r235item(((T235*)((((T378*)C))->_list/*0*/)),2)))))->_start_position/*0*/);
  20. /*[IRF3.2fatal_error_vtec_2*//*[IRF3.6fatal_error*/{T0* b1=((T0*)ms12_364);
  21. r683fatal_error(((T683*)(oBC364eh)),b1);
  22. }/*]*/
  23. /*]*/
  24. }
  25. /*FI*/r583check_expanded_with(((T583*)(r235item(((T235*)((((T378*)C))->_list/*0*/)),1))),a1);
  26. }
  27. T0* r378get_clause(T378* C,T0* a1){
  28. T0* R=NULL;
  29. int _i=0;
  30. _i=1;
  31. while (!(((_i)>((((T235*)((T235*)((((T378*)C))->_list/*0*/))))->_upper/*8*/))||(r583has(((T583*)(r235item(((T235*)((((T378*)C))->_list/*0*/)),_i))),a1)))) {
  32. _i=(_i)+(1);
  33. }
  34. /*IF*/if ((_i)<=((((T235*)((T235*)((((T378*)C))->_list/*0*/))))->_upper/*8*/)) {
  35. R=r235item(((T235*)((((T378*)C))->_list/*0*/)),_i);
  36. }
  37. /*FI*/return R;
  38. }
  39. /*No:CREATION_CLAUSE_LIST.list*/
  40. T0* r378expanded_initializer(T378* C,T0* a1){
  41. T0* R=NULL;
  42. R=r583expanded_initializer(((T583*)(r235item(((T235*)((((T378*)C))->_list/*0*/)),1))),a1);
  43. return R;
  44. }
  45. /*No:CREATION_CLAUSE_LIST.fz_cbe*/
  46. /*No:CREATION_CLAUSE_LIST.fatal_error_vtec_2*/
  47. /*No:CREATION_CLAUSE_LIST.add_last*/
  48. /*No:CREATION_CLAUSE_LIST.fatal_error*/
  49. /*No:RUN_REQUIRE.make*/
  50. void r567compile_to_c(T567* C){
  51. int _i=0;
  52. /*IF*/if (r590require_check(((T590*)(oBC364run_control)))) {
  53. /*IF*/if (((((T522*)((T522*)((((T567*)C))->_list/*0*/))))->_upper/*8*/)==(1)) {
  54. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms6_567));
  55. /*]*/
  56. r343compile_to_c(((T343*)(r522first(((T522*)((((T567*)C))->_list/*0*/))))));
  57. }
  58. else {
  59. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms7_567));
  60. /*]*/
  61. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms8_567));
  62. /*]*/
  63. r343compile_to_c(((T343*)(r522first(((T522*)((((T567*)C))->_list/*0*/))))));
  64. _i=1;
  65. while (!((_i)>((((T522*)((T522*)((((T567*)C))->_list/*0*/))))->_upper/*8*/))) {
  66. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms9_567));
  67. /*]*/
  68. r343compile_to_c(((T343*)(r522item(((T522*)((((T567*)C))->_list/*0*/)),_i))));
  69. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms146_470));
  70. /*]*/
  71. _i=(_i)+(1);
  72. /*IF*/if ((_i)==((((T522*)((T522*)((((T567*)C))->_list/*0*/))))->_upper/*8*/)) {
  73. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms10_567));
  74. /*]*/
  75. }
  76. /*FI*/}
  77. }
  78. /*FI*/}
  79. /*FI*/}
  80. /*No:RUN_REQUIRE.fz_12*/
  81. /*No:RUN_REQUIRE.list*/
  82. int r567use_current(T567* C){
  83. int R=0;
  84. int _i=0;
  85. _i=1;
  86. while (!((R)||((_i)>((((T522*)((T522*)((((T567*)C))->_list/*0*/))))->_upper/*8*/)))) {
  87. R=r343use_current(((T343*)(r522item(((T522*)((((T567*)C))->_list/*0*/)),_i))));
  88. _i=(_i)+(1);
  89. }
  90. return R;
  91. }
  92. void r567afd_check(T567* C){
  93. int _i=0;
  94. _i=(((T522*)((T522*)((((T567*)C))->_list/*0*/))))->_upper/*8*/;
  95. while (!((_i)==(0))) {
  96. r343afd_check(((T343*)(r522item(((T522*)((((T567*)C))->_list/*0*/)),_i))));
  97. _i=(_i)-(1);
  98. }
  99. }
  100. /*No:CALL_INFIX_AND.arguments*/
  101. T0* r313add_comment(T313* C,T0* a1){
  102. T0* R=NULL;
  103. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  104. R=(T0*)C;
  105. }
  106. else {
  107. {T529*n=malloc(sizeof(*n));
  108. *n=M529;
  109. r529make(n,(T0*)C,a1);
  110. R=(T0*)n;
  111. }
  112. }
  113. /*FI*/return R;
  114. }
  115. int r313to_integer(T313* C){
  116. int R=0;
  117. r313error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T313*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  118. return R;
  119. }
  120. int r313is_a(T313* C,T0* a1){
  121. int R=0;
  122. R=X291is_a(X291run_type((((T313*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
  123. /*IF*/if (!(R)) {
  124. r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T313*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/);
  125. r313error(X662start_position(a1),((T0*)ms4_662));
  126. }
  127. /*FI*/return R;
  128. }
  129. /*No:CALL_INFIX_AND.is_current*/
  130. void r313mapping_c_arg(T313* C,T0* a1){
  131. T0* _actual_type=NULL;
  132. _actual_type=X291run_type((((T313*)C))->_result_type/*20*/);
  133. /*IF*/if (X291is_reference(_actual_type)) {
  134. /*IF*/if (X291is_reference(a1)) {
  135. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T313* C1=C;
  136. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  137. }/*]*/
  138. /*]*/
  139. }
  140. else {
  141. X291to_expanded(_actual_type);
  142. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  143. char b1='\50';
  144. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  145. }/*]*/
  146. /*]*/
  147. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T313* C1=C;
  148. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  149. }/*]*/
  150. /*]*/
  151. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  152. char b1='\51';
  153. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  154. }/*]*/
  155. /*]*/
  156. }
  157. /*FI*/}
  158. else {
  159. /*IF*/if (X291is_reference(a1)) {
  160. X291to_reference(_actual_type);
  161. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  162. char b1='\50';
  163. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  164. }/*]*/
  165. /*]*/
  166. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T313* C1=C;
  167. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  168. }/*]*/
  169. /*]*/
  170. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  171. char b1='\51';
  172. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  173. }/*]*/
  174. /*]*/
  175. }
  176. else {
  177. /*IF*/if (X291need_c_struct(a1)) {
  178. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  179. char b1='\46';
  180. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  181. }/*]*/
  182. /*]*/
  183. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  184. char b1='\50';
  185. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  186. }/*]*/
  187. /*]*/
  188. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T313* C1=C;
  189. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  190. }/*]*/
  191. /*]*/
  192. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  193. char b1='\51';
  194. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  195. }/*]*/
  196. /*]*/
  197. }
  198. else {
  199. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T313* C1=C;
  200. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  201. }/*]*/
  202. /*]*/
  203. }
  204. /*FI*/}
  205. /*FI*/}
  206. /*FI*/}
  207. /*No:CALL_INFIX_AND.us_and*/
  208. /*No:CALL_INFIX_AND.static_value*/
  209. void r313make(T313* C,T0* a1,T0* a2,T0* a3){
  210. T0* _eal=NULL;
  211. /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
  212. r683add_position(a2);
  213. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
  214. r683fatal_error(((T683*)(oBC364eh)),b1);
  215. }/*]*/
  216. }
  217. /*FI*/{T454*n=malloc(sizeof(*n));
  218. *n=M454;
  219. r454make(n,r313operator(),a2);
  220. C->_feature_name=(T0*)n;
  221. }
  222. {T431*n=malloc(sizeof(*n));
  223. *n=M431;
  224. /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
  225. /*]*/
  226. _eal=(T0*)n;
  227. }
  228. r313make_call_1(C,a1,(((T313*)C))->_feature_name/*28*/,_eal);
  229. }
  230. void r313mapping_c_target(T313* C,T0* a1){
  231. T0* _actual_type=NULL;
  232. int _flag=0;
  233. _flag=r324call_invariant_start(a1);
  234. _actual_type=X291run_type((((T313*)C))->_result_type/*20*/);
  235. /*IF*/if (X291is_reference(_actual_type)) {
  236. /*IF*/if (X291is_reference(a1)) {
  237. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  238. char b1='\50';
  239. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  240. }/*]*/
  241. /*]*/
  242. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  243. char b1='\50';
  244. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  245. }/*]*/
  246. /*]*/
  247. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  248. char b1='T';
  249. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  250. }/*]*/
  251. /*]*/
  252. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X291id(a1));
  253. /*]*/
  254. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  255. char b1='\52';
  256. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  257. }/*]*/
  258. /*]*/
  259. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  260. char b1='\51';
  261. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  262. }/*]*/
  263. /*]*/
  264. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  265. char b1='\50';
  266. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  267. }/*]*/
  268. /*]*/
  269. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T313* C1=C;
  270. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  271. }/*]*/
  272. /*]*/
  273. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  274. char b1='\51';
  275. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  276. }/*]*/
  277. /*]*/
  278. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  279. char b1='\51';
  280. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  281. }/*]*/
  282. /*]*/
  283. }
  284. else {
  285. X291to_expanded(_actual_type);
  286. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  287. char b1='\50';
  288. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  289. }/*]*/
  290. /*]*/
  291. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T313* C1=C;
  292. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  293. }/*]*/
  294. /*]*/
  295. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  296. char b1='\51';
  297. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  298. }/*]*/
  299. /*]*/
  300. }
  301. /*FI*/}
  302. else {
  303. /*IF*/if (X291is_reference(a1)) {
  304. X291to_reference(_actual_type);
  305. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  306. char b1='\50';
  307. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  308. }/*]*/
  309. /*]*/
  310. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T313* C1=C;
  311. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  312. }/*]*/
  313. /*]*/
  314. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  315. char b1='\51';
  316. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  317. }/*]*/
  318. /*]*/
  319. }
  320. else {
  321. /*IF*/if (X291need_c_struct(a1)) {
  322. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  323. char b1='\46';
  324. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  325. }/*]*/
  326. /*]*/
  327. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  328. char b1='\50';
  329. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  330. }/*]*/
  331. /*]*/
  332. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T313* C1=C;
  333. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  334. }/*]*/
  335. /*]*/
  336. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  337. char b1='\51';
  338. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  339. }/*]*/
  340. /*]*/
  341. }
  342. else {
  343. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T313* C1=C;
  344. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  345. }/*]*/
  346. /*]*/
  347. }
  348. /*FI*/}
  349. /*FI*/}
  350. /*FI*//*IF*/if (_flag) {
  351. /*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T544* C1=((T544*)(oBC324out_c));
  352. char b1='\51';
  353. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  354. }/*]*/
  355. /*]*/
  356. }
  357. /*FI*/}
  358. /*No:CALL_INFIX_AND.nb_errors*/
  359. /*No:CALL_INFIX_AND.feature_name*/
  360. /*No:CALL_INFIX_AND.fz_iinaiv*/
  361. /*No:CALL_INFIX_AND.arg_count*/
  362. /*No:CALL_INFIX_AND.dca_inline_argument*/
  363. /*No:CALL_INFIX_AND.run_feature*/
  364. /*No:CALL_INFIX_AND.call_proc_call_c2c*/
  365. /*No:CALL_INFIX_AND.start_position*/
  366. /*No:CALL_INFIX_AND.target*/
  367. /*No:CALL_INFIX_AND.compile_to_c*/
  368. /*No:CALL_INFIX_AND.c_simple*/
  369. T0* r313to_runnable(T313* C,T0* a1){
  370. T0* R=NULL;
  371. T0* _tla=NULL;
  372. T0* _a=NULL;
  373. /*IF*/if (((((T313*)C))->_current_type/*8*/)==((void*)(NULL))) {
  374. r313to_runnable_0(C,a1);
  375. _a=X431to_runnable((((T313*)C))->_arguments/*24*/,a1);
  376. /*IF*/if ((_a)==((void*)(NULL))) {
  377. r313error(X662start_position(r313arg1(C)),((T0*)ms55_470));
  378. }
  379. else {
  380. C->_arguments=_a;
  381. }
  382. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  383. X431match_with((((T313*)C))->_arguments/*24*/,(((T313*)C))->_run_feature/*16*/);
  384. }
  385. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  386. _tla=(((T313*)C))->_result_type/*20*/;
  387. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  388. case 239: 
  389. break;
  390. default:
  391. _tla=NULL;
  392. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  393. C->_result_type=X291run_type(X662result_type(r313arg1(C)));
  394. }
  395. /*FI*/}
  396. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  397. R=(T0*)C;
  398. }
  399. /*FI*/}
  400. else {
  401. R=r313twin(C);
  402. /*[IRF3.3set_current_type*/((((T313*)(((T313*)R))))->_current_type)=(NULL);
  403. /*]*/
  404. R=r313to_runnable(((T313*)R),a1);
  405. }
  406. /*FI*/return R;
  407. }
  408. /*No:CALL_INFIX_AND.result_type*/
  409. /*No:CALL_INFIX_AND.is_result*/
  410. T0* r313twin(T313* C){
  411. T0* R=NULL;
  412. R=malloc(sizeof(*C));
  413. *((T313*)R)=*C;
  414. return R;
  415. }
  416. /*No:CALL_INFIX_AND.set_current_type*/
  417. T0* r313operator(void){
  418. T0* R=NULL;
  419. R=((T0*)ms27_473);
  420. return R;
  421. }
  422. int r313is_static(T313* C){
  423. int R=0;
  424. /*IF*/if (X291is_boolean(X662result_type((((T313*)C))->_target/*12*/))) {
  425. /*IF*/if ((X662is_static((((T313*)C))->_target/*12*/))&&(X662is_static(r313arg1(C)))) {
  426. R=1;
  427. C->_static_value_mem=(X662static_value((((T313*)C))->_target/*12*/))+(X662static_value(r313arg1(C)));
  428. /*IF*/if (((((T313*)C))->_static_value_mem/*4*/)==(2)) {
  429. C->_static_value_mem=1;
  430. }
  431. else {
  432. C->_static_value_mem=0;
  433. }
  434. /*FI*/}
  435. /*FI*/}
  436. /*FI*/return R;
  437. }
  438. /*No:CALL_INFIX_AND.fz_07*/
  439. /*No:CALL_INFIX_AND.can_be_dropped*/
  440. /*No:CALL_INFIX_AND.current_type*/
  441. void r313compile_to_c_old(T313* C){
  442. X662compile_to_c_old((((T313*)C))->_target/*12*/);
  443. /*IF*/{/*AT*/X431compile_to_c_old((((T313*)C))->_arguments/*24*/);
  444. }
  445. /*FI*/}
  446. /*No:CALL_INFIX_AND.static_value_mem*/
  447. void r313make_call_1(T313* C,T0* a1,T0* a2,T0* a3){
  448. C->_target=a1;
  449. C->_feature_name=a2;
  450. C->_arguments=a3;
  451. }
  452. /*No:CALL_INFIX_AND.is_manifest_string*/
  453. /*No:CALL_INFIX_AND.is_void*/
  454. void r313to_runnable_0(T313* C,T0* a1){
  455. C->_current_type=a1;
  456. r313cpc_to_runnable(C,a1);
  457. C->_result_type=/*X496*/((T0*)(((T832*)((T832*)((((T313*)C))->_run_feature/*16*/))))->_result_type/*24*/);
  458. /*IF*/if (((((T313*)C))->_result_type/*20*/)==((void*)(NULL))) {
  459. r683add_position(X496start_position((((T313*)C))->_run_feature/*16*/));
  460. r313error((((T454*)((T454*)((((T313*)C))->_feature_name/*28*/))))->_start_position/*8*/,((T0*)ms1_295));
  461. }
  462.  else if (X291is_like_current((((T313*)C))->_result_type/*20*/)) {
  463. C->_result_type=X662result_type((((T313*)C))->_target/*12*/);
  464. }
  465. /*FI*/}
  466. /*No:CALL_INFIX_AND.is_pre_computable*/
  467. void r313cpc_to_runnable(T313* C,T0* a1){
  468. T0* _rc=NULL;
  469. T0* _t=NULL;
  470. _t=X662to_runnable((((T313*)C))->_target/*12*/,a1);
  471. /*IF*/if ((_t)==((void*)(NULL))) {
  472. r683add_position(X662start_position((((T313*)C))->_target/*12*/));
  473. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  474. r683fatal_error(((T683*)(oBC364eh)),b1);
  475. }/*]*/
  476. }
  477. /*FI*/C->_target=_t;
  478. _rc=X291run_class(X662result_type((((T313*)C))->_target/*12*/));
  479. C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C);
  480. r576update((((T313*)C))->_target/*12*/,(((T313*)C))->_run_feature/*16*/);
  481. }
  482. int r313use_current(T313* C){
  483. int R=0;
  484. /*IF*/{/*AT*/R=X431use_current((((T313*)C))->_arguments/*24*/);
  485. }
  486. /*FI*//*IF*/if (R) {
  487. }
  488.  else if (X662is_current((((T313*)C))->_target/*12*/)) {
  489. R=X496use_current((((T313*)C))->_run_feature/*16*/);
  490. }
  491. else {
  492. R=X662use_current((((T313*)C))->_target/*12*/);
  493. }
  494. /*FI*/return R;
  495. }
  496. void r313finalize(T313* C){
  497. T0* _rf=NULL;
  498. T0* _rc=NULL;
  499. _rf=(((T313*)C))->_run_feature/*16*/;
  500. _rc=X291run_class(/*X496*/((T0*)(((T832*)((T832*)_rf)))->_current_type/*4*/));
  501. /*IF*/if (!((((T355*)((T355*)_rc)))->_at_run_time/*8*/)) {
  502. _rf=r355dynamic(((T355*)(r396first(((T396*)((((T355*)((T355*)_rc)))->_running/*12*/))))),_rf);
  503. C->_run_feature=_rf;
  504. }
  505. /*FI*/}
  506. void r313error(T0* a1,T0* a2){
  507. r683add_position(a1);
  508. r683error(((T683*)(oBC364eh)),a2);
  509. }
  510. /*No:CALL_INFIX_AND.isa_dca_inline_argument*/
  511. /*No:CALL_INFIX_AND.fatal_error*/
  512. /*No:CALL_INFIX_AND.fz_bad_argument*/
  513. T0* r313arg1(T313* C){
  514. T0* R=NULL;
  515. R=X431first((((T313*)C))->_arguments/*24*/);
  516. return R;
  517. }
  518. void r313afd_check(T313* C){
  519. T0* _running=NULL;
  520. T0* _rc=NULL;
  521. _rc=X291run_class(X662result_type((((T313*)C))->_target/*12*/));
  522. _running=(((T355*)((T355*)_rc)))->_running/*12*/;
  523. /*IF*/if ((_running)==((void*)(NULL))) {
  524. r683add_position(X662start_position((((T313*)C))->_target/*12*/));
  525. /*[IRF3.6append*/{T0* b1=((T0*)ms1_135);
  526. r7append(((T7*)(oBC683explanation)),b1);
  527. }/*]*/
  528. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/);
  529. r7append(((T7*)(oBC683explanation)),b1);
  530. }/*]*/
  531. /*[IRF3.6append*/{T0* b1=((T0*)ms141_470);
  532. r7append(((T7*)(oBC683explanation)),b1);
  533. }/*]*/
  534. r683print_as_warning(((T683*)(oBC364eh)));
  535. r355set_at_run_time(((T355*)_rc));
  536. }
  537.  else if ((r396count(((T396*)_running)))>(0)) {
  538. r576update((((T313*)C))->_target/*12*/,(((T313*)C))->_run_feature/*16*/);
  539. }
  540. /*FI*/X662afd_check((((T313*)C))->_target/*12*/);
  541. /*IF*/{/*AT*/X431afd_check((((T313*)C))->_arguments/*24*/);
  542. }
  543. /*FI*/}
  544. /*No:CALL_INFIX_GT.arguments*/
  545. T0* r57add_comment(T57* C,T0* a1){
  546. T0* R=NULL;
  547. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  548. R=(T0*)C;
  549. }
  550. else {
  551. {T529*n=malloc(sizeof(*n));
  552. *n=M529;
  553. r529make(n,(T0*)C,a1);
  554. R=(T0*)n;
  555. }
  556. }
  557. /*FI*/return R;
  558. }
  559. int r57to_integer(T57* C){
  560. int R=0;
  561. r57error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T57*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  562. return R;
  563. }
  564. int r57is_a(T57* C,T0* a1){
  565. int R=0;
  566. R=X291is_a(X291run_type((((T57*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
  567. /*IF*/if (!(R)) {
  568. r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T57*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/);
  569. r57error(X662start_position(a1),((T0*)ms4_662));
  570. }
  571. /*FI*/return R;
  572. }
  573. /*No:CALL_INFIX_GT.is_current*/
  574. void r57mapping_c_arg(T57* C,T0* a1){
  575. T0* _actual_type=NULL;
  576. _actual_type=X291run_type((((T57*)C))->_result_type/*20*/);
  577. /*IF*/if (X291is_reference(_actual_type)) {
  578. /*IF*/if (X291is_reference(a1)) {
  579. r57compile_to_c(C);
  580. }
  581. else {
  582. X291to_expanded(_actual_type);
  583. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  584. char b1='\50';
  585. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  586. }/*]*/
  587. /*]*/
  588. r57compile_to_c(C);
  589. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  590. char b1='\51';
  591. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  592. }/*]*/
  593. /*]*/
  594. }
  595. /*FI*/}
  596. else {
  597. /*IF*/if (X291is_reference(a1)) {
  598. X291to_reference(_actual_type);
  599. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  600. char b1='\50';
  601. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  602. }/*]*/
  603. /*]*/
  604. r57compile_to_c(C);
  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. r57compile_to_c(C);
  624. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  625. char b1='\51';
  626. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  627. }/*]*/
  628. /*]*/
  629. }
  630. else {
  631. r57compile_to_c(C);
  632. }
  633. /*FI*/}
  634. /*FI*/}
  635. /*FI*/}
  636. /*No:CALL_INFIX_GT.static_value*/
  637. void r57make(T57* C,T0* a1,T0* a2,T0* a3){
  638. T0* _eal=NULL;
  639. /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
  640. r683add_position(a2);
  641. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
  642. r683fatal_error(((T683*)(oBC364eh)),b1);
  643. }/*]*/
  644. }
  645. /*FI*/{T454*n=malloc(sizeof(*n));
  646. *n=M454;
  647. r454make(n,r57operator(),a2);
  648. C->_feature_name=(T0*)n;
  649. }
  650. {T431*n=malloc(sizeof(*n));
  651. *n=M431;
  652. /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
  653. /*]*/
  654. _eal=(T0*)n;
  655. }
  656. r57make_call_1(C,a1,(((T57*)C))->_feature_name/*28*/,_eal);
  657. }
  658. void r57mapping_c_target(T57* C,T0* a1){
  659. T0* _actual_type=NULL;
  660. int _flag=0;
  661. _flag=r324call_invariant_start(a1);
  662. _actual_type=X291run_type((((T57*)C))->_result_type/*20*/);
  663. /*IF*/if (X291is_reference(_actual_type)) {
  664. /*IF*/if (X291is_reference(a1)) {
  665. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  666. char b1='\50';
  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='\50';
  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='T';
  677. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  678. }/*]*/
  679. /*]*/
  680. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X291id(a1));
  681. /*]*/
  682. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  683. char b1='\52';
  684. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  685. }/*]*/
  686. /*]*/
  687. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  688. char b1='\51';
  689. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  690. }/*]*/
  691. /*]*/
  692. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  693. char b1='\50';
  694. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  695. }/*]*/
  696. /*]*/
  697. r57compile_to_c(C);
  698. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  699. char b1='\51';
  700. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  701. }/*]*/
  702. /*]*/
  703. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  704. char b1='\51';
  705. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  706. }/*]*/
  707. /*]*/
  708. }
  709. else {
  710. X291to_expanded(_actual_type);
  711. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  712. char b1='\50';
  713. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  714. }/*]*/
  715. /*]*/
  716. r57compile_to_c(C);
  717. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  718. char b1='\51';
  719. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  720. }/*]*/
  721. /*]*/
  722. }
  723. /*FI*/}
  724. else {
  725. /*IF*/if (X291is_reference(a1)) {
  726. X291to_reference(_actual_type);
  727. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  728. char b1='\50';
  729. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  730. }/*]*/
  731. /*]*/
  732. r57compile_to_c(C);
  733. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  734. char b1='\51';
  735. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  736. }/*]*/
  737. /*]*/
  738. }
  739. else {
  740. /*IF*/if (X291need_c_struct(a1)) {
  741. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  742. char b1='\46';
  743. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  744. }/*]*/
  745. /*]*/
  746. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  747. char b1='\50';
  748. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  749. }/*]*/
  750. /*]*/
  751. r57compile_to_c(C);
  752. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  753. char b1='\51';
  754. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  755. }/*]*/
  756. /*]*/
  757. }
  758. else {
  759. r57compile_to_c(C);
  760. }
  761. /*FI*/}
  762. /*FI*/}
  763. /*FI*//*IF*/if (_flag) {
  764. /*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T544* C1=((T544*)(oBC324out_c));
  765. char b1='\51';
  766. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  767. }/*]*/
  768. /*]*/
  769. }
  770. /*FI*/}
  771. /*No:CALL_INFIX_GT.nb_errors*/
  772. /*No:CALL_INFIX_GT.feature_name*/
  773. /*No:CALL_INFIX_GT.fz_iinaiv*/
  774. /*No:CALL_INFIX_GT.arg_count*/
  775. /*No:CALL_INFIX_GT.dca_inline_argument*/
  776. /*No:CALL_INFIX_GT.run_feature*/
  777. /*No:CALL_INFIX_GT.call_proc_call_c2c*/
  778. /*No:CALL_INFIX_GT.start_position*/
  779. /*No:CALL_INFIX_GT.target*/
  780. void r57compile_to_c(T57* C){
  781. /*IF*/if ((r590boost(((T590*)(oBC364run_control))))&&(X291is_character(X291run_type(X662result_type((((T57*)C))->_target/*12*/))))) {
  782. r57c2c_cast_op(C,((T0*)ms132_470),((T0*)ms33_473));
  783. }
  784. else {
  785. /*[IRF3.6call_proc_call_c2c*/{T57* C1=C;
  786. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  787. }/*]*/
  788. }
  789. /*FI*/}
  790. /*No:CALL_INFIX_GT.c_simple*/
  791. T0* r57to_runnable(T57* C,T0* a1){
  792. T0* R=NULL;
  793. T0* _tla=NULL;
  794. T0* _a=NULL;
  795. /*IF*/if (((((T57*)C))->_current_type/*8*/)==((void*)(NULL))) {
  796. r57to_runnable_0(C,a1);
  797. _a=X431to_runnable((((T57*)C))->_arguments/*24*/,a1);
  798. /*IF*/if ((_a)==((void*)(NULL))) {
  799. r57error(X662start_position(r57arg1(C)),((T0*)ms55_470));
  800. }
  801. else {
  802. C->_arguments=_a;
  803. }
  804. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  805. X431match_with((((T57*)C))->_arguments/*24*/,(((T57*)C))->_run_feature/*16*/);
  806. }
  807. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  808. _tla=(((T57*)C))->_result_type/*20*/;
  809. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  810. case 239: 
  811. break;
  812. default:
  813. _tla=NULL;
  814. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  815. C->_result_type=X291run_type(X662result_type(r57arg1(C)));
  816. }
  817. /*FI*/}
  818. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  819. R=(T0*)C;
  820. }
  821. /*FI*/}
  822. else {
  823. R=r57twin(C);
  824. /*[IRF3.3set_current_type*/((((T57*)(((T57*)R))))->_current_type)=(NULL);
  825. /*]*/
  826. R=r57to_runnable(((T57*)R),a1);
  827. }
  828. /*FI*/return R;
  829. }
  830. /*No:CALL_INFIX_GT.result_type*/
  831. /*No:CALL_INFIX_GT.is_result*/
  832. T0* r57twin(T57* C){
  833. T0* R=NULL;
  834. R=malloc(sizeof(*C));
  835. *((T57*)R)=*C;
  836. return R;
  837. }
  838. /*No:CALL_INFIX_GT.set_current_type*/
  839. T0* r57operator(void){
  840. T0* R=NULL;
  841. R=((T0*)ms33_473);
  842. return R;
  843. }
  844. int r57is_static(T57* C){
  845. int R=0;
  846. /*IF*/if (X291is_integer(X662result_type((((T57*)C))->_target/*12*/))) {
  847. /*IF*/if ((X662is_static((((T57*)C))->_target/*12*/))&&(X662is_static(r57arg1(C)))) {
  848. R=1;
  849. /*IF*/if ((X662static_value((((T57*)C))->_target/*12*/))>(X662static_value(r57arg1(C)))) {
  850. C->_static_value_mem=1;
  851. }
  852. else {
  853. C->_static_value_mem=0;
  854. }
  855. /*FI*/}
  856. /*FI*/}
  857. /*FI*/return R;
  858. }
  859. /*No:CALL_INFIX_GT.fz_07*/
  860. /*No:CALL_INFIX_GT.fz_unsigned*/
  861. /*No:CALL_INFIX_GT.can_be_dropped*/
  862. /*No:CALL_INFIX_GT.current_type*/
  863. void r57compile_to_c_old(T57* C){
  864. X662compile_to_c_old((((T57*)C))->_target/*12*/);
  865. /*IF*/{/*AT*/X431compile_to_c_old((((T57*)C))->_arguments/*24*/);
  866. }
  867. /*FI*/}
  868. void r57c2c_cast_op(T57* C,T0* a1,T0* a2){
  869. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  870. char b1='\50';
  871. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  872. }/*]*/
  873. /*]*/
  874. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  875. char b1='\50';
  876. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  877. }/*]*/
  878. /*]*/
  879. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  880. char b1='\50';
  881. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  882. }/*]*/
  883. /*]*/
  884. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),a1);
  885. /*]*/
  886. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  887. char b1='\51';
  888. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  889. }/*]*/
  890. /*]*/
  891. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  892. char b1='\50';
  893. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  894. }/*]*/
  895. /*]*/
  896. X662compile_to_c((((T57*)C))->_target/*12*/);
  897. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  898. char b1='\51';
  899. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  900. }/*]*/
  901. /*]*/
  902. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  903. char b1='\51';
  904. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  905. }/*]*/
  906. /*]*/
  907. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),a2);
  908. /*]*/
  909. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  910. char b1='\50';
  911. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  912. }/*]*/
  913. /*]*/
  914. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  915. char b1='\50';
  916. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  917. }/*]*/
  918. /*]*/
  919. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),a1);
  920. /*]*/
  921. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  922. char b1='\51';
  923. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  924. }/*]*/
  925. /*]*/
  926. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  927. char b1='\50';
  928. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  929. }/*]*/
  930. /*]*/
  931. X662compile_to_c(r57arg1(C));
  932. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  933. char b1='\51';
  934. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  935. }/*]*/
  936. /*]*/
  937. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  938. char b1='\51';
  939. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  940. }/*]*/
  941. /*]*/
  942. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  943. char b1='\51';
  944. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  945. }/*]*/
  946. /*]*/
  947. }
  948. /*No:CALL_INFIX_GT.static_value_mem*/
  949. void r57make_call_1(T57* C,T0* a1,T0* a2,T0* a3){
  950. C->_target=a1;
  951. C->_feature_name=a2;
  952. C->_arguments=a3;
  953. }
  954. /*No:CALL_INFIX_GT.is_manifest_string*/
  955. /*No:CALL_INFIX_GT.is_void*/
  956. void r57to_runnable_0(T57* C,T0* a1){
  957. C->_current_type=a1;
  958. r57cpc_to_runnable(C,a1);
  959. C->_result_type=/*X496*/((T0*)(((T832*)((T832*)((((T57*)C))->_run_feature/*16*/))))->_result_type/*24*/);
  960. /*IF*/if (((((T57*)C))->_result_type/*20*/)==((void*)(NULL))) {
  961. r683add_position(X496start_position((((T57*)C))->_run_feature/*16*/));
  962. r57error((((T454*)((T454*)((((T57*)C))->_feature_name/*28*/))))->_start_position/*8*/,((T0*)ms1_295));
  963. }
  964.  else if (X291is_like_current((((T57*)C))->_result_type/*20*/)) {
  965. C->_result_type=X662result_type((((T57*)C))->_target/*12*/);
  966. }
  967. /*FI*/}
  968. /*No:CALL_INFIX_GT.is_pre_computable*/
  969. void r57cpc_to_runnable(T57* C,T0* a1){
  970. T0* _rc=NULL;
  971. T0* _t=NULL;
  972. _t=X662to_runnable((((T57*)C))->_target/*12*/,a1);
  973. /*IF*/if ((_t)==((void*)(NULL))) {
  974. r683add_position(X662start_position((((T57*)C))->_target/*12*/));
  975. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  976. r683fatal_error(((T683*)(oBC364eh)),b1);
  977. }/*]*/
  978. }
  979. /*FI*/C->_target=_t;
  980. _rc=X291run_class(X662result_type((((T57*)C))->_target/*12*/));
  981. C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C);
  982. r576update((((T57*)C))->_target/*12*/,(((T57*)C))->_run_feature/*16*/);
  983. }
  984. int r57use_current(T57* C){
  985. int R=0;
  986. /*IF*/{/*AT*/R=X431use_current((((T57*)C))->_arguments/*24*/);
  987. }
  988. /*FI*//*IF*/if (R) {
  989. }
  990.  else if (X662is_current((((T57*)C))->_target/*12*/)) {
  991. R=X496use_current((((T57*)C))->_run_feature/*16*/);
  992. }
  993. else {
  994. R=X662use_current((((T57*)C))->_target/*12*/);
  995. }
  996. /*FI*/return R;
  997. }
  998. void r57finalize(T57* C){
  999. T0* _rf=NULL;
  1000. T0* _rc=NULL;
  1001. _rf=(((T57*)C))->_run_feature/*16*/;
  1002. _rc=X291run_class(/*X496*/((T0*)(((T832*)((T832*)_rf)))->_current_type/*4*/));
  1003. /*IF*/if (!((((T355*)((T355*)_rc)))->_at_run_time/*8*/)) {
  1004. _rf=r355dynamic(((T355*)(r396first(((T396*)((((T355*)((T355*)_rc)))->_running/*12*/))))),_rf);
  1005. C->_run_feature=_rf;
  1006. }
  1007. /*FI*/}
  1008. void r57error(T0* a1,T0* a2){
  1009. r683add_position(a1);
  1010. r683error(((T683*)(oBC364eh)),a2);
  1011. }
  1012. /*No:CALL_INFIX_GT.isa_dca_inline_argument*/
  1013. /*No:CALL_INFIX_GT.us_gt*/
  1014. /*No:CALL_INFIX_GT.fatal_error*/
  1015. /*No:CALL_INFIX_GT.fz_bad_argument*/
  1016. T0* r57arg1(T57* C){
  1017. T0* R=NULL;
  1018. R=X431first((((T57*)C))->_arguments/*24*/);
  1019. return R;
  1020. }
  1021. void r57afd_check(T57* C){
  1022. T0* _running=NULL;
  1023. T0* _rc=NULL;
  1024. _rc=X291run_class(X662result_type((((T57*)C))->_target/*12*/));
  1025. _running=(((T355*)((T355*)_rc)))->_running/*12*/;
  1026. /*IF*/if ((_running)==((void*)(NULL))) {
  1027. r683add_position(X662start_position((((T57*)C))->_target/*12*/));
  1028. /*[IRF3.6append*/{T0* b1=((T0*)ms1_135);
  1029. r7append(((T7*)(oBC683explanation)),b1);
  1030. }/*]*/
  1031. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/);
  1032. r7append(((T7*)(oBC683explanation)),b1);
  1033. }/*]*/
  1034. /*[IRF3.6append*/{T0* b1=((T0*)ms141_470);
  1035. r7append(((T7*)(oBC683explanation)),b1);
  1036. }/*]*/
  1037. r683print_as_warning(((T683*)(oBC364eh)));
  1038. r355set_at_run_time(((T355*)_rc));
  1039. }
  1040.  else if ((r396count(((T396*)_running)))>(0)) {
  1041. r576update((((T57*)C))->_target/*12*/,(((T57*)C))->_run_feature/*16*/);
  1042. }
  1043. /*FI*/X662afd_check((((T57*)C))->_target/*12*/);
  1044. /*IF*/{/*AT*/X431afd_check((((T57*)C))->_arguments/*24*/);
  1045. }
  1046. /*FI*/}
  1047. /*No:WRITABLE_ATTRIBUTE.arguments*/
  1048. T0* r106try_to_undefine(T106* C,T0* a1,T0* a2){
  1049. T0* R=NULL;
  1050. X776undefine_in(a1,a2);
  1051. R=r106try_to_undefine_aux(C,a1,a2);
  1052. /*IF*/if ((R)!=((void*)(NULL))) {
  1053. /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T106*)C))->_clients/*20*/);
  1054. /*]*/
  1055. }
  1056. else {
  1057. r605fatal_undefine(((T605*)a2),a1);
  1058. }
  1059. /*FI*/return R;
  1060. }
  1061. /*No:WRITABLE_ATTRIBUTE.is_deferred*/
  1062. void r106add_into(T106* C,T0* a1){
  1063. T0* _fn=NULL;
  1064. int _i=0;
  1065. C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T106*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
  1066. _i=1;
  1067. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T106*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  1068. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T106*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
  1069. /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
  1070. _fn=/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)(r237at(((T237*)a1),X776to_key(_fn))))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  1071. r683add_position(X776start_position(_fn));
  1072. r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T106*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
  1073. r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
  1074. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  1075. r7append(((T7*)(oBC683explanation)),b1);
  1076. }/*]*/
  1077. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1078. }
  1079. else {
  1080. r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
  1081. }
  1082. /*FI*/_i=(_i)+(1);
  1083. }
  1084. }
  1085. T0* r106try_to_undefine_aux(T106* C,T0* a1,T0* a2){
  1086. T0* R=NULL;
  1087. r683add_position(r106start_position(C));
  1088. r106error(X776start_position(a1),((T0*)ms1_308));
  1089. r605fatal_undefine(((T605*)a2),a1);
  1090. return R;
  1091. }
  1092. void r106make(T106* C,T0* a1,T0* a2){
  1093. C->_names=a1;
  1094. C->_result_type=a2;
  1095. }
  1096. /*No:WRITABLE_ATTRIBUTE.nb_errors*/
  1097. /*No:WRITABLE_ATTRIBUTE.set_header_comment*/
  1098. T0* r106start_position(T106* C){
  1099. T0* R=NULL;
  1100. R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T106*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  1101. return R;
  1102. }
  1103. T0* r106to_run_feature(T106* C,T0* a1,T0* a2){
  1104. T0* R=NULL;
  1105. {T820*n=malloc(sizeof(*n));
  1106. *n=M820;
  1107. r820make(n,a1,a2,(T0*)C);
  1108. R=(T0*)n;
  1109. }
  1110. return R;
  1111. }
  1112. /*No:WRITABLE_ATTRIBUTE.ensure_assertion*/
  1113. /*No:WRITABLE_ATTRIBUTE.code_require*/
  1114. /*No:WRITABLE_ATTRIBUTE.result_type*/
  1115. /*No:WRITABLE_ATTRIBUTE.em1*/
  1116. /*No:WRITABLE_ATTRIBUTE.set_clients*/
  1117. /*No:WRITABLE_ATTRIBUTE.em2*/
  1118. /*No:WRITABLE_ATTRIBUTE.require_assertion*/
  1119. /*No:WRITABLE_ATTRIBUTE.names*/
  1120. int r106stupid_switch(T0* a1,T0* a2){
  1121. int R=0;
  1122. T0* _dyn_rc=NULL;
  1123. T0* _dyn_rf2=NULL;
  1124. int _i=0;
  1125. int _offset2=0;
  1126. int _offset1=0;
  1127. _i=(((T396*)((T396*)a2)))->_upper/*8*/;
  1128. _dyn_rc=r396item(((T396*)a2),_i);
  1129. _dyn_rf2=r355dynamic(((T355*)_dyn_rc),a1);
  1130. if(NULL!=(_dyn_rf2))switch(((T0*)_dyn_rf2)->id) {
  1131. case 820: 
  1132. break;
  1133. default:
  1134. _dyn_rf2=NULL;
  1135. };/*IF*/if ((_dyn_rf2)!=((void*)(NULL))) {
  1136. _offset1=r355offset_of(((T355*)_dyn_rc),_dyn_rf2);
  1137. R=1;
  1138. _i=(_i)-(1);
  1139. }
  1140. /*FI*/while (!((!(R))||((_i)==(0)))) {
  1141. _dyn_rc=r396item(((T396*)a2),_i);
  1142. _dyn_rf2=r355dynamic(((T355*)_dyn_rc),a1);
  1143. if(NULL!=(_dyn_rf2))switch(((T0*)_dyn_rf2)->id) {
  1144. case 820: 
  1145. break;
  1146. default:
  1147. _dyn_rf2=NULL;
  1148. };/*IF*/if ((_dyn_rf2)!=((void*)(NULL))) {
  1149. _offset2=r355offset_of(((T355*)_dyn_rc),_dyn_rf2);
  1150. R=(_offset1)==(_offset2);
  1151. _i=(_i)-(1);
  1152. }
  1153. else {
  1154. R=0;
  1155. }
  1156. /*FI*/}
  1157. return R;
  1158. }
  1159. int r106can_hide(T106* C,T0* a1,T0* a2){
  1160. int R=0;
  1161. /*IF*/if (((((T106*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  1162. /*IF*/if ((((((T106*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  1163. r683add_position(X359start_position(a1));
  1164. r106error(r106start_position(C),((T0*)ms5_359));
  1165. }
  1166. /*FI*/}
  1167. /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
  1168. /*IF*/{/*AT*/r683add_position(X359start_position(a1));
  1169. r106error(r106start_position(C),((T0*)ms6_359));
  1170. }
  1171. /*FI*/}
  1172. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1173. /*IF*/if (((((T106*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  1174. /*IF*/if (!(X291is_a_in((((T106*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  1175. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  1176. r7append(((T7*)(oBC683explanation)),b1);
  1177. }/*]*/
  1178. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  1179. r7append(((T7*)(oBC683explanation)),b1);
  1180. }/*]*/
  1181. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1182. }
  1183. /*FI*/}
  1184. /*FI*/}
  1185. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1186. /*IF*//*AF*//*AE*/
  1187. /*FI*/}
  1188. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  1189. return R;
  1190. }
  1191. /*No:WRITABLE_ATTRIBUTE.header_comment*/
  1192. int r106is_merge_with(T106* C,T0* a1,T0* a2){
  1193. int R=0;
  1194. /*IF*/if (((((T106*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  1195. /*IF*/if ((((((T106*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  1196. r683add_position(X359start_position(a1));
  1197. r106error(r106start_position(C),((T0*)ms2_359));
  1198. }
  1199. /*FI*/}
  1200. /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
  1201. /*IF*/{/*AT*/r683add_position(X359start_position(a1));
  1202. r106error(r106start_position(C),((T0*)ms3_359));
  1203. }
  1204. /*FI*/}
  1205. /*FI*//*IF*/if (((((T106*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  1206. /*IF*/if (!(X291is_a_in((((T106*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  1207. r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
  1208. }
  1209. /*FI*/}
  1210. /*FI*//*IF*//*AF*//*AE*/
  1211. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  1212. return R;
  1213. }
  1214. /*No:WRITABLE_ATTRIBUTE.fz_dot*/
  1215. /*No:WRITABLE_ATTRIBUTE.first_name*/
  1216. /*No:WRITABLE_ATTRIBUTE.clients*/
  1217. void r106collect_for(int a1){
  1218. /*IF*/if ((a1)==(1001)) {
  1219. /*IF*//*AF*//*AE*/
  1220. /*FI*/}
  1221. else {
  1222. /*IF*//*AF*//*AE*/
  1223. /*FI*/}
  1224. /*FI*/}
  1225. void r106error(T0* a1,T0* a2){
  1226. r683add_position(a1);
  1227. r683error(((T683*)(oBC364eh)),a2);
  1228. }
  1229. /*No:WRITABLE_ATTRIBUTE.base_class*/
  1230. /*No:WRITABLE_ATTRIBUTE.base_class_name*/
  1231. /*No:PROC_CALL_0.arguments*/
  1232. T0* r268add_comment(T268* C,T0* a1){
  1233. T0* R=NULL;
  1234. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1235. R=(T0*)C;
  1236. }
  1237. /*AF*/else {
  1238. {T46*n=malloc(sizeof(*n));
  1239. *n=M46;
  1240. r46make(n,(T0*)C,a1);
  1241. R=(T0*)n;
  1242. }
  1243. }
  1244. /*FI*/return R;
  1245. }
  1246. void r268make(T268* C,T0* a1,T0* a2){
  1247. C->_target=a1;
  1248. C->_feature_name=a2;
  1249. }
  1250. /*No:PROC_CALL_0.nb_errors*/
  1251. /*No:PROC_CALL_0.feature_name*/
  1252. /*No:PROC_CALL_0.arg_count*/
  1253. /*No:PROC_CALL_0.run_feature*/
  1254. /*No:PROC_CALL_0.set_run_compound*/
  1255. /*No:PROC_CALL_0.call_proc_call_c2c*/
  1256. T0* r268start_position(T268* C){
  1257. T0* R=NULL;
  1258. R=X776start_position((((T268*)C))->_feature_name/*12*/);
  1259. return R;
  1260. }
  1261. /*No:PROC_CALL_0.target*/
  1262. void r268compile_to_c(T268* C){
  1263. r324rs_push_position(((T324*)(oBC364cpp)),'3',r268start_position(C));
  1264. /*[IRF3.6call_proc_call_c2c*/{T268* C1=C;
  1265. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  1266. }/*]*/
  1267. r324rs_pop_position(((T324*)(oBC364cpp)));
  1268. }
  1269. /*No:PROC_CALL_0.set_run_feature*/
  1270. T0* r268to_runnable(T268* C,T0* a1){
  1271. T0* R=NULL;
  1272. /*IF*/if (((((T268*)C))->_run_compound/*4*/)==((void*)(NULL))) {
  1273. r268to_runnable_0(C,a1);
  1274. /*IF*/if (((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0))&&((X496arg_count((((T268*)C))->_run_feature/*16*/))>(0))) {
  1275. r683add_position(X776start_position((((T268*)C))->_feature_name/*12*/));
  1276. r268error(X496start_position((((T268*)C))->_run_feature/*16*/),((T0*)ms1_268));
  1277. }
  1278. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1279. R=(T0*)C;
  1280. }
  1281. /*FI*/}
  1282. else {
  1283. {T268*n=malloc(sizeof(*n));
  1284. *n=M268;
  1285. r268make(n,(((T268*)C))->_target/*8*/,(((T268*)C))->_feature_name/*12*/);
  1286. R=(T0*)n;
  1287. }
  1288. R=r268to_runnable(((T268*)R),a1);
  1289. }
  1290. /*FI*/return R;
  1291. }
  1292. /*No:PROC_CALL_0.fz_07*/
  1293. T0* r268current_type(T268* C){
  1294. T0* R=NULL;
  1295. /*IF*/if (((((T268*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
  1296. R=(((T592*)((T592*)((((T268*)C))->_run_compound/*4*/))))->_current_type/*4*/;
  1297. }
  1298. /*FI*/return R;
  1299. }
  1300. /*No:PROC_CALL_0.run_compound*/
  1301. void r268to_runnable_0(T268* C,T0* a1){
  1302. C->_run_compound=a1;
  1303. r268cpc_to_runnable(C,r268current_type(C));
  1304. /*IF*/if ((/*X496*/((T0*)(((T832*)((T832*)((((T268*)C))->_run_feature/*16*/))))->_result_type/*24*/))!=((void*)(NULL))) {
  1305. r683add_position(X496start_position((((T268*)C))->_run_feature/*16*/));
  1306. r268error(X776start_position((((T268*)C))->_feature_name/*12*/),((T0*)ms1_173));
  1307. }
  1308. /*FI*/}
  1309. /*No:PROC_CALL_0.is_pre_computable*/
  1310. void r268cpc_to_runnable(T268* C,T0* a1){
  1311. T0* _rc=NULL;
  1312. T0* _t=NULL;
  1313. _t=X662to_runnable((((T268*)C))->_target/*8*/,a1);
  1314. /*IF*/if ((_t)==((void*)(NULL))) {
  1315. r683add_position(X662start_position((((T268*)C))->_target/*8*/));
  1316. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  1317. r683fatal_error(((T683*)(oBC364eh)),b1);
  1318. }/*]*/
  1319. }
  1320. /*FI*/C->_target=_t;
  1321. _rc=X291run_class(X662result_type((((T268*)C))->_target/*8*/));
  1322. C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C);
  1323. r576update((((T268*)C))->_target/*8*/,(((T268*)C))->_run_feature/*16*/);
  1324. }
  1325. int r268use_current(T268* C){
  1326. int R=0;
  1327. /*IF*//*AF*//*AE*/
  1328. /*FI*//*IF*/if (R) {
  1329. }
  1330.  else if (X662is_current((((T268*)C))->_target/*8*/)) {
  1331. R=X496use_current((((T268*)C))->_run_feature/*16*/);
  1332. }
  1333. else {
  1334. R=X662use_current((((T268*)C))->_target/*8*/);
  1335. }
  1336. /*FI*/return R;
  1337. }
  1338. void r268finalize(T268* C){
  1339. T0* _rf=NULL;
  1340. T0* _rc=NULL;
  1341. _rf=(((T268*)C))->_run_feature/*16*/;
  1342. _rc=X291run_class(/*X496*/((T0*)(((T832*)((T832*)_rf)))->_current_type/*4*/));
  1343. /*IF*/if (!((((T355*)((T355*)_rc)))->_at_run_time/*8*/)) {
  1344. _rf=r355dynamic(((T355*)(r396first(((T396*)((((T355*)((T355*)_rc)))->_running/*12*/))))),_rf);
  1345. C->_run_feature=_rf;
  1346. }
  1347. /*FI*/}
  1348. void r268error(T0* a1,T0* a2){
  1349. r683add_position(a1);
  1350. r683error(((T683*)(oBC364eh)),a2);
  1351. }
  1352. /*No:PROC_CALL_0.fatal_error*/
  1353. /*No:PROC_CALL_0.end_mark_comment*/
  1354. void r268afd_check(T268* C){
  1355. T0* _running=NULL;
  1356. T0* _rc=NULL;
  1357. _rc=X291run_class(X662result_type((((T268*)C))->_target/*8*/));
  1358. _running=(((T355*)((T355*)_rc)))->_running/*12*/;
  1359. /*IF*/if ((_running)==((void*)(NULL))) {
  1360. r683add_position(X662start_position((((T268*)C))->_target/*8*/));
  1361. /*[IRF3.6append*/{T0* b1=((T0*)ms1_135);
  1362. r7append(((T7*)(oBC683explanation)),b1);
  1363. }/*]*/
  1364. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/);
  1365. r7append(((T7*)(oBC683explanation)),b1);
  1366. }/*]*/
  1367. /*[IRF3.6append*/{T0* b1=((T0*)ms141_470);
  1368. r7append(((T7*)(oBC683explanation)),b1);
  1369. }/*]*/
  1370. r683print_as_warning(((T683*)(oBC364eh)));
  1371. r355set_at_run_time(((T355*)_rc));
  1372. }
  1373.  else if ((r396count(((T396*)_running)))>(0)) {
  1374. r576update((((T268*)C))->_target/*8*/,(((T268*)C))->_run_feature/*16*/);
  1375. }
  1376. /*FI*/X662afd_check((((T268*)C))->_target/*8*/);
  1377. /*IF*//*AF*//*AE*/
  1378. /*FI*/}
  1379. T0* r268make_runnable(T268* C,T0* a1,T0* a2,T0* a3,T0* a4){
  1380. T0* R=NULL;
  1381. /*IF*/if (((((T268*)C))->_run_compound/*4*/)==((void*)(NULL))) {
  1382. R=(T0*)C;
  1383. r268make(((T268*)R),a2,(((T268*)C))->_feature_name/*12*/);
  1384. C->_run_compound=a1;
  1385. C->_run_feature=a4;
  1386. }
  1387. else {
  1388. {T268*n=malloc(sizeof(*n));
  1389. *n=M268;
  1390. r268make(n,a2,(((T268*)C))->_feature_name/*12*/);
  1391. R=(T0*)n;
  1392. }
  1393. /*[IRF3.3set_run_compound*/((((T268*)(((T268*)R))))->_run_compound)=(a1);
  1394. /*]*/
  1395. /*[IRF3.3set_run_feature*/((((T268*)(((T268*)R))))->_run_feature)=(a4);
  1396. /*]*/
  1397. }
  1398. /*FI*/return R;
  1399. }
  1400. T0* r39add_comment(T39* C,T0* a1){
  1401. T0* R=NULL;
  1402. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1403. R=(T0*)C;
  1404. }
  1405. else {
  1406. {T529*n=malloc(sizeof(*n));
  1407. *n=M529;
  1408. r529make(n,(T0*)C,a1);
  1409. R=(T0*)n;
  1410. }
  1411. }
  1412. /*FI*/return R;
  1413. }
  1414. int r39to_integer(T39* C){
  1415. int R=0;
  1416. r39error((((T39*)C))->_start_position/*16*/,((T0*)ms69_470));
  1417. return R;
  1418. }
  1419. void r39c_trace(T39* C){
  1420. /*IF*/if (r39produce_c(C)) {
  1421. r324rs_push_local(((T324*)(oBC364cpp)),(((T39*)C))->_to_string/*12*/,X291run_type((((T39*)C))->_result_type/*24*/));
  1422. }
  1423. /*FI*/}
  1424. int r39is_a(T39* C,T0* a1){
  1425. int R=0;
  1426. R=X291is_a(X291run_type((((T39*)C))->_result_type/*24*/),X291run_type(X662result_type(a1)));
  1427. /*IF*/if (!(R)) {
  1428. r683add_position((((T39*)C))->_start_position/*16*/);
  1429. r39error(X662start_position(a1),((T0*)ms4_662));
  1430. }
  1431. /*FI*/return R;
  1432. }
  1433. /*No:LOCAL_NAME1.set_is_used*/
  1434. void r39name_clash(T39* C){
  1435. T0* _rf=NULL;
  1436. T0* _rc=NULL;
  1437. /*IF*/if (r605has_feature(((T605*)(r39base_class_written(C))),(((T39*)C))->_to_string/*12*/)) {
  1438. _rc=X291run_class((((T39*)C))->_current_type/*8*/);
  1439. _rf=r355get_feature_with(((T355*)_rc),(((T39*)C))->_to_string/*12*/);
  1440. /*IF*/if ((_rf)!=((void*)(NULL))) {
  1441. r683add_position(X496start_position(_rf));
  1442. }
  1443. /*FI*/r683add_position((((T39*)C))->_start_position/*16*/);
  1444. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_447);
  1445. r683fatal_error(((T683*)(oBC364eh)),b1);
  1446. }/*]*/
  1447. }
  1448. /*FI*/}
  1449. /*No:LOCAL_NAME1.is_current*/
  1450. void r39mapping_c_arg(T39* C,T0* a1){
  1451. T0* _rt=NULL;
  1452. _rt=X291run_type((((T39*)C))->_result_type/*24*/);
  1453. /*IF*/if (X291is_reference(_rt)) {
  1454. /*IF*/if (X291is_reference(a1)) {
  1455. /*[IRF3.6compile_to_c*/{T39* C1=C;
  1456. r324print_local(((T324*)(oBC364cpp)),(((T39*)C1))->_to_string/*12*/);
  1457. }/*]*/
  1458. }
  1459. else {
  1460. X291to_expanded(_rt);
  1461. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1462. char b1='\50';
  1463. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1464. }/*]*/
  1465. /*]*/
  1466. /*[IRF3.6compile_to_c*/{T39* C1=C;
  1467. r324print_local(((T324*)(oBC364cpp)),(((T39*)C1))->_to_string/*12*/);
  1468. }/*]*/
  1469. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1470. char b1='\51';
  1471. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1472. }/*]*/
  1473. /*]*/
  1474. }
  1475. /*FI*/}
  1476.  else if (X291is_reference(a1)) {
  1477. X291to_reference(_rt);
  1478. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1479. char b1='\50';
  1480. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1481. }/*]*/
  1482. /*]*/
  1483. /*[IRF3.6compile_to_c*/{T39* C1=C;
  1484. r324print_local(((T324*)(oBC364cpp)),(((T39*)C1))->_to_string/*12*/);
  1485. }/*]*/
  1486. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1487. char b1='\51';
  1488. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1489. }/*]*/
  1490. /*]*/
  1491. }
  1492. else {
  1493. /*IF*/if (X291need_c_struct(_rt)) {
  1494. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1495. char b1='\46';
  1496. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1497. }/*]*/
  1498. /*]*/
  1499. }
  1500. /*FI*//*[IRF3.6compile_to_c*/{T39* C1=C;
  1501. r324print_local(((T324*)(oBC364cpp)),(((T39*)C1))->_to_string/*12*/);
  1502. }/*]*/
  1503. }
  1504. /*FI*/}
  1505. T0* r39written_in(T39* C){
  1506. T0* R=NULL;
  1507. T0* _sp=NULL;
  1508. _sp=(((T39*)C))->_start_position/*16*/;
  1509. /*IF*/if ((_sp)!=((void*)(NULL))) {
  1510. R=(((T627*)((T627*)_sp)))->_base_class_name/*0*/;
  1511. }
  1512. /*FI*/return R;
  1513. }
  1514. /*No:LOCAL_NAME1.static_value*/
  1515. void r39make(T39* C,T0* a1,T0* a2){
  1516. C->_start_position=a1;
  1517. C->_to_string=r902item(a2);
  1518. }
  1519. void r39mapping_c_target(T39* C,T0* a1){
  1520. T0* _rt=NULL;
  1521. int _flag=0;
  1522. _flag=r324call_invariant_start(a1);
  1523. _rt=X291run_type((((T39*)C))->_result_type/*24*/);
  1524. /*IF*/if (X291is_reference(_rt)) {
  1525. /*IF*/if (X291is_reference(a1)) {
  1526. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1527. char b1='\50';
  1528. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1529. }/*]*/
  1530. /*]*/
  1531. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1532. char b1='\50';
  1533. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1534. }/*]*/
  1535. /*]*/
  1536. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1537. char b1='T';
  1538. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1539. }/*]*/
  1540. /*]*/
  1541. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X291id(a1));
  1542. /*]*/
  1543. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1544. char b1='\52';
  1545. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1546. }/*]*/
  1547. /*]*/
  1548. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1549. char b1='\51';
  1550. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1551. }/*]*/
  1552. /*]*/
  1553. /*[IRF3.6compile_to_c*/{T39* C1=C;
  1554. r324print_local(((T324*)(oBC364cpp)),(((T39*)C1))->_to_string/*12*/);
  1555. }/*]*/
  1556. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1557. char b1='\51';
  1558. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1559. }/*]*/
  1560. /*]*/
  1561. }
  1562. else {
  1563. X291to_expanded(_rt);
  1564. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1565. char b1='\50';
  1566. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1567. }/*]*/
  1568. /*]*/
  1569. /*[IRF3.6compile_to_c*/{T39* C1=C;
  1570. r324print_local(((T324*)(oBC364cpp)),(((T39*)C1))->_to_string/*12*/);
  1571. }/*]*/
  1572. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1573. char b1='\51';
  1574. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1575. }/*]*/
  1576. /*]*/
  1577. }
  1578. /*FI*/}
  1579.  else if (X291is_reference(a1)) {
  1580. X291to_reference(_rt);
  1581. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1582. char b1='\50';
  1583. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1584. }/*]*/
  1585. /*]*/
  1586. /*[IRF3.6compile_to_c*/{T39* C1=C;
  1587. r324print_local(((T324*)(oBC364cpp)),(((T39*)C1))->_to_string/*12*/);
  1588. }/*]*/
  1589. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1590. char b1='\51';
  1591. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1592. }/*]*/
  1593. /*]*/
  1594. }
  1595. else {
  1596. /*IF*/if (X291need_c_struct(_rt)) {
  1597. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1598. char b1='\46';
  1599. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1600. }/*]*/
  1601. /*]*/
  1602. }
  1603. /*FI*//*[IRF3.6compile_to_c*/{T39* C1=C;
  1604. r324print_local(((T324*)(oBC364cpp)),(((T39*)C1))->_to_string/*12*/);
  1605. }/*]*/
  1606. }
  1607. /*FI*//*IF*/if (_flag) {
  1608. /*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T544* C1=((T544*)(oBC324out_c));
  1609. char b1='\51';
  1610. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1611. }/*]*/
  1612. /*]*/
  1613. }
  1614. /*FI*/}
  1615. /*No:LOCAL_NAME1.to_string*/
  1616. /*No:LOCAL_NAME1.fz_iinaiv*/
  1617. /*No:LOCAL_NAME1.dca_inline_argument*/
  1618. /*No:LOCAL_NAME1.em_bl*/
  1619. /*No:LOCAL_NAME1.set_result_type*/
  1620. /*No:LOCAL_NAME1.start_position*/
  1621. /*No:LOCAL_NAME1.compile_to_c*/
  1622. /*No:LOCAL_NAME1.c_simple*/
  1623. /*No:LOCAL_NAME1.fz_00*/
  1624. /*No:LOCAL_NAME1.set_rank*/
  1625. T0* r39to_runnable(T39* C,T0* a1){
  1626. T0* R=NULL;
  1627. T0* _t2=NULL;
  1628. T0* _t1=NULL;
  1629. _t1=(((T39*)C))->_result_type/*24*/;
  1630. _t2=X291to_runnable(_t1,a1);
  1631. /*IF*/if ((_t2)==((void*)(NULL))) {
  1632. r683add_position(X291start_position(_t1));
  1633. r39error((((T39*)C))->_start_position/*16*/,((T0*)ms6_361));
  1634. }
  1635. /*FI*//*IF*/if (((((T39*)C))->_current_type/*8*/)==((void*)(NULL))) {
  1636. C->_current_type=a1;
  1637. C->_result_type=_t2;
  1638. R=(T0*)C;
  1639. }
  1640. else {
  1641. {T39*n=malloc(sizeof(*n));
  1642. *n=M39;
  1643. r39make_runnable(n,(T0*)C,a1,_t2);
  1644. R=(T0*)n;
  1645. }
  1646. }
  1647. /*FI*/return R;
  1648. }
  1649. /*No:LOCAL_NAME1.rank*/
  1650. void r39c_declare(T39* C){
  1651. T0* _t=NULL;
  1652. /*IF*/if (r39produce_c(C)) {
  1653. _t=X291run_type((((T39*)C))->_result_type/*24*/);
  1654. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC447tmp_string)))))->_count)=(0);
  1655. /*]*/
  1656. X291c_type_for_result_in(_t,oBC447tmp_string);
  1657. r7extend(((T7*)(oBC447tmp_string)),'\40');
  1658. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC447tmp_string);
  1659. /*]*/
  1660. r324print_local(((T324*)(oBC364cpp)),(((T39*)C))->_to_string/*12*/);
  1661. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1662. char b1='\75';
  1663. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1664. }/*]*/
  1665. /*]*/
  1666. X291c_initialize(_t);
  1667. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms134_470));
  1668. /*]*/
  1669. }
  1670.  else if (r590debug_check(((T590*)(oBC364run_control)))) {
  1671. r39warning((((T39*)C))->_start_position/*16*/,((T0*)ms1_39));
  1672. }
  1673. /*FI*/}
  1674. int r39produce_c(T39* C){
  1675. int R=0;
  1676. T0* _t=NULL;
  1677. /*IF*/if ((((T39*)C))->_is_used/*28*/) {
  1678. R=1;
  1679. }
  1680. else {
  1681. _t=X291run_type((((T39*)C))->_result_type/*24*/);
  1682. /*IF*/if (X291is_expanded(_t)) {
  1683. R=!(X291is_basic_eiffel_expanded(_t));
  1684. }
  1685. /*FI*/}
  1686. /*FI*/return R;
  1687. }
  1688. /*No:LOCAL_NAME1.result_type*/
  1689. /*No:LOCAL_NAME1.is_result*/
  1690. /*No:LOCAL_NAME1.is_static*/
  1691. T0*oBC447tmp_string=NULL;
  1692. T0* r39base_class_written(T39* C){
  1693. T0* R=NULL;
  1694. R=r451base_class(((T451*)(r39written_in(C))));
  1695. return R;
  1696. }
  1697. /*No:LOCAL_NAME1.can_be_dropped*/
  1698. /*No:LOCAL_NAME1.current_type*/
  1699. /*No:LOCAL_NAME1.compile_to_c_old*/
  1700. /*No:LOCAL_NAME1.static_value_mem*/
  1701. /*No:LOCAL_NAME1.is_used*/
  1702. /*No:LOCAL_NAME1.is_manifest_string*/
  1703. /*No:LOCAL_NAME1.is_void*/
  1704. /*No:LOCAL_NAME1.is_pre_computable*/
  1705. /*No:LOCAL_NAME1.use_current*/
  1706. void r39error(T0* a1,T0* a2){
  1707. r683add_position(a1);
  1708. r683error(((T683*)(oBC364eh)),a2);
  1709. }
  1710. /*No:LOCAL_NAME1.isa_dca_inline_argument*/
  1711. /*No:LOCAL_NAME1.fatal_error*/
  1712. /*No:LOCAL_NAME1.afd_check*/
  1713. void r39make_runnable(T39* C,T0* a1,T0* a2,T0* a3){
  1714. *((T39*)(C))=*((T39*)(a1));
  1715. C->_current_type=a2;
  1716. C->_result_type=a3;
  1717. }
  1718. void r39warning(T0* a1,T0* a2){
  1719. r683add_position(a1);
  1720. r683warning(((T683*)(oBC364eh)),a2);
  1721. }
  1722. /*No:DEFERRED_PROCEDURE.arguments*/
  1723. T0* r853try_to_undefine(T853* C,T0* a1,T0* a2){
  1724. T0* R=NULL;
  1725. X776undefine_in(a1,a2);
  1726. R=/*(IRF4.4try_to_undefine_aux*/((T0*)(C))/*)*/;
  1727. /*IF*/if ((R)!=((void*)(NULL))) {
  1728. /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T853*)C))->_clients/*20*/);
  1729. /*]*/
  1730. }
  1731. else {
  1732. r605fatal_undefine(((T605*)a2),a1);
  1733. }
  1734. /*FI*/return R;
  1735. }
  1736. /*No:DEFERRED_PROCEDURE.is_deferred*/
  1737. /*No:DEFERRED_PROCEDURE.rescue_compound*/
  1738. void r853add_into(T853* C,T0* a1){
  1739. T0* _fn=NULL;
  1740. int _i=0;
  1741. C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T853*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
  1742. _i=1;
  1743. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T853*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  1744. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T853*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
  1745. /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
  1746. _fn=/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)(r237at(((T237*)a1),X776to_key(_fn))))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  1747. r683add_position(X776start_position(_fn));
  1748. r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T853*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
  1749. r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
  1750. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  1751. r7append(((T7*)(oBC683explanation)),b1);
  1752. }/*]*/
  1753. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1754. }
  1755. else {
  1756. r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
  1757. }
  1758. /*FI*/_i=(_i)+(1);
  1759. }
  1760. }
  1761. /*No:DEFERRED_PROCEDURE.end_comment*/
  1762. /*No:DEFERRED_PROCEDURE.try_to_undefine_aux*/
  1763. /*No:DEFERRED_PROCEDURE.make*/
  1764. /*No:DEFERRED_PROCEDURE.nb_errors*/
  1765. void r853make_routine(T853* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  1766. r853make_e_feature(C,a1,NULL);
  1767. C->_header_comment=a4;
  1768. C->_arguments=a2;
  1769. C->_obsolete_mark=a3;
  1770. C->_require_assertion=a5;
  1771. }
  1772. void r853set_header_comment(T853* C,T0* a1){
  1773. /*IF*/if (((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)>(1))) {
  1774. C->_end_comment=a1;
  1775. }
  1776. /*FI*/}
  1777. T0* r853start_position(T853* C){
  1778. T0* R=NULL;
  1779. R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T853*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  1780. return R;
  1781. }
  1782. T0* r853to_run_feature(T853* C,T0* a1,T0* a2){
  1783. T0* R=NULL;
  1784. r853check_obsolete(C);
  1785. {T904*n=malloc(sizeof(*n));
  1786. *n=M904;
  1787. r904make(n,a1,a2,(T0*)C);
  1788. R=(T0*)n;
  1789. }
  1790. return R;
  1791. }
  1792. /*No:DEFERRED_PROCEDURE.ensure_assertion*/
  1793. /*No:DEFERRED_PROCEDURE.code_require*/
  1794. /*No:DEFERRED_PROCEDURE.result_type*/
  1795. /*No:DEFERRED_PROCEDURE.fz_03*/
  1796. /*No:DEFERRED_PROCEDURE.em1*/
  1797. /*No:DEFERRED_PROCEDURE.obsolete_mark*/
  1798. /*No:DEFERRED_PROCEDURE.em2*/
  1799. /*No:DEFERRED_PROCEDURE.set_clients*/
  1800. /*No:DEFERRED_PROCEDURE.names*/
  1801. /*No:DEFERRED_PROCEDURE.require_assertion*/
  1802. void r853from_effective(T853* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  1803. {T953*n=malloc(sizeof(*n));
  1804. *n=M953;
  1805. r953make(n,se_ma855(1,a1));
  1806. C->_names=(T0*)n;
  1807. }
  1808. r853make_routine(C,(((T853*)C))->_names/*8*/,a2,NULL,NULL,a3);
  1809. /*[IRF3.3set_ensure_assertion*/((((T853*)(C)))->_ensure_assertion)=(a4);
  1810. /*]*/
  1811. C->_base_class=a5;
  1812. }
  1813. /*No:DEFERRED_PROCEDURE.stupid_switch*/
  1814. void r853set_rescue_compound(T853* C,T0* a1){
  1815. /*IF*/if (((a1)!=((void*)(NULL)))&&(/*(IRF4.2is_deferred*/(1)/*)*/)) {
  1816. r853error(r853start_position(C),((T0*)ms6_368));
  1817. }
  1818. /*FI*/C->_rescue_compound=a1;
  1819. }
  1820. int r853can_hide(T853* C,T0* a1,T0* a2){
  1821. int R=0;
  1822. /*IF*/if (((((T853*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  1823. /*IF*/if ((((((T853*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  1824. r683add_position(X359start_position(a1));
  1825. r853error(r853start_position(C),((T0*)ms5_359));
  1826. }
  1827. /*FI*/}
  1828. /*FI*//*IF*/if (((((T853*)C))->_arguments/*24*/)!=((void*)(X359arguments(a1)))) {
  1829. /*IF*/if ((((((T853*)C))->_arguments/*24*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  1830. r683add_position(X359start_position(a1));
  1831. r853error(r853start_position(C),((T0*)ms6_359));
  1832. }
  1833.  else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T853*)C))->_arguments/*24*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  1834. r683add_position(X359start_position(a1));
  1835. r853error(r853start_position(C),((T0*)ms7_359));
  1836. }
  1837. /*FI*/}
  1838. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1839. /*IF*/if (((((T853*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  1840. /*IF*/if (!(X291is_a_in((((T853*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  1841. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  1842. r7append(((T7*)(oBC683explanation)),b1);
  1843. }/*]*/
  1844. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  1845. r7append(((T7*)(oBC683explanation)),b1);
  1846. }/*]*/
  1847. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1848. }
  1849. /*FI*/}
  1850. /*FI*/}
  1851. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1852. /*IF*/if (((((T853*)C))->_arguments/*24*/)!=((void*)(NULL))) {
  1853. /*IF*/if (!(r31is_a_in(((T31*)((((T853*)C))->_arguments/*24*/)),X359arguments(a1),a2))) {
  1854. r683add_position(X359start_position(a1));
  1855. r683add_position(r853start_position(C));
  1856. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  1857. r7append(((T7*)(oBC683explanation)),b1);
  1858. }/*]*/
  1859. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  1860. r7append(((T7*)(oBC683explanation)),b1);
  1861. }/*]*/
  1862. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1863. }
  1864. /*FI*/}
  1865. /*FI*/}
  1866. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  1867. return R;
  1868. }
  1869. /*No:DEFERRED_PROCEDURE.header_comment*/
  1870. int r853is_merge_with(T853* C,T0* a1,T0* a2){
  1871. int R=0;
  1872. /*IF*/if (((((T853*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  1873. /*IF*/if ((((((T853*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  1874. r683add_position(X359start_position(a1));
  1875. r853error(r853start_position(C),((T0*)ms2_359));
  1876. }
  1877. /*FI*/}
  1878. /*FI*//*IF*/if (((((T853*)C))->_arguments/*24*/)!=((void*)(X359arguments(a1)))) {
  1879. /*IF*/if ((((((T853*)C))->_arguments/*24*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  1880. r683add_position(X359start_position(a1));
  1881. r853error(r853start_position(C),((T0*)ms3_359));
  1882. }
  1883.  else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T853*)C))->_arguments/*24*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  1884. r683add_position(X359start_position(a1));
  1885. r853error(r853start_position(C),((T0*)ms4_359));
  1886. }
  1887. /*FI*/}
  1888. /*FI*//*IF*/if (((((T853*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  1889. /*IF*/if (!(X291is_a_in((((T853*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  1890. r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
  1891. }
  1892. /*FI*/}
  1893. /*FI*//*IF*/if (((((T853*)C))->_arguments/*24*/)!=((void*)(NULL))) {
  1894. /*IF*/if (!(r31is_a_in(((T31*)((((T853*)C))->_arguments/*24*/)),X359arguments(a1),a2))) {
  1895. r683add_position(X359start_position(a1));
  1896. r853error(r853start_position(C),((T0*)ms12_359));
  1897. }
  1898. /*FI*/}
  1899. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  1900. return R;
  1901. }
  1902. /*No:DEFERRED_PROCEDURE.fz_dot*/
  1903. /*No:DEFERRED_PROCEDURE.set_ensure_assertion*/
  1904. /*No:DEFERRED_PROCEDURE.first_name*/
  1905. /*No:DEFERRED_PROCEDURE.clients*/
  1906. void r853collect_for(T853* C,int a1){
  1907. /*IF*/if ((a1)==(1001)) {
  1908. /*IF*/if (((((T853*)C))->_require_assertion/*32*/)!=((void*)(NULL))) {
  1909. /*IF*/if (!(r522fast_has(((T522*)(oBC359require_collector)),(((T853*)C))->_require_assertion/*32*/))) {
  1910. r522add_last(((T522*)(oBC359require_collector)),(((T853*)C))->_require_assertion/*32*/);
  1911. }
  1912. /*FI*/}
  1913. /*FI*/}
  1914. else {
  1915. /*IF*/if (((((T853*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  1916. /*[IRF3.3set_item*/((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=((((T633*)((T633*)((((T853*)C))->_ensure_assertion/*36*/))))->_header_comment/*4*/);
  1917. /*]*/
  1918. r633add_into(((T633*)((((T853*)C))->_ensure_assertion/*36*/)),oBC359assertion_collector);
  1919. }
  1920. /*FI*/}
  1921. /*FI*/}
  1922. void r853error(T0* a1,T0* a2){
  1923. r683add_position(a1);
  1924. r683error(((T683*)(oBC364eh)),a2);
  1925. }
  1926. /*No:DEFERRED_PROCEDURE.base_class*/
  1927. /*No:DEFERRED_PROCEDURE.base_class_name*/
  1928. void r853make_e_feature(T853* C,T0* a1,T0* a2){
  1929. C->_names=a1;
  1930. C->_result_type=a2;
  1931. }
  1932. void r853check_obsolete(T853* C){
  1933. /*IF*/if (!((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/)) {
  1934. /*IF*/if (((((T853*)C))->_obsolete_mark/*28*/)!=((void*)(NULL))) {
  1935. /*[IRF3.6append*/{T0* b1=((T0*)ms7_368);
  1936. r7append(((T7*)(oBC683explanation)),b1);
  1937. }/*]*/
  1938. /*[IRF3.6append*/{T0* b1=(((T805*)((T805*)((((T853*)C))->_obsolete_mark/*28*/))))->_to_string/*16*/;
  1939. r7append(((T7*)(oBC683explanation)),b1);
  1940. }/*]*/
  1941. r853warning(r853start_position(C),((T0*)ms137_470));
  1942. }
  1943. /*FI*/}
  1944. /*FI*/}
  1945. void r853warning(T0* a1,T0* a2){
  1946. r683add_position(a1);
  1947. r683warning(((T683*)(oBC364eh)),a2);
  1948. }
  1949. void r782add_index_value(T782* C,T0* a1){
  1950. /*IF*/if (((((T782*)C))->_list/*4*/)==((void*)(NULL))) {
  1951. C->_list=se_ma96(1,a1);
  1952. }
  1953. else {
  1954. X96add_last((((T782*)C))->_list/*4*/,a1);
  1955. }
  1956. /*FI*/}
  1957. /*No:INDEX_CLAUSE.make*/
  1958. /*No:INDEX_CLAUSE.list*/
  1959. /*No:INDEX_CLAUSE.index*/
  1960. /*No:RUN_FEATURE_1.arguments*/
  1961. int r808id(T808* C){
  1962. int R=0;
  1963. R=X291id((((T808*)C))->_current_type/*4*/);
  1964. return R;
  1965. }
  1966. /*No:RUN_FEATURE_1.ucs_true*/
  1967. /*No:RUN_FEATURE_1.c_define*/
  1968. /*No:RUN_FEATURE_1.actuals_clients*/
  1969. void r808nothing_comment(T808* C){
  1970. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms118_470));
  1971. /*]*/
  1972. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms4_496));
  1973. /*]*/
  1974. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X291run_time_mark((((T808*)C))->_current_type/*4*/));
  1975. /*]*/
  1976. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1977. char b1='\56';
  1978. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1979. }/*]*/
  1980. /*]*/
  1981. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X776to_string((((T808*)C))->_name/*16*/));
  1982. /*]*/
  1983. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms81_470));
  1984. /*]*/
  1985. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1986. char b1='\n';
  1987. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1988. }/*]*/
  1989. /*]*/
  1990. }
  1991. /*No:RUN_FEATURE_1.ucs_in_computation*/
  1992. void r808make(T808* C,T0* a1,T0* a2,T0* a3){
  1993. C->_current_type=a1;
  1994. C->_name=a2;
  1995. C->_base_feature=a3;
  1996. r199put(((T199*)((((T355*)((T355*)(r808run_class(C)))))->_feature_dictionary/*24*/)),(T0*)C,X776to_key(a2));
  1997. r604incr_magic_count(((T604*)(oBC364small_eiffel)));
  1998. C->_use_current_state=1005;
  1999. r604push(((T604*)(oBC364small_eiffel)),(T0*)C);
  2000. r808initialize(C);
  2001. r604pop(((T604*)(oBC364small_eiffel)));
  2002. }
  2003. void r808std_compute_use_current(T808* C){
  2004. /*IF*/if (((((T808*)C))->_use_current_state/*40*/)==(1006)) {
  2005. /*IF*/if (((((T808*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
  2006. /*IF*/if (r567use_current(((T567*)((((T808*)C))->_require_assertion/*28*/)))) {
  2007. C->_use_current_state=1004;
  2008. }
  2009. /*FI*/}
  2010. /*FI*/}
  2011. /*FI*//*IF*/if (((((T808*)C))->_use_current_state/*40*/)==(1006)) {
  2012. /*IF*/if (((((T808*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
  2013. /*IF*/if (r592use_current(((T592*)((((T808*)C))->_routine_body/*32*/)))) {
  2014. C->_use_current_state=1004;
  2015. }
  2016. /*FI*/}
  2017. /*FI*/}
  2018. /*FI*//*IF*/if (((((T808*)C))->_use_current_state/*40*/)==(1006)) {
  2019. /*IF*/if (((((T808*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  2020. /*IF*/if (r633use_current(((T633*)((((T808*)C))->_ensure_assertion/*36*/)))) {
  2021. C->_use_current_state=1004;
  2022. }
  2023. /*FI*/}
  2024. /*FI*/}
  2025. /*FI*//*IF*/if (((((T808*)C))->_use_current_state/*40*/)==(1006)) {
  2026. C->_use_current_state=1003;
  2027. }
  2028. /*FI*/}
  2029. /*No:RUN_FEATURE_1.name*/
  2030. void r808mapping_name(T808* C){
  2031. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2032. char b1='r';
  2033. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2034. }/*]*/
  2035. /*]*/
  2036. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),r808id(C));
  2037. /*]*/
  2038. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X776to_key((((T808*)C))->_name/*16*/));
  2039. /*]*/
  2040. }
  2041. int r808arg_count(T808* C){
  2042. int R=0;
  2043. /*IF*/if (((((T808*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  2044. R=/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T808*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/;
  2045. }
  2046. /*FI*/return R;
  2047. }
  2048. /*No:RUN_FEATURE_1.local_vars*/
  2049. /*No:RUN_FEATURE_1.fz_open_c_comment*/
  2050. /*No:RUN_FEATURE_1.base_feature*/
  2051. T0* r808start_position(T808* C){
  2052. T0* R=NULL;
  2053. R=X418start_position((((T808*)C))->_base_feature/*44*/);
  2054. return R;
  2055. }
  2056. /*No:RUN_FEATURE_1.fz_close_c_comment*/
  2057. /*No:RUN_FEATURE_1.ensure_assertion*/
  2058. int r808is_exported_in(T808* C,T0* a1){
  2059. int R=0;
  2060. R=r636gives_permission_to(((T636*)(r808clients(C))),a1);
  2061. return R;
  2062. }
  2063. /*No:RUN_FEATURE_1.compute_use_current*/
  2064. /*No:RUN_FEATURE_1.result_type*/
  2065. int r808is_static(T808* C){
  2066. int R=0;
  2067. R=X662is_static((((T808*)C))->_value/*48*/);
  2068. return R;
  2069. }
  2070. void r808add_client(T808* C,T0* a1){
  2071. int _i=0;
  2072. /*IF*/if (((((T808*)C))->_actuals_clients/*12*/)==((void*)(NULL))) {
  2073. {T187*n=malloc(sizeof(*n));
  2074. *n=M187;
  2075. r187with_capacity(n,4);
  2076. C->_actuals_clients=(T0*)n;
  2077. }
  2078. r187add_last(((T187*)((((T808*)C))->_actuals_clients/*12*/)),a1);
  2079. }
  2080. else {
  2081. _i=r187fast_index_of(((T187*)((((T808*)C))->_actuals_clients/*12*/)),a1);
  2082. /*IF*/if ((_i)>((((T187*)((T187*)((((T808*)C))->_actuals_clients/*12*/))))->_upper/*8*/)) {
  2083. r187add_last(((T187*)((((T808*)C))->_actuals_clients/*12*/)),a1);
  2084. }
  2085. /*FI*/}
  2086. /*FI*/r355add_client(((T355*)(r808run_class(C))),a1);
  2087. }
  2088. /*No:RUN_FEATURE_1.require_assertion*/
  2089. /*No:RUN_FEATURE_1.value*/
  2090. /*No:RUN_FEATURE_1.use_current_state*/
  2091. /*No:RUN_FEATURE_1.can_be_dropped*/
  2092. /*No:RUN_FEATURE_1.current_type*/
  2093. T0* r808run_class(T808* C){
  2094. T0* R=NULL;
  2095. R=X291run_class((((T808*)C))->_current_type/*4*/);
  2096. return R;
  2097. }
  2098. int r808static_value_mem(T808* C){
  2099. int R=0;
  2100. R=X662static_value((((T808*)C))->_value/*48*/);
  2101. return R;
  2102. }
  2103. /*No:RUN_FEATURE_1.ucs_not_computed*/
  2104. void r808fall_down(T808* C){
  2105. T0* _rf=NULL;
  2106. T0* _sub_name=NULL;
  2107. T0* _sub_bc=NULL;
  2108. T0* _current_bc=NULL;
  2109. T0* _sub_rc=NULL;
  2110. T0* _current_rc=NULL;
  2111. int _i=0;
  2112. T0* _running=NULL;
  2113. _current_rc=X291run_class((((T808*)C))->_current_type/*4*/);
  2114. _running=(((T355*)((T355*)_current_rc)))->_running/*12*/;
  2115. /*IF*/if ((_running)!=((void*)(NULL))) {
  2116. _current_bc=X291base_class((((T808*)C))->_current_type/*4*/);
  2117. _i=(((T396*)((T396*)_running)))->_lower/*12*/;
  2118. while (!((_i)>((((T396*)((T396*)_running)))->_upper/*8*/))) {
  2119. _sub_rc=r396item(((T396*)_running),_i);
  2120. /*IF*/if ((_sub_rc)!=((void*)(_current_rc))) {
  2121. _sub_bc=X291base_class((((T355*)((T355*)_sub_rc)))->_current_type/*0*/);
  2122. _sub_name=r605new_name_of(((T605*)_sub_bc),_current_bc,(((T808*)C))->_name/*16*/);
  2123. _rf=r355get_feature(((T355*)_sub_rc),_sub_name);
  2124. }
  2125. /*FI*/_i=(_i)+(1);
  2126. }
  2127. }
  2128. /*FI*/}
  2129. /*No:RUN_FEATURE_1.routine_body*/
  2130. /*No:RUN_FEATURE_1.ucs_false*/
  2131. /*No:RUN_FEATURE_1.is_pre_computable*/
  2132. T0* r808clients(T808* C){
  2133. T0* R=NULL;
  2134. T0* _bfbc=NULL;
  2135. T0* _bc=NULL;
  2136. /*IF*/if (((((T808*)C))->_clients_memory/*8*/)==((void*)(NULL))) {
  2137. _bc=X291base_class((((T808*)C))->_current_type/*4*/);
  2138. _bfbc=/*X418*/((T0*)(((T380*)((T380*)((((T808*)C))->_base_feature/*44*/))))->_base_class/*4*/);
  2139. /*IF*/if ((_bc)==((void*)(_bfbc))) {
  2140. R=/*X418*/((T0*)(((T380*)((T380*)((((T808*)C))->_base_feature/*44*/))))->_clients/*20*/);
  2141. }
  2142. else {
  2143. R=r605clients_for(((T605*)_bc),(((T808*)C))->_name/*16*/);
  2144. }
  2145. /*FI*/C->_clients_memory=R;
  2146. }
  2147. else {
  2148. R=(((T808*)C))->_clients_memory/*8*/;
  2149. }
  2150. /*FI*/return R;
  2151. }
  2152. int r808use_current(T808* C){
  2153. int R=0;
  2154. {int z1=(((T808*)C))->_use_current_state/*40*/;
  2155.  
  2156. if((1004==z1)){
  2157. R=1;
  2158. }
  2159.  else 
  2160. if((1003==z1)){
  2161. }
  2162.  else 
  2163. if((1005==z1)){
  2164. C->_use_current_state=1006;
  2165. /*[IRF3.4compute_use_current*/r808std_compute_use_current(C);
  2166. /*]*/
  2167. R=r808use_current(C);
  2168. }
  2169.  else {R=1;
  2170. }}
  2171. return R;
  2172. }
  2173. /*No:RUN_FEATURE_1.fatal_error*/
  2174. void r808mapping_c(T808* C){
  2175. T0* _real_constant=NULL;
  2176. /*IF*/if (X291is_double((((T808*)C))->_result_type/*24*/)) {
  2177. _real_constant=(((T808*)C))->_value/*48*/;
  2178. if(NULL!=(_real_constant))switch(((T0*)_real_constant)->id) {
  2179. case 936: 
  2180. break;
  2181. default:
  2182. _real_constant=NULL;
  2183. };/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),(((T936*)((T936*)_real_constant)))->_to_string/*16*/);
  2184. /*]*/
  2185. }
  2186. else {
  2187. X662compile_to_c((((T808*)C))->_value/*48*/);
  2188. }
  2189. /*FI*/}
  2190. void r808address_of(T808* C){
  2191. r683add_position(r808start_position(C));
  2192. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_808);
  2193. r683fatal_error(((T683*)(oBC364eh)),b1);
  2194. }/*]*/
  2195. }
  2196. void r808put_tag(T808* C){
  2197. T0* _fn=NULL;
  2198. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2199. char b1='\42';
  2200. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2201. }/*]*/
  2202. /*]*/
  2203. _fn=/*X418*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T380*)((T380*)((((T808*)C))->_base_feature/*44*/))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  2204. X776cpp_put_infix_or_prefix(_fn);
  2205. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X776to_string(_fn));
  2206. /*]*/
  2207. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms1_496));
  2208. /*]*/
  2209. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),(((T451*)((T451*)(/*X418*/((T0*)/*(IRF4.6base_class_name*/(((T605*)((T605*)((((T380*)((T380*)((((T808*)C))->_base_feature/*44*/))))->_base_class/*4*/))))->_base_class_name/*24*//*)*/)))))->_to_string/*0*/);
  2210. /*]*/
  2211. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2212. char b1='\42';
  2213. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2214. }/*]*/
  2215. /*]*/
  2216. }
  2217. /*No:RUN_FEATURE_1.clients_memory*/
  2218. void r808initialize(T808* C){
  2219. int _i=0;
  2220. _i=r953index_of(((T953*)(/*X418*/((T0*)(((T380*)((T380*)((((T808*)C))->_base_feature/*44*/))))->_names/*8*/))),(((T808*)C))->_name/*16*/);
  2221. C->_value=X418value((((T808*)C))->_base_feature/*44*/,_i);
  2222. C->_value=X662to_runnable((((T808*)C))->_value/*48*/,(((T808*)C))->_current_type/*4*/);
  2223. C->_result_type=X291to_runnable(/*X418*/((T0*)(((T380*)((T380*)((((T808*)C))->_base_feature/*44*/))))->_result_type/*12*/),(((T808*)C))->_current_type/*4*/);
  2224. }
  2225. /*No:RUN_FEATURE_1.afd_check*/
  2226.  
  2227.