home *** CD-ROM | disk | FTP | other *** search
/ Amiga ACS 1998 #4 / amigaacscoverdisc1998-041998.iso / utilities / shareware / dev / ppcsmalleiffel / source.lha / bin_c / compile_to_jvm21.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  39.1 KB  |  1,509 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 r673get_started(T673* C){
  10. T0* _p2=NULL;
  11. T0* _p1=NULL;
  12. int _i2=0;
  13. int _i1=0;
  14. _i1=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
  15. while (!((_i1)==(0))) {
  16. r877get_started(((T877*)(r26item(((T26*)((((T673*)C))->_list/*12*/)),_i1))),(T0*)C);
  17. _i1=(_i1)-(1);
  18. }
  19. /*IF*/if (((((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/)>(1)) {
  20. _i2=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
  21. while (!((_i2)==(1))) {
  22. _i1=1;
  23. while (!((_i1)==(_i2))) {
  24. _p1=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i1);
  25. _p2=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i2);
  26. r877multiple_check(((T877*)_p1),_p2);
  27. r877multiple_check(((T877*)_p2),_p1);
  28. _i1=(_i1)+(1);
  29. }
  30. _i2=(_i2)-(1);
  31. }
  32. }
  33. /*FI*/}
  34. int r673has_parent(T673* C,T0* a1){
  35. int R=0;
  36. T0* _bc=NULL;
  37. int _i=0;
  38. _i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
  39. while (!((_i)==(0))) {
  40. _bc=X291base_class((((T877*)((T877*)(r26item(((T26*)((((T673*)C))->_list/*12*/)),_i)))))->_type/*4*/);
  41. /*IF*/if ((a1)==((void*)(_bc))) {
  42. R=1;
  43. _i=0;
  44. }
  45.  else if (r605is_subclass_of_aux(((T605*)_bc),a1)) {
  46. R=1;
  47. _i=0;
  48. }
  49. else {
  50. _i=(_i)-(1);
  51. }
  52. /*FI*/}
  53. return R;
  54. }
  55. /*No:PARENT_LIST.fz_cnf*/
  56. void r673make(T673* C,T0* a1,T0* a2,T0* a3,T0* a4){
  57. C->_base_class=a1;
  58. C->_heading_comment=a3;
  59. C->_start_position=a2;
  60. C->_list=a4;
  61. }
  62. /*No:PARENT_LIST.start_position*/
  63. T0* r673next_parent_for(T673* C,T0* a1,T0* a2){
  64. T0* R=NULL;
  65. T0* _pbc=NULL;
  66. int _i=0;
  67. _i=1;
  68. while (!((R)==((void*)(a2)))) {
  69. R=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
  70. _i=(_i)+(1);
  71. }
  72. R=NULL;
  73. while (!(((R)!=((void*)(NULL)))||((_i)>(r26count(((T26*)((((T673*)C))->_list/*12*/))))))) {
  74. R=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
  75. _pbc=X291base_class((((T877*)((T877*)R)))->_type/*4*/);
  76. /*IF*/if ((_pbc)==((void*)(a1))) {
  77. }
  78.  else if (r605is_subclass_of(((T605*)_pbc),a1)) {
  79. }
  80. else {
  81. R=NULL;
  82. }
  83. /*FI*/_i=(_i)+(1);
  84. }
  85. return R;
  86. }
  87. T0* r673first_parent_for(T673* C,T0* a1){
  88. T0* R=NULL;
  89. T0* _pbc=NULL;
  90. int _i=0;
  91. _i=1;
  92. while (!((R)!=((void*)(NULL)))) {
  93. R=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
  94. _pbc=X291base_class((((T877*)((T877*)R)))->_type/*4*/);
  95. /*IF*/if ((_pbc)==((void*)(a1))) {
  96. }
  97.  else if (r605is_subclass_of(((T605*)_pbc),a1)) {
  98. }
  99. else {
  100. R=NULL;
  101. }
  102. /*FI*/_i=(_i)+(1);
  103. }
  104. return R;
  105. }
  106. void r673inherit_cycle_check(T673* C){
  107. T0* _bc=NULL;
  108. T0* _p=NULL;
  109. int _i=0;
  110. _i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
  111. while (!((_i)==(0))) {
  112. _p=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
  113. _bc=X291base_class((((T877*)((T877*)_p)))->_type/*4*/);
  114. /*IF*/if ((_bc)==((void*)(NULL))) {
  115. r683add_position(r877start_position(((T877*)_p)));
  116. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms66_470);
  117. r683fatal_error(((T683*)(oBC364eh)),b1);
  118. }/*]*/
  119. }
  120. else {
  121. r605inherit_cycle_check(((T605*)_bc));
  122. }
  123. /*FI*/_i=(_i)-(1);
  124. }
  125. }
  126. /*No:PARENT_LIST.em1*/
  127. /*No:PARENT_LIST.list*/
  128. T0* r673up_to_original(T673* C,T0* a1,T0* a2){
  129. T0* R=NULL;
  130. int _i=0;
  131. T0* _new_fn=NULL;
  132. T0* _fn2=NULL;
  133. T0* _fn1=NULL;
  134. T0* _p2=NULL;
  135. T0* _p1=NULL;
  136. _i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
  137. while (!(((_i)==(0))||((_fn1)!=((void*)(NULL))))) {
  138. _p1=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
  139. _fn1=r877up_to_original(((T877*)_p1),a1,a2);
  140. _i=(_i)-(1);
  141. }
  142. while (!((_i)==(0))) {
  143. _p2=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
  144. _fn2=r877up_to_original(((T877*)_p2),a1,a2);
  145. /*IF*/if ((_fn2)!=((void*)(NULL))) {
  146. _new_fn=r877do_rename(((T877*)_p2),a2);
  147. /*IF*/if (r877has_select_for(((T877*)_p2),_new_fn)) {
  148. _p1=_p2;
  149. _fn1=_fn2;
  150. }
  151. /*FI*/}
  152. /*FI*/_i=(_i)-(1);
  153. }
  154. /*IF*/if ((_fn1)!=((void*)(NULL))) {
  155. /*IF*/if ((X776to_string(_fn1))!=((void*)(X776to_string(a2)))) {
  156. R=r673repeated_inheritance(C,_p1,_fn1,a2);
  157. }
  158. else {
  159. R=_fn1;
  160. }
  161. /*FI*/}
  162. /*FI*/return R;
  163. }
  164. void r673collect_invariant(T673* C,T0* a1){
  165. int _i=0;
  166. _i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
  167. while (!((_i)==(0))) {
  168. r605collect_invariant(((T605*)(X291base_class((((T877*)((T877*)(r26item(((T26*)((((T673*)C))->_list/*12*/)),_i)))))->_type/*4*/))),a1);
  169. _i=(_i)-(1);
  170. }
  171. }
  172. T0* r673smallest_ancestor(T673* C,T0* a1){
  173. T0* R=NULL;
  174. T0* _sa=NULL;
  175. T0* _p=NULL;
  176. int _i=0;
  177. _i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
  178. while (!((_i)==(0))) {
  179. _p=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
  180. _sa=X291run_type(r877smallest_ancestor(((T877*)_p),a1));
  181. /*IF*/if ((R)==((void*)(NULL))) {
  182. R=_sa;
  183. }
  184. else {
  185. R=X291smallest_ancestor(_sa,R);
  186. }
  187. /*FI*//*IF*/if (X291is_any(R)) {
  188. _i=0;
  189. }
  190. else {
  191. _i=(_i)-(1);
  192. }
  193. /*FI*/}
  194. return R;
  195. }
  196. int r673has(T673* C,T0* a1){
  197. int R=0;
  198. int _i=0;
  199. _i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
  200. while (!((R)||((_i)==(0)))) {
  201. R=r877has(((T877*)(r26item(((T26*)((((T673*)C))->_list/*12*/)),_i))),a1);
  202. _i=(_i)-(1);
  203. }
  204. return R;
  205. }
  206. int r673has_redefine(T673* C,T0* a1){
  207. int R=0;
  208. int _i=0;
  209. _i=1;
  210. while (!((R)||((_i)>((((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/)))) {
  211. R=r877has_redefine(((T877*)(r26item(((T26*)((((T673*)C))->_list/*12*/)),_i))),a1);
  212. _i=(_i)+(1);
  213. }
  214. return R;
  215. }
  216. T0* r673look_up_for(T673* C,T0* a1,T0* a2){
  217. T0* R=NULL;
  218. T0* _f2=NULL;
  219. T0* _f1=NULL;
  220. T0* _p2=NULL;
  221. T0* _p1=NULL;
  222. int _i=0;
  223. _i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
  224. while (!(((_f1)!=((void*)(NULL)))||((_i)==(0)))) {
  225. _p1=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
  226. _f1=r877look_up_for(((T877*)_p1),a1,a2);
  227. _i=(_i)-(1);
  228. }
  229. while (!((_i)==(0))) {
  230. _p2=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
  231. _f2=r877look_up_for(((T877*)_p2),a1,a2);
  232. /*IF*/if ((_f2)==((void*)(NULL))) {
  233. }
  234.  else if ((_f1)==((void*)(_f2))) {
  235. }
  236.  else if (!(X359is_merge_with(_f2,_f1,a1))) {
  237. r683add_position((((T673*)C))->_start_position/*4*/);
  238. r683add_position(X359start_position(_f1));
  239. r683add_position(X359start_position(_f2));
  240. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms70_470);
  241. r683fatal_error(((T683*)(oBC364eh)),b1);
  242. }/*]*/
  243. }
  244.  else if (X359is_deferred(_f2)) {
  245. }
  246.  else if (X359is_deferred(_f1)) {
  247. _f1=_f2;
  248. _p1=_p2;
  249. }
  250.  else if (r877has_redefine(((T877*)_p1),a2)) {
  251. /*IF*/if (r877has_redefine(((T877*)_p2),a2)) {
  252. }
  253. else {
  254. r683add_position(X776start_position(a2));
  255. r683add_position(r877start_position(((T877*)_p2)));
  256. r683add_position(X359start_position(_f2));
  257. /*[IRF3.6append*/{T0* b1=((T0*)ms2_673);
  258. r7append(((T7*)(oBC683explanation)),b1);
  259. }/*]*/
  260. r683print_as_fatal_error(((T683*)(oBC364eh)));
  261. }
  262. /*FI*/}
  263.  else if (r877has_redefine(((T877*)_p2),a2)) {
  264. r683add_position(X776start_position(a2));
  265. r683add_position(r877start_position(((T877*)_p1)));
  266. r683add_position(X359start_position(_f1));
  267. /*[IRF3.6append*/{T0* b1=((T0*)ms2_673);
  268. r7append(((T7*)(oBC683explanation)),b1);
  269. }/*]*/
  270. r683print_as_fatal_error(((T683*)(oBC364eh)));
  271. }
  272. else {
  273. r683add_position(r877start_position(((T877*)_p2)));
  274. r683add_position(r877start_position(((T877*)_p1)));
  275. r683add_position(X359start_position(_f1));
  276. r683add_position(X359start_position(_f2));
  277. /*[IRF3.6append*/{T0* b1=((T0*)ms2_673);
  278. r7append(((T7*)(oBC683explanation)),b1);
  279. }/*]*/
  280. r683print_as_fatal_error(((T683*)(oBC364eh)));
  281. }
  282. /*FI*/_i=(_i)-(1);
  283. }
  284. R=_f1;
  285. return R;
  286. }
  287. T0* r673repeated_inheritance(T673* C,T0* a1,T0* a2,T0* a3){
  288. T0* R=NULL;
  289. T0* _bc1=NULL;
  290. T0* _p2=NULL;
  291. int _i=0;
  292. _bc1=X291base_class((((T877*)((T877*)a1)))->_type/*4*/);
  293. _i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
  294. while (!((_i)==(0))) {
  295. _p2=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
  296. /*IF*/if ((a1)!=((void*)(_p2))) {
  297. /*IF*/if ((_bc1)==((void*)(X291base_class((((T877*)((T877*)_p2)))->_type/*4*/)))) {
  298. /*IF*/if ((X776to_string(r877do_rename(((T877*)_p2),a2)))==((void*)(X776to_string(a3)))) {
  299. R=a3;
  300. }
  301.  else if ((X776to_string(r877do_rename(((T877*)a1),a2)))==((void*)(X776to_string(a3)))) {
  302. R=a3;
  303. }
  304. /*FI*/}
  305. /*FI*/}
  306. /*FI*/_i=(_i)-(1);
  307. }
  308. /*IF*/if ((R)==((void*)(NULL))) {
  309. R=a2;
  310. }
  311. /*FI*/return R;
  312. }
  313. /*No:PARENT_LIST.super*/
  314. T0* r673clients_for(T673* C,T0* a1){
  315. T0* R=NULL;
  316. T0* _cl=NULL;
  317. int _i=0;
  318. _i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
  319. while (!((_i)==(0))) {
  320. _cl=r877clients_for(((T877*)(r26item(((T26*)((((T673*)C))->_list/*12*/)),_i))),a1);
  321. /*IF*/if ((R)==((void*)(NULL))) {
  322. R=_cl;
  323. }
  324.  else if ((_cl)!=((void*)(NULL))) {
  325. R=r636append(((T636*)R),_cl);
  326. }
  327. /*FI*//*IF*/if (((R)!=((void*)(NULL)))&&(r636gives_permission_to_any(((T636*)R)))) {
  328. _i=0;
  329. }
  330. else {
  331. _i=(_i)-(1);
  332. }
  333. /*FI*/}
  334. return R;
  335. }
  336. T0* r673going_up(T673* C,T0* a1,T0* a2,T0* a3){
  337. T0* R=NULL;
  338. T0* _fn2=NULL;
  339. T0* _fn1=NULL;
  340. T0* _p2=NULL;
  341. T0* _p1=NULL;
  342. int _i=0;
  343. _i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
  344. while (!(((_fn1)!=((void*)(NULL)))||((_i)==(0)))) {
  345. _p1=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
  346. _fn1=r877going_up(((T877*)_p1),a1,a2,a3);
  347. _i=(_i)-(1);
  348. }
  349. while (!((_i)==(0))) {
  350. _p2=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
  351. _fn2=r877going_up(((T877*)_p2),a1,a2,a3);
  352. /*IF*/if ((_fn2)!=((void*)(NULL))) {
  353. /*IF*/if (r877has_select_for(((T877*)_p2),_fn2)) {
  354. _p1=_p2;
  355. _fn1=_fn2;
  356. }
  357. /*FI*/}
  358. /*FI*/_i=(_i)-(1);
  359. }
  360. R=_fn1;
  361. return R;
  362. }
  363. int r673is_a_vncg(T673* C,T0* a1,T0* a2){
  364. int R=0;
  365. int _i=0;
  366. _i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
  367. while (!((R)||((_i)==(0)))) {
  368. R=r877is_a_vncg(((T877*)(r26item(((T26*)((((T673*)C))->_list/*12*/)),_i))),a1,a2);
  369. _i=(_i)-(1);
  370. }
  371. return R;
  372. }
  373. void r673collect_for(T673* C,int a1,T0* a2){
  374. int _i=0;
  375. _i=1;
  376. while (!((_i)>((((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/))) {
  377. r877collect_for(((T877*)(r26item(((T26*)((((T673*)C))->_list/*12*/)),_i))),a1,a2);
  378. _i=(_i)+(1);
  379. }
  380. }
  381. /*No:PARENT_LIST.heading_comment*/
  382. /*No:PARENT_LIST.count*/
  383. /*No:PARENT_LIST.base_class*/
  384. /*No:PARENT_LIST.fatal_error*/
  385. /*No:PARENT_LIST.fz_ich*/
  386. /*No:CECIL_POOL.us_print*/
  387. /*No:CECIL_POOL.se_cecil_list*/
  388. void r625fill_up(T625* C){
  389. int _i=0;
  390. T0* _rf=NULL;
  391. T0* _fna=NULL;
  392. T0* _rta=NULL;
  393. T0* _t=NULL;
  394. /*IF*/if (r590no_check(((T590*)(oBC364run_control)))) {
  395. {T308*n=malloc(sizeof(*n));
  396. *n=M308;
  397. r308with_capacity(n,1);
  398. C->_se_cecil_list=(T0*)n;
  399. }
  400. {T927*n=malloc(sizeof(*n));
  401. *n=M927;
  402. r927with_capacity(n,1);
  403. C->_se_cecil_name=(T0*)n;
  404. }
  405. r927add_last(((T927*)((((T625*)C))->_se_cecil_name/*4*/)),((T0*)ms1_625));
  406. _rf=r355get_feature_with(((T355*)(r669run_class(((T669*)(r625type_any()))))),((T0*)ms101_473));
  407. X308add_last((((T625*)C))->_se_cecil_list/*0*/,_rf);
  408. r576update_with(_rf);
  409. }
  410. /*FI*//*IF*/if (((((T590*)((T590*)(oBC364run_control))))->_cecil_path/*12*/)!=((void*)(NULL))) {
  411. {T308*n=malloc(sizeof(*n));
  412. *n=M308;
  413. r308with_capacity(n,4);
  414. C->_user_cecil_list=(T0*)n;
  415. }
  416. {T927*n=malloc(sizeof(*n));
  417. *n=M927;
  418. r927with_capacity(n,4);
  419. C->_user_cecil_name=(T0*)n;
  420. }
  421. C->_user_path_h=r818connect_to_cecil(((T818*)(oBC364eiffel_parser)));
  422. {T272*n=malloc(sizeof(*n));
  423. *n=M272;
  424. r272with_capacity(n,4);
  425. _rta=(T0*)n;
  426. }
  427. {T719*n=malloc(sizeof(*n));
  428. *n=M719;
  429. r719with_capacity(n,4);
  430. _fna=(T0*)n;
  431. }
  432. while (!(r818end_of_input(((T818*)(oBC364eiffel_parser))))) {
  433. r927add_last(((T927*)((((T625*)C))->_user_cecil_name/*12*/)),r818parse_c_name(((T818*)(oBC364eiffel_parser))));
  434. X272add_last(_rta,r818parse_run_type(((T818*)(oBC364eiffel_parser))));
  435. r719add_last(((T719*)_fna),r818parse_feature_name(((T818*)(oBC364eiffel_parser))));
  436. }
  437. r818disconnect(((T818*)(oBC364eiffel_parser)));
  438. r306put_string(((T306*)(oBC364echo)),((T0*)ms2_625));
  439. _i=0;
  440. while (!((_i)>(/*X272*/((int)(((T272*)((T272*)_rta)))->_upper/*12*/)))) {
  441. _t=X291to_runnable(/*X272*/((T0*)r272item(((T272*)_rta),_i)),r625type_any());
  442. _rf=r355get_feature(((T355*)(X291run_class(_t))),/*(IRF4.6item*/((((T719*)((T719*)_fna)))->_storage/*0*/)[_i]/*)*/);
  443. X308add_last((((T625*)C))->_user_cecil_list/*8*/,_rf);
  444. r576update_with(_rf);
  445. _i=(_i)+(1);
  446. }
  447. }
  448. /*FI*/}
  449. T0* r625type_any(void){
  450. if (fBC364type_any==0){
  451. T0* R=NULL;
  452. fBC364type_any=1;
  453. {T669*n=malloc(sizeof(*n));
  454. *n=M669;
  455. r669make(n,NULL);
  456. R=(T0*)n;
  457. }
  458. oBC364type_any=R;}
  459. return oBC364type_any;}
  460. /*No:CECIL_POOL.user_path_h*/
  461. /*No:CECIL_POOL.user_cecil_list*/
  462. /*No:CECIL_POOL.user_cecil_name*/
  463. /*No:CECIL_POOL.se_cecil_name*/
  464. /*No:PREFIX_NAME.set_is_frozen*/
  465. void r406make(T406* C,T0* a1,T0* a2){
  466. C->_to_string=r902item(a1);
  467. C->_start_position=a2;
  468. C->_to_key=r902for_prefix((((T406*)C))->_to_string/*4*/);
  469. }
  470. /*No:PREFIX_NAME.to_string*/
  471. /*No:PREFIX_NAME.start_position*/
  472. /*No:PREFIX_NAME.to_key*/
  473. /*No:PREFIX_NAME.is_frozen*/
  474. void r406undefine_in(T406* C,T0* a1){
  475. /*IF*/if ((((T406*)C))->_is_frozen/*12*/) {
  476. r406error((((T406*)C))->_start_position/*8*/,((T0*)ms1_776));
  477. r605fatal_undefine(((T605*)a1),(T0*)C);
  478. }
  479. /*FI*/}
  480. void r406error(T0* a1,T0* a2){
  481. r683add_position(a1);
  482. r683error(((T683*)(oBC364eh)),a2);
  483. }
  484. T0* r406origin_base_class(T406* C){
  485. T0* R=NULL;
  486. T0* _sp=NULL;
  487. _sp=(((T406*)C))->_start_position/*8*/;
  488. /*IF*/if ((_sp)!=((void*)(NULL))) {
  489. R=r627base_class(((T627*)_sp));
  490. }
  491. /*FI*/return R;
  492. }
  493. void r675connect_to(T675* C,T0* a1){
  494. C->_input_stream=fopen(r7to_external(((T7*)a1)),"r");
  495. /*IF*/if ((NULL!=(((T675*)C))->_input_stream/*8*/)) {
  496. C->_push_back_flag=0;
  497. C->_memory=((unsigned char)'\40');
  498. C->_path=a1;
  499. }
  500. /*FI*/}
  501. T0*oBC762last_string=NULL;
  502. /*No:STD_FILE_READ.push_back_flag*/
  503. void r675skip_separators(T675* C){
  504. while (!((r675end_of_input(C))||(!(r3is_separator(/*(IRF4.6last_character*/((char)((((T675*)C))->_memory/*12*/))/*)*/))))) {
  505. r675read_character(C);
  506. }
  507. }
  508. /*No:STD_FILE_READ.make*/
  509. void r675disconnect(T675* C){
  510. fclose((((T675*)C))->_input_stream/*8*/);
  511. C->_path=NULL;
  512. }
  513. /*No:STD_FILE_READ.path*/
  514. void r675read_character(T675* C){
  515. /*IF*/if ((((T675*)C))->_push_back_flag/*0*/) {
  516. C->_push_back_flag=0;
  517. }
  518. else {
  519. C->_memory=getc((FILE*)((((T675*)C))->_input_stream/*8*/));
  520. }
  521. /*FI*/}
  522. /*No:STD_FILE_READ.is_connected*/
  523. void r675read_word(T675* C){
  524. r675skip_separators(C);
  525. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC762last_string)))))->_count)=(0);
  526. /*]*/
  527. while (!((r675end_of_input(C))||(r3is_separator(/*(IRF4.6last_character*/((char)((((T675*)C))->_memory/*12*/))/*)*/)))) {
  528. r7extend(((T7*)(oBC762last_string)),/*(IRF4.6last_character*/((char)((((T675*)C))->_memory/*12*/))/*)*/);
  529. r675read_character(C);
  530. }
  531. }
  532. /*No:STD_FILE_READ.last_character*/
  533. void r675read_line_in(T675* C,T0* a1){
  534. int _mem=0;
  535. r675read_character(C);
  536. _mem=(((T675*)C))->_memory/*12*/;
  537. while (!(((_mem)==((EOF)))||((_mem)==(((unsigned char)'\n'))))) {
  538. r7extend(((T7*)a1),((char)(_mem)));
  539. _mem=getc((FILE*)((((T675*)C))->_input_stream/*8*/));
  540. }
  541. C->_memory=_mem;
  542. }
  543. int r675end_of_input(T675* C){
  544. int R=0;
  545. /*IF*/if (!((((T675*)C))->_push_back_flag/*0*/)) {
  546. R=((((T675*)C))->_memory/*12*/)==((EOF));
  547. }
  548. /*FI*/return R;
  549. }
  550. void r675read_line(T675* C){
  551. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC762last_string)))))->_count)=(0);
  552. /*]*/
  553. r675read_line_in(C,oBC762last_string);
  554. }
  555. /*No:STD_FILE_READ.input_stream*/
  556. /*No:STD_FILE_READ.memory*/
  557. T0* r347add_comment(T347* C,T0* a1){
  558. T0* R=NULL;
  559. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  560. R=(T0*)C;
  561. }
  562.  else {/*AT*//*IF*/if ((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(1)) {
  563. R=(T0*)C;
  564. }
  565. else {
  566. {T46*n=malloc(sizeof(*n));
  567. *n=M46;
  568. r46make(n,(T0*)C,a1);
  569. R=(T0*)n;
  570. }
  571. }
  572. /*FI*/}
  573. /*FI*/return R;
  574. }
  575. void r347make(T347* C,T0* a1,T0* a2,T0* a3){
  576. C->_start_position=a1;
  577. C->_list=a2;
  578. C->_compound=a3;
  579. }
  580. /*No:E_DEBUG.start_position*/
  581. T0* r347to_runnable(T347* C,T0* a1){
  582. T0* R=NULL;
  583. /*IF*/if (((((T347*)C))->_run_compound/*4*/)==((void*)(NULL))) {
  584. C->_run_compound=a1;
  585. /*IF*/if (r590debug_check(((T590*)(oBC364run_control)))) {
  586. /*IF*/if (((((T347*)C))->_compound/*16*/)!=((void*)(NULL))) {
  587. C->_compound=r592to_runnable(((T592*)((((T347*)C))->_compound/*16*/)),r347current_type(C));
  588. }
  589. /*FI*/}
  590. /*FI*/R=(T0*)C;
  591. }
  592. else {
  593. {T347*n=malloc(sizeof(*n));
  594. *n=M347;
  595. r347make(n,(((T347*)C))->_start_position/*8*/,(((T347*)C))->_list/*12*/,(((T347*)C))->_compound/*16*/);
  596. R=(T0*)n;
  597. }
  598. R=r347to_runnable(((T347*)R),a1);
  599. }
  600. /*FI*/return R;
  601. }
  602. /*No:E_DEBUG.list*/
  603. T0* r347current_type(T347* C){
  604. T0* R=NULL;
  605. /*IF*/if (((((T347*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
  606. R=(((T592*)((T592*)((((T347*)C))->_run_compound/*4*/))))->_current_type/*4*/;
  607. }
  608. /*FI*/return R;
  609. }
  610. /*No:E_DEBUG.run_compound*/
  611. /*No:E_DEBUG.compound*/
  612. void r347compile_to_jvm(T347* C){
  613. /*IF*/if (r590debug_check(((T590*)(oBC364run_control)))) {
  614. /*IF*/if (((((T347*)C))->_compound/*16*/)!=((void*)(NULL))) {
  615. r592compile_to_jvm(((T592*)((((T347*)C))->_compound/*16*/)));
  616. }
  617. /*FI*/}
  618. /*FI*/}
  619. /*No:E_DEBUG.is_pre_computable*/
  620. int r347use_current(T347* C){
  621. int R=0;
  622. /*IF*/if (r590debug_check(((T590*)(oBC364run_control)))) {
  623. /*IF*/if (((((T347*)C))->_compound/*16*/)!=((void*)(NULL))) {
  624. R=r592use_current(((T592*)((((T347*)C))->_compound/*16*/)));
  625. }
  626. /*FI*/}
  627. /*FI*/return R;
  628. }
  629. /*No:E_DEBUG.end_mark_comment*/
  630. void r347afd_check(T347* C){
  631. /*IF*/if (r590debug_check(((T590*)(oBC364run_control)))) {
  632. /*IF*/if (((((T347*)C))->_compound/*16*/)!=((void*)(NULL))) {
  633. r592afd_check(((T592*)((((T347*)C))->_compound/*16*/)));
  634. }
  635. /*FI*/}
  636. /*FI*/}
  637. /*No:PARSER_BUFFER.make*/
  638. int fBC676buffer=0;
  639. T9 oBC676buffer=NULL;
  640. T9 r676buffer(void){
  641. if (fBC676buffer==0){
  642. T9 R=NULL;
  643. fBC676buffer=1;
  644. R=calloc(4096,sizeof(char));
  645. oBC676buffer=R;}
  646. return oBC676buffer;}
  647. /*No:PARSER_BUFFER.path*/
  648. int r676read_file(T0* a1){
  649. int R=0;
  650. T9 _b=NULL;
  651. T0* _line=NULL;
  652. char _c=0;
  653. int _nb_read=0;
  654. int _i=0;
  655. int _file=0;
  656. void* _p=0;
  657. _p=r7to_external(((T7*)a1));
  658. _file=open(_p,O_RDONLY,0);/*IF*/if ((_file)>=(0)) {
  659. _b=r676buffer();
  660. _line=r676next_line(0);
  661. _line=r676next_line(1);
  662. R=1;
  663. _nb_read=4096;
  664. while (!((_nb_read)<(4096))) {
  665. _nb_read=read(_file,_b,4096);
  666. _i=0;
  667. while (!((_i)==(_nb_read))) {
  668. _c=(_b)[_i];
  669. /*IF*/if ((_c)==('\n')) {
  670. R=(R)+(1);
  671. _line=r676next_line(R);
  672. }
  673.  else if ((_c)==('\15')) {
  674. }
  675. else {
  676. r7extend(((T7*)_line),_c);
  677. }
  678. /*FI*/_i=(_i)+(1);
  679. }
  680. }
  681. /*IF*/if (/*(IRF4.7empty*/((((T7*)((T7*)_line)))->_count/*4*/)==(0)/*)*/) {
  682. R=(R)-(1);
  683. }
  684. /*FI*/_file=close(_file);
  685. }
  686. else {
  687. R=-(1);
  688. }
  689. /*FI*/return R;
  690. }
  691. T0* r676item(int a1){
  692. T0* R=NULL;
  693. R=/*(IRF4.6item*/((((T927*)((T927*)(oBC676text))))->_storage/*0*/)[a1]/*)*/;
  694. return R;
  695. }
  696. void r676load_file(T676* C,T0* a1){
  697. C->_count=r676read_file(a1);
  698. /*IF*/if (((((T676*)C))->_count/*4*/)>=(0)) {
  699. C->_path=a1;
  700. }
  701. else {
  702. C->_path=NULL;
  703. }
  704. /*FI*/}
  705. /*No:PARSER_BUFFER.is_ready*/
  706. T0*oBC676text=NULL;
  707. /*No:PARSER_BUFFER.medium_line_size*/
  708. /*No:PARSER_BUFFER.buffer_size*/
  709. /*No:PARSER_BUFFER.count*/
  710. /*No:PARSER_BUFFER.unset_is_ready*/
  711. T0* r676next_line(int a1){
  712. T0* R=NULL;
  713. /*IF*/if ((a1)<=((((T927*)((T927*)(oBC676text))))->_upper/*8*/)) {
  714. R=/*(IRF4.6item*/((((T927*)((T927*)(oBC676text))))->_storage/*0*/)[a1]/*)*/;
  715. /*[IRF3.3clear*/((((T7*)(((T7*)R))))->_count)=(0);
  716. /*]*/
  717. }
  718. else {
  719. {T7*n=malloc(sizeof(*n));
  720. *n=M7;
  721. r7make(n,80);
  722. R=(T0*)n;
  723. }
  724. r927add_last(((T927*)(oBC676text)),R);
  725. }
  726. /*FI*/return R;
  727. }
  728. /*No:CALL_INFIX_LE.arguments*/
  729. T0* r932add_comment(T932* C,T0* a1){
  730. T0* R=NULL;
  731. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  732. R=(T0*)C;
  733. }
  734. else {
  735. {T529*n=malloc(sizeof(*n));
  736. *n=M529;
  737. r529make(n,(T0*)C,a1);
  738. R=(T0*)n;
  739. }
  740. }
  741. /*FI*/return R;
  742. }
  743. int r932to_integer(T932* C){
  744. int R=0;
  745. r932error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T932*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  746. return R;
  747. }
  748. int r932is_a(T932* C,T0* a1){
  749. int R=0;
  750. R=X291is_a(X291run_type((((T932*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
  751. /*IF*/if (!(R)) {
  752. r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T932*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/);
  753. r932error(X662start_position(a1),((T0*)ms4_662));
  754. }
  755. /*FI*/return R;
  756. }
  757. /*No:CALL_INFIX_LE.is_current*/
  758. int r932jvm_branch_if_false(T932* C){
  759. int R=0;
  760. /*IF*/if (X291is_integer((((T932*)C))->_current_type/*8*/)) {
  761. X662compile_to_jvm((((T932*)C))->_target/*12*/);
  762. X662compile_to_jvm(/*(IRF4.6arg1*/r431first(((T431*)((((T932*)C))->_arguments/*24*/)))/*)*/);
  763. R=r256opcode_if_icmpgt(((T256*)(oBC364code_attribute)));
  764. }
  765. else {
  766. R=r932jvm_standard_branch_if_false(C);
  767. }
  768. /*FI*/return R;
  769. }
  770. /*No:CALL_INFIX_LE.static_value*/
  771. void r932make(T932* C,T0* a1,T0* a2,T0* a3){
  772. T0* _eal=NULL;
  773. /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
  774. r683add_position(a2);
  775. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
  776. r683fatal_error(((T683*)(oBC364eh)),b1);
  777. }/*]*/
  778. }
  779. /*FI*/{T454*n=malloc(sizeof(*n));
  780. *n=M454;
  781. r454make(n,r932operator(),a2);
  782. C->_feature_name=(T0*)n;
  783. }
  784. {T431*n=malloc(sizeof(*n));
  785. *n=M431;
  786. /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
  787. /*]*/
  788. _eal=(T0*)n;
  789. }
  790. r932make_call_1(C,a1,(((T932*)C))->_feature_name/*28*/,_eal);
  791. }
  792. /*No:CALL_INFIX_LE.nb_errors*/
  793. /*No:CALL_INFIX_LE.feature_name*/
  794. /*No:CALL_INFIX_LE.compile_to_jvm_assignment*/
  795. /*No:CALL_INFIX_LE.fz_iinaiv*/
  796. /*No:CALL_INFIX_LE.arg_count*/
  797. int r932jvm_branch_if_true(T932* C){
  798. int R=0;
  799. /*IF*/if (X291is_integer((((T932*)C))->_current_type/*8*/)) {
  800. X662compile_to_jvm((((T932*)C))->_target/*12*/);
  801. X662compile_to_jvm(/*(IRF4.6arg1*/r431first(((T431*)((((T932*)C))->_arguments/*24*/)))/*)*/);
  802. R=r256opcode_if_icmple(((T256*)(oBC364code_attribute)));
  803. }
  804. else {
  805. R=r932jvm_standard_branch_if_true(C);
  806. }
  807. /*FI*/return R;
  808. }
  809. /*No:CALL_INFIX_LE.run_feature*/
  810. /*No:CALL_INFIX_LE.start_position*/
  811. void r932compile_to_jvm_old(T932* C){
  812. X662compile_to_jvm_old((((T932*)C))->_target/*12*/);
  813. /*IF*/{/*AT*/r431compile_to_jvm_old(((T431*)((((T932*)C))->_arguments/*24*/)));
  814. }
  815. /*FI*/}
  816. /*No:CALL_INFIX_LE.target*/
  817. T0* r932to_runnable(T932* C,T0* a1){
  818. T0* R=NULL;
  819. T0* _tla=NULL;
  820. T0* _a=NULL;
  821. /*IF*/if (((((T932*)C))->_current_type/*8*/)==((void*)(NULL))) {
  822. r932to_runnable_0(C,a1);
  823. _a=r431to_runnable(((T431*)((((T932*)C))->_arguments/*24*/)),a1);
  824. /*IF*/if ((_a)==((void*)(NULL))) {
  825. r932error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T932*)C))->_arguments/*24*/)))/*)*/),((T0*)ms55_470));
  826. }
  827. else {
  828. C->_arguments=_a;
  829. }
  830. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  831. r431match_with(((T431*)((((T932*)C))->_arguments/*24*/)),(((T932*)C))->_run_feature/*16*/);
  832. }
  833. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  834. _tla=(((T932*)C))->_result_type/*20*/;
  835. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  836. case 239: 
  837. break;
  838. default:
  839. _tla=NULL;
  840. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  841. C->_result_type=X291run_type(X662result_type(/*(IRF4.6arg1*/r431first(((T431*)((((T932*)C))->_arguments/*24*/)))/*)*/));
  842. }
  843. /*FI*/}
  844. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  845. R=(T0*)C;
  846. }
  847. /*FI*/}
  848. else {
  849. R=r932twin(C);
  850. /*[IRF3.3set_current_type*/((((T932*)(((T932*)R))))->_current_type)=(NULL);
  851. /*]*/
  852. R=r932to_runnable(((T932*)R),a1);
  853. }
  854. /*FI*/return R;
  855. }
  856. /*No:CALL_INFIX_LE.result_type*/
  857. /*No:CALL_INFIX_LE.is_result*/
  858. T0* r932twin(T932* C){
  859. T0* R=NULL;
  860. R=malloc(sizeof(*C));
  861. *((T932*)R)=*C;
  862. return R;
  863. }
  864. /*No:CALL_INFIX_LE.set_current_type*/
  865. /*No:CALL_INFIX_LE.us_le*/
  866. T0* r932operator(void){
  867. T0* R=NULL;
  868. R=((T0*)ms35_473);
  869. return R;
  870. }
  871. int r932is_static(T932* C){
  872. int R=0;
  873. /*IF*/if (X291is_integer(X662result_type((((T932*)C))->_target/*12*/))) {
  874. /*IF*/if ((X662is_static((((T932*)C))->_target/*12*/))&&(X662is_static(/*(IRF4.6arg1*/r431first(((T431*)((((T932*)C))->_arguments/*24*/)))/*)*/))) {
  875. R=1;
  876. /*IF*/if ((X662static_value((((T932*)C))->_target/*12*/))<=(X662static_value(/*(IRF4.6arg1*/r431first(((T431*)((((T932*)C))->_arguments/*24*/)))/*)*/))) {
  877. C->_static_value_mem=1;
  878. }
  879. else {
  880. C->_static_value_mem=0;
  881. }
  882. /*FI*/}
  883. /*FI*/}
  884. /*FI*/return R;
  885. }
  886. void r932standard_compile_target_to_jvm(T932* C){
  887. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T932* C1=C;
  888. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  889. }/*]*/
  890. /*]*/
  891. X291jvm_check_class_invariant((((T932*)C))->_result_type/*20*/);
  892. }
  893. int r932compile_to_jvm_into(T932* C,T0* a1){
  894. int R=0;
  895. R=r932standard_compile_to_jvm_into(C,a1);
  896. return R;
  897. }
  898. /*No:CALL_INFIX_LE.compile_target_to_jvm*/
  899. /*No:CALL_INFIX_LE.fz_07*/
  900. /*No:CALL_INFIX_LE.can_be_dropped*/
  901. /*No:CALL_INFIX_LE.current_type*/
  902. /*No:CALL_INFIX_LE.jvm_assign*/
  903. /*No:CALL_INFIX_LE.static_value_mem*/
  904. void r932make_call_1(T932* C,T0* a1,T0* a2,T0* a3){
  905. C->_target=a1;
  906. C->_feature_name=a2;
  907. C->_arguments=a3;
  908. }
  909. /*No:CALL_INFIX_LE.is_manifest_string*/
  910. /*No:CALL_INFIX_LE.is_void*/
  911. int r932jvm_standard_branch_if_false(T932* C){
  912. int R=0;
  913. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T932* C1=C;
  914. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  915. }/*]*/
  916. /*]*/
  917. R=r256opcode_ifeq(((T256*)(oBC364code_attribute)));
  918. return R;
  919. }
  920. /*No:CALL_INFIX_LE.compile_to_jvm*/
  921. void r932to_runnable_0(T932* C,T0* a1){
  922. C->_current_type=a1;
  923. r932cpc_to_runnable(C,a1);
  924. C->_result_type=/*X496*/((T0*)(((T832*)((T832*)((((T932*)C))->_run_feature/*16*/))))->_result_type/*24*/);
  925. /*IF*/if (((((T932*)C))->_result_type/*20*/)==((void*)(NULL))) {
  926. r683add_position(X496start_position((((T932*)C))->_run_feature/*16*/));
  927. r932error((((T454*)((T454*)((((T932*)C))->_feature_name/*28*/))))->_start_position/*8*/,((T0*)ms1_295));
  928. }
  929.  else if (X291is_like_current((((T932*)C))->_result_type/*20*/)) {
  930. C->_result_type=X662result_type((((T932*)C))->_target/*12*/);
  931. }
  932. /*FI*/}
  933. /*No:CALL_INFIX_LE.is_pre_computable*/
  934. int r932jvm_standard_branch_if_true(T932* C){
  935. int R=0;
  936. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T932* C1=C;
  937. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  938. }/*]*/
  939. /*]*/
  940. R=r256opcode_ifne(((T256*)(oBC364code_attribute)));
  941. return R;
  942. }
  943. int r932use_current(T932* C){
  944. int R=0;
  945. /*IF*/{/*AT*/R=r431use_current(((T431*)((((T932*)C))->_arguments/*24*/)));
  946. }
  947. /*FI*//*IF*/if (R) {
  948. }
  949.  else if (X662is_current((((T932*)C))->_target/*12*/)) {
  950. R=X496use_current((((T932*)C))->_run_feature/*16*/);
  951. }
  952. else {
  953. R=X662use_current((((T932*)C))->_target/*12*/);
  954. }
  955. /*FI*/return R;
  956. }
  957. void r932cpc_to_runnable(T932* C,T0* a1){
  958. T0* _rc=NULL;
  959. T0* _t=NULL;
  960. _t=X662to_runnable((((T932*)C))->_target/*12*/,a1);
  961. /*IF*/if ((_t)==((void*)(NULL))) {
  962. r683add_position(X662start_position((((T932*)C))->_target/*12*/));
  963. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  964. r683fatal_error(((T683*)(oBC364eh)),b1);
  965. }/*]*/
  966. }
  967. /*FI*/C->_target=_t;
  968. _rc=X291run_class(X662result_type((((T932*)C))->_target/*12*/));
  969. C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C);
  970. r576update((((T932*)C))->_target/*12*/,(((T932*)C))->_run_feature/*16*/);
  971. }
  972. void r932error(T0* a1,T0* a2){
  973. r683add_position(a1);
  974. r683error(((T683*)(oBC364eh)),a2);
  975. }
  976. /*No:CALL_INFIX_LE.isa_dca_inline_argument*/
  977. /*No:CALL_INFIX_LE.fatal_error*/
  978. /*No:CALL_INFIX_LE.fz_bad_argument*/
  979. /*No:CALL_INFIX_LE.arg1*/
  980. int r932standard_compile_to_jvm_into(T932* C,T0* a1){
  981. int R=0;
  982. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T932* C1=C;
  983. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  984. }/*]*/
  985. /*]*/
  986. R=X291jvm_convert_to(X291run_type((((T932*)C))->_result_type/*20*/),a1);
  987. return R;
  988. }
  989. /*No:CALL_INFIX_LE.call_proc_call_c2jvm*/
  990. void r932afd_check(T932* C){
  991. T0* _running=NULL;
  992. T0* _rc=NULL;
  993. _rc=X291run_class(X662result_type((((T932*)C))->_target/*12*/));
  994. _running=(((T355*)((T355*)_rc)))->_running/*12*/;
  995. /*IF*/if ((_running)==((void*)(NULL))) {
  996. r683add_position(X662start_position((((T932*)C))->_target/*12*/));
  997. /*[IRF3.6append*/{T0* b1=((T0*)ms1_135);
  998. r7append(((T7*)(oBC683explanation)),b1);
  999. }/*]*/
  1000. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/);
  1001. r7append(((T7*)(oBC683explanation)),b1);
  1002. }/*]*/
  1003. /*[IRF3.6append*/{T0* b1=((T0*)ms141_470);
  1004. r7append(((T7*)(oBC683explanation)),b1);
  1005. }/*]*/
  1006. r683print_as_warning(((T683*)(oBC364eh)));
  1007. r355set_at_run_time(((T355*)_rc));
  1008. }
  1009.  else if ((r396count(((T396*)_running)))>(0)) {
  1010. r576update((((T932*)C))->_target/*12*/,(((T932*)C))->_run_feature/*16*/);
  1011. }
  1012. /*FI*/X662afd_check((((T932*)C))->_target/*12*/);
  1013. /*IF*/{/*AT*/r431afd_check(((T431*)((((T932*)C))->_arguments/*24*/)));
  1014. }
  1015. /*FI*/}
  1016. T0* r629add_comment(T629* C,T0* a1){
  1017. T0* R=NULL;
  1018. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1019. R=(T0*)C;
  1020. }
  1021. /*AF*/else {
  1022. {T46*n=malloc(sizeof(*n));
  1023. *n=M46;
  1024. r46make(n,(T0*)C,a1);
  1025. R=(T0*)n;
  1026. }
  1027. }
  1028. /*FI*/return R;
  1029. }
  1030. void r629make(T629* C,T0* a1,T0* a2){
  1031. C->_left_side=a1;
  1032. C->_right_side=a2;
  1033. }
  1034. /*No:ASSIGNMENT.nb_errors*/
  1035. T0* r629start_position(T629* C){
  1036. T0* R=NULL;
  1037. R=X662start_position((((T629*)C))->_left_side/*8*/);
  1038. return R;
  1039. }
  1040. T0* r629to_runnable(T629* C,T0* a1){
  1041. T0* R=NULL;
  1042. T0* _e=NULL;
  1043. T0* _right_run_type=NULL;
  1044. T0* _left_run_type=NULL;
  1045. /*IF*/if (((((T629*)C))->_run_compound/*4*/)==((void*)(NULL))) {
  1046. C->_run_compound=a1;
  1047. _e=X662to_runnable((((T629*)C))->_left_side/*8*/,r629current_type(C));
  1048. /*IF*/if ((_e)==((void*)(NULL))) {
  1049. r629error(X662start_position((((T629*)C))->_left_side/*8*/),((T0*)ms62_470));
  1050. }
  1051. else {
  1052. C->_left_side=_e;
  1053. }
  1054. /*FI*/_e=X662to_runnable((((T629*)C))->_right_side/*12*/,r629current_type(C));
  1055. /*IF*/if ((_e)==((void*)(NULL))) {
  1056. r629error(X662start_position((((T629*)C))->_right_side/*12*/),((T0*)ms63_470));
  1057. }
  1058. else {
  1059. C->_right_side=_e;
  1060. }
  1061. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1062. /*IF*/if (!(X662is_a((((T629*)C))->_right_side/*12*/,(((T629*)C))->_left_side/*8*/))) {
  1063. r629error(X662start_position((((T629*)C))->_left_side/*8*/),((T0*)ms2_629));
  1064. }
  1065. /*FI*/}
  1066. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1067. _left_run_type=X291run_type(r629left_type(C));
  1068. _right_run_type=X291run_type(r629right_type(C));
  1069. /*IF*/if (X291is_reference(_left_run_type)) {
  1070. /*IF*/if (X291is_reference(_right_run_type)) {
  1071. }
  1072. else {
  1073. X291used_as_reference(_right_run_type);
  1074. }
  1075. /*FI*/}
  1076. else {
  1077. /*IF*/if (X291is_reference(_right_run_type)) {
  1078. /*IF*/if (X662is_void((((T629*)C))->_right_side/*12*/)) {
  1079. r683add_position(X662start_position((((T629*)C))->_right_side/*12*/));
  1080. /*[IRF3.6append*/{T0* b1=((T0*)ms3_629);
  1081. r7append(((T7*)(oBC683explanation)),b1);
  1082. }/*]*/
  1083. r683add_type(r629left_type(C),((T0*)ms4_629));
  1084. r683print_as_error(((T683*)(oBC364eh)));
  1085. }
  1086. else {
  1087. r629warning(X662start_position((((T629*)C))->_left_side/*8*/),((T0*)ms5_629));
  1088. }
  1089. /*FI*/}
  1090. /*FI*/}
  1091. /*FI*/}
  1092. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1093. R=(T0*)C;
  1094. }
  1095. /*FI*/}
  1096. else {
  1097. {T629*n=malloc(sizeof(*n));
  1098. *n=M629;
  1099. r629make(n,(((T629*)C))->_left_side/*8*/,(((T629*)C))->_right_side/*12*/);
  1100. R=(T0*)n;
  1101. }
  1102. R=r629to_runnable(((T629*)R),a1);
  1103. }
  1104. /*FI*/return R;
  1105. }
  1106. T0* r629right_type(T629* C){
  1107. T0* R=NULL;
  1108. R=X662result_type((((T629*)C))->_right_side/*12*/);
  1109. return R;
  1110. }
  1111. /*No:ASSIGNMENT.left_side*/
  1112. T0* r629current_type(T629* C){
  1113. T0* R=NULL;
  1114. /*IF*/if (((((T629*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
  1115. R=(((T592*)((T592*)((((T629*)C))->_run_compound/*4*/))))->_current_type/*4*/;
  1116. }
  1117. /*FI*/return R;
  1118. }
  1119. /*No:ASSIGNMENT.run_compound*/
  1120. void r629compile_to_jvm(T629* C){
  1121. X662compile_to_jvm_assignment((((T629*)C))->_left_side/*8*/,(T0*)C);
  1122. }
  1123. int r629is_pre_computable(T629* C){
  1124. int R=0;
  1125. T0* _rf6=NULL;
  1126. T0* _call=NULL;
  1127. /*IF*/if (X662is_result((((T629*)C))->_left_side/*8*/)) {
  1128. /*IF*/if (X662is_pre_computable((((T629*)C))->_right_side/*12*/)) {
  1129. _call=(((T629*)C))->_right_side/*12*/;
  1130. if(NULL!=(_call))switch(((T0*)_call)->id) {
  1131. case 121: case 890: case 414: case 453: case 180: case 460: case 932: case 990: case 253: case 278: case 767: case 760: case 915: case 534: case 999: case 517: case 520: case 557: case 72: case 574: case 90: case 57: case 313: case 487: case 492: case 655: case 112: 
  1132. break;
  1133. default:
  1134. _call=NULL;
  1135. };/*IF*/if ((_call)!=((void*)(NULL))) {
  1136. _rf6=X295run_feature(_call);
  1137. if(NULL!=(_rf6))switch(((T0*)_rf6)->id) {
  1138. case 868: 
  1139. break;
  1140. default:
  1141. _rf6=NULL;
  1142. };R=(_rf6)==((void*)(NULL));
  1143. }
  1144. else {
  1145. R=1;
  1146. }
  1147. /*FI*/}
  1148. /*FI*/}
  1149. /*FI*/return R;
  1150. }
  1151. int r629use_current(T629* C){
  1152. int R=0;
  1153. R=X662use_current((((T629*)C))->_left_side/*8*/);
  1154. R=(R)||(X662use_current((((T629*)C))->_right_side/*12*/));
  1155. return R;
  1156. }
  1157. /*No:ASSIGNMENT.right_side*/
  1158. /*No:ASSIGNMENT.fz_blhsoa*/
  1159. /*No:ASSIGNMENT.fz_brhsoa*/
  1160. void r629error(T0* a1,T0* a2){
  1161. r683add_position(a1);
  1162. r683error(((T683*)(oBC364eh)),a2);
  1163. }
  1164. /*No:ASSIGNMENT.end_mark_comment*/
  1165. void r629afd_check(T629* C){
  1166. X662afd_check((((T629*)C))->_right_side/*12*/);
  1167. }
  1168. T0* r629left_type(T629* C){
  1169. T0* R=NULL;
  1170. R=X662result_type((((T629*)C))->_left_side/*8*/);
  1171. return R;
  1172. }
  1173. void r629warning(T0* a1,T0* a2){
  1174. r683add_position(a1);
  1175. r683warning(((T683*)(oBC364eh)),a2);
  1176. }
  1177. int r239id(T239* C){
  1178. int R=0;
  1179. R=(((T355*)((T355*)(r239run_class(C)))))->_id/*4*/;
  1180. return R;
  1181. }
  1182. void r239jvm_target_descriptor_in(T239* C,T0* a1){
  1183. X291jvm_target_descriptor_in((((T239*)C))->_run_type/*8*/,a1);
  1184. }
  1185. T0*oBC646tmp_written_mark=NULL;
  1186. int r239jvm_if_x_eq(T239* C){
  1187. int R=0;
  1188. R=X291jvm_if_x_eq((((T239*)C))->_run_type/*8*/);
  1189. return R;
  1190. }
  1191. int r239has_creation(T239* C,T0* a1){
  1192. int R=0;
  1193. R=X291has_creation((((T239*)C))->_run_type/*8*/,a1);
  1194. return R;
  1195. }
  1196. /*No:TYPE_LIKE_ARGUMENT.is_anchored*/
  1197. int r239is_array(T239* C){
  1198. int R=0;
  1199. R=X291is_array((((T239*)C))->_run_type/*8*/);
  1200. return R;
  1201. }
  1202. int r239is_a(T239* C,T0* a1){
  1203. int R=0;
  1204. R=X291is_a((((T239*)C))->_run_type/*8*/,a1);
  1205. return R;
  1206. }
  1207. void r239jvm_to_reference(T239* C){
  1208. X291jvm_to_reference((((T239*)C))->_run_type/*8*/);
  1209. }
  1210. int r239is_pointer(T239* C){
  1211. int R=0;
  1212. R=X291is_pointer((((T239*)C))->_run_type/*8*/);
  1213. return R;
  1214. }
  1215. /*No:TYPE_LIKE_ARGUMENT.run_type*/
  1216. int r239is_dummy_expanded(T239* C){
  1217. int R=0;
  1218. R=X291is_dummy_expanded((((T239*)C))->_run_type/*8*/);
  1219. return R;
  1220. }
  1221. int r239jvm_push_default(T239* C){
  1222. int R=0;
  1223. R=X291jvm_push_default((((T239*)C))->_run_type/*8*/);
  1224. return R;
  1225. }
  1226. int r239is_string(T239* C){
  1227. int R=0;
  1228. R=X291is_string((((T239*)C))->_run_type/*8*/);
  1229. return R;
  1230. }
  1231. /*No:TYPE_LIKE_ARGUMENT.is_like_feature*/
  1232. /*No:TYPE_LIKE_ARGUMENT.is_like_current*/
  1233. T0* r239ultimate_run_type(T239* C,T0* a1){
  1234. T0* R=NULL;
  1235. T0* _t=NULL;
  1236. _t=a1;
  1237. while (!((_t)==((void*)(X291run_type(_t))))) {
  1238. _t=X291run_type(_t);
  1239. }
  1240. /*IF*/if (((((T239*)C))->_run_type/*8*/)==((void*)(NULL))) {
  1241. C->_run_type=_t;
  1242. R=(T0*)C;
  1243. }
  1244. else {
  1245. R=r239twin(C);
  1246. /*[IRF3.3set_run_type*/((((T239*)(((T239*)R))))->_run_type)=(_t);
  1247. /*]*/
  1248. }
  1249. /*FI*/return R;
  1250. }
  1251. void r239make(T239* C,T0* a1,T0* a2){
  1252. C->_start_position=a1;
  1253. C->_like_what=a2;
  1254. r7copy(((T7*)(oBC646tmp_written_mark)),((T0*)ms113_470));
  1255. r7append(((T7*)(oBC646tmp_written_mark)),(((T886*)((T886*)((((T239*)C))->_like_what/*12*/))))->_to_string/*12*/);
  1256. C->_written_mark=r902item(oBC646tmp_written_mark);
  1257. }
  1258. void r239anchor_cycle_start(T239* C){
  1259. int _i=0;
  1260. /*IF*/if (((((T907*)((T907*)(oBC646visited))))->_upper/*8*/)<(0)) {
  1261. r907add_last(((T907*)(oBC646visited)),(((T239*)C))->_start_position/*4*/);
  1262. }
  1263.  else if (r907fast_has(((T907*)(oBC646visited)),(((T239*)C))->_start_position/*4*/)) {
  1264. _i=0;
  1265. while (!((_i)>((((T907*)((T907*)(oBC646visited))))->_upper/*8*/))) {
  1266. r683add_position(/*(IRF4.6item*/((((T907*)((T907*)(oBC646visited))))->_storage/*0*/)[_i]/*)*/);
  1267. _i=(_i)+(1);
  1268. }
  1269. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms64_470);
  1270. r683fatal_error(((T683*)(oBC364eh)),b1);
  1271. }/*]*/
  1272. }
  1273. else {
  1274. r907add_last(((T907*)(oBC646visited)),(((T239*)C))->_start_position/*4*/);
  1275. }
  1276. /*FI*/}
  1277. /*No:TYPE_LIKE_ARGUMENT.fz_bad_anchor*/
  1278. void r239jvm_return_code(T239* C){
  1279. X291jvm_return_code((((T239*)C))->_run_type/*8*/);
  1280. }
  1281. void r239jvm_xnewarray(T239* C){
  1282. X291jvm_xnewarray((((T239*)C))->_run_type/*8*/);
  1283. }
  1284. void r239jvm_descriptor_in(T239* C,T0* a1){
  1285. X291jvm_descriptor_in((((T239*)C))->_run_type/*8*/,a1);
  1286. }
  1287. /*No:TYPE_LIKE_ARGUMENT.start_position*/
  1288. /*No:TYPE_LIKE_ARGUMENT.like_what*/
  1289. int r239is_user_expanded(T239* C){
  1290. int R=0;
  1291. R=X291is_user_expanded((((T239*)C))->_run_type/*8*/);
  1292. return R;
  1293. }
  1294. int r239is_character(T239* C){
  1295. int R=0;
  1296. R=X291is_character((((T239*)C))->_run_type/*8*/);
  1297. return R;
  1298. }
  1299. /*No:TYPE_LIKE_ARGUMENT.written_mark*/
  1300. /*No:TYPE_LIKE_ARGUMENT.is_run_type*/
  1301. T0* r239to_runnable(T239* C,T0* a1){
  1302. T0* R=NULL;
  1303. T0* _t=NULL;
  1304. r239anchor_cycle_start(C);
  1305. _t=X291to_runnable((((T886*)((T886*)((((T239*)C))->_like_what/*12*/))))->_result_type/*24*/,a1);
  1306. /*IF*/if ((_t)==((void*)(NULL))) {
  1307. r239error((((T239*)C))->_start_position/*4*/,((T0*)ms54_470));
  1308. }
  1309. /*FI*/R=r239ultimate_run_type(C,_t);
  1310. r239anchor_cycle_end(C);
  1311. return R;
  1312. }
  1313. /*No:TYPE_LIKE_ARGUMENT.rank*/
  1314. /*No:TYPE_LIKE_ARGUMENT.is_formal_generic*/
  1315. T0* r239generic_list(T239* C){
  1316. T0* R=NULL;
  1317. /*IF*/if (r239is_generic(C)) {
  1318. R=X291generic_list((((T239*)C))->_run_type/*8*/);
  1319. }
  1320. else {
  1321. r239fatal_error_generic_list(C);
  1322. }
  1323. /*FI*/return R;
  1324. }
  1325. int r239is_real(T239* C){
  1326. int R=0;
  1327. R=X291is_real((((T239*)C))->_run_type/*8*/);
  1328. return R;
  1329. }
  1330. T0* r239twin(T239* C){
  1331. T0* R=NULL;
  1332. R=malloc(sizeof(*C));
  1333. *((T239*)R)=*C;
  1334. return R;
  1335. }
  1336. int r239is_bit(T239* C){
  1337. int R=0;
  1338. R=X291is_bit((((T239*)C))->_run_type/*8*/);
  1339. return R;
  1340. }
  1341. void r239fatal_error_generic_list(T239* C){
  1342. r683add_type((T0*)C,((T0*)ms12_291));
  1343. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1344. }
  1345. void r239jvm_check_class_invariant(T239* C){
  1346. X291jvm_check_class_invariant((((T239*)C))->_run_type/*8*/);
  1347. }
  1348. void r239jvm_xaload(T239* C){
  1349. X291jvm_xaload((((T239*)C))->_run_type/*8*/);
  1350. }
  1351. T0* r239smallest_ancestor(T239* C,T0* a1){
  1352. T0* R=NULL;
  1353. R=X291smallest_ancestor((((T239*)C))->_run_type/*8*/,a1);
  1354. return R;
  1355. }
  1356. /*No:TYPE_LIKE_ARGUMENT.set_run_type*/
  1357. int r239is_boolean(T239* C){
  1358. int R=0;
  1359. R=X291is_boolean((((T239*)C))->_run_type/*8*/);
  1360. return R;
  1361. }
  1362. int r239is_double(T239* C){
  1363. int R=0;
  1364. R=X291is_double((((T239*)C))->_run_type/*8*/);
  1365. return R;
  1366. }
  1367. int r239jvm_stack_space(T239* C){
  1368. int R=0;
  1369. /*IF*/if (r239is_double(C)) {
  1370. R=2;
  1371. }
  1372. else {
  1373. R=1;
  1374. }
  1375. /*FI*/return R;
  1376. }
  1377. T0* r239run_class(T239* C){
  1378. T0* R=NULL;
  1379. R=r604run_class((((T239*)C))->_run_type/*8*/);
  1380. return R;
  1381. }
  1382. T0* r239run_time_mark(T239* C){
  1383. T0* R=NULL;
  1384. /*IF*/if (((((T239*)C))->_run_type/*8*/)!=((void*)(NULL))) {
  1385. R=X291run_time_mark((((T239*)C))->_run_type/*8*/);
  1386. }
  1387. /*FI*/return R;
  1388. }
  1389. /*No:TYPE_LIKE_ARGUMENT.fz_cad*/
  1390. int r239is_a_in(T239* C,T0* a1,T0* a2){
  1391. int R=0;
  1392. T0* _ct=NULL;
  1393. T0* _t2=NULL;
  1394. T0* _t1=NULL;
  1395. /*IF*/if (((((T239*)C))->_written_mark/*16*/)==((void*)(X291written_mark(a1)))) {
  1396. R=1;
  1397. }
  1398. else {
  1399. _ct=(((T355*)((T355*)a2)))->_current_type/*0*/;
  1400. _t1=r239to_runnable(C,_ct);
  1401. _t2=X291to_runnable(a1,_ct);
  1402. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  1403. R=1;
  1404. }
  1405. else {
  1406. R=X291is_a(_t1,_t2);
  1407. }
  1408. /*FI*/}
  1409. /*FI*/return R;
  1410. }
  1411. T0* r239look_up_for(T239* C,T0* a1,T0* a2){
  1412. T0* R=NULL;
  1413. R=r605look_up_for(((T605*)(r239base_class(C))),a1,a2);
  1414. return R;
  1415. }
  1416. int r239jvm_convert_to(T239* C,T0* a1){
  1417. int R=0;
  1418. R=X291jvm_convert_to((((T239*)C))->_run_type/*8*/,a1);
  1419. return R;
  1420. }
  1421. T0* r239expanded_initializer(T239* C){
  1422. T0* R=NULL;
  1423. R=X291expanded_initializer((((T239*)C))->_run_type/*8*/);
  1424. return R;
  1425. }
  1426. int r239jvm_if_x_ne(T239* C){
  1427. int R=0;
  1428. R=X291jvm_if_x_ne((((T239*)C))->_run_type/*8*/);
  1429. return R;
  1430. }
  1431. /*No:TYPE_LIKE_ARGUMENT.fz_dot*/
  1432. int r239is_generic(T239* C){
  1433. int R=0;
  1434. R=X291is_generic((((T239*)C))->_run_type/*8*/);
  1435. return R;
  1436. }
  1437. void r239jvm_write_local(T239* C,int a1){
  1438. X291jvm_write_local((((T239*)C))->_run_type/*8*/,a1);
  1439. }
  1440. void r239jvm_initialize_local(T239* C,int a1){
  1441. X291jvm_initialize_local((((T239*)C))->_run_type/*8*/,a1);
  1442. }
  1443. /*No:TYPE_LIKE_ARGUMENT.used_as_reference*/
  1444. int r239is_reference(T239* C){
  1445. int R=0;
  1446. R=X291is_reference((((T239*)C))->_run_type/*8*/);
  1447. return R;
  1448. }
  1449. void r239error(T0* a1,T0* a2){
  1450. r683add_position(a1);
  1451. r683error(((T683*)(oBC364eh)),a2);
  1452. }
  1453. T0* r239base_class(T239* C){
  1454. T0* R=NULL;
  1455. T0* _bcn=NULL;
  1456. _bcn=r239base_class_name(C);
  1457. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  1458. R=r451base_class(((T451*)_bcn));
  1459. }
  1460. else {
  1461. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  1462. r7append(((T7*)(oBC683explanation)),b1);
  1463. }/*]*/
  1464. r683add_type((T0*)C,((T0*)ms67_470));
  1465. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1466. }
  1467. /*FI*/return R;
  1468. }
  1469. void r239jvm_xastore(T239* C){
  1470. X291jvm_xastore((((T239*)C))->_run_type/*8*/);
  1471. }
  1472. /*No:TYPE_LIKE_ARGUMENT.fatal_error*/
  1473. int r239is_any(T239* C){
  1474. int R=0;
  1475. R=X291is_any((((T239*)C))->_run_type/*8*/);
  1476. return R;
  1477. }
  1478. int r239jvm_method_flags(T239* C){
  1479. int R=0;
  1480. R=X291jvm_method_flags((((T239*)C))->_run_type/*8*/);
  1481. return R;
  1482. }
  1483. T0*oBC646visited=NULL;
  1484. T0* r239base_class_name(T239* C){
  1485. T0* R=NULL;
  1486. R=X291base_class_name((((T239*)C))->_run_type/*8*/);
  1487. return R;
  1488. }
  1489. void r239jvm_push_local(T239* C,int a1){
  1490. X291jvm_push_local((((T239*)C))->_run_type/*8*/,a1);
  1491. }
  1492. int r239is_expanded(T239* C){
  1493. int R=0;
  1494. R=X291is_expanded((((T239*)C))->_run_type/*8*/);
  1495. return R;
  1496. }
  1497. /*No:TYPE_LIKE_ARGUMENT.fz_like_foo*/
  1498. int r239is_basic_eiffel_expanded(T239* C){
  1499. int R=0;
  1500. R=X291is_basic_eiffel_expanded((((T239*)C))->_run_type/*8*/);
  1501. return R;
  1502. }
  1503. int r239is_none(T239* C){
  1504. int R=0;
  1505. R=X291is_none((((T239*)C))->_run_type/*8*/);
  1506. return R;
  1507. }
  1508.  
  1509.