home *** CD-ROM | disk | FTP | other *** search
/ Amiga ACS 1998 #4 / amigaacscoverdisc1998-041998.iso / utilities / shareware / dev / ppcsmalleiffel / source.lha / bin_c / compile_to_jvm35.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  49.4 KB  |  1,545 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. /*No:CALL_INFIX_GT.arguments*/
  10. T0* r57add_comment(T57* C,T0* a1){
  11. T0* R=NULL;
  12. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  13. R=(T0*)C;
  14. }
  15. else {
  16. {T529*n=malloc(sizeof(*n));
  17. *n=M529;
  18. r529make(n,(T0*)C,a1);
  19. R=(T0*)n;
  20. }
  21. }
  22. /*FI*/return R;
  23. }
  24. int r57to_integer(T57* C){
  25. int R=0;
  26. r57error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T57*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  27. return R;
  28. }
  29. int r57is_a(T57* C,T0* a1){
  30. int R=0;
  31. R=X291is_a(X291run_type((((T57*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
  32. /*IF*/if (!(R)) {
  33. r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T57*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/);
  34. r57error(X662start_position(a1),((T0*)ms4_662));
  35. }
  36. /*FI*/return R;
  37. }
  38. /*No:CALL_INFIX_GT.is_current*/
  39. int r57jvm_branch_if_false(T57* C){
  40. int R=0;
  41. /*IF*/if (X291is_integer((((T57*)C))->_current_type/*8*/)) {
  42. X662compile_to_jvm((((T57*)C))->_target/*12*/);
  43. X662compile_to_jvm(/*(IRF4.6arg1*/r431first(((T431*)((((T57*)C))->_arguments/*24*/)))/*)*/);
  44. R=r256opcode_if_icmple(((T256*)(oBC364code_attribute)));
  45. }
  46. else {
  47. R=r57jvm_standard_branch_if_false(C);
  48. }
  49. /*FI*/return R;
  50. }
  51. /*No:CALL_INFIX_GT.static_value*/
  52. void r57make(T57* C,T0* a1,T0* a2,T0* a3){
  53. T0* _eal=NULL;
  54. /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
  55. r683add_position(a2);
  56. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
  57. r683fatal_error(((T683*)(oBC364eh)),b1);
  58. }/*]*/
  59. }
  60. /*FI*/{T454*n=malloc(sizeof(*n));
  61. *n=M454;
  62. r454make(n,r57operator(),a2);
  63. C->_feature_name=(T0*)n;
  64. }
  65. {T431*n=malloc(sizeof(*n));
  66. *n=M431;
  67. /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
  68. /*]*/
  69. _eal=(T0*)n;
  70. }
  71. r57make_call_1(C,a1,(((T57*)C))->_feature_name/*28*/,_eal);
  72. }
  73. /*No:CALL_INFIX_GT.nb_errors*/
  74. /*No:CALL_INFIX_GT.feature_name*/
  75. /*No:CALL_INFIX_GT.compile_to_jvm_assignment*/
  76. /*No:CALL_INFIX_GT.fz_iinaiv*/
  77. /*No:CALL_INFIX_GT.arg_count*/
  78. int r57jvm_branch_if_true(T57* C){
  79. int R=0;
  80. /*IF*/if (X291is_integer((((T57*)C))->_current_type/*8*/)) {
  81. X662compile_to_jvm((((T57*)C))->_target/*12*/);
  82. X662compile_to_jvm(/*(IRF4.6arg1*/r431first(((T431*)((((T57*)C))->_arguments/*24*/)))/*)*/);
  83. R=r256opcode_if_icmpgt(((T256*)(oBC364code_attribute)));
  84. }
  85. else {
  86. R=r57jvm_standard_branch_if_true(C);
  87. }
  88. /*FI*/return R;
  89. }
  90. /*No:CALL_INFIX_GT.run_feature*/
  91. /*No:CALL_INFIX_GT.start_position*/
  92. void r57compile_to_jvm_old(T57* C){
  93. X662compile_to_jvm_old((((T57*)C))->_target/*12*/);
  94. /*IF*/{/*AT*/r431compile_to_jvm_old(((T431*)((((T57*)C))->_arguments/*24*/)));
  95. }
  96. /*FI*/}
  97. /*No:CALL_INFIX_GT.target*/
  98. T0* r57to_runnable(T57* C,T0* a1){
  99. T0* R=NULL;
  100. T0* _tla=NULL;
  101. T0* _a=NULL;
  102. /*IF*/if (((((T57*)C))->_current_type/*8*/)==((void*)(NULL))) {
  103. r57to_runnable_0(C,a1);
  104. _a=r431to_runnable(((T431*)((((T57*)C))->_arguments/*24*/)),a1);
  105. /*IF*/if ((_a)==((void*)(NULL))) {
  106. r57error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T57*)C))->_arguments/*24*/)))/*)*/),((T0*)ms55_470));
  107. }
  108. else {
  109. C->_arguments=_a;
  110. }
  111. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  112. r431match_with(((T431*)((((T57*)C))->_arguments/*24*/)),(((T57*)C))->_run_feature/*16*/);
  113. }
  114. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  115. _tla=(((T57*)C))->_result_type/*20*/;
  116. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  117. case 239: 
  118. break;
  119. default:
  120. _tla=NULL;
  121. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  122. C->_result_type=X291run_type(X662result_type(/*(IRF4.6arg1*/r431first(((T431*)((((T57*)C))->_arguments/*24*/)))/*)*/));
  123. }
  124. /*FI*/}
  125. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  126. R=(T0*)C;
  127. }
  128. /*FI*/}
  129. else {
  130. R=r57twin(C);
  131. /*[IRF3.3set_current_type*/((((T57*)(((T57*)R))))->_current_type)=(NULL);
  132. /*]*/
  133. R=r57to_runnable(((T57*)R),a1);
  134. }
  135. /*FI*/return R;
  136. }
  137. /*No:CALL_INFIX_GT.result_type*/
  138. /*No:CALL_INFIX_GT.is_result*/
  139. T0* r57twin(T57* C){
  140. T0* R=NULL;
  141. R=malloc(sizeof(*C));
  142. *((T57*)R)=*C;
  143. return R;
  144. }
  145. /*No:CALL_INFIX_GT.set_current_type*/
  146. T0* r57operator(void){
  147. T0* R=NULL;
  148. R=((T0*)ms33_473);
  149. return R;
  150. }
  151. int r57is_static(T57* C){
  152. int R=0;
  153. /*IF*/if (X291is_integer(X662result_type((((T57*)C))->_target/*12*/))) {
  154. /*IF*/if ((X662is_static((((T57*)C))->_target/*12*/))&&(X662is_static(/*(IRF4.6arg1*/r431first(((T431*)((((T57*)C))->_arguments/*24*/)))/*)*/))) {
  155. R=1;
  156. /*IF*/if ((X662static_value((((T57*)C))->_target/*12*/))>(X662static_value(/*(IRF4.6arg1*/r431first(((T431*)((((T57*)C))->_arguments/*24*/)))/*)*/))) {
  157. C->_static_value_mem=1;
  158. }
  159. else {
  160. C->_static_value_mem=0;
  161. }
  162. /*FI*/}
  163. /*FI*/}
  164. /*FI*/return R;
  165. }
  166. void r57standard_compile_target_to_jvm(T57* C){
  167. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T57* C1=C;
  168. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  169. }/*]*/
  170. /*]*/
  171. X291jvm_check_class_invariant((((T57*)C))->_result_type/*20*/);
  172. }
  173. int r57compile_to_jvm_into(T57* C,T0* a1){
  174. int R=0;
  175. R=r57standard_compile_to_jvm_into(C,a1);
  176. return R;
  177. }
  178. /*No:CALL_INFIX_GT.compile_target_to_jvm*/
  179. /*No:CALL_INFIX_GT.fz_07*/
  180. /*No:CALL_INFIX_GT.can_be_dropped*/
  181. /*No:CALL_INFIX_GT.current_type*/
  182. /*No:CALL_INFIX_GT.jvm_assign*/
  183. /*No:CALL_INFIX_GT.static_value_mem*/
  184. void r57make_call_1(T57* C,T0* a1,T0* a2,T0* a3){
  185. C->_target=a1;
  186. C->_feature_name=a2;
  187. C->_arguments=a3;
  188. }
  189. /*No:CALL_INFIX_GT.is_manifest_string*/
  190. /*No:CALL_INFIX_GT.is_void*/
  191. int r57jvm_standard_branch_if_false(T57* C){
  192. int R=0;
  193. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T57* C1=C;
  194. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  195. }/*]*/
  196. /*]*/
  197. R=r256opcode_ifeq(((T256*)(oBC364code_attribute)));
  198. return R;
  199. }
  200. /*No:CALL_INFIX_GT.compile_to_jvm*/
  201. void r57to_runnable_0(T57* C,T0* a1){
  202. C->_current_type=a1;
  203. r57cpc_to_runnable(C,a1);
  204. C->_result_type=/*X496*/((T0*)(((T832*)((T832*)((((T57*)C))->_run_feature/*16*/))))->_result_type/*24*/);
  205. /*IF*/if (((((T57*)C))->_result_type/*20*/)==((void*)(NULL))) {
  206. r683add_position(X496start_position((((T57*)C))->_run_feature/*16*/));
  207. r57error((((T454*)((T454*)((((T57*)C))->_feature_name/*28*/))))->_start_position/*8*/,((T0*)ms1_295));
  208. }
  209.  else if (X291is_like_current((((T57*)C))->_result_type/*20*/)) {
  210. C->_result_type=X662result_type((((T57*)C))->_target/*12*/);
  211. }
  212. /*FI*/}
  213. /*No:CALL_INFIX_GT.is_pre_computable*/
  214. int r57jvm_standard_branch_if_true(T57* C){
  215. int R=0;
  216. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T57* C1=C;
  217. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  218. }/*]*/
  219. /*]*/
  220. R=r256opcode_ifne(((T256*)(oBC364code_attribute)));
  221. return R;
  222. }
  223. int r57use_current(T57* C){
  224. int R=0;
  225. /*IF*/{/*AT*/R=r431use_current(((T431*)((((T57*)C))->_arguments/*24*/)));
  226. }
  227. /*FI*//*IF*/if (R) {
  228. }
  229.  else if (X662is_current((((T57*)C))->_target/*12*/)) {
  230. R=X496use_current((((T57*)C))->_run_feature/*16*/);
  231. }
  232. else {
  233. R=X662use_current((((T57*)C))->_target/*12*/);
  234. }
  235. /*FI*/return R;
  236. }
  237. void r57cpc_to_runnable(T57* C,T0* a1){
  238. T0* _rc=NULL;
  239. T0* _t=NULL;
  240. _t=X662to_runnable((((T57*)C))->_target/*12*/,a1);
  241. /*IF*/if ((_t)==((void*)(NULL))) {
  242. r683add_position(X662start_position((((T57*)C))->_target/*12*/));
  243. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  244. r683fatal_error(((T683*)(oBC364eh)),b1);
  245. }/*]*/
  246. }
  247. /*FI*/C->_target=_t;
  248. _rc=X291run_class(X662result_type((((T57*)C))->_target/*12*/));
  249. C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C);
  250. r576update((((T57*)C))->_target/*12*/,(((T57*)C))->_run_feature/*16*/);
  251. }
  252. void r57error(T0* a1,T0* a2){
  253. r683add_position(a1);
  254. r683error(((T683*)(oBC364eh)),a2);
  255. }
  256. /*No:CALL_INFIX_GT.isa_dca_inline_argument*/
  257. /*No:CALL_INFIX_GT.us_gt*/
  258. /*No:CALL_INFIX_GT.fatal_error*/
  259. /*No:CALL_INFIX_GT.fz_bad_argument*/
  260. /*No:CALL_INFIX_GT.arg1*/
  261. int r57standard_compile_to_jvm_into(T57* C,T0* a1){
  262. int R=0;
  263. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T57* C1=C;
  264. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  265. }/*]*/
  266. /*]*/
  267. R=X291jvm_convert_to(X291run_type((((T57*)C))->_result_type/*20*/),a1);
  268. return R;
  269. }
  270. /*No:CALL_INFIX_GT.call_proc_call_c2jvm*/
  271. void r57afd_check(T57* C){
  272. T0* _running=NULL;
  273. T0* _rc=NULL;
  274. _rc=X291run_class(X662result_type((((T57*)C))->_target/*12*/));
  275. _running=(((T355*)((T355*)_rc)))->_running/*12*/;
  276. /*IF*/if ((_running)==((void*)(NULL))) {
  277. r683add_position(X662start_position((((T57*)C))->_target/*12*/));
  278. /*[IRF3.6append*/{T0* b1=((T0*)ms1_135);
  279. r7append(((T7*)(oBC683explanation)),b1);
  280. }/*]*/
  281. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/);
  282. r7append(((T7*)(oBC683explanation)),b1);
  283. }/*]*/
  284. /*[IRF3.6append*/{T0* b1=((T0*)ms141_470);
  285. r7append(((T7*)(oBC683explanation)),b1);
  286. }/*]*/
  287. r683print_as_warning(((T683*)(oBC364eh)));
  288. r355set_at_run_time(((T355*)_rc));
  289. }
  290.  else if ((r396count(((T396*)_running)))>(0)) {
  291. r576update((((T57*)C))->_target/*12*/,(((T57*)C))->_run_feature/*16*/);
  292. }
  293. /*FI*/X662afd_check((((T57*)C))->_target/*12*/);
  294. /*IF*/{/*AT*/r431afd_check(((T431*)((((T57*)C))->_arguments/*24*/)));
  295. }
  296. /*FI*/}
  297. /*No:CALL_INFIX_AND.arguments*/
  298. T0* r313add_comment(T313* C,T0* a1){
  299. T0* R=NULL;
  300. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  301. R=(T0*)C;
  302. }
  303. else {
  304. {T529*n=malloc(sizeof(*n));
  305. *n=M529;
  306. r529make(n,(T0*)C,a1);
  307. R=(T0*)n;
  308. }
  309. }
  310. /*FI*/return R;
  311. }
  312. int r313to_integer(T313* C){
  313. int R=0;
  314. r313error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T313*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  315. return R;
  316. }
  317. int r313is_a(T313* C,T0* a1){
  318. int R=0;
  319. R=X291is_a(X291run_type((((T313*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
  320. /*IF*/if (!(R)) {
  321. r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T313*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/);
  322. r313error(X662start_position(a1),((T0*)ms4_662));
  323. }
  324. /*FI*/return R;
  325. }
  326. /*No:CALL_INFIX_AND.is_current*/
  327. /*No:CALL_INFIX_AND.jvm_branch_if_false*/
  328. /*No:CALL_INFIX_AND.us_and*/
  329. /*No:CALL_INFIX_AND.static_value*/
  330. void r313make(T313* C,T0* a1,T0* a2,T0* a3){
  331. T0* _eal=NULL;
  332. /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
  333. r683add_position(a2);
  334. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
  335. r683fatal_error(((T683*)(oBC364eh)),b1);
  336. }/*]*/
  337. }
  338. /*FI*/{T454*n=malloc(sizeof(*n));
  339. *n=M454;
  340. r454make(n,r313operator(),a2);
  341. C->_feature_name=(T0*)n;
  342. }
  343. {T431*n=malloc(sizeof(*n));
  344. *n=M431;
  345. /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
  346. /*]*/
  347. _eal=(T0*)n;
  348. }
  349. r313make_call_1(C,a1,(((T313*)C))->_feature_name/*28*/,_eal);
  350. }
  351. /*No:CALL_INFIX_AND.nb_errors*/
  352. /*No:CALL_INFIX_AND.feature_name*/
  353. /*No:CALL_INFIX_AND.compile_to_jvm_assignment*/
  354. /*No:CALL_INFIX_AND.fz_iinaiv*/
  355. /*No:CALL_INFIX_AND.arg_count*/
  356. /*No:CALL_INFIX_AND.jvm_branch_if_true*/
  357. /*No:CALL_INFIX_AND.run_feature*/
  358. /*No:CALL_INFIX_AND.start_position*/
  359. void r313compile_to_jvm_old(T313* C){
  360. X662compile_to_jvm_old((((T313*)C))->_target/*12*/);
  361. /*IF*/{/*AT*/r431compile_to_jvm_old(((T431*)((((T313*)C))->_arguments/*24*/)));
  362. }
  363. /*FI*/}
  364. /*No:CALL_INFIX_AND.target*/
  365. T0* r313to_runnable(T313* C,T0* a1){
  366. T0* R=NULL;
  367. T0* _tla=NULL;
  368. T0* _a=NULL;
  369. /*IF*/if (((((T313*)C))->_current_type/*8*/)==((void*)(NULL))) {
  370. r313to_runnable_0(C,a1);
  371. _a=r431to_runnable(((T431*)((((T313*)C))->_arguments/*24*/)),a1);
  372. /*IF*/if ((_a)==((void*)(NULL))) {
  373. r313error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T313*)C))->_arguments/*24*/)))/*)*/),((T0*)ms55_470));
  374. }
  375. else {
  376. C->_arguments=_a;
  377. }
  378. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  379. r431match_with(((T431*)((((T313*)C))->_arguments/*24*/)),(((T313*)C))->_run_feature/*16*/);
  380. }
  381. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  382. _tla=(((T313*)C))->_result_type/*20*/;
  383. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  384. case 239: 
  385. break;
  386. default:
  387. _tla=NULL;
  388. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  389. C->_result_type=X291run_type(X662result_type(/*(IRF4.6arg1*/r431first(((T431*)((((T313*)C))->_arguments/*24*/)))/*)*/));
  390. }
  391. /*FI*/}
  392. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  393. R=(T0*)C;
  394. }
  395. /*FI*/}
  396. else {
  397. R=r313twin(C);
  398. /*[IRF3.3set_current_type*/((((T313*)(((T313*)R))))->_current_type)=(NULL);
  399. /*]*/
  400. R=r313to_runnable(((T313*)R),a1);
  401. }
  402. /*FI*/return R;
  403. }
  404. /*No:CALL_INFIX_AND.result_type*/
  405. /*No:CALL_INFIX_AND.is_result*/
  406. T0* r313twin(T313* C){
  407. T0* R=NULL;
  408. R=malloc(sizeof(*C));
  409. *((T313*)R)=*C;
  410. return R;
  411. }
  412. /*No:CALL_INFIX_AND.set_current_type*/
  413. T0* r313operator(void){
  414. T0* R=NULL;
  415. R=((T0*)ms27_473);
  416. return R;
  417. }
  418. int r313is_static(T313* C){
  419. int R=0;
  420. /*IF*/if (X291is_boolean(X662result_type((((T313*)C))->_target/*12*/))) {
  421. /*IF*/if ((X662is_static((((T313*)C))->_target/*12*/))&&(X662is_static(/*(IRF4.6arg1*/r431first(((T431*)((((T313*)C))->_arguments/*24*/)))/*)*/))) {
  422. R=1;
  423. C->_static_value_mem=(X662static_value((((T313*)C))->_target/*12*/))+(X662static_value(/*(IRF4.6arg1*/r431first(((T431*)((((T313*)C))->_arguments/*24*/)))/*)*/));
  424. /*IF*/if (((((T313*)C))->_static_value_mem/*4*/)==(2)) {
  425. C->_static_value_mem=1;
  426. }
  427. else {
  428. C->_static_value_mem=0;
  429. }
  430. /*FI*/}
  431. /*FI*/}
  432. /*FI*/return R;
  433. }
  434. void r313standard_compile_target_to_jvm(T313* C){
  435. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T313* C1=C;
  436. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  437. }/*]*/
  438. /*]*/
  439. X291jvm_check_class_invariant((((T313*)C))->_result_type/*20*/);
  440. }
  441. int r313compile_to_jvm_into(T313* C,T0* a1){
  442. int R=0;
  443. R=r313standard_compile_to_jvm_into(C,a1);
  444. return R;
  445. }
  446. /*No:CALL_INFIX_AND.compile_target_to_jvm*/
  447. /*No:CALL_INFIX_AND.fz_07*/
  448. /*No:CALL_INFIX_AND.can_be_dropped*/
  449. /*No:CALL_INFIX_AND.current_type*/
  450. /*No:CALL_INFIX_AND.jvm_assign*/
  451. /*No:CALL_INFIX_AND.static_value_mem*/
  452. void r313make_call_1(T313* C,T0* a1,T0* a2,T0* a3){
  453. C->_target=a1;
  454. C->_feature_name=a2;
  455. C->_arguments=a3;
  456. }
  457. /*No:CALL_INFIX_AND.is_manifest_string*/
  458. /*No:CALL_INFIX_AND.is_void*/
  459. int r313jvm_standard_branch_if_false(T313* C){
  460. int R=0;
  461. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T313* 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_INFIX_AND.compile_to_jvm*/
  469. void r313to_runnable_0(T313* C,T0* a1){
  470. C->_current_type=a1;
  471. r313cpc_to_runnable(C,a1);
  472. C->_result_type=/*X496*/((T0*)(((T832*)((T832*)((((T313*)C))->_run_feature/*16*/))))->_result_type/*24*/);
  473. /*IF*/if (((((T313*)C))->_result_type/*20*/)==((void*)(NULL))) {
  474. r683add_position(X496start_position((((T313*)C))->_run_feature/*16*/));
  475. r313error((((T454*)((T454*)((((T313*)C))->_feature_name/*28*/))))->_start_position/*8*/,((T0*)ms1_295));
  476. }
  477.  else if (X291is_like_current((((T313*)C))->_result_type/*20*/)) {
  478. C->_result_type=X662result_type((((T313*)C))->_target/*12*/);
  479. }
  480. /*FI*/}
  481. /*No:CALL_INFIX_AND.is_pre_computable*/
  482. int r313jvm_standard_branch_if_true(T313* C){
  483. int R=0;
  484. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T313* 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 r313use_current(T313* C){
  492. int R=0;
  493. /*IF*/{/*AT*/R=r431use_current(((T431*)((((T313*)C))->_arguments/*24*/)));
  494. }
  495. /*FI*//*IF*/if (R) {
  496. }
  497.  else if (X662is_current((((T313*)C))->_target/*12*/)) {
  498. R=X496use_current((((T313*)C))->_run_feature/*16*/);
  499. }
  500. else {
  501. R=X662use_current((((T313*)C))->_target/*12*/);
  502. }
  503. /*FI*/return R;
  504. }
  505. void r313cpc_to_runnable(T313* C,T0* a1){
  506. T0* _rc=NULL;
  507. T0* _t=NULL;
  508. _t=X662to_runnable((((T313*)C))->_target/*12*/,a1);
  509. /*IF*/if ((_t)==((void*)(NULL))) {
  510. r683add_position(X662start_position((((T313*)C))->_target/*12*/));
  511. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  512. r683fatal_error(((T683*)(oBC364eh)),b1);
  513. }/*]*/
  514. }
  515. /*FI*/C->_target=_t;
  516. _rc=X291run_class(X662result_type((((T313*)C))->_target/*12*/));
  517. C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C);
  518. r576update((((T313*)C))->_target/*12*/,(((T313*)C))->_run_feature/*16*/);
  519. }
  520. void r313error(T0* a1,T0* a2){
  521. r683add_position(a1);
  522. r683error(((T683*)(oBC364eh)),a2);
  523. }
  524. /*No:CALL_INFIX_AND.isa_dca_inline_argument*/
  525. /*No:CALL_INFIX_AND.fatal_error*/
  526. /*No:CALL_INFIX_AND.fz_bad_argument*/
  527. /*No:CALL_INFIX_AND.arg1*/
  528. int r313standard_compile_to_jvm_into(T313* C,T0* a1){
  529. int R=0;
  530. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T313* C1=C;
  531. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  532. }/*]*/
  533. /*]*/
  534. R=X291jvm_convert_to(X291run_type((((T313*)C))->_result_type/*20*/),a1);
  535. return R;
  536. }
  537. /*No:CALL_INFIX_AND.call_proc_call_c2jvm*/
  538. void r313afd_check(T313* C){
  539. T0* _running=NULL;
  540. T0* _rc=NULL;
  541. _rc=X291run_class(X662result_type((((T313*)C))->_target/*12*/));
  542. _running=(((T355*)((T355*)_rc)))->_running/*12*/;
  543. /*IF*/if ((_running)==((void*)(NULL))) {
  544. r683add_position(X662start_position((((T313*)C))->_target/*12*/));
  545. /*[IRF3.6append*/{T0* b1=((T0*)ms1_135);
  546. r7append(((T7*)(oBC683explanation)),b1);
  547. }/*]*/
  548. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/);
  549. r7append(((T7*)(oBC683explanation)),b1);
  550. }/*]*/
  551. /*[IRF3.6append*/{T0* b1=((T0*)ms141_470);
  552. r7append(((T7*)(oBC683explanation)),b1);
  553. }/*]*/
  554. r683print_as_warning(((T683*)(oBC364eh)));
  555. r355set_at_run_time(((T355*)_rc));
  556. }
  557.  else if ((r396count(((T396*)_running)))>(0)) {
  558. r576update((((T313*)C))->_target/*12*/,(((T313*)C))->_run_feature/*16*/);
  559. }
  560. /*FI*/X662afd_check((((T313*)C))->_target/*12*/);
  561. /*IF*/{/*AT*/r431afd_check(((T431*)((((T313*)C))->_arguments/*24*/)));
  562. }
  563. /*FI*/}
  564. /*No:WRITABLE_ATTRIBUTE.arguments*/
  565. T0* r106try_to_undefine(T106* C,T0* a1,T0* a2){
  566. T0* R=NULL;
  567. X776undefine_in(a1,a2);
  568. R=r106try_to_undefine_aux(C,a1,a2);
  569. /*IF*/if ((R)!=((void*)(NULL))) {
  570. /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T106*)C))->_clients/*20*/);
  571. /*]*/
  572. }
  573. else {
  574. r605fatal_undefine(((T605*)a2),a1);
  575. }
  576. /*FI*/return R;
  577. }
  578. /*No:WRITABLE_ATTRIBUTE.is_deferred*/
  579. void r106add_into(T106* C,T0* a1){
  580. T0* _fn=NULL;
  581. int _i=0;
  582. C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T106*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
  583. _i=1;
  584. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T106*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  585. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T106*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
  586. /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
  587. _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)/*)*//*)*/);
  588. r683add_position(X776start_position(_fn));
  589. r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T106*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
  590. r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
  591. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  592. r7append(((T7*)(oBC683explanation)),b1);
  593. }/*]*/
  594. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  595. }
  596. else {
  597. r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
  598. }
  599. /*FI*/_i=(_i)+(1);
  600. }
  601. }
  602. T0* r106try_to_undefine_aux(T106* C,T0* a1,T0* a2){
  603. T0* R=NULL;
  604. r683add_position(r106start_position(C));
  605. r106error(X776start_position(a1),((T0*)ms1_321));
  606. r605fatal_undefine(((T605*)a2),a1);
  607. return R;
  608. }
  609. void r106make(T106* C,T0* a1,T0* a2){
  610. C->_names=a1;
  611. C->_result_type=a2;
  612. }
  613. /*No:WRITABLE_ATTRIBUTE.nb_errors*/
  614. /*No:WRITABLE_ATTRIBUTE.set_header_comment*/
  615. T0* r106start_position(T106* C){
  616. T0* R=NULL;
  617. R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T106*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  618. return R;
  619. }
  620. T0* r106to_run_feature(T106* C,T0* a1,T0* a2){
  621. T0* R=NULL;
  622. {T820*n=malloc(sizeof(*n));
  623. *n=M820;
  624. r820make(n,a1,a2,(T0*)C);
  625. R=(T0*)n;
  626. }
  627. return R;
  628. }
  629. /*No:WRITABLE_ATTRIBUTE.ensure_assertion*/
  630. /*No:WRITABLE_ATTRIBUTE.code_require*/
  631. /*No:WRITABLE_ATTRIBUTE.result_type*/
  632. /*No:WRITABLE_ATTRIBUTE.em1*/
  633. /*No:WRITABLE_ATTRIBUTE.set_clients*/
  634. /*No:WRITABLE_ATTRIBUTE.em2*/
  635. /*No:WRITABLE_ATTRIBUTE.require_assertion*/
  636. /*No:WRITABLE_ATTRIBUTE.names*/
  637. int r106can_hide(T106* C,T0* a1,T0* a2){
  638. int R=0;
  639. /*IF*/if (((((T106*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  640. /*IF*/if ((((((T106*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  641. r683add_position(X359start_position(a1));
  642. r106error(r106start_position(C),((T0*)ms5_359));
  643. }
  644. /*FI*/}
  645. /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
  646. /*IF*/{/*AT*/r683add_position(X359start_position(a1));
  647. r106error(r106start_position(C),((T0*)ms6_359));
  648. }
  649. /*FI*/}
  650. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  651. /*IF*/if (((((T106*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  652. /*IF*/if (!(X291is_a_in((((T106*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  653. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  654. r7append(((T7*)(oBC683explanation)),b1);
  655. }/*]*/
  656. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  657. r7append(((T7*)(oBC683explanation)),b1);
  658. }/*]*/
  659. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  660. }
  661. /*FI*/}
  662. /*FI*/}
  663. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  664. /*IF*//*AF*//*AE*/
  665. /*FI*/}
  666. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  667. return R;
  668. }
  669. /*No:WRITABLE_ATTRIBUTE.header_comment*/
  670. int r106is_merge_with(T106* C,T0* a1,T0* a2){
  671. int R=0;
  672. /*IF*/if (((((T106*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  673. /*IF*/if ((((((T106*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  674. r683add_position(X359start_position(a1));
  675. r106error(r106start_position(C),((T0*)ms2_359));
  676. }
  677. /*FI*/}
  678. /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
  679. /*IF*/{/*AT*/r683add_position(X359start_position(a1));
  680. r106error(r106start_position(C),((T0*)ms3_359));
  681. }
  682. /*FI*/}
  683. /*FI*//*IF*/if (((((T106*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  684. /*IF*/if (!(X291is_a_in((((T106*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  685. r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
  686. }
  687. /*FI*/}
  688. /*FI*//*IF*//*AF*//*AE*/
  689. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  690. return R;
  691. }
  692. /*No:WRITABLE_ATTRIBUTE.fz_dot*/
  693. /*No:WRITABLE_ATTRIBUTE.first_name*/
  694. /*No:WRITABLE_ATTRIBUTE.clients*/
  695. void r106collect_for(int a1){
  696. /*IF*/if ((a1)==(1001)) {
  697. /*IF*//*AF*//*AE*/
  698. /*FI*/}
  699. else {
  700. /*IF*//*AF*//*AE*/
  701. /*FI*/}
  702. /*FI*/}
  703. void r106error(T0* a1,T0* a2){
  704. r683add_position(a1);
  705. r683error(((T683*)(oBC364eh)),a2);
  706. }
  707. /*No:WRITABLE_ATTRIBUTE.base_class*/
  708. /*No:PROC_CALL_0.arguments*/
  709. T0* r268add_comment(T268* C,T0* a1){
  710. T0* R=NULL;
  711. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  712. R=(T0*)C;
  713. }
  714. /*AF*/else {
  715. {T46*n=malloc(sizeof(*n));
  716. *n=M46;
  717. r46make(n,(T0*)C,a1);
  718. R=(T0*)n;
  719. }
  720. }
  721. /*FI*/return R;
  722. }
  723. void r268make(T268* C,T0* a1,T0* a2){
  724. C->_target=a1;
  725. C->_feature_name=a2;
  726. }
  727. /*No:PROC_CALL_0.nb_errors*/
  728. /*No:PROC_CALL_0.feature_name*/
  729. /*No:PROC_CALL_0.arg_count*/
  730. /*No:PROC_CALL_0.run_feature*/
  731. /*No:PROC_CALL_0.set_run_compound*/
  732. T0* r268start_position(T268* C){
  733. T0* R=NULL;
  734. R=X776start_position((((T268*)C))->_feature_name/*12*/);
  735. return R;
  736. }
  737. /*No:PROC_CALL_0.target*/
  738. /*No:PROC_CALL_0.set_run_feature*/
  739. T0* r268to_runnable(T268* C,T0* a1){
  740. T0* R=NULL;
  741. /*IF*/if (((((T268*)C))->_run_compound/*4*/)==((void*)(NULL))) {
  742. r268to_runnable_0(C,a1);
  743. /*IF*/if (((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0))&&((X496arg_count((((T268*)C))->_run_feature/*16*/))>(0))) {
  744. r683add_position(X776start_position((((T268*)C))->_feature_name/*12*/));
  745. r268error(X496start_position((((T268*)C))->_run_feature/*16*/),((T0*)ms1_268));
  746. }
  747. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  748. R=(T0*)C;
  749. }
  750. /*FI*/}
  751. else {
  752. {T268*n=malloc(sizeof(*n));
  753. *n=M268;
  754. r268make(n,(((T268*)C))->_target/*8*/,(((T268*)C))->_feature_name/*12*/);
  755. R=(T0*)n;
  756. }
  757. R=r268to_runnable(((T268*)R),a1);
  758. }
  759. /*FI*/return R;
  760. }
  761. /*No:PROC_CALL_0.fz_07*/
  762. T0* r268current_type(T268* C){
  763. T0* R=NULL;
  764. /*IF*/if (((((T268*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
  765. R=(((T592*)((T592*)((((T268*)C))->_run_compound/*4*/))))->_current_type/*4*/;
  766. }
  767. /*FI*/return R;
  768. }
  769. /*No:PROC_CALL_0.run_compound*/
  770. /*No:PROC_CALL_0.compile_to_jvm*/
  771. void r268to_runnable_0(T268* C,T0* a1){
  772. C->_run_compound=a1;
  773. r268cpc_to_runnable(C,r268current_type(C));
  774. /*IF*/if ((/*X496*/((T0*)(((T832*)((T832*)((((T268*)C))->_run_feature/*16*/))))->_result_type/*24*/))!=((void*)(NULL))) {
  775. r683add_position(X496start_position((((T268*)C))->_run_feature/*16*/));
  776. r268error(X776start_position((((T268*)C))->_feature_name/*12*/),((T0*)ms1_173));
  777. }
  778. /*FI*/}
  779. /*No:PROC_CALL_0.is_pre_computable*/
  780. int r268use_current(T268* C){
  781. int R=0;
  782. /*IF*//*AF*//*AE*/
  783. /*FI*//*IF*/if (R) {
  784. }
  785.  else if (X662is_current((((T268*)C))->_target/*8*/)) {
  786. R=X496use_current((((T268*)C))->_run_feature/*16*/);
  787. }
  788. else {
  789. R=X662use_current((((T268*)C))->_target/*8*/);
  790. }
  791. /*FI*/return R;
  792. }
  793. void r268cpc_to_runnable(T268* C,T0* a1){
  794. T0* _rc=NULL;
  795. T0* _t=NULL;
  796. _t=X662to_runnable((((T268*)C))->_target/*8*/,a1);
  797. /*IF*/if ((_t)==((void*)(NULL))) {
  798. r683add_position(X662start_position((((T268*)C))->_target/*8*/));
  799. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  800. r683fatal_error(((T683*)(oBC364eh)),b1);
  801. }/*]*/
  802. }
  803. /*FI*/C->_target=_t;
  804. _rc=X291run_class(X662result_type((((T268*)C))->_target/*8*/));
  805. C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C);
  806. r576update((((T268*)C))->_target/*8*/,(((T268*)C))->_run_feature/*16*/);
  807. }
  808. void r268error(T0* a1,T0* a2){
  809. r683add_position(a1);
  810. r683error(((T683*)(oBC364eh)),a2);
  811. }
  812. /*No:PROC_CALL_0.fatal_error*/
  813. /*No:PROC_CALL_0.end_mark_comment*/
  814. /*No:PROC_CALL_0.call_proc_call_c2jvm*/
  815. void r268afd_check(T268* C){
  816. T0* _running=NULL;
  817. T0* _rc=NULL;
  818. _rc=X291run_class(X662result_type((((T268*)C))->_target/*8*/));
  819. _running=(((T355*)((T355*)_rc)))->_running/*12*/;
  820. /*IF*/if ((_running)==((void*)(NULL))) {
  821. r683add_position(X662start_position((((T268*)C))->_target/*8*/));
  822. /*[IRF3.6append*/{T0* b1=((T0*)ms1_135);
  823. r7append(((T7*)(oBC683explanation)),b1);
  824. }/*]*/
  825. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/);
  826. r7append(((T7*)(oBC683explanation)),b1);
  827. }/*]*/
  828. /*[IRF3.6append*/{T0* b1=((T0*)ms141_470);
  829. r7append(((T7*)(oBC683explanation)),b1);
  830. }/*]*/
  831. r683print_as_warning(((T683*)(oBC364eh)));
  832. r355set_at_run_time(((T355*)_rc));
  833. }
  834.  else if ((r396count(((T396*)_running)))>(0)) {
  835. r576update((((T268*)C))->_target/*8*/,(((T268*)C))->_run_feature/*16*/);
  836. }
  837. /*FI*/X662afd_check((((T268*)C))->_target/*8*/);
  838. /*IF*//*AF*//*AE*/
  839. /*FI*/}
  840. T0* r268make_runnable(T268* C,T0* a1,T0* a2,T0* a3,T0* a4){
  841. T0* R=NULL;
  842. /*IF*/if (((((T268*)C))->_run_compound/*4*/)==((void*)(NULL))) {
  843. R=(T0*)C;
  844. r268make(((T268*)R),a2,(((T268*)C))->_feature_name/*12*/);
  845. C->_run_compound=a1;
  846. C->_run_feature=a4;
  847. }
  848. else {
  849. {T268*n=malloc(sizeof(*n));
  850. *n=M268;
  851. r268make(n,a2,(((T268*)C))->_feature_name/*12*/);
  852. R=(T0*)n;
  853. }
  854. /*[IRF3.3set_run_compound*/((((T268*)(((T268*)R))))->_run_compound)=(a1);
  855. /*]*/
  856. /*[IRF3.3set_run_feature*/((((T268*)(((T268*)R))))->_run_feature)=(a4);
  857. /*]*/
  858. }
  859. /*FI*/return R;
  860. }
  861. T0* r39add_comment(T39* C,T0* a1){
  862. T0* R=NULL;
  863. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  864. R=(T0*)C;
  865. }
  866. else {
  867. {T529*n=malloc(sizeof(*n));
  868. *n=M529;
  869. r529make(n,(T0*)C,a1);
  870. R=(T0*)n;
  871. }
  872. }
  873. /*FI*/return R;
  874. }
  875. int r39to_integer(T39* C){
  876. int R=0;
  877. r39error((((T39*)C))->_start_position/*16*/,((T0*)ms69_470));
  878. return R;
  879. }
  880. int r39is_a(T39* C,T0* a1){
  881. int R=0;
  882. R=X291is_a(X291run_type((((T39*)C))->_result_type/*24*/),X291run_type(X662result_type(a1)));
  883. /*IF*/if (!(R)) {
  884. r683add_position((((T39*)C))->_start_position/*16*/);
  885. r39error(X662start_position(a1),((T0*)ms4_662));
  886. }
  887. /*FI*/return R;
  888. }
  889. /*No:LOCAL_NAME1.set_is_used*/
  890. void r39name_clash(T39* C){
  891. T0* _rf=NULL;
  892. T0* _rc=NULL;
  893. /*IF*/if (r605has_feature(((T605*)(r39base_class_written(C))),(((T39*)C))->_to_string/*12*/)) {
  894. _rc=X291run_class((((T39*)C))->_current_type/*8*/);
  895. _rf=r355get_feature_with(((T355*)_rc),(((T39*)C))->_to_string/*12*/);
  896. /*IF*/if ((_rf)!=((void*)(NULL))) {
  897. r683add_position(X496start_position(_rf));
  898. }
  899. /*FI*/r683add_position((((T39*)C))->_start_position/*16*/);
  900. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_447);
  901. r683fatal_error(((T683*)(oBC364eh)),b1);
  902. }/*]*/
  903. }
  904. /*FI*/}
  905. /*No:LOCAL_NAME1.is_current*/
  906. int r39jvm_branch_if_false(T39* C){
  907. int R=0;
  908. r39compile_to_jvm(C);
  909. R=r256opcode_ifeq(((T256*)(oBC364code_attribute)));
  910. return R;
  911. }
  912. T0* r39written_in(T39* C){
  913. T0* R=NULL;
  914. T0* _sp=NULL;
  915. _sp=(((T39*)C))->_start_position/*16*/;
  916. /*IF*/if ((_sp)!=((void*)(NULL))) {
  917. R=(((T627*)((T627*)_sp)))->_base_class_name/*0*/;
  918. }
  919. /*FI*/return R;
  920. }
  921. /*No:LOCAL_NAME1.static_value*/
  922. void r39make(T39* C,T0* a1,T0* a2){
  923. C->_start_position=a1;
  924. C->_to_string=r902item(a2);
  925. }
  926. /*No:LOCAL_NAME1.to_string*/
  927. void r39compile_to_jvm_assignment(T39* C,T0* a1){
  928. int _jvm_offset=0;
  929. int _space=0;
  930. _jvm_offset=r228local_offset_of(((T228*)(oBC364jvm)),(T0*)C);
  931. _space=X662compile_to_jvm_into((((T629*)((T629*)a1)))->_right_side/*12*/,X291run_type((((T39*)C))->_result_type/*24*/));
  932. X291jvm_write_local(X291run_type((((T39*)C))->_result_type/*24*/),_jvm_offset);
  933. }
  934. /*No:LOCAL_NAME1.fz_iinaiv*/
  935. int r39jvm_branch_if_true(T39* C){
  936. int R=0;
  937. r39compile_to_jvm(C);
  938. R=r256opcode_ifne(((T256*)(oBC364code_attribute)));
  939. return R;
  940. }
  941. /*No:LOCAL_NAME1.em_bl*/
  942. /*No:LOCAL_NAME1.set_result_type*/
  943. /*No:LOCAL_NAME1.start_position*/
  944. /*No:LOCAL_NAME1.compile_to_jvm_old*/
  945. /*No:LOCAL_NAME1.set_rank*/
  946. T0* r39to_runnable(T39* C,T0* a1){
  947. T0* R=NULL;
  948. T0* _t2=NULL;
  949. T0* _t1=NULL;
  950. _t1=(((T39*)C))->_result_type/*24*/;
  951. _t2=X291to_runnable(_t1,a1);
  952. /*IF*/if ((_t2)==((void*)(NULL))) {
  953. r683add_position(X291start_position(_t1));
  954. r39error((((T39*)C))->_start_position/*16*/,((T0*)ms6_361));
  955. }
  956. /*FI*//*IF*/if (((((T39*)C))->_current_type/*8*/)==((void*)(NULL))) {
  957. C->_current_type=a1;
  958. C->_result_type=_t2;
  959. R=(T0*)C;
  960. }
  961. else {
  962. {T39*n=malloc(sizeof(*n));
  963. *n=M39;
  964. r39make_runnable(n,(T0*)C,a1,_t2);
  965. R=(T0*)n;
  966. }
  967. }
  968. /*FI*/return R;
  969. }
  970. /*No:LOCAL_NAME1.rank*/
  971. /*No:LOCAL_NAME1.result_type*/
  972. /*No:LOCAL_NAME1.is_result*/
  973. /*No:LOCAL_NAME1.is_static*/
  974. void r39standard_compile_target_to_jvm(T39* C){
  975. r39compile_to_jvm(C);
  976. X291jvm_check_class_invariant((((T39*)C))->_result_type/*24*/);
  977. }
  978. int r39compile_to_jvm_into(T39* C,T0* a1){
  979. int R=0;
  980. R=r39standard_compile_to_jvm_into(C,a1);
  981. return R;
  982. }
  983. /*No:LOCAL_NAME1.compile_target_to_jvm*/
  984. T0* r39base_class_written(T39* C){
  985. T0* R=NULL;
  986. R=r451base_class(((T451*)(r39written_in(C))));
  987. return R;
  988. }
  989. /*No:LOCAL_NAME1.can_be_dropped*/
  990. /*No:LOCAL_NAME1.current_type*/
  991. void r39jvm_assign(T39* C){
  992. int _jvm_offset=0;
  993. _jvm_offset=r228local_offset_of(((T228*)(oBC364jvm)),(T0*)C);
  994. X291jvm_write_local(X291run_type((((T39*)C))->_result_type/*24*/),_jvm_offset);
  995. }
  996. /*No:LOCAL_NAME1.static_value_mem*/
  997. /*No:LOCAL_NAME1.is_used*/
  998. /*No:LOCAL_NAME1.is_manifest_string*/
  999. /*No:LOCAL_NAME1.is_void*/
  1000. void r39compile_to_jvm(T39* C){
  1001. int _jvm_offset=0;
  1002. _jvm_offset=r228local_offset_of(((T228*)(oBC364jvm)),(T0*)C);
  1003. X291jvm_push_local(X291run_type((((T39*)C))->_result_type/*24*/),_jvm_offset);
  1004. }
  1005. /*No:LOCAL_NAME1.is_pre_computable*/
  1006. /*No:LOCAL_NAME1.use_current*/
  1007. void r39error(T0* a1,T0* a2){
  1008. r683add_position(a1);
  1009. r683error(((T683*)(oBC364eh)),a2);
  1010. }
  1011. /*No:LOCAL_NAME1.isa_dca_inline_argument*/
  1012. /*No:LOCAL_NAME1.fatal_error*/
  1013. int r39standard_compile_to_jvm_into(T39* C,T0* a1){
  1014. int R=0;
  1015. r39compile_to_jvm(C);
  1016. R=X291jvm_convert_to(X291run_type((((T39*)C))->_result_type/*24*/),a1);
  1017. return R;
  1018. }
  1019. /*No:LOCAL_NAME1.afd_check*/
  1020. void r39make_runnable(T39* C,T0* a1,T0* a2,T0* a3){
  1021. *((T39*)(C))=*((T39*)(a1));
  1022. C->_current_type=a2;
  1023. C->_result_type=a3;
  1024. }
  1025. /*No:DEFERRED_PROCEDURE.arguments*/
  1026. T0* r853try_to_undefine(T853* C,T0* a1,T0* a2){
  1027. T0* R=NULL;
  1028. X776undefine_in(a1,a2);
  1029. R=/*(IRF4.4try_to_undefine_aux*/((T0*)(C))/*)*/;
  1030. /*IF*/if ((R)!=((void*)(NULL))) {
  1031. /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T853*)C))->_clients/*20*/);
  1032. /*]*/
  1033. }
  1034. else {
  1035. r605fatal_undefine(((T605*)a2),a1);
  1036. }
  1037. /*FI*/return R;
  1038. }
  1039. /*No:DEFERRED_PROCEDURE.is_deferred*/
  1040. /*No:DEFERRED_PROCEDURE.rescue_compound*/
  1041. void r853add_into(T853* C,T0* a1){
  1042. T0* _fn=NULL;
  1043. int _i=0;
  1044. C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T853*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
  1045. _i=1;
  1046. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T853*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  1047. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T853*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
  1048. /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
  1049. _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)/*)*//*)*/);
  1050. r683add_position(X776start_position(_fn));
  1051. r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T853*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
  1052. r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
  1053. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  1054. r7append(((T7*)(oBC683explanation)),b1);
  1055. }/*]*/
  1056. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1057. }
  1058. else {
  1059. r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
  1060. }
  1061. /*FI*/_i=(_i)+(1);
  1062. }
  1063. }
  1064. /*No:DEFERRED_PROCEDURE.end_comment*/
  1065. /*No:DEFERRED_PROCEDURE.try_to_undefine_aux*/
  1066. /*No:DEFERRED_PROCEDURE.make*/
  1067. /*No:DEFERRED_PROCEDURE.nb_errors*/
  1068. void r853make_routine(T853* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  1069. r853make_e_feature(C,a1,NULL);
  1070. C->_header_comment=a4;
  1071. C->_arguments=a2;
  1072. C->_obsolete_mark=a3;
  1073. C->_require_assertion=a5;
  1074. }
  1075. void r853set_header_comment(T853* C,T0* a1){
  1076. /*IF*/if (((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)>(1))) {
  1077. C->_end_comment=a1;
  1078. }
  1079. /*FI*/}
  1080. T0* r853start_position(T853* C){
  1081. T0* R=NULL;
  1082. R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T853*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  1083. return R;
  1084. }
  1085. T0* r853to_run_feature(T853* C,T0* a1,T0* a2){
  1086. T0* R=NULL;
  1087. r853check_obsolete(C);
  1088. {T904*n=malloc(sizeof(*n));
  1089. *n=M904;
  1090. r904make(n,a1,a2,(T0*)C);
  1091. R=(T0*)n;
  1092. }
  1093. return R;
  1094. }
  1095. /*No:DEFERRED_PROCEDURE.ensure_assertion*/
  1096. /*No:DEFERRED_PROCEDURE.code_require*/
  1097. /*No:DEFERRED_PROCEDURE.result_type*/
  1098. /*No:DEFERRED_PROCEDURE.fz_03*/
  1099. /*No:DEFERRED_PROCEDURE.em1*/
  1100. /*No:DEFERRED_PROCEDURE.obsolete_mark*/
  1101. /*No:DEFERRED_PROCEDURE.em2*/
  1102. /*No:DEFERRED_PROCEDURE.set_clients*/
  1103. /*No:DEFERRED_PROCEDURE.names*/
  1104. /*No:DEFERRED_PROCEDURE.require_assertion*/
  1105. void r853from_effective(T853* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  1106. {T953*n=malloc(sizeof(*n));
  1107. *n=M953;
  1108. r953make(n,se_ma855(1,a1));
  1109. C->_names=(T0*)n;
  1110. }
  1111. r853make_routine(C,(((T853*)C))->_names/*8*/,a2,NULL,NULL,a3);
  1112. /*[IRF3.3set_ensure_assertion*/((((T853*)(C)))->_ensure_assertion)=(a4);
  1113. /*]*/
  1114. C->_base_class=a5;
  1115. }
  1116. void r853set_rescue_compound(T853* C,T0* a1){
  1117. /*IF*/if (((a1)!=((void*)(NULL)))&&(/*(IRF4.2is_deferred*/(1)/*)*/)) {
  1118. r853error(r853start_position(C),((T0*)ms6_368));
  1119. }
  1120. /*FI*/C->_rescue_compound=a1;
  1121. }
  1122. int r853can_hide(T853* C,T0* a1,T0* a2){
  1123. int R=0;
  1124. /*IF*/if (((((T853*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  1125. /*IF*/if ((((((T853*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  1126. r683add_position(X359start_position(a1));
  1127. r853error(r853start_position(C),((T0*)ms5_359));
  1128. }
  1129. /*FI*/}
  1130. /*FI*//*IF*/if (((((T853*)C))->_arguments/*24*/)!=((void*)(X359arguments(a1)))) {
  1131. /*IF*/if ((((((T853*)C))->_arguments/*24*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  1132. r683add_position(X359start_position(a1));
  1133. r853error(r853start_position(C),((T0*)ms6_359));
  1134. }
  1135.  else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T853*)C))->_arguments/*24*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  1136. r683add_position(X359start_position(a1));
  1137. r853error(r853start_position(C),((T0*)ms7_359));
  1138. }
  1139. /*FI*/}
  1140. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1141. /*IF*/if (((((T853*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  1142. /*IF*/if (!(X291is_a_in((((T853*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  1143. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  1144. r7append(((T7*)(oBC683explanation)),b1);
  1145. }/*]*/
  1146. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  1147. r7append(((T7*)(oBC683explanation)),b1);
  1148. }/*]*/
  1149. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1150. }
  1151. /*FI*/}
  1152. /*FI*/}
  1153. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1154. /*IF*/if (((((T853*)C))->_arguments/*24*/)!=((void*)(NULL))) {
  1155. /*IF*/if (!(r31is_a_in(((T31*)((((T853*)C))->_arguments/*24*/)),X359arguments(a1),a2))) {
  1156. r683add_position(X359start_position(a1));
  1157. r683add_position(r853start_position(C));
  1158. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  1159. r7append(((T7*)(oBC683explanation)),b1);
  1160. }/*]*/
  1161. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  1162. r7append(((T7*)(oBC683explanation)),b1);
  1163. }/*]*/
  1164. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1165. }
  1166. /*FI*/}
  1167. /*FI*/}
  1168. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  1169. return R;
  1170. }
  1171. /*No:DEFERRED_PROCEDURE.header_comment*/
  1172. int r853is_merge_with(T853* C,T0* a1,T0* a2){
  1173. int R=0;
  1174. /*IF*/if (((((T853*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  1175. /*IF*/if ((((((T853*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  1176. r683add_position(X359start_position(a1));
  1177. r853error(r853start_position(C),((T0*)ms2_359));
  1178. }
  1179. /*FI*/}
  1180. /*FI*//*IF*/if (((((T853*)C))->_arguments/*24*/)!=((void*)(X359arguments(a1)))) {
  1181. /*IF*/if ((((((T853*)C))->_arguments/*24*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  1182. r683add_position(X359start_position(a1));
  1183. r853error(r853start_position(C),((T0*)ms3_359));
  1184. }
  1185.  else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T853*)C))->_arguments/*24*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  1186. r683add_position(X359start_position(a1));
  1187. r853error(r853start_position(C),((T0*)ms4_359));
  1188. }
  1189. /*FI*/}
  1190. /*FI*//*IF*/if (((((T853*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  1191. /*IF*/if (!(X291is_a_in((((T853*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  1192. r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
  1193. }
  1194. /*FI*/}
  1195. /*FI*//*IF*/if (((((T853*)C))->_arguments/*24*/)!=((void*)(NULL))) {
  1196. /*IF*/if (!(r31is_a_in(((T31*)((((T853*)C))->_arguments/*24*/)),X359arguments(a1),a2))) {
  1197. r683add_position(X359start_position(a1));
  1198. r853error(r853start_position(C),((T0*)ms12_359));
  1199. }
  1200. /*FI*/}
  1201. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  1202. return R;
  1203. }
  1204. /*No:DEFERRED_PROCEDURE.fz_dot*/
  1205. /*No:DEFERRED_PROCEDURE.set_ensure_assertion*/
  1206. /*No:DEFERRED_PROCEDURE.first_name*/
  1207. /*No:DEFERRED_PROCEDURE.clients*/
  1208. void r853collect_for(T853* C,int a1){
  1209. /*IF*/if ((a1)==(1001)) {
  1210. /*IF*/if (((((T853*)C))->_require_assertion/*32*/)!=((void*)(NULL))) {
  1211. /*IF*/if (!(r522fast_has(((T522*)(oBC359require_collector)),(((T853*)C))->_require_assertion/*32*/))) {
  1212. r522add_last(((T522*)(oBC359require_collector)),(((T853*)C))->_require_assertion/*32*/);
  1213. }
  1214. /*FI*/}
  1215. /*FI*/}
  1216. else {
  1217. /*IF*/if (((((T853*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  1218. /*[IRF3.3set_item*/((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=((((T633*)((T633*)((((T853*)C))->_ensure_assertion/*36*/))))->_header_comment/*4*/);
  1219. /*]*/
  1220. r633add_into(((T633*)((((T853*)C))->_ensure_assertion/*36*/)),oBC359assertion_collector);
  1221. }
  1222. /*FI*/}
  1223. /*FI*/}
  1224. void r853error(T0* a1,T0* a2){
  1225. r683add_position(a1);
  1226. r683error(((T683*)(oBC364eh)),a2);
  1227. }
  1228. /*No:DEFERRED_PROCEDURE.base_class*/
  1229. void r853make_e_feature(T853* C,T0* a1,T0* a2){
  1230. C->_names=a1;
  1231. C->_result_type=a2;
  1232. }
  1233. void r853check_obsolete(T853* C){
  1234. /*IF*/if (!((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/)) {
  1235. /*IF*/if (((((T853*)C))->_obsolete_mark/*28*/)!=((void*)(NULL))) {
  1236. /*[IRF3.6append*/{T0* b1=((T0*)ms7_368);
  1237. r7append(((T7*)(oBC683explanation)),b1);
  1238. }/*]*/
  1239. /*[IRF3.6append*/{T0* b1=(((T805*)((T805*)((((T853*)C))->_obsolete_mark/*28*/))))->_to_string/*16*/;
  1240. r7append(((T7*)(oBC683explanation)),b1);
  1241. }/*]*/
  1242. r853warning(r853start_position(C),((T0*)ms137_470));
  1243. }
  1244. /*FI*/}
  1245. /*FI*/}
  1246. void r853warning(T0* a1,T0* a2){
  1247. r683add_position(a1);
  1248. r683warning(((T683*)(oBC364eh)),a2);
  1249. }
  1250. void r782add_index_value(T782* C,T0* a1){
  1251. /*IF*/if (((((T782*)C))->_list/*4*/)==((void*)(NULL))) {
  1252. C->_list=se_ma96(1,a1);
  1253. }
  1254. else {
  1255. X96add_last((((T782*)C))->_list/*4*/,a1);
  1256. }
  1257. /*FI*/}
  1258. /*No:INDEX_CLAUSE.make*/
  1259. /*No:INDEX_CLAUSE.list*/
  1260. /*No:INDEX_CLAUSE.index*/
  1261. /*No:RUN_FEATURE_1.arguments*/
  1262. /*No:RUN_FEATURE_1.ucs_true*/
  1263. /*No:RUN_FEATURE_1.actuals_clients*/
  1264. T0* r808jvm_descriptor(void){
  1265. T0* R=NULL;
  1266. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC496tmp_jvm_descriptor)))))->_count)=(0);
  1267. /*]*/
  1268. /*[IRF3.1update_tmp_jvm_descriptor*//*]*/
  1269. R=oBC496tmp_jvm_descriptor;
  1270. return R;
  1271. }
  1272. /*No:RUN_FEATURE_1.ucs_in_computation*/
  1273. void r808make(T808* C,T0* a1,T0* a2,T0* a3){
  1274. C->_current_type=a1;
  1275. C->_name=a2;
  1276. C->_base_feature=a3;
  1277. r199put(((T199*)((((T355*)((T355*)(r808run_class(C)))))->_feature_dictionary/*24*/)),(T0*)C,X776to_key(a2));
  1278. r604incr_magic_count(((T604*)(oBC364small_eiffel)));
  1279. C->_use_current_state=1005;
  1280. r604push(((T604*)(oBC364small_eiffel)),(T0*)C);
  1281. r808initialize(C);
  1282. r604pop(((T604*)(oBC364small_eiffel)));
  1283. }
  1284. void r808std_compute_use_current(T808* C){
  1285. /*IF*/if (((((T808*)C))->_use_current_state/*40*/)==(1006)) {
  1286. /*IF*/if (((((T808*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
  1287. /*IF*/if (r567use_current(((T567*)((((T808*)C))->_require_assertion/*28*/)))) {
  1288. C->_use_current_state=1004;
  1289. }
  1290. /*FI*/}
  1291. /*FI*/}
  1292. /*FI*//*IF*/if (((((T808*)C))->_use_current_state/*40*/)==(1006)) {
  1293. /*IF*/if (((((T808*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
  1294. /*IF*/if (r592use_current(((T592*)((((T808*)C))->_routine_body/*32*/)))) {
  1295. C->_use_current_state=1004;
  1296. }
  1297. /*FI*/}
  1298. /*FI*/}
  1299. /*FI*//*IF*/if (((((T808*)C))->_use_current_state/*40*/)==(1006)) {
  1300. /*IF*/if (((((T808*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  1301. /*IF*/if (r633use_current(((T633*)((((T808*)C))->_ensure_assertion/*36*/)))) {
  1302. C->_use_current_state=1004;
  1303. }
  1304. /*FI*/}
  1305. /*FI*/}
  1306. /*FI*//*IF*/if (((((T808*)C))->_use_current_state/*40*/)==(1006)) {
  1307. C->_use_current_state=1003;
  1308. }
  1309. /*FI*/}
  1310. /*No:RUN_FEATURE_1.name*/
  1311. int r808arg_count(T808* C){
  1312. int R=0;
  1313. /*IF*/if (((((T808*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  1314. R=/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T808*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/;
  1315. }
  1316. /*FI*/return R;
  1317. }
  1318. /*No:RUN_FEATURE_1.local_vars*/
  1319. /*No:RUN_FEATURE_1.base_feature*/
  1320. T0* r808start_position(T808* C){
  1321. T0* R=NULL;
  1322. R=X418start_position((((T808*)C))->_base_feature/*44*/);
  1323. return R;
  1324. }
  1325. int r808jvm_max_locals(T808* C){
  1326. int R=0;
  1327. R=X291jvm_stack_space((((T808*)C))->_current_type/*4*/);
  1328. /*IF*/if (((((T808*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  1329. R=(R)+(r31jvm_stack_space(((T31*)((((T808*)C))->_arguments/*20*/))));
  1330. }
  1331. /*FI*//*IF*//*AF*//*AE*/
  1332. /*FI*//*IF*/if (((((T808*)C))->_result_type/*24*/)!=((void*)(NULL))) {
  1333. R=(R)+(X291jvm_stack_space((((T808*)C))->_result_type/*24*/));
  1334. }
  1335. /*FI*/return R;
  1336. }
  1337. /*No:RUN_FEATURE_1.ensure_assertion*/
  1338. int r808jvm_result_offset(T808* C){
  1339. int R=0;
  1340. R=X291jvm_stack_space((((T808*)C))->_current_type/*4*/);
  1341. /*IF*/if (((((T808*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  1342. R=(R)+(r31jvm_stack_space(((T31*)((((T808*)C))->_arguments/*20*/))));
  1343. }
  1344. /*FI*//*IF*//*AF*//*AE*/
  1345. /*FI*/return R;
  1346. }
  1347. int r808is_exported_in(T808* C,T0* a1){
  1348. int R=0;
  1349. R=r636gives_permission_to(((T636*)(r808clients(C))),a1);
  1350. return R;
  1351. }
  1352. /*No:RUN_FEATURE_1.compute_use_current*/
  1353. /*No:RUN_FEATURE_1.result_type*/
  1354. /*No:RUN_FEATURE_1.jvm_field_or_method*/
  1355. int r808jvm_argument_offset(T808* C,T0* a1){
  1356. int R=0;
  1357. R=X291jvm_stack_space((((T808*)C))->_current_type/*4*/);
  1358. R=(R)+(r31jvm_offset_of(((T31*)((((T808*)C))->_arguments/*20*/)),a1));
  1359. return R;
  1360. }
  1361. int r808is_static(T808* C){
  1362. int R=0;
  1363. R=X662is_static((((T808*)C))->_value/*48*/);
  1364. return R;
  1365. }
  1366. void r808add_client(T808* C,T0* a1){
  1367. int _i=0;
  1368. /*IF*/if (((((T808*)C))->_actuals_clients/*12*/)==((void*)(NULL))) {
  1369. {T187*n=malloc(sizeof(*n));
  1370. *n=M187;
  1371. r187with_capacity(n,4);
  1372. C->_actuals_clients=(T0*)n;
  1373. }
  1374. r187add_last(((T187*)((((T808*)C))->_actuals_clients/*12*/)),a1);
  1375. }
  1376. else {
  1377. _i=r187fast_index_of(((T187*)((((T808*)C))->_actuals_clients/*12*/)),a1);
  1378. /*IF*/if ((_i)>((((T187*)((T187*)((((T808*)C))->_actuals_clients/*12*/))))->_upper/*8*/)) {
  1379. r187add_last(((T187*)((((T808*)C))->_actuals_clients/*12*/)),a1);
  1380. }
  1381. /*FI*/}
  1382. /*FI*/r355add_client(((T355*)(r808run_class(C))),a1);
  1383. }
  1384. /*No:RUN_FEATURE_1.require_assertion*/
  1385. /*No:RUN_FEATURE_1.value*/
  1386. /*No:RUN_FEATURE_1.use_current_state*/
  1387. /*No:RUN_FEATURE_1.can_be_dropped*/
  1388. void r808mapping_jvm(T808* C){
  1389. int _space=0;
  1390. r228drop_target(((T228*)(oBC364jvm)));
  1391. _space=X662compile_to_jvm_into((((T808*)C))->_value/*48*/,(((T808*)C))->_result_type/*24*/);
  1392. }
  1393. /*No:RUN_FEATURE_1.current_type*/
  1394. T0* r808run_class(T808* C){
  1395. T0* R=NULL;
  1396. R=X291run_class((((T808*)C))->_current_type/*4*/);
  1397. return R;
  1398. }
  1399. int r808static_value_mem(T808* C){
  1400. int R=0;
  1401. R=X662static_value((((T808*)C))->_value/*48*/);
  1402. return R;
  1403. }
  1404. /*No:RUN_FEATURE_1.ucs_not_computed*/
  1405. /*No:RUN_FEATURE_1.routine_body*/
  1406. void r808fall_down(T808* C){
  1407. T0* _rf=NULL;
  1408. T0* _sub_name=NULL;
  1409. T0* _sub_bc=NULL;
  1410. T0* _current_bc=NULL;
  1411. T0* _sub_rc=NULL;
  1412. T0* _current_rc=NULL;
  1413. int _i=0;
  1414. T0* _running=NULL;
  1415. _current_rc=X291run_class((((T808*)C))->_current_type/*4*/);
  1416. _running=(((T355*)((T355*)_current_rc)))->_running/*12*/;
  1417. /*IF*/if ((_running)!=((void*)(NULL))) {
  1418. _current_bc=X291base_class((((T808*)C))->_current_type/*4*/);
  1419. _i=(((T396*)((T396*)_running)))->_lower/*12*/;
  1420. while (!((_i)>((((T396*)((T396*)_running)))->_upper/*8*/))) {
  1421. _sub_rc=r396item(((T396*)_running),_i);
  1422. /*IF*/if ((_sub_rc)!=((void*)(_current_rc))) {
  1423. _sub_bc=X291base_class((((T355*)((T355*)_sub_rc)))->_current_type/*0*/);
  1424. _sub_name=r605new_name_of(((T605*)_sub_bc),_current_bc,(((T808*)C))->_name/*16*/);
  1425. _rf=r355get_feature(((T355*)_sub_rc),_sub_name);
  1426. }
  1427. /*FI*/_i=(_i)+(1);
  1428. }
  1429. }
  1430. /*FI*/}
  1431. /*No:RUN_FEATURE_1.ucs_false*/
  1432. /*No:RUN_FEATURE_1.is_pre_computable*/
  1433. T0* r808clients(T808* C){
  1434. T0* R=NULL;
  1435. T0* _bfbc=NULL;
  1436. T0* _bc=NULL;
  1437. /*IF*/if (((((T808*)C))->_clients_memory/*8*/)==((void*)(NULL))) {
  1438. _bc=X291base_class((((T808*)C))->_current_type/*4*/);
  1439. _bfbc=/*X418*/((T0*)(((T380*)((T380*)((((T808*)C))->_base_feature/*44*/))))->_base_class/*4*/);
  1440. /*IF*/if ((_bc)==((void*)(_bfbc))) {
  1441. R=/*X418*/((T0*)(((T380*)((T380*)((((T808*)C))->_base_feature/*44*/))))->_clients/*20*/);
  1442. }
  1443. else {
  1444. R=r605clients_for(((T605*)_bc),(((T808*)C))->_name/*16*/);
  1445. }
  1446. /*FI*/C->_clients_memory=R;
  1447. }
  1448. else {
  1449. R=(((T808*)C))->_clients_memory/*8*/;
  1450. }
  1451. /*FI*/return R;
  1452. }
  1453. int r808use_current(T808* C){
  1454. int R=0;
  1455. {int z1=(((T808*)C))->_use_current_state/*40*/;
  1456.  
  1457. if((1004==z1)){
  1458. R=1;
  1459. }
  1460.  else 
  1461. if((1003==z1)){
  1462. }
  1463.  else 
  1464. if((1005==z1)){
  1465. C->_use_current_state=1006;
  1466. /*[IRF3.4compute_use_current*/r808std_compute_use_current(C);
  1467. /*]*/
  1468. R=r808use_current(C);
  1469. }
  1470.  else {R=1;
  1471. }}
  1472. return R;
  1473. }
  1474. /*No:RUN_FEATURE_1.jvm_define*/
  1475. int r808jvm_local_variable_offset(T808* C,T0* a1){
  1476. int R=0;
  1477. R=X291jvm_stack_space((((T808*)C))->_current_type/*4*/);
  1478. /*IF*/if (((((T808*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  1479. R=(R)+(r31jvm_stack_space(((T31*)((((T808*)C))->_arguments/*20*/))));
  1480. }
  1481. /*FI*/R=(R)+(r620jvm_offset_of(((T620*)(/*(IRF4.1local_vars*/NULL/*)*/)),a1));
  1482. return R;
  1483. }
  1484. /*No:RUN_FEATURE_1.clients_memory*/
  1485. void r808initialize(T808* C){
  1486. int _i=0;
  1487. _i=r953index_of(((T953*)(/*X418*/((T0*)(((T380*)((T380*)((((T808*)C))->_base_feature/*44*/))))->_names/*8*/))),(((T808*)C))->_name/*16*/);
  1488. C->_value=X418value((((T808*)C))->_base_feature/*44*/,_i);
  1489. C->_value=X662to_runnable((((T808*)C))->_value/*48*/,(((T808*)C))->_current_type/*4*/);
  1490. C->_result_type=X291to_runnable(/*X418*/((T0*)(((T380*)((T380*)((((T808*)C))->_base_feature/*44*/))))->_result_type/*12*/),(((T808*)C))->_current_type/*4*/);
  1491. }
  1492. /*No:RUN_FEATURE_1.afd_check*/
  1493. /*No:RUN_FEATURE_1.update_tmp_jvm_descriptor*/
  1494. /*No:NATIVE_WITH_CURRENT.jvm_add_method_for_procedure*/
  1495. /*No:NATIVE_WITH_CURRENT.jvm_add_method_for_function*/
  1496. /*No:NATIVE_WITH_CURRENT.jvm_mapping_procedure*/
  1497. /*No:NATIVE_WITH_CURRENT.jvm_define_procedure*/
  1498. /*No:NATIVE_WITH_CURRENT.use_current*/
  1499. /*No:NATIVE_WITH_CURRENT.jvm_define_function*/
  1500. /*No:NATIVE_WITH_CURRENT.fatal_error*/
  1501. void r893fe_c2jvm(T0* a1){
  1502. r683add_position(r228target_position(((T228*)(oBC364jvm))));
  1503. r683add_position(X496start_position(a1));
  1504. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_845);
  1505. r683fatal_error(((T683*)(oBC364eh)),b1);
  1506. }/*]*/
  1507. }
  1508. /*No:NATIVE_WITH_CURRENT.jvm_mapping_function*/
  1509. void r881make(T881* C,T0* a1,T0* a2){
  1510. T0* _fga=NULL;
  1511. int _i=0;
  1512. int _rank=0;
  1513. C->_start_position=a1;
  1514. C->_list=a2;
  1515. _i=(((T681*)((T681*)a2)))->_upper/*8*/;
  1516. while (!((_i)==(0))) {
  1517. _fga=r681item(((T681*)a2),_i);
  1518. _rank=r881index_of(C,(((T59*)((T59*)_fga)))->_name/*0*/);
  1519. /*IF*/if ((_rank)!=(_i)) {
  1520. r683add_position(/*(IRF4.6start_position*/(((T451*)((T451*)((((T59*)((T59*)(r681item(((T681*)a2),_rank)))))->_name/*0*/))))->_start_position/*4*//*)*/);
  1521. r683add_position(/*(IRF4.6start_position*/(((T451*)((T451*)((((T59*)((T59*)_fga)))->_name/*0*/))))->_start_position/*4*//*)*/);
  1522. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_881);
  1523. r683fatal_error(((T683*)(oBC364eh)),b1);
  1524. }/*]*/
  1525. }
  1526. /*FI*/_i=(_i)-(1);
  1527. }
  1528. }
  1529. /*No:FORMAL_GENERIC_LIST.start_position*/
  1530. /*No:FORMAL_GENERIC_LIST.item*/
  1531. /*No:FORMAL_GENERIC_LIST.list*/
  1532. /*No:FORMAL_GENERIC_LIST.count*/
  1533. /*No:FORMAL_GENERIC_LIST.fatal_error*/
  1534. int r881index_of(T881* C,T0* a1){
  1535. int R=0;
  1536. T0* _to_string=NULL;
  1537. _to_string=(((T451*)((T451*)a1)))->_to_string/*0*/;
  1538. R=(((T681*)((T681*)((((T881*)C))->_list/*4*/))))->_upper/*8*/;
  1539. while (!(((R)==(0))||((_to_string)==((void*)((((T451*)((T451*)((((T59*)((T59*)(r681item(((T681*)((((T881*)C))->_list/*4*/)),R)))))->_name/*0*/))))->_to_string/*0*/))))) {
  1540. R=(R)-(1);
  1541. }
  1542. return R;
  1543. }
  1544.  
  1545.