home *** CD-ROM | disk | FTP | other *** search
/ Amiga ACS 1998 #4 / amigaacscoverdisc1998-041998.iso / utilities / shareware / dev / ppcsmalleiffel / source.lha / bin_c / compile_to_jvm42.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  19.4 KB  |  686 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. int r648is_generic(T648* C){
  10. int R=0;
  11. R=X291is_generic((((T648*)C))->_run_type/*8*/);
  12. return R;
  13. }
  14. void r648jvm_write_local(T648* C,int a1){
  15. X291jvm_write_local((((T648*)C))->_run_type/*8*/,a1);
  16. }
  17. void r648jvm_initialize_local(T648* C,int a1){
  18. X291jvm_initialize_local((((T648*)C))->_run_type/*8*/,a1);
  19. }
  20. /*No:TYPE_LIKE_FEATURE.used_as_reference*/
  21. int r648is_reference(T648* C){
  22. int R=0;
  23. R=X291is_reference((((T648*)C))->_run_type/*8*/);
  24. return R;
  25. }
  26. void r648error(T0* a1,T0* a2){
  27. r683add_position(a1);
  28. r683error(((T683*)(oBC364eh)),a2);
  29. }
  30. T0* r648base_class(T648* C){
  31. T0* R=NULL;
  32. T0* _bcn=NULL;
  33. _bcn=r648base_class_name(C);
  34. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  35. R=r451base_class(((T451*)_bcn));
  36. }
  37. else {
  38. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  39. r7append(((T7*)(oBC683explanation)),b1);
  40. }/*]*/
  41. r683add_type((T0*)C,((T0*)ms67_470));
  42. r683print_as_fatal_error(((T683*)(oBC364eh)));
  43. }
  44. /*FI*/return R;
  45. }
  46. void r648jvm_xastore(T648* C){
  47. X291jvm_xastore((((T648*)C))->_run_type/*8*/);
  48. }
  49. /*No:TYPE_LIKE_FEATURE.fatal_error*/
  50. int r648is_any(T648* C){
  51. int R=0;
  52. R=X291is_any((((T648*)C))->_run_type/*8*/);
  53. return R;
  54. }
  55. int r648jvm_method_flags(T648* C){
  56. int R=0;
  57. R=X291jvm_method_flags((((T648*)C))->_run_type/*8*/);
  58. return R;
  59. }
  60. T0* r648base_class_name(T648* C){
  61. T0* R=NULL;
  62. R=X291base_class_name((((T648*)C))->_run_type/*8*/);
  63. return R;
  64. }
  65. void r648jvm_push_local(T648* C,int a1){
  66. X291jvm_push_local((((T648*)C))->_run_type/*8*/,a1);
  67. }
  68. int r648is_expanded(T648* C){
  69. int R=0;
  70. R=X291is_expanded((((T648*)C))->_run_type/*8*/);
  71. return R;
  72. }
  73. /*No:TYPE_LIKE_FEATURE.fz_like_foo*/
  74. int r648is_basic_eiffel_expanded(T648* C){
  75. int R=0;
  76. R=X291is_basic_eiffel_expanded((((T648*)C))->_run_type/*8*/);
  77. return R;
  78. }
  79. int r648is_none(T648* C){
  80. int R=0;
  81. R=X291is_none((((T648*)C))->_run_type/*8*/);
  82. return R;
  83. }
  84. int r648is_integer(T648* C){
  85. int R=0;
  86. R=X291is_integer((((T648*)C))->_run_type/*8*/);
  87. return R;
  88. }
  89. void r648anchor_cycle_end(T648* C){
  90. /*IF*/if (((((T648*)C))->_start_position/*4*/)==((void*)(/*(IRF4.5first*//*(IRF4.6item*/((((T907*)((T907*)(oBC646visited))))->_storage/*0*/)[0]/*)*//*)*/))) {
  91. /*[IRF3.3clear*/((((T907*)(((T907*)(oBC646visited)))))->_upper)=(-(1));
  92. /*]*/
  93. }
  94. /*FI*/}
  95. /*No:CST_ATT_DOUBLE.arguments*/
  96. T0* r118try_to_undefine(T118* C,T0* a1,T0* a2){
  97. T0* R=NULL;
  98. X776undefine_in(a1,a2);
  99. R=r118try_to_undefine_aux(C,a1,a2);
  100. /*IF*/if ((R)!=((void*)(NULL))) {
  101. /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T118*)C))->_clients/*20*/);
  102. /*]*/
  103. }
  104. else {
  105. r605fatal_undefine(((T605*)a2),a1);
  106. }
  107. /*FI*/return R;
  108. }
  109. /*No:CST_ATT_DOUBLE.is_deferred*/
  110. void r118add_into(T118* C,T0* a1){
  111. T0* _fn=NULL;
  112. int _i=0;
  113. C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T118*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
  114. _i=1;
  115. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T118*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  116. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T118*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
  117. /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
  118. _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)/*)*//*)*/);
  119. r683add_position(X776start_position(_fn));
  120. r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T118*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
  121. r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
  122. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  123. r7append(((T7*)(oBC683explanation)),b1);
  124. }/*]*/
  125. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  126. }
  127. else {
  128. r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
  129. }
  130. /*FI*/_i=(_i)+(1);
  131. }
  132. }
  133. T0* r118try_to_undefine_aux(T118* C,T0* a1,T0* a2){
  134. T0* R=NULL;
  135. r683add_position(r118start_position(C));
  136. r118error(X776start_position(a1),((T0*)ms1_321));
  137. r605fatal_undefine(((T605*)a2),a1);
  138. return R;
  139. }
  140. void r118make(T118* C,T0* a1,T0* a2,T0* a3){
  141. r118make_e_feature(C,a1,a2);
  142. C->_value_mem=a3;
  143. }
  144. /*No:CST_ATT_DOUBLE.nb_errors*/
  145. /*No:CST_ATT_DOUBLE.set_header_comment*/
  146. T0* r118start_position(T118* C){
  147. T0* R=NULL;
  148. R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T118*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  149. return R;
  150. }
  151. T0* r118to_run_feature(T118* C,T0* a1,T0* a2){
  152. T0* R=NULL;
  153. T0* _rc=NULL;
  154. _rc=X291run_class(a1);
  155. R=r355at(((T355*)_rc),a2);
  156. if(NULL!=(R))switch(((T0*)R)->id) {
  157. case 808: 
  158. break;
  159. default:
  160. R=NULL;
  161. };/*IF*/if ((R)==((void*)(NULL))) {
  162. {T808*n=malloc(sizeof(*n));
  163. *n=M808;
  164. r808make(n,a1,a2,(T0*)C);
  165. R=(T0*)n;
  166. }
  167. }
  168. /*FI*/return R;
  169. }
  170. /*No:CST_ATT_DOUBLE.ensure_assertion*/
  171. /*No:CST_ATT_DOUBLE.code_require*/
  172. /*No:CST_ATT_DOUBLE.result_type*/
  173. /*No:CST_ATT_DOUBLE.em1*/
  174. /*No:CST_ATT_DOUBLE.set_clients*/
  175. /*No:CST_ATT_DOUBLE.em2*/
  176. /*No:CST_ATT_DOUBLE.value*/
  177. /*No:CST_ATT_DOUBLE.require_assertion*/
  178. /*No:CST_ATT_DOUBLE.names*/
  179. /*No:CST_ATT_DOUBLE.value_mem*/
  180. int r118can_hide(T118* C,T0* a1,T0* a2){
  181. int R=0;
  182. /*IF*/if (((((T118*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  183. /*IF*/if ((((((T118*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  184. r683add_position(X359start_position(a1));
  185. r118error(r118start_position(C),((T0*)ms5_359));
  186. }
  187. /*FI*/}
  188. /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
  189. /*IF*/{/*AT*/r683add_position(X359start_position(a1));
  190. r118error(r118start_position(C),((T0*)ms6_359));
  191. }
  192. /*FI*/}
  193. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  194. /*IF*/if (((((T118*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  195. /*IF*/if (!(X291is_a_in((((T118*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  196. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  197. r7append(((T7*)(oBC683explanation)),b1);
  198. }/*]*/
  199. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  200. r7append(((T7*)(oBC683explanation)),b1);
  201. }/*]*/
  202. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  203. }
  204. /*FI*/}
  205. /*FI*/}
  206. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  207. /*IF*//*AF*//*AE*/
  208. /*FI*/}
  209. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  210. return R;
  211. }
  212. /*No:CST_ATT_DOUBLE.header_comment*/
  213. int r118is_merge_with(T118* C,T0* a1,T0* a2){
  214. int R=0;
  215. /*IF*/if (((((T118*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  216. /*IF*/if ((((((T118*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  217. r683add_position(X359start_position(a1));
  218. r118error(r118start_position(C),((T0*)ms2_359));
  219. }
  220. /*FI*/}
  221. /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
  222. /*IF*/{/*AT*/r683add_position(X359start_position(a1));
  223. r118error(r118start_position(C),((T0*)ms3_359));
  224. }
  225. /*FI*/}
  226. /*FI*//*IF*/if (((((T118*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  227. /*IF*/if (!(X291is_a_in((((T118*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  228. r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
  229. }
  230. /*FI*/}
  231. /*FI*//*IF*//*AF*//*AE*/
  232. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  233. return R;
  234. }
  235. /*No:CST_ATT_DOUBLE.fz_dot*/
  236. /*No:CST_ATT_DOUBLE.first_name*/
  237. /*No:CST_ATT_DOUBLE.clients*/
  238. void r118collect_for(int a1){
  239. /*IF*/if ((a1)==(1001)) {
  240. /*IF*//*AF*//*AE*/
  241. /*FI*/}
  242. else {
  243. /*IF*//*AF*//*AE*/
  244. /*FI*/}
  245. /*FI*/}
  246. void r118error(T0* a1,T0* a2){
  247. r683add_position(a1);
  248. r683error(((T683*)(oBC364eh)),a2);
  249. }
  250. /*No:CST_ATT_DOUBLE.base_class*/
  251. void r118make_e_feature(T118* C,T0* a1,T0* a2){
  252. C->_names=a1;
  253. C->_result_type=a2;
  254. }
  255. /*No:TYPE_BIT_2.nb*/
  256. int r558id(T558* C){
  257. int R=0;
  258. R=(((T355*)((T355*)(r558run_class(C)))))->_id/*4*/;
  259. return R;
  260. }
  261. /*No:TYPE_BIT_2.n*/
  262. /*No:TYPE_BIT_2.jvm_target_descriptor_in*/
  263. /*No:TYPE_BIT_2.fz_bit_foo*/
  264. int r558jvm_if_x_eq(void){
  265. int R=0;
  266. T0* _cp=NULL;
  267. T0* _ca=NULL;
  268. int _idx=0;
  269. _ca=oBC364code_attribute;
  270. _cp=oBC364constant_pool;
  271. _idx=r95idx_methodref3(((T95*)_cp),((T0*)ms226_470),((T0*)ms227_470),((T0*)ms234_470));
  272. r256opcode_invokevirtual(((T256*)_ca),_idx,0);
  273. R=r256opcode_ifne(((T256*)_ca));
  274. return R;
  275. }
  276. /*No:TYPE_BIT_2.has_creation*/
  277. /*No:TYPE_BIT_2.is_anchored*/
  278. /*No:TYPE_BIT_2.is_array*/
  279. int r558is_a(T558* C,T0* a1){
  280. int R=0;
  281. T0* _other_bit=NULL;
  282. /*IF*/if (X291is_bit(a1)) {
  283. _other_bit=a1;
  284. if(NULL!=(_other_bit))switch(((T0*)_other_bit)->id) {
  285. case 549: case 558: 
  286. break;
  287. default:
  288. _other_bit=NULL;
  289. };/*IF*/if (((((T558*)C))->_nb/*20*/)<=(X609nb(_other_bit))) {
  290. R=1;
  291. }
  292. else {
  293. r683add_type((T0*)C,((T0*)ms71_470));
  294. r683add_type(a1,((T0*)ms1_609));
  295. }
  296. /*FI*/}
  297. else {
  298. R=r605is_subclass_of(((T605*)(r558base_class(C))),X291base_class(a1));
  299. /*IF*/if (R) {
  300. r683add_type((T0*)C,((T0*)ms71_470));
  301. r683add_type(a1,((T0*)ms67_470));
  302. }
  303. else {
  304. r558used_as_reference(C);
  305. }
  306. /*FI*/}
  307. /*FI*/return R;
  308. }
  309. void r558jvm_to_reference(T558* C){
  310. T0* _ca=NULL;
  311. T0* _type_bit_ref=NULL;
  312. int _idx=0;
  313. T0* _rc=NULL;
  314. _ca=oBC364code_attribute;
  315. _idx=r226fast_index_of(((T226*)(oBC609mem_ref_nb)),(((T558*)C))->_nb/*20*/);
  316. _type_bit_ref=/*(IRF4.6item*/((((T41*)((T41*)(oBC609mem_type_bit_ref))))->_storage/*4*/)[_idx]/*)*/;
  317. _rc=r963run_class(((T963*)_type_bit_ref));
  318. _idx=r355fully_qualified_constant_pool_index(((T355*)_rc));
  319. r256opcode_new(((T256*)_ca),_idx);
  320. /*[IRF3.4opcode_dup_x1*/r256opcode(((T256*)_ca),90,1);
  321. /*]*/
  322. /*[IRF3.4opcode_swap*/r256opcode(((T256*)_ca),95,0);
  323. /*]*/
  324. _idx=r95idx_fieldref4(((T95*)(oBC364constant_pool)),_idx,((T0*)ms52_473),((T0*)ms235_470));
  325. r256opcode_putfield(((T256*)_ca),_idx,-(2));
  326. }
  327. void r558set_run_time_mark(T558* C){
  328. r7copy(((T7*)(oBC291tmp_string)),((T0*)ms78_470));
  329. r7append(((T7*)(oBC291tmp_string)),r2to_string((((T558*)C))->_nb/*20*/));
  330. C->_run_time_mark=r902item(oBC291tmp_string);
  331. }
  332. /*No:TYPE_BIT_2.fz_not_found*/
  333. /*No:TYPE_BIT_2.us_put_0*/
  334. /*No:TYPE_BIT_2.run_type*/
  335. /*No:TYPE_BIT_2.is_pointer*/
  336. /*No:TYPE_BIT_2.is_dummy_expanded*/
  337. int r558jvm_push_default(T558* C){
  338. int R=0;
  339. T0* _cp=NULL;
  340. T0* _ca=NULL;
  341. int _idx=0;
  342. _ca=oBC364code_attribute;
  343. _cp=oBC364constant_pool;
  344. _idx=r95idx_class2(((T95*)_cp),((T0*)ms226_470));
  345. r256opcode_new(((T256*)_ca),_idx);
  346. /*[IRF3.4opcode_dup*/r256opcode(((T256*)_ca),89,1);
  347. /*]*/
  348. r256opcode_push_integer(((T256*)_ca),(((T558*)C))->_nb/*20*/);
  349. _idx=r95idx_methodref3(((T95*)_cp),((T0*)ms226_470),((T0*)ms167_470),((T0*)ms159_470));
  350. r256opcode_invokespecial(((T256*)_ca),_idx,0);
  351. return R;
  352. }
  353. /*No:TYPE_BIT_2.is_string*/
  354. /*No:TYPE_BIT_2.is_like_feature*/
  355. /*No:TYPE_BIT_2.is_like_current*/
  356. /*No:TYPE_BIT_2.us_put_1*/
  357. void r558make(T558* C,T0* a1,T0* a2){
  358. r7copy(((T7*)(oBC291tmp_string)),((T0*)ms78_470));
  359. r7append(((T7*)(oBC291tmp_string)),(((T446*)((T446*)a2)))->_to_string/*16*/);
  360. C->_written_mark=r902item(oBC291tmp_string);
  361. C->_start_position=a1;
  362. C->_n=a2;
  363. }
  364. /*No:TYPE_BIT_2.fz_iinaiv*/
  365. /*No:TYPE_BIT_2.jvm_return_code*/
  366. /*No:TYPE_BIT_2.jvm_xnewarray*/
  367. /*No:TYPE_BIT_2.jvm_descriptor_in*/
  368. /*No:TYPE_BIT_2.start_position*/
  369. /*No:TYPE_BIT_2.fz_inako*/
  370. /*No:TYPE_BIT_2.is_user_expanded*/
  371. /*No:TYPE_BIT_2.is_character*/
  372. /*No:TYPE_BIT_2.written_mark*/
  373. /*No:TYPE_BIT_2.is_run_type*/
  374. T0* r558to_runnable(T558* C,T0* a1){
  375. T0* R=NULL;
  376. T0* _ic=NULL;
  377. T0* _rf8=NULL;
  378. T0* _rf1=NULL;
  379. T0* _rf=NULL;
  380. /*IF*/if (((((T558*)C))->_run_time_mark/*12*/)==((void*)(NULL))) {
  381. _rf=r446run_feature(((T446*)((((T558*)C))->_n/*16*/)),a1);
  382. /*IF*/if ((_rf)==((void*)(NULL))) {
  383. r683add_position((((T446*)((T446*)((((T558*)C))->_n/*16*/))))->_start_position/*20*/);
  384. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms74_470);
  385. r683fatal_error(((T683*)(oBC364eh)),b1);
  386. }/*]*/
  387. }
  388. else {
  389. _rf1=_rf;
  390. if(NULL!=(_rf1))switch(((T0*)_rf1)->id) {
  391. case 808: 
  392. break;
  393. default:
  394. _rf1=NULL;
  395. };_rf8=_rf;
  396. if(NULL!=(_rf8))switch(((T0*)_rf8)->id) {
  397. case 892: 
  398. break;
  399. default:
  400. _rf8=NULL;
  401. };/*IF*/if ((_rf1)!=((void*)(NULL))) {
  402. _ic=X418value((((T808*)((T808*)_rf1)))->_base_feature/*44*/,1);
  403. if(NULL!=(_ic))switch(((T0*)_ic)->id) {
  404. case 342: 
  405. break;
  406. default:
  407. _ic=NULL;
  408. };/*IF*/if ((_ic)==((void*)(NULL))) {
  409. r683add_position((((T446*)((T446*)((((T558*)C))->_n/*16*/))))->_start_position/*20*/);
  410. r683add_position(r808start_position(((T808*)_rf1)));
  411. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms69_470);
  412. r683fatal_error(((T683*)(oBC364eh)),b1);
  413. }/*]*/
  414. }
  415. /*FI*/C->_nb=(((T342*)((T342*)_ic)))->_value/*16*/;
  416. /*IF*/if (((((T558*)C))->_nb/*20*/)<(0)) {
  417. r683add_position((((T446*)((T446*)((((T558*)C))->_n/*16*/))))->_start_position/*20*/);
  418. r683add_position(r808start_position(((T808*)_rf1)));
  419. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_558);
  420. r683fatal_error(((T683*)(oBC364eh)),b1);
  421. }/*]*/
  422. }
  423. /*FI*/}
  424.  else if ((_rf8)!=((void*)(NULL))) {
  425. C->_nb=r892integer_value(((T892*)_rf8),(((T446*)((T446*)((((T558*)C))->_n/*16*/))))->_start_position/*20*/);
  426. }
  427. else {
  428. r683add_position((((T446*)((T446*)((((T558*)C))->_n/*16*/))))->_start_position/*20*/);
  429. r683add_position(X496start_position(_rf));
  430. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms69_470);
  431. r683fatal_error(((T683*)(oBC364eh)),b1);
  432. }/*]*/
  433. }
  434. /*FI*/r558set_run_time_mark(C);
  435. R=(T0*)C;
  436. r558to_runnable_1_2(C);
  437. }
  438. /*FI*/}
  439. else {
  440. {T558*n=malloc(sizeof(*n));
  441. *n=M558;
  442. r558make(n,(((T558*)C))->_start_position/*4*/,(((T558*)C))->_n/*16*/);
  443. R=(T0*)n;
  444. }
  445. R=r558to_runnable(((T558*)R),a1);
  446. }
  447. /*FI*/return R;
  448. }
  449. /*No:TYPE_BIT_2.is_formal_generic*/
  450. T0* r558generic_list(T558* C){
  451. T0* R=NULL;
  452. r558fatal_error_generic_list(C);
  453. return R;
  454. }
  455. /*No:TYPE_BIT_2.is_real*/
  456. /*No:TYPE_BIT_2.us_bitn*/
  457. /*No:TYPE_BIT_2.fz_a0*/
  458. /*No:TYPE_BIT_2.is_bit*/
  459. void r558fatal_error_generic_list(T558* C){
  460. r683add_type((T0*)C,((T0*)ms12_291));
  461. r683print_as_fatal_error(((T683*)(oBC364eh)));
  462. }
  463. void r558to_runnable_1_2(T558* C){
  464. T0* _rf=NULL;
  465. T0* _rc=NULL;
  466. _rc=r558run_class(C);
  467. _rf=r355get_feature_with(((T355*)_rc),((T0*)ms105_473));
  468. _rf=r355get_feature_with(((T355*)_rc),((T0*)ms106_473));
  469. }
  470. /*No:TYPE_BIT_2.jvm_check_class_invariant*/
  471. /*No:TYPE_BIT_2.fz_a1*/
  472. /*No:TYPE_BIT_2.us_bit_n*/
  473. /*No:TYPE_BIT_2.jvm_xaload*/
  474. T0* r558smallest_ancestor(T558* C,T0* a1){
  475. T0* R=NULL;
  476. T0* _other_bit=NULL;
  477. _other_bit=a1;
  478. if(NULL!=(_other_bit))switch(((T0*)_other_bit)->id) {
  479. case 549: case 558: 
  480. break;
  481. default:
  482. _other_bit=NULL;
  483. };/*IF*/if (((((T558*)C))->_nb/*20*/)<(X609nb(_other_bit))) {
  484. R=(T0*)C;
  485. }
  486. else {
  487. R=a1;
  488. }
  489. /*FI*/return R;
  490. }
  491. /*No:TYPE_BIT_2.fz_a2*/
  492. /*No:TYPE_BIT_2.fz_35*/
  493. /*No:TYPE_BIT_2.is_boolean*/
  494. /*No:TYPE_BIT_2.fz_a3*/
  495. /*No:TYPE_BIT_2.is_double*/
  496. int r558jvm_stack_space(void){
  497. int R=0;
  498. /*IF*//*AF*//*AE*/
  499. R=1;
  500. /*FI*/return R;
  501. }
  502. /*No:TYPE_BIT_2.fz_27*/
  503. /*No:TYPE_BIT_2.fz_a4*/
  504. T0* r558run_class(T558* C){
  505. T0* R=NULL;
  506. R=r604run_class((T0*)C);
  507. return R;
  508. }
  509. /*No:TYPE_BIT_2.run_time_mark*/
  510. int r558is_a_in(T558* C,T0* a1,T0* a2){
  511. int R=0;
  512. T0* _ct=NULL;
  513. T0* _t2=NULL;
  514. T0* _t1=NULL;
  515. /*IF*/if (((((T558*)C))->_written_mark/*8*/)==((void*)(X291written_mark(a1)))) {
  516. R=1;
  517. }
  518. else {
  519. _ct=(((T355*)((T355*)a2)))->_current_type/*0*/;
  520. _t1=r558to_runnable(C,_ct);
  521. _t2=X291to_runnable(a1,_ct);
  522. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  523. R=1;
  524. }
  525. else {
  526. R=X291is_a(_t1,_t2);
  527. }
  528. /*FI*/}
  529. /*FI*/return R;
  530. }
  531. T0* r558look_up_for(T558* C,T0* a1,T0* a2){
  532. T0* R=NULL;
  533. R=r605look_up_for(((T605*)(r558base_class(C))),a1,a2);
  534. return R;
  535. }
  536. int r558jvm_convert_to(T558* C,T0* a1){
  537. int R=0;
  538. T0* _cp=NULL;
  539. T0* _ca=NULL;
  540. T0* _other_bit=NULL;
  541. int _point3=0;
  542. int _point2=0;
  543. int _point1=0;
  544. int _loc2=0;
  545. int _loc1=0;
  546. int _idx=0;
  547. int _space=0;
  548. /*IF*/if (X291is_reference(a1)) {
  549. r558jvm_to_reference(C);
  550. }
  551. else {
  552. _ca=oBC364code_attribute;
  553. _cp=oBC364constant_pool;
  554. _other_bit=a1;
  555. if(NULL!=(_other_bit))switch(((T0*)_other_bit)->id) {
  556. case 549: case 558: 
  557. break;
  558. default:
  559. _other_bit=NULL;
  560. };_space=X609jvm_push_default(_other_bit);
  561. /*[IRF3.4opcode_swap*/r256opcode(((T256*)_ca),95,0);
  562. /*]*/
  563. _loc1=r256extra_local_size1(((T256*)_ca));
  564. r256opcode_push_integer(((T256*)_ca),X609nb(_other_bit));
  565. r256opcode_istore(((T256*)_ca),_loc1);
  566. _loc2=r256extra_local_size1(((T256*)_ca));
  567. r256opcode_push_integer(((T256*)_ca),(((T558*)C))->_nb/*20*/);
  568. r256opcode_istore(((T256*)_ca),_loc2);
  569. r256opcode_iload(((T256*)_ca),_loc2);
  570. _point1=/*(IRF4.9program_counter*//*(IRF4.6count*/((((T226*)((T226*)(oBC256code))))->_upper/*8*/)+(1)/*)*//*)*/;
  571. _point2=r256opcode_ifeq(((T256*)_ca));
  572. r256opcode_iinc(((T256*)_ca),_loc1,255);
  573. r256opcode_iinc(((T256*)_ca),_loc2,255);
  574. /*[IRF3.4opcode_dup2*/r256opcode(((T256*)_ca),92,2);
  575. /*]*/
  576. r256opcode_iload(((T256*)_ca),_loc2);
  577. _idx=r95idx_methodref3(((T95*)_cp),((T0*)ms226_470),((T0*)ms228_470),((T0*)ms229_470));
  578. r256opcode_invokevirtual(((T256*)_ca),_idx,0);
  579. _point3=r256opcode_ifne(((T256*)_ca));
  580. /*[IRF3.4opcode_pop*/r256opcode(((T256*)_ca),87,-(1));
  581. /*]*/
  582. r256opcode_iload(((T256*)_ca),_loc2);
  583. r256opcode_goto_backward(((T256*)_ca),_point1);
  584. r256resolve_u2_branch(_point3);
  585. r256opcode_iload(((T256*)_ca),_loc1);
  586. _idx=r95idx_methodref3(((T95*)_cp),((T0*)ms226_470),((T0*)ms230_470),((T0*)ms159_470));
  587. r256opcode_invokevirtual(((T256*)_ca),_idx,0);
  588. r256opcode_iload(((T256*)_ca),_loc2);
  589. r256opcode_goto_backward(((T256*)_ca),_point1);
  590. r256resolve_u2_branch(_point2);
  591. /*[IRF3.4opcode_pop*/r256opcode(((T256*)_ca),87,-(1));
  592. /*]*/
  593. }
  594. /*FI*/return R;
  595. }
  596. /*No:TYPE_BIT_2.fz_a6*/
  597. /*No:TYPE_BIT_2.expanded_initializer*/
  598. /*No:TYPE_BIT_2.fz_a7*/
  599. int r558jvm_if_x_ne(void){
  600. int R=0;
  601. T0* _cp=NULL;
  602. T0* _ca=NULL;
  603. int _idx=0;
  604. _ca=oBC364code_attribute;
  605. _cp=oBC364constant_pool;
  606. _idx=r95idx_methodref3(((T95*)_cp),((T0*)ms226_470),((T0*)ms227_470),((T0*)ms234_470));
  607. r256opcode_invokevirtual(((T256*)_ca),_idx,0);
  608. R=r256opcode_ifeq(((T256*)_ca));
  609. return R;
  610. }
  611. /*No:TYPE_BIT_2.fz_dot*/
  612. /*No:TYPE_BIT_2.is_generic*/
  613. void r558jvm_write_local(int a1){
  614. T0* _cp=NULL;
  615. T0* _ca=NULL;
  616. int _idx=0;
  617. _ca=oBC364code_attribute;
  618. _cp=oBC364constant_pool;
  619. _idx=(((T95*)((T95*)_cp)))->_idx_java_lang_object/*8*/;
  620. _idx=r95idx_methodref1(((T95*)_cp),_idx,((T0*)ms232_470),((T0*)ms233_470));
  621. r256opcode_invokevirtual(((T256*)_ca),_idx,0);
  622. r256opcode_astore(((T256*)(oBC364code_attribute)),a1);
  623. }
  624. void r558jvm_initialize_local(T558* C,int a1){
  625. int _space=0;
  626. _space=r558jvm_push_default(C);
  627. r256opcode_astore(((T256*)(oBC364code_attribute)),a1);
  628. }
  629. void r558used_as_reference(T558* C){
  630. T0* _rc=NULL;
  631. T0* _type_bit_ref=NULL;
  632. /*IF*/if (r226fast_has(((T226*)(oBC609mem_ref_nb)),(((T558*)C))->_nb/*20*/)) {
  633. }
  634. else {
  635. r226add_last(((T226*)(oBC609mem_ref_nb)),(((T558*)C))->_nb/*20*/);
  636. {T963*n=malloc(sizeof(*n));
  637. *n=M963;
  638. r963make(n,(T0*)C);
  639. _type_bit_ref=(T0*)n;
  640. }
  641. r41add_last(((T41*)(oBC609mem_type_bit_ref)),_type_bit_ref);
  642. _rc=r963run_class(((T963*)_type_bit_ref));
  643. r355set_at_run_time(((T355*)_rc));
  644. }
  645. /*FI*/}
  646. /*No:TYPE_BIT_2.fz_a8*/
  647. /*No:TYPE_BIT_2.fz_a9*/
  648. /*No:TYPE_BIT_2.is_reference*/
  649. T0* r558base_class(T558* C){
  650. T0* R=NULL;
  651. T0* _bcn=NULL;
  652. _bcn=r558base_class_name();
  653. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  654. R=r451base_class(((T451*)_bcn));
  655. }
  656. else {
  657. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  658. r7append(((T7*)(oBC683explanation)),b1);
  659. }/*]*/
  660. r683add_type((T0*)C,((T0*)ms67_470));
  661. r683print_as_fatal_error(((T683*)(oBC364eh)));
  662. }
  663. /*FI*/return R;
  664. }
  665. /*No:TYPE_BIT_2.jvm_xastore*/
  666. /*No:TYPE_BIT_2.fatal_error*/
  667. /*No:TYPE_BIT_2.is_any*/
  668. /*No:TYPE_BIT_2.jvm_method_flags*/
  669. T0* r558base_class_name(void){
  670. if (fBC609base_class_name==0){
  671. T0* R=NULL;
  672. fBC609base_class_name=1;
  673. {T451*n=malloc(sizeof(*n));
  674. *n=M451;
  675. r451make(n,((T0*)ms4_473),NULL);
  676. R=(T0*)n;
  677. }
  678. oBC609base_class_name=R;}
  679. return oBC609base_class_name;}
  680. /*No:TYPE_BIT_2.jvm_push_local*/
  681. /*No:TYPE_BIT_2.is_expanded*/
  682. /*No:TYPE_BIT_2.is_basic_eiffel_expanded*/
  683. /*No:TYPE_BIT_2.is_none*/
  684. /*No:TYPE_BIT_2.is_integer*/
  685.  
  686.