home *** CD-ROM | disk | FTP | other *** search
/ Amiga ACS 1998 #4 / amigaacscoverdisc1998-041998.iso / utilities / shareware / dev / ppcsmalleiffel / source.lha / bin_c / compile_to_c19.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  72.3 KB  |  2,293 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:WHEN_ITEM_2.lower_value*/
  10. /*No:WHEN_ITEM_2.upper_value*/
  11. T0* r372to_runnable_integer(T372* C,T0* a1){
  12. T0* R=NULL;
  13. T0* _v=NULL;
  14. /*IF*/if (((((T372*)C))->_e_when/*4*/)==((void*)(NULL))) {
  15. C->_e_when=a1;
  16. _v=X662to_runnable((((T372*)C))->_lower/*12*/,/*(IRF4.6current_type*//*(IRF4.6current_type*//*(IRF4.6current_type*/r270current_type(((T270*)((((T377*)((T377*)((((T843*)((T843*)((((T372*)C))->_e_when/*4*/))))->_when_list/*16*/))))->_e_inspect/*0*/)))/*)*//*)*//*)*/);
  17. /*IF*/if (((_v)!=((void*)(NULL)))&&(X291is_integer(X662result_type(_v)))) {
  18. C->_lower=_v;
  19. C->_lower_value=X662to_integer((((T372*)C))->_lower/*12*/);
  20. }
  21. else {
  22. r372error(X662start_position((((T372*)C))->_lower/*12*/),((T0*)ms60_470));
  23. }
  24. /*FI*/_v=X662to_runnable((((T372*)C))->_upper/*8*/,/*(IRF4.6current_type*//*(IRF4.6current_type*//*(IRF4.6current_type*/r270current_type(((T270*)((((T377*)((T377*)((((T843*)((T843*)((((T372*)C))->_e_when/*4*/))))->_when_list/*16*/))))->_e_inspect/*0*/)))/*)*//*)*//*)*/);
  25. /*IF*/if (((_v)!=((void*)(NULL)))&&(X291is_integer(X662result_type(_v)))) {
  26. C->_upper=_v;
  27. C->_upper_value=X662to_integer((((T372*)C))->_upper/*8*/);
  28. }
  29. else {
  30. r372error(X662start_position((((T372*)C))->_upper/*8*/),((T0*)ms60_470));
  31. }
  32. /*FI*/r843add_when_item_2(((T843*)((((T372*)C))->_e_when/*4*/)),(T0*)C);
  33. R=(T0*)C;
  34. }
  35. else {
  36. {T372*n=malloc(sizeof(*n));
  37. *n=M372;
  38. r372make(n,(((T372*)C))->_lower/*12*/,(((T372*)C))->_upper/*8*/);
  39. R=(T0*)n;
  40. }
  41. R=r372to_runnable_integer(((T372*)R),a1);
  42. }
  43. /*FI*/return R;
  44. }
  45. void r372make(T372* C,T0* a1,T0* a2){
  46. C->_lower=a1;
  47. C->_upper=a2;
  48. }
  49. T0* r372start_position(T372* C){
  50. T0* R=NULL;
  51. R=X662start_position((((T372*)C))->_lower/*12*/);
  52. return R;
  53. }
  54. /*No:WHEN_ITEM_2.clear_e_when*/
  55. /*No:WHEN_ITEM_2.fz_bcv*/
  56. T0* r372twin(T372* C){
  57. T0* R=NULL;
  58. R=malloc(sizeof(*C));
  59. *((T372*)R)=*C;
  60. return R;
  61. }
  62. /*No:WHEN_ITEM_2.current_type*/
  63. /*No:WHEN_ITEM_2.fz_biv*/
  64. /*No:WHEN_ITEM_2.lower*/
  65. /*No:WHEN_ITEM_2.upper*/
  66. void r372error(T0* a1,T0* a2){
  67. r683add_position(a1);
  68. r683error(((T683*)(oBC364eh)),a2);
  69. }
  70. T0* r372to_runnable_character(T372* C,T0* a1){
  71. T0* R=NULL;
  72. T0* _v=NULL;
  73. /*IF*/if (((((T372*)C))->_e_when/*4*/)==((void*)(NULL))) {
  74. C->_e_when=a1;
  75. _v=X662to_runnable((((T372*)C))->_lower/*12*/,/*(IRF4.6current_type*//*(IRF4.6current_type*//*(IRF4.6current_type*/r270current_type(((T270*)((((T377*)((T377*)((((T843*)((T843*)((((T372*)C))->_e_when/*4*/))))->_when_list/*16*/))))->_e_inspect/*0*/)))/*)*//*)*//*)*/);
  76. /*IF*/if (((_v)!=((void*)(NULL)))&&(X291is_character(X662result_type(_v)))) {
  77. C->_lower=_v;
  78. C->_lower_value=X662to_integer((((T372*)C))->_lower/*12*/);
  79. }
  80. else {
  81. r372error(X662start_position((((T372*)C))->_lower/*12*/),((T0*)ms58_470));
  82. }
  83. /*FI*/_v=X662to_runnable((((T372*)C))->_upper/*8*/,/*(IRF4.6current_type*//*(IRF4.6current_type*//*(IRF4.6current_type*/r270current_type(((T270*)((((T377*)((T377*)((((T843*)((T843*)((((T372*)C))->_e_when/*4*/))))->_when_list/*16*/))))->_e_inspect/*0*/)))/*)*//*)*//*)*/);
  84. /*IF*/if (((_v)!=((void*)(NULL)))&&(X291is_character(X662result_type(_v)))) {
  85. C->_upper=_v;
  86. C->_upper_value=X662to_integer((((T372*)C))->_upper/*8*/);
  87. }
  88. else {
  89. r372error(X662start_position((((T372*)C))->_upper/*8*/),((T0*)ms58_470));
  90. }
  91. /*FI*/r843add_when_item_2(((T843*)((((T372*)C))->_e_when/*4*/)),(T0*)C);
  92. R=(T0*)C;
  93. }
  94. else {
  95. {T372*n=malloc(sizeof(*n));
  96. *n=M372;
  97. r372make(n,(((T372*)C))->_lower/*12*/,(((T372*)C))->_upper/*8*/);
  98. R=(T0*)n;
  99. }
  100. R=r372to_runnable_character(((T372*)R),a1);
  101. }
  102. /*FI*/return R;
  103. }
  104. /*No:WHEN_ITEM_2.e_when*/
  105. void r153add_into(T153* C,T0* a1){
  106. T0* _f=NULL;
  107. int _i=0;
  108. /*IF*/if (((((T153*)C))->_list/*8*/)!=((void*)(NULL))) {
  109. _i=0;
  110. while (!((_i)>((((T352*)((T352*)((((T153*)C))->_list/*8*/))))->_upper/*8*/))) {
  111. _f=/*(IRF4.6item*/((((T352*)((T352*)((((T153*)C))->_list/*8*/))))->_storage/*0*/)[_i]/*)*/;
  112. X359set_clients(_f,(((T153*)C))->_clients/*0*/);
  113. X359add_into(_f,a1);
  114. _i=(_i)+(1);
  115. }
  116. }
  117. /*FI*/}
  118. void r153make(T153* C,T0* a1,T0* a2,T0* a3){
  119. C->_clients=a1;
  120. C->_comment=a2;
  121. C->_list=a3;
  122. }
  123. /*No:FEATURE_CLAUSE.comment*/
  124. /*No:FEATURE_CLAUSE.list*/
  125. /*No:FEATURE_CLAUSE.clients*/
  126. /*No:CALL_INFIX_INT_DIV.arguments*/
  127. T0* r460add_comment(T460* C,T0* a1){
  128. T0* R=NULL;
  129. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  130. R=(T0*)C;
  131. }
  132. else {
  133. {T529*n=malloc(sizeof(*n));
  134. *n=M529;
  135. r529make(n,(T0*)C,a1);
  136. R=(T0*)n;
  137. }
  138. }
  139. /*FI*/return R;
  140. }
  141. int r460to_integer(T460* C){
  142. int R=0;
  143. r460error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T460*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  144. return R;
  145. }
  146. int r460is_a(T460* C,T0* a1){
  147. int R=0;
  148. R=X291is_a(X291run_type((((T460*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
  149. /*IF*/if (!(R)) {
  150. r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T460*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/);
  151. r460error(X662start_position(a1),((T0*)ms4_662));
  152. }
  153. /*FI*/return R;
  154. }
  155. /*No:CALL_INFIX_INT_DIV.is_current*/
  156. void r460mapping_c_arg(T460* C,T0* a1){
  157. T0* _actual_type=NULL;
  158. _actual_type=X291run_type((((T460*)C))->_result_type/*20*/);
  159. /*IF*/if (X291is_reference(_actual_type)) {
  160. /*IF*/if (X291is_reference(a1)) {
  161. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T460* C1=C;
  162. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  163. }/*]*/
  164. /*]*/
  165. }
  166. else {
  167. X291to_expanded(_actual_type);
  168. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  169. char b1='\50';
  170. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  171. }/*]*/
  172. /*]*/
  173. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T460* C1=C;
  174. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  175. }/*]*/
  176. /*]*/
  177. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  178. char b1='\51';
  179. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  180. }/*]*/
  181. /*]*/
  182. }
  183. /*FI*/}
  184. else {
  185. /*IF*/if (X291is_reference(a1)) {
  186. X291to_reference(_actual_type);
  187. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  188. char b1='\50';
  189. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  190. }/*]*/
  191. /*]*/
  192. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T460* C1=C;
  193. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  194. }/*]*/
  195. /*]*/
  196. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  197. char b1='\51';
  198. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  199. }/*]*/
  200. /*]*/
  201. }
  202. else {
  203. /*IF*/if (X291need_c_struct(a1)) {
  204. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  205. char b1='\46';
  206. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  207. }/*]*/
  208. /*]*/
  209. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  210. char b1='\50';
  211. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  212. }/*]*/
  213. /*]*/
  214. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T460* C1=C;
  215. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  216. }/*]*/
  217. /*]*/
  218. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  219. char b1='\51';
  220. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  221. }/*]*/
  222. /*]*/
  223. }
  224. else {
  225. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T460* C1=C;
  226. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  227. }/*]*/
  228. /*]*/
  229. }
  230. /*FI*/}
  231. /*FI*/}
  232. /*FI*/}
  233. /*No:CALL_INFIX_INT_DIV.static_value*/
  234. void r460make(T460* C,T0* a1,T0* a2,T0* a3){
  235. T0* _eal=NULL;
  236. /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
  237. r683add_position(a2);
  238. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
  239. r683fatal_error(((T683*)(oBC364eh)),b1);
  240. }/*]*/
  241. }
  242. /*FI*/{T454*n=malloc(sizeof(*n));
  243. *n=M454;
  244. r454make(n,((T0*)ms1_460),a2);
  245. C->_feature_name=(T0*)n;
  246. }
  247. {T431*n=malloc(sizeof(*n));
  248. *n=M431;
  249. /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
  250. /*]*/
  251. _eal=(T0*)n;
  252. }
  253. r460make_call_1(C,a1,(((T460*)C))->_feature_name/*28*/,_eal);
  254. }
  255. void r460mapping_c_target(T460* C,T0* a1){
  256. T0* _actual_type=NULL;
  257. int _flag=0;
  258. _flag=r324call_invariant_start(a1);
  259. _actual_type=X291run_type((((T460*)C))->_result_type/*20*/);
  260. /*IF*/if (X291is_reference(_actual_type)) {
  261. /*IF*/if (X291is_reference(a1)) {
  262. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  263. char b1='\50';
  264. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  265. }/*]*/
  266. /*]*/
  267. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  268. char b1='\50';
  269. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  270. }/*]*/
  271. /*]*/
  272. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  273. char b1='T';
  274. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  275. }/*]*/
  276. /*]*/
  277. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X291id(a1));
  278. /*]*/
  279. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  280. char b1='\52';
  281. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  282. }/*]*/
  283. /*]*/
  284. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  285. char b1='\51';
  286. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  287. }/*]*/
  288. /*]*/
  289. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  290. char b1='\50';
  291. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  292. }/*]*/
  293. /*]*/
  294. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T460* C1=C;
  295. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  296. }/*]*/
  297. /*]*/
  298. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  299. char b1='\51';
  300. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  301. }/*]*/
  302. /*]*/
  303. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  304. char b1='\51';
  305. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  306. }/*]*/
  307. /*]*/
  308. }
  309. else {
  310. X291to_expanded(_actual_type);
  311. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  312. char b1='\50';
  313. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  314. }/*]*/
  315. /*]*/
  316. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T460* C1=C;
  317. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  318. }/*]*/
  319. /*]*/
  320. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  321. char b1='\51';
  322. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  323. }/*]*/
  324. /*]*/
  325. }
  326. /*FI*/}
  327. else {
  328. /*IF*/if (X291is_reference(a1)) {
  329. X291to_reference(_actual_type);
  330. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  331. char b1='\50';
  332. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  333. }/*]*/
  334. /*]*/
  335. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T460* C1=C;
  336. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  337. }/*]*/
  338. /*]*/
  339. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  340. char b1='\51';
  341. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  342. }/*]*/
  343. /*]*/
  344. }
  345. else {
  346. /*IF*/if (X291need_c_struct(a1)) {
  347. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  348. char b1='\46';
  349. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  350. }/*]*/
  351. /*]*/
  352. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  353. char b1='\50';
  354. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  355. }/*]*/
  356. /*]*/
  357. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T460* C1=C;
  358. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  359. }/*]*/
  360. /*]*/
  361. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  362. char b1='\51';
  363. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  364. }/*]*/
  365. /*]*/
  366. }
  367. else {
  368. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T460* C1=C;
  369. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  370. }/*]*/
  371. /*]*/
  372. }
  373. /*FI*/}
  374. /*FI*/}
  375. /*FI*//*IF*/if (_flag) {
  376. /*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T544* C1=((T544*)(oBC324out_c));
  377. char b1='\51';
  378. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  379. }/*]*/
  380. /*]*/
  381. }
  382. /*FI*/}
  383. /*No:CALL_INFIX_INT_DIV.nb_errors*/
  384. /*No:CALL_INFIX_INT_DIV.feature_name*/
  385. /*No:CALL_INFIX_INT_DIV.fz_iinaiv*/
  386. /*No:CALL_INFIX_INT_DIV.arg_count*/
  387. /*No:CALL_INFIX_INT_DIV.dca_inline_argument*/
  388. /*No:CALL_INFIX_INT_DIV.run_feature*/
  389. /*No:CALL_INFIX_INT_DIV.call_proc_call_c2c*/
  390. /*No:CALL_INFIX_INT_DIV.start_position*/
  391. /*No:CALL_INFIX_INT_DIV.target*/
  392. /*No:CALL_INFIX_INT_DIV.compile_to_c*/
  393. /*No:CALL_INFIX_INT_DIV.c_simple*/
  394. T0* r460to_runnable(T460* C,T0* a1){
  395. T0* R=NULL;
  396. T0* _tla=NULL;
  397. T0* _a=NULL;
  398. /*IF*/if (((((T460*)C))->_current_type/*8*/)==((void*)(NULL))) {
  399. r460to_runnable_0(C,a1);
  400. _a=X431to_runnable((((T460*)C))->_arguments/*24*/,a1);
  401. /*IF*/if ((_a)==((void*)(NULL))) {
  402. r460error(X662start_position(r460arg1(C)),((T0*)ms55_470));
  403. }
  404. else {
  405. C->_arguments=_a;
  406. }
  407. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  408. X431match_with((((T460*)C))->_arguments/*24*/,(((T460*)C))->_run_feature/*16*/);
  409. }
  410. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  411. _tla=(((T460*)C))->_result_type/*20*/;
  412. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  413. case 239: 
  414. break;
  415. default:
  416. _tla=NULL;
  417. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  418. C->_result_type=X291run_type(X662result_type(r460arg1(C)));
  419. }
  420. /*FI*/}
  421. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  422. R=(T0*)C;
  423. }
  424. /*FI*/}
  425. else {
  426. R=r460twin(C);
  427. /*[IRF3.3set_current_type*/((((T460*)(((T460*)R))))->_current_type)=(NULL);
  428. /*]*/
  429. R=r460to_runnable(((T460*)R),a1);
  430. }
  431. /*FI*/return R;
  432. }
  433. /*No:CALL_INFIX_INT_DIV.result_type*/
  434. /*No:CALL_INFIX_INT_DIV.is_result*/
  435. T0* r460twin(T460* C){
  436. T0* R=NULL;
  437. R=malloc(sizeof(*C));
  438. *((T460*)R)=*C;
  439. return R;
  440. }
  441. /*No:CALL_INFIX_INT_DIV.set_current_type*/
  442. /*No:CALL_INFIX_INT_DIV.operator*/
  443. int r460is_static(T460* C){
  444. int R=0;
  445. /*IF*/if (X291is_integer((((T460*)C))->_result_type/*20*/)) {
  446. /*IF*/if ((X662is_static((((T460*)C))->_target/*12*/))&&(X662is_static(r460arg1(C)))) {
  447. R=1;
  448. C->_static_value_mem=(X662static_value((((T460*)C))->_target/*12*/))/(X662static_value(r460arg1(C)));
  449. }
  450. /*FI*/}
  451. /*FI*/return R;
  452. }
  453. /*No:CALL_INFIX_INT_DIV.fz_07*/
  454. /*No:CALL_INFIX_INT_DIV.can_be_dropped*/
  455. /*No:CALL_INFIX_INT_DIV.current_type*/
  456. void r460compile_to_c_old(T460* C){
  457. X662compile_to_c_old((((T460*)C))->_target/*12*/);
  458. /*IF*/{/*AT*/X431compile_to_c_old((((T460*)C))->_arguments/*24*/);
  459. }
  460. /*FI*/}
  461. /*No:CALL_INFIX_INT_DIV.static_value_mem*/
  462. void r460make_call_1(T460* C,T0* a1,T0* a2,T0* a3){
  463. C->_target=a1;
  464. C->_feature_name=a2;
  465. C->_arguments=a3;
  466. }
  467. /*No:CALL_INFIX_INT_DIV.is_manifest_string*/
  468. /*No:CALL_INFIX_INT_DIV.is_void*/
  469. void r460to_runnable_0(T460* C,T0* a1){
  470. C->_current_type=a1;
  471. r460cpc_to_runnable(C,a1);
  472. C->_result_type=/*X496*/((T0*)(((T832*)((T832*)((((T460*)C))->_run_feature/*16*/))))->_result_type/*24*/);
  473. /*IF*/if (((((T460*)C))->_result_type/*20*/)==((void*)(NULL))) {
  474. r683add_position(X496start_position((((T460*)C))->_run_feature/*16*/));
  475. r460error((((T454*)((T454*)((((T460*)C))->_feature_name/*28*/))))->_start_position/*8*/,((T0*)ms1_295));
  476. }
  477.  else if (X291is_like_current((((T460*)C))->_result_type/*20*/)) {
  478. C->_result_type=X662result_type((((T460*)C))->_target/*12*/);
  479. }
  480. /*FI*/}
  481. /*No:CALL_INFIX_INT_DIV.is_pre_computable*/
  482. void r460cpc_to_runnable(T460* C,T0* a1){
  483. T0* _rc=NULL;
  484. T0* _t=NULL;
  485. _t=X662to_runnable((((T460*)C))->_target/*12*/,a1);
  486. /*IF*/if ((_t)==((void*)(NULL))) {
  487. r683add_position(X662start_position((((T460*)C))->_target/*12*/));
  488. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  489. r683fatal_error(((T683*)(oBC364eh)),b1);
  490. }/*]*/
  491. }
  492. /*FI*/C->_target=_t;
  493. _rc=X291run_class(X662result_type((((T460*)C))->_target/*12*/));
  494. C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C);
  495. r576update((((T460*)C))->_target/*12*/,(((T460*)C))->_run_feature/*16*/);
  496. }
  497. int r460use_current(T460* C){
  498. int R=0;
  499. /*IF*/{/*AT*/R=X431use_current((((T460*)C))->_arguments/*24*/);
  500. }
  501. /*FI*//*IF*/if (R) {
  502. }
  503.  else if (X662is_current((((T460*)C))->_target/*12*/)) {
  504. R=X496use_current((((T460*)C))->_run_feature/*16*/);
  505. }
  506. else {
  507. R=X662use_current((((T460*)C))->_target/*12*/);
  508. }
  509. /*FI*/return R;
  510. }
  511. void r460finalize(T460* C){
  512. T0* _rf=NULL;
  513. T0* _rc=NULL;
  514. _rf=(((T460*)C))->_run_feature/*16*/;
  515. _rc=X291run_class(/*X496*/((T0*)(((T832*)((T832*)_rf)))->_current_type/*4*/));
  516. /*IF*/if (!((((T355*)((T355*)_rc)))->_at_run_time/*8*/)) {
  517. _rf=r355dynamic(((T355*)(r396first(((T396*)((((T355*)((T355*)_rc)))->_running/*12*/))))),_rf);
  518. C->_run_feature=_rf;
  519. }
  520. /*FI*/}
  521. void r460error(T0* a1,T0* a2){
  522. r683add_position(a1);
  523. r683error(((T683*)(oBC364eh)),a2);
  524. }
  525. /*No:CALL_INFIX_INT_DIV.isa_dca_inline_argument*/
  526. /*No:CALL_INFIX_INT_DIV.fatal_error*/
  527. /*No:CALL_INFIX_INT_DIV.fz_bad_argument*/
  528. T0* r460arg1(T460* C){
  529. T0* R=NULL;
  530. R=X431first((((T460*)C))->_arguments/*24*/);
  531. return R;
  532. }
  533. void r460afd_check(T460* C){
  534. T0* _running=NULL;
  535. T0* _rc=NULL;
  536. _rc=X291run_class(X662result_type((((T460*)C))->_target/*12*/));
  537. _running=(((T355*)((T355*)_rc)))->_running/*12*/;
  538. /*IF*/if ((_running)==((void*)(NULL))) {
  539. r683add_position(X662start_position((((T460*)C))->_target/*12*/));
  540. /*[IRF3.6append*/{T0* b1=((T0*)ms1_135);
  541. r7append(((T7*)(oBC683explanation)),b1);
  542. }/*]*/
  543. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/);
  544. r7append(((T7*)(oBC683explanation)),b1);
  545. }/*]*/
  546. /*[IRF3.6append*/{T0* b1=((T0*)ms141_470);
  547. r7append(((T7*)(oBC683explanation)),b1);
  548. }/*]*/
  549. r683print_as_warning(((T683*)(oBC364eh)));
  550. r355set_at_run_time(((T355*)_rc));
  551. }
  552.  else if ((r396count(((T396*)_running)))>(0)) {
  553. r576update((((T460*)C))->_target/*12*/,(((T460*)C))->_run_feature/*16*/);
  554. }
  555. /*FI*/X662afd_check((((T460*)C))->_target/*12*/);
  556. /*IF*/{/*AT*/X431afd_check((((T460*)C))->_arguments/*24*/);
  557. }
  558. /*FI*/}
  559. /*No:CALL_PREFIX_NOT.arguments*/
  560. T0* r180add_comment(T180* C,T0* a1){
  561. T0* R=NULL;
  562. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  563. R=(T0*)C;
  564. }
  565. else {
  566. {T529*n=malloc(sizeof(*n));
  567. *n=M529;
  568. r529make(n,(T0*)C,a1);
  569. R=(T0*)n;
  570. }
  571. }
  572. /*FI*/return R;
  573. }
  574. int r180to_integer(T180* C){
  575. int R=0;
  576. T0* _rf1=NULL;
  577. _rf1=(((T180*)C))->_run_feature/*16*/;
  578. if(NULL!=(_rf1))switch(((T0*)_rf1)->id) {
  579. case 808: 
  580. break;
  581. default:
  582. _rf1=NULL;
  583. };/*IF*/if ((_rf1)==((void*)(NULL))) {
  584. r180error(/*(IRF4.6start_position*/(((T406*)((T406*)((((T180*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  585. }
  586. else {
  587. R=X662to_integer((((T808*)((T808*)_rf1)))->_value/*48*/);
  588. }
  589. /*FI*/return R;
  590. }
  591. int r180is_a(T180* C,T0* a1){
  592. int R=0;
  593. R=X291is_a(X291run_type((((T180*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
  594. /*IF*/if (!(R)) {
  595. r683add_position(/*(IRF4.6start_position*/(((T406*)((T406*)((((T180*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/);
  596. r180error(X662start_position(a1),((T0*)ms4_662));
  597. }
  598. /*FI*/return R;
  599. }
  600. /*No:CALL_PREFIX_NOT.is_current*/
  601. void r180mapping_c_arg(T180* C,T0* a1){
  602. T0* _actual_type=NULL;
  603. _actual_type=X291run_type((((T180*)C))->_result_type/*20*/);
  604. /*IF*/if (X291is_reference(_actual_type)) {
  605. /*IF*/if (X291is_reference(a1)) {
  606. r180compile_to_c(C);
  607. }
  608. else {
  609. X291to_expanded(_actual_type);
  610. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  611. char b1='\50';
  612. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  613. }/*]*/
  614. /*]*/
  615. r180compile_to_c(C);
  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. /*FI*/}
  623. else {
  624. /*IF*/if (X291is_reference(a1)) {
  625. X291to_reference(_actual_type);
  626. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  627. char b1='\50';
  628. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  629. }/*]*/
  630. /*]*/
  631. r180compile_to_c(C);
  632. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  633. char b1='\51';
  634. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  635. }/*]*/
  636. /*]*/
  637. }
  638. else {
  639. /*IF*/if (X291need_c_struct(a1)) {
  640. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  641. char b1='\46';
  642. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  643. }/*]*/
  644. /*]*/
  645. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  646. char b1='\50';
  647. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  648. }/*]*/
  649. /*]*/
  650. r180compile_to_c(C);
  651. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  652. char b1='\51';
  653. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  654. }/*]*/
  655. /*]*/
  656. }
  657. else {
  658. r180compile_to_c(C);
  659. }
  660. /*FI*/}
  661. /*FI*/}
  662. /*FI*/}
  663. /*No:CALL_PREFIX_NOT.static_value*/
  664. void r180make(T180* C,T0* a1,T0* a2){
  665. {T406*n=malloc(sizeof(*n));
  666. *n=M406;
  667. r406make(n,r180operator(),a1);
  668. C->_feature_name=(T0*)n;
  669. }
  670. r180make_call0(C,a2,(((T180*)C))->_feature_name/*24*/);
  671. }
  672. void r180mapping_c_target(T180* C,T0* a1){
  673. T0* _actual_type=NULL;
  674. int _flag=0;
  675. _flag=r324call_invariant_start(a1);
  676. _actual_type=X291run_type((((T180*)C))->_result_type/*20*/);
  677. /*IF*/if (X291is_reference(_actual_type)) {
  678. /*IF*/if (X291is_reference(a1)) {
  679. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  680. char b1='\50';
  681. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  682. }/*]*/
  683. /*]*/
  684. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  685. char b1='\50';
  686. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  687. }/*]*/
  688. /*]*/
  689. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  690. char b1='T';
  691. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  692. }/*]*/
  693. /*]*/
  694. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X291id(a1));
  695. /*]*/
  696. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  697. char b1='\52';
  698. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  699. }/*]*/
  700. /*]*/
  701. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  702. char b1='\51';
  703. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  704. }/*]*/
  705. /*]*/
  706. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  707. char b1='\50';
  708. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  709. }/*]*/
  710. /*]*/
  711. r180compile_to_c(C);
  712. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  713. char b1='\51';
  714. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  715. }/*]*/
  716. /*]*/
  717. /*[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. else {
  724. X291to_expanded(_actual_type);
  725. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  726. char b1='\50';
  727. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  728. }/*]*/
  729. /*]*/
  730. r180compile_to_c(C);
  731. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  732. char b1='\51';
  733. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  734. }/*]*/
  735. /*]*/
  736. }
  737. /*FI*/}
  738. else {
  739. /*IF*/if (X291is_reference(a1)) {
  740. X291to_reference(_actual_type);
  741. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  742. char b1='\50';
  743. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  744. }/*]*/
  745. /*]*/
  746. r180compile_to_c(C);
  747. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  748. char b1='\51';
  749. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  750. }/*]*/
  751. /*]*/
  752. }
  753. else {
  754. /*IF*/if (X291need_c_struct(a1)) {
  755. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  756. char b1='\46';
  757. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  758. }/*]*/
  759. /*]*/
  760. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  761. char b1='\50';
  762. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  763. }/*]*/
  764. /*]*/
  765. r180compile_to_c(C);
  766. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  767. char b1='\51';
  768. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  769. }/*]*/
  770. /*]*/
  771. }
  772. else {
  773. r180compile_to_c(C);
  774. }
  775. /*FI*/}
  776. /*FI*/}
  777. /*FI*//*IF*/if (_flag) {
  778. /*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T544* C1=((T544*)(oBC324out_c));
  779. char b1='\51';
  780. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  781. }/*]*/
  782. /*]*/
  783. }
  784. /*FI*/}
  785. /*No:CALL_PREFIX_NOT.nb_errors*/
  786. /*No:CALL_PREFIX_NOT.feature_name*/
  787. /*No:CALL_PREFIX_NOT.fz_iinaiv*/
  788. /*No:CALL_PREFIX_NOT.arg_count*/
  789. /*No:CALL_PREFIX_NOT.dca_inline_argument*/
  790. /*No:CALL_PREFIX_NOT.run_feature*/
  791. /*No:CALL_PREFIX_NOT.call_proc_call_c2c*/
  792. /*No:CALL_PREFIX_NOT.start_position*/
  793. /*No:CALL_PREFIX_NOT.target*/
  794. void r180compile_to_c(T180* C){
  795. /*IF*/if ((r590boost(((T590*)(oBC364run_control))))&&(X291is_boolean(X291run_type(X662result_type((((T180*)C))->_target/*12*/))))) {
  796. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms1_180));
  797. /*]*/
  798. X662compile_to_c((((T180*)C))->_target/*12*/);
  799. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  800. char b1='\51';
  801. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  802. }/*]*/
  803. /*]*/
  804. }
  805. else {
  806. /*[IRF3.6call_proc_call_c2c*/{T180* C1=C;
  807. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  808. }/*]*/
  809. }
  810. /*FI*/}
  811. /*No:CALL_PREFIX_NOT.c_simple*/
  812. T0* r180to_runnable(T180* C,T0* a1){
  813. T0* R=NULL;
  814. /*IF*/if (((((T180*)C))->_current_type/*8*/)==((void*)(NULL))) {
  815. r180to_runnable_0(C,a1);
  816. /*IF*/if (((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0))&&((X496arg_count((((T180*)C))->_run_feature/*16*/))>(0))) {
  817. r683add_position((((T406*)((T406*)((((T180*)C))->_feature_name/*24*/))))->_start_position/*8*/);
  818. r180error(X496start_position((((T180*)C))->_run_feature/*16*/),((T0*)ms1_752));
  819. }
  820. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  821. R=(T0*)C;
  822. }
  823. /*FI*/}
  824. else {
  825. R=r180twin(C);
  826. /*[IRF3.3set_current_type*/((((T180*)(((T180*)R))))->_current_type)=(NULL);
  827. /*]*/
  828. R=r180to_runnable(((T180*)R),a1);
  829. }
  830. /*FI*/return R;
  831. }
  832. /*No:CALL_PREFIX_NOT.result_type*/
  833. /*No:CALL_PREFIX_NOT.is_result*/
  834. T0* r180twin(T180* C){
  835. T0* R=NULL;
  836. R=malloc(sizeof(*C));
  837. *((T180*)R)=*C;
  838. return R;
  839. }
  840. /*No:CALL_PREFIX_NOT.set_current_type*/
  841. T0* r180operator(void){
  842. T0* R=NULL;
  843. R=((T0*)ms40_473);
  844. return R;
  845. }
  846. int r180is_static(T180* C){
  847. int R=0;
  848. /*IF*/if (X291is_boolean(X662result_type((((T180*)C))->_target/*12*/))) {
  849. /*IF*/if (X662is_static((((T180*)C))->_target/*12*/)) {
  850. R=1;
  851. /*IF*/if ((X662static_value((((T180*)C))->_target/*12*/))==(0)) {
  852. C->_static_value_mem=1;
  853. }
  854. /*FI*/}
  855. /*FI*/}
  856. /*FI*/return R;
  857. }
  858. /*No:CALL_PREFIX_NOT.fz_07*/
  859. int r180can_be_dropped(T180* C){
  860. int R=0;
  861. /*IF*/if (X662can_be_dropped((((T180*)C))->_target/*12*/)) {
  862. R=X496can_be_dropped((((T180*)C))->_run_feature/*16*/);
  863. }
  864. /*FI*/return R;
  865. }
  866. /*No:CALL_PREFIX_NOT.current_type*/
  867. void r180compile_to_c_old(T180* C){
  868. X662compile_to_c_old((((T180*)C))->_target/*12*/);
  869. /*IF*//*AF*//*AE*/
  870. /*FI*/}
  871. /*No:CALL_PREFIX_NOT.static_value_mem*/
  872. /*No:CALL_PREFIX_NOT.is_manifest_string*/
  873. /*No:CALL_PREFIX_NOT.is_void*/
  874. void r180to_runnable_0(T180* C,T0* a1){
  875. C->_current_type=a1;
  876. r180cpc_to_runnable(C,a1);
  877. C->_result_type=/*X496*/((T0*)(((T832*)((T832*)((((T180*)C))->_run_feature/*16*/))))->_result_type/*24*/);
  878. /*IF*/if (((((T180*)C))->_result_type/*20*/)==((void*)(NULL))) {
  879. r683add_position(X496start_position((((T180*)C))->_run_feature/*16*/));
  880. r180error((((T406*)((T406*)((((T180*)C))->_feature_name/*24*/))))->_start_position/*8*/,((T0*)ms1_295));
  881. }
  882.  else if (X291is_like_current((((T180*)C))->_result_type/*20*/)) {
  883. C->_result_type=X662result_type((((T180*)C))->_target/*12*/);
  884. }
  885. /*FI*/}
  886. /*No:CALL_PREFIX_NOT.is_pre_computable*/
  887. void r180cpc_to_runnable(T180* C,T0* a1){
  888. T0* _rc=NULL;
  889. T0* _t=NULL;
  890. _t=X662to_runnable((((T180*)C))->_target/*12*/,a1);
  891. /*IF*/if ((_t)==((void*)(NULL))) {
  892. r683add_position(X662start_position((((T180*)C))->_target/*12*/));
  893. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  894. r683fatal_error(((T683*)(oBC364eh)),b1);
  895. }/*]*/
  896. }
  897. /*FI*/C->_target=_t;
  898. _rc=X291run_class(X662result_type((((T180*)C))->_target/*12*/));
  899. C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C);
  900. r576update((((T180*)C))->_target/*12*/,(((T180*)C))->_run_feature/*16*/);
  901. }
  902. int r180use_current(T180* C){
  903. int R=0;
  904. /*IF*//*AF*//*AE*/
  905. /*FI*//*IF*/if (R) {
  906. }
  907.  else if (X662is_current((((T180*)C))->_target/*12*/)) {
  908. R=X496use_current((((T180*)C))->_run_feature/*16*/);
  909. }
  910. else {
  911. R=X662use_current((((T180*)C))->_target/*12*/);
  912. }
  913. /*FI*/return R;
  914. }
  915. /*No:CALL_PREFIX_NOT.us_not*/
  916. void r180make_call0(T180* C,T0* a1,T0* a2){
  917. C->_target=a1;
  918. C->_feature_name=a2;
  919. }
  920. void r180finalize(T180* C){
  921. T0* _rf=NULL;
  922. T0* _rc=NULL;
  923. _rf=(((T180*)C))->_run_feature/*16*/;
  924. _rc=X291run_class(/*X496*/((T0*)(((T832*)((T832*)_rf)))->_current_type/*4*/));
  925. /*IF*/if (!((((T355*)((T355*)_rc)))->_at_run_time/*8*/)) {
  926. _rf=r355dynamic(((T355*)(r396first(((T396*)((((T355*)((T355*)_rc)))->_running/*12*/))))),_rf);
  927. C->_run_feature=_rf;
  928. }
  929. /*FI*/}
  930. void r180error(T0* a1,T0* a2){
  931. r683add_position(a1);
  932. r683error(((T683*)(oBC364eh)),a2);
  933. }
  934. /*No:CALL_PREFIX_NOT.isa_dca_inline_argument*/
  935. /*No:CALL_PREFIX_NOT.fatal_error*/
  936. void r180afd_check(T180* C){
  937. T0* _running=NULL;
  938. T0* _rc=NULL;
  939. _rc=X291run_class(X662result_type((((T180*)C))->_target/*12*/));
  940. _running=(((T355*)((T355*)_rc)))->_running/*12*/;
  941. /*IF*/if ((_running)==((void*)(NULL))) {
  942. r683add_position(X662start_position((((T180*)C))->_target/*12*/));
  943. /*[IRF3.6append*/{T0* b1=((T0*)ms1_135);
  944. r7append(((T7*)(oBC683explanation)),b1);
  945. }/*]*/
  946. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/);
  947. r7append(((T7*)(oBC683explanation)),b1);
  948. }/*]*/
  949. /*[IRF3.6append*/{T0* b1=((T0*)ms141_470);
  950. r7append(((T7*)(oBC683explanation)),b1);
  951. }/*]*/
  952. r683print_as_warning(((T683*)(oBC364eh)));
  953. r355set_at_run_time(((T355*)_rc));
  954. }
  955.  else if ((r396count(((T396*)_running)))>(0)) {
  956. r576update((((T180*)C))->_target/*12*/,(((T180*)C))->_run_feature/*16*/);
  957. }
  958. /*FI*/X662afd_check((((T180*)C))->_target/*12*/);
  959. /*IF*//*AF*//*AE*/
  960. /*FI*/}
  961. void r158make(T158* C,T0* a1,T0* a2,T0* a3){
  962. C->_comment=a3;
  963. C->_tag=a1;
  964. C->_expression=a2;
  965. }
  966. /*No:LOOP_VARIANT_2.nb_errors*/
  967. /*No:LOOP_VARIANT_2.expression*/
  968. T0* r158start_position(T158* C){
  969. T0* R=NULL;
  970. R=X662start_position((((T158*)C))->_expression/*8*/);
  971. return R;
  972. }
  973. /*No:LOOP_VARIANT_2.comment*/
  974. T0* r158to_runnable(T158* C,T0* a1){
  975. T0* R=NULL;
  976. T0* _e=NULL;
  977. /*IF*/if (((((T158*)C))->_current_type/*12*/)==((void*)(NULL))) {
  978. C->_current_type=a1;
  979. _e=X662to_runnable((((T158*)C))->_expression/*8*/,a1);
  980. /*IF*/if ((_e)==((void*)(NULL))) {
  981. r158error(r158start_position(C),((T0*)ms1_856));
  982. }
  983. else {
  984. C->_expression=_e;
  985. /*IF*/if (!(X291is_integer(X662result_type((((T158*)C))->_expression/*8*/)))) {
  986. r158error(X662start_position((((T158*)C))->_expression/*8*/),((T0*)ms2_856));
  987. }
  988. /*FI*/}
  989. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  990. R=(T0*)C;
  991. }
  992. /*FI*/}
  993. else {
  994. R=r158twin(C);
  995. /*[IRF3.3set_current_type*/((((T158*)(((T158*)R))))->_current_type)=(NULL);
  996. /*]*/
  997. R=r158to_runnable(((T158*)R),a1);
  998. }
  999. /*FI*/return R;
  1000. }
  1001. T0* r158twin(T158* C){
  1002. T0* R=NULL;
  1003. R=malloc(sizeof(*C));
  1004. *((T158*)R)=*C;
  1005. return R;
  1006. }
  1007. /*No:LOOP_VARIANT_2.set_current_type*/
  1008. /*No:LOOP_VARIANT_2.tag*/
  1009. /*No:LOOP_VARIANT_2.current_type*/
  1010. int r158use_current(T158* C){
  1011. int R=0;
  1012. R=X662use_current((((T158*)C))->_expression/*8*/);
  1013. return R;
  1014. }
  1015. void r158error(T0* a1,T0* a2){
  1016. r683add_position(a1);
  1017. r683error(((T683*)(oBC364eh)),a2);
  1018. }
  1019. void r158afd_check(T158* C){
  1020. X662afd_check((((T158*)C))->_expression/*8*/);
  1021. }
  1022. /*No:DEFERRED_FUNCTION.arguments*/
  1023. T0* r649try_to_undefine(T649* C,T0* a1,T0* a2){
  1024. T0* R=NULL;
  1025. X776undefine_in(a1,a2);
  1026. R=/*(IRF4.4try_to_undefine_aux*/((T0*)(C))/*)*/;
  1027. /*IF*/if ((R)!=((void*)(NULL))) {
  1028. /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T649*)C))->_clients/*20*/);
  1029. /*]*/
  1030. }
  1031. else {
  1032. r605fatal_undefine(((T605*)a2),a1);
  1033. }
  1034. /*FI*/return R;
  1035. }
  1036. /*No:DEFERRED_FUNCTION.is_deferred*/
  1037. /*No:DEFERRED_FUNCTION.rescue_compound*/
  1038. void r649add_into(T649* C,T0* a1){
  1039. T0* _fn=NULL;
  1040. int _i=0;
  1041. C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T649*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
  1042. _i=1;
  1043. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T649*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  1044. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T649*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
  1045. /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
  1046. _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)/*)*//*)*/);
  1047. r683add_position(X776start_position(_fn));
  1048. r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T649*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
  1049. r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
  1050. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  1051. r7append(((T7*)(oBC683explanation)),b1);
  1052. }/*]*/
  1053. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1054. }
  1055. else {
  1056. r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
  1057. }
  1058. /*FI*/_i=(_i)+(1);
  1059. }
  1060. }
  1061. /*No:DEFERRED_FUNCTION.end_comment*/
  1062. /*No:DEFERRED_FUNCTION.try_to_undefine_aux*/
  1063. void r649make(T649* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6){
  1064. r649make_routine(C,a1,a2,a4,a5,a6);
  1065. C->_result_type=a3;
  1066. }
  1067. /*No:DEFERRED_FUNCTION.nb_errors*/
  1068. void r649make_routine(T649* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  1069. r649make_e_feature(C,a1,NULL);
  1070. C->_header_comment=a4;
  1071. C->_arguments=a2;
  1072. C->_obsolete_mark=a3;
  1073. C->_require_assertion=a5;
  1074. }
  1075. void r649set_header_comment(T649* C,T0* a1){
  1076. /*IF*/if (((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)>(1))) {
  1077. C->_end_comment=a1;
  1078. }
  1079. /*FI*/}
  1080. T0* r649start_position(T649* C){
  1081. T0* R=NULL;
  1082. R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T649*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  1083. return R;
  1084. }
  1085. T0* r649to_run_feature(T649* C,T0* a1,T0* a2){
  1086. T0* R=NULL;
  1087. r649check_obsolete(C);
  1088. {T904*n=malloc(sizeof(*n));
  1089. *n=M904;
  1090. r904make(n,a1,a2,(T0*)C);
  1091. R=(T0*)n;
  1092. }
  1093. return R;
  1094. }
  1095. /*No:DEFERRED_FUNCTION.ensure_assertion*/
  1096. /*No:DEFERRED_FUNCTION.code_require*/
  1097. /*No:DEFERRED_FUNCTION.result_type*/
  1098. /*No:DEFERRED_FUNCTION.fz_03*/
  1099. /*No:DEFERRED_FUNCTION.em1*/
  1100. /*No:DEFERRED_FUNCTION.obsolete_mark*/
  1101. /*No:DEFERRED_FUNCTION.em2*/
  1102. /*No:DEFERRED_FUNCTION.set_clients*/
  1103. /*No:DEFERRED_FUNCTION.names*/
  1104. /*No:DEFERRED_FUNCTION.require_assertion*/
  1105. void r649from_effective(T649* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6){
  1106. {T953*n=malloc(sizeof(*n));
  1107. *n=M953;
  1108. r953make(n,se_ma855(1,a1));
  1109. C->_names=(T0*)n;
  1110. }
  1111. r649make(C,(((T649*)C))->_names/*8*/,a2,a3,NULL,NULL,a4);
  1112. /*[IRF3.3set_ensure_assertion*/((((T649*)(C)))->_ensure_assertion)=(a5);
  1113. /*]*/
  1114. C->_base_class=a6;
  1115. }
  1116. /*No:DEFERRED_FUNCTION.stupid_switch*/
  1117. void r649set_rescue_compound(T649* C,T0* a1){
  1118. /*IF*/if (((a1)!=((void*)(NULL)))&&(/*(IRF4.2is_deferred*/(1)/*)*/)) {
  1119. r649error(r649start_position(C),((T0*)ms6_368));
  1120. }
  1121. /*FI*/C->_rescue_compound=a1;
  1122. }
  1123. int r649can_hide(T649* C,T0* a1,T0* a2){
  1124. int R=0;
  1125. /*IF*/if (((((T649*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  1126. /*IF*/if ((((((T649*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  1127. r683add_position(X359start_position(a1));
  1128. r649error(r649start_position(C),((T0*)ms5_359));
  1129. }
  1130. /*FI*/}
  1131. /*FI*//*IF*/if (((((T649*)C))->_arguments/*24*/)!=((void*)(X359arguments(a1)))) {
  1132. /*IF*/if ((((((T649*)C))->_arguments/*24*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  1133. r683add_position(X359start_position(a1));
  1134. r649error(r649start_position(C),((T0*)ms6_359));
  1135. }
  1136.  else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T649*)C))->_arguments/*24*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  1137. r683add_position(X359start_position(a1));
  1138. r649error(r649start_position(C),((T0*)ms7_359));
  1139. }
  1140. /*FI*/}
  1141. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1142. /*IF*/if (((((T649*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  1143. /*IF*/if (!(X291is_a_in((((T649*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  1144. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  1145. r7append(((T7*)(oBC683explanation)),b1);
  1146. }/*]*/
  1147. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  1148. r7append(((T7*)(oBC683explanation)),b1);
  1149. }/*]*/
  1150. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1151. }
  1152. /*FI*/}
  1153. /*FI*/}
  1154. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1155. /*IF*/if (((((T649*)C))->_arguments/*24*/)!=((void*)(NULL))) {
  1156. /*IF*/if (!(r31is_a_in(((T31*)((((T649*)C))->_arguments/*24*/)),X359arguments(a1),a2))) {
  1157. r683add_position(X359start_position(a1));
  1158. r683add_position(r649start_position(C));
  1159. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  1160. r7append(((T7*)(oBC683explanation)),b1);
  1161. }/*]*/
  1162. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  1163. r7append(((T7*)(oBC683explanation)),b1);
  1164. }/*]*/
  1165. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1166. }
  1167. /*FI*/}
  1168. /*FI*/}
  1169. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  1170. return R;
  1171. }
  1172. /*No:DEFERRED_FUNCTION.header_comment*/
  1173. int r649is_merge_with(T649* C,T0* a1,T0* a2){
  1174. int R=0;
  1175. /*IF*/if (((((T649*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  1176. /*IF*/if ((((((T649*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  1177. r683add_position(X359start_position(a1));
  1178. r649error(r649start_position(C),((T0*)ms2_359));
  1179. }
  1180. /*FI*/}
  1181. /*FI*//*IF*/if (((((T649*)C))->_arguments/*24*/)!=((void*)(X359arguments(a1)))) {
  1182. /*IF*/if ((((((T649*)C))->_arguments/*24*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  1183. r683add_position(X359start_position(a1));
  1184. r649error(r649start_position(C),((T0*)ms3_359));
  1185. }
  1186.  else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T649*)C))->_arguments/*24*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  1187. r683add_position(X359start_position(a1));
  1188. r649error(r649start_position(C),((T0*)ms4_359));
  1189. }
  1190. /*FI*/}
  1191. /*FI*//*IF*/if (((((T649*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  1192. /*IF*/if (!(X291is_a_in((((T649*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  1193. r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
  1194. }
  1195. /*FI*/}
  1196. /*FI*//*IF*/if (((((T649*)C))->_arguments/*24*/)!=((void*)(NULL))) {
  1197. /*IF*/if (!(r31is_a_in(((T31*)((((T649*)C))->_arguments/*24*/)),X359arguments(a1),a2))) {
  1198. r683add_position(X359start_position(a1));
  1199. r649error(r649start_position(C),((T0*)ms12_359));
  1200. }
  1201. /*FI*/}
  1202. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  1203. return R;
  1204. }
  1205. /*No:DEFERRED_FUNCTION.fz_dot*/
  1206. /*No:DEFERRED_FUNCTION.set_ensure_assertion*/
  1207. /*No:DEFERRED_FUNCTION.first_name*/
  1208. /*No:DEFERRED_FUNCTION.clients*/
  1209. void r649collect_for(T649* C,int a1){
  1210. /*IF*/if ((a1)==(1001)) {
  1211. /*IF*/if (((((T649*)C))->_require_assertion/*32*/)!=((void*)(NULL))) {
  1212. /*IF*/if (!(r522fast_has(((T522*)(oBC359require_collector)),(((T649*)C))->_require_assertion/*32*/))) {
  1213. r522add_last(((T522*)(oBC359require_collector)),(((T649*)C))->_require_assertion/*32*/);
  1214. }
  1215. /*FI*/}
  1216. /*FI*/}
  1217. else {
  1218. /*IF*/if (((((T649*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  1219. /*[IRF3.3set_item*/((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=((((T633*)((T633*)((((T649*)C))->_ensure_assertion/*36*/))))->_header_comment/*4*/);
  1220. /*]*/
  1221. r633add_into(((T633*)((((T649*)C))->_ensure_assertion/*36*/)),oBC359assertion_collector);
  1222. }
  1223. /*FI*/}
  1224. /*FI*/}
  1225. void r649error(T0* a1,T0* a2){
  1226. r683add_position(a1);
  1227. r683error(((T683*)(oBC364eh)),a2);
  1228. }
  1229. /*No:DEFERRED_FUNCTION.base_class*/
  1230. /*No:DEFERRED_FUNCTION.base_class_name*/
  1231. void r649make_e_feature(T649* C,T0* a1,T0* a2){
  1232. C->_names=a1;
  1233. C->_result_type=a2;
  1234. }
  1235. void r649check_obsolete(T649* C){
  1236. /*IF*/if (!((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/)) {
  1237. /*IF*/if (((((T649*)C))->_obsolete_mark/*28*/)!=((void*)(NULL))) {
  1238. /*[IRF3.6append*/{T0* b1=((T0*)ms7_368);
  1239. r7append(((T7*)(oBC683explanation)),b1);
  1240. }/*]*/
  1241. /*[IRF3.6append*/{T0* b1=(((T805*)((T805*)((((T649*)C))->_obsolete_mark/*28*/))))->_to_string/*16*/;
  1242. r7append(((T7*)(oBC683explanation)),b1);
  1243. }/*]*/
  1244. r649warning(r649start_position(C),((T0*)ms137_470));
  1245. }
  1246. /*FI*/}
  1247. /*FI*/}
  1248. void r649warning(T0* a1,T0* a2){
  1249. r683add_position(a1);
  1250. r683warning(((T683*)(oBC364eh)),a2);
  1251. }
  1252. void r953make(T953* C,T0* a1){
  1253. int _i2=0;
  1254. int _i=0;
  1255. C->_list=a1;
  1256. _i=(((T855*)((T855*)a1)))->_upper/*8*/;
  1257. while (!((_i)==(0))) {
  1258. _i2=r953index_of(C,r855item(((T855*)a1),_i));
  1259. /*IF*/if ((_i2)!=(_i)) {
  1260. r683add_position(X776start_position(r855item(((T855*)a1),_i2)));
  1261. r683add_position(X776start_position(r855item(((T855*)a1),_i)));
  1262. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_953);
  1263. r683fatal_error(((T683*)(oBC364eh)),b1);
  1264. }/*]*/
  1265. }
  1266. /*FI*/_i=(_i)-(1);
  1267. }
  1268. }
  1269. /*No:FEATURE_NAME_LIST.item*/
  1270. /*No:FEATURE_NAME_LIST.list*/
  1271. int r953has(T953* C,T0* a1){
  1272. int R=0;
  1273. R=(r953index_of(C,a1))>(0);
  1274. return R;
  1275. }
  1276. /*No:FEATURE_NAME_LIST.count*/
  1277. /*No:FEATURE_NAME_LIST.fatal_error*/
  1278. int r953index_of(T953* C,T0* a1){
  1279. int R=0;
  1280. T0* _fn_key=NULL;
  1281. _fn_key=X776to_key(a1);
  1282. R=(((T855*)((T855*)((((T953*)C))->_list/*0*/))))->_upper/*8*/;
  1283. while (!(((R)==(0))||((_fn_key)==((void*)(X776to_key(/*(IRF4.6item*/r855item(((T855*)((((T953*)C))->_list/*0*/)),R)/*)*/)))))) {
  1284. R=(R)-(1);
  1285. }
  1286. return R;
  1287. }
  1288. /*No:IFTHEN.fz_is_not_boolean*/
  1289. /*No:IFTHEN.static_false*/
  1290. void r809make(T809* C,T0* a1,T0* a2){
  1291. C->_expression=a1;
  1292. C->_then_compound=a2;
  1293. }
  1294. /*No:IFTHEN.nb_errors*/
  1295. /*No:IFTHEN.expression*/
  1296. /*No:IFTHEN.static_true*/
  1297. int r809compile_to_c(T809* C,int a1){
  1298. int R=0;
  1299. int _trace=0;
  1300. /*IF*/if (X662is_static((((T809*)C))->_expression/*0*/)) {
  1301. r324incr_static_expression_count(((T324*)(oBC364cpp)));
  1302. /*IF*/if ((X662static_value((((T809*)C))->_expression/*0*/))==(1)) {
  1303. r809print_else(a1);
  1304. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms1_809));
  1305. /*]*/
  1306. /*IF*/if (((((T809*)C))->_then_compound/*4*/)!=((void*)(NULL))) {
  1307. r592compile_to_c(((T592*)((((T809*)C))->_then_compound/*4*/)));
  1308. }
  1309. /*FI*//*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms2_809));
  1310. /*]*/
  1311. R=1016;
  1312. }
  1313. else {
  1314. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms3_809));
  1315. /*]*/
  1316. R=1017;
  1317. }
  1318. /*FI*/}
  1319. else {
  1320. R=1018;
  1321. _trace=(!(X662c_simple((((T809*)C))->_expression/*0*/)))&&(r590no_check(((T590*)(oBC364run_control))));
  1322. r809print_else(a1);
  1323. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms4_809));
  1324. /*]*/
  1325. /*IF*/if (_trace) {
  1326. r324trace_boolean_expression(((T324*)(oBC364cpp)),(((T809*)C))->_expression/*0*/);
  1327. }
  1328. else {
  1329. X662compile_to_c((((T809*)C))->_expression/*0*/);
  1330. }
  1331. /*FI*//*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms5_809));
  1332. /*]*/
  1333. /*IF*/if (((((T809*)C))->_then_compound/*4*/)!=((void*)(NULL))) {
  1334. r592compile_to_c(((T592*)((((T809*)C))->_then_compound/*4*/)));
  1335. }
  1336. /*FI*//*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms6_809));
  1337. /*]*/
  1338. }
  1339. /*FI*/return R;
  1340. }
  1341. void r809print_else(int a1){
  1342. /*IF*/if (a1) {
  1343. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms10_809));
  1344. /*]*/
  1345. }
  1346. /*FI*/}
  1347. T0* r809to_runnable(T809* C,T0* a1){
  1348. T0* R=NULL;
  1349. T0* _t=NULL;
  1350. T0* _tc=NULL;
  1351. T0* _e=NULL;
  1352. /*IF*/if (((((T809*)C))->_run_compound/*8*/)==((void*)(NULL))) {
  1353. C->_run_compound=a1;
  1354. _e=X662to_runnable((((T809*)C))->_expression/*0*/,/*(IRF4.6current_type*/(((T592*)((T592*)((((T809*)C))->_run_compound/*8*/))))->_current_type/*4*//*)*/);
  1355. /*IF*/if ((_e)==((void*)(NULL))) {
  1356. r809error(X662start_position((((T809*)C))->_expression/*0*/),((T0*)ms8_809));
  1357. }
  1358. else {
  1359. C->_expression=_e;
  1360. _t=X662result_type((((T809*)C))->_expression/*0*/);
  1361. /*IF*/if (!(X291is_boolean(_t))) {
  1362. /*[IRF3.6append*/{T0* b1=((T0*)ms9_809);
  1363. r7append(((T7*)(oBC683explanation)),b1);
  1364. }/*]*/
  1365. r683add_type(X662result_type((((T809*)C))->_expression/*0*/),((T0*)ms73_470));
  1366. r683add_position(X662start_position((((T809*)C))->_expression/*0*/));
  1367. r683print_as_error(((T683*)(oBC364eh)));
  1368. }
  1369. /*FI*/}
  1370. /*FI*//*IF*/if (((((T809*)C))->_then_compound/*4*/)!=((void*)(NULL))) {
  1371. _tc=r592to_runnable(((T592*)((((T809*)C))->_then_compound/*4*/)),/*(IRF4.6current_type*/(((T592*)((T592*)((((T809*)C))->_run_compound/*8*/))))->_current_type/*4*//*)*/);
  1372. /*IF*/if ((_tc)!=((void*)(NULL))) {
  1373. C->_then_compound=_tc;
  1374. }
  1375. /*FI*/}
  1376. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1377. R=(T0*)C;
  1378. }
  1379. /*FI*/}
  1380. else {
  1381. {T809*n=malloc(sizeof(*n));
  1382. *n=M809;
  1383. r809make(n,(((T809*)C))->_expression/*0*/,(((T809*)C))->_then_compound/*4*/);
  1384. R=(T0*)n;
  1385. }
  1386. R=r809to_runnable(((T809*)R),a1);
  1387. }
  1388. /*FI*/return R;
  1389. }
  1390. /*No:IFTHEN.then_compound*/
  1391. /*No:IFTHEN.current_type*/
  1392. /*No:IFTHEN.run_compound*/
  1393. /*No:IFTHEN.non_static*/
  1394. int r809use_current(T809* C){
  1395. int R=0;
  1396. R=X662use_current((((T809*)C))->_expression/*0*/);
  1397. /*IF*/if ((!(R))&&(((((T809*)C))->_then_compound/*4*/)!=((void*)(NULL)))) {
  1398. R=r592use_current(((T592*)((((T809*)C))->_then_compound/*4*/)));
  1399. }
  1400. /*FI*/return R;
  1401. }
  1402. void r809error(T0* a1,T0* a2){
  1403. r683add_position(a1);
  1404. r683error(((T683*)(oBC364eh)),a2);
  1405. }
  1406. void r809afd_check(T809* C){
  1407. X662afd_check((((T809*)C))->_expression/*0*/);
  1408. /*IF*/if (((((T809*)C))->_then_compound/*4*/)!=((void*)(NULL))) {
  1409. r592afd_check(((T592*)((((T809*)C))->_then_compound/*4*/)));
  1410. }
  1411. /*FI*/}
  1412. /*No:CST_ATT_INTEGER.arguments*/
  1413. T0* r689try_to_undefine(T689* C,T0* a1,T0* a2){
  1414. T0* R=NULL;
  1415. X776undefine_in(a1,a2);
  1416. R=r689try_to_undefine_aux(C,a1,a2);
  1417. /*IF*/if ((R)!=((void*)(NULL))) {
  1418. /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T689*)C))->_clients/*20*/);
  1419. /*]*/
  1420. }
  1421. else {
  1422. r605fatal_undefine(((T605*)a2),a1);
  1423. }
  1424. /*FI*/return R;
  1425. }
  1426. /*No:CST_ATT_INTEGER.is_deferred*/
  1427. void r689add_into(T689* C,T0* a1){
  1428. T0* _fn=NULL;
  1429. int _i=0;
  1430. C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T689*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
  1431. _i=1;
  1432. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T689*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  1433. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T689*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
  1434. /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
  1435. _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)/*)*//*)*/);
  1436. r683add_position(X776start_position(_fn));
  1437. r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T689*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
  1438. r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
  1439. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  1440. r7append(((T7*)(oBC683explanation)),b1);
  1441. }/*]*/
  1442. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1443. }
  1444. else {
  1445. r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
  1446. }
  1447. /*FI*/_i=(_i)+(1);
  1448. }
  1449. }
  1450. T0* r689try_to_undefine_aux(T689* C,T0* a1,T0* a2){
  1451. T0* R=NULL;
  1452. r683add_position(r689start_position(C));
  1453. r689error(X776start_position(a1),((T0*)ms1_308));
  1454. r605fatal_undefine(((T605*)a2),a1);
  1455. return R;
  1456. }
  1457. void r689make(T689* C,T0* a1,T0* a2,T0* a3){
  1458. r689make_e_feature(C,a1,a2);
  1459. C->_value_mem=a3;
  1460. }
  1461. /*No:CST_ATT_INTEGER.nb_errors*/
  1462. /*No:CST_ATT_INTEGER.set_header_comment*/
  1463. T0* r689start_position(T689* C){
  1464. T0* R=NULL;
  1465. R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T689*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  1466. return R;
  1467. }
  1468. T0* r689to_run_feature(T689* C,T0* a1,T0* a2){
  1469. T0* R=NULL;
  1470. T0* _rc=NULL;
  1471. _rc=X291run_class(a1);
  1472. R=r355at(((T355*)_rc),a2);
  1473. if(NULL!=(R))switch(((T0*)R)->id) {
  1474. case 808: 
  1475. break;
  1476. default:
  1477. R=NULL;
  1478. };/*IF*/if ((R)==((void*)(NULL))) {
  1479. {T808*n=malloc(sizeof(*n));
  1480. *n=M808;
  1481. r808make(n,a1,a2,(T0*)C);
  1482. R=(T0*)n;
  1483. }
  1484. }
  1485. /*FI*/return R;
  1486. }
  1487. /*No:CST_ATT_INTEGER.ensure_assertion*/
  1488. /*No:CST_ATT_INTEGER.code_require*/
  1489. /*No:CST_ATT_INTEGER.result_type*/
  1490. /*No:CST_ATT_INTEGER.em1*/
  1491. /*No:CST_ATT_INTEGER.set_clients*/
  1492. /*No:CST_ATT_INTEGER.em2*/
  1493. /*No:CST_ATT_INTEGER.value*/
  1494. /*No:CST_ATT_INTEGER.require_assertion*/
  1495. /*No:CST_ATT_INTEGER.names*/
  1496. /*No:CST_ATT_INTEGER.value_mem*/
  1497. /*No:CST_ATT_INTEGER.stupid_switch*/
  1498. int r689can_hide(T689* C,T0* a1,T0* a2){
  1499. int R=0;
  1500. /*IF*/if (((((T689*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  1501. /*IF*/if ((((((T689*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  1502. r683add_position(X359start_position(a1));
  1503. r689error(r689start_position(C),((T0*)ms5_359));
  1504. }
  1505. /*FI*/}
  1506. /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
  1507. /*IF*/{/*AT*/r683add_position(X359start_position(a1));
  1508. r689error(r689start_position(C),((T0*)ms6_359));
  1509. }
  1510. /*FI*/}
  1511. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1512. /*IF*/if (((((T689*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  1513. /*IF*/if (!(X291is_a_in((((T689*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  1514. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  1515. r7append(((T7*)(oBC683explanation)),b1);
  1516. }/*]*/
  1517. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  1518. r7append(((T7*)(oBC683explanation)),b1);
  1519. }/*]*/
  1520. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1521. }
  1522. /*FI*/}
  1523. /*FI*/}
  1524. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1525. /*IF*//*AF*//*AE*/
  1526. /*FI*/}
  1527. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  1528. return R;
  1529. }
  1530. /*No:CST_ATT_INTEGER.header_comment*/
  1531. int r689is_merge_with(T689* C,T0* a1,T0* a2){
  1532. int R=0;
  1533. /*IF*/if (((((T689*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  1534. /*IF*/if ((((((T689*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  1535. r683add_position(X359start_position(a1));
  1536. r689error(r689start_position(C),((T0*)ms2_359));
  1537. }
  1538. /*FI*/}
  1539. /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
  1540. /*IF*/{/*AT*/r683add_position(X359start_position(a1));
  1541. r689error(r689start_position(C),((T0*)ms3_359));
  1542. }
  1543. /*FI*/}
  1544. /*FI*//*IF*/if (((((T689*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  1545. /*IF*/if (!(X291is_a_in((((T689*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  1546. r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
  1547. }
  1548. /*FI*/}
  1549. /*FI*//*IF*//*AF*//*AE*/
  1550. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  1551. return R;
  1552. }
  1553. /*No:CST_ATT_INTEGER.fz_dot*/
  1554. /*No:CST_ATT_INTEGER.first_name*/
  1555. /*No:CST_ATT_INTEGER.clients*/
  1556. void r689collect_for(int a1){
  1557. /*IF*/if ((a1)==(1001)) {
  1558. /*IF*//*AF*//*AE*/
  1559. /*FI*/}
  1560. else {
  1561. /*IF*//*AF*//*AE*/
  1562. /*FI*/}
  1563. /*FI*/}
  1564. void r689error(T0* a1,T0* a2){
  1565. r683add_position(a1);
  1566. r683error(((T683*)(oBC364eh)),a2);
  1567. }
  1568. /*No:CST_ATT_INTEGER.base_class*/
  1569. /*No:CST_ATT_INTEGER.base_class_name*/
  1570. void r689make_e_feature(T689* C,T0* a1,T0* a2){
  1571. C->_names=a1;
  1572. C->_result_type=a2;
  1573. }
  1574. /*No:BASE_CLASS.fz_is_invalid*/
  1575. /*No:BASE_CLASS.set_end_comment*/
  1576. /*No:BASE_CLASS.id*/
  1577. void r605add_feature_clause(T605* C,T0* a1){
  1578. /*IF*/if (((((T605*)C))->_feature_clause_list/*48*/)==((void*)(NULL))) {
  1579. {T913*n=malloc(sizeof(*n));
  1580. *n=M913;
  1581. /*[IRF3.3make*/((((T913*)(n)))->_list)=(se_ma764(1,a1));
  1582. /*]*/
  1583. C->_feature_clause_list=(T0*)n;
  1584. }
  1585. }
  1586. else {
  1587. /*[IRF3.5add_last*/r764add_last(((T764*)((((T913*)((T913*)((((T605*)C))->_feature_clause_list/*48*/))))->_list/*0*/)),a1);
  1588. /*]*/
  1589. }
  1590. /*FI*/}
  1591. void r605set_parent_list(T605* C,T0* a1,T0* a2,T0* a3){
  1592. {T673*n=malloc(sizeof(*n));
  1593. *n=M673;
  1594. r673make(n,(T0*)C,a1,a2,a3);
  1595. C->_parent_list=(T0*)n;
  1596. }
  1597. }
  1598. /*No:BASE_CLASS.is_deferred*/
  1599. int r605has_creation(T605* C,T0* a1){
  1600. int R=0;
  1601. T0* _cn=NULL;
  1602. T0* _bc=NULL;
  1603. T0* _cc=NULL;
  1604. /*IF*/if (((((T605*)C))->_creation_clause_list/*44*/)==((void*)(NULL))) {
  1605. /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/;
  1606. r7append(((T7*)(oBC683explanation)),b1);
  1607. }/*]*/
  1608. /*[IRF3.6append*/{T0* b1=((T0*)ms7_605);
  1609. r7append(((T7*)(oBC683explanation)),b1);
  1610. }/*]*/
  1611. r683add_position(X776start_position(a1));
  1612. r683print_as_error(((T683*)(oBC364eh)));
  1613. }
  1614. else {
  1615. _cc=r378get_clause(((T378*)((((T605*)C))->_creation_clause_list/*44*/)),a1);
  1616. /*IF*/if ((_cc)==((void*)(NULL))) {
  1617. /*[IRF3.6append*/{T0* b1=((T0*)ms143_470);
  1618. r7append(((T7*)(oBC683explanation)),b1);
  1619. }/*]*/
  1620. /*[IRF3.6append*/{T0* b1=X776to_string(a1);
  1621. r7append(((T7*)(oBC683explanation)),b1);
  1622. }/*]*/
  1623. /*[IRF3.6append*/{T0* b1=((T0*)ms8_605);
  1624. r7append(((T7*)(oBC683explanation)),b1);
  1625. }/*]*/
  1626. /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/;
  1627. r7append(((T7*)(oBC683explanation)),b1);
  1628. }/*]*/
  1629. r605error(X776start_position(a1),((T0*)ms67_470));
  1630. }
  1631. else {
  1632. R=1;
  1633. _bc=X776origin_base_class(a1);
  1634. /*IF*/if ((_bc)!=((void*)(NULL))) {
  1635. _cn=(((T605*)((T605*)_bc)))->_base_class_name/*24*/;
  1636. R=r636gives_permission_to(((T636*)((((T583*)((T583*)_cc)))->_clients/*4*/)),_cn);
  1637. }
  1638. /*FI*/}
  1639. /*FI*/}
  1640. /*FI*//*IF*/if (!(R)) {
  1641. r605error(X776start_position(a1),((T0*)ms9_605));
  1642. }
  1643. /*FI*/return R;
  1644. }
  1645. void r605add_creation_clause(T605* C,T0* a1){
  1646. /*IF*/if (((((T605*)C))->_creation_clause_list/*44*/)==((void*)(NULL))) {
  1647. {T378*n=malloc(sizeof(*n));
  1648. *n=M378;
  1649. /*[IRF3.3make*/((((T378*)(n)))->_list)=(se_ma235(1,a1));
  1650. /*]*/
  1651. C->_creation_clause_list=(T0*)n;
  1652. }
  1653. }
  1654. else {
  1655. /*[IRF3.5add_last*/r235add_last(((T235*)((((T378*)((T378*)((((T605*)C))->_creation_clause_list/*44*/))))->_list/*0*/)),a1);
  1656. /*]*/
  1657. }
  1658. /*FI*/}
  1659. /*No:BASE_CLASS.us_copy*/
  1660. /*No:BASE_CLASS.feature_clause_list*/
  1661. int r605once_flag(T605* C,T0* a1){
  1662. int R=0;
  1663. /*IF*/if (((((T605*)C))->_once_mark_list/*64*/)==((void*)(NULL))) {
  1664. {T927*n=malloc(sizeof(*n));
  1665. *n=M927;
  1666. r927with_capacity(n,4);
  1667. C->_once_mark_list=(T0*)n;
  1668. }
  1669. r927add_last(((T927*)((((T605*)C))->_once_mark_list/*64*/)),a1);
  1670. }
  1671.  else if (r927fast_has(((T927*)((((T605*)C))->_once_mark_list/*64*/)),a1)) {
  1672. R=1;
  1673. }
  1674. else {
  1675. r927add_last(((T927*)((((T605*)C))->_once_mark_list/*64*/)),a1);
  1676. }
  1677. /*FI*/return R;
  1678. }
  1679. void r605get_started(T605* C){
  1680. C->_id=r410item(((T410*)(r605id_provider())),(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/);
  1681. /*IF*/if (((((T605*)C))->_feature_clause_list/*48*/)!=((void*)(NULL))) {
  1682. r913get_started(((T913*)((((T605*)C))->_feature_clause_list/*48*/)),(((T605*)C))->_feature_dictionary/*60*/);
  1683. }
  1684. /*FI*//*IF*/if (((((T605*)C))->_parent_list/*40*/)!=((void*)(NULL))) {
  1685. r673get_started(((T673*)((((T605*)C))->_parent_list/*40*/)));
  1686. }
  1687. /*FI*//*IF*/if (((((T605*)C))->_end_comment/*56*/)!=((void*)(NULL))) {
  1688. r393good_end(((T393*)((((T605*)C))->_end_comment/*56*/)),(((T605*)C))->_base_class_name/*24*/);
  1689. }
  1690. /*FI*//*IF*/if (((((T605*)C))->_parent_list/*40*/)!=((void*)(NULL))) {
  1691. r863clear(((T863*)(oBC605visited)));
  1692. r863add_last(((T863*)(oBC605visited)),(T0*)C);
  1693. r673inherit_cycle_check(((T673*)((((T605*)C))->_parent_list/*40*/)));
  1694. }
  1695. /*FI*//*IF*/if (((r590all_check(((T590*)(oBC364run_control))))&&((((T605*)C))->_is_deferred/*16*/))&&(((((T605*)C))->_creation_clause_list/*44*/)!=((void*)(NULL)))) {
  1696. r683add_position((((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_start_position/*4*/);
  1697. r605warning(r378start_position(((T378*)((((T605*)C))->_creation_clause_list/*44*/))),((T0*)ms6_605));
  1698. }
  1699. /*FI*/}
  1700. int r605is_subclass_of(T605* C,T0* a1){
  1701. int R=0;
  1702. /*IF*/if (r863fast_has(((T863*)((((T605*)C))->_isom/*68*/)),a1)) {
  1703. R=1;
  1704. }
  1705. else {
  1706. /*IF*/if (r605is_any(((T605*)a1))) {
  1707. R=1;
  1708. }
  1709. else {
  1710. r863clear(((T863*)(oBC605visited)));
  1711. R=r605is_subclass_of_aux(C,a1);
  1712. }
  1713. /*FI*//*IF*/if (R) {
  1714. r863add_last(((T863*)((((T605*)C))->_isom/*68*/)),a1);
  1715. }
  1716. /*FI*/}
  1717. /*FI*/return R;
  1718. }
  1719. int fBC364class_any=0;
  1720. T0*oBC364class_any=NULL;
  1721. T0* r605class_any(void){
  1722. if (fBC364class_any==0){
  1723. T0* R=NULL;
  1724. fBC364class_any=1;
  1725. R=r605class_with(((T0*)ms1_473));
  1726. oBC364class_any=R;}
  1727. return oBC364class_any;}
  1728. int r605has_feature(T605* C,T0* a1){
  1729. int R=0;
  1730. r446make(((T446*)(r605mem_fn())),a1,NULL);
  1731. R=r605has(C,r605mem_fn());
  1732. return R;
  1733. }
  1734. int fBC605mem_fn=0;
  1735. T0*oBC605mem_fn=NULL;
  1736. T0* r605mem_fn(void){
  1737. if (fBC605mem_fn==0){
  1738. T0* R=NULL;
  1739. fBC605mem_fn=1;
  1740. {T446*n=malloc(sizeof(*n));
  1741. *n=M446;
  1742. r446make(n,((T0*)ms27_605),NULL);
  1743. R=(T0*)n;
  1744. }
  1745. oBC605mem_fn=R;}
  1746. return oBC605mem_fn;}
  1747. int r605is_subclass_of_aux(T605* C,T0* a1){
  1748. int R=0;
  1749. /*IF*/if (r863fast_has(((T863*)(oBC605visited)),(T0*)C)) {
  1750. }
  1751. else {
  1752. r863add_last(((T863*)(oBC605visited)),(T0*)C);
  1753. /*IF*/if (((((T605*)C))->_parent_list/*40*/)!=((void*)(NULL))) {
  1754. R=r673has_parent(((T673*)((((T605*)C))->_parent_list/*40*/)),a1);
  1755. }
  1756.  else if (!(r863fast_has(((T863*)(oBC605visited)),r605class_any()))) {
  1757. R=r605is_subclass_of_aux(((T605*)(r605class_any())),a1);
  1758. }
  1759. /*FI*/}
  1760. /*FI*/return R;
  1761. }
  1762. /*No:BASE_CLASS.end_comment*/
  1763. void r605add_index_clause(T605* C,T0* a1){
  1764. /*IF*/if (((((T605*)C))->_index_list/*8*/)==((void*)(NULL))) {
  1765. {T688*n=malloc(sizeof(*n));
  1766. *n=M688;
  1767. /*[IRF3.3make*/((((T688*)(n)))->_list)=(se_ma848(1,a1));
  1768. /*]*/
  1769. C->_index_list=(T0*)n;
  1770. }
  1771. }
  1772. else {
  1773. r848add_last(((T848*)((((T688*)((T688*)((((T605*)C))->_index_list/*8*/))))->_list/*0*/)),a1);
  1774. }
  1775. /*FI*/}
  1776. /*No:BASE_CLASS.obsolete_type_string*/
  1777. T0* r605class_with(T0* a1){
  1778. T0* R=NULL;
  1779. R=r604get_class(a1);
  1780. return R;
  1781. }
  1782. /*No:BASE_CLASS.has_creation_clause*/
  1783. void r605make(T605* C){
  1784. {T863*n=malloc(sizeof(*n));
  1785. *n=M863;
  1786. r863with_capacity(n,6,1);
  1787. C->_isom=(T0*)n;
  1788. }
  1789. C->_path=r902item((((T676*)((T676*)(oBC364parser_buffer))))->_path/*0*/);
  1790. {T451*n=malloc(sizeof(*n));
  1791. *n=M451;
  1792. r451make_unknown(n);
  1793. C->_base_class_name=(T0*)n;
  1794. }
  1795. {T237*n=malloc(sizeof(*n));
  1796. *n=M237;
  1797. r237with_capacity(n,32);
  1798. C->_feature_dictionary=(T0*)n;
  1799. }
  1800. }
  1801. /*No:BASE_CLASS.parent_list*/
  1802. T0* r605root_procedure(T605* C,T0* a1){
  1803. T0* R=NULL;
  1804. T0* _f=NULL;
  1805. T0* _rc=NULL;
  1806. /*IF*/if (/*(IRF4.7is_generic*/((((T605*)C))->_formal_generic_list/*28*/)!=(NULL)/*)*/) {
  1807. /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/;
  1808. r7append(((T7*)(oBC683explanation)),b1);
  1809. }/*]*/
  1810. /*[IRF3.6append*/{T0* b1=((T0*)ms10_605);
  1811. r7append(((T7*)(oBC683explanation)),b1);
  1812. }/*]*/
  1813. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1814. }
  1815. /*FI*//*IF*/if ((((T605*)C))->_is_deferred/*16*/) {
  1816. /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/;
  1817. r7append(((T7*)(oBC683explanation)),b1);
  1818. }/*]*/
  1819. /*[IRF3.6append*/{T0* b1=((T0*)ms11_605);
  1820. r7append(((T7*)(oBC683explanation)),b1);
  1821. }/*]*/
  1822. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1823. }
  1824. /*FI*/r446make(((T446*)(r605mem_rpn())),a1,(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_start_position/*4*/);
  1825. /*IF*/if (!(r605has_creation(C,r605mem_rpn()))) {
  1826. /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/;
  1827. r7append(((T7*)(oBC683explanation)),b1);
  1828. }/*]*/
  1829. /*[IRF3.6extend*/{char b1='\57';
  1830. r7extend(((T7*)(oBC683explanation)),b1);
  1831. }/*]*/
  1832. /*[IRF3.6append*/{T0* b1=a1;
  1833. r7append(((T7*)(oBC683explanation)),b1);
  1834. }/*]*/
  1835. /*[IRF3.6append*/{T0* b1=((T0*)ms12_605);
  1836. r7append(((T7*)(oBC683explanation)),b1);
  1837. }/*]*/
  1838. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1839. }
  1840. /*FI*//*IF*/if (!(r605has_feature(C,a1))) {
  1841. /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/;
  1842. r7append(((T7*)(oBC683explanation)),b1);
  1843. }/*]*/
  1844. /*[IRF3.6append*/{T0* b1=((T0*)ms13_605);
  1845. r7append(((T7*)(oBC683explanation)),b1);
  1846. }/*]*/
  1847. /*[IRF3.6append*/{T0* b1=a1;
  1848. r7append(((T7*)(oBC683explanation)),b1);
  1849. }/*]*/
  1850. /*[IRF3.6append*/{T0* b1=((T0*)ms14_605);
  1851. r7append(((T7*)(oBC683explanation)),b1);
  1852. }/*]*/
  1853. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1854. }
  1855. /*FI*/_rc=r605run_class(C);
  1856. r355set_at_run_time(((T355*)_rc));
  1857. _f=r605look_up_for(C,_rc,r605mem_rpn());
  1858. /*IF*/if ((_f)==((void*)(NULL))) {
  1859. /*[IRF3.6append*/{T0* b1=((T0*)ms15_605);
  1860. r7append(((T7*)(oBC683explanation)),b1);
  1861. }/*]*/
  1862. /*[IRF3.6append*/{T0* b1=a1;
  1863. r7append(((T7*)(oBC683explanation)),b1);
  1864. }/*]*/
  1865. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms16_605);
  1866. r683fatal_error(((T683*)(oBC364eh)),b1);
  1867. }/*]*/
  1868. }
  1869. /*FI*/R=_f;
  1870. if(NULL!=(R))switch(((T0*)R)->id) {
  1871. case 297: 
  1872. break;
  1873. default:
  1874. R=NULL;
  1875. };/*IF*/if ((R)==((void*)(NULL))) {
  1876. r683add_position(X359start_position(_f));
  1877. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms17_605);
  1878. r683fatal_error(((T683*)(oBC364eh)),b1);
  1879. }/*]*/
  1880. }
  1881. /*FI*/return R;
  1882. }
  1883. /*No:BASE_CLASS.once_mark_list*/
  1884. /*No:BASE_CLASS.error_vtec1*/
  1885. /*No:BASE_CLASS.path*/
  1886. /*No:BASE_CLASS.next_parent_for*/
  1887. void r605check_expanded_with(T605* C,T0* a1){
  1888. T0* _rf=NULL;
  1889. /*IF*/if ((((T605*)C))->_is_deferred/*16*/) {
  1890. r683add_type(a1,((T0*)ms72_470));
  1891. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_605);
  1892. r683fatal_error(((T683*)(oBC364eh)),b1);
  1893. }/*]*/
  1894. }
  1895. /*FI*//*IF*/if (((((T605*)C))->_creation_clause_list/*44*/)!=((void*)(NULL))) {
  1896. r378check_expanded_with(((T378*)((((T605*)C))->_creation_clause_list/*44*/)),a1);
  1897. }
  1898. /*FI*/_rf=r605expanded_initializer(C,a1);
  1899. }
  1900. /*No:BASE_CLASS.isom*/
  1901. /*No:BASE_CLASS.first_parent_for*/
  1902. /*No:BASE_CLASS.index_list*/
  1903. /*No:BASE_CLASS.set_heading_comment1*/
  1904. void r605inherit_cycle_check(T605* C){
  1905. int _i=0;
  1906. r863add_last(((T863*)(oBC605visited)),(T0*)C);
  1907. /*IF*/if ((r863first(((T863*)(oBC605visited))))==((void*)(C))) {
  1908. /*[IRF3.6append*/{T0* b1=((T0*)ms19_605);
  1909. r7append(((T7*)(oBC683explanation)),b1);
  1910. }/*]*/
  1911. _i=1;
  1912. while (!((_i)>((((T863*)((T863*)(oBC605visited))))->_upper/*8*/))) {
  1913. /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)((T605*)(r863item(((T863*)(oBC605visited)),_i)))))->_base_class_name/*24*/))))->_to_string/*0*/;
  1914. r7append(((T7*)(oBC683explanation)),b1);
  1915. }/*]*/
  1916. /*IF*/if ((_i)<((((T863*)((T863*)(oBC605visited))))->_upper/*8*/)) {
  1917. /*[IRF3.6append*/{T0* b1=((T0*)ms20_605);
  1918. r7append(((T7*)(oBC683explanation)),b1);
  1919. }/*]*/
  1920. }
  1921. /*FI*/_i=(_i)+(1);
  1922. }
  1923. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms21_605);
  1924. r683fatal_error(((T683*)(oBC364eh)),b1);
  1925. }/*]*/
  1926. }
  1927.  else if (((((T605*)C))->_parent_list/*40*/)!=((void*)(NULL))) {
  1928. r673inherit_cycle_check(((T673*)((((T605*)C))->_parent_list/*40*/)));
  1929. }
  1930. /*FI*/}
  1931. T0* r605new_name_of(T605* C,T0* a1,T0* a2){
  1932. T0* R=NULL;
  1933. /*IF*/if ((C)==((void*)(a1))) {
  1934. R=a2;
  1935. }
  1936. else {
  1937. R=r605up_to_original(((T605*)a1),(T0*)C,a2);
  1938. /*IF*/if ((R)==((void*)(NULL))) {
  1939. r683add_position(X776start_position(a2));
  1940. /*[IRF3.6append*/{T0* b1=((T0*)ms143_470);
  1941. r7append(((T7*)(oBC683explanation)),b1);
  1942. }/*]*/
  1943. /*[IRF3.6append*/{T0* b1=X776to_string(a2);
  1944. r7append(((T7*)(oBC683explanation)),b1);
  1945. }/*]*/
  1946. /*[IRF3.6append*/{T0* b1=((T0*)ms2_605);
  1947. r7append(((T7*)(oBC683explanation)),b1);
  1948. }/*]*/
  1949. /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)((T605*)a1)))->_base_class_name/*24*/))))->_to_string/*0*/;
  1950. r7append(((T7*)(oBC683explanation)),b1);
  1951. }/*]*/
  1952. /*[IRF3.6append*/{T0* b1=((T0*)ms3_605);
  1953. r7append(((T7*)(oBC683explanation)),b1);
  1954. }/*]*/
  1955. /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/;
  1956. r7append(((T7*)(oBC683explanation)),b1);
  1957. }/*]*/
  1958. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms4_605);
  1959. r683fatal_error(((T683*)(oBC364eh)),b1);
  1960. }/*]*/
  1961. }
  1962. /*FI*/}
  1963. /*FI*/return R;
  1964. }
  1965. void r605set_is_expanded(T605* C){
  1966. /*IF*/if ((((T605*)C))->_is_deferred/*16*/) {
  1967. /*[IRF3.6error_vtec1*/{T605* C1=C;
  1968. r605error((((T451*)((T451*)((((T605*)C1))->_base_class_name/*24*/))))->_start_position/*4*/,((T0*)ms33_605));
  1969. }/*]*/
  1970. }
  1971. /*FI*/C->_is_expanded=1;
  1972. }
  1973. int r605super_has(T605* C,T0* a1){
  1974. int R=0;
  1975. /*IF*/if (((((T605*)C))->_parent_list/*40*/)==((void*)(NULL))) {
  1976. /*IF*/if (r605is_general(C)) {
  1977. R=0;
  1978. }
  1979. else {
  1980. R=r605has(((T605*)(r605class_any())),a1);
  1981. }
  1982. /*FI*/}
  1983. else {
  1984. R=r673has(((T673*)((((T605*)C))->_parent_list/*40*/)),a1);
  1985. }
  1986. /*FI*/return R;
  1987. }
  1988. T0* r605up_to_original(T605* C,T0* a1,T0* a2){
  1989. T0* R=NULL;
  1990. /*IF*/if (r605proper_has(C,a2)) {
  1991. /*IF*/if (((((T605*)C))->_parent_list/*40*/)==((void*)(NULL))) {
  1992. R=r605new_name_of_original(((T605*)a1),(T0*)C,a2);
  1993. }
  1994. else {
  1995. R=r673up_to_original(((T673*)((((T605*)C))->_parent_list/*40*/)),a1,a2);
  1996. /*IF*/if ((R)==((void*)(NULL))) {
  1997. R=r605new_name_of_original(((T605*)a1),(T0*)C,a2);
  1998. }
  1999. /*FI*/}
  2000. /*FI*/}
  2001.  else if (((((T605*)C))->_parent_list/*40*/)!=((void*)(NULL))) {
  2002. R=r673up_to_original(((T673*)((((T605*)C))->_parent_list/*40*/)),a1,a2);
  2003. }
  2004.  else if (r605is_general(C)) {
  2005. }
  2006. else {
  2007. R=r605up_to_original(((T605*)(r605class_any())),a1,a2);
  2008. }
  2009. /*FI*/return R;
  2010. }
  2011. void r605collect_invariant(T605* C,T0* a1){
  2012. /*IF*/if (((((T605*)C))->_parent_list/*40*/)!=((void*)(NULL))) {
  2013. r673collect_invariant(((T673*)((((T605*)C))->_parent_list/*40*/)),a1);
  2014. }
  2015. /*FI*//*IF*/if (((((T605*)C))->_invariant_assertion/*52*/)!=((void*)(NULL))) {
  2016. /*[IRF3.6collect_invariant*/{T0* b1=(((T605*)C))->_invariant_assertion/*52*/;
  2017. r699add_into(((T699*)b1),oBC355ci_collector);
  2018. }/*]*/
  2019. }
  2020. /*FI*/}
  2021. int fBC605mem_rpn=0;
  2022. T0*oBC605mem_rpn=NULL;
  2023. T0* r605mem_rpn(void){
  2024. if (fBC605mem_rpn==0){
  2025. T0* R=NULL;
  2026. fBC605mem_rpn=1;
  2027. {T446*n=malloc(sizeof(*n));
  2028. *n=M446;
  2029. r446make(n,((T0*)ms28_605),NULL);
  2030. R=(T0*)n;
  2031. }
  2032. oBC605mem_rpn=R;}
  2033. return oBC605mem_rpn;}
  2034. /*No:BASE_CLASS.set_heading_comment2*/
  2035. int r605has(T605* C,T0* a1){
  2036. int R=0;
  2037. /*IF*/if (r237has(((T237*)((((T605*)C))->_feature_dictionary/*60*/)),X776to_key(a1))) {
  2038. R=1;
  2039. }
  2040. else {
  2041. R=r605super_has(C,a1);
  2042. }
  2043. /*FI*/return R;
  2044. }
  2045. T0* r605id_provider(void){
  2046. if (fBC364id_provider==0){
  2047. T0* R=NULL;
  2048. fBC364id_provider=1;
  2049. {T410*n=malloc(sizeof(*n));
  2050. *n=M410;
  2051. r410make(n);
  2052. R=(T0*)n;
  2053. }
  2054. oBC364id_provider=R;}
  2055. return oBC364id_provider;}
  2056. T0* r605run_class(T605* C){
  2057. T0* R=NULL;
  2058. T0* _type=NULL;
  2059. T0* _name=NULL;
  2060. T0* _rcd=NULL;
  2061. _name=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/;
  2062. /*IF*/if ((!((((T605*)C))->_is_deferred/*16*/))&&(!(/*(IRF4.7is_generic*/((((T605*)C))->_formal_generic_list/*28*/)!=(NULL)/*)*/))) {
  2063. _rcd=oBC604run_class_dictionary;
  2064. /*IF*/if (r250has(((T250*)_rcd),_name)) {
  2065. R=r250at(((T250*)_rcd),_name);
  2066. }
  2067. else {
  2068. {T657*n=malloc(sizeof(*n));
  2069. *n=M657;
  2070. /*[IRF3.3make*/((((T657*)(n)))->_base_class_name)=((((T605*)C))->_base_class_name/*24*/);
  2071. /*]*/
  2072. _type=(T0*)n;
  2073. }
  2074. R=r657run_class(((T657*)_type));
  2075. }
  2076. /*FI*/}
  2077. else {
  2078. r605error(NULL,((T0*)ms18_605));
  2079. }
  2080. /*FI*/return R;
  2081. }
  2082. /*No:BASE_CLASS.fz_09*/
  2083. int r605has_redefine(T605* C,T0* a1){
  2084. int R=0;
  2085. /*IF*/if (((((T605*)C))->_parent_list/*40*/)!=((void*)(NULL))) {
  2086. R=r673has_redefine(((T673*)((((T605*)C))->_parent_list/*40*/)),a1);
  2087. }
  2088. /*FI*/return R;
  2089. }
  2090. T0* r605look_up_for(T605* C,T0* a1,T0* a2){
  2091. T0* R=NULL;
  2092. int _i=0;
  2093. T0* _super_fn=NULL;
  2094. T0* _fnl=NULL;
  2095. T0* _cst_att=NULL;
  2096. T0* _fn_key=NULL;
  2097. T0* _super=NULL;
  2098. _fn_key=X776to_key(a2);
  2099. /*IF*/if (r237has(((T237*)((((T605*)C))->_feature_dictionary/*60*/)),_fn_key)) {
  2100. R=r237at(((T237*)((((T605*)C))->_feature_dictionary/*60*/)),_fn_key);
  2101. _super=r605super_look_up_for(C,a1,a2);
  2102. /*IF*/if ((_super)!=((void*)(NULL))) {
  2103. _cst_att=_super;
  2104. if(NULL!=(_cst_att))switch(((T0*)_cst_att)->id) {
  2105. case 380: case 588: case 398: case 689: case 554: case 580: case 835: case 118: 
  2106. break;
  2107. default:
  2108. _cst_att=NULL;
  2109. };/*IF*/if ((_cst_att)!=((void*)(NULL))) {
  2110. r683add_position(X359start_position(_super));
  2111. r683add_position(X359start_position(R));
  2112. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms22_605);
  2113. r683fatal_error(((T683*)(oBC364eh)),b1);
  2114. }/*]*/
  2115. }
  2116. /*FI*/_fnl=/*X359*/((T0*)(((T398*)((T398*)_super)))->_names/*8*/);
  2117. _i=/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)_fnl)))->_list/*0*/))))->_upper/*8*//*)*/;
  2118. while (!((_i)<(1))) {
  2119. _super_fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)_fnl)))->_list/*0*/)),_i)/*)*/;
  2120. /*IF*/if (X776is_frozen(_super_fn)) {
  2121. /*IF*/if ((X776to_key(_super_fn))==((void*)(_fn_key))) {
  2122. r683add_position(X776start_position(_super_fn));
  2123. r683add_position(X359start_position(R));
  2124. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms23_605);
  2125. r683fatal_error(((T683*)(oBC364eh)),b1);
  2126. }/*]*/
  2127. }
  2128. /*FI*/}
  2129. /*FI*/_i=(_i)-(1);
  2130. }
  2131. /*IF*/if (!(X359can_hide(R,_super,a1))) {
  2132. r683add_position(X359start_position(_super));
  2133. r683add_position(X359start_position(R));
  2134. /*[IRF3.6append*/{T0* b1=((T0*)ms24_605);
  2135. r7append(((T7*)(oBC683explanation)),b1);
  2136. }/*]*/
  2137. r683print_as_warning(((T683*)(oBC364eh)));
  2138. }
  2139. /*FI*//*IF*/if (X359is_deferred(_super)) {
  2140. }
  2141.  else if (r605has_redefine(C,a2)) {
  2142. }
  2143. else {
  2144. r683add_position(X359start_position(R));
  2145. r683add_position(X359start_position(_super));
  2146. /*[IRF3.6append*/{T0* b1=((T0*)ms25_605);
  2147. r7append(((T7*)(oBC683explanation)),b1);
  2148. }/*]*/
  2149. /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/;
  2150. r7append(((T7*)(oBC683explanation)),b1);
  2151. }/*]*/
  2152. /*[IRF3.6append*/{T0* b1=((T0*)ms26_605);
  2153. r7append(((T7*)(oBC683explanation)),b1);
  2154. }/*]*/
  2155. r683print_as_error(((T683*)(oBC364eh)));
  2156. }
  2157. /*FI*/}
  2158. /*FI*/}
  2159. else {
  2160. R=r605super_look_up_for(C,a1,a2);
  2161. }
  2162. /*FI*/return R;
  2163. }
  2164. T0* r605get_copy(T605* C){
  2165. T0* R=NULL;
  2166. R=r237at(((T237*)((((T605*)C))->_feature_dictionary/*60*/)),((T0*)ms64_473));
  2167. return R;
  2168. }
  2169. T0* r605expanded_initializer(T605* C,T0* a1){
  2170. T0* R=NULL;
  2171. /*IF*/if (((((T605*)C))->_creation_clause_list/*44*/)!=((void*)(NULL))) {
  2172. R=r378expanded_initializer(((T378*)((((T605*)C))->_creation_clause_list/*44*/)),a1);
  2173. }
  2174. /*FI*/return R;
  2175. }
  2176. void r605fatal_undefine(T605* C,T0* a1){
  2177. /*[IRF3.6append*/{T0* b1=((T0*)ms34_605);
  2178. r7append(((T7*)(oBC683explanation)),b1);
  2179. }/*]*/
  2180. /*[IRF3.6append*/{T0* b1=X776to_string(a1);
  2181. r7append(((T7*)(oBC683explanation)),b1);
  2182. }/*]*/
  2183. /*[IRF3.6append*/{T0* b1=((T0*)ms35_605);
  2184. r7append(((T7*)(oBC683explanation)),b1);
  2185. }/*]*/
  2186. /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/;
  2187. r7append(((T7*)(oBC683explanation)),b1);
  2188. }/*]*/
  2189. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms36_605);
  2190. r683fatal_error(((T683*)(oBC364eh)),b1);
  2191. }/*]*/
  2192. }
  2193. T0* r605super_look_up_for(T605* C,T0* a1,T0* a2){
  2194. T0* R=NULL;
  2195. /*IF*/if (((((T605*)C))->_parent_list/*40*/)==((void*)(NULL))) {
  2196. /*IF*/if (r605is_general(C)) {
  2197. R=NULL;
  2198. }
  2199. else {
  2200. R=r605look_up_for(((T605*)(r605class_any())),a1,a2);
  2201. }
  2202. /*FI*/}
  2203. else {
  2204. R=r673look_up_for(((T673*)((((T605*)C))->_parent_list/*40*/)),a1,a2);
  2205. }
  2206. /*FI*/return R;
  2207. }
  2208. /*No:BASE_CLASS.invariant_assertion*/
  2209. void r605set_invariant(T605* C,T0* a1,T0* a2,T0* a3){
  2210. /*IF*/if (((a2)!=((void*)(NULL)))||((a3)!=((void*)(NULL)))) {
  2211. {T699*n=malloc(sizeof(*n));
  2212. *n=M699;
  2213. r699make(n,a1,a2,a3);
  2214. C->_invariant_assertion=(T0*)n;
  2215. }
  2216. }
  2217. /*FI*/}
  2218. /*No:BASE_CLASS.fz_dot*/
  2219. /*No:BASE_CLASS.set_formal_generic_list*/
  2220. T0* r605clients_for(T605* C,T0* a1){
  2221. T0* R=NULL;
  2222. /*IF*/if (r605proper_has(C,a1)) {
  2223. R=X359clients(r237at(((T237*)((((T605*)C))->_feature_dictionary/*60*/)),X776to_key(a1)));
  2224. }
  2225.  else if (r605is_general(C)) {
  2226. }
  2227.  else if (((((T605*)C))->_parent_list/*40*/)==((void*)(NULL))) {
  2228. R=r605clients_for(((T605*)(r605class_any())),a1);
  2229. }
  2230. else {
  2231. R=r673clients_for(((T673*)((((T605*)C))->_parent_list/*40*/)),a1);
  2232. }
  2233. /*FI*/return R;
  2234. }
  2235. /*No:BASE_CLASS.is_generic*/
  2236. T0*oBC605going_up_trace=NULL;
  2237. /*No:BASE_CLASS.heading_comment1*/
  2238. void r605set_is_deferred(T605* C){
  2239. /*IF*/if ((((T605*)C))->_is_expanded/*20*/) {
  2240. /*[IRF3.6error_vtec1*/{T605* C1=C;
  2241. r605error((((T451*)((T451*)((((T605*)C1))->_base_class_name/*24*/))))->_start_position/*4*/,((T0*)ms33_605));
  2242. }/*]*/
  2243. }
  2244. /*FI*/C->_is_deferred=1;
  2245. }
  2246. int r605proper_has(T605* C,T0* a1){
  2247. int R=0;
  2248. R=r237has(((T237*)((((T605*)C))->_feature_dictionary/*60*/)),X776to_key(a1));
  2249. return R;
  2250. }
  2251. T0* r605going_up(T605* C,T0* a1,T0* a2,T0* a3){
  2252. T0* R=NULL;
  2253. /*IF*/if (((((T605*)C))->_parent_list/*40*/)==((void*)(NULL))) {
  2254. R=r605going_up(((T605*)(r605class_any())),a1,a2,a3);
  2255. }
  2256. else {
  2257. R=r673going_up(((T673*)((((T605*)C))->_parent_list/*40*/)),a1,a2,a3);
  2258. }
  2259. /*FI*/return R;
  2260. }
  2261. /*No:BASE_CLASS.set_obsolete_type_string*/
  2262. /*No:BASE_CLASS.formal_generic_list*/
  2263. int r605is_a_vncg(T605* C,T0* a1,T0* a2){
  2264. int R=0;
  2265. /*IF*/if (((((T605*)C))->_parent_list/*40*/)!=((void*)(NULL))) {
  2266. R=r673is_a_vncg(((T673*)((((T605*)C))->_parent_list/*40*/)),X291run_type(a1),X291run_type(a2));
  2267. }
  2268. /*FI*/return R;
  2269. }
  2270. void r605collect_for(T605* C,int a1,T0* a2){
  2271. T0* _fn_key=NULL;
  2272. _fn_key=X776to_key(a2);
  2273. /*IF*/if (r237has(((T237*)((((T605*)C))->_feature_dictionary/*60*/)),_fn_key)) {
  2274. X359collect_for(r237at(((T237*)((((T605*)C))->_feature_dictionary/*60*/)),_fn_key),a1);
  2275. }
  2276. /*FI*//*IF*/if (((((T605*)C))->_parent_list/*40*/)==((void*)(NULL))) {
  2277. /*IF*/if (r605is_general(C)) {
  2278. }
  2279. else {
  2280. r605collect_for(((T605*)(r605class_any())),a1,a2);
  2281. }
  2282. /*FI*/}
  2283. else {
  2284. r673collect_for(((T673*)((((T605*)C))->_parent_list/*40*/)),a1,a2);
  2285. }
  2286. /*FI*/}
  2287. void r605error(T0* a1,T0* a2){
  2288. r683add_position(a1);
  2289. r683error(((T683*)(oBC364eh)),a2);
  2290. }
  2291. /*No:BASE_CLASS.fatal_error*/
  2292.  
  2293.