home *** CD-ROM | disk | FTP | other *** search
/ Amiga ACS 1998 #4 / amigaacscoverdisc1998-041998.iso / utilities / shareware / dev / ppcsmalleiffel / source.lha / bin_c / pretty13.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  50.9 KB  |  1,582 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 "pretty.h"
  9. /*No:RUN_FEATURE_7.arguments*/
  10. /*No:RUN_FEATURE_7.us_copy*/
  11. /*No:RUN_FEATURE_7.actuals_clients*/
  12. void r906make(T906* C,T0* a1,T0* a2,T0* a3){
  13. C->_current_type=a1;
  14. C->_name=a2;
  15. C->_base_feature=a3;
  16. r199put(((T199*)((((T368*)((T368*)(r906run_class(C)))))->_feature_dictionary/*24*/)),(T0*)C,X776to_key(a2));
  17. r604incr_magic_count(((T604*)(oBC364small_eiffel)));
  18. C->_use_current_state=1015;
  19. r604push(((T604*)(oBC364small_eiffel)),(T0*)C);
  20. r906initialize(C);
  21. r604pop(((T604*)(oBC364small_eiffel)));
  22. }
  23. /*No:RUN_FEATURE_7.name*/
  24. int r906arg_count(T906* C){
  25. int R=0;
  26. /*IF*/if (((((T906*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  27. R=/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T906*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/;
  28. }
  29. /*FI*/return R;
  30. }
  31. /*No:RUN_FEATURE_7.local_vars*/
  32. /*No:RUN_FEATURE_7.base_feature*/
  33. /*No:RUN_FEATURE_7.start_position*/
  34. /*No:RUN_FEATURE_7.ensure_assertion*/
  35. int r906is_exported_in(T906* C,T0* a1){
  36. int R=0;
  37. R=r636gives_permission_to(((T636*)(r906clients(C))),a1);
  38. return R;
  39. }
  40. /*No:RUN_FEATURE_7.result_type*/
  41. void r906add_client(T906* C,T0* a1){
  42. int _i=0;
  43. /*IF*/if (((((T906*)C))->_actuals_clients/*12*/)==((void*)(NULL))) {
  44. {T187*n=malloc(sizeof(*n));
  45. *n=M187;
  46. r187with_capacity(n,4);
  47. C->_actuals_clients=(T0*)n;
  48. }
  49. r187add_last(((T187*)((((T906*)C))->_actuals_clients/*12*/)),a1);
  50. }
  51. else {
  52. _i=r187fast_index_of(((T187*)((((T906*)C))->_actuals_clients/*12*/)),a1);
  53. /*IF*/if ((_i)>((((T187*)((T187*)((((T906*)C))->_actuals_clients/*12*/))))->_upper/*8*/)) {
  54. r187add_last(((T187*)((((T906*)C))->_actuals_clients/*12*/)),a1);
  55. }
  56. /*FI*/}
  57. /*FI*/r368add_client(((T368*)(r906run_class(C))),a1);
  58. }
  59. /*No:RUN_FEATURE_7.require_assertion*/
  60. /*No:RUN_FEATURE_7.use_current_state*/
  61. /*No:RUN_FEATURE_7.current_type*/
  62. T0* r906run_class(T906* C){
  63. T0* R=NULL;
  64. R=X291run_class((((T906*)C))->_current_type/*4*/);
  65. return R;
  66. }
  67. /*No:RUN_FEATURE_7.ucs_not_computed*/
  68. T0* r906clients(T906* C){
  69. T0* R=NULL;
  70. T0* _bfbc=NULL;
  71. T0* _bc=NULL;
  72. /*IF*/if (((((T906*)C))->_clients_memory/*8*/)==((void*)(NULL))) {
  73. _bc=X291base_class((((T906*)C))->_current_type/*4*/);
  74. _bfbc=(((T883*)((T883*)((((T906*)C))->_base_feature/*40*/))))->_base_class/*4*/;
  75. /*IF*/if ((_bc)==((void*)(_bfbc))) {
  76. R=(((T883*)((T883*)((((T906*)C))->_base_feature/*40*/))))->_clients/*20*/;
  77. }
  78. else {
  79. R=r605clients_for(((T605*)_bc),(((T906*)C))->_name/*16*/);
  80. }
  81. /*FI*/C->_clients_memory=R;
  82. }
  83. else {
  84. R=(((T906*)C))->_clients_memory/*8*/;
  85. }
  86. /*FI*/return R;
  87. }
  88. /*No:RUN_FEATURE_7.clients_memory*/
  89. void r906initialize(T906* C){
  90. C->_arguments=(((T883*)((T883*)((((T906*)C))->_base_feature/*40*/))))->_arguments/*24*/;
  91. /*IF*/if ((((((T906*)C))->_arguments/*20*/)!=((void*)(NULL)))&&((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T906*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)>(0))) {
  92. C->_arguments=r31to_runnable(((T31*)((((T906*)C))->_arguments/*20*/)),(((T906*)C))->_current_type/*4*/);
  93. }
  94. /*FI*//*IF*/if (r590require_check(((T590*)(oBC364run_control)))) {
  95. /*IF*/if (((((T0*)ms64_473))==((void*)(X776to_string((((T906*)C))->_name/*16*/))))&&(X291is_expanded((((T906*)C))->_current_type/*4*/))) {
  96. }
  97. else {
  98. C->_require_assertion=r883run_require((T0*)C);
  99. }
  100. /*FI*/}
  101. /*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
  102. C->_ensure_assertion=r883run_ensure((T0*)C);
  103. }
  104. /*FI*/}
  105. T0* r349to_runnable_integer(T349* C,T0* a1){
  106. T0* R=NULL;
  107. T0* _e=NULL;
  108. /*IF*/if (((((T349*)C))->_e_when/*4*/)==((void*)(NULL))) {
  109. C->_e_when=a1;
  110. _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*/)))/*)*//*)*//*)*/);
  111. /*IF*/if (((_e)!=((void*)(NULL)))&&(X291is_integer(X662result_type(_e)))) {
  112. C->_expression=_e;
  113. C->_expression_value=X662to_integer((((T349*)C))->_expression/*8*/);
  114. r843add_when_item_1(((T843*)((((T349*)C))->_e_when/*4*/)),(T0*)C);
  115. }
  116. else {
  117. r349error(X662start_position((((T349*)C))->_expression/*8*/),((T0*)ms60_470));
  118. }
  119. /*FI*/R=(T0*)C;
  120. }
  121. else {
  122. {T349*n=malloc(sizeof(*n));
  123. *n=M349;
  124. /*[IRF3.3make*/((((T349*)(n)))->_expression)=((((T349*)C))->_expression/*8*/);
  125. /*]*/
  126. R=(T0*)n;
  127. }
  128. R=r349to_runnable_integer(((T349*)R),a1);
  129. }
  130. /*FI*/return R;
  131. }
  132. /*No:WHEN_ITEM_1.make*/
  133. /*No:WHEN_ITEM_1.expression*/
  134. T0* r349start_position(T349* C){
  135. T0* R=NULL;
  136. R=X662start_position((((T349*)C))->_expression/*8*/);
  137. return R;
  138. }
  139. /*No:WHEN_ITEM_1.clear_e_when*/
  140. /*No:WHEN_ITEM_1.expression_value*/
  141. /*No:WHEN_ITEM_1.fz_bcv*/
  142. T0* r349twin(T349* C){
  143. T0* R=NULL;
  144. R=malloc(sizeof(*C));
  145. *((T349*)R)=*C;
  146. return R;
  147. }
  148. void r349pretty_print(T349* C){
  149. X662pretty_print((((T349*)C))->_expression/*8*/);
  150. }
  151. /*No:WHEN_ITEM_1.current_type*/
  152. /*No:WHEN_ITEM_1.fz_biv*/
  153. void r349error(T0* a1,T0* a2){
  154. r683add_position(a1);
  155. r683error(((T683*)(oBC364eh)),a2);
  156. }
  157. T0* r349to_runnable_character(T349* C,T0* a1){
  158. T0* R=NULL;
  159. T0* _e=NULL;
  160. /*IF*/if (((((T349*)C))->_e_when/*4*/)==((void*)(NULL))) {
  161. C->_e_when=a1;
  162. _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*/)))/*)*//*)*//*)*/);
  163. /*IF*/if (((_e)!=((void*)(NULL)))&&(X291is_character(X662result_type(_e)))) {
  164. C->_expression=_e;
  165. C->_expression_value=X662to_integer((((T349*)C))->_expression/*8*/);
  166. r843add_when_item_1(((T843*)((((T349*)C))->_e_when/*4*/)),(T0*)C);
  167. }
  168. else {
  169. r349error(X662start_position((((T349*)C))->_expression/*8*/),((T0*)ms58_470));
  170. }
  171. /*FI*/R=(T0*)C;
  172. }
  173. else {
  174. {T349*n=malloc(sizeof(*n));
  175. *n=M349;
  176. /*[IRF3.3make*/((((T349*)(n)))->_expression)=((((T349*)C))->_expression/*8*/);
  177. /*]*/
  178. R=(T0*)n;
  179. }
  180. R=r349to_runnable_character(((T349*)R),a1);
  181. }
  182. /*FI*/return R;
  183. }
  184. /*No:WHEN_ITEM_1.e_when*/
  185. /*No:TYPE_NATIVE_ARRAY.us_put*/
  186. /*No:TYPE_NATIVE_ARRAY.has_creation*/
  187. /*No:TYPE_NATIVE_ARRAY.is_anchored*/
  188. /*No:TYPE_NATIVE_ARRAY.is_array*/
  189. int r933is_a(T933* C,T0* a1){
  190. int R=0;
  191. R=(r933run_time_mark(C))==((void*)(X291run_time_mark(a1)));
  192. /*IF*/if (!(R)) {
  193. r683add_type((T0*)C,((T0*)ms71_470));
  194. r683add_type(a1,((T0*)ms67_470));
  195. }
  196. /*FI*/return R;
  197. }
  198. T0*oBC933tmp_str=NULL;
  199. /*No:TYPE_NATIVE_ARRAY.is_pointer*/
  200. /*No:TYPE_NATIVE_ARRAY.run_type*/
  201. /*No:TYPE_NATIVE_ARRAY.is_string*/
  202. /*No:TYPE_NATIVE_ARRAY.is_like_feature*/
  203. /*No:TYPE_NATIVE_ARRAY.is_like_current*/
  204. void r933make(T933* C,T0* a1,T0* a2){
  205. {T451*n=malloc(sizeof(*n));
  206. *n=M451;
  207. r451make(n,((T0*)ms18_473),a1);
  208. C->_base_class_name=(T0*)n;
  209. }
  210. C->_generic_list=se_ma701(1,a2);
  211. r7copy(((T7*)(oBC933tmp_str)),((T0*)ms18_473));
  212. r7extend(((T7*)(oBC933tmp_str)),'\133');
  213. r7append(((T7*)(oBC933tmp_str)),X291written_mark(a2));
  214. r7extend(((T7*)(oBC933tmp_str)),'\135');
  215. C->_written_mark=r902item(oBC933tmp_str);
  216. }
  217. /*No:TYPE_NATIVE_ARRAY.nb_errors*/
  218. /*No:TYPE_NATIVE_ARRAY.us_item*/
  219. int fBC364type_any=0;
  220. T0*oBC364type_any=NULL;
  221. T0* r933type_any(void){
  222. if (fBC364type_any==0){
  223. T0* R=NULL;
  224. fBC364type_any=1;
  225. {T669*n=malloc(sizeof(*n));
  226. *n=M669;
  227. r669make(n,NULL);
  228. R=(T0*)n;
  229. }
  230. oBC364type_any=R;}
  231. return oBC364type_any;}
  232. /*No:TYPE_NATIVE_ARRAY.start_position*/
  233. /*No:TYPE_NATIVE_ARRAY.fz_inako*/
  234. /*No:TYPE_NATIVE_ARRAY.is_character*/
  235. /*No:TYPE_NATIVE_ARRAY.written_mark*/
  236. T0* r933to_runnable(T933* C,T0* a1){
  237. T0* R=NULL;
  238. T0* _rc=NULL;
  239. T0* _rt=NULL;
  240. T0* _elt2=NULL;
  241. T0* _elt1=NULL;
  242. /*IF*/if (((((T933*)C))->_run_type/*16*/)==((void*)(C))) {
  243. R=(T0*)C;
  244. }
  245. else {
  246. _elt1=r701item(((T701*)((((T933*)C))->_generic_list/*8*/)),1);
  247. _elt2=X291to_runnable(_elt1,a1);
  248. /*IF*/if (((_elt2)==((void*)(NULL)))||(!(X291is_run_type(_elt2)))) {
  249. /*IF*/if ((_elt2)!=((void*)(NULL))) {
  250. r683add_position(X291start_position(_elt2));
  251. }
  252. /*FI*/r933error(X291start_position(_elt1),((T0*)ms59_470));
  253. }
  254. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  255. _elt2=X291run_type(_elt2);
  256. /*IF*/if (((((T933*)C))->_run_type/*16*/)==((void*)(NULL))) {
  257. R=(T0*)C;
  258. /*IF*/if ((_elt2)==((void*)(_elt1))) {
  259. C->_run_type=(T0*)C;
  260. r933load_basic_features(C);
  261. }
  262. else {
  263. {T933*n=malloc(sizeof(*n));
  264. *n=M933;
  265. r933make_runnable(n,/*(IRF4.6start_position*/(((T451*)((T451*)((((T933*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,_elt2);
  266. C->_run_type=(T0*)n;
  267. }
  268. r933load_basic_features(((T933*)((((T933*)C))->_run_type/*16*/)));
  269. }
  270. /*FI*/}
  271. else {
  272. R=r933twin(C);
  273. {T933*n=malloc(sizeof(*n));
  274. *n=M933;
  275. r933make_runnable(n,/*(IRF4.6start_position*/(((T451*)((T451*)((((T933*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,_elt2);
  276. _rt=(T0*)n;
  277. }
  278. /*[IRF3.3set_run_type*/((((T933*)(((T933*)R))))->_run_type)=(_rt);
  279. /*]*/
  280. r933load_basic_features(((T933*)_rt));
  281. }
  282. /*FI*/}
  283. /*FI*/}
  284. /*FI*/_rc=r933run_class(((T933*)R));
  285. r368set_at_run_time(((T368*)_rc));
  286. return R;
  287. }
  288. int r933is_run_type(T933* C){
  289. int R=0;
  290. T0* _t=NULL;
  291. /*IF*/if (((((T933*)C))->_run_type/*16*/)!=((void*)(NULL))) {
  292. R=1;
  293. }
  294. else {
  295. _t=r701item(((T701*)((((T933*)C))->_generic_list/*8*/)),1);
  296. /*IF*/if ((X291is_run_type(_t))&&((X291run_type(_t))==((void*)(_t)))) {
  297. C->_run_type=(T0*)C;
  298. r933load_basic_features(C);
  299. R=1;
  300. }
  301. /*FI*/}
  302. /*FI*/return R;
  303. }
  304. /*No:TYPE_NATIVE_ARRAY.is_formal_generic*/
  305. /*No:TYPE_NATIVE_ARRAY.generic_list*/
  306. /*No:TYPE_NATIVE_ARRAY.is_real*/
  307. T0* r933twin(T933* C){
  308. T0* R=NULL;
  309. R=malloc(sizeof(*C));
  310. *((T933*)R)=*C;
  311. return R;
  312. }
  313. /*No:TYPE_NATIVE_ARRAY.is_bit*/
  314. /*No:TYPE_NATIVE_ARRAY.pretty_print*/
  315. T0* r933smallest_ancestor(T933* C,T0* a1){
  316. T0* R=NULL;
  317. T0* _rto=NULL;
  318. _rto=X291run_type(a1);
  319. /*IF*/if (X291is_a(_rto,(((T933*)C))->_run_type/*16*/)) {
  320. R=_rto;
  321. }
  322.  else if (r933is_a(((T933*)((((T933*)C))->_run_type/*16*/)),_rto)) {
  323. R=(((T933*)C))->_run_type/*16*/;
  324. }
  325. else {
  326. R=r933type_any();
  327. }
  328. /*FI*//*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
  329. /*]*/
  330. r38clear(((T38*)(oBC683positions)));
  331. /*]*/
  332. return R;
  333. }
  334. /*No:TYPE_NATIVE_ARRAY.is_boolean*/
  335. /*No:TYPE_NATIVE_ARRAY.set_run_type*/
  336. /*No:TYPE_NATIVE_ARRAY.is_double*/
  337. T0* r933run_class(T933* C){
  338. T0* R=NULL;
  339. /*IF*/if (r933is_run_type(C)) {
  340. R=r604run_class((((T933*)C))->_run_type/*16*/);
  341. }
  342. /*FI*/return R;
  343. }
  344. T0* r933run_time_mark(T933* C){
  345. T0* R=NULL;
  346. /*IF*/if (r933is_run_type(C)) {
  347. R=(((T933*)((T933*)((((T933*)C))->_run_type/*16*/))))->_written_mark/*12*/;
  348. }
  349. /*FI*/return R;
  350. }
  351. int r933is_a_in(T933* C,T0* a1,T0* a2){
  352. int R=0;
  353. T0* _ct=NULL;
  354. T0* _t2=NULL;
  355. T0* _t1=NULL;
  356. /*IF*/if (((((T933*)C))->_written_mark/*12*/)==((void*)(X291written_mark(a1)))) {
  357. R=1;
  358. }
  359. else {
  360. _ct=(((T368*)((T368*)a2)))->_current_type/*0*/;
  361. _t1=r933to_runnable(C,_ct);
  362. _t2=X291to_runnable(a1,_ct);
  363. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  364. R=1;
  365. }
  366. else {
  367. R=X291is_a(_t1,_t2);
  368. }
  369. /*FI*/}
  370. /*FI*/return R;
  371. }
  372. T0* r933look_up_for(T933* C,T0* a1,T0* a2){
  373. T0* R=NULL;
  374. R=r605look_up_for(((T605*)(r933base_class(C))),a1,a2);
  375. return R;
  376. }
  377. /*No:TYPE_NATIVE_ARRAY.expanded_initializer*/
  378. /*No:TYPE_NATIVE_ARRAY.fz_dot*/
  379. /*No:TYPE_NATIVE_ARRAY.is_generic*/
  380. /*No:TYPE_NATIVE_ARRAY.fz_bga*/
  381. /*No:TYPE_NATIVE_ARRAY.used_as_reference*/
  382. /*No:TYPE_NATIVE_ARRAY.is_reference*/
  383. void r933error(T0* a1,T0* a2){
  384. r683add_position(a1);
  385. r683error(((T683*)(oBC364eh)),a2);
  386. }
  387. void r933load_basic_features(T933* C){
  388. T0* _rc=NULL;
  389. T0* _rf=NULL;
  390. T0* _elt_type=NULL;
  391. _rc=r933run_class(C);
  392. r368set_at_run_time(((T368*)_rc));
  393. _elt_type=r701item(((T701*)((((T933*)C))->_generic_list/*8*/)),1);
  394. /*IF*/if (X291is_expanded(_elt_type)) {
  395. r368set_at_run_time(((T368*)(X291run_class(_elt_type))));
  396. }
  397. /*FI*/_rf=r368get_feature_with(((T368*)_rc),((T0*)ms86_473));
  398. _rf=r368get_feature_with(((T368*)_rc),((T0*)ms104_473));
  399. /*IF*/if ((X291expanded_initializer(_elt_type))!=((void*)(NULL))) {
  400. _rf=r368get_feature_with(((T368*)_rc),((T0*)ms57_473));
  401. }
  402. /*FI*/}
  403. T0* r933base_class(T933* C){
  404. T0* R=NULL;
  405. T0* _bcn=NULL;
  406. _bcn=(((T933*)C))->_base_class_name/*4*/;
  407. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  408. R=r451base_class(((T451*)_bcn));
  409. }
  410. else {
  411. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  412. r7append(((T7*)(oBC683explanation)),b1);
  413. }/*]*/
  414. r683add_type((T0*)C,((T0*)ms67_470));
  415. r683print_as_fatal_error(((T683*)(oBC364eh)));
  416. }
  417. /*FI*/return R;
  418. }
  419. /*No:TYPE_NATIVE_ARRAY.is_any*/
  420. /*No:TYPE_NATIVE_ARRAY.us_clear_all*/
  421. /*No:TYPE_NATIVE_ARRAY.base_class_name*/
  422. /*No:TYPE_NATIVE_ARRAY.us_native_array*/
  423. /*No:TYPE_NATIVE_ARRAY.is_expanded*/
  424. /*No:TYPE_NATIVE_ARRAY.is_basic_eiffel_expanded*/
  425. /*No:TYPE_NATIVE_ARRAY.is_none*/
  426. /*No:TYPE_NATIVE_ARRAY.is_integer*/
  427. void r933make_runnable(T933* C,T0* a1,T0* a2){
  428. r933make(C,a1,a2);
  429. C->_run_type=(T0*)C;
  430. }
  431. T0* r886add_comment(T886* C,T0* a1){
  432. T0* R=NULL;
  433. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  434. R=(T0*)C;
  435. }
  436. else {
  437. {T529*n=malloc(sizeof(*n));
  438. *n=M529;
  439. r529make(n,(T0*)C,a1);
  440. R=(T0*)n;
  441. }
  442. }
  443. /*FI*/return R;
  444. }
  445. int r886to_integer(T886* C){
  446. int R=0;
  447. r886error((((T886*)C))->_start_position/*12*/,((T0*)ms69_470));
  448. return R;
  449. }
  450. int r886is_a(T886* C,T0* a1){
  451. int R=0;
  452. R=X291is_a(X291run_type((((T886*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
  453. /*IF*/if (!(R)) {
  454. r683add_position((((T886*)C))->_start_position/*12*/);
  455. r886error(X662start_position(a1),((T0*)ms4_662));
  456. }
  457. /*FI*/return R;
  458. }
  459. /*No:ARGUMENT_NAME2.is_current*/
  460. void r886print_as_target(T886* C){
  461. r238put_string(((T238*)(oBC364fmt)),(((T886*)C))->_to_string/*8*/);
  462. r238put_character(((T238*)(oBC364fmt)),'\56');
  463. }
  464. /*No:ARGUMENT_NAME2.to_string*/
  465. /*No:ARGUMENT_NAME2.fz_iinaiv*/
  466. /*No:ARGUMENT_NAME2.set_result_type*/
  467. /*No:ARGUMENT_NAME2.start_position*/
  468. /*No:ARGUMENT_NAME2.precedence*/
  469. T0* r886to_runnable(T886* C,T0* a1){
  470. T0* R=NULL;
  471. T0* _rt=NULL;
  472. T0* _rf=NULL;
  473. _rf=r604top_rf(((T604*)(oBC364small_eiffel)));
  474. _rt=r31type(((T31*)(/*X496*/((T0*)(((T808*)((T808*)_rf)))->_arguments/*20*/))),(((T886*)C))->_rank/*16*/);
  475. /*IF*/if (((((T886*)C))->_current_type/*4*/)==((void*)(NULL))) {
  476. C->_current_type=a1;
  477. C->_result_type=_rt;
  478. R=(T0*)C;
  479. }
  480. else {
  481. {T886*n=malloc(sizeof(*n));
  482. *n=M886;
  483. r886make_runnable(n,(T0*)C,a1,_rt);
  484. R=(T0*)n;
  485. }
  486. }
  487. /*FI*/return R;
  488. }
  489. /*No:ARGUMENT_NAME2.set_rank*/
  490. /*No:ARGUMENT_NAME2.bracketed_pretty_print*/
  491. /*No:ARGUMENT_NAME2.rank*/
  492. /*No:ARGUMENT_NAME2.result_type*/
  493. /*No:ARGUMENT_NAME2.atomic_precedence*/
  494. /*No:ARGUMENT_NAME2.pretty_print*/
  495. /*No:ARGUMENT_NAME2.current_type*/
  496. /*No:ARGUMENT_NAME2.is_manifest_string*/
  497. void r886refer_to(T886* C,T0* a1,T0* a2,int a3){
  498. T0* _declaration_name=NULL;
  499. C->_start_position=a1;
  500. C->_rank=a3;
  501. _declaration_name=/*(IRF4.6name*/r65item(((T65*)((((T31*)((T31*)a2)))->_flat_list/*12*/)),a3)/*)*/;
  502. C->_to_string=(((T873*)((T873*)_declaration_name)))->_to_string/*8*/;
  503. C->_result_type=(((T873*)((T873*)_declaration_name)))->_result_type/*20*/;
  504. }
  505. /*No:ARGUMENT_NAME2.is_void*/
  506. void r886error(T0* a1,T0* a2){
  507. r683add_position(a1);
  508. r683error(((T683*)(oBC364eh)),a2);
  509. }
  510. void r886make_runnable(T886* C,T0* a1,T0* a2,T0* a3){
  511. *((T886*)(C))=*((T886*)(a1));
  512. C->_current_type=a2;
  513. C->_result_type=a3;
  514. }
  515. T0* r446add_comment(T446* C,T0* a1){
  516. T0* R=NULL;
  517. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  518. R=(T0*)C;
  519. }
  520. else {
  521. {T529*n=malloc(sizeof(*n));
  522. *n=M529;
  523. r529make(n,(T0*)C,a1);
  524. R=(T0*)n;
  525. }
  526. }
  527. /*FI*/return R;
  528. }
  529. int r446to_integer(T446* C){
  530. int R=0;
  531. r446error((((T446*)C))->_start_position/*16*/,((T0*)ms69_470));
  532. return R;
  533. }
  534. /*No:SIMPLE_FEATURE_NAME.set_is_frozen*/
  535. int r446is_a(T446* C,T0* a1){
  536. int R=0;
  537. R=X291is_a(X291run_type(/*(IRF4.6result_type*/(((T820*)((T820*)((((T446*)C))->_run_feature_2/*20*/))))->_result_type/*24*//*)*/),X291run_type(X662result_type(a1)));
  538. /*IF*/if (!(R)) {
  539. r683add_position((((T446*)C))->_start_position/*16*/);
  540. r446error(X662start_position(a1),((T0*)ms4_662));
  541. }
  542. /*FI*/return R;
  543. }
  544. /*No:SIMPLE_FEATURE_NAME.is_current*/
  545. void r446make(T446* C,T0* a1,T0* a2){
  546. C->_to_string=r902item(a1);
  547. C->_start_position=a2;
  548. }
  549. void r446print_as_target(T446* C){
  550. r238put_string(((T238*)(oBC364fmt)),(((T446*)C))->_to_string/*12*/);
  551. r238put_character(((T238*)(oBC364fmt)),'\56');
  552. }
  553. /*No:SIMPLE_FEATURE_NAME.nb_errors*/
  554. /*No:SIMPLE_FEATURE_NAME.to_string*/
  555. /*No:SIMPLE_FEATURE_NAME.fz_iinaiv*/
  556. T0* r446run_feature(T446* C,T0* a1){
  557. T0* R=NULL;
  558. R=r368get_feature(((T368*)(X291run_class(a1))),(T0*)C);
  559. return R;
  560. }
  561. /*No:SIMPLE_FEATURE_NAME.start_position*/
  562. /*No:SIMPLE_FEATURE_NAME.precedence*/
  563. T0* r446to_runnable(T446* C,T0* a1){
  564. T0* R=NULL;
  565. T0* _new_name=NULL;
  566. T0* _rf=NULL;
  567. T0* _wbc=NULL;
  568. /*IF*/if (((((T446*)C))->_current_type/*8*/)==((void*)(NULL))) {
  569. C->_current_type=a1;
  570. _wbc=r627base_class(((T627*)((((T446*)C))->_start_position/*16*/)));
  571. _new_name=r605new_name_of(((T605*)(X291base_class(a1))),_wbc,(T0*)C);
  572. _rf=r368get_feature(((T368*)(X291run_class((((T446*)C))->_current_type/*8*/))),_new_name);
  573. /*IF*/if ((_rf)==((void*)(NULL))) {
  574. r446error((((T446*)C))->_start_position/*16*/,((T0*)ms2_446));
  575. }
  576. else {
  577. C->_run_feature_2=_rf;
  578. if(NULL!=(C->_run_feature_2))switch(((T0*)C->_run_feature_2)->id) {
  579. case 820: 
  580. break;
  581. default:
  582. C->_run_feature_2=NULL;
  583. };/*IF*/if (((((T446*)C))->_run_feature_2/*20*/)==((void*)(NULL))) {
  584. r683add_position(X496start_position(_rf));
  585. r446error((((T446*)C))->_start_position/*16*/,((T0*)ms3_446));
  586. }
  587. /*FI*/}
  588. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  589. R=(T0*)C;
  590. }
  591. else {
  592. r446error((((T446*)C))->_start_position/*16*/,((T0*)ms4_446));
  593. }
  594. /*FI*/}
  595.  else if ((a1)==((void*)((((T446*)C))->_current_type/*8*/))) {
  596. R=(T0*)C;
  597. }
  598. else {
  599. {T446*n=malloc(sizeof(*n));
  600. *n=M446;
  601. r446make(n,(((T446*)C))->_to_string/*12*/,(((T446*)C))->_start_position/*16*/);
  602. R=(T0*)n;
  603. }
  604. R=r446to_runnable(((T446*)R),a1);
  605. }
  606. /*FI*/return R;
  607. }
  608. /*No:SIMPLE_FEATURE_NAME.bracketed_pretty_print*/
  609. /*No:SIMPLE_FEATURE_NAME.run_feature_2*/
  610. /*No:SIMPLE_FEATURE_NAME.result_type*/
  611. /*No:SIMPLE_FEATURE_NAME.atomic_precedence*/
  612. /*No:SIMPLE_FEATURE_NAME.definition_pretty_print*/
  613. /*No:SIMPLE_FEATURE_NAME.pretty_print*/
  614. /*No:SIMPLE_FEATURE_NAME.current_type*/
  615. /*No:SIMPLE_FEATURE_NAME.to_key*/
  616. /*No:SIMPLE_FEATURE_NAME.is_manifest_string*/
  617. /*No:SIMPLE_FEATURE_NAME.is_frozen*/
  618. /*No:SIMPLE_FEATURE_NAME.is_void*/
  619. void r446undefine_in(T446* C,T0* a1){
  620. /*IF*/if ((((T446*)C))->_is_frozen/*4*/) {
  621. r446error((((T446*)C))->_start_position/*16*/,((T0*)ms1_776));
  622. r605fatal_undefine(((T605*)a1),(T0*)C);
  623. }
  624. /*FI*/}
  625. void r446error(T0* a1,T0* a2){
  626. r683add_position(a1);
  627. r683error(((T683*)(oBC364eh)),a2);
  628. }
  629. T0* r446origin_base_class(T446* C){
  630. T0* R=NULL;
  631. T0* _sp=NULL;
  632. _sp=(((T446*)C))->_start_position/*16*/;
  633. /*IF*/if ((_sp)!=((void*)(NULL))) {
  634. R=r627base_class(((T627*)_sp));
  635. }
  636. /*FI*/return R;
  637. }
  638. /*No:CST_ATT_UNIQUE.arguments*/
  639. T0* r398try_to_undefine(T398* C,T0* a1,T0* a2){
  640. T0* R=NULL;
  641. X776undefine_in(a1,a2);
  642. R=r398try_to_undefine_aux(C,a1,a2);
  643. /*IF*/if ((R)!=((void*)(NULL))) {
  644. /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T398*)C))->_clients/*20*/);
  645. /*]*/
  646. }
  647. else {
  648. r605fatal_undefine(((T605*)a2),a1);
  649. }
  650. /*FI*/return R;
  651. }
  652. /*No:CST_ATT_UNIQUE.is_deferred*/
  653. /*No:CST_ATT_UNIQUE.pretty_tail*/
  654. void r398add_into(T398* C,T0* a1){
  655. T0* _fn=NULL;
  656. int _i=0;
  657. C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
  658. _i=1;
  659. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T398*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  660. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
  661. /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
  662. _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)/*)*//*)*/);
  663. r683add_position(X776start_position(_fn));
  664. r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
  665. r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
  666. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  667. r7append(((T7*)(oBC683explanation)),b1);
  668. }/*]*/
  669. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  670. }
  671. else {
  672. r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
  673. }
  674. /*FI*/_i=(_i)+(1);
  675. }
  676. }
  677. T0* r398try_to_undefine_aux(T398* C,T0* a1,T0* a2){
  678. T0* R=NULL;
  679. r683add_position(r398start_position(C));
  680. r398error(X776start_position(a1),((T0*)ms1_308));
  681. r605fatal_undefine(((T605*)a2),a1);
  682. return R;
  683. }
  684. void r398make(T398* C,T0* a1,T0* a2){
  685. T0* _ic=NULL;
  686. int _i=0;
  687. r398make_e_feature(C,a1,a2);
  688. {T28*n=malloc(sizeof(*n));
  689. *n=M28;
  690. r28make(n,1,/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T398*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/);
  691. C->_values=(T0*)n;
  692. }
  693. _i=1;
  694. while (!((_i)>((((T28*)((T28*)((((T398*)C))->_values/*24*/))))->_upper/*12*/))) {
  695. {T342*n=malloc(sizeof(*n));
  696. *n=M342;
  697. r342make(n,r604next_unique(((T604*)(oBC364small_eiffel))),NULL);
  698. _ic=(T0*)n;
  699. }
  700. /*[IRF3.6put*/{T28* C1=((T28*)((((T398*)C))->_values/*24*/));
  701. T0* b1=_ic;
  702. int b2=_i;
  703. ((((T28*)C1))->_storage/*4*/)[(b2)-((((T28*)C1))->_lower/*16*/)]=(b1);
  704. }/*]*/
  705. _i=(_i)+(1);
  706. }
  707. }
  708. /*No:CST_ATT_UNIQUE.nb_errors*/
  709. void r398pretty_print_one_name(T0* a1){
  710. /*IF*/if (X776is_frozen(a1)) {
  711. r238keyword(((T238*)(oBC364fmt)),((T0*)ms10_359));
  712. }
  713. /*FI*/X776definition_pretty_print(a1);
  714. }
  715. /*No:CST_ATT_UNIQUE.set_header_comment*/
  716. /*No:CST_ATT_UNIQUE.values*/
  717. T0* r398start_position(T398* C){
  718. T0* R=NULL;
  719. R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  720. return R;
  721. }
  722. T0* r398to_run_feature(T398* C,T0* a1,T0* a2){
  723. T0* R=NULL;
  724. T0* _rc=NULL;
  725. _rc=X291run_class(a1);
  726. R=r368at(((T368*)_rc),a2);
  727. if(NULL!=(R))switch(((T0*)R)->id) {
  728. case 808: 
  729. break;
  730. default:
  731. R=NULL;
  732. };/*IF*/if ((R)==((void*)(NULL))) {
  733. {T808*n=malloc(sizeof(*n));
  734. *n=M808;
  735. r808make(n,a1,a2,(T0*)C);
  736. R=(T0*)n;
  737. }
  738. }
  739. /*FI*/return R;
  740. }
  741. /*No:CST_ATT_UNIQUE.ensure_assertion*/
  742. /*No:CST_ATT_UNIQUE.code_require*/
  743. /*No:CST_ATT_UNIQUE.result_type*/
  744. /*No:CST_ATT_UNIQUE.em1*/
  745. void r398pretty_print(T398* C){
  746. r398pretty_print_profile(C);
  747. /*[IRF3.2pretty_tail*/r238put_string(((T238*)(oBC364fmt)),((T0*)ms1_398));
  748. /*]*/
  749. r238put_character(((T238*)(oBC364fmt)),'\73');
  750. /*IF*/if (((((T398*)C))->_header_comment/*16*/)!=((void*)(NULL))) {
  751. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
  752. /*]*/
  753. r238indent(((T238*)(oBC364fmt)));
  754. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(1);
  755. /*]*/
  756. r393pretty_print(((T393*)((((T398*)C))->_header_comment/*16*/)));
  757. }
  758. /*FI*/}
  759. /*No:CST_ATT_UNIQUE.set_clients*/
  760. /*No:CST_ATT_UNIQUE.em2*/
  761. /*No:CST_ATT_UNIQUE.require_assertion*/
  762. /*No:CST_ATT_UNIQUE.value*/
  763. /*No:CST_ATT_UNIQUE.names*/
  764. void r398pretty_print_profile(T398* C){
  765. r398pretty_print_names(C);
  766. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
  767. /*]*/
  768. /*[IRF3.1pretty_print_arguments*//*]*/
  769. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(3);
  770. /*]*/
  771. /*IF*/if (((((T398*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  772. r238put_string(((T238*)(oBC364fmt)),((T0*)ms8_359));
  773. X291pretty_print((((T398*)C))->_result_type/*12*/);
  774. }
  775. /*FI*/}
  776. void r398pretty_print_names(T398* C){
  777. int _i=0;
  778. _i=1;
  779. r398pretty_print_one_name(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/);
  780. _i=(_i)+(1);
  781. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T398*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  782. r238put_string(((T238*)(oBC364fmt)),((T0*)ms9_359));
  783. r398pretty_print_one_name(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/);
  784. _i=(_i)+(1);
  785. }
  786. }
  787. int r398can_hide(T398* C,T0* a1,T0* a2){
  788. int R=0;
  789. /*IF*/if (((((T398*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  790. /*IF*/if ((((((T398*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  791. r683add_position(X359start_position(a1));
  792. r398error(r398start_position(C),((T0*)ms5_359));
  793. }
  794. /*FI*/}
  795. /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
  796. /*IF*/{/*AT*/r683add_position(X359start_position(a1));
  797. r398error(r398start_position(C),((T0*)ms6_359));
  798. }
  799. /*FI*/}
  800. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  801. /*IF*/if (((((T398*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  802. /*IF*/if (!(X291is_a_in((((T398*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  803. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  804. r7append(((T7*)(oBC683explanation)),b1);
  805. }/*]*/
  806. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T368*)((T368*)a2)))->_current_type/*0*/);
  807. r7append(((T7*)(oBC683explanation)),b1);
  808. }/*]*/
  809. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  810. }
  811. /*FI*/}
  812. /*FI*/}
  813. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  814. /*IF*//*AF*//*AE*/
  815. /*FI*/}
  816. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  817. return R;
  818. }
  819. /*No:CST_ATT_UNIQUE.header_comment*/
  820. int r398is_merge_with(T398* C,T0* a1,T0* a2){
  821. int R=0;
  822. /*IF*/if (((((T398*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  823. /*IF*/if ((((((T398*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  824. r683add_position(X359start_position(a1));
  825. r398error(r398start_position(C),((T0*)ms2_359));
  826. }
  827. /*FI*/}
  828. /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
  829. /*IF*/{/*AT*/r683add_position(X359start_position(a1));
  830. r398error(r398start_position(C),((T0*)ms3_359));
  831. }
  832. /*FI*/}
  833. /*FI*//*IF*/if (((((T398*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  834. /*IF*/if (!(X291is_a_in((((T398*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  835. r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
  836. }
  837. /*FI*/}
  838. /*FI*//*IF*//*AF*//*AE*/
  839. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  840. return R;
  841. }
  842. /*No:CST_ATT_UNIQUE.fz_dot*/
  843. /*No:CST_ATT_UNIQUE.first_name*/
  844. /*No:CST_ATT_UNIQUE.clients*/
  845. void r398collect_for(int a1){
  846. /*IF*/if ((a1)==(1001)) {
  847. /*IF*//*AF*//*AE*/
  848. /*FI*/}
  849. else {
  850. /*IF*//*AF*//*AE*/
  851. /*FI*/}
  852. /*FI*/}
  853. void r398error(T0* a1,T0* a2){
  854. r683add_position(a1);
  855. r683error(((T683*)(oBC364eh)),a2);
  856. }
  857. /*No:CST_ATT_UNIQUE.base_class*/
  858. /*No:CST_ATT_UNIQUE.pretty_print_arguments*/
  859. void r398make_e_feature(T398* C,T0* a1,T0* a2){
  860. C->_names=a1;
  861. C->_result_type=a2;
  862. }
  863. /*No:INSTRUCTION_WITH_COMMENT.add_comment*/
  864. void r46make(T46* C,T0* a1,T0* a2){
  865. C->_instruction=a1;
  866. C->_comment=a2;
  867. }
  868. /*No:INSTRUCTION_WITH_COMMENT.instruction*/
  869. T0* r46start_position(T46* C){
  870. T0* R=NULL;
  871. R=X465start_position((((T46*)C))->_instruction/*8*/);
  872. return R;
  873. }
  874. /*No:INSTRUCTION_WITH_COMMENT.comment*/
  875. T0* r46to_runnable(T46* C,T0* a1){
  876. T0* R=NULL;
  877. T0* _ri=NULL;
  878. /*IF*/if (((((T46*)C))->_run_compound/*4*/)==((void*)(NULL))) {
  879. C->_run_compound=a1;
  880. _ri=X465to_runnable((((T46*)C))->_instruction/*8*/,a1);
  881. /*IF*/if ((_ri)==((void*)(NULL))) {
  882. r46error(X465start_position((((T46*)C))->_instruction/*8*/),((T0*)ms1_46));
  883. }
  884. else {
  885. C->_instruction=_ri;
  886. R=(T0*)C;
  887. }
  888. /*FI*/}
  889. else {
  890. {T46*n=malloc(sizeof(*n));
  891. *n=M46;
  892. r46make(n,(((T46*)C))->_instruction/*8*/,(((T46*)C))->_comment/*12*/);
  893. R=(T0*)n;
  894. }
  895. R=r46to_runnable(((T46*)R),a1);
  896. }
  897. /*FI*/return R;
  898. }
  899. void r46pretty_print(T46* C){
  900. int _fmt_mode=0;
  901. /*IF*/if (r393dummy(((T393*)((((T46*)C))->_comment/*12*/)))) {
  902. X465pretty_print((((T46*)C))->_instruction/*8*/);
  903. }
  904. else {
  905. _fmt_mode=(((T238*)((T238*)(oBC364fmt))))->_mode/*4*/;
  906. /*[IRF3.3set_zen*/((((T238*)(((T238*)(oBC364fmt)))))->_mode)=(1);
  907. /*]*/
  908. X465pretty_print((((T46*)C))->_instruction/*8*/);
  909. r238level_incr(((T238*)(oBC364fmt)));
  910. r238indent(((T238*)(oBC364fmt)));
  911. r238level_decr(((T238*)(oBC364fmt)));
  912. r393pretty_print(((T393*)((((T46*)C))->_comment/*12*/)));
  913. /*[IRF3.3set_mode*/((((T238*)(((T238*)(oBC364fmt)))))->_mode)=(_fmt_mode);
  914. /*]*/
  915. }
  916. /*FI*/}
  917. /*No:INSTRUCTION_WITH_COMMENT.run_compound*/
  918. void r46error(T0* a1,T0* a2){
  919. r683add_position(a1);
  920. r683error(((T683*)(oBC364eh)),a2);
  921. }
  922. /*No:INSTRUCTION_WITH_COMMENT.end_mark_comment*/
  923. /*No:EXTERNAL_FUNCTION.arguments*/
  924. T0* r679try_to_undefine(T679* C,T0* a1,T0* a2){
  925. T0* R=NULL;
  926. X776undefine_in(a1,a2);
  927. R=r679try_to_undefine_aux(C,a1,a2);
  928. /*IF*/if ((R)!=((void*)(NULL))) {
  929. /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T679*)C))->_clients/*20*/);
  930. /*]*/
  931. }
  932. else {
  933. r605fatal_undefine(((T605*)a2),a1);
  934. }
  935. /*FI*/return R;
  936. }
  937. /*No:EXTERNAL_FUNCTION.is_deferred*/
  938. /*No:EXTERNAL_FUNCTION.fz_bad_assertion*/
  939. T0* r679runnable(T0* a1,T0* a2,T0* a3){
  940. T0* R=NULL;
  941. T0* _a=NULL;
  942. int _i=0;
  943. /*IF*/if (!(r608empty(((T608*)a1)))) {
  944. R=r608twin(((T608*)a1));
  945. _i=(((T608*)((T608*)R)))->_upper/*8*/;
  946. while (!((_i)==(0))) {
  947. r604push(((T604*)(oBC364small_eiffel)),a3);
  948. _a=r348to_runnable(((T348*)(r608item(((T608*)R),_i))),a2);
  949. /*IF*/if ((_a)==((void*)(NULL))) {
  950. r679error(r348start_position(((T348*)(r608item(((T608*)R),_i)))),((T0*)ms57_470));
  951. }
  952. else {
  953. /*[IRF3.6put*/{T608* C1=((T608*)R);
  954. T0* b1=_a;
  955. int b2=_i;
  956. ((((T608*)C1))->_storage/*0*/)[(b2)-((((T608*)C1))->_lower/*12*/)]=(b1);
  957. }/*]*/
  958. }
  959. /*FI*/r604pop(((T604*)(oBC364small_eiffel)));
  960. _i=(_i)-(1);
  961. }
  962. }
  963. /*FI*/return R;
  964. }
  965. /*No:EXTERNAL_FUNCTION.rescue_compound*/
  966. void r679add_into(T679* C,T0* a1){
  967. T0* _fn=NULL;
  968. int _i=0;
  969. C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T679*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
  970. _i=1;
  971. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T679*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  972. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T679*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
  973. /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
  974. _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)/*)*//*)*/);
  975. r683add_position(X776start_position(_fn));
  976. r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T679*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
  977. r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
  978. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  979. r7append(((T7*)(oBC683explanation)),b1);
  980. }/*]*/
  981. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  982. }
  983. else {
  984. r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
  985. }
  986. /*FI*/_i=(_i)+(1);
  987. }
  988. }
  989. /*No:EXTERNAL_FUNCTION.end_comment*/
  990. T0* r679try_to_undefine_aux(T679* C,T0* a1,T0* a2){
  991. T0* R=NULL;
  992. {T649*n=malloc(sizeof(*n));
  993. *n=M649;
  994. r649from_effective(n,a1,(((T679*)C))->_arguments/*24*/,(((T679*)C))->_result_type/*12*/,(((T679*)C))->_require_assertion/*32*/,(((T679*)C))->_ensure_assertion/*36*/,a2);
  995. R=(T0*)n;
  996. }
  997. return R;
  998. }
  999. T0* r679external_c_name(T679* C){
  1000. T0* R=NULL;
  1001. /*IF*/if (((((T679*)C))->_alias_string/*52*/)==((void*)(NULL))) {
  1002. R=X776to_string(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T679*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  1003. }
  1004. else {
  1005. R=(((T679*)C))->_alias_string/*52*/;
  1006. }
  1007. /*FI*/return R;
  1008. }
  1009. void r679make(T679* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7,T0* a8){
  1010. r679make_routine(C,a1,a2,a4,a5,a6);
  1011. C->_result_type=a3;
  1012. r679make_external_routine(C,a7,a8);
  1013. }
  1014. /*No:EXTERNAL_FUNCTION.nb_errors*/
  1015. void r679pretty_print_one_name(T0* a1){
  1016. /*IF*/if (X776is_frozen(a1)) {
  1017. r238keyword(((T238*)(oBC364fmt)),((T0*)ms10_359));
  1018. }
  1019. /*FI*/X776definition_pretty_print(a1);
  1020. }
  1021. /*No:EXTERNAL_FUNCTION.native*/
  1022. void r679make_routine(T679* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  1023. r679make_e_feature(C,a1,NULL);
  1024. C->_header_comment=a4;
  1025. C->_arguments=a2;
  1026. C->_obsolete_mark=a3;
  1027. C->_require_assertion=a5;
  1028. }
  1029. void r679set_header_comment(T679* C,T0* a1){
  1030. /*IF*/if (((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)>(1))) {
  1031. C->_end_comment=a1;
  1032. }
  1033. /*FI*/}
  1034. T0* r679start_position(T679* C){
  1035. T0* R=NULL;
  1036. R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T679*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  1037. return R;
  1038. }
  1039. T0* r679to_run_feature(T679* C,T0* a1,T0* a2){
  1040. T0* R=NULL;
  1041. r679check_obsolete(C);
  1042. {T892*n=malloc(sizeof(*n));
  1043. *n=M892;
  1044. r892make(n,a1,a2,(T0*)C);
  1045. R=(T0*)n;
  1046. }
  1047. return R;
  1048. }
  1049. /*No:EXTERNAL_FUNCTION.alias_string*/
  1050. /*No:EXTERNAL_FUNCTION.ensure_assertion*/
  1051. /*No:EXTERNAL_FUNCTION.code_require*/
  1052. T0* r679run_ensure(T0* a1){
  1053. T0* R=NULL;
  1054. T0* _r=NULL;
  1055. r608clear(((T608*)(oBC359assertion_collector)));
  1056. /*[IRF3.3clear*/{T0* _default_item=NULL;
  1057. ((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
  1058. }/*]*/
  1059. r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/)))),1002,/*X496*/((T0*)(((T808*)((T808*)a1)))->_name/*16*/));
  1060. _r=r679runnable(oBC359assertion_collector,/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/),a1);
  1061. /*IF*/if ((_r)!=((void*)(NULL))) {
  1062. {T633*n=malloc(sizeof(*n));
  1063. *n=M633;
  1064. r633from_runnable(n,_r);
  1065. R=(T0*)n;
  1066. }
  1067. /*[IRF3.3set_header_comment*/((((T633*)(((T633*)R))))->_header_comment)=((((T56*)((T56*)(oBC359header_comment_memory))))->_item/*0*/);
  1068. /*]*/
  1069. /*[IRF3.3clear*/{T0* _default_item=NULL;
  1070. ((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
  1071. }/*]*/
  1072. }
  1073. /*FI*/return R;
  1074. }
  1075. T0* r679run_require(T0* a1){
  1076. T0* R=NULL;
  1077. T0* _ar=NULL;
  1078. T0* _hc=NULL;
  1079. T0* _er=NULL;
  1080. T0* _r=NULL;
  1081. int _i=0;
  1082. r522clear(((T522*)(oBC359require_collector)));
  1083. r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/)))),1001,/*X496*/((T0*)(((T808*)((T808*)a1)))->_name/*16*/));
  1084. /*IF*/if (!(r522empty(((T522*)(oBC359require_collector))))) {
  1085. _i=1;
  1086. while (!((_i)>((((T522*)((T522*)(oBC359require_collector))))->_upper/*8*/))) {
  1087. _er=r522item(((T522*)(oBC359require_collector)),_i);
  1088. _hc=(((T343*)((T343*)_er)))->_header_comment/*4*/;
  1089. /*IF*/if (!(/*(IRF4.7empty*/((((T343*)((T343*)_er)))->_list/*8*/)==(NULL)/*)*/)) {
  1090. _r=r679runnable((((T343*)((T343*)_er)))->_list/*8*/,/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/),a1);
  1091. /*IF*/if ((_r)!=((void*)(NULL))) {
  1092. {T343*n=malloc(sizeof(*n));
  1093. *n=M343;
  1094. r343from_runnable(n,_r);
  1095. _er=(T0*)n;
  1096. }
  1097. /*[IRF3.3set_header_comment*/((((T343*)(((T343*)_er))))->_header_comment)=(_hc);
  1098. /*]*/
  1099. /*IF*/if ((_ar)==((void*)(NULL))) {
  1100. _ar=se_ma522(1,_er);
  1101. }
  1102. else {
  1103. r522add_last(((T522*)_ar),_er);
  1104. }
  1105. /*FI*/}
  1106. /*FI*/}
  1107. /*FI*/_i=(_i)+(1);
  1108. }
  1109. /*IF*/if ((_ar)!=((void*)(NULL))) {
  1110. {T541*n=malloc(sizeof(*n));
  1111. *n=M541;
  1112. /*[IRF3.3make*/((((T541*)(n)))->_list)=(_ar);
  1113. /*]*/
  1114. R=(T0*)n;
  1115. }
  1116. }
  1117. /*FI*/}
  1118. /*FI*/return R;
  1119. }
  1120. /*No:EXTERNAL_FUNCTION.result_type*/
  1121. /*No:EXTERNAL_FUNCTION.fz_03*/
  1122. /*No:EXTERNAL_FUNCTION.em1*/
  1123. void r679pretty_print(T679* C){
  1124. T0* _fn=NULL;
  1125. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(1);
  1126. /*]*/
  1127. r238indent(((T238*)(oBC364fmt)));
  1128. r679pretty_print_profile(C);
  1129. r238keyword(((T238*)(oBC364fmt)),((T0*)ms1_355));
  1130. /*IF*/if (((((T679*)C))->_obsolete_mark/*28*/)!=((void*)(NULL))) {
  1131. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
  1132. /*]*/
  1133. r238indent(((T238*)(oBC364fmt)));
  1134. r238keyword(((T238*)(oBC364fmt)),((T0*)ms2_355));
  1135. r805pretty_print(((T805*)((((T679*)C))->_obsolete_mark/*28*/)));
  1136. }
  1137. /*FI*//*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
  1138. /*]*/
  1139. r238indent(((T238*)(oBC364fmt)));
  1140. /*IF*/if (((((T679*)C))->_header_comment/*16*/)!=((void*)(NULL))) {
  1141. r393pretty_print(((T393*)((((T679*)C))->_header_comment/*16*/)));
  1142. }
  1143. /*FI*//*IF*/if (((((T679*)C))->_require_assertion/*32*/)!=((void*)(NULL))) {
  1144. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
  1145. /*]*/
  1146. r343pretty_print(((T343*)((((T679*)C))->_require_assertion/*32*/)));
  1147. }
  1148. /*FI*//*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
  1149. /*]*/
  1150. r238indent(((T238*)(oBC364fmt)));
  1151. r679pretty_print_routine_body(C);
  1152. /*IF*/if (((((T679*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  1153. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
  1154. /*]*/
  1155. r633pretty_print(((T633*)((((T679*)C))->_ensure_assertion/*36*/)));
  1156. }
  1157. /*FI*//*IF*/if (((((T679*)C))->_rescue_compound/*40*/)!=((void*)(NULL))) {
  1158. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
  1159. /*]*/
  1160. r238indent(((T238*)(oBC364fmt)));
  1161. r238keyword(((T238*)(oBC364fmt)),((T0*)ms3_355));
  1162. r592pretty_print(((T592*)((((T679*)C))->_rescue_compound/*40*/)));
  1163. }
  1164. /*FI*//*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
  1165. /*]*/
  1166. r238indent(((T238*)(oBC364fmt)));
  1167. r238keyword(((T238*)(oBC364fmt)),((T0*)ms4_355));
  1168. /*IF*/if ((((((T679*)C))->_end_comment/*44*/)!=((void*)(NULL)))&&(!(r393dummy(((T393*)((((T679*)C))->_end_comment/*44*/)))))) {
  1169. r393pretty_print(((T393*)((((T679*)C))->_end_comment/*44*/)));
  1170. }
  1171.  else if (r238print_end_routine(((T238*)(oBC364fmt)))) {
  1172. r238put_string(((T238*)(oBC364fmt)),((T0*)ms5_355));
  1173. _fn=/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T679*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/;
  1174. X776definition_pretty_print(_fn);
  1175. }
  1176. /*FI*/r238put_character(((T238*)(oBC364fmt)),'\n');
  1177. }
  1178. /*No:EXTERNAL_FUNCTION.obsolete_mark*/
  1179. /*No:EXTERNAL_FUNCTION.set_clients*/
  1180. /*No:EXTERNAL_FUNCTION.em2*/
  1181. /*No:EXTERNAL_FUNCTION.names*/
  1182. /*No:EXTERNAL_FUNCTION.require_assertion*/
  1183. /*No:EXTERNAL_FUNCTION.code_ensure*/
  1184. void r679set_rescue_compound(T679* C,T0* a1){
  1185. /*IF*/if (((a1)!=((void*)(NULL)))&&(/*(IRF4.1is_deferred*/0/*)*/)) {
  1186. r679error(r679start_position(C),((T0*)ms6_355));
  1187. }
  1188. /*FI*/C->_rescue_compound=a1;
  1189. }
  1190. void r679pretty_print_profile(T679* C){
  1191. r679pretty_print_names(C);
  1192. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
  1193. /*]*/
  1194. r679pretty_print_arguments(C);
  1195. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(3);
  1196. /*]*/
  1197. /*IF*/if (((((T679*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  1198. r238put_string(((T238*)(oBC364fmt)),((T0*)ms8_359));
  1199. X291pretty_print((((T679*)C))->_result_type/*12*/);
  1200. }
  1201. /*FI*/}
  1202. void r679pretty_print_names(T679* C){
  1203. int _i=0;
  1204. _i=1;
  1205. r679pretty_print_one_name(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T679*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/);
  1206. _i=(_i)+(1);
  1207. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T679*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  1208. r238put_string(((T238*)(oBC364fmt)),((T0*)ms9_359));
  1209. r679pretty_print_one_name(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T679*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/);
  1210. _i=(_i)+(1);
  1211. }
  1212. }
  1213. void r679make_external_routine(T679* C,T0* a1,T0* a2){
  1214. C->_native=a1;
  1215. C->_alias_string=a2;
  1216. }
  1217. int r679can_hide(T679* C,T0* a1,T0* a2){
  1218. int R=0;
  1219. /*IF*/if (((((T679*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  1220. /*IF*/if ((((((T679*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  1221. r683add_position(X359start_position(a1));
  1222. r679error(r679start_position(C),((T0*)ms5_359));
  1223. }
  1224. /*FI*/}
  1225. /*FI*//*IF*/if (((((T679*)C))->_arguments/*24*/)!=((void*)(X359arguments(a1)))) {
  1226. /*IF*/if ((((((T679*)C))->_arguments/*24*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  1227. r683add_position(X359start_position(a1));
  1228. r679error(r679start_position(C),((T0*)ms6_359));
  1229. }
  1230.  else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T679*)C))->_arguments/*24*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  1231. r683add_position(X359start_position(a1));
  1232. r679error(r679start_position(C),((T0*)ms7_359));
  1233. }
  1234. /*FI*/}
  1235. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1236. /*IF*/if (((((T679*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  1237. /*IF*/if (!(X291is_a_in((((T679*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  1238. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  1239. r7append(((T7*)(oBC683explanation)),b1);
  1240. }/*]*/
  1241. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T368*)((T368*)a2)))->_current_type/*0*/);
  1242. r7append(((T7*)(oBC683explanation)),b1);
  1243. }/*]*/
  1244. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1245. }
  1246. /*FI*/}
  1247. /*FI*/}
  1248. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1249. /*IF*/if (((((T679*)C))->_arguments/*24*/)!=((void*)(NULL))) {
  1250. /*IF*/if (!(r31is_a_in(((T31*)((((T679*)C))->_arguments/*24*/)),X359arguments(a1),a2))) {
  1251. r683add_position(X359start_position(a1));
  1252. r683add_position(r679start_position(C));
  1253. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  1254. r7append(((T7*)(oBC683explanation)),b1);
  1255. }/*]*/
  1256. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T368*)((T368*)a2)))->_current_type/*0*/);
  1257. r7append(((T7*)(oBC683explanation)),b1);
  1258. }/*]*/
  1259. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1260. }
  1261. /*FI*/}
  1262. /*FI*/}
  1263. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  1264. return R;
  1265. }
  1266. /*No:EXTERNAL_FUNCTION.header_comment*/
  1267. int r679is_merge_with(T679* C,T0* a1,T0* a2){
  1268. int R=0;
  1269. /*IF*/if (((((T679*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  1270. /*IF*/if ((((((T679*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  1271. r683add_position(X359start_position(a1));
  1272. r679error(r679start_position(C),((T0*)ms2_359));
  1273. }
  1274. /*FI*/}
  1275. /*FI*//*IF*/if (((((T679*)C))->_arguments/*24*/)!=((void*)(X359arguments(a1)))) {
  1276. /*IF*/if ((((((T679*)C))->_arguments/*24*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  1277. r683add_position(X359start_position(a1));
  1278. r679error(r679start_position(C),((T0*)ms3_359));
  1279. }
  1280.  else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T679*)C))->_arguments/*24*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  1281. r683add_position(X359start_position(a1));
  1282. r679error(r679start_position(C),((T0*)ms4_359));
  1283. }
  1284. /*FI*/}
  1285. /*FI*//*IF*/if (((((T679*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  1286. /*IF*/if (!(X291is_a_in((((T679*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  1287. r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
  1288. }
  1289. /*FI*/}
  1290. /*FI*//*IF*/if (((((T679*)C))->_arguments/*24*/)!=((void*)(NULL))) {
  1291. /*IF*/if (!(r31is_a_in(((T31*)((((T679*)C))->_arguments/*24*/)),X359arguments(a1),a2))) {
  1292. r683add_position(X359start_position(a1));
  1293. r679error(r679start_position(C),((T0*)ms12_359));
  1294. }
  1295. /*FI*/}
  1296. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  1297. return R;
  1298. }
  1299. /*No:EXTERNAL_FUNCTION.fz_dot*/
  1300. /*No:EXTERNAL_FUNCTION.set_ensure_assertion*/
  1301. /*No:EXTERNAL_FUNCTION.first_name*/
  1302. /*No:EXTERNAL_FUNCTION.clients*/
  1303. void r679collect_for(T679* C,int a1){
  1304. /*IF*/if ((a1)==(1001)) {
  1305. /*IF*/if (((((T679*)C))->_require_assertion/*32*/)!=((void*)(NULL))) {
  1306. /*IF*/if (!(r522fast_has(((T522*)(oBC359require_collector)),(((T679*)C))->_require_assertion/*32*/))) {
  1307. r522add_last(((T522*)(oBC359require_collector)),(((T679*)C))->_require_assertion/*32*/);
  1308. }
  1309. /*FI*/}
  1310. /*FI*/}
  1311. else {
  1312. /*IF*/if (((((T679*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  1313. /*[IRF3.3set_item*/((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=((((T633*)((T633*)((((T679*)C))->_ensure_assertion/*36*/))))->_header_comment/*4*/);
  1314. /*]*/
  1315. r633add_into(((T633*)((((T679*)C))->_ensure_assertion/*36*/)),oBC359assertion_collector);
  1316. }
  1317. /*FI*/}
  1318. /*FI*/}
  1319. void r679error(T0* a1,T0* a2){
  1320. r683add_position(a1);
  1321. r683error(((T683*)(oBC364eh)),a2);
  1322. }
  1323. /*No:EXTERNAL_FUNCTION.base_class*/
  1324. void r679pretty_print_arguments(T679* C){
  1325. /*IF*/if (((((T679*)C))->_arguments/*24*/)!=((void*)(NULL))) {
  1326. r31pretty_print(((T31*)((((T679*)C))->_arguments/*24*/)));
  1327. }
  1328. /*FI*/}
  1329. void r679pretty_print_routine_body(T679* C){
  1330. r238keyword(((T238*)(oBC364fmt)),((T0*)ms1_279));
  1331. X832pretty_print((((T679*)C))->_native/*48*/);
  1332. /*IF*/if ((!(r7is_equal(((T7*)(r679external_c_name(C))),X776to_string(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T679*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/))))||((/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T679*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/)>(1))) {
  1333. r238indent(((T238*)(oBC364fmt)));
  1334. r238keyword(((T238*)(oBC364fmt)),((T0*)ms2_279));
  1335. r238put_character(((T238*)(oBC364fmt)),'\42');
  1336. r238put_string(((T238*)(oBC364fmt)),r679external_c_name(C));
  1337. r238put_character(((T238*)(oBC364fmt)),'\42');
  1338. }
  1339. /*FI*/}
  1340. void r679make_e_feature(T679* C,T0* a1,T0* a2){
  1341. C->_names=a1;
  1342. C->_result_type=a2;
  1343. }
  1344. void r679check_obsolete(T679* C){
  1345. /*IF*/if (!((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/)) {
  1346. /*IF*/if (((((T679*)C))->_obsolete_mark/*28*/)!=((void*)(NULL))) {
  1347. /*[IRF3.6append*/{T0* b1=((T0*)ms7_355);
  1348. r7append(((T7*)(oBC683explanation)),b1);
  1349. }/*]*/
  1350. /*[IRF3.6append*/{T0* b1=(((T805*)((T805*)((((T679*)C))->_obsolete_mark/*28*/))))->_to_string/*12*/;
  1351. r7append(((T7*)(oBC683explanation)),b1);
  1352. }/*]*/
  1353. r679warning(r679start_position(C),((T0*)ms137_470));
  1354. }
  1355. /*FI*/}
  1356. /*FI*/}
  1357. void r679warning(T0* a1,T0* a2){
  1358. r683add_position(a1);
  1359. r683warning(((T683*)(oBC364eh)),a2);
  1360. }
  1361. void r145make(T145* C,T0* a1,T0* a2){
  1362. C->_comment=a2;
  1363. C->_expression=a1;
  1364. }
  1365. /*No:LOOP_VARIANT_1.nb_errors*/
  1366. /*No:LOOP_VARIANT_1.expression*/
  1367. T0* r145start_position(T145* C){
  1368. T0* R=NULL;
  1369. R=X662start_position((((T145*)C))->_expression/*8*/);
  1370. return R;
  1371. }
  1372. /*No:LOOP_VARIANT_1.comment*/
  1373. T0* r145to_runnable(T145* C,T0* a1){
  1374. T0* R=NULL;
  1375. T0* _e=NULL;
  1376. /*IF*/if (((((T145*)C))->_current_type/*12*/)==((void*)(NULL))) {
  1377. C->_current_type=a1;
  1378. _e=X662to_runnable((((T145*)C))->_expression/*8*/,a1);
  1379. /*IF*/if ((_e)==((void*)(NULL))) {
  1380. r145error(r145start_position(C),((T0*)ms1_856));
  1381. }
  1382. else {
  1383. C->_expression=_e;
  1384. /*IF*/if (!(X291is_integer(X662result_type((((T145*)C))->_expression/*8*/)))) {
  1385. r145error(X662start_position((((T145*)C))->_expression/*8*/),((T0*)ms2_856));
  1386. }
  1387. /*FI*/}
  1388. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1389. R=(T0*)C;
  1390. }
  1391. /*FI*/}
  1392. else {
  1393. R=r145twin(C);
  1394. /*[IRF3.3set_current_type*/((((T145*)(((T145*)R))))->_current_type)=(NULL);
  1395. /*]*/
  1396. R=r145to_runnable(((T145*)R),a1);
  1397. }
  1398. /*FI*/return R;
  1399. }
  1400. T0* r145twin(T145* C){
  1401. T0* R=NULL;
  1402. R=malloc(sizeof(*C));
  1403. *((T145*)R)=*C;
  1404. return R;
  1405. }
  1406. /*No:LOOP_VARIANT_1.set_current_type*/
  1407. void r145pretty_print(T145* C){
  1408. /*IF*/if (((((T145*)C))->_comment/*4*/)!=((void*)(NULL))) {
  1409. r393pretty_print(((T393*)((((T145*)C))->_comment/*4*/)));
  1410. }
  1411. else {
  1412. r238indent(((T238*)(oBC364fmt)));
  1413. }
  1414. /*FI*/X662pretty_print((((T145*)C))->_expression/*8*/);
  1415. }
  1416. /*No:LOOP_VARIANT_1.current_type*/
  1417. void r145error(T0* a1,T0* a2){
  1418. r683add_position(a1);
  1419. r683error(((T683*)(oBC364eh)),a2);
  1420. }
  1421. /*No:RUN_FEATURE_8.arguments*/
  1422. /*No:RUN_FEATURE_8.us_character_bits*/
  1423. /*No:RUN_FEATURE_8.us_generator*/
  1424. /*No:RUN_FEATURE_8.actuals_clients*/
  1425. /*No:RUN_FEATURE_8.us_integer_bits*/
  1426. void r892make(T892* C,T0* a1,T0* a2,T0* a3){
  1427. C->_current_type=a1;
  1428. C->_name=a2;
  1429. C->_base_feature=a3;
  1430. r199put(((T199*)((((T368*)((T368*)(r892run_class(C)))))->_feature_dictionary/*24*/)),(T0*)C,X776to_key(a2));
  1431. r604incr_magic_count(((T604*)(oBC364small_eiffel)));
  1432. C->_use_current_state=1015;
  1433. r604push(((T604*)(oBC364small_eiffel)),(T0*)C);
  1434. r892initialize(C);
  1435. r604pop(((T604*)(oBC364small_eiffel)));
  1436. }
  1437. /*No:RUN_FEATURE_8.name*/
  1438. int fBC364type_string=0;
  1439. T0*oBC364type_string=NULL;
  1440. T0* r892type_string(void){
  1441. if (fBC364type_string==0){
  1442. T0* R=NULL;
  1443. fBC364type_string=1;
  1444. {T491*n=malloc(sizeof(*n));
  1445. *n=M491;
  1446. r491make(n,NULL);
  1447. R=(T0*)n;
  1448. }
  1449. oBC364type_string=R;}
  1450. return oBC364type_string;}
  1451. /*No:RUN_FEATURE_8.fz_iinaiv*/
  1452. int r892arg_count(T892* C){
  1453. int R=0;
  1454. /*IF*/if (((((T892*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  1455. R=/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T892*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/;
  1456. }
  1457. /*FI*/return R;
  1458. }
  1459. /*No:RUN_FEATURE_8.local_vars*/
  1460. /*No:RUN_FEATURE_8.base_feature*/
  1461. int r892integer_value(T892* C,T0* a1){
  1462. int R=0;
  1463. T0* _n=NULL;
  1464. _n=X776to_string((((T892*)C))->_name/*16*/);
  1465. /*IF*/if ((((T0*)ms81_473))==((void*)(_n))) {
  1466. R= (CHAR_BIT*sizeof(int)) ;
  1467. }
  1468.  else if ((((T0*)ms56_473))==((void*)(_n))) {
  1469. R= CHAR_BIT ;
  1470. }
  1471. else {
  1472. r683add_position(a1);
  1473. r683add_position(/*(IRF4.6start_position*/r679start_position(((T679*)((((T892*)C))->_base_feature/*40*/)))/*)*/);
  1474. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms69_470);
  1475. r683fatal_error(((T683*)(oBC364eh)),b1);
  1476. }/*]*/
  1477. }
  1478. /*FI*/return R;
  1479. }
  1480. /*No:RUN_FEATURE_8.start_position*/
  1481. /*No:RUN_FEATURE_8.ensure_assertion*/
  1482. int r892is_exported_in(T892* C,T0* a1){
  1483. int R=0;
  1484. R=r636gives_permission_to(((T636*)(r892clients(C))),a1);
  1485. return R;
  1486. }
  1487. /*No:RUN_FEATURE_8.result_type*/
  1488. /*No:RUN_FEATURE_8.us_bitn*/
  1489. /*No:RUN_FEATURE_8.us_twin*/
  1490. void r892add_client(T892* C,T0* a1){
  1491. int _i=0;
  1492. /*IF*/if (((((T892*)C))->_actuals_clients/*12*/)==((void*)(NULL))) {
  1493. {T187*n=malloc(sizeof(*n));
  1494. *n=M187;
  1495. r187with_capacity(n,4);
  1496. C->_actuals_clients=(T0*)n;
  1497. }
  1498. r187add_last(((T187*)((((T892*)C))->_actuals_clients/*12*/)),a1);
  1499. }
  1500. else {
  1501. _i=r187fast_index_of(((T187*)((((T892*)C))->_actuals_clients/*12*/)),a1);
  1502. /*IF*/if ((_i)>((((T187*)((T187*)((((T892*)C))->_actuals_clients/*12*/))))->_upper/*8*/)) {
  1503. r187add_last(((T187*)((((T892*)C))->_actuals_clients/*12*/)),a1);
  1504. }
  1505. /*FI*/}
  1506. /*FI*/r368add_client(((T368*)(r892run_class(C))),a1);
  1507. }
  1508. /*No:RUN_FEATURE_8.require_assertion*/
  1509. /*No:RUN_FEATURE_8.use_current_state*/
  1510. /*No:RUN_FEATURE_8.us_generating_type*/
  1511. /*No:RUN_FEATURE_8.us_se_argc*/
  1512. /*No:RUN_FEATURE_8.current_type*/
  1513. T0* r892run_class(T892* C){
  1514. T0* R=NULL;
  1515. R=X291run_class((((T892*)C))->_current_type/*4*/);
  1516. return R;
  1517. }
  1518. /*No:RUN_FEATURE_8.ucs_not_computed*/
  1519. T0* r892clients(T892* C){
  1520. T0* R=NULL;
  1521. T0* _bfbc=NULL;
  1522. T0* _bc=NULL;
  1523. /*IF*/if (((((T892*)C))->_clients_memory/*8*/)==((void*)(NULL))) {
  1524. _bc=X291base_class((((T892*)C))->_current_type/*4*/);
  1525. _bfbc=(((T679*)((T679*)((((T892*)C))->_base_feature/*40*/))))->_base_class/*4*/;
  1526. /*IF*/if ((_bc)==((void*)(_bfbc))) {
  1527. R=(((T679*)((T679*)((((T892*)C))->_base_feature/*40*/))))->_clients/*20*/;
  1528. }
  1529. else {
  1530. R=r605clients_for(((T605*)_bc),(((T892*)C))->_name/*16*/);
  1531. }
  1532. /*FI*/C->_clients_memory=R;
  1533. }
  1534. else {
  1535. R=(((T892*)C))->_clients_memory/*8*/;
  1536. }
  1537. /*FI*/return R;
  1538. }
  1539. /*No:RUN_FEATURE_8.fatal_error*/
  1540. /*No:RUN_FEATURE_8.clients_memory*/
  1541. void r892initialize(T892* C){
  1542. T0* _type_bit_ref=NULL;
  1543. T0* _rf=NULL;
  1544. T0* _n=NULL;
  1545. _n=X776to_string((((T892*)C))->_name/*16*/);
  1546. C->_arguments=(((T679*)((T679*)((((T892*)C))->_base_feature/*40*/))))->_arguments/*24*/;
  1547. /*IF*/if ((((((T892*)C))->_arguments/*20*/)!=((void*)(NULL)))&&((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T892*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)>(0))) {
  1548. C->_arguments=r31to_runnable(((T31*)((((T892*)C))->_arguments/*20*/)),(((T892*)C))->_current_type/*4*/);
  1549. }
  1550. /*FI*//*IF*/if ((((T0*)ms52_473))==((void*)(_n))) {
  1551. _type_bit_ref=(((T892*)C))->_current_type/*4*/;
  1552. if(NULL!=(_type_bit_ref))switch(((T0*)_type_bit_ref)->id) {
  1553. case 963: 
  1554. break;
  1555. default:
  1556. _type_bit_ref=NULL;
  1557. };C->_result_type=(((T963*)((T963*)_type_bit_ref)))->_type_bit/*4*/;
  1558. }
  1559. else {
  1560. C->_result_type=X291to_runnable((((T679*)((T679*)((((T892*)C))->_base_feature/*40*/))))->_result_type/*12*/,(((T892*)C))->_current_type/*4*/);
  1561. }
  1562. /*FI*//*IF*/if (r590require_check(((T590*)(oBC364run_control)))) {
  1563. C->_require_assertion=r679run_require((T0*)C);
  1564. }
  1565. /*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
  1566. C->_ensure_assertion=r679run_ensure((T0*)C);
  1567. }
  1568. /*FI*//*IF*/if ((((T0*)ms139_473))==((void*)(_n))) {
  1569. _rf=r368get_copy(((T368*)(r892run_class(C))));
  1570. }
  1571.  else if ((((T0*)ms110_473))==((void*)(_n))) {
  1572. r368set_at_run_time(((T368*)(r491run_class(((T491*)(r892type_string()))))));
  1573. }
  1574.  else if ((((T0*)ms78_473))==((void*)(_n))) {
  1575. r368set_at_run_time(((T368*)(r491run_class(((T491*)(r892type_string()))))));
  1576. }
  1577.  else if ((((T0*)ms79_473))==((void*)(_n))) {
  1578. r368set_at_run_time(((T368*)(r491run_class(((T491*)(r892type_string()))))));
  1579. }
  1580. /*FI*/}
  1581.  
  1582.