home *** CD-ROM | disk | FTP | other *** search
/ Amiga ACS 1998 #4 / amigaacscoverdisc1998-041998.iso / utilities / shareware / dev / ppcsmalleiffel / source.lha / bin_c / compile_to_jvm23.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  44.6 KB  |  1,555 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. T0* r377to_runnable_integer(T377* C,T0* a1){
  10. T0* R=NULL;
  11. T0* _e_when=NULL;
  12. int _i=0;
  13. /*IF*/if (((((T377*)C))->_e_inspect/*0*/)==((void*)(NULL))) {
  14. C->_e_inspect=a1;
  15. _i=1;
  16. while (!(((_i)>((((T147*)((T147*)((((T377*)C))->_list/*4*/))))->_upper/*8*/))||((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)>(0)))) {
  17. _e_when=r843to_runnable_integer(((T843*)(r147item(((T147*)((((T377*)C))->_list/*4*/)),_i))),(T0*)C);
  18. /*IF*/if ((_e_when)==((void*)(NULL))) {
  19. r377error(r377start_position(C),((T0*)ms1_377));
  20. }
  21. else {
  22. /*[IRF3.6put*/{T147* C1=((T147*)((((T377*)C))->_list/*4*/));
  23. T0* b1=_e_when;
  24. int b2=_i;
  25. ((((T147*)C1))->_storage/*0*/)[(b2)-((((T147*)C1))->_lower/*12*/)]=(b1);
  26. }/*]*/
  27. }
  28. /*FI*/_i=(_i)+(1);
  29. }
  30. R=(T0*)C;
  31. }
  32. else {
  33. {T377*n=malloc(sizeof(*n));
  34. *n=M377;
  35. r377from_when_list(n,(T0*)C);
  36. R=(T0*)n;
  37. }
  38. R=r377to_runnable_integer(((T377*)R),a1);
  39. }
  40. /*FI*/return R;
  41. }
  42. /*No:WHEN_LIST.make*/
  43. /*No:WHEN_LIST.nb_errors*/
  44. T0* r377start_position(T377* C){
  45. T0* R=NULL;
  46. R=(((T843*)((T843*)(r147item(((T147*)((((T377*)C))->_list/*4*/)),1)))))->_start_position/*0*/;
  47. return R;
  48. }
  49. /*No:WHEN_LIST.em1*/
  50. /*No:WHEN_LIST.list*/
  51. /*No:WHEN_LIST.current_type*/
  52. void r377from_when_list(T377* C,T0* a1){
  53. T0* _e_when=NULL;
  54. int _i=0;
  55. C->_list=r147twin(((T147*)((((T377*)((T377*)a1)))->_list/*4*/)));
  56. _i=1;
  57. while (!((_i)>((((T147*)((T147*)((((T377*)C))->_list/*4*/))))->_upper/*8*/))) {
  58. {T843*n=malloc(sizeof(*n));
  59. *n=M843;
  60. r843from_e_when(n,r147item(((T147*)((((T377*)C))->_list/*4*/)),_i));
  61. _e_when=(T0*)n;
  62. }
  63. /*[IRF3.6put*/{T147* C1=((T147*)((((T377*)C))->_list/*4*/));
  64. T0* b1=_e_when;
  65. int b2=_i;
  66. ((((T147*)C1))->_storage/*0*/)[(b2)-((((T147*)C1))->_lower/*12*/)]=(b1);
  67. }/*]*/
  68. _i=(_i)+(1);
  69. }
  70. }
  71. void r377compile_to_jvm(T377* C,T0* a1){
  72. int _i=0;
  73. int _r=0;
  74. /*IF*/if (((((T377*)C))->_list/*4*/)!=((void*)(NULL))) {
  75. _r=(((T147*)((T147*)((((T377*)C))->_list/*4*/))))->_upper/*8*/;
  76. _i=1;
  77. while (!((_r)==(0))) {
  78. _r=(_r)-(1);
  79. r843compile_to_jvm(((T843*)(r147item(((T147*)((((T377*)C))->_list/*4*/)),_i))),a1,_r);
  80. _i=(_i)+(1);
  81. }
  82. }
  83. /*FI*/}
  84. int r377use_current(T377* C){
  85. int R=0;
  86. int _i=0;
  87. /*IF*/if (((((T377*)C))->_list/*4*/)!=((void*)(NULL))) {
  88. _i=1;
  89. while (!(((_i)>((((T147*)((T147*)((((T377*)C))->_list/*4*/))))->_upper/*8*/))||(R))) {
  90. R=r843use_current(((T843*)(r147item(((T147*)((((T377*)C))->_list/*4*/)),_i))));
  91. _i=(_i)+(1);
  92. }
  93. }
  94. /*FI*/return R;
  95. }
  96. void r377error(T0* a1,T0* a2){
  97. r683add_position(a1);
  98. r683error(((T683*)(oBC364eh)),a2);
  99. }
  100. /*No:WHEN_LIST.add_last*/
  101. int r377includes_integer(T377* C,int a1){
  102. int R=0;
  103. int _i=0;
  104. _i=1;
  105. while (!((R)||((_i)>((((T147*)((T147*)((((T377*)C))->_list/*4*/))))->_upper/*8*/)))) {
  106. R=r843includes_integer(((T843*)(r147item(((T147*)((((T377*)C))->_list/*4*/)),_i))),a1);
  107. _i=(_i)+(1);
  108. }
  109. return R;
  110. }
  111. T0* r377to_runnable_character(T377* C,T0* a1){
  112. T0* R=NULL;
  113. T0* _e_when=NULL;
  114. int _i=0;
  115. /*IF*/if (((((T377*)C))->_e_inspect/*0*/)==((void*)(NULL))) {
  116. C->_e_inspect=a1;
  117. _i=1;
  118. while (!(((_i)>((((T147*)((T147*)((((T377*)C))->_list/*4*/))))->_upper/*8*/))||((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)>(0)))) {
  119. _e_when=r843to_runnable_character(((T843*)(r147item(((T147*)((((T377*)C))->_list/*4*/)),_i))),(T0*)C);
  120. /*IF*/if ((_e_when)==((void*)(NULL))) {
  121. r377error(r377start_position(C),((T0*)ms1_377));
  122. }
  123. else {
  124. /*[IRF3.6put*/{T147* C1=((T147*)((((T377*)C))->_list/*4*/));
  125. T0* b1=_e_when;
  126. int b2=_i;
  127. ((((T147*)C1))->_storage/*0*/)[(b2)-((((T147*)C1))->_lower/*12*/)]=(b1);
  128. }/*]*/
  129. }
  130. /*FI*/_i=(_i)+(1);
  131. }
  132. R=(T0*)C;
  133. }
  134. else {
  135. {T377*n=malloc(sizeof(*n));
  136. *n=M377;
  137. r377from_when_list(n,(T0*)C);
  138. R=(T0*)n;
  139. }
  140. R=r377to_runnable_character(((T377*)R),a1);
  141. }
  142. /*FI*/return R;
  143. }
  144. void r377compile_to_jvm_resolve_branch(T377* C){
  145. int _i=0;
  146. /*IF*/if (((((T377*)C))->_list/*4*/)!=((void*)(NULL))) {
  147. _i=(((T147*)((T147*)((((T377*)C))->_list/*4*/))))->_upper/*8*/;
  148. while (!((_i)==(0))) {
  149. /*[IRF3.6compile_to_jvm_resolve_branch*/{T843* C1=((T843*)(r147item(((T147*)((((T377*)C))->_list/*4*/)),_i)));
  150. r256resolve_u2_branch((((T843*)C1))->_point2/*24*/);
  151. }/*]*/
  152. _i=(_i)-(1);
  153. }
  154. }
  155. /*FI*/}
  156. void r377afd_check(T377* C){
  157. int _i=0;
  158. _i=(((T147*)((T147*)((((T377*)C))->_list/*4*/))))->_upper/*8*/;
  159. while (!((_i)==(0))) {
  160. r843afd_check(((T843*)(r147item(((T147*)((((T377*)C))->_list/*4*/)),_i))));
  161. _i=(_i)-(1);
  162. }
  163. }
  164. /*No:WHEN_LIST.e_inspect*/
  165. /*No:ERROR_HANDLER.nb_warnings*/
  166. T0*oBC683explanation=NULL;
  167. void r683incr_nb_warnings(T683* C){
  168. C->_nb_warnings=((((T683*)C))->_nb_warnings/*4*/)+(1);
  169. }
  170. /*No:ERROR_HANDLER.extend*/
  171. void r683incr_nb_errors(T683* C){
  172. C->_nb_errors=((((T683*)C))->_nb_errors/*0*/)+(1);
  173. /*IF*/if (((((T683*)C))->_nb_errors/*0*/)>=(6)) {
  174. r441put_string(((T441*)(oBC1std_error)),((T0*)ms75_470));
  175. r441put_string(((T441*)(oBC1std_error)),((T0*)ms5_683));
  176. exit(1);
  177. }
  178. /*FI*/}
  179. /*No:ERROR_HANDLER.exit_failure_code*/
  180. int r683empty(void){
  181. int R=0;
  182. R=(/*(IRF4.7empty*/((((T7*)((T7*)(oBC683explanation))))->_count/*4*/)==(0)/*)*/)&&(r38empty(((T38*)(oBC683positions))));
  183. return R;
  184. }
  185. /*No:ERROR_HANDLER.make*/
  186. /*No:ERROR_HANDLER.nb_errors*/
  187. void r683print_as_fatal_error(T683* C){
  188. r683do_print(((T0*)ms4_683));
  189. exit(1);
  190. }
  191. /*No:ERROR_HANDLER.no_warning*/
  192. void r683add_position(T0* a1){
  193. /*IF*/if ((a1)!=((void*)(NULL))) {
  194. /*IF*/if (!(r38has(((T38*)(oBC683positions)),a1))) {
  195. r38add_last(((T38*)(oBC683positions)),a1);
  196. }
  197. /*FI*/}
  198. /*FI*/}
  199. /*No:ERROR_HANDLER.set_no_warning*/
  200. void r683print_as_warning(T683* C){
  201. /*IF*/if ((((T683*)C))->_no_warning/*8*/) {
  202. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
  203. /*]*/
  204. r38clear(((T38*)(oBC683positions)));
  205. /*]*/
  206. }
  207. else {
  208. r683do_print(((T0*)ms2_683));
  209. r683incr_nb_warnings(C);
  210. }
  211. /*FI*/}
  212. void r683print_as_error(T683* C){
  213. r683do_print(((T0*)ms3_683));
  214. r683incr_nb_errors(C);
  215. }
  216. void r683add_type(T0* a1,T0* a2){
  217. /*[IRF3.6append*/{T0* b1=((T0*)ms1_683);
  218. r7append(((T7*)(oBC683explanation)),b1);
  219. }/*]*/
  220. /*IF*/if (X291is_run_type(a1)) {
  221. /*[IRF3.6append*/{T0* b1=X291run_time_mark(a1);
  222. r7append(((T7*)(oBC683explanation)),b1);
  223. }/*]*/
  224. }
  225. else {
  226. /*[IRF3.6append*/{T0* b1=X291written_mark(a1);
  227. r7append(((T7*)(oBC683explanation)),b1);
  228. }/*]*/
  229. }
  230. /*FI*//*[IRF3.6append*/{T0* b1=a2;
  231. r7append(((T7*)(oBC683explanation)),b1);
  232. }/*]*/
  233. r683add_position(X291start_position(a1));
  234. }
  235. void r683error(T683* C,T0* a1){
  236. /*[IRF3.6append*/{T0* b1=a1;
  237. r7append(((T7*)(oBC683explanation)),b1);
  238. }/*]*/
  239. r683print_as_error(C);
  240. }
  241. /*No:ERROR_HANDLER.fz_error_stars*/
  242. void r683fatal_error(T683* C,T0* a1){
  243. r7append(((T7*)(oBC683explanation)),a1);
  244. r683print_as_fatal_error(C);
  245. }
  246. /*No:ERROR_HANDLER.cancel*/
  247. T0*oBC683positions=NULL;
  248. /*No:ERROR_HANDLER.append*/
  249. void r683warning(T683* C,T0* a1){
  250. /*[IRF3.6append*/{T0* b1=a1;
  251. r7append(((T7*)(oBC683explanation)),b1);
  252. }/*]*/
  253. r683print_as_warning(C);
  254. }
  255. void r683do_print(T0* a1){
  256. char _previous_cc=0;
  257. char _cc=0;
  258. int _cpt=0;
  259. int _i=0;
  260. r441put_string(((T441*)(oBC1std_error)),((T0*)ms75_470));
  261. r441put_string(((T441*)(oBC1std_error)),a1);
  262. r441put_string(((T441*)(oBC1std_error)),((T0*)ms6_683));
  263. _i=1;
  264. _cpt=(9)+((((T7*)((T7*)a1)))->_count/*4*/);
  265. while (!((_i)>((((T7*)((T7*)(oBC683explanation))))->_count/*4*/))) {
  266. _previous_cc=_cc;
  267. _cc=/*(IRF4.6item*/((((T7*)((T7*)(oBC683explanation))))->_storage/*0*/)[(_i)-(1)]/*)*/;
  268. _i=(_i)+(1);
  269. /*IF*/if ((_cpt)>(60)) {
  270. /*IF*/if ((_cc)==('\40')) {
  271. /*[IRF3.6put_character*/{T441* C1=((T441*)(oBC1std_error));
  272. char b1='\n';
  273. putc(b1,((FILE*)(stderr)));
  274. }/*]*/
  275. _cpt=0;
  276. }
  277.  else if (((_previous_cc)==('\54'))||((_previous_cc)==('\57'))) {
  278. /*[IRF3.6put_character*/{T441* C1=((T441*)(oBC1std_error));
  279. char b1='\n';
  280. putc(b1,((FILE*)(stderr)));
  281. }/*]*/
  282. /*[IRF3.6put_character*/{T441* C1=((T441*)(oBC1std_error));
  283. char b1=_cc;
  284. putc(b1,((FILE*)(stderr)));
  285. }/*]*/
  286. _cpt=1;
  287. }
  288. else {
  289. /*[IRF3.6put_character*/{T441* C1=((T441*)(oBC1std_error));
  290. char b1=_cc;
  291. putc(b1,((FILE*)(stderr)));
  292. }/*]*/
  293. _cpt=(_cpt)+(1);
  294. }
  295. /*FI*/}
  296. else {
  297. /*[IRF3.6put_character*/{T441* C1=((T441*)(oBC1std_error));
  298. char b1=_cc;
  299. putc(b1,((FILE*)(stderr)));
  300. }/*]*/
  301. {int z1=_cc;
  302.  
  303. if((10==z1)){
  304. _cpt=0;
  305. }
  306.  else{_cpt=(_cpt)+(1);
  307. }}
  308. }
  309. /*FI*/}
  310. /*[IRF3.6put_character*/{T441* C1=((T441*)(oBC1std_error));
  311. char b1='\n';
  312. putc(b1,((FILE*)(stderr)));
  313. }/*]*/
  314. _i=(((T38*)((T38*)(oBC683positions))))->_lower/*12*/;
  315. while (!((_i)>((((T38*)((T38*)(oBC683positions))))->_upper/*8*/))) {
  316. r627show(((T627*)(r38item(((T38*)(oBC683positions)),_i))));
  317. _i=(_i)+(1);
  318. }
  319. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
  320. /*]*/
  321. r38clear(((T38*)(oBC683positions)));
  322. /*]*/
  323. r441put_string(((T441*)(oBC1std_error)),((T0*)ms7_683));
  324. }
  325. /*No:CALL_PREFIX_FREEOP.arguments*/
  326. T0* r990add_comment(T990* C,T0* a1){
  327. T0* R=NULL;
  328. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  329. R=(T0*)C;
  330. }
  331. else {
  332. {T529*n=malloc(sizeof(*n));
  333. *n=M529;
  334. r529make(n,(T0*)C,a1);
  335. R=(T0*)n;
  336. }
  337. }
  338. /*FI*/return R;
  339. }
  340. int r990to_integer(T990* C){
  341. int R=0;
  342. T0* _rf1=NULL;
  343. _rf1=(((T990*)C))->_run_feature/*16*/;
  344. if(NULL!=(_rf1))switch(((T0*)_rf1)->id) {
  345. case 808: 
  346. break;
  347. default:
  348. _rf1=NULL;
  349. };/*IF*/if ((_rf1)==((void*)(NULL))) {
  350. r990error(/*(IRF4.6start_position*/(((T406*)((T406*)((((T990*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  351. }
  352. else {
  353. R=X662to_integer((((T808*)((T808*)_rf1)))->_value/*48*/);
  354. }
  355. /*FI*/return R;
  356. }
  357. int r990is_a(T990* C,T0* a1){
  358. int R=0;
  359. R=X291is_a(X291run_type((((T990*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
  360. /*IF*/if (!(R)) {
  361. r683add_position(/*(IRF4.6start_position*/(((T406*)((T406*)((((T990*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/);
  362. r990error(X662start_position(a1),((T0*)ms4_662));
  363. }
  364. /*FI*/return R;
  365. }
  366. /*No:CALL_PREFIX_FREEOP.is_current*/
  367. /*No:CALL_PREFIX_FREEOP.jvm_branch_if_false*/
  368. /*No:CALL_PREFIX_FREEOP.static_value*/
  369. /*No:CALL_PREFIX_FREEOP.make*/
  370. /*No:CALL_PREFIX_FREEOP.nb_errors*/
  371. /*No:CALL_PREFIX_FREEOP.feature_name*/
  372. /*No:CALL_PREFIX_FREEOP.compile_to_jvm_assignment*/
  373. /*No:CALL_PREFIX_FREEOP.fz_iinaiv*/
  374. /*No:CALL_PREFIX_FREEOP.arg_count*/
  375. /*No:CALL_PREFIX_FREEOP.jvm_branch_if_true*/
  376. /*No:CALL_PREFIX_FREEOP.run_feature*/
  377. /*No:CALL_PREFIX_FREEOP.start_position*/
  378. void r990compile_to_jvm_old(T990* C){
  379. X662compile_to_jvm_old((((T990*)C))->_target/*12*/);
  380. /*IF*//*AF*//*AE*/
  381. /*FI*/}
  382. /*No:CALL_PREFIX_FREEOP.target*/
  383. T0* r990to_runnable(T990* C,T0* a1){
  384. T0* R=NULL;
  385. /*IF*/if (((((T990*)C))->_current_type/*8*/)==((void*)(NULL))) {
  386. r990to_runnable_0(C,a1);
  387. /*IF*/if (((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0))&&((X496arg_count((((T990*)C))->_run_feature/*16*/))>(0))) {
  388. r683add_position((((T406*)((T406*)((((T990*)C))->_feature_name/*24*/))))->_start_position/*8*/);
  389. r990error(X496start_position((((T990*)C))->_run_feature/*16*/),((T0*)ms1_752));
  390. }
  391. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  392. R=(T0*)C;
  393. }
  394. /*FI*/}
  395. else {
  396. R=r990twin(C);
  397. /*[IRF3.3set_current_type*/((((T990*)(((T990*)R))))->_current_type)=(NULL);
  398. /*]*/
  399. R=r990to_runnable(((T990*)R),a1);
  400. }
  401. /*FI*/return R;
  402. }
  403. /*No:CALL_PREFIX_FREEOP.result_type*/
  404. /*No:CALL_PREFIX_FREEOP.is_result*/
  405. T0* r990twin(T990* C){
  406. T0* R=NULL;
  407. R=malloc(sizeof(*C));
  408. *((T990*)R)=*C;
  409. return R;
  410. }
  411. /*No:CALL_PREFIX_FREEOP.set_current_type*/
  412. /*No:CALL_PREFIX_FREEOP.is_static*/
  413. void r990standard_compile_target_to_jvm(T990* C){
  414. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T990* C1=C;
  415. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  416. }/*]*/
  417. /*]*/
  418. X291jvm_check_class_invariant((((T990*)C))->_result_type/*20*/);
  419. }
  420. int r990compile_to_jvm_into(T990* C,T0* a1){
  421. int R=0;
  422. R=r990standard_compile_to_jvm_into(C,a1);
  423. return R;
  424. }
  425. /*No:CALL_PREFIX_FREEOP.compile_target_to_jvm*/
  426. int r990call_is_static(T990* C){
  427. int R=0;
  428. T0* _rf=NULL;
  429. T0* _running=NULL;
  430. T0* _rc=NULL;
  431. /*IF*/if (((((T990*)C))->_run_feature/*16*/)!=((void*)(NULL))) {
  432. _rc=X496run_class((((T990*)C))->_run_feature/*16*/);
  433. /*IF*/if ((_rc)!=((void*)(NULL))) {
  434. _running=(((T355*)((T355*)_rc)))->_running/*12*/;
  435. /*IF*/if (((_running)!=((void*)(NULL)))&&((r396count(((T396*)_running)))==(1))) {
  436. _rf=r355dynamic(((T355*)(r396first(((T396*)_running)))),(((T990*)C))->_run_feature/*16*/);
  437. /*IF*/if (X496is_static(_rf)) {
  438. C->_static_value_mem=X496static_value_mem(_rf);
  439. R=1;
  440. }
  441. /*FI*/}
  442. /*FI*/}
  443. /*FI*/}
  444. /*FI*/return R;
  445. }
  446. /*No:CALL_PREFIX_FREEOP.fz_07*/
  447. int r990can_be_dropped(T990* C){
  448. int R=0;
  449. /*IF*/if (X662can_be_dropped((((T990*)C))->_target/*12*/)) {
  450. R=X496can_be_dropped((((T990*)C))->_run_feature/*16*/);
  451. }
  452. /*FI*/return R;
  453. }
  454. /*No:CALL_PREFIX_FREEOP.current_type*/
  455. /*No:CALL_PREFIX_FREEOP.jvm_assign*/
  456. /*No:CALL_PREFIX_FREEOP.static_value_mem*/
  457. /*No:CALL_PREFIX_FREEOP.is_manifest_string*/
  458. /*No:CALL_PREFIX_FREEOP.is_void*/
  459. int r990jvm_standard_branch_if_false(T990* C){
  460. int R=0;
  461. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T990* C1=C;
  462. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  463. }/*]*/
  464. /*]*/
  465. R=r256opcode_ifeq(((T256*)(oBC364code_attribute)));
  466. return R;
  467. }
  468. /*No:CALL_PREFIX_FREEOP.compile_to_jvm*/
  469. void r990to_runnable_0(T990* C,T0* a1){
  470. C->_current_type=a1;
  471. r990cpc_to_runnable(C,a1);
  472. C->_result_type=/*X496*/((T0*)(((T832*)((T832*)((((T990*)C))->_run_feature/*16*/))))->_result_type/*24*/);
  473. /*IF*/if (((((T990*)C))->_result_type/*20*/)==((void*)(NULL))) {
  474. r683add_position(X496start_position((((T990*)C))->_run_feature/*16*/));
  475. r990error((((T406*)((T406*)((((T990*)C))->_feature_name/*24*/))))->_start_position/*8*/,((T0*)ms1_295));
  476. }
  477.  else if (X291is_like_current((((T990*)C))->_result_type/*20*/)) {
  478. C->_result_type=X662result_type((((T990*)C))->_target/*12*/);
  479. }
  480. /*FI*/}
  481. /*No:CALL_PREFIX_FREEOP.is_pre_computable*/
  482. int r990jvm_standard_branch_if_true(T990* C){
  483. int R=0;
  484. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T990* C1=C;
  485. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  486. }/*]*/
  487. /*]*/
  488. R=r256opcode_ifne(((T256*)(oBC364code_attribute)));
  489. return R;
  490. }
  491. int r990use_current(T990* C){
  492. int R=0;
  493. /*IF*//*AF*//*AE*/
  494. /*FI*//*IF*/if (R) {
  495. }
  496.  else if (X662is_current((((T990*)C))->_target/*12*/)) {
  497. R=X496use_current((((T990*)C))->_run_feature/*16*/);
  498. }
  499. else {
  500. R=X662use_current((((T990*)C))->_target/*12*/);
  501. }
  502. /*FI*/return R;
  503. }
  504. void r990cpc_to_runnable(T990* C,T0* a1){
  505. T0* _rc=NULL;
  506. T0* _t=NULL;
  507. _t=X662to_runnable((((T990*)C))->_target/*12*/,a1);
  508. /*IF*/if ((_t)==((void*)(NULL))) {
  509. r683add_position(X662start_position((((T990*)C))->_target/*12*/));
  510. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  511. r683fatal_error(((T683*)(oBC364eh)),b1);
  512. }/*]*/
  513. }
  514. /*FI*/C->_target=_t;
  515. _rc=X291run_class(X662result_type((((T990*)C))->_target/*12*/));
  516. C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C);
  517. r576update((((T990*)C))->_target/*12*/,(((T990*)C))->_run_feature/*16*/);
  518. }
  519. void r990make_call0(T990* C,T0* a1,T0* a2){
  520. C->_target=a1;
  521. C->_feature_name=a2;
  522. }
  523. void r990error(T0* a1,T0* a2){
  524. r683add_position(a1);
  525. r683error(((T683*)(oBC364eh)),a2);
  526. }
  527. /*No:CALL_PREFIX_FREEOP.isa_dca_inline_argument*/
  528. /*No:CALL_PREFIX_FREEOP.fatal_error*/
  529. int r990standard_compile_to_jvm_into(T990* C,T0* a1){
  530. int R=0;
  531. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T990* C1=C;
  532. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  533. }/*]*/
  534. /*]*/
  535. R=X291jvm_convert_to(X291run_type((((T990*)C))->_result_type/*20*/),a1);
  536. return R;
  537. }
  538. /*No:CALL_PREFIX_FREEOP.call_proc_call_c2jvm*/
  539. void r990afd_check(T990* C){
  540. T0* _running=NULL;
  541. T0* _rc=NULL;
  542. _rc=X291run_class(X662result_type((((T990*)C))->_target/*12*/));
  543. _running=(((T355*)((T355*)_rc)))->_running/*12*/;
  544. /*IF*/if ((_running)==((void*)(NULL))) {
  545. r683add_position(X662start_position((((T990*)C))->_target/*12*/));
  546. /*[IRF3.6append*/{T0* b1=((T0*)ms1_135);
  547. r7append(((T7*)(oBC683explanation)),b1);
  548. }/*]*/
  549. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/);
  550. r7append(((T7*)(oBC683explanation)),b1);
  551. }/*]*/
  552. /*[IRF3.6append*/{T0* b1=((T0*)ms141_470);
  553. r7append(((T7*)(oBC683explanation)),b1);
  554. }/*]*/
  555. r683print_as_warning(((T683*)(oBC364eh)));
  556. r355set_at_run_time(((T355*)_rc));
  557. }
  558.  else if ((r396count(((T396*)_running)))>(0)) {
  559. r576update((((T990*)C))->_target/*12*/,(((T990*)C))->_run_feature/*16*/);
  560. }
  561. /*FI*/X662afd_check((((T990*)C))->_target/*12*/);
  562. /*IF*//*AF*//*AE*/
  563. /*FI*/}
  564. T0* r849add_comment(T849* C,T0* a1){
  565. T0* R=NULL;
  566. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  567. R=(T0*)C;
  568. }
  569. else {
  570. {T529*n=malloc(sizeof(*n));
  571. *n=M529;
  572. r529make(n,(T0*)C,a1);
  573. R=(T0*)n;
  574. }
  575. }
  576. /*FI*/return R;
  577. }
  578. /*No:E_TRUE.to_integer*/
  579. int r849is_a(T849* C,T0* a1){
  580. int R=0;
  581. R=X291is_a(/*(IRF4.4run_type*/((T0*)((T707*)/*(IRF4.8result_type*/r849type_boolean()/*)*/))/*)*/,X291run_type(X662result_type(a1)));
  582. /*IF*/if (!(R)) {
  583. r683add_position((((T849*)C))->_start_position/*12*/);
  584. r849error(X662start_position(a1),((T0*)ms4_662));
  585. }
  586. /*FI*/return R;
  587. }
  588. /*No:E_TRUE.is_current*/
  589. int r849jvm_branch_if_false(void){
  590. int R=0;
  591. /*[IRF3.4opcode_iconst_1*/r256opcode(((T256*)(oBC364code_attribute)),4,1);
  592. /*]*/
  593. R=r256opcode_ifeq(((T256*)(oBC364code_attribute)));
  594. return R;
  595. }
  596. int fBC364type_boolean=0;
  597. T0*oBC364type_boolean=NULL;
  598. T0* r849type_boolean(void){
  599. if (fBC364type_boolean==0){
  600. T0* R=NULL;
  601. fBC364type_boolean=1;
  602. {T707*n=malloc(sizeof(*n));
  603. *n=M707;
  604. r707make(n,NULL);
  605. R=(T0*)n;
  606. }
  607. oBC364type_boolean=R;}
  608. return oBC364type_boolean;}
  609. /*No:E_TRUE.static_value*/
  610. /*No:E_TRUE.make*/
  611. /*No:E_TRUE.compile_to_jvm_assignment*/
  612. /*No:E_TRUE.fz_iinaiv*/
  613. /*No:E_TRUE.jvm_branch_if_true*/
  614. /*No:E_TRUE.start_position*/
  615. /*No:E_TRUE.compile_to_jvm_old*/
  616. T0* r849to_runnable(T849* C,T0* a1){
  617. T0* R=NULL;
  618. /*IF*/if (((((T849*)C))->_current_type/*8*/)==((void*)(NULL))) {
  619. C->_current_type=a1;
  620. R=(T0*)C;
  621. }
  622. else {
  623. R=r849twin(C);
  624. /*[IRF3.3set_current_type*/((((T849*)(((T849*)R))))->_current_type)=(a1);
  625. /*]*/
  626. }
  627. /*FI*/return R;
  628. }
  629. /*No:E_TRUE.result_type*/
  630. /*No:E_TRUE.is_result*/
  631. T0* r849twin(T849* C){
  632. T0* R=NULL;
  633. R=malloc(sizeof(*C));
  634. *((T849*)R)=*C;
  635. return R;
  636. }
  637. /*No:E_TRUE.set_current_type*/
  638. int r849is_static(T849* C){
  639. int R=0;
  640. R=1;
  641. C->_static_value_mem=1;
  642. return R;
  643. }
  644. int r849compile_to_jvm_into(T0* a1){
  645. int R=0;
  646. R=r849standard_compile_to_jvm_into(a1);
  647. return R;
  648. }
  649. /*No:E_TRUE.compile_target_to_jvm*/
  650. /*No:E_TRUE.can_be_dropped*/
  651. /*No:E_TRUE.current_type*/
  652. /*No:E_TRUE.jvm_assign*/
  653. /*No:E_TRUE.static_value_mem*/
  654. /*No:E_TRUE.is_manifest_string*/
  655. /*No:E_TRUE.is_void*/
  656. /*No:E_TRUE.compile_to_jvm*/
  657. /*No:E_TRUE.is_pre_computable*/
  658. /*No:E_TRUE.use_current*/
  659. void r849error(T0* a1,T0* a2){
  660. r683add_position(a1);
  661. r683error(((T683*)(oBC364eh)),a2);
  662. }
  663. int r849isa_dca_inline_argument(T849* C){
  664. int R=0;
  665. /*IF*/if (r849is_static(C)) {
  666. R=-(1);
  667. }
  668. /*FI*/return R;
  669. }
  670. int r849standard_compile_to_jvm_into(T0* a1){
  671. int R=0;
  672. /*[IRF3.2compile_to_jvm*//*[IRF3.4opcode_iconst_1*/r256opcode(((T256*)(oBC364code_attribute)),4,1);
  673. /*]*/
  674. /*]*/
  675. R=X291jvm_convert_to(/*(IRF4.4run_type*/((T0*)((T707*)/*(IRF4.8result_type*/r849type_boolean()/*)*/))/*)*/,a1);
  676. return R;
  677. }
  678. /*No:E_TRUE.afd_check*/
  679. /*No:ID_PROVIDER.us_integer*/
  680. void r410make(T410* C){
  681. {T226*n=malloc(sizeof(*n));
  682. *n=M226;
  683. r226with_capacity(n,1024);
  684. C->_mem_id=(T0*)n;
  685. }
  686. {T927*n=malloc(sizeof(*n));
  687. *n=M927;
  688. r927with_capacity(n,1024);
  689. C->_mem_str=(T0*)n;
  690. }
  691. C->_modulus=1000;
  692. r410add2(C,NULL,0);
  693. r410add2(C,((T0*)ms14_473),1);
  694. r410add2(C,((T0*)ms15_473),2);
  695. r410add2(C,((T0*)ms8_473),3);
  696. r410add2(C,((T0*)ms23_473),4);
  697. r410add2(C,((T0*)ms11_473),5);
  698. r410add2(C,((T0*)ms6_473),6);
  699. r410add2(C,((T0*)ms25_473),7);
  700. r410add2(C,((T0*)ms21_473),8);
  701. r410add2(C,((T0*)ms144_473),9);
  702. r410add2(C,NULL,10);
  703. r410add2(C,NULL,11);
  704. r410add2(C,NULL,12);
  705. r410add2(C,NULL,13);
  706. r410add2(C,NULL,14);
  707. r410add2(C,NULL,15);
  708. r410add2(C,NULL,16);
  709. r410add2(C,NULL,17);
  710. r410add2(C,NULL,18);
  711. r410add2(C,NULL,19);
  712. r410add2(C,NULL,20);
  713. }
  714. /*No:ID_PROVIDER.us_pointer*/
  715. /*No:ID_PROVIDER.us_string*/
  716. int r410item(T410* C,T0* a1){
  717. int R=0;
  718. int _index=0;
  719. _index=r927fast_index_of(((T927*)((((T410*)C))->_mem_str/*4*/)),a1);
  720. /*IF*/if ((_index)<=((((T927*)((T927*)((((T410*)C))->_mem_str/*4*/))))->_upper/*8*/)) {
  721. R=/*(IRF4.6item*/((((T226*)((T226*)((((T410*)C))->_mem_id/*0*/))))->_storage/*0*/)[_index]/*)*/;
  722. }
  723. else {
  724. /*IF*/if ((((((T927*)((T927*)((((T410*)C))->_mem_str/*4*/))))->_upper/*8*/)*(2))>((((T410*)C))->_modulus/*8*/)) {
  725. C->_modulus=((((T410*)C))->_modulus/*8*/)*(2);
  726. }
  727. /*FI*/R=(r7hash_code(((T7*)a1)))%((((T410*)C))->_modulus/*8*/);
  728. /*IF*/if (r226fast_has(((T226*)((((T410*)C))->_mem_id/*0*/)),R)) {
  729. while (!(!(r226fast_has(((T226*)((((T410*)C))->_mem_id/*0*/)),R)))) {
  730. R=((R)+(13))%((((T410*)C))->_modulus/*8*/);
  731. }
  732. r410add2(C,a1,R);
  733. }
  734. else {
  735. r410add2(C,a1,R);
  736. }
  737. /*FI*/}
  738. /*FI*/return R;
  739. }
  740. /*No:ID_PROVIDER.us_character*/
  741. /*No:ID_PROVIDER.us_real*/
  742. /*No:ID_PROVIDER.us_boolean*/
  743. /*No:ID_PROVIDER.us_double*/
  744. /*No:ID_PROVIDER.mem_id*/
  745. /*No:ID_PROVIDER.modulus*/
  746. /*No:ID_PROVIDER.us_native_array_character*/
  747. void r410add2(T410* C,T0* a1,int a2){
  748. r927add_last(((T927*)((((T410*)C))->_mem_str/*4*/)),a1);
  749. r226add_last(((T226*)((((T410*)C))->_mem_id/*0*/)),a2);
  750. }
  751. /*No:ID_PROVIDER.mem_str*/
  752. /*No:ID_PROVIDER.us_general*/
  753. void r994connect_to(T994* C,T0* a1){
  754. C->_output_stream=r994bfw_open((((T7*)((T7*)a1)))->_count/*4*/,r7to_external(((T7*)a1)));
  755. /*IF*/if ((NULL!=(((T994*)C))->_output_stream/*4*/)) {
  756. C->_path=a1;
  757. }
  758. /*FI*/}
  759. /*No:BINARY_FILE_WRITE.make*/
  760. void r994disconnect(T994* C){
  761. fclose(C->_output_stream);C->_path=NULL;
  762. }
  763. /*No:BINARY_FILE_WRITE.path*/
  764. /*No:BINARY_FILE_WRITE.output_stream*/
  765. /*No:BINARY_FILE_WRITE.put_byte*/
  766. /*No:BINARY_FILE_WRITE.is_connected*/
  767. void* r994bfw_open(int a1,void* a2){
  768. void* R=0;
  769. R=fopen(a2,"wb");return R;
  770. }
  771. /*No:FUNCTION.arguments*/
  772. T0* r696try_to_undefine(T696* C,T0* a1,T0* a2){
  773. T0* R=NULL;
  774. X776undefine_in(a1,a2);
  775. R=r696try_to_undefine_aux(C,a1,a2);
  776. /*IF*/if ((R)!=((void*)(NULL))) {
  777. /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T696*)C))->_clients/*24*/);
  778. /*]*/
  779. }
  780. else {
  781. r605fatal_undefine(((T605*)a2),a1);
  782. }
  783. /*FI*/return R;
  784. }
  785. /*No:FUNCTION.is_deferred*/
  786. /*No:FUNCTION.fz_bad_assertion*/
  787. T0* r696runnable(T0* a1,T0* a2,T0* a3){
  788. T0* R=NULL;
  789. T0* _a=NULL;
  790. int _i=0;
  791. /*IF*/if (!(r608empty(((T608*)a1)))) {
  792. R=r608twin(((T608*)a1));
  793. _i=(((T608*)((T608*)R)))->_upper/*8*/;
  794. while (!((_i)==(0))) {
  795. r604push(((T604*)(oBC364small_eiffel)),a3);
  796. _a=r348to_runnable(((T348*)(r608item(((T608*)R),_i))),a2);
  797. /*IF*/if ((_a)==((void*)(NULL))) {
  798. r696error(r348start_position(((T348*)(r608item(((T608*)R),_i)))),((T0*)ms57_470));
  799. }
  800. else {
  801. /*[IRF3.6put*/{T608* C1=((T608*)R);
  802. T0* b1=_a;
  803. int b2=_i;
  804. ((((T608*)C1))->_storage/*0*/)[(b2)-((((T608*)C1))->_lower/*12*/)]=(b1);
  805. }/*]*/
  806. }
  807. /*FI*/r604pop(((T604*)(oBC364small_eiffel)));
  808. _i=(_i)-(1);
  809. }
  810. }
  811. /*FI*/return R;
  812. }
  813. /*No:FUNCTION.rescue_compound*/
  814. void r696add_into(T696* C,T0* a1){
  815. T0* _fn=NULL;
  816. int _i=0;
  817. C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T696*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
  818. _i=1;
  819. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T696*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  820. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T696*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
  821. /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
  822. _fn=/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)(r237at(((T237*)a1),X776to_key(_fn))))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  823. r683add_position(X776start_position(_fn));
  824. r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T696*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
  825. r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
  826. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  827. r7append(((T7*)(oBC683explanation)),b1);
  828. }/*]*/
  829. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  830. }
  831. else {
  832. r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
  833. }
  834. /*FI*/_i=(_i)+(1);
  835. }
  836. }
  837. /*No:FUNCTION.end_comment*/
  838. T0* r696try_to_undefine_aux(T696* C,T0* a1,T0* a2){
  839. T0* R=NULL;
  840. {T649*n=malloc(sizeof(*n));
  841. *n=M649;
  842. r649from_effective(n,a1,(((T696*)C))->_arguments/*28*/,(((T696*)C))->_result_type/*12*/,(((T696*)C))->_require_assertion/*36*/,(((T696*)C))->_ensure_assertion/*40*/,a2);
  843. R=(T0*)n;
  844. }
  845. return R;
  846. }
  847. void r696make(T696* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7,T0* a8){
  848. r696make_effective_routine(C,a1,a2,a4,a5,a6,a7,a8);
  849. C->_result_type=a3;
  850. }
  851. /*No:FUNCTION.not_computed*/
  852. /*No:FUNCTION.nb_errors*/
  853. void r696make_routine(T696* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  854. r696make_e_feature(C,a1,NULL);
  855. C->_header_comment=a4;
  856. C->_arguments=a2;
  857. C->_obsolete_mark=a3;
  858. C->_require_assertion=a5;
  859. }
  860. /*No:FUNCTION.local_vars*/
  861. void r696set_header_comment(T696* C,T0* a1){
  862. /*IF*/if (((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)>(1))) {
  863. C->_end_comment=a1;
  864. }
  865. /*FI*/}
  866. T0* r696start_position(T696* C){
  867. T0* R=NULL;
  868. R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T696*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  869. return R;
  870. }
  871. T0* r696to_run_feature(T696* C,T0* a1,T0* a2){
  872. T0* R=NULL;
  873. r696check_obsolete(C);
  874. {T870*n=malloc(sizeof(*n));
  875. *n=M870;
  876. r870make(n,a1,a2,(T0*)C);
  877. R=(T0*)n;
  878. }
  879. return R;
  880. }
  881. /*No:FUNCTION.ensure_assertion*/
  882. /*No:FUNCTION.code_require*/
  883. T0* r696run_ensure(T0* a1){
  884. T0* R=NULL;
  885. T0* _r=NULL;
  886. r608clear(((T608*)(oBC359assertion_collector)));
  887. /*[IRF3.3clear*/{T0* _default_item=NULL;
  888. ((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
  889. }/*]*/
  890. r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/)))),1002,/*X496*/((T0*)(((T832*)((T832*)a1)))->_name/*16*/));
  891. _r=r696runnable(oBC359assertion_collector,/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/),a1);
  892. /*IF*/if ((_r)!=((void*)(NULL))) {
  893. {T633*n=malloc(sizeof(*n));
  894. *n=M633;
  895. r633from_runnable(n,_r);
  896. R=(T0*)n;
  897. }
  898. /*[IRF3.3set_header_comment*/((((T633*)(((T633*)R))))->_header_comment)=((((T56*)((T56*)(oBC359header_comment_memory))))->_item/*0*/);
  899. /*]*/
  900. /*[IRF3.3clear*/{T0* _default_item=NULL;
  901. ((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
  902. }/*]*/
  903. }
  904. /*FI*/return R;
  905. }
  906. T0* r696run_require(T0* a1){
  907. T0* R=NULL;
  908. T0* _ar=NULL;
  909. T0* _hc=NULL;
  910. T0* _er=NULL;
  911. T0* _r=NULL;
  912. int _i=0;
  913. r522clear(((T522*)(oBC359require_collector)));
  914. r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/)))),1001,/*X496*/((T0*)(((T832*)((T832*)a1)))->_name/*16*/));
  915. /*IF*/if (!(r522empty(((T522*)(oBC359require_collector))))) {
  916. _i=1;
  917. while (!((_i)>((((T522*)((T522*)(oBC359require_collector))))->_upper/*8*/))) {
  918. _er=r522item(((T522*)(oBC359require_collector)),_i);
  919. _hc=(((T343*)((T343*)_er)))->_header_comment/*4*/;
  920. /*IF*/if (!(/*(IRF4.7empty*/((((T343*)((T343*)_er)))->_list/*8*/)==(NULL)/*)*/)) {
  921. _r=r696runnable((((T343*)((T343*)_er)))->_list/*8*/,/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/),a1);
  922. /*IF*/if ((_r)!=((void*)(NULL))) {
  923. {T343*n=malloc(sizeof(*n));
  924. *n=M343;
  925. r343from_runnable(n,_r);
  926. _er=(T0*)n;
  927. }
  928. /*[IRF3.3set_header_comment*/((((T343*)(((T343*)_er))))->_header_comment)=(_hc);
  929. /*]*/
  930. /*IF*/if ((_ar)==((void*)(NULL))) {
  931. _ar=se_ma522(1,_er);
  932. }
  933. else {
  934. r522add_last(((T522*)_ar),_er);
  935. }
  936. /*FI*/}
  937. /*FI*/}
  938. /*FI*/_i=(_i)+(1);
  939. }
  940. /*IF*/if ((_ar)!=((void*)(NULL))) {
  941. {T567*n=malloc(sizeof(*n));
  942. *n=M567;
  943. /*[IRF3.3make*/((((T567*)(n)))->_list)=(_ar);
  944. /*]*/
  945. R=(T0*)n;
  946. }
  947. }
  948. /*FI*/}
  949. /*FI*/return R;
  950. }
  951. /*No:FUNCTION.result_type*/
  952. /*No:FUNCTION.fz_03*/
  953. /*No:FUNCTION.em1*/
  954. /*No:FUNCTION.obsolete_mark*/
  955. /*No:FUNCTION.set_clients*/
  956. /*No:FUNCTION.em2*/
  957. /*No:FUNCTION.names*/
  958. /*No:FUNCTION.require_assertion*/
  959. /*No:FUNCTION.use_current_state*/
  960. /*No:FUNCTION.code_ensure*/
  961. void r696set_rescue_compound(T696* C,T0* a1){
  962. /*IF*/if (((a1)!=((void*)(NULL)))&&(/*(IRF4.1is_deferred*/0/*)*/)) {
  963. r696error(r696start_position(C),((T0*)ms6_368));
  964. }
  965. /*FI*/C->_rescue_compound=a1;
  966. }
  967. int r696can_hide(T696* C,T0* a1,T0* a2){
  968. int R=0;
  969. /*IF*/if (((((T696*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  970. /*IF*/if ((((((T696*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  971. r683add_position(X359start_position(a1));
  972. r696error(r696start_position(C),((T0*)ms5_359));
  973. }
  974. /*FI*/}
  975. /*FI*//*IF*/if (((((T696*)C))->_arguments/*28*/)!=((void*)(X359arguments(a1)))) {
  976. /*IF*/if ((((((T696*)C))->_arguments/*28*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  977. r683add_position(X359start_position(a1));
  978. r696error(r696start_position(C),((T0*)ms6_359));
  979. }
  980.  else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T696*)C))->_arguments/*28*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  981. r683add_position(X359start_position(a1));
  982. r696error(r696start_position(C),((T0*)ms7_359));
  983. }
  984. /*FI*/}
  985. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  986. /*IF*/if (((((T696*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  987. /*IF*/if (!(X291is_a_in((((T696*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  988. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  989. r7append(((T7*)(oBC683explanation)),b1);
  990. }/*]*/
  991. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  992. r7append(((T7*)(oBC683explanation)),b1);
  993. }/*]*/
  994. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  995. }
  996. /*FI*/}
  997. /*FI*/}
  998. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  999. /*IF*/if (((((T696*)C))->_arguments/*28*/)!=((void*)(NULL))) {
  1000. /*IF*/if (!(r31is_a_in(((T31*)((((T696*)C))->_arguments/*28*/)),X359arguments(a1),a2))) {
  1001. r683add_position(X359start_position(a1));
  1002. r683add_position(r696start_position(C));
  1003. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  1004. r7append(((T7*)(oBC683explanation)),b1);
  1005. }/*]*/
  1006. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  1007. r7append(((T7*)(oBC683explanation)),b1);
  1008. }/*]*/
  1009. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1010. }
  1011. /*FI*/}
  1012. /*FI*/}
  1013. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  1014. return R;
  1015. }
  1016. /*No:FUNCTION.header_comment*/
  1017. /*No:FUNCTION.routine_body*/
  1018. int r696is_merge_with(T696* C,T0* a1,T0* a2){
  1019. int R=0;
  1020. /*IF*/if (((((T696*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  1021. /*IF*/if ((((((T696*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  1022. r683add_position(X359start_position(a1));
  1023. r696error(r696start_position(C),((T0*)ms2_359));
  1024. }
  1025. /*FI*/}
  1026. /*FI*//*IF*/if (((((T696*)C))->_arguments/*28*/)!=((void*)(X359arguments(a1)))) {
  1027. /*IF*/if ((((((T696*)C))->_arguments/*28*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  1028. r683add_position(X359start_position(a1));
  1029. r696error(r696start_position(C),((T0*)ms3_359));
  1030. }
  1031.  else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T696*)C))->_arguments/*28*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  1032. r683add_position(X359start_position(a1));
  1033. r696error(r696start_position(C),((T0*)ms4_359));
  1034. }
  1035. /*FI*/}
  1036. /*FI*//*IF*/if (((((T696*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  1037. /*IF*/if (!(X291is_a_in((((T696*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  1038. r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
  1039. }
  1040. /*FI*/}
  1041. /*FI*//*IF*/if (((((T696*)C))->_arguments/*28*/)!=((void*)(NULL))) {
  1042. /*IF*/if (!(r31is_a_in(((T31*)((((T696*)C))->_arguments/*28*/)),X359arguments(a1),a2))) {
  1043. r683add_position(X359start_position(a1));
  1044. r696error(r696start_position(C),((T0*)ms12_359));
  1045. }
  1046. /*FI*/}
  1047. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  1048. return R;
  1049. }
  1050. /*No:FUNCTION.fz_dot*/
  1051. /*No:FUNCTION.set_ensure_assertion*/
  1052. /*No:FUNCTION.first_name*/
  1053. /*No:FUNCTION.clients*/
  1054. void r696collect_for(T696* C,int a1){
  1055. /*IF*/if ((a1)==(1001)) {
  1056. /*IF*/if (((((T696*)C))->_require_assertion/*36*/)!=((void*)(NULL))) {
  1057. /*IF*/if (!(r522fast_has(((T522*)(oBC359require_collector)),(((T696*)C))->_require_assertion/*36*/))) {
  1058. r522add_last(((T522*)(oBC359require_collector)),(((T696*)C))->_require_assertion/*36*/);
  1059. }
  1060. /*FI*/}
  1061. /*FI*/}
  1062. else {
  1063. /*IF*/if (((((T696*)C))->_ensure_assertion/*40*/)!=((void*)(NULL))) {
  1064. /*[IRF3.3set_item*/((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=((((T633*)((T633*)((((T696*)C))->_ensure_assertion/*40*/))))->_header_comment/*4*/);
  1065. /*]*/
  1066. r633add_into(((T633*)((((T696*)C))->_ensure_assertion/*40*/)),oBC359assertion_collector);
  1067. }
  1068. /*FI*/}
  1069. /*FI*/}
  1070. void r696make_effective_routine(T696* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7){
  1071. r696make_routine(C,a1,a2,a3,a4,a5);
  1072. C->_local_vars=a6;
  1073. C->_routine_body=a7;
  1074. C->_use_current_state=1024;
  1075. }
  1076. void r696error(T0* a1,T0* a2){
  1077. r683add_position(a1);
  1078. r683error(((T683*)(oBC364eh)),a2);
  1079. }
  1080. /*No:FUNCTION.base_class*/
  1081. void r696make_e_feature(T696* C,T0* a1,T0* a2){
  1082. C->_names=a1;
  1083. C->_result_type=a2;
  1084. }
  1085. void r696check_obsolete(T696* C){
  1086. /*IF*/if (!((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/)) {
  1087. /*IF*/if (((((T696*)C))->_obsolete_mark/*32*/)!=((void*)(NULL))) {
  1088. /*[IRF3.6append*/{T0* b1=((T0*)ms7_368);
  1089. r7append(((T7*)(oBC683explanation)),b1);
  1090. }/*]*/
  1091. /*[IRF3.6append*/{T0* b1=(((T805*)((T805*)((((T696*)C))->_obsolete_mark/*32*/))))->_to_string/*16*/;
  1092. r7append(((T7*)(oBC683explanation)),b1);
  1093. }/*]*/
  1094. r696warning(r696start_position(C),((T0*)ms137_470));
  1095. }
  1096. /*FI*/}
  1097. /*FI*/}
  1098. void r696warning(T0* a1,T0* a2){
  1099. r683add_position(a1);
  1100. r683warning(((T683*)(oBC364eh)),a2);
  1101. }
  1102. int r657id(T657* C){
  1103. int R=0;
  1104. R=(((T605*)((T605*)(r657base_class(C)))))->_id/*0*/;
  1105. return R;
  1106. }
  1107. void r657jvm_target_descriptor_in(T657* C,T0* a1){
  1108. /*IF*/if (r657is_dummy_expanded(C)) {
  1109. r7extend(((T7*)a1),'B');
  1110. }
  1111. /*FI*/}
  1112. int r657jvm_if_x_eq(T657* C){
  1113. int R=0;
  1114. /*IF*/if (r657is_expanded(C)) {
  1115. R=r355jvm_expanded_if_x_eq(((T355*)(r657run_class(C))));
  1116. }
  1117. else {
  1118. R=r256opcode_if_acmpeq(((T256*)(oBC364code_attribute)));
  1119. }
  1120. /*FI*/return R;
  1121. }
  1122. int r657has_creation(T657* C,T0* a1){
  1123. int R=0;
  1124. R=r605has_creation(((T605*)(r657base_class(C))),a1);
  1125. return R;
  1126. }
  1127. /*No:TYPE_CLASS.is_anchored*/
  1128. /*No:TYPE_CLASS.is_array*/
  1129. int r657is_a(T657* C,T0* a1){
  1130. int R=0;
  1131. T0* _obcn=NULL;
  1132. T0* _bcn=NULL;
  1133. _bcn=(((T657*)C))->_base_class_name/*4*/;
  1134. _obcn=X291base_class_name(a1);
  1135. /*IF*/if (((((T451*)((T451*)_bcn)))->_to_string/*0*/)==((void*)((((T451*)((T451*)_obcn)))->_to_string/*0*/))) {
  1136. R=1;
  1137. }
  1138.  else if (r451is_subclass_of(((T451*)_bcn),_obcn)) {
  1139. /*IF*/if (X291is_generic(a1)) {
  1140. R=r605is_a_vncg(((T605*)(r451base_class(((T451*)_bcn)))),(T0*)C,a1);
  1141. }
  1142. else {
  1143. R=1;
  1144. }
  1145. /*FI*/}
  1146. /*FI*//*IF*/if (!(R)) {
  1147. r683add_type((T0*)C,((T0*)ms71_470));
  1148. r683add_type(a1,((T0*)ms67_470));
  1149. }
  1150. /*FI*/return R;
  1151. }
  1152. /*No:TYPE_CLASS.jvm_to_reference*/
  1153. /*No:TYPE_CLASS.run_type*/
  1154. /*No:TYPE_CLASS.is_pointer*/
  1155. int r657is_dummy_expanded(T657* C){
  1156. int R=0;
  1157. /*IF*/if (r657is_expanded(C)) {
  1158. R=(r355writable_attributes(((T355*)(r657run_class(C)))))==((void*)(NULL));
  1159. }
  1160. /*FI*/return R;
  1161. }
  1162. int r657jvm_push_default(T657* C){
  1163. int R=0;
  1164. R=1;
  1165. /*IF*/if (r657is_reference(C)) {
  1166. /*[IRF3.4opcode_aconst_null*/r256opcode(((T256*)(oBC364code_attribute)),1,1);
  1167. /*]*/
  1168. }
  1169. else {
  1170. r355jvm_expanded_push_default(((T355*)(r657run_class(C))));
  1171. }
  1172. /*FI*/return R;
  1173. }
  1174. /*No:TYPE_CLASS.is_string*/
  1175. /*No:TYPE_CLASS.is_like_feature*/
  1176. /*No:TYPE_CLASS.is_like_current*/
  1177. /*No:TYPE_CLASS.make*/
  1178. T0* r657jvm_root_class(void){
  1179. if (fBC364jvm_root_class==0){
  1180. T0* R=NULL;
  1181. fBC364jvm_root_class=1;
  1182. {T7*n=malloc(sizeof(*n));
  1183. *n=M7;
  1184. r7make(n,12);
  1185. R=(T0*)n;
  1186. }
  1187. r7copy(((T7*)R),(((T228*)((T228*)(oBC364jvm))))->_output_name/*16*/);
  1188. r7extend(((T7*)R),'\57');
  1189. r7append(((T7*)R),((T0*)ms112_470));
  1190. oBC364jvm_root_class=R;}
  1191. return oBC364jvm_root_class;}
  1192. T0* r657type_any(void){
  1193. if (fBC364type_any==0){
  1194. T0* R=NULL;
  1195. fBC364type_any=1;
  1196. {T669*n=malloc(sizeof(*n));
  1197. *n=M669;
  1198. r669make(n,NULL);
  1199. R=(T0*)n;
  1200. }
  1201. oBC364type_any=R;}
  1202. return oBC364type_any;}
  1203. void r657jvm_return_code(T657* C){
  1204. /*IF*/if (r657is_expanded(C)) {
  1205. r355jvm_expanded_return_code(((T355*)(r657run_class(C))));
  1206. }
  1207. else {
  1208. /*[IRF3.2opcode_areturn*//*[IRF3.6add_u1*/{int b1=176;
  1209. r226add_last(((T226*)(oBC256code)),b1);
  1210. }/*]*/
  1211. /*]*/
  1212. }
  1213. /*FI*/}
  1214. /*No:TYPE_CLASS.jvm_xnewarray*/
  1215. void r657jvm_descriptor_in(T657* C,T0* a1){
  1216. /*IF*/if (r657is_expanded(C)) {
  1217. r355jvm_expanded_descriptor_in(((T355*)(r657run_class(C))),a1);
  1218. }
  1219. else {
  1220. r7append(((T7*)a1),r657jvm_root_descriptor());
  1221. }
  1222. /*FI*/}
  1223. /*No:TYPE_CLASS.start_position*/
  1224. /*No:TYPE_CLASS.fz_inako*/
  1225. /*No:TYPE_CLASS.is_user_expanded*/
  1226. /*No:TYPE_CLASS.is_character*/
  1227. /*No:TYPE_CLASS.written_mark*/
  1228. /*No:TYPE_CLASS.is_run_type*/
  1229. T0* r657to_runnable(T657* C,T0* a1){
  1230. T0* R=NULL;
  1231. T0* _bc=NULL;
  1232. _bc=r451base_class(((T451*)((((T657*)C))->_base_class_name/*4*/)));
  1233. /*IF*/if ((((T605*)((T605*)_bc)))->_is_expanded/*20*/) {
  1234. /*IF*/if (!(r863fast_has(((T863*)(oBC657check_memory)),_bc))) {
  1235. r355set_at_run_time(((T355*)(r657run_class(C))));
  1236. r863add_last(((T863*)(oBC657check_memory)),_bc);
  1237. }
  1238. /*FI*/}
  1239. /*FI*/R=(T0*)C;
  1240. return R;
  1241. }
  1242. /*No:TYPE_CLASS.is_formal_generic*/
  1243. T0* r657generic_list(T657* C){
  1244. T0* R=NULL;
  1245. r657fatal_error_generic_list(C);
  1246. return R;
  1247. }
  1248. T0*oBC657check_memory=NULL;
  1249. /*No:TYPE_CLASS.is_real*/
  1250. void r657standard_jvm_check_class_invariant(T657* C){
  1251. /*IF*/if (r590invariant_check(((T590*)(oBC364run_control)))) {
  1252. r355jvm_check_class_invariant(((T355*)(r657run_class(C))));
  1253. }
  1254. /*FI*/}
  1255. /*No:TYPE_CLASS.is_bit*/
  1256. void r657fatal_error_generic_list(T657* C){
  1257. r683add_type((T0*)C,((T0*)ms12_291));
  1258. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1259. }
  1260. /*No:TYPE_CLASS.jvm_check_class_invariant*/
  1261. T0* r657jvm_root_descriptor(void){
  1262. if (fBC364jvm_root_descriptor==0){
  1263. T0* R=NULL;
  1264. fBC364jvm_root_descriptor=1;
  1265. {T7*n=malloc(sizeof(*n));
  1266. *n=M7;
  1267. r7make(n,12);
  1268. R=(T0*)n;
  1269. }
  1270. r7extend(((T7*)R),'L');
  1271. r7append(((T7*)R),r657jvm_root_class());
  1272. r7extend(((T7*)R),'\73');
  1273. oBC364jvm_root_descriptor=R;}
  1274. return oBC364jvm_root_descriptor;}
  1275. void r657jvm_xaload(T657* C){
  1276. /*IF*/if (r657is_expanded(C)) {
  1277. r355jvm_expanded_xaload(((T355*)(r657run_class(C))));
  1278. }
  1279. else {
  1280. /*[IRF3.4opcode_aaload*/r256opcode(((T256*)(oBC364code_attribute)),50,-(1));
  1281. /*]*/
  1282. }
  1283. /*FI*/}
  1284. T0* r657smallest_ancestor(T657* C,T0* a1){
  1285. T0* R=NULL;
  1286. T0* _bc=NULL;
  1287. T0* _rto_bc=NULL;
  1288. T0* _pl2=NULL;
  1289. T0* _pl1=NULL;
  1290. T0* _rto=NULL;
  1291. _rto=X291run_type(a1);
  1292. /*IF*/if (X291is_none(a1)) {
  1293. R=(T0*)C;
  1294. }
  1295.  else if (X291is_any(_rto)) {
  1296. R=_rto;
  1297. }
  1298. else {
  1299. _rto_bc=X291base_class(_rto);
  1300. _bc=r657base_class(C);
  1301. /*IF*/if ((_rto_bc)==((void*)(_bc))) {
  1302. R=(T0*)C;
  1303. }
  1304.  else if (r605is_subclass_of(((T605*)_rto_bc),_bc)) {
  1305. R=(T0*)C;
  1306. }
  1307.  else if (r605is_subclass_of(((T605*)_bc),_rto_bc)) {
  1308. R=_rto;
  1309. }
  1310.  else if ((X291is_expanded(_rto))&&(!(r657is_expanded(C)))) {
  1311. R=X291smallest_ancestor(_rto,(T0*)C);
  1312. }
  1313. else {
  1314. _pl1=(((T605*)((T605*)_bc)))->_parent_list/*40*/;
  1315. _pl2=(((T605*)((T605*)_rto_bc)))->_parent_list/*40*/;
  1316. /*IF*/if (((_pl1)==((void*)(NULL)))||((_pl2)==((void*)(NULL)))) {
  1317. R=r657type_any();
  1318. }
  1319.  else if ((/*(IRF4.6count*/(((T26*)((T26*)((((T673*)((T673*)_pl2)))->_list/*12*/))))->_upper/*8*//*)*/)==(1)) {
  1320. R=X291smallest_ancestor((((T877*)((T877*)(/*(IRF4.6super*/r26first(((T26*)((((T673*)((T673*)_pl2)))->_list/*12*/)))/*)*/))))->_type/*4*/,(T0*)C);
  1321. }
  1322.  else if ((/*(IRF4.6count*/(((T26*)((T26*)((((T673*)((T673*)_pl1)))->_list/*12*/))))->_upper/*8*//*)*/)==(1)) {
  1323. R=X291smallest_ancestor((((T877*)((T877*)(/*(IRF4.6super*/r26first(((T26*)((((T673*)((T673*)_pl1)))->_list/*12*/)))/*)*/))))->_type/*4*/,a1);
  1324. }
  1325. else {
  1326. R=r673smallest_ancestor(((T673*)_pl1),(T0*)C);
  1327. R=X291smallest_ancestor(R,a1);
  1328. }
  1329. /*FI*/}
  1330. /*FI*/}
  1331. /*FI*/return R;
  1332. }
  1333. /*No:TYPE_CLASS.is_boolean*/
  1334. /*No:TYPE_CLASS.is_double*/
  1335. int r657jvm_stack_space(void){
  1336. int R=0;
  1337. /*IF*//*AF*//*AE*/
  1338. R=1;
  1339. /*FI*/return R;
  1340. }
  1341. T0* r657run_class(T657* C){
  1342. T0* R=NULL;
  1343. R=r604run_class((T0*)C);
  1344. return R;
  1345. }
  1346. /*No:TYPE_CLASS.run_time_mark*/
  1347. int r657is_a_in(T657* C,T0* a1,T0* a2){
  1348. int R=0;
  1349. T0* _ct=NULL;
  1350. T0* _t2=NULL;
  1351. T0* _t1=NULL;
  1352. /*IF*/if ((/*(IRF4.6written_mark*/(((T451*)((T451*)((((T657*)C))->_base_class_name/*4*/))))->_to_string/*0*//*)*/)==((void*)(X291written_mark(a1)))) {
  1353. R=1;
  1354. }
  1355. else {
  1356. _ct=(((T355*)((T355*)a2)))->_current_type/*0*/;
  1357. _t1=r657to_runnable(C,_ct);
  1358. _t2=X291to_runnable(a1,_ct);
  1359. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  1360. R=1;
  1361. }
  1362. else {
  1363. R=X291is_a(_t1,_t2);
  1364. }
  1365. /*FI*/}
  1366. /*FI*/return R;
  1367. }
  1368. T0* r657look_up_for(T657* C,T0* a1,T0* a2){
  1369. T0* R=NULL;
  1370. R=r605look_up_for(((T605*)(r657base_class(C))),a1,a2);
  1371. return R;
  1372. }
  1373. /*No:TYPE_CLASS.jvm_convert_to*/
  1374. T0* r657expanded_initializer(T657* C){
  1375. T0* R=NULL;
  1376. /*IF*/if (r657is_expanded(C)) {
  1377. R=r605expanded_initializer(((T605*)(r657base_class(C))),(T0*)C);
  1378. }
  1379. /*FI*/return R;
  1380. }
  1381. /*No:TYPE_CLASS.fz_jvm_root*/
  1382. int r657jvm_if_x_ne(T657* C){
  1383. int R=0;
  1384. /*IF*/if (r657is_expanded(C)) {
  1385. R=r355jvm_expanded_if_x_ne(((T355*)(r657run_class(C))));
  1386. }
  1387. else {
  1388. R=r256opcode_if_acmpne(((T256*)(oBC364code_attribute)));
  1389. }
  1390. /*FI*/return R;
  1391. }
  1392. /*No:TYPE_CLASS.fz_dot*/
  1393. /*No:TYPE_CLASS.is_generic*/
  1394. void r657jvm_write_local(T657* C,int a1){
  1395. /*IF*/if (r657is_expanded(C)) {
  1396. r355jvm_expanded_write_local(((T355*)(r657run_class(C))),a1);
  1397. }
  1398. else {
  1399. r256opcode_astore(((T256*)(oBC364code_attribute)),a1);
  1400. }
  1401. /*FI*/}
  1402. void r657jvm_initialize_local(T657* C,int a1){
  1403. /*IF*/if (r657is_reference(C)) {
  1404. /*[IRF3.4opcode_aconst_null*/r256opcode(((T256*)(oBC364code_attribute)),1,1);
  1405. /*]*/
  1406. }
  1407. else {
  1408. r355jvm_expanded_push_default(((T355*)(r657run_class(C))));
  1409. }
  1410. /*FI*/r657jvm_write_local(C,a1);
  1411. }
  1412. /*No:TYPE_CLASS.used_as_reference*/
  1413. int r657is_reference(T657* C){
  1414. int R=0;
  1415. R=!((((T605*)((T605*)(r657base_class(C)))))->_is_expanded/*20*/);
  1416. return R;
  1417. }
  1418. T0* r657base_class(T657* C){
  1419. T0* R=NULL;
  1420. T0* _bcn=NULL;
  1421. _bcn=(((T657*)C))->_base_class_name/*4*/;
  1422. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  1423. R=r451base_class(((T451*)_bcn));
  1424. }
  1425. else {
  1426. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  1427. r7append(((T7*)(oBC683explanation)),b1);
  1428. }/*]*/
  1429. r683add_type((T0*)C,((T0*)ms67_470));
  1430. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1431. }
  1432. /*FI*/return R;
  1433. }
  1434. void r657jvm_xastore(T657* C){
  1435. /*IF*/if (r657is_expanded(C)) {
  1436. r355jvm_expanded_xastore(((T355*)(r657run_class(C))));
  1437. }
  1438. else {
  1439. /*[IRF3.4opcode_aastore*/r256opcode(((T256*)(oBC364code_attribute)),83,-(3));
  1440. /*]*/
  1441. }
  1442. /*FI*/}
  1443. /*No:TYPE_CLASS.is_any*/
  1444. int r657jvm_method_flags(T657* C){
  1445. int R=0;
  1446. /*IF*/if (r657is_reference(C)) {
  1447. R=17;
  1448. }
  1449.  else if ((r355writable_attributes(((T355*)(r657run_class(C)))))==((void*)(NULL))) {
  1450. R=9;
  1451. }
  1452. else {
  1453. R=17;
  1454. }
  1455. /*FI*/return R;
  1456. }
  1457. /*No:TYPE_CLASS.base_class_name*/
  1458. void r657jvm_push_local(T657* C,int a1){
  1459. /*IF*/if (r657is_expanded(C)) {
  1460. r355jvm_expanded_push_local(((T355*)(r657run_class(C))),a1);
  1461. }
  1462. else {
  1463. r256opcode_aload(((T256*)(oBC364code_attribute)),a1);
  1464. }
  1465. /*FI*/}
  1466. int r657is_expanded(T657* C){
  1467. int R=0;
  1468. R=(((T605*)((T605*)(r657base_class(C)))))->_is_expanded/*20*/;
  1469. return R;
  1470. }
  1471. /*No:TYPE_CLASS.is_basic_eiffel_expanded*/
  1472. /*No:TYPE_CLASS.is_none*/
  1473. /*No:TYPE_CLASS.is_integer*/
  1474. T0*oBC769tmp_name=NULL;
  1475. /*No:NATIVE_JVM_INVOKESTATIC.jvm_add_method_for_procedure*/
  1476. T0*oBC769tmp_descriptor=NULL;
  1477. /*No:NATIVE_JVM_INVOKESTATIC.jvm_add_method_for_function*/
  1478. T0*oBC769tmp_class=NULL;
  1479. /*No:NATIVE_JVM_INVOKESTATIC.jvm_mapping_procedure*/
  1480. /*No:NATIVE_JVM_INVOKESTATIC.jvm_define_procedure*/
  1481. int r300idx_methodref(T0* a1){
  1482. int R=0;
  1483. T0* _cp=NULL;
  1484. T0* _alias_string=NULL;
  1485. int _i=0;
  1486. _cp=oBC364constant_pool;
  1487. _alias_string=/*X279*/((T0*)(((T679*)((T679*)a1)))->_alias_string/*52*/);
  1488. /*IF*/if ((_alias_string)==((void*)(NULL))) {
  1489. r683add_position(X279start_position(a1));
  1490. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_769);
  1491. r683fatal_error(((T683*)(oBC364eh)),b1);
  1492. }/*]*/
  1493. }
  1494. /*FI*/_i=1;
  1495. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC769tmp_class)))))->_count)=(0);
  1496. /*]*/
  1497. while (!((/*(IRF4.6item*/((((T7*)((T7*)_alias_string)))->_storage/*0*/)[(_i)-(1)]/*)*/)==('\56'))) {
  1498. r7extend(((T7*)(oBC769tmp_class)),/*(IRF4.6item*/((((T7*)((T7*)_alias_string)))->_storage/*0*/)[(_i)-(1)]/*)*/);
  1499. _i=(_i)+(1);
  1500. }
  1501. _i=(_i)+(1);
  1502. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC769tmp_name)))))->_count)=(0);
  1503. /*]*/
  1504. while (!((/*(IRF4.6item*/((((T7*)((T7*)_alias_string)))->_storage/*0*/)[(_i)-(1)]/*)*/)==('\40'))) {
  1505. r7extend(((T7*)(oBC769tmp_name)),/*(IRF4.6item*/((((T7*)((T7*)_alias_string)))->_storage/*0*/)[(_i)-(1)]/*)*/);
  1506. _i=(_i)+(1);
  1507. }
  1508. _i=(_i)+(1);
  1509. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC769tmp_descriptor)))))->_count)=(0);
  1510. /*]*/
  1511. while (!((_i)>((((T7*)((T7*)_alias_string)))->_count/*4*/))) {
  1512. r7extend(((T7*)(oBC769tmp_descriptor)),/*(IRF4.6item*/((((T7*)((T7*)_alias_string)))->_storage/*0*/)[(_i)-(1)]/*)*/);
  1513. _i=(_i)+(1);
  1514. }
  1515. R=r95idx_methodref3(((T95*)_cp),oBC769tmp_class,oBC769tmp_name,oBC769tmp_descriptor);
  1516. return R;
  1517. }
  1518. /*No:NATIVE_JVM_INVOKESTATIC.use_current*/
  1519. /*No:NATIVE_JVM_INVOKESTATIC.jvm_define_function*/
  1520. /*No:NATIVE_JVM_INVOKESTATIC.fatal_error*/
  1521. void r300jvm_mapping_function(T0* a1,T0* a2,T0* a3){
  1522. T0* _ca=NULL;
  1523. int _idx=0;
  1524. int _space=0;
  1525. _ca=oBC364code_attribute;
  1526. r228drop_target(((T228*)(oBC364jvm)));
  1527. _space=r228push_arguments(((T228*)(oBC364jvm)));
  1528. _idx=r300idx_methodref((((T892*)((T892*)a1)))->_base_feature/*48*/);
  1529. _space=(X291jvm_stack_space((((T892*)((T892*)a1)))->_result_type/*24*/))-(_space);
  1530. r256opcode_invokestatic(((T256*)_ca),_idx,_space);
  1531. }
  1532. void r671make(T671* C,T0* a1,T0* a2){
  1533. C->_start_position=a1;
  1534. C->_items=a2;
  1535. }
  1536. /*No:EXPORT_LIST.start_position*/
  1537. T0* r671clients_for(T671* C,T0* a1){
  1538. T0* R=NULL;
  1539. T0* _ei=NULL;
  1540. int _i=0;
  1541. _i=1;
  1542. while (!(((R)!=((void*)(NULL)))||((_i)>((((T587*)((T587*)((((T671*)C))->_items/*4*/))))->_upper/*8*/)))) {
  1543. _ei=r587item(((T587*)((((T671*)C))->_items/*4*/)),_i);
  1544. /*IF*/if (r542affect(((T542*)_ei),a1)) {
  1545. R=(((T542*)((T542*)_ei)))->_clients/*0*/;
  1546. }
  1547. else {
  1548. _i=(_i)+(1);
  1549. }
  1550. /*FI*/}
  1551. return R;
  1552. }
  1553. /*No:EXPORT_LIST.items*/
  1554.  
  1555.