home *** CD-ROM | disk | FTP | other *** search
/ Amiga ACS 1998 #4 / amigaacscoverdisc1998-041998.iso / utilities / shareware / dev / ppcsmalleiffel / source.lha / bin_c / compile_to_jvm15.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  44.5 KB  |  1,488 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 r390make(T390* C,T0* a1,T0* a2,T0* a3){
  10. C->_start_position=a1;
  11. C->_writable=a2;
  12. C->_call=a3;
  13. }
  14. T0* r390run_args(T390* C){
  15. T0* R=NULL;
  16. R=X173arguments((((T390*)C))->_call/*20*/);
  17. return R;
  18. }
  19. /*No:CREATION_CALL_3.us_string*/
  20. int r390arg_count(T390* C){
  21. int R=0;
  22. /*IF*/if (((((T390*)C))->_call/*20*/)!=((void*)(NULL))) {
  23. R=X173arg_count((((T390*)C))->_call/*20*/);
  24. }
  25. /*FI*/return R;
  26. }
  27. /*No:CREATION_CALL_3.call*/
  28. /*No:CREATION_CALL_3.run_feature*/
  29. /*No:CREATION_CALL_3.start_position*/
  30. /*No:CREATION_CALL_3.us_blank*/
  31. T0* r390to_runnable(T390* C,T0* a1){
  32. T0* R=NULL;
  33. T0* _t=NULL;
  34. /*IF*/if (((((T390*)C))->_run_compound/*4*/)==((void*)(NULL))) {
  35. r390check_writable(C,a1);
  36. _t=X662result_type((((T390*)C))->_writable/*12*/);
  37. r390check_created_type(C,_t);
  38. r390check_creation_clause(C,_t);
  39. R=(T0*)C;
  40. }
  41. else {
  42. {T390*n=malloc(sizeof(*n));
  43. *n=M390;
  44. r390make(n,(((T390*)C))->_start_position/*8*/,(((T390*)C))->_writable/*12*/,(((T390*)C))->_call/*20*/);
  45. R=(T0*)n;
  46. }
  47. R=r390to_runnable(((T390*)R),a1);
  48. }
  49. /*FI*/return R;
  50. }
  51. /*No:CREATION_CALL_3.us_std_file_read*/
  52. /*No:CREATION_CALL_3.fz_03*/
  53. /*No:CREATION_CALL_3.us_make*/
  54. T0*oBC394make_precomputable=NULL;
  55. T0* r390current_type(T390* C){
  56. T0* R=NULL;
  57. /*IF*/if (((((T390*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
  58. R=(((T592*)((T592*)((((T390*)C))->_run_compound/*4*/))))->_current_type/*4*/;
  59. }
  60. /*FI*/return R;
  61. }
  62. /*No:CREATION_CALL_3.fz_09*/
  63. /*No:CREATION_CALL_3.run_compound*/
  64. /*No:CREATION_CALL_3.compile_to_jvm0*/
  65. void r390compile_to_jvm(T390* C){
  66. T0* _t=NULL;
  67. T0* _w=NULL;
  68. _w=(((T390*)C))->_writable/*12*/;
  69. _t=X291run_type(X662result_type(_w));
  70. /*[IRF3.6compile_to_jvm0*/{T0* b1=_t;
  71. r355jvm_push_default(((T355*)(X291run_class(b1))));
  72. }/*]*/
  73. r228inside_new(((T228*)(oBC364jvm)),(((T390*)C))->_run_feature/*16*/,(((T390*)C))->_call/*20*/);
  74. X291jvm_check_class_invariant(_t);
  75. X662jvm_assign(_w);
  76. }
  77. /*No:CREATION_CALL_3.fz_dot*/
  78. int r390is_pre_computable(T390* C){
  79. int R=0;
  80. T0* _rfctbcn=NULL;
  81. T0* _rfn=NULL;
  82. T0* _rfct=NULL;
  83. /*IF*/if (X662is_result((((T390*)C))->_writable/*12*/)) {
  84. /*IF*/if ((r390run_args(C))==((void*)(NULL))) {
  85. R=1;
  86. }
  87. else {
  88. R=r431is_pre_computable(((T431*)(r390run_args(C))));
  89. }
  90. /*FI*//*IF*/if (R) {
  91. /*IF*/if (X496is_pre_computable((((T390*)C))->_run_feature/*16*/)) {
  92. R=1;
  93. }
  94. else {
  95. _rfct=/*X496*/((T0*)(((T832*)((T832*)((((T390*)C))->_run_feature/*16*/))))->_current_type/*4*/);
  96. _rfctbcn=(((T451*)((T451*)((((T605*)((T605*)(X291base_class(_rfct)))))->_base_class_name/*24*/))))->_to_string/*0*/;
  97. _rfn=X776to_string(/*X496*/((T0*)(((T832*)((T832*)((((T390*)C))->_run_feature/*16*/))))->_name/*16*/));
  98. /*IF*/if ((((T0*)ms89_473))==((void*)(_rfn))) {
  99. R=r52has(((T52*)(oBC394make_precomputable)),_rfctbcn);
  100. }
  101.  else if ((((T0*)ms51_473))==((void*)(_rfn))) {
  102. R=(((T0*)ms25_473))==((void*)(_rfctbcn));
  103. }
  104.  else if ((((T0*)ms141_473))==((void*)(_rfn))) {
  105. /*IF*/if ((((T0*)ms2_473))==((void*)(_rfctbcn))) {
  106. R=1;
  107. }
  108.  else if ((((T0*)ms13_473))==((void*)(_rfctbcn))) {
  109. R=1;
  110. }
  111.  else if ((((T0*)ms10_473))==((void*)(_rfctbcn))) {
  112. R=1;
  113. }
  114. else {
  115. R=0;
  116. }
  117. /*FI*/}
  118. /*FI*/}
  119. /*FI*/}
  120. /*FI*/}
  121. /*FI*/return R;
  122. }
  123. int r390use_current(T390* C){
  124. int R=0;
  125. /*IF*/if ((r390run_args(C))!=((void*)(NULL))) {
  126. R=r431use_current(((T431*)(r390run_args(C))));
  127. }
  128. /*FI*/R=(R)||(X662use_current((((T390*)C))->_writable/*12*/));
  129. return R;
  130. }
  131. void r390check_writable(T390* C,T0* a1){
  132. T0* _w=NULL;
  133. C->_run_compound=a1;
  134. _w=X662to_runnable((((T390*)C))->_writable/*12*/,r390current_type(C));
  135. /*IF*/if ((_w)==((void*)(NULL))) {
  136. r683add_position(X662start_position((((T390*)C))->_writable/*12*/));
  137. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_747);
  138. r683fatal_error(((T683*)(oBC364eh)),b1);
  139. }/*]*/
  140. }
  141. else {
  142. C->_writable=_w;
  143. }
  144. /*FI*/}
  145. void r390error(T0* a1,T0* a2){
  146. r683add_position(a1);
  147. r683error(((T683*)(oBC364eh)),a2);
  148. }
  149. /*No:CREATION_CALL_3.fatal_error*/
  150. /*No:CREATION_CALL_3.end_mark_comment*/
  151. /*No:CREATION_CALL_3.us_fixed_array*/
  152. void r390afd_check(T390* C){
  153. /*IF*/if ((r390arg_count(C))>(0)) {
  154. r431afd_check(((T431*)(r390run_args(C))));
  155. }
  156. /*FI*/}
  157. void r699add_into(T699* C,T0* a1){
  158. T0* _a=NULL;
  159. int _i=0;
  160. /*IF*/if (((((T699*)C))->_list/*8*/)!=((void*)(NULL))) {
  161. _i=1;
  162. while (!((_i)>((((T608*)((T608*)((((T699*)C))->_list/*8*/))))->_upper/*8*/))) {
  163. _a=r608item(((T608*)((((T699*)C))->_list/*8*/)),_i);
  164. /*IF*/if (!(r608fast_has(((T608*)a1),_a))) {
  165. r608add_last(((T608*)a1),_a);
  166. }
  167. /*FI*/_i=(_i)+(1);
  168. }
  169. }
  170. /*FI*/}
  171. void r699from_runnable(T699* C,T0* a1){
  172. C->_list=a1;
  173. C->_current_type=(((T348*)((T348*)(r608item(((T608*)((((T699*)C))->_list/*8*/)),1)))))->_current_type/*12*/;
  174. }
  175. void r699make(T699* C,T0* a1,T0* a2,T0* a3){
  176. C->_start_position=a1;
  177. C->_header_comment=a2;
  178. C->_list=a3;
  179. }
  180. /*No:CLASS_INVARIANT.start_position*/
  181. /*No:CLASS_INVARIANT.list*/
  182. /*No:CLASS_INVARIANT.current_type*/
  183. /*No:CLASS_INVARIANT.header_comment*/
  184. void r699compile_to_jvm(T699* C,int a1){
  185. T0* _ca=NULL;
  186. int _i=0;
  187. int _point_true=0;
  188. /*IF*/if (((((T699*)C))->_list/*8*/)!=((void*)(NULL))) {
  189. _ca=oBC364code_attribute;
  190. r256check_opening(((T256*)_ca));
  191. /*IF*/if (a1) {
  192. _i=1;
  193. while (!((_i)>((((T608*)((T608*)((((T699*)C))->_list/*8*/))))->_upper/*8*/))) {
  194. r348compile_to_jvm(((T348*)(r608item(((T608*)((((T699*)C))->_list/*8*/)),_i))),1);
  195. _i=(_i)+(1);
  196. }
  197. }
  198. else {
  199. /*[IRF3.3clear*/((((T226*)(((T226*)(oBC596points_false)))))->_upper)=(-(1));
  200. /*]*/
  201. _i=1;
  202. while (!((_i)>((((T608*)((T608*)((((T699*)C))->_list/*8*/))))->_upper/*8*/))) {
  203. r348compile_to_jvm(((T348*)(r608item(((T608*)((((T699*)C))->_list/*8*/)),_i))),0);
  204. r226add_last(((T226*)(oBC596points_false)),r256opcode_ifeq(((T256*)_ca)));
  205. _i=(_i)+(1);
  206. }
  207. /*[IRF3.4opcode_iconst_1*/r256opcode(((T256*)_ca),4,1);
  208. /*]*/
  209. _point_true=r256opcode_goto(((T256*)_ca));
  210. r256resolve_with(oBC596points_false);
  211. /*[IRF3.4opcode_iconst_0*/r256opcode(((T256*)_ca),3,1);
  212. /*]*/
  213. r256resolve_u2_branch(_point_true);
  214. }
  215. /*FI*/r256check_closing(((T256*)_ca));
  216. }
  217. /*FI*/}
  218. /*No:RUN_FEATURE_7.arguments*/
  219. /*No:RUN_FEATURE_7.ucs_true*/
  220. /*No:RUN_FEATURE_7.us_copy*/
  221. void r906routine_mapping_jvm(T906* C){
  222. int _stack_level=0;
  223. int _idx=0;
  224. T0* _ct=NULL;
  225. T0* _rt=NULL;
  226. _ct=(((T906*)C))->_current_type/*4*/;
  227. r228push_target_as_target(((T228*)(oBC364jvm)));
  228. _stack_level=-((1)+(r228push_arguments(((T228*)(oBC364jvm)))));
  229. _rt=(((T906*)C))->_result_type/*24*/;
  230. /*IF*/if ((_rt)!=((void*)(NULL))) {
  231. _stack_level=(_stack_level)+(X291jvm_stack_space(_rt));
  232. }
  233. /*FI*/_idx=r95idx_methodref(((T95*)(oBC364constant_pool)),(T0*)C);
  234. r355jvm_invoke(((T355*)(X291run_class(_ct))),_idx,_stack_level);
  235. }
  236. /*No:RUN_FEATURE_7.actuals_clients*/
  237. T0* r906jvm_descriptor(T906* C){
  238. T0* R=NULL;
  239. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC496tmp_jvm_descriptor)))))->_count)=(0);
  240. /*]*/
  241. /*[IRF3.4update_tmp_jvm_descriptor*/r906routine_update_tmp_jvm_descriptor(C);
  242. /*]*/
  243. R=oBC496tmp_jvm_descriptor;
  244. return R;
  245. }
  246. void r906method_info_start(T906* C){
  247. int _flags=0;
  248. _flags=X291jvm_method_flags((((T906*)C))->_current_type/*4*/);
  249. r506start(((T506*)(oBC364method_info)),_flags,X776to_key((((T906*)C))->_name/*16*/),r906jvm_descriptor(C));
  250. }
  251. /*No:RUN_FEATURE_7.ucs_in_computation*/
  252. void r906routine_update_tmp_jvm_descriptor(T906* C){
  253. T0* _rt=NULL;
  254. T0* _ct=NULL;
  255. r7extend(((T7*)(oBC496tmp_jvm_descriptor)),'\50');
  256. _ct=(((T906*)C))->_current_type/*4*/;
  257. X291jvm_target_descriptor_in(_ct,oBC496tmp_jvm_descriptor);
  258. /*IF*/if (((((T906*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  259. r31jvm_descriptor_in(((T31*)((((T906*)C))->_arguments/*20*/)),oBC496tmp_jvm_descriptor);
  260. }
  261. /*FI*/_rt=(((T906*)C))->_result_type/*24*/;
  262. /*IF*/if ((_rt)==((void*)(NULL))) {
  263. r7append(((T7*)(oBC496tmp_jvm_descriptor)),((T0*)ms153_470));
  264. }
  265. else {
  266. _rt=X291run_type(_rt);
  267. r7extend(((T7*)(oBC496tmp_jvm_descriptor)),'\51');
  268. X291jvm_descriptor_in(_rt,oBC496tmp_jvm_descriptor);
  269. }
  270. /*FI*/}
  271. void r906make(T906* C,T0* a1,T0* a2,T0* a3){
  272. C->_current_type=a1;
  273. C->_name=a2;
  274. C->_base_feature=a3;
  275. r199put(((T199*)((((T355*)((T355*)(r906run_class(C)))))->_feature_dictionary/*24*/)),(T0*)C,X776to_key(a2));
  276. r604incr_magic_count(((T604*)(oBC364small_eiffel)));
  277. C->_use_current_state=1005;
  278. r604push(((T604*)(oBC364small_eiffel)),(T0*)C);
  279. r906initialize(C);
  280. r604pop(((T604*)(oBC364small_eiffel)));
  281. }
  282. void r906std_compute_use_current(T906* C){
  283. /*IF*/if (((((T906*)C))->_use_current_state/*40*/)==(1006)) {
  284. /*IF*/if (((((T906*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
  285. /*IF*/if (r567use_current(((T567*)((((T906*)C))->_require_assertion/*28*/)))) {
  286. C->_use_current_state=1004;
  287. }
  288. /*FI*/}
  289. /*FI*/}
  290. /*FI*//*IF*/if (((((T906*)C))->_use_current_state/*40*/)==(1006)) {
  291. /*IF*/if (((((T906*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
  292. /*IF*/if (r592use_current(((T592*)((((T906*)C))->_routine_body/*32*/)))) {
  293. C->_use_current_state=1004;
  294. }
  295. /*FI*/}
  296. /*FI*/}
  297. /*FI*//*IF*/if (((((T906*)C))->_use_current_state/*40*/)==(1006)) {
  298. /*IF*/if (((((T906*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  299. /*IF*/if (r633use_current(((T633*)((((T906*)C))->_ensure_assertion/*36*/)))) {
  300. C->_use_current_state=1004;
  301. }
  302. /*FI*/}
  303. /*FI*/}
  304. /*FI*//*IF*/if (((((T906*)C))->_use_current_state/*40*/)==(1006)) {
  305. C->_use_current_state=1003;
  306. }
  307. /*FI*/}
  308. /*No:RUN_FEATURE_7.name*/
  309. int r906arg_count(T906* C){
  310. int R=0;
  311. /*IF*/if (((((T906*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  312. R=/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T906*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/;
  313. }
  314. /*FI*/return R;
  315. }
  316. void r906routine_afd_check(T906* C){
  317. /*IF*/if (((((T906*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
  318. r567afd_check(((T567*)((((T906*)C))->_require_assertion/*28*/)));
  319. }
  320. /*FI*//*IF*/if (((((T906*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
  321. r592afd_check(((T592*)((((T906*)C))->_routine_body/*32*/)));
  322. }
  323. /*FI*//*IF*/if (((((T906*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  324. r633afd_check(((T633*)((((T906*)C))->_ensure_assertion/*36*/)));
  325. }
  326. /*FI*/}
  327. /*No:RUN_FEATURE_7.local_vars*/
  328. void r906jvm_opening(T906* C){
  329. r906method_info_start(C);
  330. r906jvm_define_opening(C);
  331. }
  332. /*No:RUN_FEATURE_7.base_feature*/
  333. /*No:RUN_FEATURE_7.start_position*/
  334. int r906jvm_max_locals(T906* C){
  335. int R=0;
  336. R=X291jvm_stack_space((((T906*)C))->_current_type/*4*/);
  337. /*IF*/if (((((T906*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  338. R=(R)+(r31jvm_stack_space(((T31*)((((T906*)C))->_arguments/*20*/))));
  339. }
  340. /*FI*//*IF*//*AF*//*AE*/
  341. /*FI*//*IF*/if (((((T906*)C))->_result_type/*24*/)!=((void*)(NULL))) {
  342. R=(R)+(X291jvm_stack_space((((T906*)C))->_result_type/*24*/));
  343. }
  344. /*FI*/return R;
  345. }
  346. int r906jvm_result_offset(T906* C){
  347. int R=0;
  348. R=X291jvm_stack_space((((T906*)C))->_current_type/*4*/);
  349. /*IF*/if (((((T906*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  350. R=(R)+(r31jvm_stack_space(((T31*)((((T906*)C))->_arguments/*20*/))));
  351. }
  352. /*FI*//*IF*//*AF*//*AE*/
  353. /*FI*/return R;
  354. }
  355. /*No:RUN_FEATURE_7.ensure_assertion*/
  356. int r906is_exported_in(T906* C,T0* a1){
  357. int R=0;
  358. R=r636gives_permission_to(((T636*)(r906clients(C))),a1);
  359. return R;
  360. }
  361. void r906jvm_define_opening(T906* C){
  362. T0* _t=NULL;
  363. /*IF*/if (((((T906*)C))->_result_type/*24*/)!=((void*)(NULL))) {
  364. _t=X291run_type((((T906*)C))->_result_type/*24*/);
  365. X291jvm_initialize_local(_t,r906jvm_result_offset(C));
  366. }
  367. /*FI*//*IF*//*AF*//*AE*/
  368. /*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
  369. /*IF*/if (((((T906*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  370. r633compile_to_jvm_old(((T633*)((((T906*)C))->_ensure_assertion/*36*/)));
  371. }
  372. /*FI*/}
  373. /*FI*//*IF*/if (((((T906*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
  374. r567compile_to_jvm(((T567*)((((T906*)C))->_require_assertion/*28*/)));
  375. }
  376. /*FI*/}
  377. void r906compute_use_current(T906* C){
  378. /*IF*/if (r883use_current(((T883*)((((T906*)C))->_base_feature/*44*/)))) {
  379. C->_use_current_state=1004;
  380. }
  381. else {
  382. r906std_compute_use_current(C);
  383. }
  384. /*FI*/}
  385. /*No:RUN_FEATURE_7.result_type*/
  386. void r906jvm_field_or_method(T906* C){
  387. T0* _bcn=NULL;
  388. T0* _native=NULL;
  389. _native=(((T883*)((T883*)((((T906*)C))->_base_feature/*44*/))))->_native/*48*/;
  390. _bcn=(((T451*)((T451*)((((T605*)((T605*)((((T883*)((T883*)((((T906*)C))->_base_feature/*44*/))))->_base_class/*4*/))))->_base_class_name/*24*/))))->_to_string/*0*/;
  391. X845jvm_add_method_for_procedure(_native,(T0*)C,_bcn,X776to_string((((T906*)C))->_name/*16*/));
  392. }
  393. int r906jvm_argument_offset(T906* C,T0* a1){
  394. int R=0;
  395. R=X291jvm_stack_space((((T906*)C))->_current_type/*4*/);
  396. R=(R)+(r31jvm_offset_of(((T31*)((((T906*)C))->_arguments/*20*/)),a1));
  397. return R;
  398. }
  399. /*No:RUN_FEATURE_7.is_static*/
  400. void r906add_client(T906* C,T0* a1){
  401. int _i=0;
  402. /*IF*/if (((((T906*)C))->_actuals_clients/*12*/)==((void*)(NULL))) {
  403. {T187*n=malloc(sizeof(*n));
  404. *n=M187;
  405. r187with_capacity(n,4);
  406. C->_actuals_clients=(T0*)n;
  407. }
  408. r187add_last(((T187*)((((T906*)C))->_actuals_clients/*12*/)),a1);
  409. }
  410. else {
  411. _i=r187fast_index_of(((T187*)((((T906*)C))->_actuals_clients/*12*/)),a1);
  412. /*IF*/if ((_i)>((((T187*)((T187*)((((T906*)C))->_actuals_clients/*12*/))))->_upper/*8*/)) {
  413. r187add_last(((T187*)((((T906*)C))->_actuals_clients/*12*/)),a1);
  414. }
  415. /*FI*/}
  416. /*FI*/r355add_client(((T355*)(r906run_class(C))),a1);
  417. }
  418. /*No:RUN_FEATURE_7.require_assertion*/
  419. /*No:RUN_FEATURE_7.use_current_state*/
  420. /*No:RUN_FEATURE_7.can_be_dropped*/
  421. void r906jvm_define_closing(T906* C){
  422. /*IF*/if (r906use_current(C)) {
  423. }
  424. /*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
  425. /*IF*/if (((((T906*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  426. r633compile_to_jvm(((T633*)((((T906*)C))->_ensure_assertion/*36*/)),1);
  427. }
  428. /*FI*/}
  429. /*FI*//*IF*/if (((((T906*)C))->_result_type/*24*/)!=((void*)(NULL))) {
  430. X291jvm_push_local((((T906*)C))->_result_type/*24*/,r906jvm_result_offset(C));
  431. }
  432. /*FI*/}
  433. void r906mapping_jvm(T906* C){
  434. T0* _bcn=NULL;
  435. T0* _native=NULL;
  436. T0* _bf=NULL;
  437. _bf=(((T906*)C))->_base_feature/*44*/;
  438. _native=(((T883*)((T883*)_bf)))->_native/*48*/;
  439. _bcn=(((T451*)((T451*)((((T605*)((T605*)((((T883*)((T883*)_bf)))->_base_class/*4*/))))->_base_class_name/*24*/))))->_to_string/*0*/;
  440. X845jvm_mapping_procedure(_native,(T0*)C,_bcn,X776to_string(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T883*)((T883*)_bf)))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/));
  441. }
  442. /*No:RUN_FEATURE_7.current_type*/
  443. T0* r906run_class(T906* C){
  444. T0* R=NULL;
  445. R=X291run_class((((T906*)C))->_current_type/*4*/);
  446. return R;
  447. }
  448. /*No:RUN_FEATURE_7.static_value_mem*/
  449. /*No:RUN_FEATURE_7.fz_19*/
  450. /*No:RUN_FEATURE_7.ucs_not_computed*/
  451. /*No:RUN_FEATURE_7.routine_body*/
  452. void r906fall_down(T906* C){
  453. T0* _rf=NULL;
  454. T0* _sub_name=NULL;
  455. T0* _sub_bc=NULL;
  456. T0* _current_bc=NULL;
  457. T0* _sub_rc=NULL;
  458. T0* _current_rc=NULL;
  459. int _i=0;
  460. T0* _running=NULL;
  461. _current_rc=X291run_class((((T906*)C))->_current_type/*4*/);
  462. _running=(((T355*)((T355*)_current_rc)))->_running/*12*/;
  463. /*IF*/if ((_running)!=((void*)(NULL))) {
  464. _current_bc=X291base_class((((T906*)C))->_current_type/*4*/);
  465. _i=(((T396*)((T396*)_running)))->_lower/*12*/;
  466. while (!((_i)>((((T396*)((T396*)_running)))->_upper/*8*/))) {
  467. _sub_rc=r396item(((T396*)_running),_i);
  468. /*IF*/if ((_sub_rc)!=((void*)(_current_rc))) {
  469. _sub_bc=X291base_class((((T355*)((T355*)_sub_rc)))->_current_type/*0*/);
  470. _sub_name=r605new_name_of(((T605*)_sub_bc),_current_bc,(((T906*)C))->_name/*16*/);
  471. _rf=r355get_feature(((T355*)_sub_rc),_sub_name);
  472. }
  473. /*FI*/_i=(_i)+(1);
  474. }
  475. }
  476. /*FI*/}
  477. /*No:RUN_FEATURE_7.ucs_false*/
  478. /*No:RUN_FEATURE_7.is_pre_computable*/
  479. T0* r906clients(T906* C){
  480. T0* R=NULL;
  481. T0* _bfbc=NULL;
  482. T0* _bc=NULL;
  483. /*IF*/if (((((T906*)C))->_clients_memory/*8*/)==((void*)(NULL))) {
  484. _bc=X291base_class((((T906*)C))->_current_type/*4*/);
  485. _bfbc=(((T883*)((T883*)((((T906*)C))->_base_feature/*44*/))))->_base_class/*4*/;
  486. /*IF*/if ((_bc)==((void*)(_bfbc))) {
  487. R=(((T883*)((T883*)((((T906*)C))->_base_feature/*44*/))))->_clients/*20*/;
  488. }
  489. else {
  490. R=r605clients_for(((T605*)_bc),(((T906*)C))->_name/*16*/);
  491. }
  492. /*FI*/C->_clients_memory=R;
  493. }
  494. else {
  495. R=(((T906*)C))->_clients_memory/*8*/;
  496. }
  497. /*FI*/return R;
  498. }
  499. int r906use_current(T906* C){
  500. int R=0;
  501. {int z1=(((T906*)C))->_use_current_state/*40*/;
  502.  
  503. if((1004==z1)){
  504. R=1;
  505. }
  506.  else 
  507. if((1003==z1)){
  508. }
  509.  else 
  510. if((1005==z1)){
  511. C->_use_current_state=1006;
  512. r906compute_use_current(C);
  513. R=r906use_current(C);
  514. }
  515.  else {R=1;
  516. }}
  517. return R;
  518. }
  519. void r906jvm_define(T906* C){
  520. T0* _bcn=NULL;
  521. T0* _native=NULL;
  522. T0* _bf=NULL;
  523. _bf=(((T906*)C))->_base_feature/*44*/;
  524. _native=(((T883*)((T883*)_bf)))->_native/*48*/;
  525. _bcn=(((T451*)((T451*)((((T605*)((T605*)((((T883*)((T883*)_bf)))->_base_class/*4*/))))->_base_class_name/*24*/))))->_to_string/*0*/;
  526. X845jvm_define_procedure(_native,(T0*)C,_bcn,X776to_string(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T883*)((T883*)_bf)))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/));
  527. }
  528. int r906jvm_local_variable_offset(T906* C,T0* a1){
  529. int R=0;
  530. R=X291jvm_stack_space((((T906*)C))->_current_type/*4*/);
  531. /*IF*/if (((((T906*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  532. R=(R)+(r31jvm_stack_space(((T31*)((((T906*)C))->_arguments/*20*/))));
  533. }
  534. /*FI*/R=(R)+(r620jvm_offset_of(((T620*)(/*(IRF4.1local_vars*/NULL/*)*/)),a1));
  535. return R;
  536. }
  537. /*No:RUN_FEATURE_7.clients_memory*/
  538. void r906initialize(T906* C){
  539. C->_arguments=(((T883*)((T883*)((((T906*)C))->_base_feature/*44*/))))->_arguments/*24*/;
  540. /*IF*/if ((((((T906*)C))->_arguments/*20*/)!=((void*)(NULL)))&&((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T906*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)>(0))) {
  541. C->_arguments=r31to_runnable(((T31*)((((T906*)C))->_arguments/*20*/)),(((T906*)C))->_current_type/*4*/);
  542. }
  543. /*FI*//*IF*/if (r590require_check(((T590*)(oBC364run_control)))) {
  544. /*IF*/if (((((T0*)ms64_473))==((void*)(X776to_string((((T906*)C))->_name/*16*/))))&&(X291is_expanded((((T906*)C))->_current_type/*4*/))) {
  545. }
  546. else {
  547. C->_require_assertion=r883run_require((T0*)C);
  548. }
  549. /*FI*/}
  550. /*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
  551. C->_ensure_assertion=r883run_ensure((T0*)C);
  552. }
  553. /*FI*/}
  554. void r906jvm_closing(T906* C){
  555. r906jvm_define_closing(C);
  556. /*[IRF3.2opcode_return*//*[IRF3.6add_u1*/{int b1=177;
  557. r226add_last(((T226*)(oBC256code)),b1);
  558. }/*]*/
  559. /*]*/
  560. r506finish(((T506*)(oBC364method_info)));
  561. }
  562. /*No:RUN_FEATURE_7.afd_check*/
  563. /*No:RUN_FEATURE_7.update_tmp_jvm_descriptor*/
  564. T0* r349to_runnable_integer(T349* C,T0* a1){
  565. T0* R=NULL;
  566. T0* _e=NULL;
  567. /*IF*/if (((((T349*)C))->_e_when/*4*/)==((void*)(NULL))) {
  568. C->_e_when=a1;
  569. _e=X662to_runnable((((T349*)C))->_expression/*8*/,/*(IRF4.6current_type*//*(IRF4.6current_type*//*(IRF4.6current_type*/r270current_type(((T270*)((((T377*)((T377*)((((T843*)((T843*)((((T349*)C))->_e_when/*4*/))))->_when_list/*16*/))))->_e_inspect/*0*/)))/*)*//*)*//*)*/);
  570. /*IF*/if (((_e)!=((void*)(NULL)))&&(X291is_integer(X662result_type(_e)))) {
  571. C->_expression=_e;
  572. C->_expression_value=X662to_integer((((T349*)C))->_expression/*8*/);
  573. r843add_when_item_1(((T843*)((((T349*)C))->_e_when/*4*/)),(T0*)C);
  574. }
  575. else {
  576. r349error(X662start_position((((T349*)C))->_expression/*8*/),((T0*)ms60_470));
  577. }
  578. /*FI*/R=(T0*)C;
  579. }
  580. else {
  581. {T349*n=malloc(sizeof(*n));
  582. *n=M349;
  583. /*[IRF3.3make*/((((T349*)(n)))->_expression)=((((T349*)C))->_expression/*8*/);
  584. /*]*/
  585. R=(T0*)n;
  586. }
  587. R=r349to_runnable_integer(((T349*)R),a1);
  588. }
  589. /*FI*/return R;
  590. }
  591. /*No:WHEN_ITEM_1.make*/
  592. /*No:WHEN_ITEM_1.expression*/
  593. T0* r349start_position(T349* C){
  594. T0* R=NULL;
  595. R=X662start_position((((T349*)C))->_expression/*8*/);
  596. return R;
  597. }
  598. /*No:WHEN_ITEM_1.clear_e_when*/
  599. /*No:WHEN_ITEM_1.expression_value*/
  600. /*No:WHEN_ITEM_1.fz_bcv*/
  601. T0* r349twin(T349* C){
  602. T0* R=NULL;
  603. R=malloc(sizeof(*C));
  604. *((T349*)R)=*C;
  605. return R;
  606. }
  607. /*No:WHEN_ITEM_1.current_type*/
  608. /*No:WHEN_ITEM_1.fz_biv*/
  609. void r349error(T0* a1,T0* a2){
  610. r683add_position(a1);
  611. r683error(((T683*)(oBC364eh)),a2);
  612. }
  613. T0* r349to_runnable_character(T349* C,T0* a1){
  614. T0* R=NULL;
  615. T0* _e=NULL;
  616. /*IF*/if (((((T349*)C))->_e_when/*4*/)==((void*)(NULL))) {
  617. C->_e_when=a1;
  618. _e=X662to_runnable((((T349*)C))->_expression/*8*/,/*(IRF4.6current_type*//*(IRF4.6current_type*//*(IRF4.6current_type*/r270current_type(((T270*)((((T377*)((T377*)((((T843*)((T843*)((((T349*)C))->_e_when/*4*/))))->_when_list/*16*/))))->_e_inspect/*0*/)))/*)*//*)*//*)*/);
  619. /*IF*/if (((_e)!=((void*)(NULL)))&&(X291is_character(X662result_type(_e)))) {
  620. C->_expression=_e;
  621. C->_expression_value=X662to_integer((((T349*)C))->_expression/*8*/);
  622. r843add_when_item_1(((T843*)((((T349*)C))->_e_when/*4*/)),(T0*)C);
  623. }
  624. else {
  625. r349error(X662start_position((((T349*)C))->_expression/*8*/),((T0*)ms58_470));
  626. }
  627. /*FI*/R=(T0*)C;
  628. }
  629. else {
  630. {T349*n=malloc(sizeof(*n));
  631. *n=M349;
  632. /*[IRF3.3make*/((((T349*)(n)))->_expression)=((((T349*)C))->_expression/*8*/);
  633. /*]*/
  634. R=(T0*)n;
  635. }
  636. R=r349to_runnable_character(((T349*)R),a1);
  637. }
  638. /*FI*/return R;
  639. }
  640. /*No:WHEN_ITEM_1.e_when*/
  641. /*No:TYPE_NATIVE_ARRAY.us_put*/
  642. int r933id(T933* C){
  643. int R=0;
  644. R=(((T355*)((T355*)(r933run_class(C)))))->_id/*4*/;
  645. return R;
  646. }
  647. void r933jvm_target_descriptor_in(T933* C,T0* a1){
  648. r7extend(((T7*)a1),'\133');
  649. X291jvm_descriptor_in(r701item(((T701*)((((T933*)C))->_generic_list/*8*/)),1),a1);
  650. }
  651. /*No:TYPE_NATIVE_ARRAY.jvm_if_x_eq*/
  652. /*No:TYPE_NATIVE_ARRAY.has_creation*/
  653. /*No:TYPE_NATIVE_ARRAY.is_anchored*/
  654. /*No:TYPE_NATIVE_ARRAY.is_array*/
  655. int r933is_a(T933* C,T0* a1){
  656. int R=0;
  657. R=(r933run_time_mark(C))==((void*)(X291run_time_mark(a1)));
  658. /*IF*/if (!(R)) {
  659. r683add_type((T0*)C,((T0*)ms71_470));
  660. r683add_type(a1,((T0*)ms67_470));
  661. }
  662. /*FI*/return R;
  663. }
  664. T0*oBC933tmp_str=NULL;
  665. /*No:TYPE_NATIVE_ARRAY.jvm_to_reference*/
  666. /*No:TYPE_NATIVE_ARRAY.is_pointer*/
  667. /*No:TYPE_NATIVE_ARRAY.run_type*/
  668. /*No:TYPE_NATIVE_ARRAY.is_dummy_expanded*/
  669. int r933jvm_push_default(void){
  670. int R=0;
  671. /*[IRF3.4opcode_aconst_null*/r256opcode(((T256*)(oBC364code_attribute)),1,1);
  672. /*]*/
  673. R=1;
  674. return R;
  675. }
  676. /*No:TYPE_NATIVE_ARRAY.is_string*/
  677. /*No:TYPE_NATIVE_ARRAY.is_like_feature*/
  678. /*No:TYPE_NATIVE_ARRAY.is_like_current*/
  679. void r933make(T933* C,T0* a1,T0* a2){
  680. {T451*n=malloc(sizeof(*n));
  681. *n=M451;
  682. r451make(n,((T0*)ms18_473),a1);
  683. C->_base_class_name=(T0*)n;
  684. }
  685. C->_generic_list=se_ma701(1,a2);
  686. r7copy(((T7*)(oBC933tmp_str)),((T0*)ms18_473));
  687. r7extend(((T7*)(oBC933tmp_str)),'\133');
  688. r7append(((T7*)(oBC933tmp_str)),X291written_mark(a2));
  689. r7extend(((T7*)(oBC933tmp_str)),'\135');
  690. C->_written_mark=r902item(oBC933tmp_str);
  691. }
  692. /*No:TYPE_NATIVE_ARRAY.nb_errors*/
  693. /*No:TYPE_NATIVE_ARRAY.us_item*/
  694. int fBC364type_any=0;
  695. T0*oBC364type_any=NULL;
  696. T0* r933type_any(void){
  697. if (fBC364type_any==0){
  698. T0* R=NULL;
  699. fBC364type_any=1;
  700. {T669*n=malloc(sizeof(*n));
  701. *n=M669;
  702. r669make(n,NULL);
  703. R=(T0*)n;
  704. }
  705. oBC364type_any=R;}
  706. return oBC364type_any;}
  707. /*No:TYPE_NATIVE_ARRAY.jvm_return_code*/
  708. /*No:TYPE_NATIVE_ARRAY.jvm_xnewarray*/
  709. void r933jvm_descriptor_in(T933* C,T0* a1){
  710. r7extend(((T7*)a1),'\133');
  711. X291jvm_descriptor_in(r701item(((T701*)((((T933*)C))->_generic_list/*8*/)),1),a1);
  712. }
  713. /*No:TYPE_NATIVE_ARRAY.start_position*/
  714. /*No:TYPE_NATIVE_ARRAY.fz_inako*/
  715. /*No:TYPE_NATIVE_ARRAY.is_user_expanded*/
  716. /*No:TYPE_NATIVE_ARRAY.is_character*/
  717. /*No:TYPE_NATIVE_ARRAY.written_mark*/
  718. T0* r933to_runnable(T933* C,T0* a1){
  719. T0* R=NULL;
  720. T0* _rc=NULL;
  721. T0* _rt=NULL;
  722. T0* _elt2=NULL;
  723. T0* _elt1=NULL;
  724. /*IF*/if (((((T933*)C))->_run_type/*16*/)==((void*)(C))) {
  725. R=(T0*)C;
  726. }
  727. else {
  728. _elt1=r701item(((T701*)((((T933*)C))->_generic_list/*8*/)),1);
  729. _elt2=X291to_runnable(_elt1,a1);
  730. /*IF*/if (((_elt2)==((void*)(NULL)))||(!(X291is_run_type(_elt2)))) {
  731. /*IF*/if ((_elt2)!=((void*)(NULL))) {
  732. r683add_position(X291start_position(_elt2));
  733. }
  734. /*FI*/r933error(X291start_position(_elt1),((T0*)ms59_470));
  735. }
  736. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  737. _elt2=X291run_type(_elt2);
  738. /*IF*/if (((((T933*)C))->_run_type/*16*/)==((void*)(NULL))) {
  739. R=(T0*)C;
  740. /*IF*/if ((_elt2)==((void*)(_elt1))) {
  741. C->_run_type=(T0*)C;
  742. r933load_basic_features(C);
  743. }
  744. else {
  745. {T933*n=malloc(sizeof(*n));
  746. *n=M933;
  747. r933make_runnable(n,/*(IRF4.6start_position*/(((T451*)((T451*)((((T933*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,_elt2);
  748. C->_run_type=(T0*)n;
  749. }
  750. r933load_basic_features(((T933*)((((T933*)C))->_run_type/*16*/)));
  751. }
  752. /*FI*/}
  753. else {
  754. R=r933twin(C);
  755. {T933*n=malloc(sizeof(*n));
  756. *n=M933;
  757. r933make_runnable(n,/*(IRF4.6start_position*/(((T451*)((T451*)((((T933*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,_elt2);
  758. _rt=(T0*)n;
  759. }
  760. /*[IRF3.3set_run_type*/((((T933*)(((T933*)R))))->_run_type)=(_rt);
  761. /*]*/
  762. r933load_basic_features(((T933*)_rt));
  763. }
  764. /*FI*/}
  765. /*FI*/}
  766. /*FI*/_rc=r933run_class(((T933*)R));
  767. r355set_at_run_time(((T355*)_rc));
  768. return R;
  769. }
  770. int r933is_run_type(T933* C){
  771. int R=0;
  772. T0* _t=NULL;
  773. /*IF*/if (((((T933*)C))->_run_type/*16*/)!=((void*)(NULL))) {
  774. R=1;
  775. }
  776. else {
  777. _t=r701item(((T701*)((((T933*)C))->_generic_list/*8*/)),1);
  778. /*IF*/if ((X291is_run_type(_t))&&((X291run_type(_t))==((void*)(_t)))) {
  779. C->_run_type=(T0*)C;
  780. r933load_basic_features(C);
  781. R=1;
  782. }
  783. /*FI*/}
  784. /*FI*/return R;
  785. }
  786. /*No:TYPE_NATIVE_ARRAY.is_formal_generic*/
  787. /*No:TYPE_NATIVE_ARRAY.generic_list*/
  788. /*No:TYPE_NATIVE_ARRAY.is_real*/
  789. T0* r933twin(T933* C){
  790. T0* R=NULL;
  791. R=malloc(sizeof(*C));
  792. *((T933*)R)=*C;
  793. return R;
  794. }
  795. /*No:TYPE_NATIVE_ARRAY.is_bit*/
  796. /*No:TYPE_NATIVE_ARRAY.jvm_check_class_invariant*/
  797. /*No:TYPE_NATIVE_ARRAY.jvm_xaload*/
  798. T0* r933smallest_ancestor(T933* C,T0* a1){
  799. T0* R=NULL;
  800. T0* _rto=NULL;
  801. _rto=X291run_type(a1);
  802. /*IF*/if (X291is_a(_rto,(((T933*)C))->_run_type/*16*/)) {
  803. R=_rto;
  804. }
  805.  else if (r933is_a(((T933*)((((T933*)C))->_run_type/*16*/)),_rto)) {
  806. R=(((T933*)C))->_run_type/*16*/;
  807. }
  808. else {
  809. R=r933type_any();
  810. }
  811. /*FI*//*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
  812. /*]*/
  813. r38clear(((T38*)(oBC683positions)));
  814. /*]*/
  815. return R;
  816. }
  817. /*No:TYPE_NATIVE_ARRAY.set_run_type*/
  818. /*No:TYPE_NATIVE_ARRAY.is_boolean*/
  819. /*No:TYPE_NATIVE_ARRAY.is_double*/
  820. int r933jvm_stack_space(void){
  821. int R=0;
  822. /*IF*//*AF*//*AE*/
  823. R=1;
  824. /*FI*/return R;
  825. }
  826. T0* r933run_class(T933* C){
  827. T0* R=NULL;
  828. /*IF*/if (r933is_run_type(C)) {
  829. R=r604run_class((((T933*)C))->_run_type/*16*/);
  830. }
  831. /*FI*/return R;
  832. }
  833. T0* r933run_time_mark(T933* C){
  834. T0* R=NULL;
  835. /*IF*/if (r933is_run_type(C)) {
  836. R=(((T933*)((T933*)((((T933*)C))->_run_type/*16*/))))->_written_mark/*12*/;
  837. }
  838. /*FI*/return R;
  839. }
  840. int r933is_a_in(T933* C,T0* a1,T0* a2){
  841. int R=0;
  842. T0* _ct=NULL;
  843. T0* _t2=NULL;
  844. T0* _t1=NULL;
  845. /*IF*/if (((((T933*)C))->_written_mark/*12*/)==((void*)(X291written_mark(a1)))) {
  846. R=1;
  847. }
  848. else {
  849. _ct=(((T355*)((T355*)a2)))->_current_type/*0*/;
  850. _t1=r933to_runnable(C,_ct);
  851. _t2=X291to_runnable(a1,_ct);
  852. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  853. R=1;
  854. }
  855. else {
  856. R=X291is_a(_t1,_t2);
  857. }
  858. /*FI*/}
  859. /*FI*/return R;
  860. }
  861. T0* r933look_up_for(T933* C,T0* a1,T0* a2){
  862. T0* R=NULL;
  863. R=r605look_up_for(((T605*)(r933base_class(C))),a1,a2);
  864. return R;
  865. }
  866. /*No:TYPE_NATIVE_ARRAY.jvm_convert_to*/
  867. /*No:TYPE_NATIVE_ARRAY.expanded_initializer*/
  868. /*No:TYPE_NATIVE_ARRAY.jvm_if_x_ne*/
  869. /*No:TYPE_NATIVE_ARRAY.fz_dot*/
  870. /*No:TYPE_NATIVE_ARRAY.is_generic*/
  871. /*No:TYPE_NATIVE_ARRAY.fz_bga*/
  872. /*No:TYPE_NATIVE_ARRAY.jvm_write_local*/
  873. void r933jvm_initialize_local(int a1){
  874. /*[IRF3.4opcode_aconst_null*/r256opcode(((T256*)(oBC364code_attribute)),1,1);
  875. /*]*/
  876. /*[IRF3.6jvm_write_local*/{int b1=a1;
  877. r256opcode_astore(((T256*)(oBC364code_attribute)),b1);
  878. }/*]*/
  879. }
  880. /*No:TYPE_NATIVE_ARRAY.used_as_reference*/
  881. /*No:TYPE_NATIVE_ARRAY.is_reference*/
  882. void r933error(T0* a1,T0* a2){
  883. r683add_position(a1);
  884. r683error(((T683*)(oBC364eh)),a2);
  885. }
  886. void r933load_basic_features(T933* C){
  887. T0* _rc=NULL;
  888. T0* _rf=NULL;
  889. T0* _elt_type=NULL;
  890. _rc=r933run_class(C);
  891. r355set_at_run_time(((T355*)_rc));
  892. _elt_type=r701item(((T701*)((((T933*)C))->_generic_list/*8*/)),1);
  893. /*IF*/if (X291is_expanded(_elt_type)) {
  894. r355set_at_run_time(((T355*)(X291run_class(_elt_type))));
  895. }
  896. /*FI*/_rf=r355get_feature_with(((T355*)_rc),((T0*)ms86_473));
  897. _rf=r355get_feature_with(((T355*)_rc),((T0*)ms104_473));
  898. /*IF*/if ((X291expanded_initializer(_elt_type))!=((void*)(NULL))) {
  899. _rf=r355get_feature_with(((T355*)_rc),((T0*)ms57_473));
  900. }
  901. /*FI*/}
  902. T0* r933base_class(T933* C){
  903. T0* R=NULL;
  904. T0* _bcn=NULL;
  905. _bcn=(((T933*)C))->_base_class_name/*4*/;
  906. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  907. R=r451base_class(((T451*)_bcn));
  908. }
  909. else {
  910. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  911. r7append(((T7*)(oBC683explanation)),b1);
  912. }/*]*/
  913. r683add_type((T0*)C,((T0*)ms67_470));
  914. r683print_as_fatal_error(((T683*)(oBC364eh)));
  915. }
  916. /*FI*/return R;
  917. }
  918. /*No:TYPE_NATIVE_ARRAY.jvm_xastore*/
  919. /*No:TYPE_NATIVE_ARRAY.is_any*/
  920. /*No:TYPE_NATIVE_ARRAY.us_clear_all*/
  921. /*No:TYPE_NATIVE_ARRAY.jvm_method_flags*/
  922. /*No:TYPE_NATIVE_ARRAY.base_class_name*/
  923. /*No:TYPE_NATIVE_ARRAY.jvm_push_local*/
  924. /*No:TYPE_NATIVE_ARRAY.us_native_array*/
  925. /*No:TYPE_NATIVE_ARRAY.is_expanded*/
  926. /*No:TYPE_NATIVE_ARRAY.is_basic_eiffel_expanded*/
  927. /*No:TYPE_NATIVE_ARRAY.is_none*/
  928. /*No:TYPE_NATIVE_ARRAY.is_integer*/
  929. void r933make_runnable(T933* C,T0* a1,T0* a2){
  930. r933make(C,a1,a2);
  931. C->_run_type=(T0*)C;
  932. }
  933. T0* r886add_comment(T886* C,T0* a1){
  934. T0* R=NULL;
  935. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  936. R=(T0*)C;
  937. }
  938. else {
  939. {T529*n=malloc(sizeof(*n));
  940. *n=M529;
  941. r529make(n,(T0*)C,a1);
  942. R=(T0*)n;
  943. }
  944. }
  945. /*FI*/return R;
  946. }
  947. int r886to_integer(T886* C){
  948. int R=0;
  949. r886error((((T886*)C))->_start_position/*16*/,((T0*)ms69_470));
  950. return R;
  951. }
  952. int r886is_a(T886* C,T0* a1){
  953. int R=0;
  954. R=X291is_a(X291run_type((((T886*)C))->_result_type/*24*/),X291run_type(X662result_type(a1)));
  955. /*IF*/if (!(R)) {
  956. r683add_position((((T886*)C))->_start_position/*16*/);
  957. r886error(X662start_position(a1),((T0*)ms4_662));
  958. }
  959. /*FI*/return R;
  960. }
  961. /*No:ARGUMENT_NAME2.is_current*/
  962. int r886jvm_branch_if_false(T886* C){
  963. int R=0;
  964. r886compile_to_jvm(C);
  965. R=r256opcode_ifeq(((T256*)(oBC364code_attribute)));
  966. return R;
  967. }
  968. /*No:ARGUMENT_NAME2.static_value*/
  969. /*No:ARGUMENT_NAME2.to_string*/
  970. /*No:ARGUMENT_NAME2.compile_to_jvm_assignment*/
  971. /*No:ARGUMENT_NAME2.fz_iinaiv*/
  972. int r886jvm_branch_if_true(T886* C){
  973. int R=0;
  974. r886compile_to_jvm(C);
  975. R=r256opcode_ifne(((T256*)(oBC364code_attribute)));
  976. return R;
  977. }
  978. /*No:ARGUMENT_NAME2.set_result_type*/
  979. /*No:ARGUMENT_NAME2.start_position*/
  980. /*No:ARGUMENT_NAME2.compile_to_jvm_old*/
  981. T0* r886to_runnable(T886* C,T0* a1){
  982. T0* R=NULL;
  983. T0* _rt=NULL;
  984. T0* _rf=NULL;
  985. _rf=r604top_rf(((T604*)(oBC364small_eiffel)));
  986. _rt=r31type(((T31*)(/*X496*/((T0*)(((T832*)((T832*)_rf)))->_arguments/*20*/))),(((T886*)C))->_rank/*20*/);
  987. /*IF*/if (((((T886*)C))->_current_type/*8*/)==((void*)(NULL))) {
  988. C->_current_type=a1;
  989. C->_result_type=_rt;
  990. R=(T0*)C;
  991. }
  992. else {
  993. {T886*n=malloc(sizeof(*n));
  994. *n=M886;
  995. r886make_runnable(n,(T0*)C,a1,_rt);
  996. R=(T0*)n;
  997. }
  998. }
  999. /*FI*/return R;
  1000. }
  1001. /*No:ARGUMENT_NAME2.set_rank*/
  1002. /*No:ARGUMENT_NAME2.rank*/
  1003. /*No:ARGUMENT_NAME2.result_type*/
  1004. /*No:ARGUMENT_NAME2.is_result*/
  1005. /*No:ARGUMENT_NAME2.is_static*/
  1006. void r886standard_compile_target_to_jvm(T886* C){
  1007. r886compile_to_jvm(C);
  1008. X291jvm_check_class_invariant((((T886*)C))->_result_type/*24*/);
  1009. }
  1010. int r886compile_to_jvm_into(T886* C,T0* a1){
  1011. int R=0;
  1012. R=r886standard_compile_to_jvm_into(C,a1);
  1013. return R;
  1014. }
  1015. /*No:ARGUMENT_NAME2.compile_target_to_jvm*/
  1016. /*No:ARGUMENT_NAME2.can_be_dropped*/
  1017. /*No:ARGUMENT_NAME2.current_type*/
  1018. /*No:ARGUMENT_NAME2.jvm_assign*/
  1019. /*No:ARGUMENT_NAME2.static_value_mem*/
  1020. /*No:ARGUMENT_NAME2.is_manifest_string*/
  1021. void r886refer_to(T886* C,T0* a1,T0* a2,int a3){
  1022. T0* _declaration_name=NULL;
  1023. C->_start_position=a1;
  1024. C->_rank=a3;
  1025. _declaration_name=/*(IRF4.6name*/r65item(((T65*)((((T31*)((T31*)a2)))->_flat_list/*12*/)),a3)/*)*/;
  1026. C->_to_string=(((T873*)((T873*)_declaration_name)))->_to_string/*12*/;
  1027. C->_result_type=(((T873*)((T873*)_declaration_name)))->_result_type/*24*/;
  1028. }
  1029. /*No:ARGUMENT_NAME2.is_void*/
  1030. void r886compile_to_jvm(T886* C){
  1031. int _jvm_offset=0;
  1032. _jvm_offset=r228argument_offset_of(((T228*)(oBC364jvm)),(T0*)C);
  1033. X291jvm_push_local(X291run_type((((T886*)C))->_result_type/*24*/),_jvm_offset);
  1034. }
  1035. /*No:ARGUMENT_NAME2.is_pre_computable*/
  1036. /*No:ARGUMENT_NAME2.use_current*/
  1037. void r886error(T0* a1,T0* a2){
  1038. r683add_position(a1);
  1039. r683error(((T683*)(oBC364eh)),a2);
  1040. }
  1041. /*No:ARGUMENT_NAME2.isa_dca_inline_argument*/
  1042. int r886standard_compile_to_jvm_into(T886* C,T0* a1){
  1043. int R=0;
  1044. r886compile_to_jvm(C);
  1045. R=X291jvm_convert_to(X291run_type((((T886*)C))->_result_type/*24*/),a1);
  1046. return R;
  1047. }
  1048. /*No:ARGUMENT_NAME2.afd_check*/
  1049. void r886make_runnable(T886* C,T0* a1,T0* a2,T0* a3){
  1050. *((T886*)(C))=*((T886*)(a1));
  1051. C->_current_type=a2;
  1052. C->_result_type=a3;
  1053. }
  1054. T0* r446add_comment(T446* C,T0* a1){
  1055. T0* R=NULL;
  1056. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1057. R=(T0*)C;
  1058. }
  1059. else {
  1060. {T529*n=malloc(sizeof(*n));
  1061. *n=M529;
  1062. r529make(n,(T0*)C,a1);
  1063. R=(T0*)n;
  1064. }
  1065. }
  1066. /*FI*/return R;
  1067. }
  1068. int r446to_integer(T446* C){
  1069. int R=0;
  1070. r446error((((T446*)C))->_start_position/*20*/,((T0*)ms69_470));
  1071. return R;
  1072. }
  1073. /*No:SIMPLE_FEATURE_NAME.set_is_frozen*/
  1074. int r446is_a(T446* C,T0* a1){
  1075. int R=0;
  1076. R=X291is_a(X291run_type(/*(IRF4.6result_type*/(((T820*)((T820*)((((T446*)C))->_run_feature_2/*24*/))))->_result_type/*24*//*)*/),X291run_type(X662result_type(a1)));
  1077. /*IF*/if (!(R)) {
  1078. r683add_position((((T446*)C))->_start_position/*20*/);
  1079. r446error(X662start_position(a1),((T0*)ms4_662));
  1080. }
  1081. /*FI*/return R;
  1082. }
  1083. /*No:SIMPLE_FEATURE_NAME.is_current*/
  1084. int r446jvm_branch_if_false(T446* C){
  1085. int R=0;
  1086. r446compile_to_jvm(C);
  1087. R=r256opcode_ifeq(((T256*)(oBC364code_attribute)));
  1088. return R;
  1089. }
  1090. /*No:SIMPLE_FEATURE_NAME.static_value*/
  1091. void r446make(T446* C,T0* a1,T0* a2){
  1092. C->_to_string=r902item(a1);
  1093. C->_start_position=a2;
  1094. }
  1095. /*No:SIMPLE_FEATURE_NAME.nb_errors*/
  1096. /*No:SIMPLE_FEATURE_NAME.to_string*/
  1097. void r446compile_to_jvm_assignment(T446* C,T0* a1){
  1098. T0* _rt=NULL;
  1099. T0* _rf=NULL;
  1100. int _idx=0;
  1101. int _space=0;
  1102. _rf=(((T446*)C))->_run_feature_2/*24*/;
  1103. _rt=X291run_type(/*X496*/((T0*)(((T832*)((T832*)_rf)))->_result_type/*24*/));
  1104. /*[IRF3.4opcode_aload_0*/r256opcode(((T256*)(oBC364code_attribute)),42,1);
  1105. /*]*/
  1106. _space=X662compile_to_jvm_into((((T629*)((T629*)a1)))->_right_side/*12*/,_rt);
  1107. _idx=r95idx_fieldref(((T95*)(oBC364constant_pool)),_rf);
  1108. _space=-((_space)+(1));
  1109. r256opcode_putfield(((T256*)(oBC364code_attribute)),_idx,_space);
  1110. }
  1111. /*No:SIMPLE_FEATURE_NAME.fz_iinaiv*/
  1112. int r446jvm_branch_if_true(T446* C){
  1113. int R=0;
  1114. r446compile_to_jvm(C);
  1115. R=r256opcode_ifne(((T256*)(oBC364code_attribute)));
  1116. return R;
  1117. }
  1118. T0* r446run_feature(T446* C,T0* a1){
  1119. T0* R=NULL;
  1120. R=r355get_feature(((T355*)(X291run_class(a1))),(T0*)C);
  1121. return R;
  1122. }
  1123. /*No:SIMPLE_FEATURE_NAME.start_position*/
  1124. /*No:SIMPLE_FEATURE_NAME.compile_to_jvm_old*/
  1125. /*No:SIMPLE_FEATURE_NAME.fz_jvm_error*/
  1126. T0* r446to_runnable(T446* C,T0* a1){
  1127. T0* R=NULL;
  1128. T0* _new_name=NULL;
  1129. T0* _rf=NULL;
  1130. T0* _wbc=NULL;
  1131. /*IF*/if (((((T446*)C))->_current_type/*12*/)==((void*)(NULL))) {
  1132. C->_current_type=a1;
  1133. _wbc=r627base_class(((T627*)((((T446*)C))->_start_position/*20*/)));
  1134. _new_name=r605new_name_of(((T605*)(X291base_class(a1))),_wbc,(T0*)C);
  1135. _rf=r355get_feature(((T355*)(X291run_class((((T446*)C))->_current_type/*12*/))),_new_name);
  1136. /*IF*/if ((_rf)==((void*)(NULL))) {
  1137. r446error((((T446*)C))->_start_position/*20*/,((T0*)ms2_446));
  1138. }
  1139. else {
  1140. C->_run_feature_2=_rf;
  1141. if(NULL!=(C->_run_feature_2))switch(((T0*)C->_run_feature_2)->id) {
  1142. case 820: 
  1143. break;
  1144. default:
  1145. C->_run_feature_2=NULL;
  1146. };/*IF*/if (((((T446*)C))->_run_feature_2/*24*/)==((void*)(NULL))) {
  1147. r683add_position(X496start_position(_rf));
  1148. r446error((((T446*)C))->_start_position/*20*/,((T0*)ms3_446));
  1149. }
  1150. /*FI*/}
  1151. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1152. R=(T0*)C;
  1153. }
  1154. else {
  1155. r446error((((T446*)C))->_start_position/*20*/,((T0*)ms4_446));
  1156. }
  1157. /*FI*/}
  1158.  else if ((a1)==((void*)((((T446*)C))->_current_type/*12*/))) {
  1159. R=(T0*)C;
  1160. }
  1161. else {
  1162. {T446*n=malloc(sizeof(*n));
  1163. *n=M446;
  1164. r446make(n,(((T446*)C))->_to_string/*16*/,(((T446*)C))->_start_position/*20*/);
  1165. R=(T0*)n;
  1166. }
  1167. R=r446to_runnable(((T446*)R),a1);
  1168. }
  1169. /*FI*/return R;
  1170. }
  1171. /*No:SIMPLE_FEATURE_NAME.run_feature_2*/
  1172. /*No:SIMPLE_FEATURE_NAME.result_type*/
  1173. /*No:SIMPLE_FEATURE_NAME.is_result*/
  1174. /*No:SIMPLE_FEATURE_NAME.is_static*/
  1175. int r446compile_to_jvm_into(T446* C,T0* a1){
  1176. int R=0;
  1177. R=r446standard_compile_to_jvm_into(C,a1);
  1178. return R;
  1179. }
  1180. void r446compile_target_to_jvm(T446* C){
  1181. r683add_position((((T446*)C))->_start_position/*20*/);
  1182. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms76_470);
  1183. r683fatal_error(((T683*)(oBC364eh)),b1);
  1184. }/*]*/
  1185. }
  1186. int r446can_be_dropped(T446* C){
  1187. int R=0;
  1188. r683add_position((((T446*)C))->_start_position/*20*/);
  1189. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_446);
  1190. r683fatal_error(((T683*)(oBC364eh)),b1);
  1191. }/*]*/
  1192. return R;
  1193. }
  1194. /*No:SIMPLE_FEATURE_NAME.current_type*/
  1195. void r446jvm_assign(T446* C){
  1196. T0* _rf=NULL;
  1197. int _idx=0;
  1198. int _space=0;
  1199. /*[IRF3.4opcode_aload_0*/r256opcode(((T256*)(oBC364code_attribute)),42,1);
  1200. /*]*/
  1201. /*[IRF3.4opcode_swap*/r256opcode(((T256*)(oBC364code_attribute)),95,0);
  1202. /*]*/
  1203. _rf=(((T446*)C))->_run_feature_2/*24*/;
  1204. _idx=r95idx_fieldref(((T95*)(oBC364constant_pool)),_rf);
  1205. _space=-((X291jvm_stack_space(/*X496*/((T0*)(((T832*)((T832*)_rf)))->_result_type/*24*/)))+(1));
  1206. r256opcode_putfield(((T256*)(oBC364code_attribute)),_idx,_space);
  1207. }
  1208. /*No:SIMPLE_FEATURE_NAME.to_key*/
  1209. /*No:SIMPLE_FEATURE_NAME.static_value_mem*/
  1210. /*No:SIMPLE_FEATURE_NAME.is_manifest_string*/
  1211. /*No:SIMPLE_FEATURE_NAME.is_frozen*/
  1212. /*No:SIMPLE_FEATURE_NAME.is_void*/
  1213. void r446undefine_in(T446* C,T0* a1){
  1214. /*IF*/if ((((T446*)C))->_is_frozen/*4*/) {
  1215. r446error((((T446*)C))->_start_position/*20*/,((T0*)ms1_776));
  1216. r605fatal_undefine(((T605*)a1),(T0*)C);
  1217. }
  1218. /*FI*/}
  1219. void r446compile_to_jvm(T446* C){
  1220. r683add_position((((T446*)C))->_start_position/*20*/);
  1221. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms76_470);
  1222. r683fatal_error(((T683*)(oBC364eh)),b1);
  1223. }/*]*/
  1224. }
  1225. /*No:SIMPLE_FEATURE_NAME.is_pre_computable*/
  1226. /*No:SIMPLE_FEATURE_NAME.use_current*/
  1227. void r446error(T0* a1,T0* a2){
  1228. r683add_position(a1);
  1229. r683error(((T683*)(oBC364eh)),a2);
  1230. }
  1231. /*No:SIMPLE_FEATURE_NAME.isa_dca_inline_argument*/
  1232. /*No:SIMPLE_FEATURE_NAME.fatal_error*/
  1233. int r446standard_compile_to_jvm_into(T446* C,T0* a1){
  1234. int R=0;
  1235. r446compile_to_jvm(C);
  1236. R=X291jvm_convert_to(X291run_type(/*(IRF4.6result_type*/(((T820*)((T820*)((((T446*)C))->_run_feature_2/*24*/))))->_result_type/*24*//*)*/),a1);
  1237. return R;
  1238. }
  1239. T0* r446origin_base_class(T446* C){
  1240. T0* R=NULL;
  1241. T0* _sp=NULL;
  1242. _sp=(((T446*)C))->_start_position/*20*/;
  1243. /*IF*/if ((_sp)!=((void*)(NULL))) {
  1244. R=r627base_class(((T627*)_sp));
  1245. }
  1246. /*FI*/return R;
  1247. }
  1248. /*No:SIMPLE_FEATURE_NAME.afd_check*/
  1249. /*No:CST_ATT_UNIQUE.arguments*/
  1250. T0* r398try_to_undefine(T398* C,T0* a1,T0* a2){
  1251. T0* R=NULL;
  1252. X776undefine_in(a1,a2);
  1253. R=r398try_to_undefine_aux(C,a1,a2);
  1254. /*IF*/if ((R)!=((void*)(NULL))) {
  1255. /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T398*)C))->_clients/*20*/);
  1256. /*]*/
  1257. }
  1258. else {
  1259. r605fatal_undefine(((T605*)a2),a1);
  1260. }
  1261. /*FI*/return R;
  1262. }
  1263. /*No:CST_ATT_UNIQUE.is_deferred*/
  1264. void r398add_into(T398* C,T0* a1){
  1265. T0* _fn=NULL;
  1266. int _i=0;
  1267. C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
  1268. _i=1;
  1269. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T398*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  1270. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
  1271. /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
  1272. _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)/*)*//*)*/);
  1273. r683add_position(X776start_position(_fn));
  1274. r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
  1275. r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
  1276. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  1277. r7append(((T7*)(oBC683explanation)),b1);
  1278. }/*]*/
  1279. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1280. }
  1281. else {
  1282. r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
  1283. }
  1284. /*FI*/_i=(_i)+(1);
  1285. }
  1286. }
  1287. T0* r398try_to_undefine_aux(T398* C,T0* a1,T0* a2){
  1288. T0* R=NULL;
  1289. r683add_position(r398start_position(C));
  1290. r398error(X776start_position(a1),((T0*)ms1_321));
  1291. r605fatal_undefine(((T605*)a2),a1);
  1292. return R;
  1293. }
  1294. void r398make(T398* C,T0* a1,T0* a2){
  1295. T0* _ic=NULL;
  1296. int _i=0;
  1297. r398make_e_feature(C,a1,a2);
  1298. {T28*n=malloc(sizeof(*n));
  1299. *n=M28;
  1300. r28make(n,1,/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T398*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/);
  1301. C->_values=(T0*)n;
  1302. }
  1303. _i=1;
  1304. while (!((_i)>((((T28*)((T28*)((((T398*)C))->_values/*24*/))))->_upper/*12*/))) {
  1305. {T342*n=malloc(sizeof(*n));
  1306. *n=M342;
  1307. r342make(n,r604next_unique(((T604*)(oBC364small_eiffel))),NULL);
  1308. _ic=(T0*)n;
  1309. }
  1310. /*[IRF3.6put*/{T28* C1=((T28*)((((T398*)C))->_values/*24*/));
  1311. T0* b1=_ic;
  1312. int b2=_i;
  1313. ((((T28*)C1))->_storage/*4*/)[(b2)-((((T28*)C1))->_lower/*16*/)]=(b1);
  1314. }/*]*/
  1315. _i=(_i)+(1);
  1316. }
  1317. }
  1318. /*No:CST_ATT_UNIQUE.nb_errors*/
  1319. /*No:CST_ATT_UNIQUE.set_header_comment*/
  1320. /*No:CST_ATT_UNIQUE.values*/
  1321. T0* r398start_position(T398* C){
  1322. T0* R=NULL;
  1323. R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  1324. return R;
  1325. }
  1326. T0* r398to_run_feature(T398* C,T0* a1,T0* a2){
  1327. T0* R=NULL;
  1328. T0* _rc=NULL;
  1329. _rc=X291run_class(a1);
  1330. R=r355at(((T355*)_rc),a2);
  1331. if(NULL!=(R))switch(((T0*)R)->id) {
  1332. case 808: 
  1333. break;
  1334. default:
  1335. R=NULL;
  1336. };/*IF*/if ((R)==((void*)(NULL))) {
  1337. {T808*n=malloc(sizeof(*n));
  1338. *n=M808;
  1339. r808make(n,a1,a2,(T0*)C);
  1340. R=(T0*)n;
  1341. }
  1342. }
  1343. /*FI*/return R;
  1344. }
  1345. /*No:CST_ATT_UNIQUE.ensure_assertion*/
  1346. /*No:CST_ATT_UNIQUE.code_require*/
  1347. /*No:CST_ATT_UNIQUE.result_type*/
  1348. /*No:CST_ATT_UNIQUE.em1*/
  1349. /*No:CST_ATT_UNIQUE.set_clients*/
  1350. /*No:CST_ATT_UNIQUE.em2*/
  1351. /*No:CST_ATT_UNIQUE.value*/
  1352. /*No:CST_ATT_UNIQUE.require_assertion*/
  1353. /*No:CST_ATT_UNIQUE.names*/
  1354. int r398can_hide(T398* C,T0* a1,T0* a2){
  1355. int R=0;
  1356. /*IF*/if (((((T398*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  1357. /*IF*/if ((((((T398*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  1358. r683add_position(X359start_position(a1));
  1359. r398error(r398start_position(C),((T0*)ms5_359));
  1360. }
  1361. /*FI*/}
  1362. /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
  1363. /*IF*/{/*AT*/r683add_position(X359start_position(a1));
  1364. r398error(r398start_position(C),((T0*)ms6_359));
  1365. }
  1366. /*FI*/}
  1367. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1368. /*IF*/if (((((T398*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  1369. /*IF*/if (!(X291is_a_in((((T398*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  1370. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  1371. r7append(((T7*)(oBC683explanation)),b1);
  1372. }/*]*/
  1373. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  1374. r7append(((T7*)(oBC683explanation)),b1);
  1375. }/*]*/
  1376. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1377. }
  1378. /*FI*/}
  1379. /*FI*/}
  1380. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1381. /*IF*//*AF*//*AE*/
  1382. /*FI*/}
  1383. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  1384. return R;
  1385. }
  1386. /*No:CST_ATT_UNIQUE.header_comment*/
  1387. int r398is_merge_with(T398* C,T0* a1,T0* a2){
  1388. int R=0;
  1389. /*IF*/if (((((T398*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  1390. /*IF*/if ((((((T398*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  1391. r683add_position(X359start_position(a1));
  1392. r398error(r398start_position(C),((T0*)ms2_359));
  1393. }
  1394. /*FI*/}
  1395. /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
  1396. /*IF*/{/*AT*/r683add_position(X359start_position(a1));
  1397. r398error(r398start_position(C),((T0*)ms3_359));
  1398. }
  1399. /*FI*/}
  1400. /*FI*//*IF*/if (((((T398*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  1401. /*IF*/if (!(X291is_a_in((((T398*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  1402. r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
  1403. }
  1404. /*FI*/}
  1405. /*FI*//*IF*//*AF*//*AE*/
  1406. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  1407. return R;
  1408. }
  1409. /*No:CST_ATT_UNIQUE.fz_dot*/
  1410. /*No:CST_ATT_UNIQUE.first_name*/
  1411. /*No:CST_ATT_UNIQUE.clients*/
  1412. void r398collect_for(int a1){
  1413. /*IF*/if ((a1)==(1001)) {
  1414. /*IF*//*AF*//*AE*/
  1415. /*FI*/}
  1416. else {
  1417. /*IF*//*AF*//*AE*/
  1418. /*FI*/}
  1419. /*FI*/}
  1420. void r398error(T0* a1,T0* a2){
  1421. r683add_position(a1);
  1422. r683error(((T683*)(oBC364eh)),a2);
  1423. }
  1424. /*No:CST_ATT_UNIQUE.base_class*/
  1425. void r398make_e_feature(T398* C,T0* a1,T0* a2){
  1426. C->_names=a1;
  1427. C->_result_type=a2;
  1428. }
  1429. /*No:INSTRUCTION_WITH_COMMENT.add_comment*/
  1430. void r46make(T46* C,T0* a1,T0* a2){
  1431. C->_instruction=a1;
  1432. C->_comment=a2;
  1433. }
  1434. /*No:INSTRUCTION_WITH_COMMENT.instruction*/
  1435. T0* r46start_position(T46* C){
  1436. T0* R=NULL;
  1437. R=X465start_position((((T46*)C))->_instruction/*8*/);
  1438. return R;
  1439. }
  1440. /*No:INSTRUCTION_WITH_COMMENT.comment*/
  1441. T0* r46to_runnable(T46* C,T0* a1){
  1442. T0* R=NULL;
  1443. T0* _ri=NULL;
  1444. /*IF*/if (((((T46*)C))->_run_compound/*4*/)==((void*)(NULL))) {
  1445. C->_run_compound=a1;
  1446. _ri=X465to_runnable((((T46*)C))->_instruction/*8*/,a1);
  1447. /*IF*/if ((_ri)==((void*)(NULL))) {
  1448. r46error(X465start_position((((T46*)C))->_instruction/*8*/),((T0*)ms1_46));
  1449. }
  1450. else {
  1451. C->_instruction=_ri;
  1452. R=(T0*)C;
  1453. }
  1454. /*FI*/}
  1455. else {
  1456. {T46*n=malloc(sizeof(*n));
  1457. *n=M46;
  1458. r46make(n,(((T46*)C))->_instruction/*8*/,(((T46*)C))->_comment/*12*/);
  1459. R=(T0*)n;
  1460. }
  1461. R=r46to_runnable(((T46*)R),a1);
  1462. }
  1463. /*FI*/return R;
  1464. }
  1465. /*No:INSTRUCTION_WITH_COMMENT.run_compound*/
  1466. void r46compile_to_jvm(T46* C){
  1467. X465compile_to_jvm((((T46*)C))->_instruction/*8*/);
  1468. }
  1469. int r46is_pre_computable(T46* C){
  1470. int R=0;
  1471. R=X465is_pre_computable((((T46*)C))->_instruction/*8*/);
  1472. return R;
  1473. }
  1474. int r46use_current(T46* C){
  1475. int R=0;
  1476. R=X465use_current((((T46*)C))->_instruction/*8*/);
  1477. return R;
  1478. }
  1479. void r46error(T0* a1,T0* a2){
  1480. r683add_position(a1);
  1481. r683error(((T683*)(oBC364eh)),a2);
  1482. }
  1483. /*No:INSTRUCTION_WITH_COMMENT.end_mark_comment*/
  1484. void r46afd_check(T46* C){
  1485. X465afd_check((((T46*)C))->_instruction/*8*/);
  1486. }
  1487.  
  1488.