home *** CD-ROM | disk | FTP | other *** search
/ Amiga ACS 1998 #4 / amigaacscoverdisc1998-041998.iso / utilities / shareware / dev / ppcsmalleiffel / source.lha / bin_c / compile_to_jvm24.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  34.5 KB  |  1,312 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* r940add_comment(T940* C,T0* a1){
  10. T0* R=NULL;
  11. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  12. R=(T0*)C;
  13. }
  14. else {
  15. {T529*n=malloc(sizeof(*n));
  16. *n=M529;
  17. r529make(n,(T0*)C,a1);
  18. R=(T0*)n;
  19. }
  20. }
  21. /*FI*/return R;
  22. }
  23. int r940to_integer(T940* C){
  24. int R=0;
  25. r940error((((T940*)C))->_start_position/*12*/,((T0*)ms69_470));
  26. return R;
  27. }
  28. int r940is_a(T940* C,T0* a1){
  29. int R=0;
  30. R=X609is_a(/*(IRF4.4run_type*/((T0*)((T549*)(((T940*)C))->_result_type/*20*/))/*)*/,X291run_type(X662result_type(a1)));
  31. /*IF*/if (!(R)) {
  32. r683add_position((((T940*)C))->_start_position/*12*/);
  33. r940error(X662start_position(a1),((T0*)ms4_662));
  34. }
  35. /*FI*/return R;
  36. }
  37. /*No:BIT_CONSTANT.is_current*/
  38. /*No:BIT_CONSTANT.jvm_branch_if_false*/
  39. /*No:BIT_CONSTANT.static_value*/
  40. void r940make(T940* C,T0* a1,T0* a2){
  41. C->_start_position=a1;
  42. C->_value=a2;
  43. }
  44. /*No:BIT_CONSTANT.compile_to_jvm_assignment*/
  45. /*No:BIT_CONSTANT.fz_iinaiv*/
  46. /*No:BIT_CONSTANT.jvm_branch_if_true*/
  47. /*No:BIT_CONSTANT.start_position*/
  48. /*No:BIT_CONSTANT.compile_to_jvm_old*/
  49. T0* r940to_runnable(T940* C,T0* a1){
  50. T0* R=NULL;
  51. T0* _ic=NULL;
  52. /*IF*/if (((((T940*)C))->_current_type/*8*/)==((void*)(NULL))) {
  53. C->_current_type=a1;
  54. /*IF*/if (((((T940*)C))->_result_type/*20*/)==((void*)(NULL))) {
  55. {T342*n=malloc(sizeof(*n));
  56. *n=M342;
  57. r342make(n,(((T7*)((T7*)((((T940*)C))->_value/*16*/))))->_count/*4*/,(((T940*)C))->_start_position/*12*/);
  58. _ic=(T0*)n;
  59. }
  60. {T549*n=malloc(sizeof(*n));
  61. *n=M549;
  62. r549make(n,(((T940*)C))->_start_position/*12*/,_ic);
  63. C->_result_type=(T0*)n;
  64. }
  65. r355set_at_run_time(((T355*)(r549run_class(((T549*)((((T940*)C))->_result_type/*20*/))))));
  66. }
  67. /*FI*/R=(T0*)C;
  68. }
  69. else {
  70. R=r940twin(C);
  71. /*[IRF3.3set_current_type*/((((T940*)(((T940*)R))))->_current_type)=(NULL);
  72. /*]*/
  73. R=r940to_runnable(((T940*)R),a1);
  74. }
  75. /*FI*/return R;
  76. }
  77. /*No:BIT_CONSTANT.result_type*/
  78. /*No:BIT_CONSTANT.is_result*/
  79. T0* r940twin(T940* C){
  80. T0* R=NULL;
  81. R=malloc(sizeof(*C));
  82. *((T940*)R)=*C;
  83. return R;
  84. }
  85. /*No:BIT_CONSTANT.set_current_type*/
  86. /*No:BIT_CONSTANT.is_static*/
  87. /*No:BIT_CONSTANT.fz_a0*/
  88. int r940compile_to_jvm_into(T940* C,T0* a1){
  89. int R=0;
  90. R=r940standard_compile_to_jvm_into(C,a1);
  91. return R;
  92. }
  93. void r940compile_target_to_jvm(T940* C){
  94. T0* _cp=NULL;
  95. T0* _ca=NULL;
  96. int _idx=0;
  97. int _i=0;
  98. _ca=oBC364code_attribute;
  99. _cp=oBC364constant_pool;
  100. _idx=r95idx_class2(((T95*)_cp),((T0*)ms226_470));
  101. r256opcode_new(((T256*)_ca),_idx);
  102. /*[IRF3.4opcode_dup*/r256opcode(((T256*)_ca),89,1);
  103. /*]*/
  104. r256opcode_push_integer(((T256*)_ca),(((T7*)((T7*)((((T940*)C))->_value/*16*/))))->_count/*4*/);
  105. _idx=r95idx_methodref3(((T95*)_cp),((T0*)ms226_470),((T0*)ms167_470),((T0*)ms159_470));
  106. r256opcode_invokespecial(((T256*)_ca),_idx,0);
  107. _i=(((T7*)((T7*)((((T940*)C))->_value/*16*/))))->_count/*4*/;
  108. while (!((_i)==(0))) {
  109. /*IF*/if ((/*(IRF4.6item*/((((T7*)((T7*)((((T940*)C))->_value/*16*/))))->_storage/*0*/)[(_i)-(1)]/*)*/)==('1')) {
  110. /*[IRF3.4opcode_dup*/r256opcode(((T256*)_ca),89,1);
  111. /*]*/
  112. r256opcode_push_integer(((T256*)_ca),(_i)-(1));
  113. _idx=r95idx_methodref3(((T95*)_cp),((T0*)ms226_470),((T0*)ms230_470),((T0*)ms159_470));
  114. r256opcode_invokevirtual(((T256*)_ca),_idx,-(2));
  115. }
  116. /*FI*/_i=(_i)-(1);
  117. }
  118. }
  119. /*No:BIT_CONSTANT.value*/
  120. /*No:BIT_CONSTANT.fz_35*/
  121. /*No:BIT_CONSTANT.can_be_dropped*/
  122. /*No:BIT_CONSTANT.current_type*/
  123. /*No:BIT_CONSTANT.fz_27*/
  124. /*No:BIT_CONSTANT.jvm_assign*/
  125. /*No:BIT_CONSTANT.fz_a4*/
  126. /*No:BIT_CONSTANT.static_value_mem*/
  127. /*No:BIT_CONSTANT.is_manifest_string*/
  128. /*No:BIT_CONSTANT.is_void*/
  129. void r940compile_to_jvm(T940* C){
  130. T0* _cp=NULL;
  131. T0* _ca=NULL;
  132. int _idx=0;
  133. int _i=0;
  134. _ca=oBC364code_attribute;
  135. _cp=oBC364constant_pool;
  136. _idx=r95idx_class2(((T95*)_cp),((T0*)ms226_470));
  137. r256opcode_new(((T256*)_ca),_idx);
  138. /*[IRF3.4opcode_dup*/r256opcode(((T256*)_ca),89,1);
  139. /*]*/
  140. r256opcode_push_integer(((T256*)_ca),(((T7*)((T7*)((((T940*)C))->_value/*16*/))))->_count/*4*/);
  141. _idx=r95idx_methodref3(((T95*)_cp),((T0*)ms226_470),((T0*)ms167_470),((T0*)ms159_470));
  142. r256opcode_invokespecial(((T256*)_ca),_idx,0);
  143. _i=(((T7*)((T7*)((((T940*)C))->_value/*16*/))))->_count/*4*/;
  144. while (!((_i)==(0))) {
  145. /*IF*/if ((/*(IRF4.6item*/((((T7*)((T7*)((((T940*)C))->_value/*16*/))))->_storage/*0*/)[(_i)-(1)]/*)*/)==('1')) {
  146. /*[IRF3.4opcode_dup*/r256opcode(((T256*)_ca),89,1);
  147. /*]*/
  148. r256opcode_push_integer(((T256*)_ca),(_i)-(1));
  149. _idx=r95idx_methodref3(((T95*)_cp),((T0*)ms226_470),((T0*)ms230_470),((T0*)ms159_470));
  150. r256opcode_invokevirtual(((T256*)_ca),_idx,-(2));
  151. }
  152. /*FI*/_i=(_i)-(1);
  153. }
  154. }
  155. /*No:BIT_CONSTANT.is_pre_computable*/
  156. /*No:BIT_CONSTANT.use_current*/
  157. void r940error(T0* a1,T0* a2){
  158. r683add_position(a1);
  159. r683error(((T683*)(oBC364eh)),a2);
  160. }
  161. /*No:BIT_CONSTANT.isa_dca_inline_argument*/
  162. int r940standard_compile_to_jvm_into(T940* C,T0* a1){
  163. int R=0;
  164. r940compile_to_jvm(C);
  165. R=X609jvm_convert_to(/*(IRF4.4run_type*/((T0*)((T549*)(((T940*)C))->_result_type/*20*/))/*)*/,a1);
  166. return R;
  167. }
  168. /*No:BIT_CONSTANT.afd_check*/
  169. T0* r367add_comment(T367* C,T0* a1){
  170. T0* R=NULL;
  171. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  172. R=(T0*)C;
  173. }
  174. else {
  175. {T529*n=malloc(sizeof(*n));
  176. *n=M529;
  177. r529make(n,(T0*)C,a1);
  178. R=(T0*)n;
  179. }
  180. }
  181. /*FI*/return R;
  182. }
  183. /*No:E_FALSE.to_integer*/
  184. int r367is_a(T367* C,T0* a1){
  185. int R=0;
  186. R=X291is_a(/*(IRF4.4run_type*/((T0*)((T707*)/*(IRF4.8result_type*/r367type_boolean()/*)*/))/*)*/,X291run_type(X662result_type(a1)));
  187. /*IF*/if (!(R)) {
  188. r683add_position((((T367*)C))->_start_position/*12*/);
  189. r367error(X662start_position(a1),((T0*)ms4_662));
  190. }
  191. /*FI*/return R;
  192. }
  193. /*No:E_FALSE.is_current*/
  194. /*No:E_FALSE.jvm_branch_if_false*/
  195. T0* r367type_boolean(void){
  196. if (fBC364type_boolean==0){
  197. T0* R=NULL;
  198. fBC364type_boolean=1;
  199. {T707*n=malloc(sizeof(*n));
  200. *n=M707;
  201. r707make(n,NULL);
  202. R=(T0*)n;
  203. }
  204. oBC364type_boolean=R;}
  205. return oBC364type_boolean;}
  206. /*No:E_FALSE.static_value*/
  207. /*No:E_FALSE.make*/
  208. /*No:E_FALSE.compile_to_jvm_assignment*/
  209. /*No:E_FALSE.fz_iinaiv*/
  210. int r367jvm_branch_if_true(void){
  211. int R=0;
  212. /*[IRF3.4opcode_iconst_0*/r256opcode(((T256*)(oBC364code_attribute)),3,1);
  213. /*]*/
  214. R=r256opcode_ifeq(((T256*)(oBC364code_attribute)));
  215. return R;
  216. }
  217. /*No:E_FALSE.start_position*/
  218. /*No:E_FALSE.compile_to_jvm_old*/
  219. T0* r367to_runnable(T367* C,T0* a1){
  220. T0* R=NULL;
  221. /*IF*/if (((((T367*)C))->_current_type/*8*/)==((void*)(NULL))) {
  222. C->_current_type=a1;
  223. R=(T0*)C;
  224. }
  225. else {
  226. R=r367twin(C);
  227. /*[IRF3.3set_current_type*/((((T367*)(((T367*)R))))->_current_type)=(a1);
  228. /*]*/
  229. }
  230. /*FI*/return R;
  231. }
  232. /*No:E_FALSE.result_type*/
  233. /*No:E_FALSE.is_result*/
  234. T0* r367twin(T367* C){
  235. T0* R=NULL;
  236. R=malloc(sizeof(*C));
  237. *((T367*)R)=*C;
  238. return R;
  239. }
  240. /*No:E_FALSE.set_current_type*/
  241. /*No:E_FALSE.is_static*/
  242. int r367compile_to_jvm_into(T0* a1){
  243. int R=0;
  244. R=r367standard_compile_to_jvm_into(a1);
  245. return R;
  246. }
  247. /*No:E_FALSE.compile_target_to_jvm*/
  248. /*No:E_FALSE.can_be_dropped*/
  249. /*No:E_FALSE.current_type*/
  250. /*No:E_FALSE.jvm_assign*/
  251. /*No:E_FALSE.static_value_mem*/
  252. /*No:E_FALSE.is_manifest_string*/
  253. /*No:E_FALSE.is_void*/
  254. /*No:E_FALSE.compile_to_jvm*/
  255. /*No:E_FALSE.is_pre_computable*/
  256. /*No:E_FALSE.use_current*/
  257. void r367error(T0* a1,T0* a2){
  258. r683add_position(a1);
  259. r683error(((T683*)(oBC364eh)),a2);
  260. }
  261. int r367isa_dca_inline_argument(void){
  262. int R=0;
  263. /*IF*/{/*AT*/R=-(1);
  264. }
  265. /*FI*/return R;
  266. }
  267. int r367standard_compile_to_jvm_into(T0* a1){
  268. int R=0;
  269. /*[IRF3.2compile_to_jvm*//*[IRF3.4opcode_iconst_0*/r256opcode(((T256*)(oBC364code_attribute)),3,1);
  270. /*]*/
  271. /*]*/
  272. R=X291jvm_convert_to(/*(IRF4.4run_type*/((T0*)((T707*)/*(IRF4.8result_type*/r367type_boolean()/*)*/))/*)*/,a1);
  273. return R;
  274. }
  275. /*No:E_FALSE.afd_check*/
  276. /*No:CLASS_NAME.us_none*/
  277. int r451is_subclass_of(T451* C,T0* a1){
  278. int R=0;
  279. /*IF*/if ((((T0*)ms1_473))==((void*)((((T451*)((T451*)a1)))->_to_string/*0*/))) {
  280. R=1;
  281. }
  282.  else if ((((T0*)ms19_473))==((void*)((((T451*)((T451*)a1)))->_to_string/*0*/))) {
  283. }
  284. else {
  285. R=r605is_subclass_of(((T605*)(r451base_class(C))),r451base_class(((T451*)a1)));
  286. }
  287. /*FI*/return R;
  288. }
  289. void r451make(T451* C,T0* a1,T0* a2){
  290. C->_start_position=a2;
  291. C->_to_string=r902item(a1);
  292. }
  293. /*No:CLASS_NAME.to_string*/
  294. void r451make_unknown(T451* C){
  295. {T627*n=malloc(sizeof(*n));
  296. *n=M627;
  297. r627with(n,1,1,(T0*)C);
  298. C->_start_position=(T0*)n;
  299. }
  300. C->_to_string=((T0*)ms3_451);
  301. }
  302. /*No:CLASS_NAME.start_position*/
  303. /*No:CLASS_NAME.unknown_name*/
  304. T0* r451base_class(T451* C){
  305. T0* R=NULL;
  306. R=r604base_class(((T604*)(oBC364small_eiffel)),(T0*)C);
  307. return R;
  308. }
  309. void r451identify(T451* C,T0* a1){
  310. C->_to_string=r902item(a1);
  311. }
  312. /*No:CLASS_NAME.us_any*/
  313. T0* r260add_comment(T260* C,T0* a1){
  314. T0* R=NULL;
  315. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  316. R=(T0*)C;
  317. }
  318. else {
  319. {T529*n=malloc(sizeof(*n));
  320. *n=M529;
  321. r529make(n,(T0*)C,a1);
  322. R=(T0*)n;
  323. }
  324. }
  325. /*FI*/return R;
  326. }
  327. /*No:CHARACTER_CONSTANT.to_integer*/
  328. int r260is_a(T260* C,T0* a1){
  329. int R=0;
  330. R=X291is_a(/*(IRF4.4run_type*/((T0*)((T252*)r260result_type()))/*)*/,X291run_type(X662result_type(a1)));
  331. /*IF*/if (!(R)) {
  332. r683add_position((((T260*)C))->_start_position/*12*/);
  333. r260error(X662start_position(a1),((T0*)ms4_662));
  334. }
  335. /*FI*/return R;
  336. }
  337. /*No:CHARACTER_CONSTANT.is_current*/
  338. /*No:CHARACTER_CONSTANT.jvm_branch_if_false*/
  339. /*No:CHARACTER_CONSTANT.static_value*/
  340. void r260make(T260* C,T0* a1,char a2,int a3){
  341. C->_start_position=a1;
  342. C->_value=a2;
  343. /*[IRF3.3set_pretty_print_mode*/((((T260*)(C)))->_pretty_print_mode)=(a3);
  344. /*]*/
  345. }
  346. /*No:CHARACTER_CONSTANT.compile_to_jvm_assignment*/
  347. /*No:CHARACTER_CONSTANT.fz_iinaiv*/
  348. /*No:CHARACTER_CONSTANT.set_pretty_print_mode*/
  349. /*No:CHARACTER_CONSTANT.jvm_branch_if_true*/
  350. /*No:CHARACTER_CONSTANT.start_position*/
  351. /*No:CHARACTER_CONSTANT.compile_to_jvm_old*/
  352. T0* r260to_runnable(T260* C,T0* a1){
  353. T0* R=NULL;
  354. /*IF*/if (((((T260*)C))->_current_type/*8*/)==((void*)(NULL))) {
  355. C->_current_type=a1;
  356. R=(T0*)C;
  357. }
  358. else {
  359. R=r260twin(C);
  360. /*[IRF3.3set_current_type*/((((T260*)(((T260*)R))))->_current_type)=(a1);
  361. /*]*/
  362. }
  363. /*FI*/return R;
  364. }
  365. int fBC260result_type=0;
  366. T0*oBC260result_type=NULL;
  367. T0* r260result_type(void){
  368. if (fBC260result_type==0){
  369. T0* R=NULL;
  370. fBC260result_type=1;
  371. {T252*n=malloc(sizeof(*n));
  372. *n=M252;
  373. r252make(n,NULL);
  374. R=(T0*)n;
  375. }
  376. oBC260result_type=R;}
  377. return oBC260result_type;}
  378. /*No:CHARACTER_CONSTANT.is_result*/
  379. T0* r260twin(T260* C){
  380. T0* R=NULL;
  381. R=malloc(sizeof(*C));
  382. *((T260*)R)=*C;
  383. return R;
  384. }
  385. /*No:CHARACTER_CONSTANT.set_current_type*/
  386. int r260is_static(T260* C){
  387. int R=0;
  388. R=1;
  389. C->_static_value_mem=/*(IRF4.6to_integer*/((unsigned char)(((T260*)C))->_value/*16*/)/*)*/;
  390. return R;
  391. }
  392. int r260compile_to_jvm_into(T260* C,T0* a1){
  393. int R=0;
  394. R=r260standard_compile_to_jvm_into(C,a1);
  395. return R;
  396. }
  397. /*No:CHARACTER_CONSTANT.compile_target_to_jvm*/
  398. /*No:CHARACTER_CONSTANT.value*/
  399. /*No:CHARACTER_CONSTANT.can_be_dropped*/
  400. /*No:CHARACTER_CONSTANT.current_type*/
  401. /*No:CHARACTER_CONSTANT.jvm_assign*/
  402. /*No:CHARACTER_CONSTANT.static_value_mem*/
  403. /*No:CHARACTER_CONSTANT.is_manifest_string*/
  404. /*No:CHARACTER_CONSTANT.is_void*/
  405. /*No:CHARACTER_CONSTANT.pretty_print_mode*/
  406. /*No:CHARACTER_CONSTANT.compile_to_jvm*/
  407. /*No:CHARACTER_CONSTANT.is_pre_computable*/
  408. /*No:CHARACTER_CONSTANT.use_current*/
  409. void r260error(T0* a1,T0* a2){
  410. r683add_position(a1);
  411. r683error(((T683*)(oBC364eh)),a2);
  412. }
  413. int r260isa_dca_inline_argument(T260* C){
  414. int R=0;
  415. /*IF*/if (r260is_static(C)) {
  416. R=-(1);
  417. }
  418. /*FI*/return R;
  419. }
  420. int r260standard_compile_to_jvm_into(T260* C,T0* a1){
  421. int R=0;
  422. /*[IRF3.6compile_to_jvm*/{T260* C1=C;
  423. r256opcode_bipush(((T256*)(oBC364code_attribute)),((unsigned char)(((T260*)C1))->_value/*16*/));
  424. }/*]*/
  425. R=X291jvm_convert_to(/*(IRF4.4run_type*/((T0*)((T252*)r260result_type()))/*)*/,a1);
  426. return R;
  427. }
  428. /*No:CHARACTER_CONSTANT.afd_check*/
  429. /*No:LOOP_INVARIANT.fz_bad_assertion*/
  430. T0* r213runnable(T0* a1,T0* a2,T0* a3){
  431. T0* R=NULL;
  432. T0* _a=NULL;
  433. int _i=0;
  434. /*IF*/if (!(r608empty(((T608*)a1)))) {
  435. R=r608twin(((T608*)a1));
  436. _i=(((T608*)((T608*)R)))->_upper/*8*/;
  437. while (!((_i)==(0))) {
  438. r604push(((T604*)(oBC364small_eiffel)),a3);
  439. _a=r348to_runnable(((T348*)(r608item(((T608*)R),_i))),a2);
  440. /*IF*/if ((_a)==((void*)(NULL))) {
  441. r213error(r348start_position(((T348*)(r608item(((T608*)R),_i)))),((T0*)ms57_470));
  442. }
  443. else {
  444. /*[IRF3.6put*/{T608* C1=((T608*)R);
  445. T0* b1=_a;
  446. int b2=_i;
  447. ((((T608*)C1))->_storage/*0*/)[(b2)-((((T608*)C1))->_lower/*12*/)]=(b1);
  448. }/*]*/
  449. }
  450. /*FI*/r604pop(((T604*)(oBC364small_eiffel)));
  451. _i=(_i)-(1);
  452. }
  453. }
  454. /*FI*/return R;
  455. }
  456. void r213make(T213* C,T0* a1,T0* a2,T0* a3){
  457. C->_start_position=a1;
  458. C->_header_comment=a2;
  459. C->_list=a3;
  460. }
  461. /*No:LOOP_INVARIANT.nb_errors*/
  462. /*No:LOOP_INVARIANT.start_position*/
  463. T0* r213to_runnable(T213* C,T0* a1){
  464. T0* R=NULL;
  465. /*IF*/if (((((T213*)C))->_current_type/*12*/)==((void*)(NULL))) {
  466. C->_current_type=a1;
  467. /*IF*/if (((((T213*)C))->_list/*8*/)!=((void*)(NULL))) {
  468. C->_list=r213runnable((((T213*)C))->_list/*8*/,a1,r604top_rf(((T604*)(oBC364small_eiffel))));
  469. }
  470. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  471. R=(T0*)C;
  472. }
  473. /*FI*/}
  474. else {
  475. R=r213twin(C);
  476. /*[IRF3.3set_current_type*/((((T213*)(((T213*)R))))->_current_type)=(NULL);
  477. /*]*/
  478. R=r213to_runnable(((T213*)R),a1);
  479. }
  480. /*FI*/return R;
  481. }
  482. T0* r213twin(T213* C){
  483. T0* R=NULL;
  484. R=malloc(sizeof(*C));
  485. *((T213*)R)=*C;
  486. return R;
  487. }
  488. /*No:LOOP_INVARIANT.set_current_type*/
  489. /*No:LOOP_INVARIANT.list*/
  490. /*No:LOOP_INVARIANT.current_type*/
  491. /*No:LOOP_INVARIANT.header_comment*/
  492. void r213compile_to_jvm(T213* C,int a1){
  493. T0* _ca=NULL;
  494. int _i=0;
  495. int _point_true=0;
  496. /*IF*/if (((((T213*)C))->_list/*8*/)!=((void*)(NULL))) {
  497. _ca=oBC364code_attribute;
  498. r256check_opening(((T256*)_ca));
  499. /*IF*/if (a1) {
  500. _i=1;
  501. while (!((_i)>((((T608*)((T608*)((((T213*)C))->_list/*8*/))))->_upper/*8*/))) {
  502. r348compile_to_jvm(((T348*)(r608item(((T608*)((((T213*)C))->_list/*8*/)),_i))),1);
  503. _i=(_i)+(1);
  504. }
  505. }
  506. else {
  507. /*[IRF3.3clear*/((((T226*)(((T226*)(oBC596points_false)))))->_upper)=(-(1));
  508. /*]*/
  509. _i=1;
  510. while (!((_i)>((((T608*)((T608*)((((T213*)C))->_list/*8*/))))->_upper/*8*/))) {
  511. r348compile_to_jvm(((T348*)(r608item(((T608*)((((T213*)C))->_list/*8*/)),_i))),0);
  512. r226add_last(((T226*)(oBC596points_false)),r256opcode_ifeq(((T256*)_ca)));
  513. _i=(_i)+(1);
  514. }
  515. /*[IRF3.4opcode_iconst_1*/r256opcode(((T256*)_ca),4,1);
  516. /*]*/
  517. _point_true=r256opcode_goto(((T256*)_ca));
  518. r256resolve_with(oBC596points_false);
  519. /*[IRF3.4opcode_iconst_0*/r256opcode(((T256*)_ca),3,1);
  520. /*]*/
  521. r256resolve_u2_branch(_point_true);
  522. }
  523. /*FI*/r256check_closing(((T256*)_ca));
  524. }
  525. /*FI*/}
  526. int r213use_current(T213* C){
  527. int R=0;
  528. int _i=0;
  529. /*IF*/if (((((T213*)C))->_list/*8*/)!=((void*)(NULL))) {
  530. _i=(((T608*)((T608*)((((T213*)C))->_list/*8*/))))->_upper/*8*/;
  531. while (!((R)||((_i)==(0)))) {
  532. R=r348use_current(((T348*)(r608item(((T608*)((((T213*)C))->_list/*8*/)),_i))));
  533. _i=(_i)-(1);
  534. }
  535. }
  536. /*FI*/return R;
  537. }
  538. void r213error(T0* a1,T0* a2){
  539. r683add_position(a1);
  540. r683error(((T683*)(oBC364eh)),a2);
  541. }
  542. void r213afd_check(T213* C){
  543. int _i=0;
  544. /*IF*/if (((((T213*)C))->_list/*8*/)!=((void*)(NULL))) {
  545. _i=(((T608*)((T608*)((((T213*)C))->_list/*8*/))))->_upper/*8*/;
  546. while (!((_i)==(0))) {
  547. r348afd_check(((T348*)(r608item(((T608*)((((T213*)C))->_list/*8*/)),_i))));
  548. _i=(_i)-(1);
  549. }
  550. }
  551. /*FI*/}
  552. int fBC364type_character_ref=0;
  553. T0*oBC364type_character_ref=NULL;
  554. T0* r252type_character_ref(void){
  555. if (fBC364type_character_ref==0){
  556. T0* R=NULL;
  557. T0* _character_ref=NULL;
  558. fBC364type_character_ref=1;
  559. {T451*n=malloc(sizeof(*n));
  560. *n=M451;
  561. r451make(n,((T0*)ms9_473),NULL);
  562. _character_ref=(T0*)n;
  563. }
  564. {T657*n=malloc(sizeof(*n));
  565. *n=M657;
  566. /*[IRF3.3make*/((((T657*)(n)))->_base_class_name)=(_character_ref);
  567. /*]*/
  568. R=(T0*)n;
  569. }
  570. oBC364type_character_ref=R;}
  571. return oBC364type_character_ref;}
  572. /*No:TYPE_CHARACTER.id*/
  573. /*No:TYPE_CHARACTER.jvm_target_descriptor_in*/
  574. /*No:TYPE_CHARACTER.jvm_if_x_eq*/
  575. int r252has_creation(T252* C,T0* a1){
  576. int R=0;
  577. r683add_position(X776start_position(a1));
  578. r252error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T252*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_84));
  579. return R;
  580. }
  581. /*No:TYPE_CHARACTER.is_anchored*/
  582. /*No:TYPE_CHARACTER.us_character_ref*/
  583. /*No:TYPE_CHARACTER.is_array*/
  584. int r252is_a(T252* C,T0* a1){
  585. int R=0;
  586. /*IF*/if (X291is_character(a1)) {
  587. R=1;
  588. }
  589. else {
  590. R=r605is_subclass_of(((T605*)(r252base_class(C))),X291base_class(a1));
  591. /*IF*/if (R) {
  592. r252used_as_reference();
  593. }
  594. /*FI*/}
  595. /*FI*//*IF*/if (!(R)) {
  596. r683add_type((T0*)C,((T0*)ms71_470));
  597. r683add_type(a1,((T0*)ms67_470));
  598. }
  599. /*FI*/return R;
  600. }
  601. /*No:TYPE_CHARACTER.jvm_to_reference*/
  602. /*No:TYPE_CHARACTER.run_type*/
  603. /*No:TYPE_CHARACTER.is_pointer*/
  604. /*No:TYPE_CHARACTER.is_dummy_expanded*/
  605. int r252jvm_push_default(void){
  606. int R=0;
  607. /*[IRF3.4opcode_iconst_0*/r256opcode(((T256*)(oBC364code_attribute)),3,1);
  608. /*]*/
  609. R=1;
  610. return R;
  611. }
  612. /*No:TYPE_CHARACTER.is_string*/
  613. /*No:TYPE_CHARACTER.is_like_feature*/
  614. /*No:TYPE_CHARACTER.is_like_current*/
  615. void r252make(T252* C,T0* a1){
  616. {T451*n=malloc(sizeof(*n));
  617. *n=M451;
  618. r451make(n,((T0*)ms8_473),a1);
  619. C->_base_class_name=(T0*)n;
  620. }
  621. }
  622. /*No:TYPE_CHARACTER.nb_errors*/
  623. /*No:TYPE_CHARACTER.us_item*/
  624. void r252load_ref(T0* a1){
  625. T0* _rf=NULL;
  626. T0* _rc=NULL;
  627. T0* _cn=NULL;
  628. {T451*n=malloc(sizeof(*n));
  629. *n=M451;
  630. r451make(n,a1,NULL);
  631. _cn=(T0*)n;
  632. }
  633. _rc=r605run_class(((T605*)(r451base_class(((T451*)_cn)))));
  634. r355set_at_run_time(((T355*)_rc));
  635. _rf=r355get_feature_with(((T355*)_rc),((T0*)ms86_473));
  636. }
  637. /*No:TYPE_CHARACTER.jvm_return_code*/
  638. int fBC252check_type=0;
  639. void r252check_type(T252* C){
  640. if (fBC252check_type==0){
  641. T0* _rc=NULL;
  642. T0* _bc=NULL;
  643. fBC252check_type=1;
  644. _bc=r252base_class(C);
  645. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  646. _rc=r252run_class(C);
  647. }
  648. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  649. /*IF*/if (!((((T605*)((T605*)_bc)))->_is_expanded/*20*/)) {
  650. r252error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T252*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_252));
  651. }
  652. /*FI*/}
  653. /*FI*/}}
  654. /*No:TYPE_CHARACTER.jvm_xnewarray*/
  655. /*No:TYPE_CHARACTER.jvm_descriptor_in*/
  656. /*No:TYPE_CHARACTER.start_position*/
  657. /*No:TYPE_CHARACTER.fz_inako*/
  658. /*No:TYPE_CHARACTER.is_user_expanded*/
  659. /*No:TYPE_CHARACTER.is_character*/
  660. T0* r252written_mark(void){
  661. T0* R=NULL;
  662. R=((T0*)ms8_473);
  663. return R;
  664. }
  665. /*No:TYPE_CHARACTER.is_run_type*/
  666. T0* r252to_runnable(T252* C,T0* a1){
  667. T0* R=NULL;
  668. R=(T0*)C;
  669. r252check_type(C);
  670. return R;
  671. }
  672. /*No:TYPE_CHARACTER.is_formal_generic*/
  673. T0* r252generic_list(T252* C){
  674. T0* R=NULL;
  675. r252fatal_error_generic_list(C);
  676. return R;
  677. }
  678. /*No:TYPE_CHARACTER.is_real*/
  679. /*No:TYPE_CHARACTER.us_character*/
  680. /*No:TYPE_CHARACTER.fz_41*/
  681. /*No:TYPE_CHARACTER.is_bit*/
  682. void r252fatal_error_generic_list(T252* C){
  683. r683add_type((T0*)C,((T0*)ms12_291));
  684. r683print_as_fatal_error(((T683*)(oBC364eh)));
  685. }
  686. /*No:TYPE_CHARACTER.jvm_check_class_invariant*/
  687. /*No:TYPE_CHARACTER.jvm_xaload*/
  688. T0* r252smallest_ancestor(T252* C,T0* a1){
  689. T0* R=NULL;
  690. T0* _rto=NULL;
  691. _rto=X291run_type(a1);
  692. /*IF*/if (X291is_character(_rto)) {
  693. R=(T0*)C;
  694. }
  695. else {
  696. R=r657smallest_ancestor(((T657*)(r252type_character_ref())),_rto);
  697. }
  698. /*FI*/return R;
  699. }
  700. /*No:TYPE_CHARACTER.is_boolean*/
  701. /*No:TYPE_CHARACTER.is_double*/
  702. int r252jvm_stack_space(void){
  703. int R=0;
  704. /*IF*//*AF*//*AE*/
  705. R=1;
  706. /*FI*/return R;
  707. }
  708. T0* r252run_class(T252* C){
  709. T0* R=NULL;
  710. R=r604run_class((T0*)C);
  711. return R;
  712. }
  713. T0* r252run_time_mark(void){
  714. T0* R=NULL;
  715. R=((T0*)ms8_473);
  716. return R;
  717. }
  718. int r252is_a_in(T252* C,T0* a1,T0* a2){
  719. int R=0;
  720. T0* _ct=NULL;
  721. T0* _t2=NULL;
  722. T0* _t1=NULL;
  723. /*IF*/if ((r252written_mark())==((void*)(X291written_mark(a1)))) {
  724. R=1;
  725. }
  726. else {
  727. _ct=(((T355*)((T355*)a2)))->_current_type/*0*/;
  728. _t1=r252to_runnable(C,_ct);
  729. _t2=X291to_runnable(a1,_ct);
  730. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  731. R=1;
  732. }
  733. else {
  734. R=X291is_a(_t1,_t2);
  735. }
  736. /*FI*/}
  737. /*FI*/return R;
  738. }
  739. T0* r252look_up_for(T252* C,T0* a1,T0* a2){
  740. T0* R=NULL;
  741. R=r605look_up_for(((T605*)(r252base_class(C))),a1,a2);
  742. return R;
  743. }
  744. int r252jvm_convert_to(T0* a1){
  745. int R=0;
  746. /*IF*/if (X291is_reference(a1)) {
  747. /*[IRF3.2jvm_to_reference*/{T0* _ca=NULL;
  748. int _idx=0;
  749. T0* _rc=NULL;
  750. _ca=oBC364code_attribute;
  751. _rc=r657run_class(((T657*)(r252type_character_ref())));
  752. _idx=r355fully_qualified_constant_pool_index(((T355*)_rc));
  753. r256opcode_new(((T256*)_ca),_idx);
  754. /*[IRF3.4opcode_dup_x1*/r256opcode(((T256*)_ca),90,1);
  755. /*]*/
  756. /*[IRF3.4opcode_swap*/r256opcode(((T256*)_ca),95,0);
  757. /*]*/
  758. _idx=r95idx_fieldref4(((T95*)(oBC364constant_pool)),_idx,((T0*)ms86_473),((T0*)ms173_470));
  759. r256opcode_putfield(((T256*)_ca),_idx,-(2));
  760. }/*]*/
  761. }
  762. /*FI*/R=1;
  763. return R;
  764. }
  765. /*No:TYPE_CHARACTER.expanded_initializer*/
  766. /*No:TYPE_CHARACTER.jvm_if_x_ne*/
  767. /*No:TYPE_CHARACTER.fz_dot*/
  768. /*No:TYPE_CHARACTER.is_generic*/
  769. /*No:TYPE_CHARACTER.jvm_write_local*/
  770. void r252jvm_initialize_local(int a1){
  771. /*[IRF3.4opcode_iconst_0*/r256opcode(((T256*)(oBC364code_attribute)),3,1);
  772. /*]*/
  773. /*[IRF3.6jvm_write_local*/{int b1=a1;
  774. r256opcode_istore(((T256*)(oBC364code_attribute)),b1);
  775. }/*]*/
  776. }
  777. int fBC252used_as_reference=0;
  778. void r252used_as_reference(void){
  779. if (fBC252used_as_reference==0){
  780. fBC252used_as_reference=1;
  781. r252load_ref(((T0*)ms9_473));
  782. }}
  783. /*No:TYPE_CHARACTER.is_reference*/
  784. void r252error(T0* a1,T0* a2){
  785. r683add_position(a1);
  786. r683error(((T683*)(oBC364eh)),a2);
  787. }
  788. T0* r252base_class(T252* C){
  789. T0* R=NULL;
  790. T0* _bcn=NULL;
  791. _bcn=(((T252*)C))->_base_class_name/*4*/;
  792. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  793. R=r451base_class(((T451*)_bcn));
  794. }
  795. else {
  796. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  797. r7append(((T7*)(oBC683explanation)),b1);
  798. }/*]*/
  799. r683add_type((T0*)C,((T0*)ms67_470));
  800. r683print_as_fatal_error(((T683*)(oBC364eh)));
  801. }
  802. /*FI*/return R;
  803. }
  804. /*No:TYPE_CHARACTER.jvm_xastore*/
  805. /*No:TYPE_CHARACTER.is_any*/
  806. /*No:TYPE_CHARACTER.jvm_method_flags*/
  807. /*No:TYPE_CHARACTER.base_class_name*/
  808. /*No:TYPE_CHARACTER.jvm_push_local*/
  809. /*No:TYPE_CHARACTER.is_expanded*/
  810. /*No:TYPE_CHARACTER.is_basic_eiffel_expanded*/
  811. /*No:TYPE_CHARACTER.is_none*/
  812. /*No:TYPE_CHARACTER.is_integer*/
  813. void r633add_into(T633* C,T0* a1){
  814. T0* _a=NULL;
  815. int _i=0;
  816. /*IF*/if (((((T633*)C))->_list/*8*/)!=((void*)(NULL))) {
  817. _i=1;
  818. while (!((_i)>((((T608*)((T608*)((((T633*)C))->_list/*8*/))))->_upper/*8*/))) {
  819. _a=r608item(((T608*)((((T633*)C))->_list/*8*/)),_i);
  820. /*IF*/if (!(r608fast_has(((T608*)a1),_a))) {
  821. r608add_last(((T608*)a1),_a);
  822. }
  823. /*FI*/_i=(_i)+(1);
  824. }
  825. }
  826. /*FI*/}
  827. void r633from_runnable(T633* C,T0* a1){
  828. C->_list=a1;
  829. C->_current_type=(((T348*)((T348*)(r608item(((T608*)((((T633*)C))->_list/*8*/)),1)))))->_current_type/*12*/;
  830. }
  831. void r633make(T633* C,T0* a1,T0* a2,T0* a3){
  832. C->_start_position=a1;
  833. C->_header_comment=a2;
  834. C->_list=a3;
  835. }
  836. /*No:E_ENSURE.set_header_comment*/
  837. /*No:E_ENSURE.start_position*/
  838. void r633compile_to_jvm_old(T633* C){
  839. int _i=0;
  840. /*IF*/if (((((T633*)C))->_list/*8*/)!=((void*)(NULL))) {
  841. _i=(((T608*)((T608*)((((T633*)C))->_list/*8*/))))->_lower/*12*/;
  842. while (!((_i)>((((T608*)((T608*)((((T633*)C))->_list/*8*/))))->_upper/*8*/))) {
  843. r348compile_to_jvm_old(((T348*)(r608item(((T608*)((((T633*)C))->_list/*8*/)),_i))));
  844. _i=(_i)+(1);
  845. }
  846. }
  847. /*FI*/}
  848. /*No:E_ENSURE.set_ensure_then*/
  849. /*No:E_ENSURE.list*/
  850. /*No:E_ENSURE.current_type*/
  851. /*No:E_ENSURE.is_ensure_then*/
  852. /*No:E_ENSURE.header_comment*/
  853. void r633compile_to_jvm(T633* C,int a1){
  854. T0* _ca=NULL;
  855. int _i=0;
  856. int _point_true=0;
  857. /*IF*/if (((((T633*)C))->_list/*8*/)!=((void*)(NULL))) {
  858. _ca=oBC364code_attribute;
  859. r256check_opening(((T256*)_ca));
  860. /*IF*/if (a1) {
  861. _i=1;
  862. while (!((_i)>((((T608*)((T608*)((((T633*)C))->_list/*8*/))))->_upper/*8*/))) {
  863. r348compile_to_jvm(((T348*)(r608item(((T608*)((((T633*)C))->_list/*8*/)),_i))),1);
  864. _i=(_i)+(1);
  865. }
  866. }
  867. else {
  868. /*[IRF3.3clear*/((((T226*)(((T226*)(oBC596points_false)))))->_upper)=(-(1));
  869. /*]*/
  870. _i=1;
  871. while (!((_i)>((((T608*)((T608*)((((T633*)C))->_list/*8*/))))->_upper/*8*/))) {
  872. r348compile_to_jvm(((T348*)(r608item(((T608*)((((T633*)C))->_list/*8*/)),_i))),0);
  873. r226add_last(((T226*)(oBC596points_false)),r256opcode_ifeq(((T256*)_ca)));
  874. _i=(_i)+(1);
  875. }
  876. /*[IRF3.4opcode_iconst_1*/r256opcode(((T256*)_ca),4,1);
  877. /*]*/
  878. _point_true=r256opcode_goto(((T256*)_ca));
  879. r256resolve_with(oBC596points_false);
  880. /*[IRF3.4opcode_iconst_0*/r256opcode(((T256*)_ca),3,1);
  881. /*]*/
  882. r256resolve_u2_branch(_point_true);
  883. }
  884. /*FI*/r256check_closing(((T256*)_ca));
  885. }
  886. /*FI*/}
  887. int r633use_current(T633* C){
  888. int R=0;
  889. int _i=0;
  890. /*IF*/if (((((T633*)C))->_list/*8*/)!=((void*)(NULL))) {
  891. _i=(((T608*)((T608*)((((T633*)C))->_list/*8*/))))->_upper/*8*/;
  892. while (!((R)||((_i)==(0)))) {
  893. R=r348use_current(((T348*)(r608item(((T608*)((((T633*)C))->_list/*8*/)),_i))));
  894. _i=(_i)-(1);
  895. }
  896. }
  897. /*FI*/return R;
  898. }
  899. void r633afd_check(T633* C){
  900. int _i=0;
  901. /*IF*/if (((((T633*)C))->_list/*8*/)!=((void*)(NULL))) {
  902. _i=(((T608*)((T608*)((((T633*)C))->_list/*8*/))))->_upper/*8*/;
  903. while (!((_i)==(0))) {
  904. r348afd_check(((T348*)(r608item(((T608*)((((T633*)C))->_list/*8*/)),_i))));
  905. _i=(_i)-(1);
  906. }
  907. }
  908. /*FI*/}
  909. void r378set_uft8(T378* C,T0* a1){
  910. C->_tag='\1';
  911. r7copy(((T7*)((((T378*)C))->_info/*1*/)),a1);
  912. }
  913. /*No:CP_INFO.string_code*/
  914. /*No:CP_INFO.fieldref_code*/
  915. void r378set_name_and_type(T378* C,T0* a1){
  916. C->_tag='\14';
  917. r7copy(((T7*)((((T378*)C))->_info/*1*/)),a1);
  918. }
  919. int r378is_fieldref_idx(T378* C,int a1,int a2){
  920. int R=0;
  921. /*IF*/if (('\11')==((((T378*)C))->_tag/*0*/)) {
  922. /*IF*/if ((r378u2_to_integer(C,1))==(a1)) {
  923. R=(r378u2_to_integer(C,3))==(a2);
  924. }
  925. /*FI*/}
  926. /*FI*/return R;
  927. }
  928. int r378is_methodref_idx(T378* C,int a1,int a2){
  929. int R=0;
  930. /*IF*/if (('\n')==((((T378*)C))->_tag/*0*/)) {
  931. /*IF*/if ((r378u2_to_integer(C,1))==(a1)) {
  932. R=(r378u2_to_integer(C,3))==(a2);
  933. }
  934. /*FI*/}
  935. /*FI*/return R;
  936. }
  937. int r378is_string_idx(T378* C,int a1){
  938. int R=0;
  939. /*IF*/if (('\10')==((((T378*)C))->_tag/*0*/)) {
  940. R=(r378u2_to_integer(C,1))==(a1);
  941. }
  942. /*FI*/return R;
  943. }
  944. /*No:CP_INFO.class_code*/
  945. int r378u2_to_integer(T378* C,int a1){
  946. int R=0;
  947. R=(/*(IRF4.6item*/((((T7*)((T7*)((((T378*)C))->_info/*1*/))))->_storage/*0*/)[(a1)-(1)]/*)*/)*(256);
  948. R=(R)+(/*(IRF4.6item*/((((T7*)((T7*)((((T378*)C))->_info/*1*/))))->_storage/*0*/)[((a1)+(1))-(1)]/*)*/);
  949. return R;
  950. }
  951. /*No:CP_INFO.info*/
  952. void r378clear(T378* C){
  953. C->_tag='\0';
  954. /*IF*/if (((((T378*)C))->_info/*1*/)==((void*)(NULL))) {
  955. {T7*n=malloc(sizeof(*n));
  956. *n=M7;
  957. r7make(n,4);
  958. C->_info=(T0*)n;
  959. }
  960. }
  961. else {
  962. /*[IRF3.3clear*/((((T7*)(((T7*)((((T378*)C))->_info/*1*/)))))->_count)=(0);
  963. /*]*/
  964. }
  965. /*FI*/}
  966. /*No:CP_INFO.empty_code*/
  967. /*No:CP_INFO.tag*/
  968. void r378set_string(T378* C,T0* a1){
  969. char _c=0;
  970. int _i=0;
  971. C->_tag='\10';
  972. /*[IRF3.3clear*/((((T7*)(((T7*)((((T378*)C))->_info/*1*/)))))->_count)=(0);
  973. /*]*/
  974. r7extend(((T7*)((((T378*)C))->_info/*1*/)),/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(1)-(1)]/*)*/);
  975. r7extend(((T7*)((((T378*)C))->_info/*1*/)),/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(2)-(1)]/*)*/);
  976. _i=3;
  977. while (!((_i)>((((T7*)((T7*)a1)))->_count/*4*/))) {
  978. _c=/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(_i)-(1)]/*)*/;
  979. /*IF*/if ((_c)==('\0')) {
  980. r7extend(((T7*)((((T378*)C))->_info/*1*/)),'\300');
  981. r7extend(((T7*)((((T378*)C))->_info/*1*/)),'\200');
  982. }
  983. else {
  984. r7extend(((T7*)((((T378*)C))->_info/*1*/)),_c);
  985. }
  986. /*FI*/_i=(_i)+(1);
  987. }
  988. }
  989. void r378set_class(T378* C,T0* a1){
  990. C->_tag='\7';
  991. r7copy(((T7*)((((T378*)C))->_info/*1*/)),a1);
  992. }
  993. /*No:CP_INFO.name_and_type_code*/
  994. int r378is_name_and_type_idx(T378* C,int a1,int a2){
  995. int R=0;
  996. /*IF*/if (('\14')==((((T378*)C))->_tag/*0*/)) {
  997. /*IF*/if ((r378u2_to_integer(C,1))==(a1)) {
  998. R=(r378u2_to_integer(C,3))==(a2);
  999. }
  1000. /*FI*/}
  1001. /*FI*/return R;
  1002. }
  1003. void r378set_methodref(T378* C,T0* a1){
  1004. C->_tag='\n';
  1005. r7copy(((T7*)((((T378*)C))->_info/*1*/)),a1);
  1006. }
  1007. int r378is_class_idx(T378* C,int a1){
  1008. int R=0;
  1009. /*IF*/if (('\7')==((((T378*)C))->_tag/*0*/)) {
  1010. R=(r378u2_to_integer(C,1))==(a1);
  1011. }
  1012. /*FI*/return R;
  1013. }
  1014. void r378b_put(T378* C){
  1015. r228b_put_u1(((T228*)(oBC364jvm)),(((T378*)C))->_tag/*0*/);
  1016. r228b_put_byte_string(((T228*)(oBC364jvm)),(((T378*)C))->_info/*1*/);
  1017. }
  1018. /*No:CP_INFO.uft8_code*/
  1019. int r378is_uft8_idx(T378* C,T0* a1){
  1020. int R=0;
  1021. int _i2=0;
  1022. int _i1=0;
  1023. /*IF*/if (('\1')==((((T378*)C))->_tag/*0*/)) {
  1024. /*IF*/if ((r378u2_to_integer(C,1))==((((T7*)((T7*)a1)))->_count/*4*/)) {
  1025. _i1=((((T7*)((T7*)a1)))->_count/*4*/)+(1);
  1026. _i2=((((T7*)((T7*)((((T378*)C))->_info/*1*/))))->_count/*4*/)+(1);
  1027. R=1;
  1028. while (!((!(R))||((_i1)==(1)))) {
  1029. _i1=(_i1)-(1);
  1030. _i2=(_i2)-(1);
  1031. R=(/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(_i1)-(1)]/*)*/)==(/*(IRF4.6item*/((((T7*)((T7*)((((T378*)C))->_info/*1*/))))->_storage/*0*/)[(_i2)-(1)]/*)*/);
  1032. }
  1033. }
  1034. /*FI*/}
  1035. /*FI*/return R;
  1036. }
  1037. void r378set_fieldref(T378* C,T0* a1){
  1038. C->_tag='\11';
  1039. r7copy(((T7*)((((T378*)C))->_info/*1*/)),a1);
  1040. }
  1041. /*No:CP_INFO.methodref_code*/
  1042. int r283id(T283* C){
  1043. int R=0;
  1044. R=(((T355*)((T355*)(r283run_class(C)))))->_id/*4*/;
  1045. return R;
  1046. }
  1047. void r283jvm_target_descriptor_in(T283* C,T0* a1){
  1048. X291jvm_target_descriptor_in((((T283*)C))->_run_type/*12*/,a1);
  1049. }
  1050. int r283jvm_if_x_eq(T283* C){
  1051. int R=0;
  1052. R=X291jvm_if_x_eq((((T283*)C))->_run_type/*12*/);
  1053. return R;
  1054. }
  1055. int r283has_creation(T283* C,T0* a1){
  1056. int R=0;
  1057. /*IF*/if ((C)==((void*)((((T283*)C))->_run_type/*12*/))) {
  1058. R=r605has_creation(((T605*)(r283base_class(C))),a1);
  1059. }
  1060. else {
  1061. R=X291has_creation((((T283*)C))->_run_type/*12*/,a1);
  1062. }
  1063. /*FI*/return R;
  1064. }
  1065. /*No:TYPE_FORMAL_GENERIC.is_anchored*/
  1066. int r283is_array(T283* C){
  1067. int R=0;
  1068. R=X291is_array((((T283*)C))->_run_type/*12*/);
  1069. return R;
  1070. }
  1071. int r283is_a(T283* C,T0* a1){
  1072. int R=0;
  1073. R=X291is_a((((T283*)C))->_run_type/*12*/,a1);
  1074. return R;
  1075. }
  1076. void r283jvm_to_reference(T283* C){
  1077. X291jvm_to_reference((((T283*)C))->_run_type/*12*/);
  1078. }
  1079. int r283is_pointer(T283* C){
  1080. int R=0;
  1081. R=X291is_pointer((((T283*)C))->_run_type/*12*/);
  1082. return R;
  1083. }
  1084. /*No:TYPE_FORMAL_GENERIC.run_type*/
  1085. int r283is_dummy_expanded(T283* C){
  1086. int R=0;
  1087. R=X291is_dummy_expanded((((T283*)C))->_run_type/*12*/);
  1088. return R;
  1089. }
  1090. int r283jvm_push_default(T283* C){
  1091. int R=0;
  1092. R=X291jvm_push_default((((T283*)C))->_run_type/*12*/);
  1093. return R;
  1094. }
  1095. int r283is_string(T283* C){
  1096. int R=0;
  1097. R=X291is_string((((T283*)C))->_run_type/*12*/);
  1098. return R;
  1099. }
  1100. /*No:TYPE_FORMAL_GENERIC.is_like_feature*/
  1101. /*No:TYPE_FORMAL_GENERIC.is_like_current*/
  1102. void r283make(T283* C,T0* a1,int a2){
  1103. C->_rank=a2;
  1104. C->_formal_name=a1;
  1105. }
  1106. /*No:TYPE_FORMAL_GENERIC.formal_name*/
  1107. void r283jvm_return_code(T283* C){
  1108. X291jvm_return_code((((T283*)C))->_run_type/*12*/);
  1109. }
  1110. void r283jvm_xnewarray(T283* C){
  1111. X291jvm_xnewarray((((T283*)C))->_run_type/*12*/);
  1112. }
  1113. void r283jvm_descriptor_in(T283* C,T0* a1){
  1114. X291jvm_descriptor_in((((T283*)C))->_run_type/*12*/,a1);
  1115. }
  1116. /*No:TYPE_FORMAL_GENERIC.start_position*/
  1117. int r283is_user_expanded(T283* C){
  1118. int R=0;
  1119. R=X291is_user_expanded((((T283*)C))->_run_type/*12*/);
  1120. return R;
  1121. }
  1122. int r283is_character(T283* C){
  1123. int R=0;
  1124. R=X291is_character((((T283*)C))->_run_type/*12*/);
  1125. return R;
  1126. }
  1127. /*No:TYPE_FORMAL_GENERIC.written_mark*/
  1128. /*No:TYPE_FORMAL_GENERIC.is_run_type*/
  1129. T0* r283to_runnable(T283* C,T0* a1){
  1130. T0* R=NULL;
  1131. T0* _gl=NULL;
  1132. T0* _t=NULL;
  1133. T0* _p=NULL;
  1134. T0* _bc_ct=NULL;
  1135. T0* _bc_written=NULL;
  1136. _bc_written=r627base_class(((T627*)(/*(IRF4.6start_position*/(((T451*)((T451*)((((T283*)C))->_formal_name/*4*/))))->_start_position/*4*//*)*/)));
  1137. _bc_ct=X291base_class(a1);
  1138. /*IF*/if ((_bc_written)==((void*)(_bc_ct))) {
  1139. _gl=X291generic_list(a1);
  1140. /*IF*/if (((_gl)==((void*)(NULL)))||(((((T283*)C))->_rank/*8*/)>((((T701*)((T701*)_gl)))->_upper/*8*/))) {
  1141. r683add_position(X291start_position(a1));
  1142. r683add_position(/*(IRF4.6start_position*/(((T451*)((T451*)((((T283*)C))->_formal_name/*4*/))))->_start_position/*4*//*)*/);
  1143. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms61_470);
  1144. r683fatal_error(((T683*)(oBC364eh)),b1);
  1145. }/*]*/
  1146. }
  1147. else {
  1148. R=r283make_runnable(C,r701item(((T701*)_gl),(((T283*)C))->_rank/*8*/));
  1149. }
  1150. /*FI*/}
  1151. else {
  1152. _p=/*(IRF4.6first_parent_for*/r673first_parent_for(((T673*)((((T605*)((T605*)_bc_ct)))->_parent_list/*40*/)),_bc_written)/*)*/;
  1153. while (!((_p)==((void*)(NULL)))) {
  1154. _t=(((T877*)((T877*)_p)))->_type/*4*/;
  1155. _t=X291run_type(X291to_runnable(_t,a1));
  1156. /*IF*/if ((R)==((void*)(NULL))) {
  1157. R=r283to_runnable(C,_t);
  1158. _p=NULL;
  1159. }
  1160. else {
  1161. _p=/*(IRF4.6next_parent_for*/r673next_parent_for(((T673*)((((T605*)((T605*)_bc_ct)))->_parent_list/*40*/)),_bc_written,_p)/*)*/;
  1162. }
  1163. /*FI*/}
  1164. /*IF*/if ((R)==((void*)(NULL))) {
  1165. r683add_type(a1,((T0*)ms1_283));
  1166. r283warning(/*(IRF4.6start_position*/(((T451*)((T451*)((((T283*)C))->_formal_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms2_283));
  1167. }
  1168. /*FI*/}
  1169. /*FI*/return R;
  1170. }
  1171. /*No:TYPE_FORMAL_GENERIC.rank*/
  1172. /*No:TYPE_FORMAL_GENERIC.is_formal_generic*/
  1173. T0* r283generic_list(T283* C){
  1174. T0* R=NULL;
  1175. /*IF*/if (r283is_generic(C)) {
  1176. R=X291generic_list((((T283*)C))->_run_type/*12*/);
  1177. }
  1178. else {
  1179. r283fatal_error_generic_list(C);
  1180. }
  1181. /*FI*/return R;
  1182. }
  1183. int r283is_real(T283* C){
  1184. int R=0;
  1185. R=X291is_real((((T283*)C))->_run_type/*12*/);
  1186. return R;
  1187. }
  1188. T0* r283twin(T283* C){
  1189. T0* R=NULL;
  1190. R=malloc(sizeof(*C));
  1191. *((T283*)R)=*C;
  1192. return R;
  1193. }
  1194. /*No:TYPE_FORMAL_GENERIC.fz_bnga*/
  1195. int r283is_bit(T283* C){
  1196. int R=0;
  1197. R=X291is_bit((((T283*)C))->_run_type/*12*/);
  1198. return R;
  1199. }
  1200. T0* r283formal_arg(T283* C){
  1201. T0* R=NULL;
  1202. R=/*(IRF4.6item*/r681item(((T681*)((((T881*)((T881*)(r283formal_generic_list(C)))))->_list/*4*/)),(((T283*)C))->_rank/*8*/)/*)*/;
  1203. return R;
  1204. }
  1205. void r283fatal_error_generic_list(T283* C){
  1206. r683add_type((T0*)C,((T0*)ms12_291));
  1207. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1208. }
  1209. void r283jvm_check_class_invariant(T283* C){
  1210. X291jvm_check_class_invariant((((T283*)C))->_run_type/*12*/);
  1211. }
  1212. void r283jvm_xaload(T283* C){
  1213. X291jvm_xaload((((T283*)C))->_run_type/*12*/);
  1214. }
  1215. T0* r283smallest_ancestor(T283* C,T0* a1){
  1216. T0* R=NULL;
  1217. R=X291smallest_ancestor((((T283*)C))->_run_type/*12*/,a1);
  1218. return R;
  1219. }
  1220. /*No:TYPE_FORMAL_GENERIC.set_run_type*/
  1221. int r283is_boolean(T283* C){
  1222. int R=0;
  1223. R=X291is_boolean((((T283*)C))->_run_type/*12*/);
  1224. return R;
  1225. }
  1226. int r283is_double(T283* C){
  1227. int R=0;
  1228. R=X291is_double((((T283*)C))->_run_type/*12*/);
  1229. return R;
  1230. }
  1231. int r283jvm_stack_space(T283* C){
  1232. int R=0;
  1233. /*IF*/if (r283is_double(C)) {
  1234. R=2;
  1235. }
  1236. else {
  1237. R=1;
  1238. }
  1239. /*FI*/return R;
  1240. }
  1241. T0* r283run_class(T283* C){
  1242. T0* R=NULL;
  1243. R=r604run_class((((T283*)C))->_run_type/*12*/);
  1244. return R;
  1245. }
  1246. T0* r283run_time_mark(T283* C){
  1247. T0* R=NULL;
  1248. R=X291run_time_mark((((T283*)C))->_run_type/*12*/);
  1249. return R;
  1250. }
  1251. int r283is_a_in(T283* C,T0* a1,T0* a2){
  1252. int R=0;
  1253. T0* _ct=NULL;
  1254. T0* _t2=NULL;
  1255. T0* _t1=NULL;
  1256. /*IF*/if ((/*(IRF4.6written_mark*/(((T451*)((T451*)((((T283*)C))->_formal_name/*4*/))))->_to_string/*0*//*)*/)==((void*)(X291written_mark(a1)))) {
  1257. R=1;
  1258. }
  1259. else {
  1260. _ct=(((T355*)((T355*)a2)))->_current_type/*0*/;
  1261. _t1=r283to_runnable(C,_ct);
  1262. _t2=X291to_runnable(a1,_ct);
  1263. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  1264. R=1;
  1265. }
  1266. else {
  1267. R=X291is_a(_t1,_t2);
  1268. }
  1269. /*FI*/}
  1270. /*FI*/return R;
  1271. }
  1272. T0* r283look_up_for(T283* C,T0* a1,T0* a2){
  1273. T0* R=NULL;
  1274. R=r605look_up_for(((T605*)(r283base_class(C))),a1,a2);
  1275. return R;
  1276. }
  1277. int r283jvm_convert_to(T283* C,T0* a1){
  1278. int R=0;
  1279. R=X291jvm_convert_to((((T283*)C))->_run_type/*12*/,a1);
  1280. return R;
  1281. }
  1282. T0* r283expanded_initializer(T283* C){
  1283. T0* R=NULL;
  1284. R=X291expanded_initializer((((T283*)C))->_run_type/*12*/);
  1285. return R;
  1286. }
  1287. T0* r283constraint(T283* C){
  1288. T0* R=NULL;
  1289. R=(((T59*)((T59*)(r283formal_arg(C)))))->_constraint/*4*/;
  1290. return R;
  1291. }
  1292. int r283jvm_if_x_ne(T283* C){
  1293. int R=0;
  1294. R=X291jvm_if_x_ne((((T283*)C))->_run_type/*12*/);
  1295. return R;
  1296. }
  1297. /*No:TYPE_FORMAL_GENERIC.fz_dot*/
  1298. int r283is_generic(T283* C){
  1299. int R=0;
  1300. R=X291is_generic((((T283*)C))->_run_type/*12*/);
  1301. return R;
  1302. }
  1303. /*No:TYPE_FORMAL_GENERIC.fz_bga*/
  1304. void r283jvm_write_local(T283* C,int a1){
  1305. X291jvm_write_local((((T283*)C))->_run_type/*12*/,a1);
  1306. }
  1307. void r283jvm_initialize_local(T283* C,int a1){
  1308. X291jvm_initialize_local((((T283*)C))->_run_type/*12*/,a1);
  1309. }
  1310. /*No:TYPE_FORMAL_GENERIC.used_as_reference*/
  1311.  
  1312.