home *** CD-ROM | disk | FTP | other *** search
/ Amiga ACS 1998 #4 / amigaacscoverdisc1998-041998.iso / utilities / shareware / dev / ppcsmalleiffel / source.lha / bin_c / compile_to_jvm26.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  47.4 KB  |  1,533 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_jvm.h"
  9. void r59make(T59* C,T0* a1,T0* a2){
  10. C->_name=a1;
  11. C->_constraint=a2;
  12. }
  13. /*No:FORMAL_GENERIC_ARG.name*/
  14. /*No:FORMAL_GENERIC_ARG.start_position*/
  15. /*No:FORMAL_GENERIC_ARG.constraint*/
  16. /*No:PARENT.us_none*/
  17. void r877multiple_check(T877* C,T0* a1){
  18. T0* _fn2=NULL;
  19. T0* _fn1=NULL;
  20. int _i=0;
  21. T0* _bc2=NULL;
  22. T0* _bc1=NULL;
  23. _bc1=X291base_class((((T877*)C))->_type/*4*/);
  24. _bc2=X291base_class((((T877*)((T877*)a1)))->_type/*4*/);
  25. /*IF*/if ((((_bc1)==((void*)(_bc2)))||(r605is_subclass_of(((T605*)_bc1),_bc2)))||(r605is_subclass_of(((T605*)_bc2),_bc1))) {
  26. /*IF*/if (((((T877*)C))->_redefine_list/*24*/)!=((void*)(NULL))) {
  27. _i=/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T877*)C))->_redefine_list/*24*/))))->_list/*0*/))))->_upper/*8*//*)*/;
  28. while (!((_i)==(0))) {
  29. _fn1=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T877*)C))->_redefine_list/*24*/))))->_list/*0*/)),_i)/*)*/;
  30. /*IF*/if (((((T877*)((T877*)a1)))->_rename_list/*12*/)==((void*)(NULL))) {
  31. }
  32.  else if (r644affect(((T644*)((((T877*)((T877*)a1)))->_rename_list/*12*/)),_fn1)) {
  33. _fn2=r644to_new_name(((T644*)((((T877*)((T877*)a1)))->_rename_list/*12*/)),_fn1);
  34. /*IF*/if ((_fn2)!=((void*)(_fn1))) {
  35. /*IF*/if (((((T877*)C))->_select_list/*28*/)!=((void*)(NULL))) {
  36. /*IF*/if (r953has(((T953*)((((T877*)C))->_select_list/*28*/)),_fn1)) {
  37. /*IF*/if (((((T877*)((T877*)a1)))->_select_list/*28*/)!=((void*)(NULL))) {
  38. /*IF*/if (r953has(((T953*)((((T877*)((T877*)a1)))->_select_list/*28*/)),_fn2)) {
  39. r877select_conflict(_fn1,_fn2);
  40. }
  41. /*FI*/}
  42. /*FI*/}
  43.  else if (((((T877*)((T877*)a1)))->_select_list/*28*/)==((void*)(NULL))) {
  44. r877missing_select(_fn1,_fn2);
  45. }
  46.  else if (!(r953has(((T953*)((((T877*)((T877*)a1)))->_select_list/*28*/)),_fn2))) {
  47. r877missing_select(_fn1,_fn2);
  48. }
  49. /*FI*/}
  50.  else if (((((T877*)((T877*)a1)))->_select_list/*28*/)==((void*)(NULL))) {
  51. r877missing_select(_fn1,_fn2);
  52. }
  53.  else if (!(r953has(((T953*)((((T877*)((T877*)a1)))->_select_list/*28*/)),_fn2))) {
  54. r877missing_select(_fn1,_fn2);
  55. }
  56. /*FI*/}
  57. /*FI*/}
  58. /*FI*/_i=(_i)-(1);
  59. }
  60. }
  61. /*FI*/}
  62. /*FI*/}
  63. /*No:PARENT.us_integer*/
  64. void r877get_started(T877* C,T0* a1){
  65. int _all_check=0;
  66. T0* _new_fn=NULL;
  67. T0* _old_fn=NULL;
  68. T0* _fn=NULL;
  69. T0* _pbc=NULL;
  70. T0* _wbc=NULL;
  71. int _i=0;
  72. _all_check=r590all_check(((T590*)(oBC364run_control)));
  73. C->_parent_list=a1;
  74. _pbc=X291base_class((((T877*)C))->_type/*4*/);
  75. _wbc=(((T673*)((T673*)((((T877*)C))->_parent_list/*0*/))))->_base_class/*0*/;
  76. /*IF*/if ((_all_check)&&(((((T877*)C))->_rename_list/*12*/)!=((void*)(NULL)))) {
  77. r644get_started(((T644*)((((T877*)C))->_rename_list/*12*/)),_pbc);
  78. }
  79. /*FI*//*IF*/if ((_all_check)&&(((((T877*)C))->_undefine_list/*20*/)!=((void*)(NULL)))) {
  80. _i=/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T877*)C))->_undefine_list/*20*/))))->_list/*0*/))))->_upper/*8*//*)*/;
  81. while (!((_i)==(0))) {
  82. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T877*)C))->_undefine_list/*20*/))))->_list/*0*/)),_i)/*)*/;
  83. _old_fn=r877get_old_name(C,_fn);
  84. /*IF*/if (((_old_fn)==((void*)(NULL)))&&(!(r605has(((T605*)_pbc),_fn)))) {
  85. r683add_position(X776start_position(_fn));
  86. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms9_877);
  87. r683fatal_error(((T683*)(oBC364eh)),b1);
  88. }/*]*/
  89. }
  90. /*FI*/_i=(_i)-(1);
  91. }
  92. }
  93. /*FI*//*IF*/if (((((T877*)C))->_redefine_list/*24*/)!=((void*)(NULL))) {
  94. _i=/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T877*)C))->_redefine_list/*24*/))))->_list/*0*/))))->_upper/*8*//*)*/;
  95. while (!((_i)==(0))) {
  96. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T877*)C))->_redefine_list/*24*/))))->_list/*0*/)),_i)/*)*/;
  97. /*IF*/if (!(r605proper_has(((T605*)_wbc),_fn))) {
  98. r683add_position(X776start_position(_fn));
  99. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms10_877);
  100. r683fatal_error(((T683*)(oBC364eh)),b1);
  101. }/*]*/
  102. }
  103. /*FI*//*IF*/if (_all_check) {
  104. _old_fn=r877get_old_name(C,_fn);
  105. /*IF*/if (((_old_fn)==((void*)(NULL)))&&(!(r605has(((T605*)_pbc),_fn)))) {
  106. r683add_position(X776start_position(_fn));
  107. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms11_877);
  108. r683fatal_error(((T683*)(oBC364eh)),b1);
  109. }/*]*/
  110. }
  111. /*FI*/}
  112. /*FI*/_i=(_i)-(1);
  113. }
  114. }
  115. /*FI*//*IF*/if ((_all_check)&&(((((T877*)C))->_select_list/*28*/)!=((void*)(NULL)))) {
  116. _i=/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T877*)C))->_select_list/*28*/))))->_list/*0*/))))->_upper/*8*//*)*/;
  117. while (!((_i)==(0))) {
  118. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T877*)C))->_select_list/*28*/))))->_list/*0*/)),_i)/*)*/;
  119. _old_fn=r877get_old_name(C,_fn);
  120. /*IF*/if (((_old_fn)==((void*)(NULL)))&&(!(r605has(((T605*)_pbc),_fn)))) {
  121. r683add_position(X776start_position(_fn));
  122. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms16_877);
  123. r683fatal_error(((T683*)(oBC364eh)),b1);
  124. }/*]*/
  125. }
  126. /*FI*/_new_fn=r877get_new_name(C,_fn);
  127. /*IF*/if ((_new_fn)!=((void*)(NULL))) {
  128. /*IF*/if ((r877get_old_name(C,_new_fn))==((void*)(NULL))) {
  129. r683add_position(X776start_position(_new_fn));
  130. r683add_position(X776start_position(_fn));
  131. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms16_877);
  132. r683fatal_error(((T683*)(oBC364eh)),b1);
  133. }/*]*/
  134. }
  135. /*FI*/}
  136. /*FI*/_i=(_i)-(1);
  137. }
  138. }
  139. /*FI*/}
  140. /*No:PARENT.select_list*/
  141. /*No:PARENT.undefine_memory1*/
  142. T0* r877get_new_name(T877* C,T0* a1){
  143. T0* R=NULL;
  144. /*IF*/if (((((T877*)C))->_rename_list/*12*/)!=((void*)(NULL))) {
  145. R=r644to_new_name(((T644*)((((T877*)C))->_rename_list/*12*/)),a1);
  146. /*IF*/if ((R)==((void*)(a1))) {
  147. R=NULL;
  148. }
  149. /*FI*/}
  150. /*FI*/return R;
  151. }
  152. T0* r877get_old_name(T877* C,T0* a1){
  153. T0* R=NULL;
  154. /*IF*/if (((((T877*)C))->_rename_list/*12*/)!=((void*)(NULL))) {
  155. R=r644to_old_name(((T644*)((((T877*)C))->_rename_list/*12*/)),a1);
  156. /*IF*/if ((R)==((void*)(a1))) {
  157. R=NULL;
  158. }
  159. /*FI*/}
  160. /*FI*/return R;
  161. }
  162. void r877make(T877* C,T0* a1){
  163. C->_type=a1;
  164. /*IF*/if (r52fast_has(((T52*)(oBC877forbidden_parent_list)),X291written_mark((((T877*)C))->_type/*4*/))) {
  165. r683add_position(X291start_position((((T877*)C))->_type/*4*/));
  166. /*[IRF3.6append*/{T0* b1=((T0*)ms1_877);
  167. r7append(((T7*)(oBC683explanation)),b1);
  168. }/*]*/
  169. /*[IRF3.6append*/{T0* b1=X291written_mark((((T877*)C))->_type/*4*/);
  170. r7append(((T7*)(oBC683explanation)),b1);
  171. }/*]*/
  172. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_877);
  173. r683fatal_error(((T683*)(oBC364eh)),b1);
  174. }/*]*/
  175. }
  176. /*FI*/}
  177. /*No:PARENT.rename_list*/
  178. /*No:PARENT.parent_list*/
  179. /*No:PARENT.us_pointer*/
  180. void r877set_select(T877* C,T0* a1){
  181. {T953*n=malloc(sizeof(*n));
  182. *n=M953;
  183. r953make(n,a1);
  184. C->_select_list=(T0*)n;
  185. }
  186. }
  187. /*No:PARENT.type*/
  188. T0* r877going_down(T877* C,T0* a1,T0* a2){
  189. T0* R=NULL;
  190. T0* _previous=NULL;
  191. /*IF*/if (((((T877*)C))->_rename_list/*12*/)==((void*)(NULL))) {
  192. R=a2;
  193. }
  194. else {
  195. R=r644to_new_name(((T644*)((((T877*)C))->_rename_list/*12*/)),a2);
  196. }
  197. /*FI*//*IF*/if (!(r854empty(((T854*)a1)))) {
  198. _previous=r854last(((T854*)a1));
  199. r854remove_last(((T854*)a1));
  200. R=r877going_down(((T877*)_previous),a1,R);
  201. }
  202. /*FI*/return R;
  203. }
  204. /*No:PARENT.set_comment*/
  205. /*No:PARENT.undefine_memory2*/
  206. T0* r877start_position(T877* C){
  207. T0* R=NULL;
  208. R=X291start_position((((T877*)C))->_type/*4*/);
  209. return R;
  210. }
  211. /*No:PARENT.comment*/
  212. T0* r877do_rename(T877* C,T0* a1){
  213. T0* R=NULL;
  214. /*IF*/if (((((T877*)C))->_rename_list/*12*/)==((void*)(NULL))) {
  215. R=a1;
  216. }
  217. else {
  218. R=r644to_new_name(((T644*)((((T877*)C))->_rename_list/*12*/)),a1);
  219. }
  220. /*FI*/return R;
  221. }
  222. int r877has_select_for(T877* C,T0* a1){
  223. int R=0;
  224. /*IF*/if (((((T877*)C))->_select_list/*28*/)!=((void*)(NULL))) {
  225. R=r953has(((T953*)((((T877*)C))->_select_list/*28*/)),a1);
  226. }
  227. /*FI*/return R;
  228. }
  229. /*No:PARENT.export_list*/
  230. void r877add_rename(T877* C,T0* a1){
  231. /*IF*/if (((((T877*)C))->_rename_list/*12*/)==((void*)(NULL))) {
  232. {T644*n=malloc(sizeof(*n));
  233. *n=M644;
  234. /*[IRF3.3make*/((((T644*)(n)))->_list)=(se_ma552(1,a1));
  235. /*]*/
  236. C->_rename_list=(T0*)n;
  237. }
  238. }
  239. else {
  240. /*[IRF3.5add_last*/r552add_last(((T552*)((((T644*)((T644*)((((T877*)C))->_rename_list/*12*/))))->_list/*0*/)),a1);
  241. /*]*/
  242. }
  243. /*FI*/}
  244. /*No:PARENT.us_character*/
  245. /*No:PARENT.em1*/
  246. /*No:PARENT.us_real*/
  247. T0* r877up_to_original(T877* C,T0* a1,T0* a2){
  248. T0* R=NULL;
  249. T0* _bc=NULL;
  250. T0* _old_name=NULL;
  251. _bc=X291base_class((((T877*)C))->_type/*4*/);
  252. /*IF*/if (((((T877*)C))->_rename_list/*12*/)==((void*)(NULL))) {
  253. R=r605up_to_original(((T605*)_bc),a1,a2);
  254. }
  255.  else if (r644affect(((T644*)((((T877*)C))->_rename_list/*12*/)),a2)) {
  256. _old_name=r644to_old_name(((T644*)((((T877*)C))->_rename_list/*12*/)),a2);
  257. /*IF*/if ((_old_name)!=((void*)(a2))) {
  258. R=r605up_to_original(((T605*)_bc),a1,_old_name);
  259. }
  260. /*FI*/}
  261. else {
  262. R=r605up_to_original(((T605*)_bc),a1,a2);
  263. }
  264. /*FI*/return R;
  265. }
  266. void r877select_conflict(T0* a1,T0* a2){
  267. r683add_position(X776start_position(a1));
  268. r683add_position(X776start_position(a2));
  269. /*[IRF3.6append*/{T0* b1=((T0*)ms14_877);
  270. r7append(((T7*)(oBC683explanation)),b1);
  271. }/*]*/
  272. r683print_as_fatal_error(((T683*)(oBC364eh)));
  273. }
  274. T0* r877smallest_ancestor(T877* C,T0* a1){
  275. T0* R=NULL;
  276. /*IF*/if (X291is_generic((((T877*)C))->_type/*4*/)) {
  277. R=X291to_runnable((((T877*)C))->_type/*4*/,a1);
  278. }
  279. else {
  280. R=(((T877*)C))->_type/*4*/;
  281. }
  282. /*FI*/return R;
  283. }
  284. int r877has(T877* C,T0* a1){
  285. int R=0;
  286. /*IF*/if (((((T877*)C))->_rename_list/*12*/)==((void*)(NULL))) {
  287. R=r605has(((T605*)(X291base_class((((T877*)C))->_type/*4*/))),a1);
  288. }
  289. else {
  290. R=r605has(((T605*)(X291base_class((((T877*)C))->_type/*4*/))),r644to_old_name(((T644*)((((T877*)C))->_rename_list/*12*/)),a1));
  291. }
  292. /*FI*/return R;
  293. }
  294. void r877missing_select(T0* a1,T0* a2){
  295. r683add_position(X776start_position(a1));
  296. r683add_position(X776start_position(a2));
  297. /*[IRF3.6append*/{T0* b1=((T0*)ms15_877);
  298. r7append(((T7*)(oBC683explanation)),b1);
  299. }/*]*/
  300. r683print_as_fatal_error(((T683*)(oBC364eh)));
  301. }
  302. /*No:PARENT.us_bit*/
  303. /*No:PARENT.fz_09*/
  304. int r877has_redefine(T877* C,T0* a1){
  305. int R=0;
  306. /*IF*/if (((((T877*)C))->_redefine_list/*24*/)!=((void*)(NULL))) {
  307. R=r953has(((T953*)((((T877*)C))->_redefine_list/*24*/)),a1);
  308. }
  309. /*FI*/return R;
  310. }
  311. int r877has_undefine(T877* C,T0* a1){
  312. int R=0;
  313. /*IF*/if (((((T877*)C))->_undefine_list/*20*/)!=((void*)(NULL))) {
  314. R=r953has(((T953*)((((T877*)C))->_undefine_list/*20*/)),a1);
  315. }
  316. /*FI*/return R;
  317. }
  318. T0* r877look_up_for(T877* C,T0* a1,T0* a2){
  319. T0* R=NULL;
  320. T0* _f=NULL;
  321. T0* _fn2=NULL;
  322. /*IF*/if ((((((T877*)C))->_rename_list/*12*/)==((void*)(NULL)))||(!(r644affect(((T644*)((((T877*)C))->_rename_list/*12*/)),a2)))) {
  323. _f=X291look_up_for((((T877*)C))->_type/*4*/,a1,a2);
  324. R=r877apply_undefine(C,_f,a2);
  325. }
  326. else {
  327. _fn2=r644to_old_name(((T644*)((((T877*)C))->_rename_list/*12*/)),a2);
  328. /*IF*/if ((_fn2)!=((void*)(a2))) {
  329. _f=X291look_up_for((((T877*)C))->_type/*4*/,a1,_fn2);
  330. R=r877apply_undefine(C,_f,_fn2);
  331. }
  332. else {
  333. _f=X291look_up_for((((T877*)C))->_type/*4*/,a1,a2);
  334. /*IF*/if ((_f)==((void*)(NULL))) {
  335. r683add_position(X776start_position(a2));
  336. /*[IRF3.6append*/{T0* b1=((T0*)ms143_470);
  337. r7append(((T7*)(oBC683explanation)),b1);
  338. }/*]*/
  339. /*[IRF3.6append*/{T0* b1=X776to_string(a2);
  340. r7append(((T7*)(oBC683explanation)),b1);
  341. }/*]*/
  342. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms3_877);
  343. r683fatal_error(((T683*)(oBC364eh)),b1);
  344. }/*]*/
  345. }
  346. /*FI*/}
  347. /*FI*/}
  348. /*FI*/return R;
  349. }
  350. T0*oBC877forbidden_parent_list=NULL;
  351. /*No:PARENT.us_boolean*/
  352. /*No:PARENT.us_double*/
  353. T0* r877clients_for(T877* C,T0* a1){
  354. T0* R=NULL;
  355. T0* _old_fn=NULL;
  356. /*IF*/if (((((T877*)C))->_rename_list/*12*/)==((void*)(NULL))) {
  357. /*IF*/if (((((T877*)C))->_export_list/*16*/)==((void*)(NULL))) {
  358. R=r605clients_for(((T605*)(X291base_class((((T877*)C))->_type/*4*/))),a1);
  359. }
  360. else {
  361. R=r671clients_for(((T671*)((((T877*)C))->_export_list/*16*/)),a1);
  362. /*IF*/if ((R)==((void*)(NULL))) {
  363. R=r605clients_for(((T605*)(X291base_class((((T877*)C))->_type/*4*/))),a1);
  364. }
  365. /*FI*/}
  366. /*FI*/}
  367. else {
  368. _old_fn=r644to_old_name(((T644*)((((T877*)C))->_rename_list/*12*/)),a1);
  369. /*IF*/if (((((T877*)C))->_export_list/*16*/)==((void*)(NULL))) {
  370. R=r605clients_for(((T605*)(X291base_class((((T877*)C))->_type/*4*/))),_old_fn);
  371. }
  372. else {
  373. R=r671clients_for(((T671*)((((T877*)C))->_export_list/*16*/)),_old_fn);
  374. /*IF*/if ((R)==((void*)(NULL))) {
  375. R=r605clients_for(((T605*)(X291base_class((((T877*)C))->_type/*4*/))),_old_fn);
  376. }
  377. /*FI*/}
  378. /*FI*/}
  379. /*FI*/return R;
  380. }
  381. void r877set_redefine(T877* C,T0* a1){
  382. {T953*n=malloc(sizeof(*n));
  383. *n=M953;
  384. r953make(n,a1);
  385. C->_redefine_list=(T0*)n;
  386. }
  387. }
  388. void r877set_undefine(T877* C,T0* a1){
  389. {T953*n=malloc(sizeof(*n));
  390. *n=M953;
  391. r953make(n,a1);
  392. C->_undefine_list=(T0*)n;
  393. }
  394. }
  395. T0* r877going_up(T877* C,T0* a1,T0* a2,T0* a3){
  396. T0* R=NULL;
  397. T0* _bc=NULL;
  398. _bc=X291base_class((((T877*)C))->_type/*4*/);
  399. /*IF*/if ((_bc)==((void*)(a2))) {
  400. R=r877going_down(C,a1,a3);
  401. }
  402.  else if (r605is_general(((T605*)_bc))) {
  403. R=r877going_down(C,a1,a3);
  404. }
  405.  else if (r605is_subclass_of(((T605*)_bc),a2)) {
  406. r854add_last(((T854*)a1),(T0*)C);
  407. R=r605going_up(((T605*)_bc),a1,a2,a3);
  408. }
  409. /*FI*/return R;
  410. }
  411. int r877is_a_vncg(T877* C,T0* a1,T0* a2){
  412. int R=0;
  413. T0* _t2_bcn=NULL;
  414. T0* _type_bcn=NULL;
  415. T0* _t2_bc=NULL;
  416. T0* _type_bc=NULL;
  417. T0* _rt=NULL;
  418. T0* _tfg=NULL;
  419. T0* _gl2=NULL;
  420. T0* _gl1=NULL;
  421. T0* _gl=NULL;
  422. int _i=0;
  423. int _rank=0;
  424. _type_bc=X291base_class((((T877*)C))->_type/*4*/);
  425. _type_bcn=(((T451*)((T451*)((((T605*)((T605*)_type_bc)))->_base_class_name/*24*/))))->_to_string/*0*/;
  426. _t2_bc=X291base_class(a2);
  427. _t2_bcn=(((T451*)((T451*)((((T605*)((T605*)_t2_bc)))->_base_class_name/*24*/))))->_to_string/*0*/;
  428. /*IF*/if ((_type_bcn)==((void*)(_t2_bcn))) {
  429. _gl=X291generic_list((((T877*)C))->_type/*4*/);
  430. _gl2=X291generic_list(a2);
  431. /*IF*/if (((_gl)==((void*)(NULL)))||((r701count(((T701*)_gl)))!=(r701count(((T701*)_gl2))))) {
  432. r683add_position(X291start_position((((T877*)C))->_type/*4*/));
  433. r683add_position(X291start_position(a2));
  434. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms4_877);
  435. r683fatal_error(((T683*)(oBC364eh)),b1);
  436. }/*]*/
  437. }
  438. /*FI*//*IF*/if (X291is_generic(a1)) {
  439. _gl1=X291generic_list(a1);
  440. R=1;
  441. _i=r701count(((T701*)_gl2));
  442. while (!((!(R))||((_i)==(0)))) {
  443. /*IF*/if (X291is_formal_generic(r701item(((T701*)_gl),_i))) {
  444. _tfg=r701item(((T701*)_gl),_i);
  445. if(NULL!=(_tfg))switch(((T0*)_tfg)->id) {
  446. case 283: 
  447. break;
  448. default:
  449. _tfg=NULL;
  450. };_rank=(((T283*)((T283*)_tfg)))->_rank/*8*/;
  451. R=X291is_a(r701item(((T701*)_gl1),_rank),r701item(((T701*)_gl2),_i));
  452. }
  453. else {
  454. _rt=X291run_type(X291to_runnable(r701item(((T701*)_gl),_i),a1));
  455. R=X291is_a(_rt,r701item(((T701*)_gl2),_i));
  456. }
  457. /*FI*/_i=(_i)-(1);
  458. }
  459. }
  460. else {
  461. R=X291is_a((((T877*)C))->_type/*4*/,a2);
  462. }
  463. /*FI*//*IF*/if (!(R)) {
  464. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
  465. /*]*/
  466. r38clear(((T38*)(oBC683positions)));
  467. /*]*/
  468. }
  469. /*FI*/}
  470.  else if (r605is_subclass_of(((T605*)_type_bc),_t2_bc)) {
  471. /*IF*/if (X291is_generic(a1)) {
  472. _rt=X291run_type(X291to_runnable((((T877*)C))->_type/*4*/,a1));
  473. R=r605is_a_vncg(((T605*)_type_bc),_rt,a2);
  474. }
  475. else {
  476. R=r605is_a_vncg(((T605*)_type_bc),(((T877*)C))->_type/*4*/,a2);
  477. }
  478. /*FI*//*IF*/if (!(R)) {
  479. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
  480. /*]*/
  481. r38clear(((T38*)(oBC683positions)));
  482. /*]*/
  483. }
  484. /*FI*/}
  485. /*FI*/return R;
  486. }
  487. void r877collect_for(T877* C,int a1,T0* a2){
  488. T0* _fn2=NULL;
  489. /*IF*/if ((((((T877*)C))->_rename_list/*12*/)==((void*)(NULL)))||(!(r644affect(((T644*)((((T877*)C))->_rename_list/*12*/)),a2)))) {
  490. r605collect_for(((T605*)(X291base_class((((T877*)C))->_type/*4*/))),a1,a2);
  491. }
  492. else {
  493. _fn2=r644to_old_name(((T644*)((((T877*)C))->_rename_list/*12*/)),a2);
  494. /*IF*/if ((_fn2)!=((void*)(a2))) {
  495. r605collect_for(((T605*)(X291base_class((((T877*)C))->_type/*4*/))),a1,_fn2);
  496. }
  497. /*FI*/}
  498. /*FI*/}
  499. /*No:PARENT.fatal_error*/
  500. /*No:PARENT.redefine_list*/
  501. /*No:PARENT.us_native_array*/
  502. /*No:PARENT.set_export*/
  503. T0* r877apply_undefine(T877* C,T0* a1,T0* a2){
  504. T0* R=NULL;
  505. int _index=0;
  506. T0* _fnkey=NULL;
  507. /*IF*/if (r877has_undefine(C,a2)) {
  508. _fnkey=X776to_key(a2);
  509. /*IF*/if (((((T877*)C))->_undefine_memory1/*32*/)==((void*)(NULL))) {
  510. C->_undefine_memory1=se_ma52(1,_fnkey);
  511. R=X359try_to_undefine(a1,a2,(((T673*)((T673*)((((T877*)C))->_parent_list/*0*/))))->_base_class/*0*/);
  512. C->_undefine_memory2=se_ma495(1,R);
  513. }
  514. else {
  515. _index=r52fast_index_of(((T52*)((((T877*)C))->_undefine_memory1/*32*/)),_fnkey);
  516. /*IF*/if ((_index)>((((T52*)((T52*)((((T877*)C))->_undefine_memory1/*32*/))))->_upper/*8*/)) {
  517. r52add_last(((T52*)((((T877*)C))->_undefine_memory1/*32*/)),_fnkey);
  518. R=X359try_to_undefine(a1,a2,(((T673*)((T673*)((((T877*)C))->_parent_list/*0*/))))->_base_class/*0*/);
  519. r495add_last(((T495*)((((T877*)C))->_undefine_memory2/*36*/)),R);
  520. }
  521. else {
  522. R=r495item(((T495*)((((T877*)C))->_undefine_memory2/*36*/)),_index);
  523. }
  524. /*FI*/}
  525. /*FI*/}
  526. else {
  527. R=a1;
  528. }
  529. /*FI*/return R;
  530. }
  531. /*No:PARENT.undefine_list*/
  532. /*No:CALL_INFIX_PLUS.arguments*/
  533. T0* r253add_comment(T253* C,T0* a1){
  534. T0* R=NULL;
  535. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  536. R=(T0*)C;
  537. }
  538. else {
  539. {T529*n=malloc(sizeof(*n));
  540. *n=M529;
  541. r529make(n,(T0*)C,a1);
  542. R=(T0*)n;
  543. }
  544. }
  545. /*FI*/return R;
  546. }
  547. int r253to_integer(T253* C){
  548. int R=0;
  549. r253error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T253*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  550. return R;
  551. }
  552. int r253is_a(T253* C,T0* a1){
  553. int R=0;
  554. R=X291is_a(X291run_type((((T253*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
  555. /*IF*/if (!(R)) {
  556. r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T253*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/);
  557. r253error(X662start_position(a1),((T0*)ms4_662));
  558. }
  559. /*FI*/return R;
  560. }
  561. /*No:CALL_INFIX_PLUS.is_current*/
  562. /*No:CALL_INFIX_PLUS.jvm_branch_if_false*/
  563. /*No:CALL_INFIX_PLUS.static_value*/
  564. void r253make(T253* C,T0* a1,T0* a2,T0* a3){
  565. T0* _eal=NULL;
  566. /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
  567. r683add_position(a2);
  568. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
  569. r683fatal_error(((T683*)(oBC364eh)),b1);
  570. }/*]*/
  571. }
  572. /*FI*/{T454*n=malloc(sizeof(*n));
  573. *n=M454;
  574. r454make(n,r253operator(),a2);
  575. C->_feature_name=(T0*)n;
  576. }
  577. {T431*n=malloc(sizeof(*n));
  578. *n=M431;
  579. /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
  580. /*]*/
  581. _eal=(T0*)n;
  582. }
  583. r253make_call_1(C,a1,(((T253*)C))->_feature_name/*28*/,_eal);
  584. }
  585. /*No:CALL_INFIX_PLUS.nb_errors*/
  586. /*No:CALL_INFIX_PLUS.feature_name*/
  587. /*No:CALL_INFIX_PLUS.compile_to_jvm_assignment*/
  588. /*No:CALL_INFIX_PLUS.fz_iinaiv*/
  589. /*No:CALL_INFIX_PLUS.arg_count*/
  590. /*No:CALL_INFIX_PLUS.jvm_branch_if_true*/
  591. /*No:CALL_INFIX_PLUS.run_feature*/
  592. /*No:CALL_INFIX_PLUS.start_position*/
  593. void r253compile_to_jvm_old(T253* C){
  594. X662compile_to_jvm_old((((T253*)C))->_target/*12*/);
  595. /*IF*/{/*AT*/r431compile_to_jvm_old(((T431*)((((T253*)C))->_arguments/*24*/)));
  596. }
  597. /*FI*/}
  598. /*No:CALL_INFIX_PLUS.target*/
  599. T0* r253to_runnable(T253* C,T0* a1){
  600. T0* R=NULL;
  601. T0* _tla=NULL;
  602. T0* _a=NULL;
  603. /*IF*/if (((((T253*)C))->_current_type/*8*/)==((void*)(NULL))) {
  604. r253to_runnable_0(C,a1);
  605. _a=r431to_runnable(((T431*)((((T253*)C))->_arguments/*24*/)),a1);
  606. /*IF*/if ((_a)==((void*)(NULL))) {
  607. r253error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T253*)C))->_arguments/*24*/)))/*)*/),((T0*)ms55_470));
  608. }
  609. else {
  610. C->_arguments=_a;
  611. }
  612. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  613. r431match_with(((T431*)((((T253*)C))->_arguments/*24*/)),(((T253*)C))->_run_feature/*16*/);
  614. }
  615. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  616. _tla=(((T253*)C))->_result_type/*20*/;
  617. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  618. case 239: 
  619. break;
  620. default:
  621. _tla=NULL;
  622. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  623. C->_result_type=X291run_type(X662result_type(/*(IRF4.6arg1*/r431first(((T431*)((((T253*)C))->_arguments/*24*/)))/*)*/));
  624. }
  625. /*FI*/}
  626. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  627. R=(T0*)C;
  628. }
  629. /*FI*/}
  630. else {
  631. R=r253twin(C);
  632. /*[IRF3.3set_current_type*/((((T253*)(((T253*)R))))->_current_type)=(NULL);
  633. /*]*/
  634. R=r253to_runnable(((T253*)R),a1);
  635. }
  636. /*FI*/return R;
  637. }
  638. /*No:CALL_INFIX_PLUS.result_type*/
  639. /*No:CALL_INFIX_PLUS.is_result*/
  640. T0* r253twin(T253* C){
  641. T0* R=NULL;
  642. R=malloc(sizeof(*C));
  643. *((T253*)R)=*C;
  644. return R;
  645. }
  646. /*No:CALL_INFIX_PLUS.set_current_type*/
  647. T0* r253operator(void){
  648. T0* R=NULL;
  649. R=((T0*)ms43_473);
  650. return R;
  651. }
  652. int r253is_static(T253* C){
  653. int R=0;
  654. /*IF*/if (X291is_integer((((T253*)C))->_result_type/*20*/)) {
  655. /*IF*/if ((X662is_static((((T253*)C))->_target/*12*/))&&(X662is_static(/*(IRF4.6arg1*/r431first(((T431*)((((T253*)C))->_arguments/*24*/)))/*)*/))) {
  656. R=1;
  657. C->_static_value_mem=(X662static_value((((T253*)C))->_target/*12*/))+(X662static_value(/*(IRF4.6arg1*/r431first(((T431*)((((T253*)C))->_arguments/*24*/)))/*)*/));
  658. }
  659. /*FI*/}
  660. /*FI*/return R;
  661. }
  662. void r253standard_compile_target_to_jvm(T253* C){
  663. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T253* C1=C;
  664. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  665. }/*]*/
  666. /*]*/
  667. X291jvm_check_class_invariant((((T253*)C))->_result_type/*20*/);
  668. }
  669. int r253compile_to_jvm_into(T253* C,T0* a1){
  670. int R=0;
  671. R=r253standard_compile_to_jvm_into(C,a1);
  672. return R;
  673. }
  674. /*No:CALL_INFIX_PLUS.compile_target_to_jvm*/
  675. /*No:CALL_INFIX_PLUS.fz_07*/
  676. /*No:CALL_INFIX_PLUS.can_be_dropped*/
  677. /*No:CALL_INFIX_PLUS.current_type*/
  678. /*No:CALL_INFIX_PLUS.jvm_assign*/
  679. /*No:CALL_INFIX_PLUS.static_value_mem*/
  680. void r253make_call_1(T253* C,T0* a1,T0* a2,T0* a3){
  681. C->_target=a1;
  682. C->_feature_name=a2;
  683. C->_arguments=a3;
  684. }
  685. /*No:CALL_INFIX_PLUS.is_manifest_string*/
  686. /*No:CALL_INFIX_PLUS.is_void*/
  687. int r253jvm_standard_branch_if_false(T253* C){
  688. int R=0;
  689. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T253* C1=C;
  690. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  691. }/*]*/
  692. /*]*/
  693. R=r256opcode_ifeq(((T256*)(oBC364code_attribute)));
  694. return R;
  695. }
  696. /*No:CALL_INFIX_PLUS.compile_to_jvm*/
  697. void r253to_runnable_0(T253* C,T0* a1){
  698. C->_current_type=a1;
  699. r253cpc_to_runnable(C,a1);
  700. C->_result_type=/*X496*/((T0*)(((T832*)((T832*)((((T253*)C))->_run_feature/*16*/))))->_result_type/*24*/);
  701. /*IF*/if (((((T253*)C))->_result_type/*20*/)==((void*)(NULL))) {
  702. r683add_position(X496start_position((((T253*)C))->_run_feature/*16*/));
  703. r253error((((T454*)((T454*)((((T253*)C))->_feature_name/*28*/))))->_start_position/*8*/,((T0*)ms1_295));
  704. }
  705.  else if (X291is_like_current((((T253*)C))->_result_type/*20*/)) {
  706. C->_result_type=X662result_type((((T253*)C))->_target/*12*/);
  707. }
  708. /*FI*/}
  709. /*No:CALL_INFIX_PLUS.is_pre_computable*/
  710. int r253jvm_standard_branch_if_true(T253* C){
  711. int R=0;
  712. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T253* C1=C;
  713. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  714. }/*]*/
  715. /*]*/
  716. R=r256opcode_ifne(((T256*)(oBC364code_attribute)));
  717. return R;
  718. }
  719. int r253use_current(T253* C){
  720. int R=0;
  721. /*IF*/{/*AT*/R=r431use_current(((T431*)((((T253*)C))->_arguments/*24*/)));
  722. }
  723. /*FI*//*IF*/if (R) {
  724. }
  725.  else if (X662is_current((((T253*)C))->_target/*12*/)) {
  726. R=X496use_current((((T253*)C))->_run_feature/*16*/);
  727. }
  728. else {
  729. R=X662use_current((((T253*)C))->_target/*12*/);
  730. }
  731. /*FI*/return R;
  732. }
  733. void r253cpc_to_runnable(T253* C,T0* a1){
  734. T0* _rc=NULL;
  735. T0* _t=NULL;
  736. _t=X662to_runnable((((T253*)C))->_target/*12*/,a1);
  737. /*IF*/if ((_t)==((void*)(NULL))) {
  738. r683add_position(X662start_position((((T253*)C))->_target/*12*/));
  739. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  740. r683fatal_error(((T683*)(oBC364eh)),b1);
  741. }/*]*/
  742. }
  743. /*FI*/C->_target=_t;
  744. _rc=X291run_class(X662result_type((((T253*)C))->_target/*12*/));
  745. C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C);
  746. r576update((((T253*)C))->_target/*12*/,(((T253*)C))->_run_feature/*16*/);
  747. }
  748. void r253error(T0* a1,T0* a2){
  749. r683add_position(a1);
  750. r683error(((T683*)(oBC364eh)),a2);
  751. }
  752. int r253isa_dca_inline_argument(T253* C){
  753. int R=0;
  754. /*IF*/if (X291is_integer((((T253*)C))->_result_type/*20*/)) {
  755. R=X662isa_dca_inline_argument((((T253*)C))->_target/*12*/);
  756. /*IF*/if ((R)==(-(1))) {
  757. R=X662isa_dca_inline_argument(/*(IRF4.6arg1*/r431first(((T431*)((((T253*)C))->_arguments/*24*/)))/*)*/);
  758. }
  759.  else if ((R)>(0)) {
  760. /*IF*/if ((X662isa_dca_inline_argument(/*(IRF4.6arg1*/r431first(((T431*)((((T253*)C))->_arguments/*24*/)))/*)*/))>=(0)) {
  761. R=0;
  762. }
  763. /*FI*/}
  764. /*FI*/}
  765. /*FI*/return R;
  766. }
  767. /*No:CALL_INFIX_PLUS.fatal_error*/
  768. /*No:CALL_INFIX_PLUS.fz_bad_argument*/
  769. /*No:CALL_INFIX_PLUS.us_plus*/
  770. /*No:CALL_INFIX_PLUS.arg1*/
  771. int r253standard_compile_to_jvm_into(T253* C,T0* a1){
  772. int R=0;
  773. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T253* C1=C;
  774. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  775. }/*]*/
  776. /*]*/
  777. R=X291jvm_convert_to(X291run_type((((T253*)C))->_result_type/*20*/),a1);
  778. return R;
  779. }
  780. /*No:CALL_INFIX_PLUS.call_proc_call_c2jvm*/
  781. void r253afd_check(T253* C){
  782. T0* _running=NULL;
  783. T0* _rc=NULL;
  784. _rc=X291run_class(X662result_type((((T253*)C))->_target/*12*/));
  785. _running=(((T355*)((T355*)_rc)))->_running/*12*/;
  786. /*IF*/if ((_running)==((void*)(NULL))) {
  787. r683add_position(X662start_position((((T253*)C))->_target/*12*/));
  788. /*[IRF3.6append*/{T0* b1=((T0*)ms1_135);
  789. r7append(((T7*)(oBC683explanation)),b1);
  790. }/*]*/
  791. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/);
  792. r7append(((T7*)(oBC683explanation)),b1);
  793. }/*]*/
  794. /*[IRF3.6append*/{T0* b1=((T0*)ms141_470);
  795. r7append(((T7*)(oBC683explanation)),b1);
  796. }/*]*/
  797. r683print_as_warning(((T683*)(oBC364eh)));
  798. r355set_at_run_time(((T355*)_rc));
  799. }
  800.  else if ((r396count(((T396*)_running)))>(0)) {
  801. r576update((((T253*)C))->_target/*12*/,(((T253*)C))->_run_feature/*16*/);
  802. }
  803. /*FI*/X662afd_check((((T253*)C))->_target/*12*/);
  804. /*IF*/{/*AT*/r431afd_check(((T431*)((((T253*)C))->_arguments/*24*/)));
  805. }
  806. /*FI*/}
  807. T0*oBC670std_fr1=NULL;
  808. void r670mkdir(T0* a1){
  809. void* _p=0;
  810. _p=r7to_external(((T7*)a1));
  811. mkdir((char*)_p,511);}
  812. int r670is_readable(T0* a1){
  813. int R=0;
  814. r675connect_to(((T675*)(oBC670std_fr1)),a1);
  815. R=/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC670std_fr1))))->_path/*4*/)!=(NULL)/*)*/;
  816. /*IF*/if (R) {
  817. r675disconnect(((T675*)(oBC670std_fr1)));
  818. }
  819. /*FI*/return R;
  820. }
  821. /*No:CALL_INFIX_OR_ELSE.arguments*/
  822. T0* r278add_comment(T278* C,T0* a1){
  823. T0* R=NULL;
  824. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  825. R=(T0*)C;
  826. }
  827. else {
  828. {T529*n=malloc(sizeof(*n));
  829. *n=M529;
  830. r529make(n,(T0*)C,a1);
  831. R=(T0*)n;
  832. }
  833. }
  834. /*FI*/return R;
  835. }
  836. int r278to_integer(T278* C){
  837. int R=0;
  838. r278error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T278*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  839. return R;
  840. }
  841. int r278is_a(T278* C,T0* a1){
  842. int R=0;
  843. R=X291is_a(X291run_type((((T278*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
  844. /*IF*/if (!(R)) {
  845. r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T278*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/);
  846. r278error(X662start_position(a1),((T0*)ms4_662));
  847. }
  848. /*FI*/return R;
  849. }
  850. /*No:CALL_INFIX_OR_ELSE.is_current*/
  851. /*No:CALL_INFIX_OR_ELSE.jvm_branch_if_false*/
  852. /*No:CALL_INFIX_OR_ELSE.static_value*/
  853. void r278make(T278* C,T0* a1,T0* a2,T0* a3){
  854. T0* _eal=NULL;
  855. /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
  856. r683add_position(a2);
  857. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
  858. r683fatal_error(((T683*)(oBC364eh)),b1);
  859. }/*]*/
  860. }
  861. /*FI*/{T454*n=malloc(sizeof(*n));
  862. *n=M454;
  863. r454make(n,r278operator(),a2);
  864. C->_feature_name=(T0*)n;
  865. }
  866. {T431*n=malloc(sizeof(*n));
  867. *n=M431;
  868. /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
  869. /*]*/
  870. _eal=(T0*)n;
  871. }
  872. r278make_call_1(C,a1,(((T278*)C))->_feature_name/*28*/,_eal);
  873. }
  874. /*No:CALL_INFIX_OR_ELSE.nb_errors*/
  875. /*No:CALL_INFIX_OR_ELSE.feature_name*/
  876. /*No:CALL_INFIX_OR_ELSE.compile_to_jvm_assignment*/
  877. /*No:CALL_INFIX_OR_ELSE.fz_iinaiv*/
  878. /*No:CALL_INFIX_OR_ELSE.arg_count*/
  879. /*No:CALL_INFIX_OR_ELSE.jvm_branch_if_true*/
  880. /*No:CALL_INFIX_OR_ELSE.run_feature*/
  881. /*No:CALL_INFIX_OR_ELSE.start_position*/
  882. void r278compile_to_jvm_old(T278* C){
  883. X662compile_to_jvm_old((((T278*)C))->_target/*12*/);
  884. /*IF*/{/*AT*/r431compile_to_jvm_old(((T431*)((((T278*)C))->_arguments/*24*/)));
  885. }
  886. /*FI*/}
  887. /*No:CALL_INFIX_OR_ELSE.us_or_else*/
  888. /*No:CALL_INFIX_OR_ELSE.target*/
  889. T0* r278to_runnable(T278* C,T0* a1){
  890. T0* R=NULL;
  891. T0* _tla=NULL;
  892. T0* _a=NULL;
  893. /*IF*/if (((((T278*)C))->_current_type/*8*/)==((void*)(NULL))) {
  894. r278to_runnable_0(C,a1);
  895. _a=r431to_runnable(((T431*)((((T278*)C))->_arguments/*24*/)),a1);
  896. /*IF*/if ((_a)==((void*)(NULL))) {
  897. r278error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T278*)C))->_arguments/*24*/)))/*)*/),((T0*)ms55_470));
  898. }
  899. else {
  900. C->_arguments=_a;
  901. }
  902. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  903. r431match_with(((T431*)((((T278*)C))->_arguments/*24*/)),(((T278*)C))->_run_feature/*16*/);
  904. }
  905. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  906. _tla=(((T278*)C))->_result_type/*20*/;
  907. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  908. case 239: 
  909. break;
  910. default:
  911. _tla=NULL;
  912. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  913. C->_result_type=X291run_type(X662result_type(/*(IRF4.6arg1*/r431first(((T431*)((((T278*)C))->_arguments/*24*/)))/*)*/));
  914. }
  915. /*FI*/}
  916. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  917. R=(T0*)C;
  918. }
  919. /*FI*/}
  920. else {
  921. R=r278twin(C);
  922. /*[IRF3.3set_current_type*/((((T278*)(((T278*)R))))->_current_type)=(NULL);
  923. /*]*/
  924. R=r278to_runnable(((T278*)R),a1);
  925. }
  926. /*FI*/return R;
  927. }
  928. /*No:CALL_INFIX_OR_ELSE.result_type*/
  929. /*No:CALL_INFIX_OR_ELSE.is_result*/
  930. T0* r278twin(T278* C){
  931. T0* R=NULL;
  932. R=malloc(sizeof(*C));
  933. *((T278*)R)=*C;
  934. return R;
  935. }
  936. /*No:CALL_INFIX_OR_ELSE.set_current_type*/
  937. T0* r278operator(void){
  938. T0* R=NULL;
  939. R=((T0*)ms42_473);
  940. return R;
  941. }
  942. int r278is_static(T278* C){
  943. int R=0;
  944. /*IF*/if (X291is_boolean(X662result_type((((T278*)C))->_target/*12*/))) {
  945. /*IF*/if (X662is_static((((T278*)C))->_target/*12*/)) {
  946. /*IF*/if ((X662static_value((((T278*)C))->_target/*12*/))==(1)) {
  947. R=1;
  948. C->_static_value_mem=1;
  949. }
  950. else {
  951. R=X662is_static(/*(IRF4.6arg1*/r431first(((T431*)((((T278*)C))->_arguments/*24*/)))/*)*/);
  952. C->_static_value_mem=X662static_value(/*(IRF4.6arg1*/r431first(((T431*)((((T278*)C))->_arguments/*24*/)))/*)*/);
  953. }
  954. /*FI*/}
  955. /*FI*/}
  956. /*FI*/return R;
  957. }
  958. void r278standard_compile_target_to_jvm(T278* C){
  959. r278compile_to_jvm(C);
  960. X291jvm_check_class_invariant((((T278*)C))->_result_type/*20*/);
  961. }
  962. int r278compile_to_jvm_into(T278* C,T0* a1){
  963. int R=0;
  964. R=r278standard_compile_to_jvm_into(C,a1);
  965. return R;
  966. }
  967. /*No:CALL_INFIX_OR_ELSE.compile_target_to_jvm*/
  968. /*No:CALL_INFIX_OR_ELSE.fz_07*/
  969. /*No:CALL_INFIX_OR_ELSE.can_be_dropped*/
  970. /*No:CALL_INFIX_OR_ELSE.current_type*/
  971. /*No:CALL_INFIX_OR_ELSE.jvm_assign*/
  972. /*No:CALL_INFIX_OR_ELSE.static_value_mem*/
  973. void r278make_call_1(T278* C,T0* a1,T0* a2,T0* a3){
  974. C->_target=a1;
  975. C->_feature_name=a2;
  976. C->_arguments=a3;
  977. }
  978. /*No:CALL_INFIX_OR_ELSE.is_manifest_string*/
  979. /*No:CALL_INFIX_OR_ELSE.is_void*/
  980. int r278jvm_standard_branch_if_false(T278* C){
  981. int R=0;
  982. r278compile_to_jvm(C);
  983. R=r256opcode_ifeq(((T256*)(oBC364code_attribute)));
  984. return R;
  985. }
  986. void r278compile_to_jvm(T278* C){
  987. int _point2=0;
  988. int _point1=0;
  989. X662compile_to_jvm((((T278*)C))->_target/*12*/);
  990. _point1=r256opcode_ifne(((T256*)(oBC364code_attribute)));
  991. X662compile_to_jvm(/*(IRF4.6arg1*/r431first(((T431*)((((T278*)C))->_arguments/*24*/)))/*)*/);
  992. _point2=r256opcode_goto(((T256*)(oBC364code_attribute)));
  993. r256resolve_u2_branch(_point1);
  994. /*[IRF3.4opcode_iconst_1*/r256opcode(((T256*)(oBC364code_attribute)),4,1);
  995. /*]*/
  996. r256resolve_u2_branch(_point2);
  997. }
  998. void r278to_runnable_0(T278* C,T0* a1){
  999. C->_current_type=a1;
  1000. r278cpc_to_runnable(C,a1);
  1001. C->_result_type=/*X496*/((T0*)(((T832*)((T832*)((((T278*)C))->_run_feature/*16*/))))->_result_type/*24*/);
  1002. /*IF*/if (((((T278*)C))->_result_type/*20*/)==((void*)(NULL))) {
  1003. r683add_position(X496start_position((((T278*)C))->_run_feature/*16*/));
  1004. r278error((((T454*)((T454*)((((T278*)C))->_feature_name/*28*/))))->_start_position/*8*/,((T0*)ms1_295));
  1005. }
  1006.  else if (X291is_like_current((((T278*)C))->_result_type/*20*/)) {
  1007. C->_result_type=X662result_type((((T278*)C))->_target/*12*/);
  1008. }
  1009. /*FI*/}
  1010. /*No:CALL_INFIX_OR_ELSE.is_pre_computable*/
  1011. int r278jvm_standard_branch_if_true(T278* C){
  1012. int R=0;
  1013. r278compile_to_jvm(C);
  1014. R=r256opcode_ifne(((T256*)(oBC364code_attribute)));
  1015. return R;
  1016. }
  1017. int r278use_current(T278* C){
  1018. int R=0;
  1019. /*IF*/{/*AT*/R=r431use_current(((T431*)((((T278*)C))->_arguments/*24*/)));
  1020. }
  1021. /*FI*//*IF*/if (R) {
  1022. }
  1023.  else if (X662is_current((((T278*)C))->_target/*12*/)) {
  1024. R=X496use_current((((T278*)C))->_run_feature/*16*/);
  1025. }
  1026. else {
  1027. R=X662use_current((((T278*)C))->_target/*12*/);
  1028. }
  1029. /*FI*/return R;
  1030. }
  1031. void r278cpc_to_runnable(T278* C,T0* a1){
  1032. T0* _rc=NULL;
  1033. T0* _t=NULL;
  1034. _t=X662to_runnable((((T278*)C))->_target/*12*/,a1);
  1035. /*IF*/if ((_t)==((void*)(NULL))) {
  1036. r683add_position(X662start_position((((T278*)C))->_target/*12*/));
  1037. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  1038. r683fatal_error(((T683*)(oBC364eh)),b1);
  1039. }/*]*/
  1040. }
  1041. /*FI*/C->_target=_t;
  1042. _rc=X291run_class(X662result_type((((T278*)C))->_target/*12*/));
  1043. C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C);
  1044. r576update((((T278*)C))->_target/*12*/,(((T278*)C))->_run_feature/*16*/);
  1045. }
  1046. void r278error(T0* a1,T0* a2){
  1047. r683add_position(a1);
  1048. r683error(((T683*)(oBC364eh)),a2);
  1049. }
  1050. /*No:CALL_INFIX_OR_ELSE.isa_dca_inline_argument*/
  1051. /*No:CALL_INFIX_OR_ELSE.fatal_error*/
  1052. /*No:CALL_INFIX_OR_ELSE.fz_bad_argument*/
  1053. /*No:CALL_INFIX_OR_ELSE.arg1*/
  1054. int r278standard_compile_to_jvm_into(T278* C,T0* a1){
  1055. int R=0;
  1056. r278compile_to_jvm(C);
  1057. R=X291jvm_convert_to(X291run_type((((T278*)C))->_result_type/*20*/),a1);
  1058. return R;
  1059. }
  1060. void r278afd_check(T278* C){
  1061. T0* _running=NULL;
  1062. T0* _rc=NULL;
  1063. _rc=X291run_class(X662result_type((((T278*)C))->_target/*12*/));
  1064. _running=(((T355*)((T355*)_rc)))->_running/*12*/;
  1065. /*IF*/if ((_running)==((void*)(NULL))) {
  1066. r683add_position(X662start_position((((T278*)C))->_target/*12*/));
  1067. /*[IRF3.6append*/{T0* b1=((T0*)ms1_135);
  1068. r7append(((T7*)(oBC683explanation)),b1);
  1069. }/*]*/
  1070. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/);
  1071. r7append(((T7*)(oBC683explanation)),b1);
  1072. }/*]*/
  1073. /*[IRF3.6append*/{T0* b1=((T0*)ms141_470);
  1074. r7append(((T7*)(oBC683explanation)),b1);
  1075. }/*]*/
  1076. r683print_as_warning(((T683*)(oBC364eh)));
  1077. r355set_at_run_time(((T355*)_rc));
  1078. }
  1079.  else if ((r396count(((T396*)_running)))>(0)) {
  1080. r576update((((T278*)C))->_target/*12*/,(((T278*)C))->_run_feature/*16*/);
  1081. }
  1082. /*FI*/X662afd_check((((T278*)C))->_target/*12*/);
  1083. /*IF*/{/*AT*/r431afd_check(((T431*)((((T278*)C))->_arguments/*24*/)));
  1084. }
  1085. /*FI*/}
  1086. /*No:CALL_PREFIX_PLUS.arguments*/
  1087. T0* r767add_comment(T767* C,T0* a1){
  1088. T0* R=NULL;
  1089. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1090. R=(T0*)C;
  1091. }
  1092. else {
  1093. {T529*n=malloc(sizeof(*n));
  1094. *n=M529;
  1095. r529make(n,(T0*)C,a1);
  1096. R=(T0*)n;
  1097. }
  1098. }
  1099. /*FI*/return R;
  1100. }
  1101. int r767to_integer(T767* C){
  1102. int R=0;
  1103. T0* _rf1=NULL;
  1104. _rf1=(((T767*)C))->_run_feature/*16*/;
  1105. if(NULL!=(_rf1))switch(((T0*)_rf1)->id) {
  1106. case 808: 
  1107. break;
  1108. default:
  1109. _rf1=NULL;
  1110. };/*IF*/if ((_rf1)==((void*)(NULL))) {
  1111. r767error(/*(IRF4.6start_position*/(((T406*)((T406*)((((T767*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  1112. }
  1113. else {
  1114. R=X662to_integer((((T808*)((T808*)_rf1)))->_value/*48*/);
  1115. }
  1116. /*FI*/return R;
  1117. }
  1118. int r767is_a(T767* C,T0* a1){
  1119. int R=0;
  1120. R=X291is_a(X291run_type((((T767*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
  1121. /*IF*/if (!(R)) {
  1122. r683add_position(/*(IRF4.6start_position*/(((T406*)((T406*)((((T767*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/);
  1123. r767error(X662start_position(a1),((T0*)ms4_662));
  1124. }
  1125. /*FI*/return R;
  1126. }
  1127. /*No:CALL_PREFIX_PLUS.is_current*/
  1128. /*No:CALL_PREFIX_PLUS.jvm_branch_if_false*/
  1129. /*No:CALL_PREFIX_PLUS.static_value*/
  1130. void r767make(T767* C,T0* a1,T0* a2){
  1131. {T406*n=malloc(sizeof(*n));
  1132. *n=M406;
  1133. r406make(n,r767operator(),a1);
  1134. C->_feature_name=(T0*)n;
  1135. }
  1136. r767make_call0(C,a2,(((T767*)C))->_feature_name/*24*/);
  1137. }
  1138. /*No:CALL_PREFIX_PLUS.nb_errors*/
  1139. /*No:CALL_PREFIX_PLUS.feature_name*/
  1140. /*No:CALL_PREFIX_PLUS.compile_to_jvm_assignment*/
  1141. /*No:CALL_PREFIX_PLUS.fz_iinaiv*/
  1142. /*No:CALL_PREFIX_PLUS.arg_count*/
  1143. /*No:CALL_PREFIX_PLUS.jvm_branch_if_true*/
  1144. /*No:CALL_PREFIX_PLUS.run_feature*/
  1145. /*No:CALL_PREFIX_PLUS.start_position*/
  1146. void r767compile_to_jvm_old(T767* C){
  1147. X662compile_to_jvm_old((((T767*)C))->_target/*12*/);
  1148. /*IF*//*AF*//*AE*/
  1149. /*FI*/}
  1150. /*No:CALL_PREFIX_PLUS.target*/
  1151. T0* r767to_runnable(T767* C,T0* a1){
  1152. T0* R=NULL;
  1153. /*IF*/if (((((T767*)C))->_current_type/*8*/)==((void*)(NULL))) {
  1154. r767to_runnable_0(C,a1);
  1155. /*IF*/if (((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0))&&((X496arg_count((((T767*)C))->_run_feature/*16*/))>(0))) {
  1156. r683add_position((((T406*)((T406*)((((T767*)C))->_feature_name/*24*/))))->_start_position/*8*/);
  1157. r767error(X496start_position((((T767*)C))->_run_feature/*16*/),((T0*)ms1_752));
  1158. }
  1159. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1160. R=(T0*)C;
  1161. }
  1162. /*FI*/}
  1163. else {
  1164. R=r767twin(C);
  1165. /*[IRF3.3set_current_type*/((((T767*)(((T767*)R))))->_current_type)=(NULL);
  1166. /*]*/
  1167. R=r767to_runnable(((T767*)R),a1);
  1168. }
  1169. /*FI*/return R;
  1170. }
  1171. /*No:CALL_PREFIX_PLUS.result_type*/
  1172. /*No:CALL_PREFIX_PLUS.is_result*/
  1173. T0* r767twin(T767* C){
  1174. T0* R=NULL;
  1175. R=malloc(sizeof(*C));
  1176. *((T767*)R)=*C;
  1177. return R;
  1178. }
  1179. /*No:CALL_PREFIX_PLUS.set_current_type*/
  1180. T0* r767operator(void){
  1181. T0* R=NULL;
  1182. R=((T0*)ms43_473);
  1183. return R;
  1184. }
  1185. int r767is_static(T767* C){
  1186. int R=0;
  1187. /*IF*/if (X291is_integer(X662result_type((((T767*)C))->_target/*12*/))) {
  1188. /*IF*/if (X662is_static((((T767*)C))->_target/*12*/)) {
  1189. R=1;
  1190. C->_static_value_mem=X662static_value((((T767*)C))->_target/*12*/);
  1191. }
  1192. /*FI*/}
  1193. /*FI*/return R;
  1194. }
  1195. void r767standard_compile_target_to_jvm(T767* C){
  1196. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T767* C1=C;
  1197. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  1198. }/*]*/
  1199. /*]*/
  1200. X291jvm_check_class_invariant((((T767*)C))->_result_type/*20*/);
  1201. }
  1202. int r767compile_to_jvm_into(T767* C,T0* a1){
  1203. int R=0;
  1204. R=r767standard_compile_to_jvm_into(C,a1);
  1205. return R;
  1206. }
  1207. /*No:CALL_PREFIX_PLUS.compile_target_to_jvm*/
  1208. /*No:CALL_PREFIX_PLUS.fz_07*/
  1209. int r767can_be_dropped(T767* C){
  1210. int R=0;
  1211. /*IF*/if (X662can_be_dropped((((T767*)C))->_target/*12*/)) {
  1212. R=X496can_be_dropped((((T767*)C))->_run_feature/*16*/);
  1213. }
  1214. /*FI*/return R;
  1215. }
  1216. /*No:CALL_PREFIX_PLUS.current_type*/
  1217. /*No:CALL_PREFIX_PLUS.jvm_assign*/
  1218. /*No:CALL_PREFIX_PLUS.static_value_mem*/
  1219. /*No:CALL_PREFIX_PLUS.is_manifest_string*/
  1220. /*No:CALL_PREFIX_PLUS.is_void*/
  1221. int r767jvm_standard_branch_if_false(T767* C){
  1222. int R=0;
  1223. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T767* C1=C;
  1224. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  1225. }/*]*/
  1226. /*]*/
  1227. R=r256opcode_ifeq(((T256*)(oBC364code_attribute)));
  1228. return R;
  1229. }
  1230. /*No:CALL_PREFIX_PLUS.compile_to_jvm*/
  1231. void r767to_runnable_0(T767* C,T0* a1){
  1232. C->_current_type=a1;
  1233. r767cpc_to_runnable(C,a1);
  1234. C->_result_type=/*X496*/((T0*)(((T832*)((T832*)((((T767*)C))->_run_feature/*16*/))))->_result_type/*24*/);
  1235. /*IF*/if (((((T767*)C))->_result_type/*20*/)==((void*)(NULL))) {
  1236. r683add_position(X496start_position((((T767*)C))->_run_feature/*16*/));
  1237. r767error((((T406*)((T406*)((((T767*)C))->_feature_name/*24*/))))->_start_position/*8*/,((T0*)ms1_295));
  1238. }
  1239.  else if (X291is_like_current((((T767*)C))->_result_type/*20*/)) {
  1240. C->_result_type=X662result_type((((T767*)C))->_target/*12*/);
  1241. }
  1242. /*FI*/}
  1243. /*No:CALL_PREFIX_PLUS.is_pre_computable*/
  1244. int r767jvm_standard_branch_if_true(T767* C){
  1245. int R=0;
  1246. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T767* C1=C;
  1247. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  1248. }/*]*/
  1249. /*]*/
  1250. R=r256opcode_ifne(((T256*)(oBC364code_attribute)));
  1251. return R;
  1252. }
  1253. int r767use_current(T767* C){
  1254. int R=0;
  1255. /*IF*//*AF*//*AE*/
  1256. /*FI*//*IF*/if (R) {
  1257. }
  1258.  else if (X662is_current((((T767*)C))->_target/*12*/)) {
  1259. R=X496use_current((((T767*)C))->_run_feature/*16*/);
  1260. }
  1261. else {
  1262. R=X662use_current((((T767*)C))->_target/*12*/);
  1263. }
  1264. /*FI*/return R;
  1265. }
  1266. void r767cpc_to_runnable(T767* C,T0* a1){
  1267. T0* _rc=NULL;
  1268. T0* _t=NULL;
  1269. _t=X662to_runnable((((T767*)C))->_target/*12*/,a1);
  1270. /*IF*/if ((_t)==((void*)(NULL))) {
  1271. r683add_position(X662start_position((((T767*)C))->_target/*12*/));
  1272. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  1273. r683fatal_error(((T683*)(oBC364eh)),b1);
  1274. }/*]*/
  1275. }
  1276. /*FI*/C->_target=_t;
  1277. _rc=X291run_class(X662result_type((((T767*)C))->_target/*12*/));
  1278. C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C);
  1279. r576update((((T767*)C))->_target/*12*/,(((T767*)C))->_run_feature/*16*/);
  1280. }
  1281. void r767make_call0(T767* C,T0* a1,T0* a2){
  1282. C->_target=a1;
  1283. C->_feature_name=a2;
  1284. }
  1285. void r767error(T0* a1,T0* a2){
  1286. r683add_position(a1);
  1287. r683error(((T683*)(oBC364eh)),a2);
  1288. }
  1289. int r767isa_dca_inline_argument(T767* C){
  1290. int R=0;
  1291. /*IF*/if (X291is_integer((((T767*)C))->_result_type/*20*/)) {
  1292. R=X662isa_dca_inline_argument((((T767*)C))->_target/*12*/);
  1293. }
  1294. /*FI*/return R;
  1295. }
  1296. /*No:CALL_PREFIX_PLUS.fatal_error*/
  1297. /*No:CALL_PREFIX_PLUS.us_plus*/
  1298. int r767standard_compile_to_jvm_into(T767* C,T0* a1){
  1299. int R=0;
  1300. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T767* C1=C;
  1301. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  1302. }/*]*/
  1303. /*]*/
  1304. R=X291jvm_convert_to(X291run_type((((T767*)C))->_result_type/*20*/),a1);
  1305. return R;
  1306. }
  1307. /*No:CALL_PREFIX_PLUS.call_proc_call_c2jvm*/
  1308. void r767afd_check(T767* C){
  1309. T0* _running=NULL;
  1310. T0* _rc=NULL;
  1311. _rc=X291run_class(X662result_type((((T767*)C))->_target/*12*/));
  1312. _running=(((T355*)((T355*)_rc)))->_running/*12*/;
  1313. /*IF*/if ((_running)==((void*)(NULL))) {
  1314. r683add_position(X662start_position((((T767*)C))->_target/*12*/));
  1315. /*[IRF3.6append*/{T0* b1=((T0*)ms1_135);
  1316. r7append(((T7*)(oBC683explanation)),b1);
  1317. }/*]*/
  1318. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/);
  1319. r7append(((T7*)(oBC683explanation)),b1);
  1320. }/*]*/
  1321. /*[IRF3.6append*/{T0* b1=((T0*)ms141_470);
  1322. r7append(((T7*)(oBC683explanation)),b1);
  1323. }/*]*/
  1324. r683print_as_warning(((T683*)(oBC364eh)));
  1325. r355set_at_run_time(((T355*)_rc));
  1326. }
  1327.  else if ((r396count(((T396*)_running)))>(0)) {
  1328. r576update((((T767*)C))->_target/*12*/,(((T767*)C))->_run_feature/*16*/);
  1329. }
  1330. /*FI*/X662afd_check((((T767*)C))->_target/*12*/);
  1331. /*IF*//*AF*//*AE*/
  1332. /*FI*/}
  1333. T0* r880add_comment(T880* C,T0* a1){
  1334. T0* R=NULL;
  1335. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1336. R=(T0*)C;
  1337. }
  1338.  else {/*AT*//*IF*/if ((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(1)) {
  1339. R=(T0*)C;
  1340. }
  1341. else {
  1342. {T46*n=malloc(sizeof(*n));
  1343. *n=M46;
  1344. r46make(n,(T0*)C,a1);
  1345. R=(T0*)n;
  1346. }
  1347. }
  1348. /*FI*/}
  1349. /*FI*/return R;
  1350. }
  1351. /*No:E_LOOP.fz_is_not_boolean*/
  1352. void r880make(T880* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6){
  1353. C->_start_position=a1;
  1354. C->_initialize=a2;
  1355. C->_invariant_clause=a3;
  1356. C->_variant_clause=a4;
  1357. C->_until_expression=a5;
  1358. C->_loop_body=a6;
  1359. }
  1360. /*No:E_LOOP.nb_errors*/
  1361. /*No:E_LOOP.start_position*/
  1362. /*No:E_LOOP.until_expression*/
  1363. T0* r880to_runnable(T880* C,T0* a1){
  1364. T0* R=NULL;
  1365. int _loop_check=0;
  1366. T0* _ue=NULL;
  1367. _loop_check=r590loop_check(((T590*)(oBC364run_control)));
  1368. /*IF*/if (((((T880*)C))->_run_compound/*4*/)==((void*)(NULL))) {
  1369. C->_run_compound=a1;
  1370. /*IF*/if (((((T880*)C))->_initialize/*12*/)!=((void*)(NULL))) {
  1371. C->_initialize=r592to_runnable(((T592*)((((T880*)C))->_initialize/*12*/)),r880current_type(C));
  1372. /*IF*/if (((((T880*)C))->_initialize/*12*/)==((void*)(NULL))) {
  1373. r880error((((T880*)C))->_start_position/*8*/,((T0*)ms4_880));
  1374. }
  1375. /*FI*/}
  1376. /*FI*//*IF*/if ((_loop_check)&&(((((T880*)C))->_invariant_clause/*16*/)!=((void*)(NULL)))) {
  1377. C->_invariant_clause=r213to_runnable(((T213*)((((T880*)C))->_invariant_clause/*16*/)),(((T592*)((T592*)a1)))->_current_type/*4*/);
  1378. /*IF*/if (((((T880*)C))->_invariant_clause/*16*/)==((void*)(NULL))) {
  1379. r880error((((T880*)C))->_start_position/*8*/,((T0*)ms5_880));
  1380. }
  1381. /*FI*/}
  1382. /*FI*//*IF*/if ((_loop_check)&&(((((T880*)C))->_variant_clause/*20*/)!=((void*)(NULL)))) {
  1383. C->_variant_clause=X856to_runnable((((T880*)C))->_variant_clause/*20*/,r880current_type(C));
  1384. /*IF*/if (((((T880*)C))->_variant_clause/*20*/)==((void*)(NULL))) {
  1385. r880error((((T880*)C))->_start_position/*8*/,((T0*)ms6_880));
  1386. }
  1387. /*FI*/}
  1388. /*FI*/_ue=X662to_runnable((((T880*)C))->_until_expression/*24*/,r880current_type(C));
  1389. /*IF*/if ((_ue)!=((void*)(NULL))) {
  1390. /*IF*/if (!(X291is_boolean(X662result_type(_ue)))) {
  1391. r880error(X662start_position(_ue),((T0*)ms7_880));
  1392. r683add_type(X662result_type(_ue),((T0*)ms73_470));
  1393. r683print_as_error(((T683*)(oBC364eh)));
  1394. }
  1395. /*FI*/C->_until_expression=_ue;
  1396. }
  1397. else {
  1398. r880error((((T880*)C))->_start_position/*8*/,((T0*)ms8_880));
  1399. }
  1400. /*FI*//*IF*/if (((((T880*)C))->_loop_body/*28*/)!=((void*)(NULL))) {
  1401. C->_loop_body=r592to_runnable(((T592*)((((T880*)C))->_loop_body/*28*/)),r880current_type(C));
  1402. /*IF*/if (((((T880*)C))->_loop_body/*28*/)==((void*)(NULL))) {
  1403. r880error((((T880*)C))->_start_position/*8*/,((T0*)ms9_880));
  1404. }
  1405. /*FI*/}
  1406. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1407. R=(T0*)C;
  1408. }
  1409. /*FI*/}
  1410. else {
  1411. {T880*n=malloc(sizeof(*n));
  1412. *n=M880;
  1413. r880make(n,(((T880*)C))->_start_position/*8*/,(((T880*)C))->_initialize/*12*/,(((T880*)C))->_invariant_clause/*16*/,(((T880*)C))->_variant_clause/*20*/,(((T880*)C))->_until_expression/*24*/,(((T880*)C))->_loop_body/*28*/);
  1414. R=(T0*)n;
  1415. }
  1416. R=r880to_runnable(((T880*)R),a1);
  1417. }
  1418. /*FI*/return R;
  1419. }
  1420. /*No:E_LOOP.variant_clause*/
  1421. /*No:E_LOOP.invariant_clause*/
  1422. /*No:E_LOOP.loop_body*/
  1423. T0* r880current_type(T880* C){
  1424. T0* R=NULL;
  1425. /*IF*/if (((((T880*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
  1426. R=(((T592*)((T592*)((((T880*)C))->_run_compound/*4*/))))->_current_type/*4*/;
  1427. }
  1428. /*FI*/return R;
  1429. }
  1430. /*No:E_LOOP.run_compound*/
  1431. void r880compile_to_jvm(T880* C){
  1432. int _point2=0;
  1433. int _point1=0;
  1434. /*IF*/if (((((T880*)C))->_initialize/*12*/)!=((void*)(NULL))) {
  1435. r592compile_to_jvm(((T592*)((((T880*)C))->_initialize/*12*/)));
  1436. }
  1437. /*FI*/_point1=/*(IRF4.9program_counter*//*(IRF4.6count*/((((T226*)((T226*)(oBC256code))))->_upper/*8*/)+(1)/*)*//*)*/;
  1438. /*IF*/if (((((T880*)C))->_invariant_clause/*16*/)!=((void*)(NULL))) {
  1439. /*IF*/if (r590loop_check(((T590*)(oBC364run_control)))) {
  1440. r213compile_to_jvm(((T213*)((((T880*)C))->_invariant_clause/*16*/)),1);
  1441. }
  1442. /*FI*/}
  1443. /*FI*/_point2=X662jvm_branch_if_true((((T880*)C))->_until_expression/*24*/);
  1444. /*IF*/if (((((T880*)C))->_loop_body/*28*/)!=((void*)(NULL))) {
  1445. r592compile_to_jvm(((T592*)((((T880*)C))->_loop_body/*28*/)));
  1446. }
  1447. /*FI*/r256opcode_goto_backward(((T256*)(oBC364code_attribute)),_point1);
  1448. r256resolve_u2_branch(_point2);
  1449. }
  1450. /*No:E_LOOP.is_pre_computable*/
  1451. int r880use_current(T880* C){
  1452. int R=0;
  1453. int _loop_check=0;
  1454. _loop_check=r590loop_check(((T590*)(oBC364run_control)));
  1455. /*IF*/if ((_loop_check)&&(((((T880*)C))->_variant_clause/*20*/)!=((void*)(NULL)))) {
  1456. R=(R)||(X856use_current((((T880*)C))->_variant_clause/*20*/));
  1457. }
  1458. /*FI*//*IF*/if (((((T880*)C))->_initialize/*12*/)!=((void*)(NULL))) {
  1459. R=(R)||(r592use_current(((T592*)((((T880*)C))->_initialize/*12*/))));
  1460. }
  1461. /*FI*/R=(R)||(X662use_current((((T880*)C))->_until_expression/*24*/));
  1462. /*IF*/if ((_loop_check)&&(((((T880*)C))->_invariant_clause/*16*/)!=((void*)(NULL)))) {
  1463. R=(R)||(r213use_current(((T213*)((((T880*)C))->_invariant_clause/*16*/))));
  1464. }
  1465. /*FI*//*IF*/if (((((T880*)C))->_loop_body/*28*/)!=((void*)(NULL))) {
  1466. R=(R)||(r592use_current(((T592*)((((T880*)C))->_loop_body/*28*/))));
  1467. }
  1468. /*FI*/return R;
  1469. }
  1470. void r880error(T0* a1,T0* a2){
  1471. r683add_position(a1);
  1472. r683error(((T683*)(oBC364eh)),a2);
  1473. }
  1474. /*No:E_LOOP.end_mark_comment*/
  1475. /*No:E_LOOP.initialize*/
  1476. void r880afd_check(T880* C){
  1477. /*IF*/if (r590loop_check(((T590*)(oBC364run_control)))) {
  1478. /*IF*/if (((((T880*)C))->_variant_clause/*20*/)!=((void*)(NULL))) {
  1479. X856afd_check((((T880*)C))->_variant_clause/*20*/);
  1480. }
  1481. /*FI*//*IF*/if (((((T880*)C))->_invariant_clause/*16*/)!=((void*)(NULL))) {
  1482. r213afd_check(((T213*)((((T880*)C))->_invariant_clause/*16*/)));
  1483. }
  1484. /*FI*/}
  1485. /*FI*//*IF*/if (((((T880*)C))->_initialize/*12*/)!=((void*)(NULL))) {
  1486. r592afd_check(((T592*)((((T880*)C))->_initialize/*12*/)));
  1487. }
  1488. /*FI*/X662afd_check((((T880*)C))->_until_expression/*24*/);
  1489. /*IF*/if (((((T880*)C))->_loop_body/*28*/)!=((void*)(NULL))) {
  1490. r592afd_check(((T592*)((((T880*)C))->_loop_body/*28*/)));
  1491. }
  1492. /*FI*/}
  1493. void r393good_end(T393* C,T0* a1){
  1494. /*IF*/if (!(r7has_string(((T7*)(r52item(((T52*)((((T393*)C))->_list/*4*/)),1))),(((T451*)((T451*)a1)))->_to_string/*0*/))) {
  1495. r683add_position((((T451*)((T451*)a1)))->_start_position/*4*/);
  1496. r393warning((((T393*)C))->_start_position/*0*/,((T0*)ms10_393));
  1497. }
  1498. /*FI*/}
  1499. void r393make(T393* C,T0* a1,T0* a2){
  1500. C->_start_position=a1;
  1501. C->_list=a2;
  1502. }
  1503. /*No:COMMENT.start_position*/
  1504. /*No:COMMENT.list*/
  1505. /*No:COMMENT.count*/
  1506. /*No:COMMENT.add_last*/
  1507. void r393append(T393* C,T0* a1){
  1508. int _i=0;
  1509. _i=1;
  1510. while (!((_i)>((((T52*)((T52*)((((T393*)((T393*)a1)))->_list/*4*/))))->_upper/*8*/))) {
  1511. /*[IRF3.5add_last*/r52add_last(((T52*)((((T393*)C))->_list/*4*/)),r52item(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)),_i));
  1512. /*]*/
  1513. _i=(_i)+(1);
  1514. }
  1515. }
  1516. void r393warning(T0* a1,T0* a2){
  1517. r683add_position(a1);
  1518. r683warning(((T683*)(oBC364eh)),a2);
  1519. }
  1520. /*No:INDEX_LIST.make*/
  1521. /*No:INDEX_LIST.list*/
  1522. void r723make(T723* C,T0* a1,T0* a2){
  1523. C->_name=a1;
  1524. /*X361*//*[IRF3.3set_result_type*/((((T886*)(((T886*)((((T723*)C))->_name/*4*/)))))->_result_type)=(a2);
  1525. /*]*/
  1526. }
  1527. /*No:DECLARATION_1.name*/
  1528. void r723append_in(T723* C,T0* a1){
  1529. X535add_last(a1,(((T723*)C))->_name/*4*/);
  1530. }
  1531. /*No:DECLARATION_1.count*/
  1532.  
  1533.