home *** CD-ROM | disk | FTP | other *** search
/ Amiga ACS 1998 #4 / amigaacscoverdisc1998-041998.iso / utilities / shareware / dev / ppcsmalleiffel / source.lha / bin_c / compile_to_c23.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  69.4 KB  |  2,347 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:TYPE_POINTER.id*/
  10. int r900has_creation(T900* C,T0* a1){
  11. int R=0;
  12. r683add_position(X776start_position(a1));
  13. r900error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T900*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_84));
  14. return R;
  15. }
  16. /*No:TYPE_POINTER.is_anchored*/
  17. /*No:TYPE_POINTER.is_array*/
  18. /*No:TYPE_POINTER.fz_typedef*/
  19. int r900is_a(T900* C,T0* a1){
  20. int R=0;
  21. /*IF*/if (X291is_pointer(a1)) {
  22. R=1;
  23. }
  24. else {
  25. R=r605is_subclass_of(((T605*)(r900base_class(C))),X291base_class(a1));
  26. /*IF*/if (R) {
  27. r900used_as_reference();
  28. }
  29. /*FI*/}
  30. /*FI*//*IF*/if (!(R)) {
  31. r683add_type((T0*)C,((T0*)ms1_900));
  32. r683add_type(a1,((T0*)ms67_470));
  33. }
  34. /*FI*/return R;
  35. }
  36. /*No:TYPE_POINTER.c_initialize_in*/
  37. void r900c_type_for_argument_in(T0* a1){
  38. r7append(((T7*)a1),((T0*)ms133_470));
  39. r7extend(((T7*)a1),'\52');
  40. }
  41. void r900gc_call_new_in(T0* a1){
  42. r7append(((T7*)a1),((T0*)ms115_470));
  43. r2append_in(8,a1);
  44. r7extend(((T7*)a1),'\50');
  45. r7extend(((T7*)a1),'\51');
  46. }
  47. int r900space_for_pointer(void){
  48. int R=0;
  49. void* _p=0;
  50. R=sizeof(T8);
  51. return R;
  52. }
  53. /*No:TYPE_POINTER.run_type*/
  54. /*No:TYPE_POINTER.is_pointer*/
  55. /*No:TYPE_POINTER.is_dummy_expanded*/
  56. /*No:TYPE_POINTER.is_string*/
  57. /*No:TYPE_POINTER.space_for_variable*/
  58. /*No:TYPE_POINTER.is_like_feature*/
  59. /*No:TYPE_POINTER.is_like_current*/
  60. void r900make(T900* C,T0* a1){
  61. {T451*n=malloc(sizeof(*n));
  62. *n=M451;
  63. r451make(n,((T0*)ms21_473),a1);
  64. C->_base_class_name=(T0*)n;
  65. }
  66. }
  67. /*No:TYPE_POINTER.nb_errors*/
  68. /*No:TYPE_POINTER.us_item*/
  69. void r900load_ref(T0* a1){
  70. T0* _rf=NULL;
  71. T0* _rc=NULL;
  72. T0* _cn=NULL;
  73. {T451*n=malloc(sizeof(*n));
  74. *n=M451;
  75. r451make(n,a1,NULL);
  76. _cn=(T0*)n;
  77. }
  78. _rc=r605run_class(((T605*)(r451base_class(((T451*)_cn)))));
  79. r355set_at_run_time(((T355*)_rc));
  80. _rf=r355get_feature_with(((T355*)_rc),((T0*)ms86_473));
  81. }
  82. /*No:TYPE_POINTER.us_pointer*/
  83. int fBC900check_type=0;
  84. void r900check_type(T900* C){
  85. if (fBC900check_type==0){
  86. T0* _rc=NULL;
  87. T0* _bc=NULL;
  88. fBC900check_type=1;
  89. _bc=r900base_class(C);
  90. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  91. _rc=r900run_class(C);
  92. }
  93. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  94. /*IF*/if (!((((T605*)((T605*)_bc)))->_is_expanded/*20*/)) {
  95. r900error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T900*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms3_900));
  96. }
  97. /*FI*/}
  98. /*FI*/}}
  99. int fBC364type_pointer_ref=0;
  100. T0*oBC364type_pointer_ref=NULL;
  101. T0* r900type_pointer_ref(void){
  102. if (fBC364type_pointer_ref==0){
  103. T0* R=NULL;
  104. T0* _pointer_ref=NULL;
  105. fBC364type_pointer_ref=1;
  106. {T451*n=malloc(sizeof(*n));
  107. *n=M451;
  108. r451make(n,((T0*)ms22_473),NULL);
  109. _pointer_ref=(T0*)n;
  110. }
  111. {T657*n=malloc(sizeof(*n));
  112. *n=M657;
  113. /*[IRF3.3make*/((((T657*)(n)))->_base_class_name)=(_pointer_ref);
  114. /*]*/
  115. R=(T0*)n;
  116. }
  117. oBC364type_pointer_ref=R;}
  118. return oBC364type_pointer_ref;}
  119. /*No:TYPE_POINTER.mapping_cast*/
  120. /*No:TYPE_POINTER.start_position*/
  121. /*No:TYPE_POINTER.c_type_for_target_in*/
  122. /*No:TYPE_POINTER.fz_gc_mark*/
  123. /*No:TYPE_POINTER.gc_initialize*/
  124. /*No:TYPE_POINTER.fz_00*/
  125. /*No:TYPE_POINTER.is_character*/
  126. /*No:TYPE_POINTER.is_user_expanded*/
  127. T0* r900written_mark(void){
  128. T0* R=NULL;
  129. R=((T0*)ms21_473);
  130. return R;
  131. }
  132. /*No:TYPE_POINTER.is_run_type*/
  133. T0* r900to_runnable(T900* C,T0* a1){
  134. T0* R=NULL;
  135. R=(T0*)C;
  136. r900check_type(C);
  137. return R;
  138. }
  139. void r900c_type_for_external_in(T0* a1){
  140. /*IF*//*AF*//*AE*/
  141. /*[IRF3.6c_type_for_result_in*/{T0* b1=a1;
  142. r900c_type_for_argument_in(b1);
  143. }/*]*/
  144. /*FI*/}
  145. T0* r900generic_list(T900* C){
  146. T0* R=NULL;
  147. r900fatal_error_generic_list(C);
  148. return R;
  149. }
  150. /*No:TYPE_POINTER.is_formal_generic*/
  151. void r900demangling_in(T0* a1){
  152. /*IF*//*AF*//*AE*/
  153. r7extend(((T7*)a1),'E');
  154. /*FI*/r7extend(((T7*)a1),'\40');
  155. r7append(((T7*)a1),r900run_time_mark());
  156. }
  157. /*No:TYPE_POINTER.is_real*/
  158. /*No:TYPE_POINTER.us_pointer_ref*/
  159. /*No:TYPE_POINTER.is_bit*/
  160. void r900fatal_error_generic_list(T900* C){
  161. r683add_type((T0*)C,((T0*)ms12_291));
  162. r683print_as_fatal_error(((T683*)(oBC364eh)));
  163. }
  164. /*No:TYPE_POINTER.fz_new*/
  165. T0* r900smallest_ancestor(T900* C,T0* a1){
  166. T0* R=NULL;
  167. T0* _rto=NULL;
  168. _rto=X291run_type(a1);
  169. /*IF*/if (X291is_pointer(_rto)) {
  170. R=(T0*)C;
  171. }
  172. else {
  173. R=r657smallest_ancestor(((T657*)(r900type_pointer_ref())),_rto);
  174. }
  175. /*FI*/return R;
  176. }
  177. /*No:TYPE_POINTER.is_boolean*/
  178. /*No:TYPE_POINTER.is_double*/
  179. T0* r900run_class(T900* C){
  180. T0* R=NULL;
  181. R=r604run_class((T0*)C);
  182. return R;
  183. }
  184. T0* r900run_time_mark(void){
  185. T0* R=NULL;
  186. R=((T0*)ms21_473);
  187. return R;
  188. }
  189. /*No:TYPE_POINTER.c_initialize*/
  190. /*No:TYPE_POINTER.cast_to_ref*/
  191. void r900gc_mark_in(T0* a1){
  192. r7append(((T7*)a1),((T0*)ms107_470));
  193. r2append_in(8,a1);
  194. }
  195. int r900is_a_in(T900* C,T0* a1,T0* a2){
  196. int R=0;
  197. T0* _ct=NULL;
  198. T0* _t2=NULL;
  199. T0* _t1=NULL;
  200. /*IF*/if ((r900written_mark())==((void*)(X291written_mark(a1)))) {
  201. R=1;
  202. }
  203. else {
  204. _ct=(((T355*)((T355*)a2)))->_current_type/*0*/;
  205. _t1=r900to_runnable(C,_ct);
  206. _t2=X291to_runnable(a1,_ct);
  207. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  208. R=1;
  209. }
  210. else {
  211. R=X291is_a(_t1,_t2);
  212. }
  213. /*FI*/}
  214. /*FI*/return R;
  215. }
  216. T0* r900look_up_for(T900* C,T0* a1,T0* a2){
  217. T0* R=NULL;
  218. R=r605look_up_for(((T605*)(r900base_class(C))),a1,a2);
  219. return R;
  220. }
  221. /*No:TYPE_POINTER.c_header_pass1*/
  222. /*No:TYPE_POINTER.c_type_for_result_in*/
  223. /*No:TYPE_POINTER.expanded_initializer*/
  224. /*No:TYPE_POINTER.fz_void*/
  225. /*No:TYPE_POINTER.fz_dot*/
  226. /*No:TYPE_POINTER.is_generic*/
  227. int fBC900used_as_reference=0;
  228. void r900used_as_reference(void){
  229. if (fBC900used_as_reference==0){
  230. fBC900used_as_reference=1;
  231. r900load_ref(((T0*)ms22_473));
  232. }}
  233. /*No:TYPE_POINTER.c_header_pass2*/
  234. /*No:TYPE_POINTER.gc_define1*/
  235. /*No:TYPE_POINTER.need_c_struct*/
  236. /*No:TYPE_POINTER.is_reference*/
  237. /*No:TYPE_POINTER.gc_info_in*/
  238. void r900error(T0* a1,T0* a2){
  239. r683add_position(a1);
  240. r683error(((T683*)(oBC364eh)),a2);
  241. }
  242. T0* r900base_class(T900* C){
  243. T0* R=NULL;
  244. T0* _bcn=NULL;
  245. _bcn=(((T900*)C))->_base_class_name/*4*/;
  246. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  247. R=r451base_class(((T451*)_bcn));
  248. }
  249. else {
  250. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  251. r7append(((T7*)(oBC683explanation)),b1);
  252. }/*]*/
  253. r683add_type((T0*)C,((T0*)ms67_470));
  254. r683print_as_fatal_error(((T683*)(oBC364eh)));
  255. }
  256. /*FI*/return R;
  257. }
  258. /*No:TYPE_POINTER.call_gc_sweep_in*/
  259. /*No:TYPE_POINTER.gc_define2*/
  260. /*No:TYPE_POINTER.need_gc_mark_function*/
  261. /*No:TYPE_POINTER.is_any*/
  262. /*No:TYPE_POINTER.to_reference*/
  263. /*No:TYPE_POINTER.c_header_pass3*/
  264. /*No:TYPE_POINTER.base_class_name*/
  265. /*No:TYPE_POINTER.is_expanded*/
  266. /*No:TYPE_POINTER.is_basic_eiffel_expanded*/
  267. /*No:TYPE_POINTER.is_none*/
  268. /*No:TYPE_POINTER.to_expanded*/
  269. /*No:TYPE_POINTER.is_integer*/
  270. /*No:TYPE_POINTER.c_header_pass4*/
  271. /*No:E_WHEN.when_list*/
  272. void r843add_when_item_1(T843* C,T0* a1){
  273. int _v=0;
  274. _v=(((T349*)((T349*)a1)))->_expression_value/*12*/;
  275. /*IF*/if (/*(IRF4.6includes*/r377includes_integer(((T377*)((((T270*)((T270*)(/*(IRF4.6e_inspect*/(((T377*)((T377*)((((T843*)C))->_when_list/*16*/))))->_e_inspect/*0*//*)*/))))->_when_list/*16*/)),_v)/*)*/) {
  276. r843err_occ(C,_v,r349start_position(((T349*)a1)));
  277. }
  278.  else if (((((T843*)C))->_values/*20*/)==((void*)(NULL))) {
  279. {T353*n=malloc(sizeof(*n));
  280. *n=M353;
  281. r353make(n,_v,_v);
  282. C->_values=(T0*)n;
  283. }
  284. /*[IRF3.6put*/{T353* C1=((T353*)((((T843*)C))->_values/*20*/));
  285. int b1=1;
  286. int b2=_v;
  287. ((((T353*)C1))->_storage/*0*/)[(b2)-((((T353*)C1))->_lower/*12*/)]=(b1);
  288. }/*]*/
  289. }
  290. else {
  291. r353force(((T353*)((((T843*)C))->_values/*20*/)),1,_v);
  292. }
  293. /*FI*/}
  294. T0* r843to_runnable_integer(T843* C,T0* a1){
  295. T0* R=NULL;
  296. T0* _when_item=NULL;
  297. int _i=0;
  298. int _ne=0;
  299. /*IF*/if (((((T843*)C))->_when_list/*16*/)==((void*)(NULL))) {
  300. _ne=/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/;
  301. C->_when_list=a1;
  302. /*IF*/if (((((T843*)C))->_list/*4*/)==((void*)(NULL))) {
  303. r683add_position((((T270*)((T270*)(/*(IRF4.6e_inspect*/(((T377*)((T377*)((((T843*)C))->_when_list/*16*/))))->_e_inspect/*0*//*)*/))))->_start_position/*8*/);
  304. r843error((((T843*)C))->_start_position/*0*/,((T0*)ms12_843));
  305. }
  306. else {
  307. _i=/*X631*/((int)(((T247*)((T247*)((((T843*)C))->_list/*4*/))))->_lower/*16*/);
  308. while (!(((_i)>(/*X631*/((int)(((T247*)((T247*)((((T843*)C))->_list/*4*/))))->_upper/*12*/)))||(((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)-(_ne))>(0)))) {
  309. _when_item=X274to_runnable_integer(/*X631*/((T0*)r247item(((T247*)((((T843*)C))->_list/*4*/)),_i)),(T0*)C);
  310. /*IF*/if ((_when_item)==((void*)(NULL))) {
  311. r843error((((T843*)C))->_start_position/*0*/,((T0*)ms11_843));
  312. }
  313. else {
  314. /*X631*//*[IRF3.6put*/{T247* C1=((T247*)((((T843*)C))->_list/*4*/));
  315. T0* b1=_when_item;
  316. int b2=_i;
  317. ((((T247*)C1))->_storage/*4*/)[(b2)-((((T247*)C1))->_lower/*16*/)]=(b1);
  318. }/*]*/
  319. }
  320. /*FI*/_i=(_i)+(1);
  321. }
  322. }
  323. /*FI*//*IF*/if (((((T843*)C))->_compound/*12*/)!=((void*)(NULL))) {
  324. C->_compound=r592to_runnable(((T592*)((((T843*)C))->_compound/*12*/)),/*(IRF4.6current_type*//*(IRF4.6current_type*/r270current_type(((T270*)((((T377*)((T377*)((((T843*)C))->_when_list/*16*/))))->_e_inspect/*0*/)))/*)*//*)*/);
  325. /*IF*/if (((((T843*)C))->_compound/*12*/)==((void*)(NULL))) {
  326. r843error((((T843*)C))->_start_position/*0*/,((T0*)ms11_843));
  327. }
  328. /*FI*/}
  329. /*FI*/R=(T0*)C;
  330. }
  331. else {
  332. {T843*n=malloc(sizeof(*n));
  333. *n=M843;
  334. r843from_e_when(n,(T0*)C);
  335. R=(T0*)n;
  336. }
  337. R=r843to_runnable_integer(((T843*)R),a1);
  338. }
  339. /*FI*/return R;
  340. }
  341. void r843make(T843* C,T0* a1,T0* a2){
  342. C->_start_position=a1;
  343. C->_header_comment=a2;
  344. }
  345. /*No:E_WHEN.nb_errors*/
  346. void r843add_when_item_2(T843* C,T0* a1){
  347. int _i=0;
  348. int _u=0;
  349. int _l=0;
  350. _l=(((T372*)((T372*)a1)))->_lower_value/*20*/;
  351. _u=(((T372*)((T372*)a1)))->_upper_value/*16*/;
  352. /*IF*/if ((_l)>=(_u)) {
  353. r843error(r372start_position(((T372*)a1)),((T0*)ms8_843));
  354. }
  355. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  356. _i=_l;
  357. while (!((_i)>(_u))) {
  358. /*IF*/if (/*(IRF4.6includes*/r377includes_integer(((T377*)((((T270*)((T270*)(/*(IRF4.6e_inspect*/(((T377*)((T377*)((((T843*)C))->_when_list/*16*/))))->_e_inspect/*0*//*)*/))))->_when_list/*16*/)),_i)/*)*/) {
  359. r843err_occ(C,_i,r372start_position(((T372*)a1)));
  360. _i=(_u)+(1);
  361. }
  362. else {
  363. _i=(_i)+(1);
  364. }
  365. /*FI*/}
  366. }
  367. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  368. /*IF*/if (((((T843*)C))->_values/*20*/)==((void*)(NULL))) {
  369. {T353*n=malloc(sizeof(*n));
  370. *n=M353;
  371. r353make(n,_l,_u);
  372. C->_values=(T0*)n;
  373. }
  374. /*[IRF3.6set_all_with*/{T353* C1=((T353*)((((T843*)C))->_values/*20*/));
  375. int b1=1;
  376. r541set_all_with((((T353*)C1))->_storage/*0*/,b1,((((T353*)C1))->_upper/*8*/)-((((T353*)C1))->_lower/*12*/));
  377. }/*]*/
  378. }
  379. else {
  380. r353force(((T353*)((((T843*)C))->_values/*20*/)),1,_l);
  381. r353force(((T353*)((((T843*)C))->_values/*20*/)),1,_u);
  382. r353set_slice_with(((T353*)((((T843*)C))->_values/*20*/)),1,_l,_u);
  383. }
  384. /*FI*/}
  385. /*FI*/}
  386. void r843from_e_when(T843* C,T0* a1){
  387. T0* _when_item=NULL;
  388. int _i=0;
  389. C->_start_position=(((T843*)((T843*)a1)))->_start_position/*0*/;
  390. C->_list=X631twin((((T843*)((T843*)a1)))->_list/*4*/);
  391. _i=/*X631*/((int)(((T247*)((T247*)((((T843*)C))->_list/*4*/))))->_lower/*16*/);
  392. while (!((_i)>(/*X631*/((int)(((T247*)((T247*)((((T843*)C))->_list/*4*/))))->_upper/*12*/)))) {
  393. _when_item=X274twin(/*X631*/((T0*)r247item(((T247*)((((T843*)C))->_list/*4*/)),_i)));
  394. /*X274*//*[IRF3.3clear_e_when*/((((T349*)(((T349*)_when_item))))->_e_when)=(NULL);
  395. /*]*/
  396. /*X631*//*[IRF3.6put*/{T247* C1=((T247*)((((T843*)C))->_list/*4*/));
  397. T0* b1=_when_item;
  398. int b2=_i;
  399. ((((T247*)C1))->_storage/*4*/)[(b2)-((((T247*)C1))->_lower/*16*/)]=(b1);
  400. }/*]*/
  401. _i=(_i)+(1);
  402. }
  403. C->_header_comment=(((T843*)((T843*)a1)))->_header_comment/*8*/;
  404. C->_compound=(((T843*)((T843*)a1)))->_compound/*12*/;
  405. }
  406. /*No:E_WHEN.values*/
  407. /*No:E_WHEN.start_position*/
  408. void r843compile_to_c(T843* C){
  409. int _bs=0;
  410. int _bi=0;
  411. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms1_843));
  412. /*]*/
  413. _bi=(((T353*)((T353*)((((T843*)C))->_values/*20*/))))->_lower/*12*/;
  414. while (!((_bi)>((((T353*)((T353*)((((T843*)C))->_values/*20*/))))->_upper/*8*/))) {
  415. _bs=(_bi)+(1);
  416. while (!(((_bs)>((((T353*)((T353*)((((T843*)C))->_values/*20*/))))->_upper/*8*/))||(!(r353item(((T353*)((((T843*)C))->_values/*20*/)),_bs))))) {
  417. _bs=(_bs)+(1);
  418. }
  419. _bs=(_bs)-(1);
  420. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  421. char b1='\50';
  422. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  423. }/*]*/
  424. /*]*/
  425. /*IF*/if ((_bi)==(_bs)) {
  426. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),_bi);
  427. /*]*/
  428. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms2_843));
  429. /*]*/
  430. r324put_inspect(((T324*)(oBC364cpp)));
  431. }
  432. else {
  433. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  434. char b1='\50';
  435. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  436. }/*]*/
  437. /*]*/
  438. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),_bi);
  439. /*]*/
  440. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms3_843));
  441. /*]*/
  442. r324put_inspect(((T324*)(oBC364cpp)));
  443. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms4_843));
  444. /*]*/
  445. r324put_inspect(((T324*)(oBC364cpp)));
  446. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms5_843));
  447. /*]*/
  448. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),_bs);
  449. /*]*/
  450. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  451. char b1='\51';
  452. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  453. }/*]*/
  454. /*]*/
  455. }
  456. /*FI*//*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  457. char b1='\51';
  458. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  459. }/*]*/
  460. /*]*/
  461. _bi=(_bs)+(1);
  462. while (!(((_bi)>((((T353*)((T353*)((((T843*)C))->_values/*20*/))))->_upper/*8*/))||(r353item(((T353*)((((T843*)C))->_values/*20*/)),_bi)))) {
  463. _bi=(_bi)+(1);
  464. }
  465. /*IF*/if ((_bi)<=((((T353*)((T353*)((((T843*)C))->_values/*20*/))))->_upper/*8*/)) {
  466. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms6_843));
  467. /*]*/
  468. }
  469. /*FI*/}
  470. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms7_843));
  471. /*]*/
  472. /*IF*/if (((((T843*)C))->_compound/*12*/)!=((void*)(NULL))) {
  473. r592compile_to_c(((T592*)((((T843*)C))->_compound/*12*/)));
  474. }
  475. /*FI*//*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms146_470));
  476. /*]*/
  477. }
  478. /*No:E_WHEN.fz_12*/
  479. void r843err_occ(T843* C,int a1,T0* a2){
  480. r683add_position((((T270*)((T270*)(/*(IRF4.6e_inspect*/(((T377*)((T377*)((((T843*)C))->_when_list/*16*/))))->_e_inspect/*0*//*)*/))))->_start_position/*8*/);
  481. /*[IRF3.6append*/{T0* b1=((T0*)ms9_843);
  482. r7append(((T7*)(oBC683explanation)),b1);
  483. }/*]*/
  484. /*[IRF3.6append*/{T0* b1=r2to_string(a1);
  485. r7append(((T7*)(oBC683explanation)),b1);
  486. }/*]*/
  487. r843error(a2,((T0*)ms10_843));
  488. }
  489. /*No:E_WHEN.em1*/
  490. /*No:E_WHEN.list*/
  491. /*No:E_WHEN.em2*/
  492. /*No:E_WHEN.set_compound*/
  493. void r843add_value(T843* C,T0* a1){
  494. T0* _element=NULL;
  495. {T349*n=malloc(sizeof(*n));
  496. *n=M349;
  497. /*[IRF3.3make*/((((T349*)(n)))->_expression)=(a1);
  498. /*]*/
  499. _element=(T0*)n;
  500. }
  501. /*IF*/if (((((T843*)C))->_list/*4*/)==((void*)(NULL))) {
  502. C->_list=se_ma247(1,_element);
  503. }
  504. else {
  505. X631add_last((((T843*)C))->_list/*4*/,_element);
  506. }
  507. /*FI*/}
  508. /*No:E_WHEN.current_type*/
  509. /*No:E_WHEN.compound*/
  510. /*No:E_WHEN.header_comment*/
  511. int r843use_current(T843* C){
  512. int R=0;
  513. /*IF*/if (((((T843*)C))->_compound/*12*/)!=((void*)(NULL))) {
  514. R=r592use_current(((T592*)((((T843*)C))->_compound/*12*/)));
  515. }
  516. /*FI*/return R;
  517. }
  518. void r843error(T0* a1,T0* a2){
  519. r683add_position(a1);
  520. r683error(((T683*)(oBC364eh)),a2);
  521. }
  522. int r843includes_integer(T843* C,int a1){
  523. int R=0;
  524. R=((((((T843*)C))->_values/*20*/)!=((void*)(NULL)))&&(r353valid_index(((T353*)((((T843*)C))->_values/*20*/)),a1)))&&(r353item(((T353*)((((T843*)C))->_values/*20*/)),a1));
  525. return R;
  526. }
  527. T0* r843to_runnable_character(T843* C,T0* a1){
  528. T0* R=NULL;
  529. T0* _when_item=NULL;
  530. int _i=0;
  531. int _ne=0;
  532. /*IF*/if (((((T843*)C))->_when_list/*16*/)==((void*)(NULL))) {
  533. _ne=/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/;
  534. C->_when_list=a1;
  535. /*IF*/if (((((T843*)C))->_list/*4*/)==((void*)(NULL))) {
  536. r683add_position((((T270*)((T270*)(/*(IRF4.6e_inspect*/(((T377*)((T377*)((((T843*)C))->_when_list/*16*/))))->_e_inspect/*0*//*)*/))))->_start_position/*8*/);
  537. r843error((((T843*)C))->_start_position/*0*/,((T0*)ms12_843));
  538. }
  539. else {
  540. _i=/*X631*/((int)(((T247*)((T247*)((((T843*)C))->_list/*4*/))))->_lower/*16*/);
  541. while (!(((_i)>(/*X631*/((int)(((T247*)((T247*)((((T843*)C))->_list/*4*/))))->_upper/*12*/)))||(((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)-(_ne))>(0)))) {
  542. _when_item=X274to_runnable_character(/*X631*/((T0*)r247item(((T247*)((((T843*)C))->_list/*4*/)),_i)),(T0*)C);
  543. /*IF*/if ((_when_item)==((void*)(NULL))) {
  544. r843error((((T843*)C))->_start_position/*0*/,((T0*)ms11_843));
  545. }
  546. else {
  547. /*X631*//*[IRF3.6put*/{T247* C1=((T247*)((((T843*)C))->_list/*4*/));
  548. T0* b1=_when_item;
  549. int b2=_i;
  550. ((((T247*)C1))->_storage/*4*/)[(b2)-((((T247*)C1))->_lower/*16*/)]=(b1);
  551. }/*]*/
  552. }
  553. /*FI*/_i=(_i)+(1);
  554. }
  555. }
  556. /*FI*//*IF*/if (((((T843*)C))->_compound/*12*/)!=((void*)(NULL))) {
  557. C->_compound=r592to_runnable(((T592*)((((T843*)C))->_compound/*12*/)),/*(IRF4.6current_type*//*(IRF4.6current_type*/r270current_type(((T270*)((((T377*)((T377*)((((T843*)C))->_when_list/*16*/))))->_e_inspect/*0*/)))/*)*//*)*/);
  558. /*IF*/if (((((T843*)C))->_compound/*12*/)==((void*)(NULL))) {
  559. r843error((((T843*)C))->_start_position/*0*/,((T0*)ms11_843));
  560. }
  561. /*FI*/}
  562. /*FI*/R=(T0*)C;
  563. }
  564. else {
  565. {T843*n=malloc(sizeof(*n));
  566. *n=M843;
  567. r843from_e_when(n,(T0*)C);
  568. R=(T0*)n;
  569. }
  570. R=r843to_runnable_character(((T843*)R),a1);
  571. }
  572. /*FI*/return R;
  573. }
  574. void r843add_slice(T843* C,T0* a1,T0* a2){
  575. T0* _element=NULL;
  576. {T372*n=malloc(sizeof(*n));
  577. *n=M372;
  578. r372make(n,a1,a2);
  579. _element=(T0*)n;
  580. }
  581. /*IF*/if (((((T843*)C))->_list/*4*/)==((void*)(NULL))) {
  582. C->_list=se_ma263(1,_element);
  583. }
  584. else {
  585. X631add_last((((T843*)C))->_list/*4*/,_element);
  586. }
  587. /*FI*/}
  588. void r843afd_check(T843* C){
  589. /*IF*/if (((((T843*)C))->_compound/*12*/)!=((void*)(NULL))) {
  590. r592afd_check(((T592*)((((T843*)C))->_compound/*12*/)));
  591. }
  592. /*FI*/}
  593. /*No:E_WHEN.e_inspect*/
  594. void r673get_started(T673* C){
  595. T0* _p2=NULL;
  596. T0* _p1=NULL;
  597. int _i2=0;
  598. int _i1=0;
  599. _i1=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
  600. while (!((_i1)==(0))) {
  601. r877get_started(((T877*)(r26item(((T26*)((((T673*)C))->_list/*12*/)),_i1))),(T0*)C);
  602. _i1=(_i1)-(1);
  603. }
  604. /*IF*/if (((((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/)>(1)) {
  605. _i2=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
  606. while (!((_i2)==(1))) {
  607. _i1=1;
  608. while (!((_i1)==(_i2))) {
  609. _p1=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i1);
  610. _p2=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i2);
  611. r877multiple_check(((T877*)_p1),_p2);
  612. r877multiple_check(((T877*)_p2),_p1);
  613. _i1=(_i1)+(1);
  614. }
  615. _i2=(_i2)-(1);
  616. }
  617. }
  618. /*FI*/}
  619. int r673has_parent(T673* C,T0* a1){
  620. int R=0;
  621. T0* _bc=NULL;
  622. int _i=0;
  623. _i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
  624. while (!((_i)==(0))) {
  625. _bc=X291base_class((((T877*)((T877*)(r26item(((T26*)((((T673*)C))->_list/*12*/)),_i)))))->_type/*4*/);
  626. /*IF*/if ((a1)==((void*)(_bc))) {
  627. R=1;
  628. _i=0;
  629. }
  630.  else if (r605is_subclass_of_aux(((T605*)_bc),a1)) {
  631. R=1;
  632. _i=0;
  633. }
  634. else {
  635. _i=(_i)-(1);
  636. }
  637. /*FI*/}
  638. return R;
  639. }
  640. /*No:PARENT_LIST.fz_cnf*/
  641. void r673make(T673* C,T0* a1,T0* a2,T0* a3,T0* a4){
  642. C->_base_class=a1;
  643. C->_heading_comment=a3;
  644. C->_start_position=a2;
  645. C->_list=a4;
  646. }
  647. /*No:PARENT_LIST.start_position*/
  648. T0* r673next_parent_for(T673* C,T0* a1,T0* a2){
  649. T0* R=NULL;
  650. T0* _pbc=NULL;
  651. int _i=0;
  652. _i=1;
  653. while (!((R)==((void*)(a2)))) {
  654. R=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
  655. _i=(_i)+(1);
  656. }
  657. R=NULL;
  658. while (!(((R)!=((void*)(NULL)))||((_i)>(r26count(((T26*)((((T673*)C))->_list/*12*/))))))) {
  659. R=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
  660. _pbc=X291base_class((((T877*)((T877*)R)))->_type/*4*/);
  661. /*IF*/if ((_pbc)==((void*)(a1))) {
  662. }
  663.  else if (r605is_subclass_of(((T605*)_pbc),a1)) {
  664. }
  665. else {
  666. R=NULL;
  667. }
  668. /*FI*/_i=(_i)+(1);
  669. }
  670. return R;
  671. }
  672. T0* r673first_parent_for(T673* C,T0* a1){
  673. T0* R=NULL;
  674. T0* _pbc=NULL;
  675. int _i=0;
  676. _i=1;
  677. while (!((R)!=((void*)(NULL)))) {
  678. R=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
  679. _pbc=X291base_class((((T877*)((T877*)R)))->_type/*4*/);
  680. /*IF*/if ((_pbc)==((void*)(a1))) {
  681. }
  682.  else if (r605is_subclass_of(((T605*)_pbc),a1)) {
  683. }
  684. else {
  685. R=NULL;
  686. }
  687. /*FI*/_i=(_i)+(1);
  688. }
  689. return R;
  690. }
  691. void r673inherit_cycle_check(T673* C){
  692. T0* _bc=NULL;
  693. T0* _p=NULL;
  694. int _i=0;
  695. _i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
  696. while (!((_i)==(0))) {
  697. _p=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
  698. _bc=X291base_class((((T877*)((T877*)_p)))->_type/*4*/);
  699. /*IF*/if ((_bc)==((void*)(NULL))) {
  700. r683add_position(r877start_position(((T877*)_p)));
  701. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms66_470);
  702. r683fatal_error(((T683*)(oBC364eh)),b1);
  703. }/*]*/
  704. }
  705. else {
  706. r605inherit_cycle_check(((T605*)_bc));
  707. }
  708. /*FI*/_i=(_i)-(1);
  709. }
  710. }
  711. /*No:PARENT_LIST.em1*/
  712. /*No:PARENT_LIST.list*/
  713. T0* r673up_to_original(T673* C,T0* a1,T0* a2){
  714. T0* R=NULL;
  715. int _i=0;
  716. T0* _new_fn=NULL;
  717. T0* _fn2=NULL;
  718. T0* _fn1=NULL;
  719. T0* _p2=NULL;
  720. T0* _p1=NULL;
  721. _i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
  722. while (!(((_i)==(0))||((_fn1)!=((void*)(NULL))))) {
  723. _p1=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
  724. _fn1=r877up_to_original(((T877*)_p1),a1,a2);
  725. _i=(_i)-(1);
  726. }
  727. while (!((_i)==(0))) {
  728. _p2=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
  729. _fn2=r877up_to_original(((T877*)_p2),a1,a2);
  730. /*IF*/if ((_fn2)!=((void*)(NULL))) {
  731. _new_fn=r877do_rename(((T877*)_p2),a2);
  732. /*IF*/if (r877has_select_for(((T877*)_p2),_new_fn)) {
  733. _p1=_p2;
  734. _fn1=_fn2;
  735. }
  736. /*FI*/}
  737. /*FI*/_i=(_i)-(1);
  738. }
  739. /*IF*/if ((_fn1)!=((void*)(NULL))) {
  740. /*IF*/if ((X776to_string(_fn1))!=((void*)(X776to_string(a2)))) {
  741. R=r673repeated_inheritance(C,_p1,_fn1,a2);
  742. }
  743. else {
  744. R=_fn1;
  745. }
  746. /*FI*/}
  747. /*FI*/return R;
  748. }
  749. void r673collect_invariant(T673* C,T0* a1){
  750. int _i=0;
  751. _i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
  752. while (!((_i)==(0))) {
  753. r605collect_invariant(((T605*)(X291base_class((((T877*)((T877*)(r26item(((T26*)((((T673*)C))->_list/*12*/)),_i)))))->_type/*4*/))),a1);
  754. _i=(_i)-(1);
  755. }
  756. }
  757. T0* r673smallest_ancestor(T673* C,T0* a1){
  758. T0* R=NULL;
  759. T0* _sa=NULL;
  760. T0* _p=NULL;
  761. int _i=0;
  762. _i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
  763. while (!((_i)==(0))) {
  764. _p=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
  765. _sa=X291run_type(r877smallest_ancestor(((T877*)_p),a1));
  766. /*IF*/if ((R)==((void*)(NULL))) {
  767. R=_sa;
  768. }
  769. else {
  770. R=X291smallest_ancestor(_sa,R);
  771. }
  772. /*FI*//*IF*/if (X291is_any(R)) {
  773. _i=0;
  774. }
  775. else {
  776. _i=(_i)-(1);
  777. }
  778. /*FI*/}
  779. return R;
  780. }
  781. int r673has(T673* C,T0* a1){
  782. int R=0;
  783. int _i=0;
  784. _i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
  785. while (!((R)||((_i)==(0)))) {
  786. R=r877has(((T877*)(r26item(((T26*)((((T673*)C))->_list/*12*/)),_i))),a1);
  787. _i=(_i)-(1);
  788. }
  789. return R;
  790. }
  791. int r673has_redefine(T673* C,T0* a1){
  792. int R=0;
  793. int _i=0;
  794. _i=1;
  795. while (!((R)||((_i)>((((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/)))) {
  796. R=r877has_redefine(((T877*)(r26item(((T26*)((((T673*)C))->_list/*12*/)),_i))),a1);
  797. _i=(_i)+(1);
  798. }
  799. return R;
  800. }
  801. T0* r673look_up_for(T673* C,T0* a1,T0* a2){
  802. T0* R=NULL;
  803. T0* _f2=NULL;
  804. T0* _f1=NULL;
  805. T0* _p2=NULL;
  806. T0* _p1=NULL;
  807. int _i=0;
  808. _i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
  809. while (!(((_f1)!=((void*)(NULL)))||((_i)==(0)))) {
  810. _p1=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
  811. _f1=r877look_up_for(((T877*)_p1),a1,a2);
  812. _i=(_i)-(1);
  813. }
  814. while (!((_i)==(0))) {
  815. _p2=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
  816. _f2=r877look_up_for(((T877*)_p2),a1,a2);
  817. /*IF*/if ((_f2)==((void*)(NULL))) {
  818. }
  819.  else if ((_f1)==((void*)(_f2))) {
  820. }
  821.  else if (!(X359is_merge_with(_f2,_f1,a1))) {
  822. r683add_position((((T673*)C))->_start_position/*4*/);
  823. r683add_position(X359start_position(_f1));
  824. r683add_position(X359start_position(_f2));
  825. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms70_470);
  826. r683fatal_error(((T683*)(oBC364eh)),b1);
  827. }/*]*/
  828. }
  829.  else if (X359is_deferred(_f2)) {
  830. }
  831.  else if (X359is_deferred(_f1)) {
  832. _f1=_f2;
  833. _p1=_p2;
  834. }
  835.  else if (r877has_redefine(((T877*)_p1),a2)) {
  836. /*IF*/if (r877has_redefine(((T877*)_p2),a2)) {
  837. }
  838. else {
  839. r683add_position(X776start_position(a2));
  840. r683add_position(r877start_position(((T877*)_p2)));
  841. r683add_position(X359start_position(_f2));
  842. /*[IRF3.6append*/{T0* b1=((T0*)ms2_673);
  843. r7append(((T7*)(oBC683explanation)),b1);
  844. }/*]*/
  845. r683print_as_fatal_error(((T683*)(oBC364eh)));
  846. }
  847. /*FI*/}
  848.  else if (r877has_redefine(((T877*)_p2),a2)) {
  849. r683add_position(X776start_position(a2));
  850. r683add_position(r877start_position(((T877*)_p1)));
  851. r683add_position(X359start_position(_f1));
  852. /*[IRF3.6append*/{T0* b1=((T0*)ms2_673);
  853. r7append(((T7*)(oBC683explanation)),b1);
  854. }/*]*/
  855. r683print_as_fatal_error(((T683*)(oBC364eh)));
  856. }
  857. else {
  858. r683add_position(r877start_position(((T877*)_p2)));
  859. r683add_position(r877start_position(((T877*)_p1)));
  860. r683add_position(X359start_position(_f1));
  861. r683add_position(X359start_position(_f2));
  862. /*[IRF3.6append*/{T0* b1=((T0*)ms2_673);
  863. r7append(((T7*)(oBC683explanation)),b1);
  864. }/*]*/
  865. r683print_as_fatal_error(((T683*)(oBC364eh)));
  866. }
  867. /*FI*/_i=(_i)-(1);
  868. }
  869. R=_f1;
  870. return R;
  871. }
  872. T0* r673repeated_inheritance(T673* C,T0* a1,T0* a2,T0* a3){
  873. T0* R=NULL;
  874. T0* _bc1=NULL;
  875. T0* _p2=NULL;
  876. int _i=0;
  877. _bc1=X291base_class((((T877*)((T877*)a1)))->_type/*4*/);
  878. _i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
  879. while (!((_i)==(0))) {
  880. _p2=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
  881. /*IF*/if ((a1)!=((void*)(_p2))) {
  882. /*IF*/if ((_bc1)==((void*)(X291base_class((((T877*)((T877*)_p2)))->_type/*4*/)))) {
  883. /*IF*/if ((X776to_string(r877do_rename(((T877*)_p2),a2)))==((void*)(X776to_string(a3)))) {
  884. R=a3;
  885. }
  886.  else if ((X776to_string(r877do_rename(((T877*)a1),a2)))==((void*)(X776to_string(a3)))) {
  887. R=a3;
  888. }
  889. /*FI*/}
  890. /*FI*/}
  891. /*FI*/_i=(_i)-(1);
  892. }
  893. /*IF*/if ((R)==((void*)(NULL))) {
  894. R=a2;
  895. }
  896. /*FI*/return R;
  897. }
  898. /*No:PARENT_LIST.super*/
  899. T0* r673clients_for(T673* C,T0* a1){
  900. T0* R=NULL;
  901. T0* _cl=NULL;
  902. int _i=0;
  903. _i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
  904. while (!((_i)==(0))) {
  905. _cl=r877clients_for(((T877*)(r26item(((T26*)((((T673*)C))->_list/*12*/)),_i))),a1);
  906. /*IF*/if ((R)==((void*)(NULL))) {
  907. R=_cl;
  908. }
  909.  else if ((_cl)!=((void*)(NULL))) {
  910. R=r636append(((T636*)R),_cl);
  911. }
  912. /*FI*//*IF*/if (((R)!=((void*)(NULL)))&&(r636gives_permission_to_any(((T636*)R)))) {
  913. _i=0;
  914. }
  915. else {
  916. _i=(_i)-(1);
  917. }
  918. /*FI*/}
  919. return R;
  920. }
  921. T0* r673going_up(T673* C,T0* a1,T0* a2,T0* a3){
  922. T0* R=NULL;
  923. T0* _fn2=NULL;
  924. T0* _fn1=NULL;
  925. T0* _p2=NULL;
  926. T0* _p1=NULL;
  927. int _i=0;
  928. _i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
  929. while (!(((_fn1)!=((void*)(NULL)))||((_i)==(0)))) {
  930. _p1=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
  931. _fn1=r877going_up(((T877*)_p1),a1,a2,a3);
  932. _i=(_i)-(1);
  933. }
  934. while (!((_i)==(0))) {
  935. _p2=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
  936. _fn2=r877going_up(((T877*)_p2),a1,a2,a3);
  937. /*IF*/if ((_fn2)!=((void*)(NULL))) {
  938. /*IF*/if (r877has_select_for(((T877*)_p2),_fn2)) {
  939. _p1=_p2;
  940. _fn1=_fn2;
  941. }
  942. /*FI*/}
  943. /*FI*/_i=(_i)-(1);
  944. }
  945. R=_fn1;
  946. return R;
  947. }
  948. int r673is_a_vncg(T673* C,T0* a1,T0* a2){
  949. int R=0;
  950. int _i=0;
  951. _i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
  952. while (!((R)||((_i)==(0)))) {
  953. R=r877is_a_vncg(((T877*)(r26item(((T26*)((((T673*)C))->_list/*12*/)),_i))),a1,a2);
  954. _i=(_i)-(1);
  955. }
  956. return R;
  957. }
  958. void r673collect_for(T673* C,int a1,T0* a2){
  959. int _i=0;
  960. _i=1;
  961. while (!((_i)>((((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/))) {
  962. r877collect_for(((T877*)(r26item(((T26*)((((T673*)C))->_list/*12*/)),_i))),a1,a2);
  963. _i=(_i)+(1);
  964. }
  965. }
  966. /*No:PARENT_LIST.heading_comment*/
  967. /*No:PARENT_LIST.count*/
  968. /*No:PARENT_LIST.base_class*/
  969. /*No:PARENT_LIST.fatal_error*/
  970. /*No:PARENT_LIST.fz_ich*/
  971. /*No:CECIL_POOL.us_print*/
  972. /*No:CECIL_POOL.se_cecil_list*/
  973. void r625fill_up(T625* C){
  974. int _i=0;
  975. T0* _rf=NULL;
  976. T0* _fna=NULL;
  977. T0* _rta=NULL;
  978. T0* _t=NULL;
  979. /*IF*/if (r590no_check(((T590*)(oBC364run_control)))) {
  980. {T321*n=malloc(sizeof(*n));
  981. *n=M321;
  982. r321with_capacity(n,1);
  983. C->_se_cecil_list=(T0*)n;
  984. }
  985. {T927*n=malloc(sizeof(*n));
  986. *n=M927;
  987. r927with_capacity(n,1);
  988. C->_se_cecil_name=(T0*)n;
  989. }
  990. r927add_last(((T927*)((((T625*)C))->_se_cecil_name/*4*/)),((T0*)ms1_625));
  991. _rf=r355get_feature_with(((T355*)(r669run_class(((T669*)(r625type_any()))))),((T0*)ms101_473));
  992. X321add_last((((T625*)C))->_se_cecil_list/*0*/,_rf);
  993. r576update_with(_rf);
  994. }
  995. /*FI*//*IF*/if (((((T590*)((T590*)(oBC364run_control))))->_cecil_path/*12*/)!=((void*)(NULL))) {
  996. {T321*n=malloc(sizeof(*n));
  997. *n=M321;
  998. r321with_capacity(n,4);
  999. C->_user_cecil_list=(T0*)n;
  1000. }
  1001. {T927*n=malloc(sizeof(*n));
  1002. *n=M927;
  1003. r927with_capacity(n,4);
  1004. C->_user_cecil_name=(T0*)n;
  1005. }
  1006. C->_user_path_h=r818connect_to_cecil(((T818*)(oBC364eiffel_parser)));
  1007. {T272*n=malloc(sizeof(*n));
  1008. *n=M272;
  1009. r272with_capacity(n,4);
  1010. _rta=(T0*)n;
  1011. }
  1012. {T719*n=malloc(sizeof(*n));
  1013. *n=M719;
  1014. r719with_capacity(n,4);
  1015. _fna=(T0*)n;
  1016. }
  1017. while (!(r818end_of_input(((T818*)(oBC364eiffel_parser))))) {
  1018. r927add_last(((T927*)((((T625*)C))->_user_cecil_name/*12*/)),r818parse_c_name(((T818*)(oBC364eiffel_parser))));
  1019. X272add_last(_rta,r818parse_run_type(((T818*)(oBC364eiffel_parser))));
  1020. r719add_last(((T719*)_fna),r818parse_feature_name(((T818*)(oBC364eiffel_parser))));
  1021. }
  1022. r818disconnect(((T818*)(oBC364eiffel_parser)));
  1023. r306put_string(((T306*)(oBC364echo)),((T0*)ms2_625));
  1024. _i=0;
  1025. while (!((_i)>(/*X272*/((int)(((T272*)((T272*)_rta)))->_upper/*12*/)))) {
  1026. _t=X291to_runnable(/*X272*/((T0*)r272item(((T272*)_rta),_i)),r625type_any());
  1027. _rf=r355get_feature(((T355*)(X291run_class(_t))),/*(IRF4.6item*/((((T719*)((T719*)_fna)))->_storage/*0*/)[_i]/*)*/);
  1028. X321add_last((((T625*)C))->_user_cecil_list/*8*/,_rf);
  1029. r576update_with(_rf);
  1030. _i=(_i)+(1);
  1031. }
  1032. }
  1033. /*FI*/}
  1034. T0* r625type_any(void){
  1035. if (fBC364type_any==0){
  1036. T0* R=NULL;
  1037. fBC364type_any=1;
  1038. {T669*n=malloc(sizeof(*n));
  1039. *n=M669;
  1040. r669make(n,NULL);
  1041. R=(T0*)n;
  1042. }
  1043. oBC364type_any=R;}
  1044. return oBC364type_any;}
  1045. /*No:CECIL_POOL.fz_00*/
  1046. /*No:CECIL_POOL.user_path_h*/
  1047. /*No:CECIL_POOL.fz_12*/
  1048. /*No:CECIL_POOL.user_cecil_list*/
  1049. T0*oBC625tmp_string=NULL;
  1050. /*No:CECIL_POOL.user_cecil_name*/
  1051. /*No:CECIL_POOL.fz_void*/
  1052. /*No:CECIL_POOL.se_cecil_name*/
  1053. void r625c_define_for_list(T0* a1,T0* a2){
  1054. int _i=0;
  1055. _i=/*X321*/((int)(((T321*)((T321*)a1)))->_upper/*12*/);
  1056. while (!((_i)<(0))) {
  1057. r625c_define_for(/*(IRF4.6item*/((((T927*)((T927*)a2)))->_storage/*0*/)[_i]/*)*/,/*X321*/((T0*)r321item(((T321*)a1),_i)));
  1058. _i=(_i)-(1);
  1059. }
  1060. }
  1061. void r625c_define_users(T625* C){
  1062. /*IF*/if (((((T625*)C))->_user_cecil_list/*8*/)!=((void*)(NULL))) {
  1063. r306put_string(((T306*)(oBC364echo)),((T0*)ms4_625));
  1064. r324connect_cecil_out_h(((T324*)(oBC364cpp)),(((T625*)C))->_user_path_h/*16*/);
  1065. r625c_define_for_list((((T625*)C))->_user_cecil_list/*8*/,(((T625*)C))->_user_cecil_name/*12*/);
  1066. /*[IRF3.5disconnect_cecil_out_h*/r544disconnect(((T544*)((((T324*)((T324*)(oBC364cpp))))->_out_h/*52*/)));
  1067. /*]*/
  1068. }
  1069. /*FI*/}
  1070. void r625c_define_internals(T625* C){
  1071. /*IF*/if (((((T625*)C))->_se_cecil_list/*0*/)!=((void*)(NULL))) {
  1072. r306put_string(((T306*)(oBC364echo)),((T0*)ms3_625));
  1073. r625c_define_for_list((((T625*)C))->_se_cecil_list/*0*/,(((T625*)C))->_se_cecil_name/*4*/);
  1074. }
  1075. /*FI*/}
  1076. void r625c_define_for(T0* a1,T0* a2){
  1077. T0* _cecil_arg_list=NULL;
  1078. T0* _cecil_target=NULL;
  1079. T0* _rfargs=NULL;
  1080. T0* _rfname=NULL;
  1081. T0* _rfrt=NULL;
  1082. T0* _rfct=NULL;
  1083. T0* _running=NULL;
  1084. _rfct=/*X496*/((T0*)(((T832*)((T832*)a2)))->_current_type/*4*/);
  1085. _rfrt=/*X496*/((T0*)(((T832*)((T832*)a2)))->_result_type/*24*/);
  1086. _rfname=/*X496*/((T0*)(((T832*)((T832*)a2)))->_name/*16*/);
  1087. _rfargs=/*X496*/((T0*)(((T832*)((T832*)a2)))->_arguments/*20*/);
  1088. r306put_string(((T306*)(oBC364echo)),X291run_time_mark(_rfct));
  1089. r306put_character(((T306*)(oBC364echo)),'\11');
  1090. r306put_character(((T306*)(oBC364echo)),'\56');
  1091. r306put_string(((T306*)(oBC364echo)),X776to_string(_rfname));
  1092. r306put_character(((T306*)(oBC364echo)),'\n');
  1093. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC625tmp_string)))))->_count)=(0);
  1094. /*]*/
  1095. /*IF*/if ((_rfrt)!=((void*)(NULL))) {
  1096. X291c_type_for_external_in(_rfrt,oBC625tmp_string);
  1097. }
  1098. else {
  1099. r7append(((T7*)(oBC625tmp_string)),((T0*)ms133_470));
  1100. }
  1101. /*FI*/r7extend(((T7*)(oBC625tmp_string)),'\40');
  1102. r7append(((T7*)(oBC625tmp_string)),a1);
  1103. r7extend(((T7*)(oBC625tmp_string)),'\50');
  1104. X291c_type_for_external_in(_rfct,oBC625tmp_string);
  1105. r7extend(((T7*)(oBC625tmp_string)),'\40');
  1106. r7extend(((T7*)(oBC625tmp_string)),'C');
  1107. /*IF*/if ((_rfargs)!=((void*)(NULL))) {
  1108. r7extend(((T7*)(oBC625tmp_string)),'\54');
  1109. r31external_prototype(((T31*)_rfargs),oBC625tmp_string);
  1110. }
  1111. /*FI*/r7extend(((T7*)(oBC625tmp_string)),'\51');
  1112. r324put_c_heading(((T324*)(oBC364cpp)),oBC625tmp_string);
  1113. /*[IRF3.3swap_on_c*/((((T324*)(((T324*)(oBC364cpp)))))->_current_out)=(oBC324out_c);
  1114. /*]*/
  1115. _running=(((T355*)((T355*)(X291run_class(_rfct)))))->_running/*12*/;
  1116. /*IF*/if ((_running)==((void*)(NULL))) {
  1117. r683add_type(_rfct,((T0*)ms5_625));
  1118. /*[IRF3.6append*/{T0* b1=((T0*)ms6_625);
  1119. r7append(((T7*)(oBC683explanation)),b1);
  1120. }/*]*/
  1121. /*[IRF3.6append*/{T0* b1=X291run_time_mark(_rfct);
  1122. r7append(((T7*)(oBC683explanation)),b1);
  1123. }/*]*/
  1124. /*[IRF3.6append*/{T0* b1=X776to_key(_rfname);
  1125. r7append(((T7*)(oBC683explanation)),b1);
  1126. }/*]*/
  1127. /*[IRF3.6append*/{T0* b1=((T0*)ms7_625);
  1128. r7append(((T7*)(oBC683explanation)),b1);
  1129. }/*]*/
  1130. r683print_as_warning(((T683*)(oBC364eh)));
  1131. }
  1132. /*FI*//*IF*/if ((_rfrt)!=((void*)(NULL))) {
  1133. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms8_625));
  1134. /*]*/
  1135. }
  1136. /*FI*/{T716*n=malloc(sizeof(*n));
  1137. *n=M716;
  1138. r716make(n,a2);
  1139. _cecil_target=(T0*)n;
  1140. }
  1141. /*IF*/if ((X496arg_count(a2))>(0)) {
  1142. {T521*n=malloc(sizeof(*n));
  1143. *n=M521;
  1144. r521make(n,a2);
  1145. _cecil_arg_list=(T0*)n;
  1146. }
  1147. }
  1148. /*FI*//*IF*/if (X291is_expanded(_rfct)) {
  1149. r324push_direct(((T324*)(oBC364cpp)),a2,_cecil_target,_cecil_arg_list);
  1150. X496mapping_c(a2);
  1151. r324pop(((T324*)(oBC364cpp)));
  1152. }
  1153. else {
  1154. r324push_cpc(((T324*)(oBC364cpp)),a2,_running,_cecil_target,_cecil_arg_list);
  1155. }
  1156. /*FI*//*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms134_470));
  1157. /*]*/
  1158. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms146_470));
  1159. /*]*/
  1160. }
  1161. /*No:PREFIX_NAME.set_is_frozen*/
  1162. void r406make(T406* C,T0* a1,T0* a2){
  1163. C->_to_string=r902item(a1);
  1164. C->_start_position=a2;
  1165. C->_to_key=r902for_prefix((((T406*)C))->_to_string/*4*/);
  1166. }
  1167. /*No:PREFIX_NAME.to_string*/
  1168. /*No:PREFIX_NAME.fz_prefix*/
  1169. /*No:PREFIX_NAME.start_position*/
  1170. /*No:PREFIX_NAME.to_key*/
  1171. T0* r406name_in(T406* C,T0* a1){
  1172. T0* R=NULL;
  1173. T0* _bc=NULL;
  1174. _bc=r406origin_base_class(C);
  1175. /*IF*/if ((_bc)==((void*)(a1))) {
  1176. R=(T0*)C;
  1177. }
  1178. else {
  1179. R=r605new_name_of(((T605*)a1),_bc,(T0*)C);
  1180. }
  1181. /*FI*/return R;
  1182. }
  1183. /*No:PREFIX_NAME.is_frozen*/
  1184. void r406undefine_in(T406* C,T0* a1){
  1185. /*IF*/if ((((T406*)C))->_is_frozen/*12*/) {
  1186. r406error((((T406*)C))->_start_position/*8*/,((T0*)ms1_776));
  1187. r605fatal_undefine(((T605*)a1),(T0*)C);
  1188. }
  1189. /*FI*/}
  1190. /*No:PREFIX_NAME.cpp_put_infix_or_prefix*/
  1191. void r406error(T0* a1,T0* a2){
  1192. r683add_position(a1);
  1193. r683error(((T683*)(oBC364eh)),a2);
  1194. }
  1195. /*No:PREFIX_NAME.mapping_c_in*/
  1196. T0* r406origin_base_class(T406* C){
  1197. T0* R=NULL;
  1198. T0* _sp=NULL;
  1199. _sp=(((T406*)C))->_start_position/*8*/;
  1200. /*IF*/if ((_sp)!=((void*)(NULL))) {
  1201. R=r627base_class(((T627*)_sp));
  1202. }
  1203. /*FI*/return R;
  1204. }
  1205. void r675connect_to(T675* C,T0* a1){
  1206. C->_input_stream=fopen(r7to_external(((T7*)a1)),"r");
  1207. /*IF*/if ((NULL!=(((T675*)C))->_input_stream/*8*/)) {
  1208. C->_push_back_flag=0;
  1209. C->_memory=((unsigned char)'\40');
  1210. C->_path=a1;
  1211. }
  1212. /*FI*/}
  1213. T0*oBC762last_string=NULL;
  1214. /*No:STD_FILE_READ.push_back_flag*/
  1215. void r675skip_separators(T675* C){
  1216. while (!((r675end_of_input(C))||(!(r3is_separator(/*(IRF4.6last_character*/((char)((((T675*)C))->_memory/*12*/))/*)*/))))) {
  1217. r675read_character(C);
  1218. }
  1219. }
  1220. /*No:STD_FILE_READ.make*/
  1221. void r675disconnect(T675* C){
  1222. fclose((((T675*)C))->_input_stream/*8*/);
  1223. C->_path=NULL;
  1224. }
  1225. /*No:STD_FILE_READ.path*/
  1226. void r675read_character(T675* C){
  1227. /*IF*/if ((((T675*)C))->_push_back_flag/*0*/) {
  1228. C->_push_back_flag=0;
  1229. }
  1230. else {
  1231. C->_memory=getc((FILE*)((((T675*)C))->_input_stream/*8*/));
  1232. }
  1233. /*FI*/}
  1234. /*No:STD_FILE_READ.is_connected*/
  1235. void r675read_word(T675* C){
  1236. r675skip_separators(C);
  1237. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC762last_string)))))->_count)=(0);
  1238. /*]*/
  1239. while (!((r675end_of_input(C))||(r3is_separator(/*(IRF4.6last_character*/((char)((((T675*)C))->_memory/*12*/))/*)*/)))) {
  1240. r7extend(((T7*)(oBC762last_string)),/*(IRF4.6last_character*/((char)((((T675*)C))->_memory/*12*/))/*)*/);
  1241. r675read_character(C);
  1242. }
  1243. }
  1244. /*No:STD_FILE_READ.last_character*/
  1245. void r675read_line_in(T675* C,T0* a1){
  1246. int _mem=0;
  1247. r675read_character(C);
  1248. _mem=(((T675*)C))->_memory/*12*/;
  1249. while (!(((_mem)==((EOF)))||((_mem)==(((unsigned char)'\n'))))) {
  1250. r7extend(((T7*)a1),((char)(_mem)));
  1251. _mem=getc((FILE*)((((T675*)C))->_input_stream/*8*/));
  1252. }
  1253. C->_memory=_mem;
  1254. }
  1255. int r675end_of_input(T675* C){
  1256. int R=0;
  1257. /*IF*/if (!((((T675*)C))->_push_back_flag/*0*/)) {
  1258. R=((((T675*)C))->_memory/*12*/)==((EOF));
  1259. }
  1260. /*FI*/return R;
  1261. }
  1262. int r675same_as(T675* C,T0* a1){
  1263. int R=0;
  1264. int _c2=0;
  1265. int _c1=0;
  1266. void* _is2=0;
  1267. void* _is1=0;
  1268. _is1=(((T675*)C))->_input_stream/*8*/;
  1269. _is2=(((T675*)((T675*)a1)))->_input_stream/*8*/;
  1270. while (!(((_c1)!=(_c2))||((_c1)==((EOF))))) {
  1271. _c1=getc((FILE*)(_is1));
  1272. _c2=getc((FILE*)(_is2));
  1273. }
  1274. R=(_c1)==(_c2);
  1275. r675disconnect(C);
  1276. r675disconnect(((T675*)a1));
  1277. return R;
  1278. }
  1279. void r675read_line(T675* C){
  1280. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC762last_string)))))->_count)=(0);
  1281. /*]*/
  1282. r675read_line_in(C,oBC762last_string);
  1283. }
  1284. /*No:STD_FILE_READ.input_stream*/
  1285. /*No:STD_FILE_READ.memory*/
  1286. T0* r347add_comment(T347* C,T0* a1){
  1287. T0* R=NULL;
  1288. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1289. R=(T0*)C;
  1290. }
  1291.  else {/*AT*//*IF*/if ((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(1)) {
  1292. R=(T0*)C;
  1293. }
  1294. else {
  1295. {T46*n=malloc(sizeof(*n));
  1296. *n=M46;
  1297. r46make(n,(T0*)C,a1);
  1298. R=(T0*)n;
  1299. }
  1300. }
  1301. /*FI*/}
  1302. /*FI*/return R;
  1303. }
  1304. void r347make(T347* C,T0* a1,T0* a2,T0* a3){
  1305. C->_start_position=a1;
  1306. C->_list=a2;
  1307. C->_compound=a3;
  1308. }
  1309. /*No:E_DEBUG.start_position*/
  1310. void r347compile_to_c(T347* C){
  1311. /*IF*/if (r590debug_check(((T590*)(oBC364run_control)))) {
  1312. /*IF*/if (((((T347*)C))->_compound/*16*/)!=((void*)(NULL))) {
  1313. r592compile_to_c(((T592*)((((T347*)C))->_compound/*16*/)));
  1314. }
  1315. /*FI*/}
  1316. /*FI*/}
  1317. T0* r347to_runnable(T347* C,T0* a1){
  1318. T0* R=NULL;
  1319. /*IF*/if (((((T347*)C))->_run_compound/*4*/)==((void*)(NULL))) {
  1320. C->_run_compound=a1;
  1321. /*IF*/if (r590debug_check(((T590*)(oBC364run_control)))) {
  1322. /*IF*/if (((((T347*)C))->_compound/*16*/)!=((void*)(NULL))) {
  1323. C->_compound=r592to_runnable(((T592*)((((T347*)C))->_compound/*16*/)),r347current_type(C));
  1324. }
  1325. /*FI*/}
  1326. /*FI*/R=(T0*)C;
  1327. }
  1328. else {
  1329. {T347*n=malloc(sizeof(*n));
  1330. *n=M347;
  1331. r347make(n,(((T347*)C))->_start_position/*8*/,(((T347*)C))->_list/*12*/,(((T347*)C))->_compound/*16*/);
  1332. R=(T0*)n;
  1333. }
  1334. R=r347to_runnable(((T347*)R),a1);
  1335. }
  1336. /*FI*/return R;
  1337. }
  1338. /*No:E_DEBUG.list*/
  1339. T0* r347current_type(T347* C){
  1340. T0* R=NULL;
  1341. /*IF*/if (((((T347*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
  1342. R=(((T592*)((T592*)((((T347*)C))->_run_compound/*4*/))))->_current_type/*4*/;
  1343. }
  1344. /*FI*/return R;
  1345. }
  1346. /*No:E_DEBUG.run_compound*/
  1347. /*No:E_DEBUG.compound*/
  1348. /*No:E_DEBUG.is_pre_computable*/
  1349. int r347use_current(T347* C){
  1350. int R=0;
  1351. /*IF*/if (r590debug_check(((T590*)(oBC364run_control)))) {
  1352. /*IF*/if (((((T347*)C))->_compound/*16*/)!=((void*)(NULL))) {
  1353. R=r592use_current(((T592*)((((T347*)C))->_compound/*16*/)));
  1354. }
  1355. /*FI*/}
  1356. /*FI*/return R;
  1357. }
  1358. /*No:E_DEBUG.end_mark_comment*/
  1359. void r347afd_check(T347* C){
  1360. /*IF*/if (r590debug_check(((T590*)(oBC364run_control)))) {
  1361. /*IF*/if (((((T347*)C))->_compound/*16*/)!=((void*)(NULL))) {
  1362. r592afd_check(((T592*)((((T347*)C))->_compound/*16*/)));
  1363. }
  1364. /*FI*/}
  1365. /*FI*/}
  1366. /*No:CALL_INFIX_LE.arguments*/
  1367. T0* r932add_comment(T932* C,T0* a1){
  1368. T0* R=NULL;
  1369. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1370. R=(T0*)C;
  1371. }
  1372. else {
  1373. {T529*n=malloc(sizeof(*n));
  1374. *n=M529;
  1375. r529make(n,(T0*)C,a1);
  1376. R=(T0*)n;
  1377. }
  1378. }
  1379. /*FI*/return R;
  1380. }
  1381. int r932to_integer(T932* C){
  1382. int R=0;
  1383. r932error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T932*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  1384. return R;
  1385. }
  1386. int r932is_a(T932* C,T0* a1){
  1387. int R=0;
  1388. R=X291is_a(X291run_type((((T932*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
  1389. /*IF*/if (!(R)) {
  1390. r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T932*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/);
  1391. r932error(X662start_position(a1),((T0*)ms4_662));
  1392. }
  1393. /*FI*/return R;
  1394. }
  1395. /*No:CALL_INFIX_LE.is_current*/
  1396. void r932mapping_c_arg(T932* C,T0* a1){
  1397. T0* _actual_type=NULL;
  1398. _actual_type=X291run_type((((T932*)C))->_result_type/*20*/);
  1399. /*IF*/if (X291is_reference(_actual_type)) {
  1400. /*IF*/if (X291is_reference(a1)) {
  1401. r932compile_to_c(C);
  1402. }
  1403. else {
  1404. X291to_expanded(_actual_type);
  1405. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1406. char b1='\50';
  1407. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1408. }/*]*/
  1409. /*]*/
  1410. r932compile_to_c(C);
  1411. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1412. char b1='\51';
  1413. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1414. }/*]*/
  1415. /*]*/
  1416. }
  1417. /*FI*/}
  1418. else {
  1419. /*IF*/if (X291is_reference(a1)) {
  1420. X291to_reference(_actual_type);
  1421. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1422. char b1='\50';
  1423. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1424. }/*]*/
  1425. /*]*/
  1426. r932compile_to_c(C);
  1427. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1428. char b1='\51';
  1429. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1430. }/*]*/
  1431. /*]*/
  1432. }
  1433. else {
  1434. /*IF*/if (X291need_c_struct(a1)) {
  1435. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1436. char b1='\46';
  1437. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1438. }/*]*/
  1439. /*]*/
  1440. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1441. char b1='\50';
  1442. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1443. }/*]*/
  1444. /*]*/
  1445. r932compile_to_c(C);
  1446. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1447. char b1='\51';
  1448. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1449. }/*]*/
  1450. /*]*/
  1451. }
  1452. else {
  1453. r932compile_to_c(C);
  1454. }
  1455. /*FI*/}
  1456. /*FI*/}
  1457. /*FI*/}
  1458. /*No:CALL_INFIX_LE.static_value*/
  1459. void r932make(T932* C,T0* a1,T0* a2,T0* a3){
  1460. T0* _eal=NULL;
  1461. /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
  1462. r683add_position(a2);
  1463. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
  1464. r683fatal_error(((T683*)(oBC364eh)),b1);
  1465. }/*]*/
  1466. }
  1467. /*FI*/{T454*n=malloc(sizeof(*n));
  1468. *n=M454;
  1469. r454make(n,r932operator(),a2);
  1470. C->_feature_name=(T0*)n;
  1471. }
  1472. {T431*n=malloc(sizeof(*n));
  1473. *n=M431;
  1474. /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
  1475. /*]*/
  1476. _eal=(T0*)n;
  1477. }
  1478. r932make_call_1(C,a1,(((T932*)C))->_feature_name/*28*/,_eal);
  1479. }
  1480. void r932mapping_c_target(T932* C,T0* a1){
  1481. T0* _actual_type=NULL;
  1482. int _flag=0;
  1483. _flag=r324call_invariant_start(a1);
  1484. _actual_type=X291run_type((((T932*)C))->_result_type/*20*/);
  1485. /*IF*/if (X291is_reference(_actual_type)) {
  1486. /*IF*/if (X291is_reference(a1)) {
  1487. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1488. char b1='\50';
  1489. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1490. }/*]*/
  1491. /*]*/
  1492. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1493. char b1='\50';
  1494. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1495. }/*]*/
  1496. /*]*/
  1497. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1498. char b1='T';
  1499. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1500. }/*]*/
  1501. /*]*/
  1502. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X291id(a1));
  1503. /*]*/
  1504. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1505. char b1='\52';
  1506. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1507. }/*]*/
  1508. /*]*/
  1509. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1510. char b1='\51';
  1511. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1512. }/*]*/
  1513. /*]*/
  1514. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1515. char b1='\50';
  1516. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1517. }/*]*/
  1518. /*]*/
  1519. r932compile_to_c(C);
  1520. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1521. char b1='\51';
  1522. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1523. }/*]*/
  1524. /*]*/
  1525. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1526. char b1='\51';
  1527. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1528. }/*]*/
  1529. /*]*/
  1530. }
  1531. else {
  1532. X291to_expanded(_actual_type);
  1533. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1534. char b1='\50';
  1535. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1536. }/*]*/
  1537. /*]*/
  1538. r932compile_to_c(C);
  1539. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1540. char b1='\51';
  1541. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1542. }/*]*/
  1543. /*]*/
  1544. }
  1545. /*FI*/}
  1546. else {
  1547. /*IF*/if (X291is_reference(a1)) {
  1548. X291to_reference(_actual_type);
  1549. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1550. char b1='\50';
  1551. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1552. }/*]*/
  1553. /*]*/
  1554. r932compile_to_c(C);
  1555. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1556. char b1='\51';
  1557. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1558. }/*]*/
  1559. /*]*/
  1560. }
  1561. else {
  1562. /*IF*/if (X291need_c_struct(a1)) {
  1563. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1564. char b1='\46';
  1565. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1566. }/*]*/
  1567. /*]*/
  1568. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1569. char b1='\50';
  1570. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1571. }/*]*/
  1572. /*]*/
  1573. r932compile_to_c(C);
  1574. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1575. char b1='\51';
  1576. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1577. }/*]*/
  1578. /*]*/
  1579. }
  1580. else {
  1581. r932compile_to_c(C);
  1582. }
  1583. /*FI*/}
  1584. /*FI*/}
  1585. /*FI*//*IF*/if (_flag) {
  1586. /*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T544* C1=((T544*)(oBC324out_c));
  1587. char b1='\51';
  1588. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1589. }/*]*/
  1590. /*]*/
  1591. }
  1592. /*FI*/}
  1593. /*No:CALL_INFIX_LE.nb_errors*/
  1594. /*No:CALL_INFIX_LE.feature_name*/
  1595. /*No:CALL_INFIX_LE.fz_iinaiv*/
  1596. /*No:CALL_INFIX_LE.arg_count*/
  1597. /*No:CALL_INFIX_LE.dca_inline_argument*/
  1598. /*No:CALL_INFIX_LE.run_feature*/
  1599. /*No:CALL_INFIX_LE.call_proc_call_c2c*/
  1600. /*No:CALL_INFIX_LE.start_position*/
  1601. /*No:CALL_INFIX_LE.target*/
  1602. void r932compile_to_c(T932* C){
  1603. /*IF*/if ((r590boost(((T590*)(oBC364run_control))))&&(X291is_character(X291run_type(X662result_type((((T932*)C))->_target/*12*/))))) {
  1604. r932c2c_cast_op(C,((T0*)ms132_470),((T0*)ms35_473));
  1605. }
  1606. else {
  1607. /*[IRF3.6call_proc_call_c2c*/{T932* C1=C;
  1608. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  1609. }/*]*/
  1610. }
  1611. /*FI*/}
  1612. /*No:CALL_INFIX_LE.c_simple*/
  1613. T0* r932to_runnable(T932* C,T0* a1){
  1614. T0* R=NULL;
  1615. T0* _tla=NULL;
  1616. T0* _a=NULL;
  1617. /*IF*/if (((((T932*)C))->_current_type/*8*/)==((void*)(NULL))) {
  1618. r932to_runnable_0(C,a1);
  1619. _a=X431to_runnable((((T932*)C))->_arguments/*24*/,a1);
  1620. /*IF*/if ((_a)==((void*)(NULL))) {
  1621. r932error(X662start_position(r932arg1(C)),((T0*)ms55_470));
  1622. }
  1623. else {
  1624. C->_arguments=_a;
  1625. }
  1626. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1627. X431match_with((((T932*)C))->_arguments/*24*/,(((T932*)C))->_run_feature/*16*/);
  1628. }
  1629. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1630. _tla=(((T932*)C))->_result_type/*20*/;
  1631. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  1632. case 239: 
  1633. break;
  1634. default:
  1635. _tla=NULL;
  1636. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  1637. C->_result_type=X291run_type(X662result_type(r932arg1(C)));
  1638. }
  1639. /*FI*/}
  1640. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1641. R=(T0*)C;
  1642. }
  1643. /*FI*/}
  1644. else {
  1645. R=r932twin(C);
  1646. /*[IRF3.3set_current_type*/((((T932*)(((T932*)R))))->_current_type)=(NULL);
  1647. /*]*/
  1648. R=r932to_runnable(((T932*)R),a1);
  1649. }
  1650. /*FI*/return R;
  1651. }
  1652. /*No:CALL_INFIX_LE.result_type*/
  1653. /*No:CALL_INFIX_LE.is_result*/
  1654. T0* r932twin(T932* C){
  1655. T0* R=NULL;
  1656. R=malloc(sizeof(*C));
  1657. *((T932*)R)=*C;
  1658. return R;
  1659. }
  1660. /*No:CALL_INFIX_LE.set_current_type*/
  1661. /*No:CALL_INFIX_LE.us_le*/
  1662. T0* r932operator(void){
  1663. T0* R=NULL;
  1664. R=((T0*)ms35_473);
  1665. return R;
  1666. }
  1667. int r932is_static(T932* C){
  1668. int R=0;
  1669. /*IF*/if (X291is_integer(X662result_type((((T932*)C))->_target/*12*/))) {
  1670. /*IF*/if ((X662is_static((((T932*)C))->_target/*12*/))&&(X662is_static(r932arg1(C)))) {
  1671. R=1;
  1672. /*IF*/if ((X662static_value((((T932*)C))->_target/*12*/))<=(X662static_value(r932arg1(C)))) {
  1673. C->_static_value_mem=1;
  1674. }
  1675. else {
  1676. C->_static_value_mem=0;
  1677. }
  1678. /*FI*/}
  1679. /*FI*/}
  1680. /*FI*/return R;
  1681. }
  1682. /*No:CALL_INFIX_LE.fz_07*/
  1683. /*No:CALL_INFIX_LE.fz_unsigned*/
  1684. /*No:CALL_INFIX_LE.can_be_dropped*/
  1685. /*No:CALL_INFIX_LE.current_type*/
  1686. void r932compile_to_c_old(T932* C){
  1687. X662compile_to_c_old((((T932*)C))->_target/*12*/);
  1688. /*IF*/{/*AT*/X431compile_to_c_old((((T932*)C))->_arguments/*24*/);
  1689. }
  1690. /*FI*/}
  1691. void r932c2c_cast_op(T932* C,T0* a1,T0* a2){
  1692. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1693. char b1='\50';
  1694. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1695. }/*]*/
  1696. /*]*/
  1697. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1698. char b1='\50';
  1699. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1700. }/*]*/
  1701. /*]*/
  1702. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1703. char b1='\50';
  1704. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1705. }/*]*/
  1706. /*]*/
  1707. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),a1);
  1708. /*]*/
  1709. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1710. char b1='\51';
  1711. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1712. }/*]*/
  1713. /*]*/
  1714. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1715. char b1='\50';
  1716. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1717. }/*]*/
  1718. /*]*/
  1719. X662compile_to_c((((T932*)C))->_target/*12*/);
  1720. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1721. char b1='\51';
  1722. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1723. }/*]*/
  1724. /*]*/
  1725. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1726. char b1='\51';
  1727. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1728. }/*]*/
  1729. /*]*/
  1730. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),a2);
  1731. /*]*/
  1732. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1733. char b1='\50';
  1734. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1735. }/*]*/
  1736. /*]*/
  1737. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1738. char b1='\50';
  1739. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1740. }/*]*/
  1741. /*]*/
  1742. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),a1);
  1743. /*]*/
  1744. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1745. char b1='\51';
  1746. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1747. }/*]*/
  1748. /*]*/
  1749. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1750. char b1='\50';
  1751. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1752. }/*]*/
  1753. /*]*/
  1754. X662compile_to_c(r932arg1(C));
  1755. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1756. char b1='\51';
  1757. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1758. }/*]*/
  1759. /*]*/
  1760. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1761. char b1='\51';
  1762. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1763. }/*]*/
  1764. /*]*/
  1765. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1766. char b1='\51';
  1767. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1768. }/*]*/
  1769. /*]*/
  1770. }
  1771. /*No:CALL_INFIX_LE.static_value_mem*/
  1772. void r932make_call_1(T932* C,T0* a1,T0* a2,T0* a3){
  1773. C->_target=a1;
  1774. C->_feature_name=a2;
  1775. C->_arguments=a3;
  1776. }
  1777. /*No:CALL_INFIX_LE.is_manifest_string*/
  1778. /*No:CALL_INFIX_LE.is_void*/
  1779. void r932to_runnable_0(T932* C,T0* a1){
  1780. C->_current_type=a1;
  1781. r932cpc_to_runnable(C,a1);
  1782. C->_result_type=/*X496*/((T0*)(((T832*)((T832*)((((T932*)C))->_run_feature/*16*/))))->_result_type/*24*/);
  1783. /*IF*/if (((((T932*)C))->_result_type/*20*/)==((void*)(NULL))) {
  1784. r683add_position(X496start_position((((T932*)C))->_run_feature/*16*/));
  1785. r932error((((T454*)((T454*)((((T932*)C))->_feature_name/*28*/))))->_start_position/*8*/,((T0*)ms1_295));
  1786. }
  1787.  else if (X291is_like_current((((T932*)C))->_result_type/*20*/)) {
  1788. C->_result_type=X662result_type((((T932*)C))->_target/*12*/);
  1789. }
  1790. /*FI*/}
  1791. /*No:CALL_INFIX_LE.is_pre_computable*/
  1792. void r932cpc_to_runnable(T932* C,T0* a1){
  1793. T0* _rc=NULL;
  1794. T0* _t=NULL;
  1795. _t=X662to_runnable((((T932*)C))->_target/*12*/,a1);
  1796. /*IF*/if ((_t)==((void*)(NULL))) {
  1797. r683add_position(X662start_position((((T932*)C))->_target/*12*/));
  1798. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  1799. r683fatal_error(((T683*)(oBC364eh)),b1);
  1800. }/*]*/
  1801. }
  1802. /*FI*/C->_target=_t;
  1803. _rc=X291run_class(X662result_type((((T932*)C))->_target/*12*/));
  1804. C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C);
  1805. r576update((((T932*)C))->_target/*12*/,(((T932*)C))->_run_feature/*16*/);
  1806. }
  1807. int r932use_current(T932* C){
  1808. int R=0;
  1809. /*IF*/{/*AT*/R=X431use_current((((T932*)C))->_arguments/*24*/);
  1810. }
  1811. /*FI*//*IF*/if (R) {
  1812. }
  1813.  else if (X662is_current((((T932*)C))->_target/*12*/)) {
  1814. R=X496use_current((((T932*)C))->_run_feature/*16*/);
  1815. }
  1816. else {
  1817. R=X662use_current((((T932*)C))->_target/*12*/);
  1818. }
  1819. /*FI*/return R;
  1820. }
  1821. void r932finalize(T932* C){
  1822. T0* _rf=NULL;
  1823. T0* _rc=NULL;
  1824. _rf=(((T932*)C))->_run_feature/*16*/;
  1825. _rc=X291run_class(/*X496*/((T0*)(((T832*)((T832*)_rf)))->_current_type/*4*/));
  1826. /*IF*/if (!((((T355*)((T355*)_rc)))->_at_run_time/*8*/)) {
  1827. _rf=r355dynamic(((T355*)(r396first(((T396*)((((T355*)((T355*)_rc)))->_running/*12*/))))),_rf);
  1828. C->_run_feature=_rf;
  1829. }
  1830. /*FI*/}
  1831. void r932error(T0* a1,T0* a2){
  1832. r683add_position(a1);
  1833. r683error(((T683*)(oBC364eh)),a2);
  1834. }
  1835. /*No:CALL_INFIX_LE.isa_dca_inline_argument*/
  1836. /*No:CALL_INFIX_LE.fatal_error*/
  1837. /*No:CALL_INFIX_LE.fz_bad_argument*/
  1838. T0* r932arg1(T932* C){
  1839. T0* R=NULL;
  1840. R=X431first((((T932*)C))->_arguments/*24*/);
  1841. return R;
  1842. }
  1843. void r932afd_check(T932* C){
  1844. T0* _running=NULL;
  1845. T0* _rc=NULL;
  1846. _rc=X291run_class(X662result_type((((T932*)C))->_target/*12*/));
  1847. _running=(((T355*)((T355*)_rc)))->_running/*12*/;
  1848. /*IF*/if ((_running)==((void*)(NULL))) {
  1849. r683add_position(X662start_position((((T932*)C))->_target/*12*/));
  1850. /*[IRF3.6append*/{T0* b1=((T0*)ms1_135);
  1851. r7append(((T7*)(oBC683explanation)),b1);
  1852. }/*]*/
  1853. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/);
  1854. r7append(((T7*)(oBC683explanation)),b1);
  1855. }/*]*/
  1856. /*[IRF3.6append*/{T0* b1=((T0*)ms141_470);
  1857. r7append(((T7*)(oBC683explanation)),b1);
  1858. }/*]*/
  1859. r683print_as_warning(((T683*)(oBC364eh)));
  1860. r355set_at_run_time(((T355*)_rc));
  1861. }
  1862.  else if ((r396count(((T396*)_running)))>(0)) {
  1863. r576update((((T932*)C))->_target/*12*/,(((T932*)C))->_run_feature/*16*/);
  1864. }
  1865. /*FI*/X662afd_check((((T932*)C))->_target/*12*/);
  1866. /*IF*/{/*AT*/X431afd_check((((T932*)C))->_arguments/*24*/);
  1867. }
  1868. /*FI*/}
  1869. /*No:PARSER_BUFFER.make*/
  1870. int fBC676buffer=0;
  1871. T9 oBC676buffer=NULL;
  1872. T9 r676buffer(void){
  1873. if (fBC676buffer==0){
  1874. T9 R=NULL;
  1875. fBC676buffer=1;
  1876. R=calloc(4096,sizeof(char));
  1877. oBC676buffer=R;}
  1878. return oBC676buffer;}
  1879. /*No:PARSER_BUFFER.path*/
  1880. int r676read_file(T0* a1){
  1881. int R=0;
  1882. T9 _b=NULL;
  1883. T0* _line=NULL;
  1884. char _c=0;
  1885. int _nb_read=0;
  1886. int _i=0;
  1887. int _file=0;
  1888. void* _p=0;
  1889. _p=r7to_external(((T7*)a1));
  1890. _file=open(_p,O_RDONLY,0);/*IF*/if ((_file)>=(0)) {
  1891. _b=r676buffer();
  1892. _line=r676next_line(0);
  1893. _line=r676next_line(1);
  1894. R=1;
  1895. _nb_read=4096;
  1896. while (!((_nb_read)<(4096))) {
  1897. _nb_read=read(_file,_b,4096);
  1898. _i=0;
  1899. while (!((_i)==(_nb_read))) {
  1900. _c=(_b)[_i];
  1901. /*IF*/if ((_c)==('\n')) {
  1902. R=(R)+(1);
  1903. _line=r676next_line(R);
  1904. }
  1905.  else if ((_c)==('\15')) {
  1906. }
  1907. else {
  1908. r7extend(((T7*)_line),_c);
  1909. }
  1910. /*FI*/_i=(_i)+(1);
  1911. }
  1912. }
  1913. /*IF*/if (/*(IRF4.7empty*/((((T7*)((T7*)_line)))->_count/*4*/)==(0)/*)*/) {
  1914. R=(R)-(1);
  1915. }
  1916. /*FI*/_file=close(_file);
  1917. }
  1918. else {
  1919. R=-(1);
  1920. }
  1921. /*FI*/return R;
  1922. }
  1923. T0* r676item(int a1){
  1924. T0* R=NULL;
  1925. R=/*(IRF4.6item*/((((T927*)((T927*)(oBC676text))))->_storage/*0*/)[a1]/*)*/;
  1926. return R;
  1927. }
  1928. void r676load_file(T676* C,T0* a1){
  1929. C->_count=r676read_file(a1);
  1930. /*IF*/if (((((T676*)C))->_count/*4*/)>=(0)) {
  1931. C->_path=a1;
  1932. }
  1933. else {
  1934. C->_path=NULL;
  1935. }
  1936. /*FI*/}
  1937. /*No:PARSER_BUFFER.is_ready*/
  1938. T0*oBC676text=NULL;
  1939. /*No:PARSER_BUFFER.medium_line_size*/
  1940. /*No:PARSER_BUFFER.buffer_size*/
  1941. /*No:PARSER_BUFFER.count*/
  1942. /*No:PARSER_BUFFER.unset_is_ready*/
  1943. T0* r676next_line(int a1){
  1944. T0* R=NULL;
  1945. /*IF*/if ((a1)<=((((T927*)((T927*)(oBC676text))))->_upper/*8*/)) {
  1946. R=/*(IRF4.6item*/((((T927*)((T927*)(oBC676text))))->_storage/*0*/)[a1]/*)*/;
  1947. /*[IRF3.3clear*/((((T7*)(((T7*)R))))->_count)=(0);
  1948. /*]*/
  1949. }
  1950. else {
  1951. {T7*n=malloc(sizeof(*n));
  1952. *n=M7;
  1953. r7make(n,80);
  1954. R=(T0*)n;
  1955. }
  1956. r927add_last(((T927*)(oBC676text)),R);
  1957. }
  1958. /*FI*/return R;
  1959. }
  1960. T0* r629add_comment(T629* C,T0* a1){
  1961. T0* R=NULL;
  1962. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1963. R=(T0*)C;
  1964. }
  1965. /*AF*/else {
  1966. {T46*n=malloc(sizeof(*n));
  1967. *n=M46;
  1968. r46make(n,(T0*)C,a1);
  1969. R=(T0*)n;
  1970. }
  1971. }
  1972. /*FI*/return R;
  1973. }
  1974. void r629c_coding1(T629* C){
  1975. X662compile_to_c((((T629*)C))->_left_side/*8*/);
  1976. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1977. char b1='\75';
  1978. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1979. }/*]*/
  1980. /*]*/
  1981. X662compile_to_c((((T629*)C))->_right_side/*12*/);
  1982. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms134_470));
  1983. /*]*/
  1984. }
  1985. void r629bit_into_bit(T629* C,T0* a1,T0* a2){
  1986. T0* _right=NULL;
  1987. T0* _left=NULL;
  1988. _left=a1;
  1989. if(NULL!=(_left))switch(((T0*)_left)->id) {
  1990. case 549: case 558: 
  1991. break;
  1992. default:
  1993. _left=NULL;
  1994. };_right=a2;
  1995. if(NULL!=(_right))switch(((T0*)_right)->id) {
  1996. case 549: case 558: 
  1997. break;
  1998. default:
  1999. _right=NULL;
  2000. };/*IF*/if (X609is_c_char(_left)) {
  2001. /*IF*/if ((X609nb(_left))==(X609nb(_right))) {
  2002. r629c_coding1(C);
  2003. }
  2004. else {
  2005. X662compile_to_c((((T629*)C))->_left_side/*8*/);
  2006. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2007. char b1='\75';
  2008. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2009. }/*]*/
  2010. /*]*/
  2011. X662compile_to_c((((T629*)C))->_right_side/*12*/);
  2012. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms96_470));
  2013. /*]*/
  2014. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),(X609nb(_left))-(X609nb(_right)));
  2015. /*]*/
  2016. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms134_470));
  2017. /*]*/
  2018. }
  2019. /*FI*/}
  2020.  else if (X609is_c_int(_left)) {
  2021. /*IF*/if (X609is_c_int(_right)) {
  2022. /*IF*/if ((X609nb(_left))==(X609nb(_right))) {
  2023. r629c_coding1(C);
  2024. }
  2025. else {
  2026. X662compile_to_c((((T629*)C))->_left_side/*8*/);
  2027. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2028. char b1='\75';
  2029. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2030. }/*]*/
  2031. /*]*/
  2032. X662compile_to_c((((T629*)C))->_right_side/*12*/);
  2033. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms96_470));
  2034. /*]*/
  2035. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),(X609nb(_left))-(X609nb(_right)));
  2036. /*]*/
  2037. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms134_470));
  2038. /*]*/
  2039. }
  2040. /*FI*/}
  2041. else {
  2042. X662compile_to_c((((T629*)C))->_left_side/*8*/);
  2043. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms7_629));
  2044. /*]*/
  2045. X662compile_to_c((((T629*)C))->_right_side/*12*/);
  2046. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms8_629));
  2047. /*]*/
  2048. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X609nb(_left));
  2049. /*]*/
  2050. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2051. char b1='\55';
  2052. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2053. }/*]*/
  2054. /*]*/
  2055. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X609nb(_right));
  2056. /*]*/
  2057. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms150_470));
  2058. /*]*/
  2059. }
  2060. /*FI*/}
  2061. else {
  2062. /*IF*/if (X609is_c_unsigned_ptr(_right)) {
  2063. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms9_629));
  2064. /*]*/
  2065. X662mapping_c_arg((((T629*)C))->_left_side/*8*/,_left);
  2066. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2067. char b1='\54';
  2068. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2069. }/*]*/
  2070. /*]*/
  2071. X662mapping_c_arg((((T629*)C))->_right_side/*12*/,_right);
  2072. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2073. char b1='\54';
  2074. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2075. }/*]*/
  2076. /*]*/
  2077. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X609space_for_variable(_left));
  2078. /*]*/
  2079. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2080. char b1='\51';
  2081. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2082. }/*]*/
  2083. /*]*/
  2084. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms134_470));
  2085. /*]*/
  2086. }
  2087.  else if (X609is_c_int(_right)) {
  2088. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms10_629));
  2089. /*]*/
  2090. X662compile_to_c((((T629*)C))->_left_side/*8*/);
  2091. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms11_629));
  2092. /*]*/
  2093. X662compile_to_c((((T629*)C))->_left_side/*8*/);
  2094. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms150_470));
  2095. /*]*/
  2096. }
  2097. else {
  2098. }
  2099. /*FI*/}
  2100. /*FI*/}
  2101. int r629trace_instruction(T629* C){
  2102. int R=0;
  2103. T0* _ci=NULL;
  2104. /*IF*/if (r590no_check(((T590*)(oBC364run_control)))) {
  2105. /*IF*/if (X662c_simple((((T629*)C))->_right_side/*12*/)) {
  2106. }
  2107.  else if (X291is_basic_eiffel_expanded(r629right_type(C))) {
  2108. _ci=(((T629*)C))->_right_side/*12*/;
  2109. if(NULL!=(_ci))switch(((T0*)_ci)->id) {
  2110. case 121: case 890: case 414: case 453: case 460: case 932: case 253: case 278: case 760: case 534: case 999: case 517: case 520: case 557: case 574: case 90: case 313: case 57: case 655: case 112: 
  2111. break;
  2112. default:
  2113. _ci=NULL;
  2114. };/*IF*/if ((_ci)!=((void*)(NULL))) {
  2115. /*IF*/if ((X662c_simple(/*X618*/((T0*)(((T121*)((T121*)_ci)))->_target/*12*/)))&&(X662c_simple(X618arg1(_ci)))) {
  2116. }
  2117. else {
  2118. R=1;
  2119. }
  2120. /*FI*/}
  2121. /*FI*/}
  2122. else {
  2123. R=1;
  2124. }
  2125. /*FI*/}
  2126. /*FI*/return R;
  2127. }
  2128. void r629make(T629* C,T0* a1,T0* a2){
  2129. C->_left_side=a1;
  2130. C->_right_side=a2;
  2131. }
  2132. /*No:ASSIGNMENT.nb_errors*/
  2133. T0* r629start_position(T629* C){
  2134. T0* R=NULL;
  2135. R=X662start_position((((T629*)C))->_left_side/*8*/);
  2136. return R;
  2137. }
  2138. void r629compile_to_c(T629* C){
  2139. int _trace=0;
  2140. T0* _right_run_type=NULL;
  2141. T0* _left_run_type=NULL;
  2142. _trace=r629trace_instruction(C);
  2143. /*IF*/if (_trace) {
  2144. r324rs_push_position(((T324*)(oBC364cpp)),'1',r629start_position(C));
  2145. }
  2146. /*FI*/_left_run_type=X291run_type(r629left_type(C));
  2147. _right_run_type=X291run_type(r629right_type(C));
  2148. /*IF*/if (X291is_reference(_left_run_type)) {
  2149. /*IF*/if (X291is_reference(_right_run_type)) {
  2150. X662compile_to_c((((T629*)C))->_left_side/*8*/);
  2151. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2152. char b1='\75';
  2153. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2154. }/*]*/
  2155. /*]*/
  2156. /*IF*/if (X662is_current((((T629*)C))->_right_side/*12*/)) {
  2157. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms85_470));
  2158. /*]*/
  2159. }
  2160. /*FI*/X662compile_to_c((((T629*)C))->_right_side/*12*/);
  2161. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms134_470));
  2162. /*]*/
  2163. }
  2164. else {
  2165. X662compile_to_c((((T629*)C))->_left_side/*8*/);
  2166. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2167. char b1='\75';
  2168. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2169. }/*]*/
  2170. /*]*/
  2171. X291to_reference(_right_run_type);
  2172. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2173. char b1='\50';
  2174. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2175. }/*]*/
  2176. /*]*/
  2177. X662compile_to_c((((T629*)C))->_right_side/*12*/);
  2178. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2179. char b1='\51';
  2180. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2181. }/*]*/
  2182. /*]*/
  2183. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms134_470));
  2184. /*]*/
  2185. }
  2186. /*FI*/}
  2187. else {
  2188. /*IF*/if (X291is_reference(_right_run_type)) {
  2189. r683add_position(X662start_position((((T629*)C))->_left_side/*8*/));
  2190. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_629);
  2191. r683fatal_error(((T683*)(oBC364eh)),b1);
  2192. }/*]*/
  2193. }
  2194. else {
  2195. /*IF*/if (X291is_bit(_left_run_type)) {
  2196. r629bit_into_bit(C,_left_run_type,_right_run_type);
  2197. }
  2198. else {
  2199. r629c_coding1(C);
  2200. }
  2201. /*FI*/}
  2202. /*FI*/}
  2203. /*FI*//*IF*/if (_trace) {
  2204. r324rs_pop_position(((T324*)(oBC364cpp)));
  2205. }
  2206. /*FI*/}
  2207. /*No:ASSIGNMENT.fz_00*/
  2208. T0* r629to_runnable(T629* C,T0* a1){
  2209. T0* R=NULL;
  2210. T0* _e=NULL;
  2211. T0* _right_run_type=NULL;
  2212. T0* _left_run_type=NULL;
  2213. /*IF*/if (((((T629*)C))->_run_compound/*4*/)==((void*)(NULL))) {
  2214. C->_run_compound=a1;
  2215. _e=X662to_runnable((((T629*)C))->_left_side/*8*/,r629current_type(C));
  2216. /*IF*/if ((_e)==((void*)(NULL))) {
  2217. r629error(X662start_position((((T629*)C))->_left_side/*8*/),((T0*)ms62_470));
  2218. }
  2219. else {
  2220. C->_left_side=_e;
  2221. }
  2222. /*FI*/_e=X662to_runnable((((T629*)C))->_right_side/*12*/,r629current_type(C));
  2223. /*IF*/if ((_e)==((void*)(NULL))) {
  2224. r629error(X662start_position((((T629*)C))->_right_side/*12*/),((T0*)ms63_470));
  2225. }
  2226. else {
  2227. C->_right_side=_e;
  2228. }
  2229. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  2230. /*IF*/if (!(X662is_a((((T629*)C))->_right_side/*12*/,(((T629*)C))->_left_side/*8*/))) {
  2231. r629error(X662start_position((((T629*)C))->_left_side/*8*/),((T0*)ms2_629));
  2232. }
  2233. /*FI*/}
  2234. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  2235. _left_run_type=X291run_type(r629left_type(C));
  2236. _right_run_type=X291run_type(r629right_type(C));
  2237. /*IF*/if (X291is_reference(_left_run_type)) {
  2238. /*IF*/if (X291is_reference(_right_run_type)) {
  2239. }
  2240. else {
  2241. X291used_as_reference(_right_run_type);
  2242. }
  2243. /*FI*/}
  2244. else {
  2245. /*IF*/if (X291is_reference(_right_run_type)) {
  2246. /*IF*/if (X662is_void((((T629*)C))->_right_side/*12*/)) {
  2247. r683add_position(X662start_position((((T629*)C))->_right_side/*12*/));
  2248. /*[IRF3.6append*/{T0* b1=((T0*)ms3_629);
  2249. r7append(((T7*)(oBC683explanation)),b1);
  2250. }/*]*/
  2251. r683add_type(r629left_type(C),((T0*)ms4_629));
  2252. r683print_as_error(((T683*)(oBC364eh)));
  2253. }
  2254. else {
  2255. r629warning(X662start_position((((T629*)C))->_left_side/*8*/),((T0*)ms5_629));
  2256. }
  2257. /*FI*/}
  2258. /*FI*/}
  2259. /*FI*/}
  2260. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  2261. R=(T0*)C;
  2262. }
  2263. /*FI*/}
  2264. else {
  2265. {T629*n=malloc(sizeof(*n));
  2266. *n=M629;
  2267. r629make(n,(((T629*)C))->_left_side/*8*/,(((T629*)C))->_right_side/*12*/);
  2268. R=(T0*)n;
  2269. }
  2270. R=r629to_runnable(((T629*)R),a1);
  2271. }
  2272. /*FI*/return R;
  2273. }
  2274. /*No:ASSIGNMENT.fz_c_shift_right*/
  2275. T0* r629right_type(T629* C){
  2276. T0* R=NULL;
  2277. R=X662result_type((((T629*)C))->_right_side/*12*/);
  2278. return R;
  2279. }
  2280. /*No:ASSIGNMENT.left_side*/
  2281. /*No:ASSIGNMENT.fz_16*/
  2282. T0* r629current_type(T629* C){
  2283. T0* R=NULL;
  2284. /*IF*/if (((((T629*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
  2285. R=(((T592*)((T592*)((((T629*)C))->_run_compound/*4*/))))->_current_type/*4*/;
  2286. }
  2287. /*FI*/return R;
  2288. }
  2289. /*No:ASSIGNMENT.run_compound*/
  2290. int r629is_pre_computable(T629* C){
  2291. int R=0;
  2292. T0* _rf6=NULL;
  2293. T0* _call=NULL;
  2294. /*IF*/if (X662is_result((((T629*)C))->_left_side/*8*/)) {
  2295. /*IF*/if (X662is_pre_computable((((T629*)C))->_right_side/*12*/)) {
  2296. _call=(((T629*)C))->_right_side/*12*/;
  2297. if(NULL!=(_call))switch(((T0*)_call)->id) {
  2298. case 121: case 890: case 414: case 453: case 460: case 180: case 932: case 990: case 253: case 278: case 767: case 760: case 534: case 915: case 999: case 517: case 520: case 557: case 72: case 574: case 90: case 313: case 57: case 487: case 492: case 655: case 112: 
  2299. break;
  2300. default:
  2301. _call=NULL;
  2302. };/*IF*/if ((_call)!=((void*)(NULL))) {
  2303. _rf6=X295run_feature(_call);
  2304. if(NULL!=(_rf6))switch(((T0*)_rf6)->id) {
  2305. case 868: 
  2306. break;
  2307. default:
  2308. _rf6=NULL;
  2309. };R=(_rf6)==((void*)(NULL));
  2310. }
  2311. else {
  2312. R=1;
  2313. }
  2314. /*FI*/}
  2315. /*FI*/}
  2316. /*FI*/return R;
  2317. }
  2318. /*No:ASSIGNMENT.fz_cast_t0_star*/
  2319. int r629use_current(T629* C){
  2320. int R=0;
  2321. R=X662use_current((((T629*)C))->_left_side/*8*/);
  2322. R=(R)||(X662use_current((((T629*)C))->_right_side/*12*/));
  2323. return R;
  2324. }
  2325. /*No:ASSIGNMENT.right_side*/
  2326. /*No:ASSIGNMENT.fz_blhsoa*/
  2327. /*No:ASSIGNMENT.fz_brhsoa*/
  2328. void r629error(T0* a1,T0* a2){
  2329. r683add_position(a1);
  2330. r683error(((T683*)(oBC364eh)),a2);
  2331. }
  2332. /*No:ASSIGNMENT.fatal_error*/
  2333. /*No:ASSIGNMENT.end_mark_comment*/
  2334. void r629afd_check(T629* C){
  2335. X662afd_check((((T629*)C))->_right_side/*12*/);
  2336. }
  2337. T0* r629left_type(T629* C){
  2338. T0* R=NULL;
  2339. R=X662result_type((((T629*)C))->_left_side/*8*/);
  2340. return R;
  2341. }
  2342. void r629warning(T0* a1,T0* a2){
  2343. r683add_position(a1);
  2344. r683warning(((T683*)(oBC364eh)),a2);
  2345. }
  2346.  
  2347.