home *** CD-ROM | disk | FTP | other *** search
/ Amiga ACS 1998 #4 / amigaacscoverdisc1998-041998.iso / utilities / shareware / dev / ppcsmalleiffel / source.lha / bin_c / compile_to_jvm39.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  15.6 KB  |  549 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "compile_to_jvm.h"
  9. void r95append_u2(T0* a1,int a2){
  10. /*[IRF3.6append_u1*/{T0* b1=a1;
  11. int b2=(a2)/(256);
  12. r7extend(((T7*)b1),((char)(b2)));
  13. }/*]*/
  14. /*[IRF3.6append_u1*/{T0* b1=a1;
  15. int b2=(a2)%(256);
  16. r7extend(((T7*)b1),((char)(b2)));
  17. }/*]*/
  18. }
  19. int r95idx_name_and_type2(T95* C,T0* a1,T0* a2){
  20. int R=0;
  21. int _d=0;
  22. _d=r95idx_uft8(C,a2);
  23. R=r95idx_name_and_type1(C,a1,_d);
  24. return R;
  25. }
  26. /*No:CONSTANT_POOL.us_capacity*/
  27. int r95idx_methodref3(T95* C,T0* a1,T0* a2,T0* a3){
  28. int R=0;
  29. int _c=0;
  30. _c=r95idx_class2(C,a1);
  31. R=r95idx_methodref1(C,_c,a2,a3);
  32. return R;
  33. }
  34. T0* r95jvm_root_class(void){
  35. if (fBC364jvm_root_class==0){
  36. T0* R=NULL;
  37. fBC364jvm_root_class=1;
  38. {T7*n=malloc(sizeof(*n));
  39. *n=M7;
  40. r7make(n,12);
  41. R=(T0*)n;
  42. }
  43. r7copy(((T7*)R),(((T228*)((T228*)(oBC364jvm))))->_output_name/*16*/);
  44. r7extend(((T7*)R),'\57');
  45. r7append(((T7*)R),((T0*)ms112_470));
  46. oBC364jvm_root_class=R;}
  47. return oBC364jvm_root_class;}
  48. int r95idx_eiffel_string_class(T95* C){
  49. int R=0;
  50. R=r95idx_class2(C,r95jvm_string_class());
  51. return R;
  52. }
  53. int r95idx_eiffel_string_count_fieldref(T95* C){
  54. int R=0;
  55. int _idx=0;
  56. _idx=r95idx_name_and_type2(C,((T0*)ms60_473),((T0*)ms162_470));
  57. R=r95idx_fieldref2(C,r95idx_eiffel_string_class(C),_idx);
  58. return R;
  59. }
  60. void r95string_to_uft8(T0* a1,T0* a2){
  61. /*[IRF3.3clear*/((((T7*)(((T7*)a2))))->_count)=(0);
  62. /*]*/
  63. r95append_u2(a2,(((T7*)((T7*)a1)))->_count/*4*/);
  64. r7append(((T7*)a2),a1);
  65. }
  66. int r95idx_string2(T95* C,T0* a1){
  67. int R=0;
  68. char _c=0;
  69. int _i=0;
  70. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC95tmp_uft8)))))->_count)=(0);
  71. /*]*/
  72. _i=1;
  73. while (!((_i)>((((T7*)((T7*)a1)))->_count/*4*/))) {
  74. _c=/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(_i)-(1)]/*)*/;
  75. {int z1=_c;
  76.  
  77. if((0==z1)){
  78. r7extend(((T7*)(oBC95tmp_uft8)),((char)(192)));
  79. r7extend(((T7*)(oBC95tmp_uft8)),((char)(128)));
  80. }
  81.  else 
  82. if(((1<=z1)&&(z1<=127))){
  83. r7extend(((T7*)(oBC95tmp_uft8)),_c);
  84. }
  85.  else 
  86. if(((128<=z1)&&(z1<=191))){
  87. r7extend(((T7*)(oBC95tmp_uft8)),((char)(194)));
  88. r7extend(((T7*)(oBC95tmp_uft8)),_c);
  89. }
  90.  else {r7extend(((T7*)(oBC95tmp_uft8)),((char)(195)));
  91. r7extend(((T7*)(oBC95tmp_uft8)),((char)((_c)-(64))));
  92. }}
  93. _i=(_i)+(1);
  94. }
  95. R=r95idx_string(C,oBC95tmp_uft8);
  96. return R;
  97. }
  98. /*No:CONSTANT_POOL.idx_java_lang_object*/
  99. int r95idx_name_and_type3(T95* C,int a1,int a2){
  100. int R=0;
  101. R=(((T95*)C))->_cp_up/*0*/;
  102. while (!(((R)==(0))||(r378is_name_and_type_idx(((T378*)(/*(IRF4.6item*/((((T515*)((T515*)(oBC95cp))))->_storage/*0*/)[R]/*)*/)),a1,a2)))) {
  103. R=(R)-(1);
  104. }
  105. /*IF*/if ((R)==(0)) {
  106. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC95tmp_info)))))->_count)=(0);
  107. /*]*/
  108. /*[IRF3.6tmp_info_append_u2*/{int b1=a1;
  109. r95append_u2(oBC95tmp_info,b1);
  110. }/*]*/
  111. /*[IRF3.6tmp_info_append_u2*/{int b1=a2;
  112. r95append_u2(oBC95tmp_info,b1);
  113. }/*]*/
  114. r378set_name_and_type(((T378*)(r95add_last(C))),oBC95tmp_info);
  115. R=(((T95*)C))->_cp_up/*0*/;
  116. }
  117. /*FI*/return R;
  118. }
  119. int r95idx_fieldref2(T95* C,int a1,int a2){
  120. int R=0;
  121. R=(((T95*)C))->_cp_up/*0*/;
  122. while (!(((R)==(0))||(r378is_fieldref_idx(((T378*)(/*(IRF4.6item*/((((T515*)((T515*)(oBC95cp))))->_storage/*0*/)[R]/*)*/)),a1,a2)))) {
  123. R=(R)-(1);
  124. }
  125. /*IF*/if ((R)==(0)) {
  126. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC95tmp_info)))))->_count)=(0);
  127. /*]*/
  128. /*[IRF3.6tmp_info_append_u2*/{int b1=a1;
  129. r95append_u2(oBC95tmp_info,b1);
  130. }/*]*/
  131. /*[IRF3.6tmp_info_append_u2*/{int b1=a2;
  132. r95append_u2(oBC95tmp_info,b1);
  133. }/*]*/
  134. r378set_fieldref(((T378*)(r95add_last(C))),oBC95tmp_info);
  135. R=(((T95*)C))->_cp_up/*0*/;
  136. }
  137. /*FI*/return R;
  138. }
  139. /*No:CONSTANT_POOL.fz_30*/
  140. void r95clear(T95* C){
  141. C->_cp_up=0;
  142. C->_idx_java_lang_object=r95idx_class2(C,((T0*)ms1_95));
  143. C->_idx_jvm_root_class=r95idx_class2(C,r95jvm_root_class());
  144. C->_idx_uft8_code=r95idx_uft8(C,((T0*)ms2_95));
  145. }
  146. /*No:CONSTANT_POOL.fz_31*/
  147. int r95idx_string(T95* C,T0* a1){
  148. int R=0;
  149. int _uft8=0;
  150. _uft8=r95idx_uft8(C,a1);
  151. R=(((T95*)C))->_cp_up/*0*/;
  152. while (!(((R)==(0))||(r378is_string_idx(((T378*)(/*(IRF4.6item*/((((T515*)((T515*)(oBC95cp))))->_storage/*0*/)[R]/*)*/)),_uft8)))) {
  153. R=(R)-(1);
  154. }
  155. /*IF*/if ((R)==(0)) {
  156. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC95tmp_info)))))->_count)=(0);
  157. /*]*/
  158. /*[IRF3.6tmp_info_append_u2*/{int b1=_uft8;
  159. r95append_u2(oBC95tmp_info,b1);
  160. }/*]*/
  161. r378set_string(((T378*)(r95add_last(C))),oBC95tmp_info);
  162. R=(((T95*)C))->_cp_up/*0*/;
  163. }
  164. /*FI*/return R;
  165. }
  166. /*No:CONSTANT_POOL.fz_java_lang_object*/
  167. int r95idx_fieldref3(T95* C,T0* a1,T0* a2,T0* a3){
  168. int R=0;
  169. int _c=0;
  170. _c=r95idx_class2(C,a1);
  171. R=r95idx_fieldref4(C,_c,a2,a3);
  172. return R;
  173. }
  174. /*No:CONSTANT_POOL.fz_24*/
  175. int r95idx_fieldref_generator(T95* C,int a1){
  176. int R=0;
  177. int _nt=0;
  178. int _idx=0;
  179. _idx=r95idx_eiffel_string_descriptor(C);
  180. _nt=r95idx_name_and_type1(C,((T0*)ms79_473),_idx);
  181. R=r95idx_fieldref2(C,a1,_nt);
  182. return R;
  183. }
  184. /*No:CONSTANT_POOL.us_generating_type*/
  185. int r95idx_eiffel_string_descriptor(T95* C){
  186. int R=0;
  187. R=r95idx_uft8(C,r95jvm_string_descriptor());
  188. return R;
  189. }
  190. int r95idx_fieldref4(T95* C,int a1,T0* a2,T0* a3){
  191. int R=0;
  192. int _nt=0;
  193. _nt=r95idx_name_and_type2(C,a2,a3);
  194. R=r95idx_fieldref2(C,a1,_nt);
  195. return R;
  196. }
  197. /*No:CONSTANT_POOL.us_count*/
  198. /*No:CONSTANT_POOL.us_storage*/
  199. /*No:CONSTANT_POOL.idx_uft8_code*/
  200. int r95idx_fieldref5(T95* C,int a1,int a2,int a3){
  201. int R=0;
  202. int _nt=0;
  203. _nt=r95idx_name_and_type3(C,a2,a3);
  204. R=r95idx_fieldref2(C,a1,_nt);
  205. return R;
  206. }
  207. int r95idx_methodref(T95* C,T0* a1){
  208. int R=0;
  209. int _nt=0;
  210. int _c=0;
  211. _c=r355fully_qualified_constant_pool_index(((T355*)(X496run_class(a1))));
  212. _nt=r95idx_name_and_type(C,a1);
  213. R=r95idx_methodref2(C,_c,_nt);
  214. return R;
  215. }
  216. /*No:CONSTANT_POOL.fz_jvm_root*/
  217. T0*oBC95tmp_info=NULL;
  218. /*No:CONSTANT_POOL.idx_jvm_root_class*/
  219. int r95idx_class2(T95* C,T0* a1){
  220. int R=0;
  221. int _uft8=0;
  222. _uft8=r95idx_uft8(C,a1);
  223. R=(((T95*)C))->_cp_up/*0*/;
  224. while (!(((R)==(0))||(r378is_class_idx(((T378*)(/*(IRF4.6item*/((((T515*)((T515*)(oBC95cp))))->_storage/*0*/)[R]/*)*/)),_uft8)))) {
  225. R=(R)-(1);
  226. }
  227. /*IF*/if ((R)==(0)) {
  228. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC95tmp_info)))))->_count)=(0);
  229. /*]*/
  230. /*[IRF3.6tmp_info_append_u2*/{int b1=_uft8;
  231. r95append_u2(oBC95tmp_info,b1);
  232. }/*]*/
  233. r378set_class(((T378*)(r95add_last(C))),oBC95tmp_info);
  234. R=(((T95*)C))->_cp_up/*0*/;
  235. }
  236. /*FI*/return R;
  237. }
  238. T0* r95add_last(T95* C){
  239. T0* R=NULL;
  240. /*IF*/if (((((T515*)((T515*)(oBC95cp))))->_upper/*8*/)>((((T95*)C))->_cp_up/*0*/)) {
  241. C->_cp_up=((((T95*)C))->_cp_up/*0*/)+(1);
  242. R=/*(IRF4.6item*/((((T515*)((T515*)(oBC95cp))))->_storage/*0*/)[(((T95*)C))->_cp_up/*0*/]/*)*/;
  243. }
  244. else {
  245. {T378*n=malloc(sizeof(*n));
  246. *n=M378;
  247. r378clear(n);
  248. R=(T0*)n;
  249. }
  250. r515add_last(((T515*)(oBC95cp)),R);
  251. C->_cp_up=((((T95*)C))->_cp_up/*0*/)+(1);
  252. }
  253. /*FI*/return R;
  254. }
  255. void r95write_bytes(T95* C){
  256. int _i=0;
  257. r306put_string(((T306*)(oBC364echo)),((T0*)ms3_95));
  258. r306put_integer(((T306*)(oBC364echo)),(((T95*)C))->_cp_up/*0*/);
  259. r306put_new_line(((T306*)(oBC364echo)));
  260. r228b_put_u2(((T228*)(oBC364jvm)),((((T95*)C))->_cp_up/*0*/)+(1));
  261. _i=1;
  262. while (!((_i)>((((T95*)C))->_cp_up/*0*/))) {
  263. r378b_put(((T378*)(/*(IRF4.6item*/((((T515*)((T515*)(oBC95cp))))->_storage/*0*/)[_i]/*)*/)));
  264. _i=(_i)+(1);
  265. }
  266. }
  267. /*No:CONSTANT_POOL.cp_up*/
  268. int r95idx_fieldref(T95* C,T0* a1){
  269. int R=0;
  270. int _nt=0;
  271. int _c=0;
  272. _c=r355fully_qualified_constant_pool_index(((T355*)(X496run_class(a1))));
  273. _nt=r95idx_name_and_type(C,a1);
  274. R=r95idx_fieldref2(C,_c,_nt);
  275. return R;
  276. }
  277. int r95idx_eiffel_string_capacity_fieldref(T95* C){
  278. int R=0;
  279. int _idx=0;
  280. _idx=r95idx_name_and_type2(C,((T0*)ms55_473),((T0*)ms162_470));
  281. R=r95idx_fieldref2(C,r95idx_eiffel_string_class(C),_idx);
  282. return R;
  283. }
  284. /*No:CALL_INFIX_AND_THEN.arguments*/
  285. T0* r655add_comment(T655* C,T0* a1){
  286. T0* R=NULL;
  287. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  288. R=(T0*)C;
  289. }
  290. else {
  291. {T529*n=malloc(sizeof(*n));
  292. *n=M529;
  293. r529make(n,(T0*)C,a1);
  294. R=(T0*)n;
  295. }
  296. }
  297. /*FI*/return R;
  298. }
  299. int r655to_integer(T655* C){
  300. int R=0;
  301. r655error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T655*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  302. return R;
  303. }
  304. int r655is_a(T655* C,T0* a1){
  305. int R=0;
  306. R=X291is_a(X291run_type((((T655*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
  307. /*IF*/if (!(R)) {
  308. r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T655*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/);
  309. r655error(X662start_position(a1),((T0*)ms4_662));
  310. }
  311. /*FI*/return R;
  312. }
  313. /*No:CALL_INFIX_AND_THEN.is_current*/
  314. /*No:CALL_INFIX_AND_THEN.jvm_branch_if_false*/
  315. /*No:CALL_INFIX_AND_THEN.us_and_then*/
  316. /*No:CALL_INFIX_AND_THEN.static_value*/
  317. void r655make(T655* C,T0* a1,T0* a2,T0* a3){
  318. T0* _eal=NULL;
  319. /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
  320. r683add_position(a2);
  321. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
  322. r683fatal_error(((T683*)(oBC364eh)),b1);
  323. }/*]*/
  324. }
  325. /*FI*/{T454*n=malloc(sizeof(*n));
  326. *n=M454;
  327. r454make(n,r655operator(),a2);
  328. C->_feature_name=(T0*)n;
  329. }
  330. {T431*n=malloc(sizeof(*n));
  331. *n=M431;
  332. /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
  333. /*]*/
  334. _eal=(T0*)n;
  335. }
  336. r655make_call_1(C,a1,(((T655*)C))->_feature_name/*28*/,_eal);
  337. }
  338. /*No:CALL_INFIX_AND_THEN.nb_errors*/
  339. /*No:CALL_INFIX_AND_THEN.feature_name*/
  340. /*No:CALL_INFIX_AND_THEN.compile_to_jvm_assignment*/
  341. /*No:CALL_INFIX_AND_THEN.fz_iinaiv*/
  342. /*No:CALL_INFIX_AND_THEN.arg_count*/
  343. /*No:CALL_INFIX_AND_THEN.jvm_branch_if_true*/
  344. /*No:CALL_INFIX_AND_THEN.run_feature*/
  345. /*No:CALL_INFIX_AND_THEN.start_position*/
  346. void r655compile_to_jvm_old(T655* C){
  347. X662compile_to_jvm_old((((T655*)C))->_target/*12*/);
  348. /*IF*/{/*AT*/r431compile_to_jvm_old(((T431*)((((T655*)C))->_arguments/*24*/)));
  349. }
  350. /*FI*/}
  351. /*No:CALL_INFIX_AND_THEN.target*/
  352. T0* r655to_runnable(T655* C,T0* a1){
  353. T0* R=NULL;
  354. T0* _tla=NULL;
  355. T0* _a=NULL;
  356. /*IF*/if (((((T655*)C))->_current_type/*8*/)==((void*)(NULL))) {
  357. r655to_runnable_0(C,a1);
  358. _a=r431to_runnable(((T431*)((((T655*)C))->_arguments/*24*/)),a1);
  359. /*IF*/if ((_a)==((void*)(NULL))) {
  360. r655error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T655*)C))->_arguments/*24*/)))/*)*/),((T0*)ms55_470));
  361. }
  362. else {
  363. C->_arguments=_a;
  364. }
  365. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  366. r431match_with(((T431*)((((T655*)C))->_arguments/*24*/)),(((T655*)C))->_run_feature/*16*/);
  367. }
  368. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  369. _tla=(((T655*)C))->_result_type/*20*/;
  370. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  371. case 239: 
  372. break;
  373. default:
  374. _tla=NULL;
  375. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  376. C->_result_type=X291run_type(X662result_type(/*(IRF4.6arg1*/r431first(((T431*)((((T655*)C))->_arguments/*24*/)))/*)*/));
  377. }
  378. /*FI*/}
  379. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  380. R=(T0*)C;
  381. }
  382. /*FI*/}
  383. else {
  384. R=r655twin(C);
  385. /*[IRF3.3set_current_type*/((((T655*)(((T655*)R))))->_current_type)=(NULL);
  386. /*]*/
  387. R=r655to_runnable(((T655*)R),a1);
  388. }
  389. /*FI*/return R;
  390. }
  391. /*No:CALL_INFIX_AND_THEN.result_type*/
  392. /*No:CALL_INFIX_AND_THEN.is_result*/
  393. T0* r655twin(T655* C){
  394. T0* R=NULL;
  395. R=malloc(sizeof(*C));
  396. *((T655*)R)=*C;
  397. return R;
  398. }
  399. /*No:CALL_INFIX_AND_THEN.set_current_type*/
  400. T0* r655operator(void){
  401. T0* R=NULL;
  402. R=((T0*)ms28_473);
  403. return R;
  404. }
  405. int r655is_static(T655* C){
  406. int R=0;
  407. /*IF*/if (X291is_boolean(X662result_type((((T655*)C))->_target/*12*/))) {
  408. /*IF*/if (X662is_static((((T655*)C))->_target/*12*/)) {
  409. /*IF*/if ((X662static_value((((T655*)C))->_target/*12*/))==(0)) {
  410. R=1;
  411. }
  412. else {
  413. R=X662is_static(/*(IRF4.6arg1*/r431first(((T431*)((((T655*)C))->_arguments/*24*/)))/*)*/);
  414. C->_static_value_mem=X662static_value(/*(IRF4.6arg1*/r431first(((T431*)((((T655*)C))->_arguments/*24*/)))/*)*/);
  415. }
  416. /*FI*/}
  417. /*FI*/}
  418. /*FI*/return R;
  419. }
  420. void r655standard_compile_target_to_jvm(T655* C){
  421. r655compile_to_jvm(C);
  422. X291jvm_check_class_invariant((((T655*)C))->_result_type/*20*/);
  423. }
  424. int r655compile_to_jvm_into(T655* C,T0* a1){
  425. int R=0;
  426. R=r655standard_compile_to_jvm_into(C,a1);
  427. return R;
  428. }
  429. /*No:CALL_INFIX_AND_THEN.compile_target_to_jvm*/
  430. /*No:CALL_INFIX_AND_THEN.fz_07*/
  431. /*No:CALL_INFIX_AND_THEN.can_be_dropped*/
  432. /*No:CALL_INFIX_AND_THEN.current_type*/
  433. /*No:CALL_INFIX_AND_THEN.jvm_assign*/
  434. /*No:CALL_INFIX_AND_THEN.static_value_mem*/
  435. void r655make_call_1(T655* C,T0* a1,T0* a2,T0* a3){
  436. C->_target=a1;
  437. C->_feature_name=a2;
  438. C->_arguments=a3;
  439. }
  440. /*No:CALL_INFIX_AND_THEN.is_manifest_string*/
  441. /*No:CALL_INFIX_AND_THEN.is_void*/
  442. int r655jvm_standard_branch_if_false(T655* C){
  443. int R=0;
  444. r655compile_to_jvm(C);
  445. R=r256opcode_ifeq(((T256*)(oBC364code_attribute)));
  446. return R;
  447. }
  448. void r655compile_to_jvm(T655* C){
  449. int _point2=0;
  450. int _point1=0;
  451. X662compile_to_jvm((((T655*)C))->_target/*12*/);
  452. _point1=r256opcode_ifeq(((T256*)(oBC364code_attribute)));
  453. X662compile_to_jvm(/*(IRF4.6arg1*/r431first(((T431*)((((T655*)C))->_arguments/*24*/)))/*)*/);
  454. _point2=r256opcode_goto(((T256*)(oBC364code_attribute)));
  455. r256resolve_u2_branch(_point1);
  456. /*[IRF3.4opcode_iconst_0*/r256opcode(((T256*)(oBC364code_attribute)),3,1);
  457. /*]*/
  458. r256resolve_u2_branch(_point2);
  459. }
  460. void r655to_runnable_0(T655* C,T0* a1){
  461. C->_current_type=a1;
  462. r655cpc_to_runnable(C,a1);
  463. C->_result_type=/*X496*/((T0*)(((T832*)((T832*)((((T655*)C))->_run_feature/*16*/))))->_result_type/*24*/);
  464. /*IF*/if (((((T655*)C))->_result_type/*20*/)==((void*)(NULL))) {
  465. r683add_position(X496start_position((((T655*)C))->_run_feature/*16*/));
  466. r655error((((T454*)((T454*)((((T655*)C))->_feature_name/*28*/))))->_start_position/*8*/,((T0*)ms1_295));
  467. }
  468.  else if (X291is_like_current((((T655*)C))->_result_type/*20*/)) {
  469. C->_result_type=X662result_type((((T655*)C))->_target/*12*/);
  470. }
  471. /*FI*/}
  472. /*No:CALL_INFIX_AND_THEN.is_pre_computable*/
  473. int r655jvm_standard_branch_if_true(T655* C){
  474. int R=0;
  475. r655compile_to_jvm(C);
  476. R=r256opcode_ifne(((T256*)(oBC364code_attribute)));
  477. return R;
  478. }
  479. int r655use_current(T655* C){
  480. int R=0;
  481. /*IF*/{/*AT*/R=r431use_current(((T431*)((((T655*)C))->_arguments/*24*/)));
  482. }
  483. /*FI*//*IF*/if (R) {
  484. }
  485.  else if (X662is_current((((T655*)C))->_target/*12*/)) {
  486. R=X496use_current((((T655*)C))->_run_feature/*16*/);
  487. }
  488. else {
  489. R=X662use_current((((T655*)C))->_target/*12*/);
  490. }
  491. /*FI*/return R;
  492. }
  493. void r655cpc_to_runnable(T655* C,T0* a1){
  494. T0* _rc=NULL;
  495. T0* _t=NULL;
  496. _t=X662to_runnable((((T655*)C))->_target/*12*/,a1);
  497. /*IF*/if ((_t)==((void*)(NULL))) {
  498. r683add_position(X662start_position((((T655*)C))->_target/*12*/));
  499. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  500. r683fatal_error(((T683*)(oBC364eh)),b1);
  501. }/*]*/
  502. }
  503. /*FI*/C->_target=_t;
  504. _rc=X291run_class(X662result_type((((T655*)C))->_target/*12*/));
  505. C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C);
  506. r576update((((T655*)C))->_target/*12*/,(((T655*)C))->_run_feature/*16*/);
  507. }
  508. void r655error(T0* a1,T0* a2){
  509. r683add_position(a1);
  510. r683error(((T683*)(oBC364eh)),a2);
  511. }
  512. /*No:CALL_INFIX_AND_THEN.isa_dca_inline_argument*/
  513. /*No:CALL_INFIX_AND_THEN.fatal_error*/
  514. /*No:CALL_INFIX_AND_THEN.fz_bad_argument*/
  515. /*No:CALL_INFIX_AND_THEN.arg1*/
  516. int r655standard_compile_to_jvm_into(T655* C,T0* a1){
  517. int R=0;
  518. r655compile_to_jvm(C);
  519. R=X291jvm_convert_to(X291run_type((((T655*)C))->_result_type/*20*/),a1);
  520. return R;
  521. }
  522. void r655afd_check(T655* C){
  523. T0* _running=NULL;
  524. T0* _rc=NULL;
  525. _rc=X291run_class(X662result_type((((T655*)C))->_target/*12*/));
  526. _running=(((T355*)((T355*)_rc)))->_running/*12*/;
  527. /*IF*/if ((_running)==((void*)(NULL))) {
  528. r683add_position(X662start_position((((T655*)C))->_target/*12*/));
  529. /*[IRF3.6append*/{T0* b1=((T0*)ms1_135);
  530. r7append(((T7*)(oBC683explanation)),b1);
  531. }/*]*/
  532. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/);
  533. r7append(((T7*)(oBC683explanation)),b1);
  534. }/*]*/
  535. /*[IRF3.6append*/{T0* b1=((T0*)ms141_470);
  536. r7append(((T7*)(oBC683explanation)),b1);
  537. }/*]*/
  538. r683print_as_warning(((T683*)(oBC364eh)));
  539. r355set_at_run_time(((T355*)_rc));
  540. }
  541.  else if ((r396count(((T396*)_running)))>(0)) {
  542. r576update((((T655*)C))->_target/*12*/,(((T655*)C))->_run_feature/*16*/);
  543. }
  544. /*FI*/X662afd_check((((T655*)C))->_target/*12*/);
  545. /*IF*/{/*AT*/r431afd_check(((T431*)((((T655*)C))->_arguments/*24*/)));
  546. }
  547. /*FI*/}
  548.  
  549.