home *** CD-ROM | disk | FTP | other *** search
/ Amiga ACS 1998 #4 / amigaacscoverdisc1998-041998.iso / utilities / shareware / dev / ppcsmalleiffel / source.lha / bin_c / short28.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  65.8 KB  |  2,156 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 "short.h"
  9. /*No:E_INSPECT.else_position*/
  10. T0* r270add_comment(T270* C,T0* a1){
  11. T0* R=NULL;
  12. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  13. R=(T0*)C;
  14. }
  15.  else {/*AT*//*IF*/if ((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(1)) {
  16. R=(T0*)C;
  17. }
  18. else {
  19. {T59*n=malloc(sizeof(*n));
  20. *n=M59;
  21. r59make(n,(T0*)C,a1);
  22. R=(T0*)n;
  23. }
  24. }
  25. /*FI*/}
  26. /*FI*/return R;
  27. }
  28. /*No:E_INSPECT.when_list*/
  29. void r270add_when(T270* C,T0* a1){
  30. /*IF*/if (((((T270*)C))->_when_list/*16*/)==((void*)(NULL))) {
  31. {T377*n=malloc(sizeof(*n));
  32. *n=M377;
  33. /*[IRF3.3make*/((((T377*)(n)))->_list)=(se_ma147(1,a1));
  34. /*]*/
  35. C->_when_list=(T0*)n;
  36. }
  37. }
  38. else {
  39. /*[IRF3.5add_last*/r147add_last(((T147*)((((T377*)((T377*)((((T270*)C))->_when_list/*16*/))))->_list/*4*/)),a1);
  40. /*]*/
  41. }
  42. /*FI*/}
  43. void r270make(T270* C,T0* a1,T0* a2){
  44. C->_start_position=a1;
  45. C->_expression=a2;
  46. }
  47. /*No:E_INSPECT.nb_errors*/
  48. /*No:E_INSPECT.expression*/
  49. void r270set_else_compound(T270* C,T0* a1,T0* a2){
  50. C->_else_position=a1;
  51. C->_else_compound=a2;
  52. }
  53. /*No:E_INSPECT.set_run_compound*/
  54. /*No:E_INSPECT.start_position*/
  55. /*No:E_INSPECT.includes*/
  56. T0* r270to_runnable(T270* C,T0* a1){
  57. T0* R=NULL;
  58. T0* _wl=NULL;
  59. T0* _te=NULL;
  60. T0* _e=NULL;
  61. /*IF*/if (((((T270*)C))->_run_compound/*4*/)==((void*)(NULL))) {
  62. C->_run_compound=a1;
  63. _e=X662to_runnable((((T270*)C))->_expression/*12*/,r270current_type(C));
  64. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  65. C->_expression=_e;
  66. _te=X291run_type(X662result_type(_e));
  67. }
  68. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  69. /*IF*/if (X291is_character(_te)) {
  70. /*IF*/if (((((T270*)C))->_when_list/*16*/)!=((void*)(NULL))) {
  71. C->_when_list=r377to_runnable_character(((T377*)((((T270*)C))->_when_list/*16*/)),(T0*)C);
  72. /*IF*/if (((((T270*)C))->_when_list/*16*/)==((void*)(NULL))) {
  73. r270error((((T270*)C))->_start_position/*8*/,((T0*)ms5_270));
  74. }
  75. /*FI*/}
  76. /*FI*/}
  77.  else if (X291is_integer(_te)) {
  78. /*IF*/if (((((T270*)C))->_when_list/*16*/)!=((void*)(NULL))) {
  79. C->_when_list=r377to_runnable_integer(((T377*)((((T270*)C))->_when_list/*16*/)),(T0*)C);
  80. /*IF*/if (((((T270*)C))->_when_list/*16*/)==((void*)(NULL))) {
  81. r270error((((T270*)C))->_start_position/*8*/,((T0*)ms5_270));
  82. }
  83. /*FI*/}
  84. /*FI*/}
  85. else {
  86. /*[IRF3.6append*/{T0* b1=((T0*)ms2_270);
  87. r7append(((T7*)(oBC683explanation)),b1);
  88. }/*]*/
  89. r683add_type(_te,((T0*)ms3_270));
  90. r683add_position((((T270*)C))->_start_position/*8*/);
  91. r683print_as_error(((T683*)(oBC364eh)));
  92. }
  93. /*FI*/}
  94. /*FI*//*IF*/if (((((T270*)C))->_else_compound/*24*/)!=((void*)(NULL))) {
  95. C->_else_compound=r592to_runnable(((T592*)((((T270*)C))->_else_compound/*24*/)),r270current_type(C));
  96. }
  97. /*FI*/R=(T0*)C;
  98. }
  99. else {
  100. R=r270twin(C);
  101. {T377*n=malloc(sizeof(*n));
  102. *n=M377;
  103. r377from_when_list(n,(((T270*)C))->_when_list/*16*/);
  104. _wl=(T0*)n;
  105. }
  106. /*[IRF3.3set_when_list*/((((T270*)(((T270*)R))))->_when_list)=(_wl);
  107. /*]*/
  108. /*[IRF3.3set_run_compound*/((((T270*)(((T270*)R))))->_run_compound)=(NULL);
  109. /*]*/
  110. R=r270to_runnable(((T270*)R),a1);
  111. }
  112. /*FI*/return R;
  113. }
  114. T0* r270twin(T270* C){
  115. T0* R=NULL;
  116. R=malloc(sizeof(*C));
  117. *((T270*)R)=*C;
  118. return R;
  119. }
  120. /*No:E_INSPECT.em1*/
  121. /*No:E_INSPECT.else_compound*/
  122. /*No:E_INSPECT.set_when_list*/
  123. T0* r270current_type(T270* C){
  124. T0* R=NULL;
  125. /*IF*/if (((((T270*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
  126. R=(((T592*)((T592*)((((T270*)C))->_run_compound/*4*/))))->_current_type/*4*/;
  127. }
  128. /*FI*/return R;
  129. }
  130. /*No:E_INSPECT.run_compound*/
  131. void r270error(T0* a1,T0* a2){
  132. r683add_position(a1);
  133. r683error(((T683*)(oBC364eh)),a2);
  134. }
  135. /*No:E_INSPECT.end_mark_comment*/
  136. /*No:ONCE_FUNCTION.arguments*/
  137. T0* r844try_to_undefine(T844* C,T0* a1,T0* a2){
  138. T0* R=NULL;
  139. X776undefine_in(a1,a2);
  140. R=r844try_to_undefine_aux(C,a1,a2);
  141. /*IF*/if ((R)!=((void*)(NULL))) {
  142. /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T844*)C))->_clients/*24*/);
  143. /*]*/
  144. }
  145. else {
  146. r605fatal_undefine(((T605*)a2),a1);
  147. }
  148. /*FI*/return R;
  149. }
  150. /*No:ONCE_FUNCTION.is_deferred*/
  151. /*No:ONCE_FUNCTION.fz_bad_assertion*/
  152. T0* r844runnable(T0* a1,T0* a2,T0* a3){
  153. T0* R=NULL;
  154. T0* _a=NULL;
  155. int _i=0;
  156. /*IF*/if (!(r608empty(((T608*)a1)))) {
  157. R=r608twin(((T608*)a1));
  158. _i=(((T608*)((T608*)R)))->_upper/*8*/;
  159. while (!((_i)==(0))) {
  160. r604push(((T604*)(oBC364small_eiffel)),a3);
  161. _a=r348to_runnable(((T348*)(r608item(((T608*)R),_i))),a2);
  162. /*IF*/if ((_a)==((void*)(NULL))) {
  163. r844error(r348start_position(((T348*)(r608item(((T608*)R),_i)))),((T0*)ms57_470));
  164. }
  165. else {
  166. /*[IRF3.6put*/{T608* C1=((T608*)R);
  167. T0* b1=_a;
  168. int b2=_i;
  169. ((((T608*)C1))->_storage/*0*/)[(b2)-((((T608*)C1))->_lower/*12*/)]=(b1);
  170. }/*]*/
  171. }
  172. /*FI*/r604pop(((T604*)(oBC364small_eiffel)));
  173. _i=(_i)-(1);
  174. }
  175. }
  176. /*FI*/return R;
  177. }
  178. /*No:ONCE_FUNCTION.rescue_compound*/
  179. void r844add_into(T844* C,T0* a1){
  180. T0* _fn=NULL;
  181. int _i=0;
  182. C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T844*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
  183. _i=1;
  184. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T844*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  185. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T844*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
  186. /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
  187. _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)/*)*//*)*/);
  188. r683add_position(X776start_position(_fn));
  189. r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T844*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
  190. r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
  191. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  192. r7append(((T7*)(oBC683explanation)),b1);
  193. }/*]*/
  194. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  195. }
  196. else {
  197. r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
  198. }
  199. /*FI*/_i=(_i)+(1);
  200. }
  201. }
  202. /*No:ONCE_FUNCTION.end_comment*/
  203. T0* r844try_to_undefine_aux(T844* C,T0* a1,T0* a2){
  204. T0* R=NULL;
  205. {T649*n=malloc(sizeof(*n));
  206. *n=M649;
  207. r649from_effective(n,a1,(((T844*)C))->_arguments/*28*/,(((T844*)C))->_result_type/*12*/,(((T844*)C))->_require_assertion/*36*/,(((T844*)C))->_ensure_assertion/*40*/,a2);
  208. R=(T0*)n;
  209. }
  210. return R;
  211. }
  212. void r844make(T844* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7,T0* a8){
  213. r844make_effective_routine(C,a1,a2,a4,a5,a6,a7,a8);
  214. C->_result_type=a3;
  215. }
  216. /*No:ONCE_FUNCTION.not_computed*/
  217. /*No:ONCE_FUNCTION.nb_errors*/
  218. void r844make_routine(T844* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  219. r844make_e_feature(C,a1,NULL);
  220. C->_header_comment=a4;
  221. C->_arguments=a2;
  222. C->_obsolete_mark=a3;
  223. C->_require_assertion=a5;
  224. }
  225. /*No:ONCE_FUNCTION.local_vars*/
  226. void r844set_header_comment(T844* C,T0* a1){
  227. /*IF*/if (((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)>(1))) {
  228. C->_end_comment=a1;
  229. }
  230. /*FI*/}
  231. T0* r844start_position(T844* C){
  232. T0* R=NULL;
  233. R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T844*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  234. return R;
  235. }
  236. T0* r844to_run_feature(T844* C,T0* a1,T0* a2){
  237. T0* R=NULL;
  238. r844check_obsolete(C);
  239. {T868*n=malloc(sizeof(*n));
  240. *n=M868;
  241. r868make(n,a1,a2,(T0*)C);
  242. R=(T0*)n;
  243. }
  244. return R;
  245. }
  246. /*No:ONCE_FUNCTION.ensure_assertion*/
  247. /*No:ONCE_FUNCTION.code_require*/
  248. T0* r844run_ensure(T0* a1){
  249. T0* R=NULL;
  250. T0* _r=NULL;
  251. r608clear(((T608*)(oBC359assertion_collector)));
  252. /*[IRF3.3clear*/{T0* _default_item=NULL;
  253. ((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
  254. }/*]*/
  255. r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/)))),1002,/*X496*/((T0*)(((T808*)((T808*)a1)))->_name/*16*/));
  256. _r=r844runnable(oBC359assertion_collector,/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/),a1);
  257. /*IF*/if ((_r)!=((void*)(NULL))) {
  258. {T633*n=malloc(sizeof(*n));
  259. *n=M633;
  260. r633from_runnable(n,_r);
  261. R=(T0*)n;
  262. }
  263. /*[IRF3.3set_header_comment*/((((T633*)(((T633*)R))))->_header_comment)=((((T56*)((T56*)(oBC359header_comment_memory))))->_item/*0*/);
  264. /*]*/
  265. /*[IRF3.3clear*/{T0* _default_item=NULL;
  266. ((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
  267. }/*]*/
  268. }
  269. /*FI*/return R;
  270. }
  271. T0* r844run_require(T0* a1){
  272. T0* R=NULL;
  273. T0* _ar=NULL;
  274. T0* _hc=NULL;
  275. T0* _er=NULL;
  276. T0* _r=NULL;
  277. int _i=0;
  278. r522clear(((T522*)(oBC359require_collector)));
  279. r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/)))),1001,/*X496*/((T0*)(((T808*)((T808*)a1)))->_name/*16*/));
  280. /*IF*/if (!(r522empty(((T522*)(oBC359require_collector))))) {
  281. _i=1;
  282. while (!((_i)>((((T522*)((T522*)(oBC359require_collector))))->_upper/*8*/))) {
  283. _er=r522item(((T522*)(oBC359require_collector)),_i);
  284. _hc=(((T343*)((T343*)_er)))->_header_comment/*4*/;
  285. /*IF*/if (!(/*(IRF4.7empty*/((((T343*)((T343*)_er)))->_list/*8*/)==(NULL)/*)*/)) {
  286. _r=r844runnable((((T343*)((T343*)_er)))->_list/*8*/,/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/),a1);
  287. /*IF*/if ((_r)!=((void*)(NULL))) {
  288. {T343*n=malloc(sizeof(*n));
  289. *n=M343;
  290. r343from_runnable(n,_r);
  291. _er=(T0*)n;
  292. }
  293. /*[IRF3.3set_header_comment*/((((T343*)(((T343*)_er))))->_header_comment)=(_hc);
  294. /*]*/
  295. /*IF*/if ((_ar)==((void*)(NULL))) {
  296. _ar=se_ma522(1,_er);
  297. }
  298. else {
  299. r522add_last(((T522*)_ar),_er);
  300. }
  301. /*FI*/}
  302. /*FI*/}
  303. /*FI*/_i=(_i)+(1);
  304. }
  305. /*IF*/if ((_ar)!=((void*)(NULL))) {
  306. {T541*n=malloc(sizeof(*n));
  307. *n=M541;
  308. /*[IRF3.3make*/((((T541*)(n)))->_list)=(_ar);
  309. /*]*/
  310. R=(T0*)n;
  311. }
  312. }
  313. /*FI*/}
  314. /*FI*/return R;
  315. }
  316. /*No:ONCE_FUNCTION.result_type*/
  317. /*No:ONCE_FUNCTION.fz_03*/
  318. /*No:ONCE_FUNCTION.em1*/
  319. /*No:ONCE_FUNCTION.obsolete_mark*/
  320. /*No:ONCE_FUNCTION.set_clients*/
  321. /*No:ONCE_FUNCTION.em2*/
  322. /*No:ONCE_FUNCTION.names*/
  323. /*No:ONCE_FUNCTION.require_assertion*/
  324. /*No:ONCE_FUNCTION.use_current_state*/
  325. /*No:ONCE_FUNCTION.code_ensure*/
  326. void r844set_rescue_compound(T844* C,T0* a1){
  327. /*IF*/if (((a1)!=((void*)(NULL)))&&(/*(IRF4.1is_deferred*/0/*)*/)) {
  328. r844error(r844start_position(C),((T0*)ms6_355));
  329. }
  330. /*FI*/C->_rescue_compound=a1;
  331. }
  332. int r844can_hide(T844* C,T0* a1,T0* a2){
  333. int R=0;
  334. /*IF*/if (((((T844*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  335. /*IF*/if ((((((T844*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  336. r683add_position(X359start_position(a1));
  337. r844error(r844start_position(C),((T0*)ms5_359));
  338. }
  339. /*FI*/}
  340. /*FI*//*IF*/if (((((T844*)C))->_arguments/*28*/)!=((void*)(X359arguments(a1)))) {
  341. /*IF*/if ((((((T844*)C))->_arguments/*28*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  342. r683add_position(X359start_position(a1));
  343. r844error(r844start_position(C),((T0*)ms6_359));
  344. }
  345.  else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T844*)C))->_arguments/*28*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  346. r683add_position(X359start_position(a1));
  347. r844error(r844start_position(C),((T0*)ms7_359));
  348. }
  349. /*FI*/}
  350. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  351. /*IF*/if (((((T844*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  352. /*IF*/if (!(X291is_a_in((((T844*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  353. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  354. r7append(((T7*)(oBC683explanation)),b1);
  355. }/*]*/
  356. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T368*)((T368*)a2)))->_current_type/*0*/);
  357. r7append(((T7*)(oBC683explanation)),b1);
  358. }/*]*/
  359. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  360. }
  361. /*FI*/}
  362. /*FI*/}
  363. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  364. /*IF*/if (((((T844*)C))->_arguments/*28*/)!=((void*)(NULL))) {
  365. /*IF*/if (!(r31is_a_in(((T31*)((((T844*)C))->_arguments/*28*/)),X359arguments(a1),a2))) {
  366. r683add_position(X359start_position(a1));
  367. r683add_position(r844start_position(C));
  368. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  369. r7append(((T7*)(oBC683explanation)),b1);
  370. }/*]*/
  371. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T368*)((T368*)a2)))->_current_type/*0*/);
  372. r7append(((T7*)(oBC683explanation)),b1);
  373. }/*]*/
  374. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  375. }
  376. /*FI*/}
  377. /*FI*/}
  378. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  379. return R;
  380. }
  381. /*No:ONCE_FUNCTION.header_comment*/
  382. /*No:ONCE_FUNCTION.routine_body*/
  383. int r844is_merge_with(T844* C,T0* a1,T0* a2){
  384. int R=0;
  385. /*IF*/if (((((T844*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  386. /*IF*/if ((((((T844*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  387. r683add_position(X359start_position(a1));
  388. r844error(r844start_position(C),((T0*)ms2_359));
  389. }
  390. /*FI*/}
  391. /*FI*//*IF*/if (((((T844*)C))->_arguments/*28*/)!=((void*)(X359arguments(a1)))) {
  392. /*IF*/if ((((((T844*)C))->_arguments/*28*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  393. r683add_position(X359start_position(a1));
  394. r844error(r844start_position(C),((T0*)ms3_359));
  395. }
  396.  else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T844*)C))->_arguments/*28*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  397. r683add_position(X359start_position(a1));
  398. r844error(r844start_position(C),((T0*)ms4_359));
  399. }
  400. /*FI*/}
  401. /*FI*//*IF*/if (((((T844*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  402. /*IF*/if (!(X291is_a_in((((T844*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  403. r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
  404. }
  405. /*FI*/}
  406. /*FI*//*IF*/if (((((T844*)C))->_arguments/*28*/)!=((void*)(NULL))) {
  407. /*IF*/if (!(r31is_a_in(((T31*)((((T844*)C))->_arguments/*28*/)),X359arguments(a1),a2))) {
  408. r683add_position(X359start_position(a1));
  409. r844error(r844start_position(C),((T0*)ms12_359));
  410. }
  411. /*FI*/}
  412. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  413. return R;
  414. }
  415. /*No:ONCE_FUNCTION.fz_dot*/
  416. /*No:ONCE_FUNCTION.set_ensure_assertion*/
  417. /*No:ONCE_FUNCTION.first_name*/
  418. /*No:ONCE_FUNCTION.clients*/
  419. void r844collect_for(T844* C,int a1){
  420. /*IF*/if ((a1)==(1001)) {
  421. /*IF*/if (((((T844*)C))->_require_assertion/*36*/)!=((void*)(NULL))) {
  422. /*IF*/if (!(r522fast_has(((T522*)(oBC359require_collector)),(((T844*)C))->_require_assertion/*36*/))) {
  423. r522add_last(((T522*)(oBC359require_collector)),(((T844*)C))->_require_assertion/*36*/);
  424. }
  425. /*FI*/}
  426. /*FI*/}
  427. else {
  428. /*IF*/if (((((T844*)C))->_ensure_assertion/*40*/)!=((void*)(NULL))) {
  429. /*[IRF3.3set_item*/((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=((((T633*)((T633*)((((T844*)C))->_ensure_assertion/*40*/))))->_header_comment/*4*/);
  430. /*]*/
  431. r633add_into(((T633*)((((T844*)C))->_ensure_assertion/*40*/)),oBC359assertion_collector);
  432. }
  433. /*FI*/}
  434. /*FI*/}
  435. void r844make_effective_routine(T844* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7){
  436. r844make_routine(C,a1,a2,a3,a4,a5);
  437. C->_local_vars=a6;
  438. C->_routine_body=a7;
  439. C->_use_current_state=1011;
  440. }
  441. void r844error(T0* a1,T0* a2){
  442. r683add_position(a1);
  443. r683error(((T683*)(oBC364eh)),a2);
  444. }
  445. /*No:ONCE_FUNCTION.base_class*/
  446. void r844make_e_feature(T844* C,T0* a1,T0* a2){
  447. C->_names=a1;
  448. C->_result_type=a2;
  449. }
  450. void r844check_obsolete(T844* C){
  451. /*IF*/if (!((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/)) {
  452. /*IF*/if (((((T844*)C))->_obsolete_mark/*32*/)!=((void*)(NULL))) {
  453. /*[IRF3.6append*/{T0* b1=((T0*)ms7_355);
  454. r7append(((T7*)(oBC683explanation)),b1);
  455. }/*]*/
  456. /*[IRF3.6append*/{T0* b1=(((T805*)((T805*)((((T844*)C))->_obsolete_mark/*32*/))))->_to_string/*12*/;
  457. r7append(((T7*)(oBC683explanation)),b1);
  458. }/*]*/
  459. r844warning(r844start_position(C),((T0*)ms137_470));
  460. }
  461. /*FI*/}
  462. /*FI*/}
  463. void r844warning(T0* a1,T0* a2){
  464. r683add_position(a1);
  465. r683warning(((T683*)(oBC364eh)),a2);
  466. }
  467. /*No:RUN_FEATURE_3.arguments*/
  468. /*No:RUN_FEATURE_3.actuals_clients*/
  469. void r845make(T845* C,T0* a1,T0* a2,T0* a3){
  470. C->_current_type=a1;
  471. C->_name=a2;
  472. C->_base_feature=a3;
  473. r199put(((T199*)((((T368*)((T368*)(r845run_class(C)))))->_feature_dictionary/*24*/)),(T0*)C,X776to_key(a2));
  474. r604incr_magic_count(((T604*)(oBC364small_eiffel)));
  475. C->_use_current_state=1015;
  476. r604push(((T604*)(oBC364small_eiffel)),(T0*)C);
  477. r845initialize(C);
  478. r604pop(((T604*)(oBC364small_eiffel)));
  479. }
  480. /*No:RUN_FEATURE_3.name*/
  481. int r845arg_count(T845* C){
  482. int R=0;
  483. /*IF*/if (((((T845*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  484. R=/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T845*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/;
  485. }
  486. /*FI*/return R;
  487. }
  488. /*No:RUN_FEATURE_3.local_vars*/
  489. /*No:RUN_FEATURE_3.base_feature*/
  490. /*No:RUN_FEATURE_3.start_position*/
  491. /*No:RUN_FEATURE_3.ensure_assertion*/
  492. int r845is_exported_in(T845* C,T0* a1){
  493. int R=0;
  494. R=r636gives_permission_to(((T636*)(r845clients(C))),a1);
  495. return R;
  496. }
  497. /*No:RUN_FEATURE_3.result_type*/
  498. void r845add_client(T845* C,T0* a1){
  499. int _i=0;
  500. /*IF*/if (((((T845*)C))->_actuals_clients/*12*/)==((void*)(NULL))) {
  501. {T187*n=malloc(sizeof(*n));
  502. *n=M187;
  503. r187with_capacity(n,4);
  504. C->_actuals_clients=(T0*)n;
  505. }
  506. r187add_last(((T187*)((((T845*)C))->_actuals_clients/*12*/)),a1);
  507. }
  508. else {
  509. _i=r187fast_index_of(((T187*)((((T845*)C))->_actuals_clients/*12*/)),a1);
  510. /*IF*/if ((_i)>((((T187*)((T187*)((((T845*)C))->_actuals_clients/*12*/))))->_upper/*8*/)) {
  511. r187add_last(((T187*)((((T845*)C))->_actuals_clients/*12*/)),a1);
  512. }
  513. /*FI*/}
  514. /*FI*/r368add_client(((T368*)(r845run_class(C))),a1);
  515. }
  516. /*No:RUN_FEATURE_3.require_assertion*/
  517. /*No:RUN_FEATURE_3.use_current_state*/
  518. /*No:RUN_FEATURE_3.current_type*/
  519. T0* r845run_class(T845* C){
  520. T0* R=NULL;
  521. R=X291run_class((((T845*)C))->_current_type/*4*/);
  522. return R;
  523. }
  524. /*No:RUN_FEATURE_3.ucs_not_computed*/
  525. /*No:RUN_FEATURE_3.routine_body*/
  526. T0* r845clients(T845* C){
  527. T0* R=NULL;
  528. T0* _bfbc=NULL;
  529. T0* _bc=NULL;
  530. /*IF*/if (((((T845*)C))->_clients_memory/*8*/)==((void*)(NULL))) {
  531. _bc=X291base_class((((T845*)C))->_current_type/*4*/);
  532. _bfbc=(((T297*)((T297*)((((T845*)C))->_base_feature/*44*/))))->_base_class/*4*/;
  533. /*IF*/if ((_bc)==((void*)(_bfbc))) {
  534. R=(((T297*)((T297*)((((T845*)C))->_base_feature/*44*/))))->_clients/*24*/;
  535. }
  536. else {
  537. R=r605clients_for(((T605*)_bc),(((T845*)C))->_name/*16*/);
  538. }
  539. /*FI*/C->_clients_memory=R;
  540. }
  541. else {
  542. R=(((T845*)C))->_clients_memory/*8*/;
  543. }
  544. /*FI*/return R;
  545. }
  546. /*No:RUN_FEATURE_3.clients_memory*/
  547. void r845initialize(T845* C){
  548. C->_arguments=(((T297*)((T297*)((((T845*)C))->_base_feature/*44*/))))->_arguments/*28*/;
  549. /*IF*/if (((((T845*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  550. C->_arguments=r31to_runnable(((T31*)((((T845*)C))->_arguments/*20*/)),(((T845*)C))->_current_type/*4*/);
  551. }
  552. /*FI*/C->_local_vars=(((T297*)((T297*)((((T845*)C))->_base_feature/*44*/))))->_local_vars/*20*/;
  553. /*IF*/if (((((T845*)C))->_local_vars/*48*/)!=((void*)(NULL))) {
  554. C->_local_vars=r620to_runnable(((T620*)((((T845*)C))->_local_vars/*48*/)),(((T845*)C))->_current_type/*4*/);
  555. }
  556. /*FI*/C->_routine_body=(((T297*)((T297*)((((T845*)C))->_base_feature/*44*/))))->_routine_body/*52*/;
  557. /*IF*/if (((((T845*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
  558. C->_routine_body=r592to_runnable(((T592*)((((T845*)C))->_routine_body/*32*/)),(((T845*)C))->_current_type/*4*/);
  559. }
  560. /*FI*//*IF*/if (r590require_check(((T590*)(oBC364run_control)))) {
  561. C->_require_assertion=r297run_require((T0*)C);
  562. }
  563. /*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
  564. C->_ensure_assertion=r297run_ensure((T0*)C);
  565. }
  566. /*FI*/}
  567. int r737gt(int a1,int a2){
  568. int R=0;
  569. T0* _n2=NULL;
  570. T0* _n1=NULL;
  571. _n1=X776to_key(/*X496*/((T0*)(((T808*)((T808*)(/*X321*/((T0*)r321item(((T321*)(oBC737rf_list)),a1))))))->_name/*16*/));
  572. _n2=X776to_key(/*X496*/((T0*)(((T808*)((T808*)(/*X321*/((T0*)r321item(((T321*)(oBC737rf_list)),a2))))))->_name/*16*/));
  573. R=r7_px_62(((T7*)_n1),_n2);
  574. return R;
  575. }
  576. /*No:SHORT.dos_system*/
  577. /*No:SHORT.short*/
  578. /*No:SHORT.fz_system_se*/
  579. /*No:SHORT.fz_sys*/
  580. void r737compute_run_class(T737* C,T0* a1){
  581. T0* _fga=NULL;
  582. int _i=0;
  583. T0* _gl=NULL;
  584. T0* _ct=NULL;
  585. T0* _t=NULL;
  586. T0* _sp=NULL;
  587. T0* _bcn=NULL;
  588. T0* _fgl=NULL;
  589. _bcn=(((T451*)((T451*)((((T605*)((T605*)a1)))->_base_class_name/*24*/))))->_to_string/*0*/;
  590. _sp=(((T451*)((T451*)((((T605*)((T605*)a1)))->_base_class_name/*24*/))))->_start_position/*4*/;
  591. _fgl=(((T605*)((T605*)a1)))->_formal_generic_list/*28*/;
  592. /*IF*/if ((((T0*)ms1_473))==((void*)(_bcn))) {
  593. {T669*n=malloc(sizeof(*n));
  594. *n=M669;
  595. r669make(n,_sp);
  596. _ct=(T0*)n;
  597. }
  598. }
  599.  else if ((((T0*)ms18_473))==((void*)(_bcn))) {
  600. {T252*n=malloc(sizeof(*n));
  601. *n=M252;
  602. r252make(n,_sp);
  603. _t=(T0*)n;
  604. }
  605. {T933*n=malloc(sizeof(*n));
  606. *n=M933;
  607. r933make(n,_sp,_t);
  608. _ct=(T0*)n;
  609. }
  610. }
  611.  else if ((((T0*)ms2_473))==((void*)(_bcn))) {
  612. {T669*n=malloc(sizeof(*n));
  613. *n=M669;
  614. r669make(n,_sp);
  615. _t=(T0*)n;
  616. }
  617. {T709*n=malloc(sizeof(*n));
  618. *n=M709;
  619. r709make(n,_sp,_t);
  620. _ct=(T0*)n;
  621. }
  622. }
  623.  else if ((((T0*)ms15_473))==((void*)(_bcn))) {
  624. {T788*n=malloc(sizeof(*n));
  625. *n=M788;
  626. r788make(n,_sp);
  627. _ct=(T0*)n;
  628. }
  629. }
  630.  else if ((((T0*)ms23_473))==((void*)(_bcn))) {
  631. {T209*n=malloc(sizeof(*n));
  632. *n=M209;
  633. r209make(n,_sp);
  634. _ct=(T0*)n;
  635. }
  636. }
  637.  else if ((((T0*)ms11_473))==((void*)(_bcn))) {
  638. {T388*n=malloc(sizeof(*n));
  639. *n=M388;
  640. r388make(n,_sp);
  641. _ct=(T0*)n;
  642. }
  643. }
  644.  else if ((((T0*)ms8_473))==((void*)(_bcn))) {
  645. {T252*n=malloc(sizeof(*n));
  646. *n=M252;
  647. r252make(n,_sp);
  648. _ct=(T0*)n;
  649. }
  650. }
  651.  else if ((((T0*)ms6_473))==((void*)(_bcn))) {
  652. {T707*n=malloc(sizeof(*n));
  653. *n=M707;
  654. r707make(n,_sp);
  655. _ct=(T0*)n;
  656. }
  657. }
  658.  else if ((((T0*)ms21_473))==((void*)(_bcn))) {
  659. {T900*n=malloc(sizeof(*n));
  660. *n=M900;
  661. r900make(n,_sp);
  662. _ct=(T0*)n;
  663. }
  664. }
  665.  else if ((((T0*)ms25_473))==((void*)(_bcn))) {
  666. {T491*n=malloc(sizeof(*n));
  667. *n=M491;
  668. r491make(n,_sp);
  669. _ct=(T0*)n;
  670. }
  671. }
  672.  else if ((_fgl)!=((void*)(NULL))) {
  673. _i=1;
  674. {T701*n=malloc(sizeof(*n));
  675. *n=M701;
  676. r701with_capacity(n,/*(IRF4.6count*/(((T681*)((T681*)((((T881*)((T881*)_fgl)))->_list/*4*/))))->_upper/*8*//*)*/,1);
  677. _gl=(T0*)n;
  678. }
  679. while (!((_i)>(/*(IRF4.6count*/(((T681*)((T681*)((((T881*)((T881*)_fgl)))->_list/*4*/))))->_upper/*8*//*)*/))) {
  680. _fga=/*(IRF4.6item*/r681item(((T681*)((((T881*)((T881*)_fgl)))->_list/*4*/)),_i)/*)*/;
  681. /*IF*/if (((((T33*)((T33*)_fga)))->_constraint/*4*/)==((void*)(NULL))) {
  682. {T669*n=malloc(sizeof(*n));
  683. *n=M669;
  684. r669make(n,_sp);
  685. _t=(T0*)n;
  686. }
  687. }
  688. else {
  689. _t=(((T33*)((T33*)_fga)))->_constraint/*4*/;
  690. }
  691. /*FI*/r701add_last(((T701*)_gl),_t);
  692. _i=(_i)+(1);
  693. }
  694. {T720*n=malloc(sizeof(*n));
  695. *n=M720;
  696. r720make(n,(((T605*)((T605*)a1)))->_base_class_name/*24*/,_gl);
  697. _ct=(T0*)n;
  698. }
  699. }
  700. else {
  701. {T657*n=malloc(sizeof(*n));
  702. *n=M657;
  703. /*[IRF3.3make*/((((T657*)(n)))->_base_class_name)=((((T605*)((T605*)a1)))->_base_class_name/*24*/);
  704. /*]*/
  705. _ct=(T0*)n;
  706. }
  707. }
  708. /*FI*/C->_run_class=X291run_class(_ct);
  709. }
  710. /*No:SHORT.us_integer*/
  711. /*No:SHORT.unix_system*/
  712. /*No:SHORT.exit_failure_code*/
  713. /*No:SHORT.vms_system*/
  714. T0* r737small_eiffel_directory(T737* C){
  715. if (fBC364small_eiffel_directory==0){
  716. T0* R=NULL;
  717. char _slash=0;
  718. int _i=0;
  719. fBC364small_eiffel_directory=1;
  720. R=r737get_environment_variable(C,((T0*)ms121_470));
  721. /*IF*/if ((R)==((void*)(NULL))) {
  722. R=r7twin(((T7*)(((T0*)ms121_470))));
  723. r7to_upper(((T7*)R));
  724. R=r737get_environment_variable(C,R);
  725. /*IF*/if ((R)!=((void*)(NULL))) {
  726. r7to_upper(((T7*)(((T0*)ms121_470))));
  727. }
  728. /*FI*/}
  729. /*FI*//*IF*/if ((R)==((void*)(NULL))) {
  730. R=((T0*)ms1_364);
  731. }
  732. /*FI*/_i=(((T7*)((T7*)R)))->_count/*4*/;
  733. while (!((_i)<(0))) {
  734. _slash=/*(IRF4.6item*/((((T7*)((T7*)R)))->_storage/*0*/)[(_i)-(1)]/*)*/;
  735. /*IF*/if ((r3is_letter(_slash))||(r3is_digit(_slash))) {
  736. _i=(_i)-(1);
  737. }
  738. else {
  739. _i=-(1);
  740. }
  741. /*FI*/}
  742. /*IF*/if ((_i)==(0)) {
  743. r7extend(((T7*)R),'\57');
  744. }
  745.  else if (!((r7last(((T7*)R)))==(_slash))) {
  746. r7extend(((T7*)R),_slash);
  747. }
  748. /*FI*/oBC364small_eiffel_directory=R;}
  749. return oBC364small_eiffel_directory;}
  750. /*No:SHORT.root_class*/
  751. /*No:SHORT.us_array*/
  752. void r737automat(T737* C){
  753. T0* _a=NULL;
  754. int _arg=0;
  755. _arg=1;
  756. while (!((_arg)>(/*(IRF4.9argument_count*/(((T927*)((T927*)(r737command_arguments()))))->_upper/*8*//*)*/))) {
  757. _a=r737argument(_arg);
  758. /*IF*/if (r7is_equal(ms8_737,_a)) {
  759. C->_sort=1;
  760. }
  761.  else if (r7is_equal(ms9_737,_a)) {
  762. C->_short=1;
  763. }
  764.  else if (r7is_equal(ms10_737,_a)) {
  765. /*[IRF3.3set_case_insensitive*/((((T818*)(((T818*)(oBC364eiffel_parser)))))->_case_insensitive)=(1);
  766. /*]*/
  767. }
  768.  else if (r7is_equal(ms11_737,_a)) {
  769. /*[IRF3.3set_no_warning*/((((T683*)(((T683*)(oBC364eh)))))->_no_warning)=(1);
  770. /*]*/
  771. }
  772.  else if ((/*(IRF4.6item*/((((T7*)((T7*)_a)))->_storage/*0*/)[(1)-(1)]/*)*/)==('\55')) {
  773. r7remove_first(((T7*)_a),1);
  774. C->_format=_a;
  775. }
  776. else {
  777. /*IF*/if (r7has_suffix(((T7*)_a),((T0*)ms25_364))) {
  778. /*[IRF3.6remove_suffix*/{T7* C1=((T7*)_a);
  779. T0* b1=((T0*)ms25_364);
  780. r7remove_last(C1,(((T7*)((T7*)b1)))->_count/*4*/);
  781. }/*]*/
  782. }
  783. /*FI*//*IF*/if (r7same_as(((T7*)(((T0*)ms5_473))),_a)) {
  784. _a=((T0*)ms4_473);
  785. }
  786. /*FI*/C->_root_class=_a;
  787. }
  788. /*FI*/_arg=(_arg)+(1);
  789. }
  790. }
  791. /*No:SHORT.amiga_system*/
  792. void r737make(T737* C){
  793. T0* _ccl=NULL;
  794. int _i=0;
  795. T0* _bc=NULL;
  796. /*IF*/if ((/*(IRF4.9argument_count*/(((T927*)((T927*)(r737command_arguments()))))->_upper/*8*//*)*/)==(0)) {
  797. r441put_string(((T441*)(oBC1std_error)),((T0*)ms1_737));
  798. r737print_help(C,((T0*)ms2_737));
  799. exit(1);
  800. }
  801. else {
  802. r737automat(C);
  803. /*[IRF3.3set_short_flag*/((((T604*)(((T604*)(oBC364small_eiffel)))))->_short_flag)=(1);
  804. /*]*/
  805. _bc=r604load_class(((T604*)(oBC364small_eiffel)),(((T737*)C))->_root_class/*0*/);
  806. r654add_last(((T654*)(oBC737parents)),_bc);
  807. /*IF*/if (!((((T737*)C))->_short/*16*/)) {
  808. r605up_to_any_in(((T605*)_bc),oBC737parents);
  809. }
  810. /*FI*//*IF*/if (((((T737*)C))->_format/*4*/)==((void*)(NULL))) {
  811. C->_format=((T0*)ms3_737);
  812. }
  813. /*FI*/r737compute_run_class(C,_bc);
  814. r580start(((T580*)(oBC364short_print)),(((T737*)C))->_format/*4*/,_bc,(((T737*)C))->_run_class/*8*/);
  815. _ccl=(((T605*)((T605*)_bc)))->_creation_clause_list/*44*/;
  816. /*IF*/if (((_ccl)==((void*)(NULL)))||(!(r378short(((T378*)_ccl))))) {
  817. r580hook(((T580*)(oBC364short_print)),((T0*)ms4_737));
  818. }
  819. /*FI*/r737compute_rf_list(C);
  820. /*IF*/if ((((T737*)C))->_sort/*12*/) {
  821. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms5_737),((T0*)ms6_737));
  822. /*[IRF3.2sort_rf_list*/{int _moved=0;
  823. int _buble=0;
  824. int _max=0;
  825. int _min=0;
  826. _max=/*X321*/((int)(((T321*)((T321*)(oBC737rf_list))))->_upper/*12*/);
  827. _min=0;
  828. _moved=1;
  829. while (!(!(_moved))) {
  830. _moved=0;
  831. /*IF*/if (((_max)-(_min))>(0)) {
  832. _buble=(_min)+(1);
  833. while (!((_buble)>(_max))) {
  834. /*IF*/if (r737gt((_buble)-(1),_buble)) {
  835. X321swap(oBC737rf_list,(_buble)-(1),_buble);
  836. _moved=1;
  837. }
  838. /*FI*/_buble=(_buble)+(1);
  839. }
  840. _max=(_max)-(1);
  841. }
  842. /*FI*//*IF*/if ((_moved)&&(((_max)-(_min))>(0))) {
  843. _moved=0;
  844. _buble=(_max)-(1);
  845. while (!((_buble)<(_min))) {
  846. /*IF*/if (r737gt(_buble,(_buble)+(1))) {
  847. X321swap(oBC737rf_list,_buble,(_buble)+(1));
  848. _moved=1;
  849. }
  850. /*FI*/_buble=(_buble)-(1);
  851. }
  852. _min=(_min)+(1);
  853. }
  854. /*FI*/}
  855. }/*]*/
  856. _i=0;
  857. while (!((_i)>(/*X321*/((int)(((T321*)((T321*)(oBC737rf_list))))->_upper/*12*/)))) {
  858. r580a_run_feature(((T580*)(oBC364short_print)),/*X321*/((T0*)r321item(((T321*)(oBC737rf_list)),_i)));
  859. _i=(_i)+(1);
  860. }
  861. r580hook(((T580*)(oBC364short_print)),((T0*)ms7_737));
  862. }
  863. /*FI*/r580finish(((T580*)(oBC364short_print)));
  864. }
  865. /*FI*/}
  866. /*No:SHORT.format*/
  867. /*No:SHORT.us_pointer*/
  868. /*No:SHORT.help_suffix*/
  869. T0*oBC364help_file_name=NULL;
  870. void r737compute_rf_list(T737* C){
  871. T0* _fcl=NULL;
  872. T0* _rc=NULL;
  873. T0* _bc=NULL;
  874. int _i=0;
  875. _i=(((T654*)((T654*)(oBC737parents))))->_upper/*8*/;
  876. _rc=(((T737*)C))->_run_class/*8*/;
  877. while (!((_i)<(0))) {
  878. _bc=/*(IRF4.6item*/((((T654*)((T654*)(oBC737parents))))->_storage/*0*/)[_i]/*)*/;
  879. _fcl=(((T605*)((T605*)_bc)))->_feature_clause_list/*48*/;
  880. /*IF*/if ((_fcl)!=((void*)(NULL))) {
  881. r913for_short(((T913*)_fcl),(((T605*)((T605*)_bc)))->_base_class_name/*24*/,(((T737*)C))->_sort/*12*/,oBC737rf_list,_rc);
  882. }
  883. /*FI*/_i=(_i)-(1);
  884. }
  885. }
  886. /*No:SHORT.us_string*/
  887. void r737add_directory(T737* C,T0* a1,T0* a2){
  888. /*IF*/if ((((T0*)ms17_364))==((void*)(r737system_name(C)))) {
  889. r7set_last(((T7*)a1),'\57');
  890. r7append(((T7*)a1),a2);
  891. r7set_last(((T7*)a1),'\57');
  892. }
  893.  else if ((((T0*)ms19_364))==((void*)(r737system_name(C)))) {
  894. r7set_last(((T7*)a1),'\134');
  895. r7append(((T7*)a1),a2);
  896. r7set_last(((T7*)a1),'\134');
  897. }
  898.  else if ((((T0*)ms15_364))==((void*)(r737system_name(C)))) {
  899. r7set_last(((T7*)a1),'\72');
  900. r7append(((T7*)a1),a2);
  901. r7set_last(((T7*)a1),'\72');
  902. }
  903.  else if ((((T0*)ms14_364))==((void*)(r737system_name(C)))) {
  904. r7set_last(((T7*)a1),'\134');
  905. r7append(((T7*)a1),a2);
  906. r7set_last(((T7*)a1),'\134');
  907. }
  908.  else if ((((T0*)ms16_364))==((void*)(r737system_name(C)))) {
  909. r7set_last(((T7*)a1),'\134');
  910. r7append(((T7*)a1),a2);
  911. r7set_last(((T7*)a1),'\134');
  912. }
  913.  else if ((((T0*)ms13_364))==((void*)(r737system_name(C)))) {
  914. r7set_last(((T7*)a1),'\57');
  915. r7append(((T7*)a1),a2);
  916. r7set_last(((T7*)a1),'\57');
  917. }
  918.  else if ((((T0*)ms18_364))==((void*)(r737system_name(C)))) {
  919. r7set_last(((T7*)a1),'\135');
  920. r7remove_last(((T7*)a1),1);
  921. r7set_last(((T7*)a1),'\56');
  922. r7append(((T7*)a1),a2);
  923. r7set_last(((T7*)a1),'\135');
  924. }
  925. /*FI*/}
  926. T670 oBC1file_tools=0;
  927. /*No:SHORT.windows_system*/
  928. T0* r737get_environment_variable(T737* C,T0* a1){
  929. T0* R=NULL;
  930. void* _p=0;
  931. _p=r7to_external(((T7*)a1));
  932. R=(NULL==(_p=getenv((char*)_p)))?NULL:((T0*)e2s((char*)_p));
  933. return R;
  934. }
  935. void r737print_help(T737* C,T0* a1){
  936. r7copy(((T7*)(oBC364help_file_name)),r737small_eiffel_directory(C));
  937. r737add_directory(C,oBC364help_file_name,((T0*)ms2_364));
  938. r7append(((T7*)(oBC364help_file_name)),a1);
  939. /*IF*/if (!(r7has_suffix(((T7*)(oBC364help_file_name)),((T0*)ms39_364)))) {
  940. r7append(((T7*)(oBC364help_file_name)),((T0*)ms39_364));
  941. }
  942. /*FI*//*IF*/if (!(r737file_exists(oBC364help_file_name))) {
  943. r306w_put_string(((T0*)ms3_364));
  944. r306w_put_string(oBC364help_file_name);
  945. r306w_put_string(((T0*)ms242_470));
  946. exit(1);
  947. }
  948. /*FI*/r830append_file(((T830*)(oBC1std_output)),oBC364help_file_name);
  949. }
  950. /*No:SHORT.us_character*/
  951. int fBC1command_arguments=0;
  952. T0*oBC1command_arguments=NULL;
  953. T0* r737command_arguments(void){
  954. if (fBC1command_arguments==0){
  955. T0* R=NULL;
  956. T0* _arg=NULL;
  957. int _i=0;
  958. fBC1command_arguments=1;
  959. _i=se_argc;
  960. {T927*n=malloc(sizeof(*n));
  961. *n=M927;
  962. r927make(n,_i);
  963. R=(T0*)n;
  964. }
  965. while (!((_i)==(0))) {
  966. _i=(_i)-(1);
  967. _arg=((T0*)e2s(se_argv[_i]));
  968. /*[IRF3.5put*/((((T927*)((T927*)R)))->_storage/*0*/)[_i]=(_arg);
  969. /*]*/
  970. }
  971. oBC1command_arguments=R;}
  972. return oBC1command_arguments;}
  973. T0* r737system_name(T737* C){
  974. if (fBC364system_name==0){
  975. T0* R=NULL;
  976. int _i=0;
  977. fBC364system_name=1;
  978. r7copy(((T7*)(oBC364tmp_path)),r737small_eiffel_directory(C));
  979. /*IF*/if (r7has(((T7*)(oBC364tmp_path)),'\57')) {
  980. r7set_last(((T7*)(oBC364tmp_path)),'\57');
  981. r7append(((T7*)(oBC364tmp_path)),((T0*)ms126_470));
  982. r7extend(((T7*)(oBC364tmp_path)),'\57');
  983. r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
  984. r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
  985. }
  986. /*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
  987. r7copy(((T7*)(oBC364tmp_path)),r737small_eiffel_directory(C));
  988. /*IF*/if (r7has(((T7*)(oBC364tmp_path)),'\134')) {
  989. r7set_last(((T7*)(oBC364tmp_path)),'\134');
  990. r7append(((T7*)(oBC364tmp_path)),((T0*)ms126_470));
  991. r7extend(((T7*)(oBC364tmp_path)),'\134');
  992. r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
  993. r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
  994. }
  995. /*FI*/}
  996. /*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
  997. r7copy(((T7*)(oBC364tmp_path)),r737small_eiffel_directory(C));
  998. /*IF*/if (r7has(((T7*)(oBC364tmp_path)),'\72')) {
  999. r7set_last(((T7*)(oBC364tmp_path)),'\72');
  1000. r7append(((T7*)(oBC364tmp_path)),((T0*)ms126_470));
  1001. r7extend(((T7*)(oBC364tmp_path)),'\72');
  1002. r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
  1003. r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
  1004. }
  1005. /*FI*/}
  1006. /*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
  1007. r7copy(((T7*)(oBC364tmp_path)),r737small_eiffel_directory(C));
  1008. /*IF*/if (r7has(((T7*)(oBC364tmp_path)),'\135')) {
  1009. r7set_last(((T7*)(oBC364tmp_path)),'\135');
  1010. r7remove_last(((T7*)(oBC364tmp_path)),1);
  1011. r7extend(((T7*)(oBC364tmp_path)),'\56');
  1012. r7append(((T7*)(oBC364tmp_path)),((T0*)ms126_470));
  1013. r7extend(((T7*)(oBC364tmp_path)),'\135');
  1014. r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
  1015. r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
  1016. }
  1017. /*FI*/}
  1018. /*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
  1019. r7copy(((T7*)(oBC364tmp_path)),r737small_eiffel_directory(C));
  1020. r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
  1021. r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
  1022. }
  1023. /*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
  1024. r306w_put_string(((T0*)ms20_364));
  1025. r306w_put_string(((T0*)ms127_470));
  1026. r306w_put_string(((T0*)ms21_364));
  1027. r306w_put_string(r737small_eiffel_directory(C));
  1028. r306w_put_string(((T0*)ms242_470));
  1029. exit(1);
  1030. }
  1031. /*FI*/r675read_line(((T675*)(oBC364tmp_file_read)));
  1032. R=oBC762last_string;
  1033. _i=r52index_of(((T52*)(oBC364system_list)),R);
  1034. r675disconnect(((T675*)(oBC364tmp_file_read)));
  1035. /*IF*/if ((_i)>((((T52*)((T52*)(oBC364system_list))))->_upper/*8*/)) {
  1036. r306w_put_string(((T0*)ms22_364));
  1037. r306w_put_string(oBC364tmp_path);
  1038. r306w_put_string(((T0*)ms23_364));
  1039. _i=1;
  1040. while (!((_i)>((((T52*)((T52*)(oBC364system_list))))->_upper/*8*/))) {
  1041. r306w_put_string(r52item(((T52*)(oBC364system_list)),_i));
  1042. r306w_put_character('\n');
  1043. _i=(_i)+(1);
  1044. }
  1045. }
  1046. else {
  1047. R=r52item(((T52*)(oBC364system_list)),_i);
  1048. r306put_string(((T306*)(oBC364echo)),((T0*)ms24_364));
  1049. r306put_string(((T306*)(oBC364echo)),R);
  1050. r306put_string(((T306*)(oBC364echo)),((T0*)ms242_470));
  1051. }
  1052. /*FI*/oBC364system_name=R;}
  1053. return oBC364system_name;}
  1054. /*No:SHORT.fz_b0*/
  1055. /*No:SHORT.us_bit_n*/
  1056. /*No:SHORT.us_real*/
  1057. /*No:SHORT.sort_rf_list*/
  1058. /*No:SHORT.fz_se*/
  1059. /*No:SHORT.os2_system*/
  1060. /*No:SHORT.sort*/
  1061. T0*oBC737rf_list=NULL;
  1062. /*No:SHORT.run_class*/
  1063. int r737file_exists(T0* a1){
  1064. int R=0;
  1065. R=r670is_readable(a1);
  1066. return R;
  1067. }
  1068. /*No:SHORT.us_boolean*/
  1069. /*No:SHORT.us_double*/
  1070. /*No:SHORT.argument_count*/
  1071. /*No:SHORT.macintosh_system*/
  1072. /*No:SHORT.us_bit_n_ref*/
  1073. /*No:SHORT.eiffel_suffix*/
  1074. T0*oBC737parents=NULL;
  1075. T0* r737argument(int a1){
  1076. T0* R=NULL;
  1077. R=/*(IRF4.6item*/((((T927*)((T927*)(r737command_arguments()))))->_storage/*0*/)[a1]/*)*/;
  1078. return R;
  1079. }
  1080. /*No:SHORT.us_native_array*/
  1081. /*No:SHORT.us_any*/
  1082. T0* r530add_comment(T530* C,T0* a1){
  1083. T0* R=NULL;
  1084. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1085. R=(T0*)C;
  1086. }
  1087.  else {/*AT*//*IF*/if ((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(1)) {
  1088. R=(T0*)C;
  1089. }
  1090. else {
  1091. {T59*n=malloc(sizeof(*n));
  1092. *n=M59;
  1093. r59make(n,(T0*)C,a1);
  1094. R=(T0*)n;
  1095. }
  1096. }
  1097. /*FI*/}
  1098. /*FI*/return R;
  1099. }
  1100. /*No:IFTHENELSE.make*/
  1101. /*No:IFTHENELSE.nb_errors*/
  1102. /*No:IFTHENELSE.set_else_compound*/
  1103. /*No:IFTHENELSE.start_position*/
  1104. T0* r530to_runnable(T530* C,T0* a1){
  1105. T0* R=NULL;
  1106. T0* _ec=NULL;
  1107. T0* _itl=NULL;
  1108. int _ne=0;
  1109. _ne=/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/;
  1110. /*IF*/if (((((T530*)C))->_run_compound/*4*/)==((void*)(NULL))) {
  1111. C->_run_compound=a1;
  1112. _itl=r712to_runnable(((T712*)((((T530*)C))->_ifthenlist/*12*/)),a1);
  1113. /*IF*/if ((_itl)==((void*)(NULL))) {
  1114. }
  1115. else {
  1116. C->_ifthenlist=_itl;
  1117. }
  1118. /*FI*//*IF*/if ((((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)-(_ne))==(0))&&(((((T530*)C))->_else_compound/*16*/)!=((void*)(NULL)))) {
  1119. _ec=r592to_runnable(((T592*)((((T530*)C))->_else_compound/*16*/)),r530current_type(C));
  1120. /*IF*/if ((_ec)==((void*)(NULL))) {
  1121. }
  1122. else {
  1123. C->_else_compound=_ec;
  1124. }
  1125. /*FI*/}
  1126. /*FI*//*IF*/if ((_itl)!=((void*)(NULL))) {
  1127. R=(T0*)C;
  1128. }
  1129. /*FI*/}
  1130. else {
  1131. R=r530to_runnable(((T530*)(r530twin(C))),a1);
  1132. }
  1133. /*FI*/return R;
  1134. }
  1135. T0* r530twin(T530* C){
  1136. T0* R=NULL;
  1137. R=malloc(sizeof(*C));
  1138. *((T530*)R)=M530;
  1139. r530copy(((T530*)R),((T0*)C));
  1140. return R;
  1141. }
  1142. /*No:IFTHENELSE.ifthenlist*/
  1143. /*No:IFTHENELSE.else_compound*/
  1144. void r530copy(T530* C,T0* a1){
  1145. C->_start_position=(((T530*)((T530*)a1)))->_start_position/*8*/;
  1146. C->_ifthenlist=(((T530*)((T530*)a1)))->_ifthenlist/*12*/;
  1147. C->_else_compound=(((T530*)((T530*)a1)))->_else_compound/*16*/;
  1148. }
  1149. T0* r530current_type(T530* C){
  1150. T0* R=NULL;
  1151. /*IF*/if (((((T530*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
  1152. R=(((T592*)((T592*)((((T530*)C))->_run_compound/*4*/))))->_current_type/*4*/;
  1153. }
  1154. /*FI*/return R;
  1155. }
  1156. /*No:IFTHENELSE.run_compound*/
  1157. void r530add_if_then(T530* C,T0* a1,T0* a2){
  1158. T0* _ifthen=NULL;
  1159. {T809*n=malloc(sizeof(*n));
  1160. *n=M809;
  1161. r809make(n,a1,a2);
  1162. _ifthen=(T0*)n;
  1163. }
  1164. /*IF*/if (((((T530*)C))->_ifthenlist/*12*/)==((void*)(NULL))) {
  1165. {T712*n=malloc(sizeof(*n));
  1166. *n=M712;
  1167. /*[IRF3.3make*/((((T712*)(n)))->_list)=(se_ma948(1,_ifthen));
  1168. /*]*/
  1169. C->_ifthenlist=(T0*)n;
  1170. }
  1171. }
  1172. else {
  1173. /*[IRF3.5add_last*/r948add_last(((T948*)((((T712*)((T712*)((((T530*)C))->_ifthenlist/*12*/))))->_list/*0*/)),_ifthen);
  1174. /*]*/
  1175. }
  1176. /*FI*/}
  1177. /*No:IFTHENELSE.end_mark_comment*/
  1178. /*No:EXTERNAL_PROCEDURE.arguments*/
  1179. T0* r883try_to_undefine(T883* C,T0* a1,T0* a2){
  1180. T0* R=NULL;
  1181. X776undefine_in(a1,a2);
  1182. R=r883try_to_undefine_aux(C,a1,a2);
  1183. /*IF*/if ((R)!=((void*)(NULL))) {
  1184. /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T883*)C))->_clients/*20*/);
  1185. /*]*/
  1186. }
  1187. else {
  1188. r605fatal_undefine(((T605*)a2),a1);
  1189. }
  1190. /*FI*/return R;
  1191. }
  1192. /*No:EXTERNAL_PROCEDURE.is_deferred*/
  1193. /*No:EXTERNAL_PROCEDURE.fz_bad_assertion*/
  1194. T0* r883runnable(T0* a1,T0* a2,T0* a3){
  1195. T0* R=NULL;
  1196. T0* _a=NULL;
  1197. int _i=0;
  1198. /*IF*/if (!(r608empty(((T608*)a1)))) {
  1199. R=r608twin(((T608*)a1));
  1200. _i=(((T608*)((T608*)R)))->_upper/*8*/;
  1201. while (!((_i)==(0))) {
  1202. r604push(((T604*)(oBC364small_eiffel)),a3);
  1203. _a=r348to_runnable(((T348*)(r608item(((T608*)R),_i))),a2);
  1204. /*IF*/if ((_a)==((void*)(NULL))) {
  1205. r883error(r348start_position(((T348*)(r608item(((T608*)R),_i)))),((T0*)ms57_470));
  1206. }
  1207. else {
  1208. /*[IRF3.6put*/{T608* C1=((T608*)R);
  1209. T0* b1=_a;
  1210. int b2=_i;
  1211. ((((T608*)C1))->_storage/*0*/)[(b2)-((((T608*)C1))->_lower/*12*/)]=(b1);
  1212. }/*]*/
  1213. }
  1214. /*FI*/r604pop(((T604*)(oBC364small_eiffel)));
  1215. _i=(_i)-(1);
  1216. }
  1217. }
  1218. /*FI*/return R;
  1219. }
  1220. /*No:EXTERNAL_PROCEDURE.rescue_compound*/
  1221. void r883add_into(T883* C,T0* a1){
  1222. T0* _fn=NULL;
  1223. int _i=0;
  1224. C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T883*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
  1225. _i=1;
  1226. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T883*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  1227. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T883*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
  1228. /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
  1229. _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)/*)*//*)*/);
  1230. r683add_position(X776start_position(_fn));
  1231. r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T883*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
  1232. r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
  1233. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  1234. r7append(((T7*)(oBC683explanation)),b1);
  1235. }/*]*/
  1236. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1237. }
  1238. else {
  1239. r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
  1240. }
  1241. /*FI*/_i=(_i)+(1);
  1242. }
  1243. }
  1244. /*No:EXTERNAL_PROCEDURE.end_comment*/
  1245. T0* r883try_to_undefine_aux(T883* C,T0* a1,T0* a2){
  1246. T0* R=NULL;
  1247. {T853*n=malloc(sizeof(*n));
  1248. *n=M853;
  1249. r853from_effective(n,a1,(((T883*)C))->_arguments/*24*/,(((T883*)C))->_require_assertion/*32*/,(((T883*)C))->_ensure_assertion/*36*/,a2);
  1250. R=(T0*)n;
  1251. }
  1252. return R;
  1253. }
  1254. void r883make(T883* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7){
  1255. r883make_routine(C,a1,a2,a3,a4,a5);
  1256. r883make_external_routine(C,a6,a7);
  1257. }
  1258. /*No:EXTERNAL_PROCEDURE.nb_errors*/
  1259. /*No:EXTERNAL_PROCEDURE.native*/
  1260. void r883make_routine(T883* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  1261. r883make_e_feature(C,a1,NULL);
  1262. C->_header_comment=a4;
  1263. C->_arguments=a2;
  1264. C->_obsolete_mark=a3;
  1265. C->_require_assertion=a5;
  1266. }
  1267. void r883set_header_comment(T883* C,T0* a1){
  1268. /*IF*/if (((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)>(1))) {
  1269. C->_end_comment=a1;
  1270. }
  1271. /*FI*/}
  1272. T0* r883start_position(T883* C){
  1273. T0* R=NULL;
  1274. R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T883*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  1275. return R;
  1276. }
  1277. T0* r883to_run_feature(T883* C,T0* a1,T0* a2){
  1278. T0* R=NULL;
  1279. r883check_obsolete(C);
  1280. {T906*n=malloc(sizeof(*n));
  1281. *n=M906;
  1282. r906make(n,a1,a2,(T0*)C);
  1283. R=(T0*)n;
  1284. }
  1285. return R;
  1286. }
  1287. /*No:EXTERNAL_PROCEDURE.alias_string*/
  1288. /*No:EXTERNAL_PROCEDURE.ensure_assertion*/
  1289. /*No:EXTERNAL_PROCEDURE.code_require*/
  1290. T0* r883run_ensure(T0* a1){
  1291. T0* R=NULL;
  1292. T0* _r=NULL;
  1293. r608clear(((T608*)(oBC359assertion_collector)));
  1294. /*[IRF3.3clear*/{T0* _default_item=NULL;
  1295. ((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
  1296. }/*]*/
  1297. r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/)))),1002,/*X496*/((T0*)(((T808*)((T808*)a1)))->_name/*16*/));
  1298. _r=r883runnable(oBC359assertion_collector,/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/),a1);
  1299. /*IF*/if ((_r)!=((void*)(NULL))) {
  1300. {T633*n=malloc(sizeof(*n));
  1301. *n=M633;
  1302. r633from_runnable(n,_r);
  1303. R=(T0*)n;
  1304. }
  1305. /*[IRF3.3set_header_comment*/((((T633*)(((T633*)R))))->_header_comment)=((((T56*)((T56*)(oBC359header_comment_memory))))->_item/*0*/);
  1306. /*]*/
  1307. /*[IRF3.3clear*/{T0* _default_item=NULL;
  1308. ((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
  1309. }/*]*/
  1310. }
  1311. /*FI*/return R;
  1312. }
  1313. T0* r883run_require(T0* a1){
  1314. T0* R=NULL;
  1315. T0* _ar=NULL;
  1316. T0* _hc=NULL;
  1317. T0* _er=NULL;
  1318. T0* _r=NULL;
  1319. int _i=0;
  1320. r522clear(((T522*)(oBC359require_collector)));
  1321. r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/)))),1001,/*X496*/((T0*)(((T808*)((T808*)a1)))->_name/*16*/));
  1322. /*IF*/if (!(r522empty(((T522*)(oBC359require_collector))))) {
  1323. _i=1;
  1324. while (!((_i)>((((T522*)((T522*)(oBC359require_collector))))->_upper/*8*/))) {
  1325. _er=r522item(((T522*)(oBC359require_collector)),_i);
  1326. _hc=(((T343*)((T343*)_er)))->_header_comment/*4*/;
  1327. /*IF*/if (!(/*(IRF4.7empty*/((((T343*)((T343*)_er)))->_list/*8*/)==(NULL)/*)*/)) {
  1328. _r=r883runnable((((T343*)((T343*)_er)))->_list/*8*/,/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/),a1);
  1329. /*IF*/if ((_r)!=((void*)(NULL))) {
  1330. {T343*n=malloc(sizeof(*n));
  1331. *n=M343;
  1332. r343from_runnable(n,_r);
  1333. _er=(T0*)n;
  1334. }
  1335. /*[IRF3.3set_header_comment*/((((T343*)(((T343*)_er))))->_header_comment)=(_hc);
  1336. /*]*/
  1337. /*IF*/if ((_ar)==((void*)(NULL))) {
  1338. _ar=se_ma522(1,_er);
  1339. }
  1340. else {
  1341. r522add_last(((T522*)_ar),_er);
  1342. }
  1343. /*FI*/}
  1344. /*FI*/}
  1345. /*FI*/_i=(_i)+(1);
  1346. }
  1347. /*IF*/if ((_ar)!=((void*)(NULL))) {
  1348. {T541*n=malloc(sizeof(*n));
  1349. *n=M541;
  1350. /*[IRF3.3make*/((((T541*)(n)))->_list)=(_ar);
  1351. /*]*/
  1352. R=(T0*)n;
  1353. }
  1354. }
  1355. /*FI*/}
  1356. /*FI*/return R;
  1357. }
  1358. /*No:EXTERNAL_PROCEDURE.result_type*/
  1359. /*No:EXTERNAL_PROCEDURE.fz_03*/
  1360. /*No:EXTERNAL_PROCEDURE.em1*/
  1361. /*No:EXTERNAL_PROCEDURE.obsolete_mark*/
  1362. /*No:EXTERNAL_PROCEDURE.set_clients*/
  1363. /*No:EXTERNAL_PROCEDURE.em2*/
  1364. /*No:EXTERNAL_PROCEDURE.names*/
  1365. /*No:EXTERNAL_PROCEDURE.require_assertion*/
  1366. /*No:EXTERNAL_PROCEDURE.code_ensure*/
  1367. void r883set_rescue_compound(T883* C,T0* a1){
  1368. /*IF*/if (((a1)!=((void*)(NULL)))&&(/*(IRF4.1is_deferred*/0/*)*/)) {
  1369. r883error(r883start_position(C),((T0*)ms6_355));
  1370. }
  1371. /*FI*/C->_rescue_compound=a1;
  1372. }
  1373. void r883make_external_routine(T883* C,T0* a1,T0* a2){
  1374. C->_native=a1;
  1375. C->_alias_string=a2;
  1376. }
  1377. int r883can_hide(T883* C,T0* a1,T0* a2){
  1378. int R=0;
  1379. /*IF*/if (((((T883*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  1380. /*IF*/if ((((((T883*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  1381. r683add_position(X359start_position(a1));
  1382. r883error(r883start_position(C),((T0*)ms5_359));
  1383. }
  1384. /*FI*/}
  1385. /*FI*//*IF*/if (((((T883*)C))->_arguments/*24*/)!=((void*)(X359arguments(a1)))) {
  1386. /*IF*/if ((((((T883*)C))->_arguments/*24*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  1387. r683add_position(X359start_position(a1));
  1388. r883error(r883start_position(C),((T0*)ms6_359));
  1389. }
  1390.  else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T883*)C))->_arguments/*24*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  1391. r683add_position(X359start_position(a1));
  1392. r883error(r883start_position(C),((T0*)ms7_359));
  1393. }
  1394. /*FI*/}
  1395. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1396. /*IF*/if (((((T883*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  1397. /*IF*/if (!(X291is_a_in((((T883*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  1398. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  1399. r7append(((T7*)(oBC683explanation)),b1);
  1400. }/*]*/
  1401. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T368*)((T368*)a2)))->_current_type/*0*/);
  1402. r7append(((T7*)(oBC683explanation)),b1);
  1403. }/*]*/
  1404. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1405. }
  1406. /*FI*/}
  1407. /*FI*/}
  1408. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1409. /*IF*/if (((((T883*)C))->_arguments/*24*/)!=((void*)(NULL))) {
  1410. /*IF*/if (!(r31is_a_in(((T31*)((((T883*)C))->_arguments/*24*/)),X359arguments(a1),a2))) {
  1411. r683add_position(X359start_position(a1));
  1412. r683add_position(r883start_position(C));
  1413. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  1414. r7append(((T7*)(oBC683explanation)),b1);
  1415. }/*]*/
  1416. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T368*)((T368*)a2)))->_current_type/*0*/);
  1417. r7append(((T7*)(oBC683explanation)),b1);
  1418. }/*]*/
  1419. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1420. }
  1421. /*FI*/}
  1422. /*FI*/}
  1423. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  1424. return R;
  1425. }
  1426. /*No:EXTERNAL_PROCEDURE.header_comment*/
  1427. int r883is_merge_with(T883* C,T0* a1,T0* a2){
  1428. int R=0;
  1429. /*IF*/if (((((T883*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  1430. /*IF*/if ((((((T883*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  1431. r683add_position(X359start_position(a1));
  1432. r883error(r883start_position(C),((T0*)ms2_359));
  1433. }
  1434. /*FI*/}
  1435. /*FI*//*IF*/if (((((T883*)C))->_arguments/*24*/)!=((void*)(X359arguments(a1)))) {
  1436. /*IF*/if ((((((T883*)C))->_arguments/*24*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  1437. r683add_position(X359start_position(a1));
  1438. r883error(r883start_position(C),((T0*)ms3_359));
  1439. }
  1440.  else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T883*)C))->_arguments/*24*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  1441. r683add_position(X359start_position(a1));
  1442. r883error(r883start_position(C),((T0*)ms4_359));
  1443. }
  1444. /*FI*/}
  1445. /*FI*//*IF*/if (((((T883*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  1446. /*IF*/if (!(X291is_a_in((((T883*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  1447. r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
  1448. }
  1449. /*FI*/}
  1450. /*FI*//*IF*/if (((((T883*)C))->_arguments/*24*/)!=((void*)(NULL))) {
  1451. /*IF*/if (!(r31is_a_in(((T31*)((((T883*)C))->_arguments/*24*/)),X359arguments(a1),a2))) {
  1452. r683add_position(X359start_position(a1));
  1453. r883error(r883start_position(C),((T0*)ms12_359));
  1454. }
  1455. /*FI*/}
  1456. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  1457. return R;
  1458. }
  1459. /*No:EXTERNAL_PROCEDURE.fz_dot*/
  1460. /*No:EXTERNAL_PROCEDURE.set_ensure_assertion*/
  1461. /*No:EXTERNAL_PROCEDURE.first_name*/
  1462. /*No:EXTERNAL_PROCEDURE.clients*/
  1463. void r883collect_for(T883* C,int a1){
  1464. /*IF*/if ((a1)==(1001)) {
  1465. /*IF*/if (((((T883*)C))->_require_assertion/*32*/)!=((void*)(NULL))) {
  1466. /*IF*/if (!(r522fast_has(((T522*)(oBC359require_collector)),(((T883*)C))->_require_assertion/*32*/))) {
  1467. r522add_last(((T522*)(oBC359require_collector)),(((T883*)C))->_require_assertion/*32*/);
  1468. }
  1469. /*FI*/}
  1470. /*FI*/}
  1471. else {
  1472. /*IF*/if (((((T883*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  1473. /*[IRF3.3set_item*/((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=((((T633*)((T633*)((((T883*)C))->_ensure_assertion/*36*/))))->_header_comment/*4*/);
  1474. /*]*/
  1475. r633add_into(((T633*)((((T883*)C))->_ensure_assertion/*36*/)),oBC359assertion_collector);
  1476. }
  1477. /*FI*/}
  1478. /*FI*/}
  1479. void r883error(T0* a1,T0* a2){
  1480. r683add_position(a1);
  1481. r683error(((T683*)(oBC364eh)),a2);
  1482. }
  1483. /*No:EXTERNAL_PROCEDURE.base_class*/
  1484. void r883make_e_feature(T883* C,T0* a1,T0* a2){
  1485. C->_names=a1;
  1486. C->_result_type=a2;
  1487. }
  1488. void r883check_obsolete(T883* C){
  1489. /*IF*/if (!((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/)) {
  1490. /*IF*/if (((((T883*)C))->_obsolete_mark/*28*/)!=((void*)(NULL))) {
  1491. /*[IRF3.6append*/{T0* b1=((T0*)ms7_355);
  1492. r7append(((T7*)(oBC683explanation)),b1);
  1493. }/*]*/
  1494. /*[IRF3.6append*/{T0* b1=(((T805*)((T805*)((((T883*)C))->_obsolete_mark/*28*/))))->_to_string/*12*/;
  1495. r7append(((T7*)(oBC683explanation)),b1);
  1496. }/*]*/
  1497. r883warning(r883start_position(C),((T0*)ms137_470));
  1498. }
  1499. /*FI*/}
  1500. /*FI*/}
  1501. void r883warning(T0* a1,T0* a2){
  1502. r683add_position(a1);
  1503. r683warning(((T683*)(oBC364eh)),a2);
  1504. }
  1505. /*No:TMP_NAME.li*/
  1506. /*No:TMP_NAME.co*/
  1507. /*No:TMP_NAME.fz_inherit*/
  1508. int r511isa_keyword(void){
  1509. int R=0;
  1510. char _c=0;
  1511. _c=r3to_lower(/*(IRF4.6item*/((((T7*)((T7*)(oBC511tmp_string))))->_storage/*0*/)[(1)-(1)]/*)*/);
  1512. {int z1=_c;
  1513.  
  1514. if((97==z1)){
  1515. R=r511look_in(oBC511keyword_a);
  1516. }
  1517.  else 
  1518. if((99==z1)){
  1519. R=r511look_in(oBC511keyword_c);
  1520. }
  1521.  else 
  1522. if((100==z1)){
  1523. R=r511look_in(oBC511keyword_d);
  1524. }
  1525.  else 
  1526. if((101==z1)){
  1527. R=r511look_in(oBC511keyword_e);
  1528. }
  1529.  else 
  1530. if((102==z1)){
  1531. R=r511look_in(oBC511keyword_f);
  1532. }
  1533.  else 
  1534. if((105==z1)){
  1535. R=r511look_in(oBC511keyword_i);
  1536. }
  1537.  else 
  1538. if((108==z1)){
  1539. R=r511look_in(oBC511keyword_l);
  1540. }
  1541.  else 
  1542. if((111==z1)){
  1543. R=r511look_in(oBC511keyword_o);
  1544. }
  1545.  else 
  1546. if((112==z1)){
  1547. R=r7same_as(((T7*)(((T0*)ms37_470))),oBC511tmp_string);
  1548. }
  1549.  else 
  1550. if((114==z1)){
  1551. R=r511look_in(oBC511keyword_r);
  1552. }
  1553.  else 
  1554. if((115==z1)){
  1555. R=r511look_in(oBC511keyword_s);
  1556. }
  1557.  else 
  1558. if((116==z1)){
  1559. R=r511look_in(oBC511keyword_t);
  1560. }
  1561.  else 
  1562. if((117==z1)){
  1563. R=r511look_in(oBC511keyword_u);
  1564. }
  1565.  else 
  1566. if((118==z1)){
  1567. R=r7same_as(((T7*)(((T0*)ms51_470))),oBC511tmp_string);
  1568. }
  1569.  else 
  1570. if((119==z1)){
  1571. R=r7same_as(((T7*)(((T0*)ms52_470))),oBC511tmp_string);
  1572. }
  1573.  else 
  1574. if((120==z1)){
  1575. R=r7same_as(((T7*)(((T0*)ms50_473))),oBC511tmp_string);
  1576. }
  1577. }
  1578. return R;
  1579. }
  1580. /*No:TMP_NAME.fz_select*/
  1581. /*No:TMP_NAME.fz_creation*/
  1582. T0*oBC511keyword_s=NULL;
  1583. T0*oBC511keyword_c=NULL;
  1584. /*No:TMP_NAME.fz_old*/
  1585. T0* r511to_e_result(T511* C){
  1586. T0* R=NULL;
  1587. {T715*n=malloc(sizeof(*n));
  1588. *n=M715;
  1589. r715make(n,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/));
  1590. R=(T0*)n;
  1591. }
  1592. return R;
  1593. }
  1594. T0* r511to_local_name1(T511* C){
  1595. T0* R=NULL;
  1596. {T39*n=malloc(sizeof(*n));
  1597. *n=M39;
  1598. r39make(n,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/),oBC511tmp_string);
  1599. R=(T0*)n;
  1600. }
  1601. return R;
  1602. }
  1603. T0* r511to_e_current(T511* C){
  1604. T0* R=NULL;
  1605. {T358*n=malloc(sizeof(*n));
  1606. *n=M358;
  1607. r358make(n,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/),1);
  1608. R=(T0*)n;
  1609. }
  1610. return R;
  1611. }
  1612. /*No:TMP_NAME.extend*/
  1613. /*No:TMP_NAME.fz_separate*/
  1614. /*No:TMP_NAME.fz_deferred*/
  1615. T0*oBC511keyword_t=NULL;
  1616. T0*oBC511keyword_d=NULL;
  1617. /*No:TMP_NAME.fz_else*/
  1618. /*No:TMP_NAME.fz_end*/
  1619. T0* r511to_e_void(T511* C){
  1620. T0* R=NULL;
  1621. {T796*n=malloc(sizeof(*n));
  1622. *n=M796;
  1623. r796make(n,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/));
  1624. R=(T0*)n;
  1625. }
  1626. return R;
  1627. }
  1628. int r511is_current(void){
  1629. int R=0;
  1630. /*IF*/if (((((T7*)((T7*)(oBC511tmp_string))))->_count/*4*/)==(7)) {
  1631. R=r7same_as(((T7*)(((T0*)ms143_473))),oBC511tmp_string);
  1632. }
  1633. /*FI*/return R;
  1634. }
  1635. T0*oBC511keyword_u=NULL;
  1636. T0*oBC511keyword_e=NULL;
  1637. /*No:TMP_NAME.us_and*/
  1638. T0* r511to_local_name2(T511* C,T0* a1,int a2){
  1639. T0* R=NULL;
  1640. {T23*n=malloc(sizeof(*n));
  1641. *n=M23;
  1642. r23refer_to(n,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/),a1,a2);
  1643. R=(T0*)n;
  1644. }
  1645. return R;
  1646. }
  1647. T0* r511to_argument_name1(T511* C){
  1648. T0* R=NULL;
  1649. {T873*n=malloc(sizeof(*n));
  1650. *n=M873;
  1651. r873make(n,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/),oBC511tmp_string);
  1652. R=(T0*)n;
  1653. }
  1654. return R;
  1655. }
  1656. T0*oBC511keyword_f=NULL;
  1657. /*No:TMP_NAME.make*/
  1658. /*No:TMP_NAME.us_current*/
  1659. /*No:TMP_NAME.fz_rescue*/
  1660. T0* r511to_string(T511* C){
  1661. T0* R=NULL;
  1662. /*IF*/if (((((T511*)C))->_unique_string_memory/*0*/)==((void*)(NULL))) {
  1663. R=r902item(oBC511tmp_string);
  1664. C->_unique_string_memory=R;
  1665. }
  1666. else {
  1667. R=(((T511*)C))->_unique_string_memory/*0*/;
  1668. }
  1669. /*FI*/return R;
  1670. }
  1671. T0* r511to_class_name(T511* C){
  1672. T0* R=NULL;
  1673. {T451*n=malloc(sizeof(*n));
  1674. *n=M451;
  1675. r451make(n,oBC511tmp_string,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/));
  1676. R=(T0*)n;
  1677. }
  1678. return R;
  1679. }
  1680. T0* r511to_tag_name(T511* C){
  1681. T0* R=NULL;
  1682. {T490*n=malloc(sizeof(*n));
  1683. *n=M490;
  1684. r490make(n,oBC511tmp_string,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/));
  1685. R=(T0*)n;
  1686. }
  1687. return R;
  1688. }
  1689. /*No:TMP_NAME.unique_string_memory*/
  1690. T0* r511to_argument_name2(T511* C,T0* a1,int a2){
  1691. T0* R=NULL;
  1692. {T886*n=malloc(sizeof(*n));
  1693. *n=M886;
  1694. r886refer_to(n,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/),a1,a2);
  1695. R=(T0*)n;
  1696. }
  1697. return R;
  1698. }
  1699. /*No:TMP_NAME.fz_external*/
  1700. T0* r511start_position(T511* C){
  1701. T0* R=NULL;
  1702. {T627*n=malloc(sizeof(*n));
  1703. *n=M627;
  1704. r627make(n,(((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/);
  1705. R=(T0*)n;
  1706. }
  1707. return R;
  1708. }
  1709. /*No:TMP_NAME.fz_prefix*/
  1710. /*No:TMP_NAME.fz_export*/
  1711. /*No:TMP_NAME.fz_all*/
  1712. /*No:TMP_NAME.fz_invariant*/
  1713. /*No:TMP_NAME.fz_feature*/
  1714. /*No:TMP_NAME.fz_true*/
  1715. T0* r511to_infix_name_use(T511* C){
  1716. T0* R=NULL;
  1717. {T454*n=malloc(sizeof(*n));
  1718. *n=M454;
  1719. r454make(n,oBC511tmp_string,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/));
  1720. R=(T0*)n;
  1721. }
  1722. return R;
  1723. }
  1724. /*No:TMP_NAME.fz_if*/
  1725. T0*oBC511keyword_i=NULL;
  1726. /*No:TMP_NAME.fz_inspect*/
  1727. /*No:TMP_NAME.fz_alias*/
  1728. /*No:TMP_NAME.fz_debug*/
  1729. int r511is_result(void){
  1730. int R=0;
  1731. /*IF*/if (((((T7*)((T7*)(oBC511tmp_string))))->_count/*4*/)==(6)) {
  1732. R=r7same_as(((T7*)(((T0*)ms146_473))),oBC511tmp_string);
  1733. }
  1734. /*FI*/return R;
  1735. }
  1736. /*No:TMP_NAME.fz_rename*/
  1737. /*No:TMP_NAME.fz_from*/
  1738. /*No:TMP_NAME.fz_unique*/
  1739. /*No:TMP_NAME.fz_once*/
  1740. /*No:TMP_NAME.fz_loop*/
  1741. /*No:TMP_NAME.fz_do*/
  1742. /*No:TMP_NAME.us_result*/
  1743. /*No:TMP_NAME.us_implies*/
  1744. T0*oBC511tmp_string=NULL;
  1745. T0*oBC511keyword_l=NULL;
  1746. /*No:TMP_NAME.fz_obsolete*/
  1747. /*No:TMP_NAME.fz_as*/
  1748. /*No:TMP_NAME.fz_false*/
  1749. /*No:TMP_NAME.fz_elseif*/
  1750. T0* r511to_infix_name(T0* a1){
  1751. T0* R=NULL;
  1752. {T454*n=malloc(sizeof(*n));
  1753. *n=M454;
  1754. r454make(n,oBC511tmp_string,a1);
  1755. R=(T0*)n;
  1756. }
  1757. return R;
  1758. }
  1759. T0* r511to_prefix_name(T511* C){
  1760. T0* R=NULL;
  1761. {T406*n=malloc(sizeof(*n));
  1762. *n=M406;
  1763. r406make(n,oBC511tmp_string,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/));
  1764. R=(T0*)n;
  1765. }
  1766. return R;
  1767. }
  1768. T0* r511pos(int a1,int a2){
  1769. T0* R=NULL;
  1770. {T627*n=malloc(sizeof(*n));
  1771. *n=M627;
  1772. r627make(n,a1,a2);
  1773. R=(T0*)n;
  1774. }
  1775. return R;
  1776. }
  1777. /*No:TMP_NAME.fz_variant*/
  1778. /*No:TMP_NAME.fz_redefine*/
  1779. /*No:TMP_NAME.fz_like*/
  1780. int r511is_void(void){
  1781. int R=0;
  1782. /*IF*/if (((((T7*)((T7*)(oBC511tmp_string))))->_count/*4*/)==(4)) {
  1783. R=r7same_as(((T7*)(((T0*)ms147_473))),oBC511tmp_string);
  1784. }
  1785. /*FI*/return R;
  1786. }
  1787. /*No:TMP_NAME.us_xor*/
  1788. /*No:TMP_NAME.fz_frozen*/
  1789. /*No:TMP_NAME.fz_undefine*/
  1790. T0*oBC511keyword_o=NULL;
  1791. T0* r511to_simple_feature_name(T511* C){
  1792. T0* R=NULL;
  1793. {T446*n=malloc(sizeof(*n));
  1794. *n=M446;
  1795. r446make(n,oBC511tmp_string,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/));
  1796. R=(T0*)n;
  1797. }
  1798. return R;
  1799. }
  1800. /*No:TMP_NAME.fz_is*/
  1801. /*No:TMP_NAME.fz_ensure*/
  1802. int r511look_in(T0* a1){
  1803. int R=0;
  1804. int _i=0;
  1805. _i=(((T52*)((T52*)a1)))->_upper/*8*/;
  1806. while (!((R)||((_i)==(0)))) {
  1807. R=r7same_as(((T7*)(r52item(((T52*)a1),_i))),oBC511tmp_string);
  1808. _i=(_i)-(1);
  1809. }
  1810. return R;
  1811. }
  1812. /*No:TMP_NAME.us_void*/
  1813. /*No:TMP_NAME.fz_local*/
  1814. /*No:TMP_NAME.fz_indexing*/
  1815. /*No:TMP_NAME.fz_require*/
  1816. /*No:TMP_NAME.count*/
  1817. /*No:TMP_NAME.fz_when*/
  1818. /*No:TMP_NAME.fz_then*/
  1819. /*No:TMP_NAME.fz_until*/
  1820. T0*oBC511keyword_a=NULL;
  1821. /*No:TMP_NAME.fz_check*/
  1822. void r511initialize(T511* C,int a1,int a2){
  1823. C->_li=a1;
  1824. C->_co=a2;
  1825. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC511tmp_string)))))->_count)=(0);
  1826. /*]*/
  1827. C->_unique_string_memory=NULL;
  1828. }
  1829. /*No:TMP_NAME.fz_expanded*/
  1830. T0*oBC511keyword_r=NULL;
  1831. /*No:TMP_NAME.fz_infix*/
  1832. /*No:TMP_NAME.fz_class*/
  1833. /*No:TMP_NAME.us_or*/
  1834. /*No:TMP_NAME.fz_retry*/
  1835. /*No:TMP_NAME.fz_strip*/
  1836. /*No:CALL_INFIX_AND_THEN.arguments*/
  1837. void r655short(T655* C){
  1838. /*IF*/if ((X662precedence((((T655*)C))->_target/*8*/))==(13)) {
  1839. X662short((((T655*)C))->_target/*8*/);
  1840. /*[IRF3.6short_print_feature_name*/{T655* C1=C;
  1841. r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T655*)C1))->_feature_name/*24*/);
  1842. }/*]*/
  1843. /*IF*/if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T655*)C))->_arguments/*20*/)))/*)*/))==(13)) {
  1844. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T655*)C))->_arguments/*20*/)))/*)*/);
  1845. }
  1846.  else if ((5)>=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T655*)C))->_arguments/*20*/)))/*)*/))) {
  1847. X662bracketed_short(/*(IRF4.6arg1*/r431first(((T431*)((((T655*)C))->_arguments/*20*/)))/*)*/);
  1848. }
  1849. else {
  1850. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T655*)C))->_arguments/*20*/)))/*)*/);
  1851. }
  1852. /*FI*/}
  1853.  else if ((X662precedence((((T655*)C))->_target/*8*/))<(5)) {
  1854. X662bracketed_short((((T655*)C))->_target/*8*/);
  1855. /*[IRF3.6short_print_feature_name*/{T655* C1=C;
  1856. r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T655*)C1))->_feature_name/*24*/);
  1857. }/*]*/
  1858. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T655*)C))->_arguments/*20*/)))/*)*/);
  1859. }
  1860. else {
  1861. X662short((((T655*)C))->_target/*8*/);
  1862. /*[IRF3.6short_print_feature_name*/{T655* C1=C;
  1863. r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T655*)C1))->_feature_name/*24*/);
  1864. }/*]*/
  1865. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T655*)C))->_arguments/*20*/)))/*)*/);
  1866. }
  1867. /*FI*/}
  1868. T0* r655add_comment(T655* C,T0* a1){
  1869. T0* R=NULL;
  1870. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1871. R=(T0*)C;
  1872. }
  1873. else {
  1874. {T529*n=malloc(sizeof(*n));
  1875. *n=M529;
  1876. r529make(n,(T0*)C,a1);
  1877. R=(T0*)n;
  1878. }
  1879. }
  1880. /*FI*/return R;
  1881. }
  1882. int r655to_integer(T655* C){
  1883. int R=0;
  1884. r655error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T655*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  1885. return R;
  1886. }
  1887. void r655bracketed_short(T655* C){
  1888. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms6_662),((T0*)ms7_662));
  1889. r655short(C);
  1890. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms8_662),((T0*)ms9_662));
  1891. }
  1892. int r655is_a(T655* C,T0* a1){
  1893. int R=0;
  1894. R=X291is_a(X291run_type((((T655*)C))->_result_type/*16*/),X291run_type(X662result_type(a1)));
  1895. /*IF*/if (!(R)) {
  1896. r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T655*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/);
  1897. r655error(X662start_position(a1),((T0*)ms4_662));
  1898. }
  1899. /*FI*/return R;
  1900. }
  1901. /*No:CALL_INFIX_AND_THEN.is_current*/
  1902. /*No:CALL_INFIX_AND_THEN.us_and_then*/
  1903. void r655make(T655* C,T0* a1,T0* a2,T0* a3){
  1904. T0* _eal=NULL;
  1905. /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
  1906. r683add_position(a2);
  1907. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
  1908. r683fatal_error(((T683*)(oBC364eh)),b1);
  1909. }/*]*/
  1910. }
  1911. /*FI*/{T454*n=malloc(sizeof(*n));
  1912. *n=M454;
  1913. r454make(n,r655operator(),a2);
  1914. C->_feature_name=(T0*)n;
  1915. }
  1916. {T431*n=malloc(sizeof(*n));
  1917. *n=M431;
  1918. /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
  1919. /*]*/
  1920. _eal=(T0*)n;
  1921. }
  1922. r655make_call_1(C,a1,(((T655*)C))->_feature_name/*24*/,_eal);
  1923. }
  1924. /*No:CALL_INFIX_AND_THEN.nb_errors*/
  1925. /*No:CALL_INFIX_AND_THEN.feature_name*/
  1926. /*No:CALL_INFIX_AND_THEN.fz_iinaiv*/
  1927. /*No:CALL_INFIX_AND_THEN.run_feature*/
  1928. /*No:CALL_INFIX_AND_THEN.start_position*/
  1929. /*No:CALL_INFIX_AND_THEN.target*/
  1930. /*No:CALL_INFIX_AND_THEN.precedence*/
  1931. T0* r655to_runnable(T655* C,T0* a1){
  1932. T0* R=NULL;
  1933. T0* _tla=NULL;
  1934. T0* _a=NULL;
  1935. /*IF*/if (((((T655*)C))->_current_type/*4*/)==((void*)(NULL))) {
  1936. r655to_runnable_0(C,a1);
  1937. _a=r431to_runnable(((T431*)((((T655*)C))->_arguments/*20*/)),a1);
  1938. /*IF*/if ((_a)==((void*)(NULL))) {
  1939. r655error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T655*)C))->_arguments/*20*/)))/*)*/),((T0*)ms55_470));
  1940. }
  1941. else {
  1942. C->_arguments=_a;
  1943. }
  1944. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1945. r431match_with(((T431*)((((T655*)C))->_arguments/*20*/)),(((T655*)C))->_run_feature/*12*/);
  1946. }
  1947. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1948. _tla=(((T655*)C))->_result_type/*16*/;
  1949. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  1950. case 239: 
  1951. break;
  1952. default:
  1953. _tla=NULL;
  1954. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  1955. C->_result_type=X291run_type(X662result_type(/*(IRF4.6arg1*/r431first(((T431*)((((T655*)C))->_arguments/*20*/)))/*)*/));
  1956. }
  1957. /*FI*/}
  1958. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1959. R=(T0*)C;
  1960. }
  1961. /*FI*/}
  1962. else {
  1963. R=r655twin(C);
  1964. /*[IRF3.3set_current_type*/((((T655*)(((T655*)R))))->_current_type)=(NULL);
  1965. /*]*/
  1966. R=r655to_runnable(((T655*)R),a1);
  1967. }
  1968. /*FI*/return R;
  1969. }
  1970. /*No:CALL_INFIX_AND_THEN.short_print_feature_name*/
  1971. /*No:CALL_INFIX_AND_THEN.result_type*/
  1972. T0* r655twin(T655* C){
  1973. T0* R=NULL;
  1974. R=malloc(sizeof(*C));
  1975. *((T655*)R)=*C;
  1976. return R;
  1977. }
  1978. /*No:CALL_INFIX_AND_THEN.set_current_type*/
  1979. T0* r655operator(void){
  1980. T0* R=NULL;
  1981. R=((T0*)ms28_473);
  1982. return R;
  1983. }
  1984. /*No:CALL_INFIX_AND_THEN.atomic_precedence*/
  1985. /*No:CALL_INFIX_AND_THEN.current_type*/
  1986. void r655make_call_1(T655* C,T0* a1,T0* a2,T0* a3){
  1987. C->_target=a1;
  1988. C->_feature_name=a2;
  1989. C->_arguments=a3;
  1990. }
  1991. /*No:CALL_INFIX_AND_THEN.is_manifest_string*/
  1992. /*No:CALL_INFIX_AND_THEN.is_void*/
  1993. void r655to_runnable_0(T655* C,T0* a1){
  1994. C->_current_type=a1;
  1995. r655cpc_to_runnable(C,a1);
  1996. C->_result_type=/*X496*/((T0*)(((T808*)((T808*)((((T655*)C))->_run_feature/*12*/))))->_result_type/*24*/);
  1997. /*IF*/if (((((T655*)C))->_result_type/*16*/)==((void*)(NULL))) {
  1998. r683add_position(X496start_position((((T655*)C))->_run_feature/*12*/));
  1999. r655error((((T454*)((T454*)((((T655*)C))->_feature_name/*24*/))))->_start_position/*8*/,((T0*)ms1_295));
  2000. }
  2001.  else if (X291is_like_current((((T655*)C))->_result_type/*16*/)) {
  2002. C->_result_type=X662result_type((((T655*)C))->_target/*8*/);
  2003. }
  2004. /*FI*/}
  2005. void r655cpc_to_runnable(T655* C,T0* a1){
  2006. T0* _rc=NULL;
  2007. T0* _t=NULL;
  2008. _t=X662to_runnable((((T655*)C))->_target/*8*/,a1);
  2009. /*IF*/if ((_t)==((void*)(NULL))) {
  2010. r683add_position(X662start_position((((T655*)C))->_target/*8*/));
  2011. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  2012. r683fatal_error(((T683*)(oBC364eh)),b1);
  2013. }/*]*/
  2014. }
  2015. /*FI*/C->_target=_t;
  2016. _rc=X291run_class(X662result_type((((T655*)C))->_target/*8*/));
  2017. C->_run_feature=r368get_rf(((T368*)_rc),(T0*)C);
  2018. r576update((((T655*)C))->_target/*8*/,(((T655*)C))->_run_feature/*12*/);
  2019. }
  2020. void r655error(T0* a1,T0* a2){
  2021. r683add_position(a1);
  2022. r683error(((T683*)(oBC364eh)),a2);
  2023. }
  2024. /*No:CALL_INFIX_AND_THEN.fatal_error*/
  2025. /*No:CALL_INFIX_AND_THEN.fz_bad_argument*/
  2026. void r655short_target(T655* C){
  2027. r655bracketed_short(C);
  2028. /*[IRF3.6a_dot*/{T580* C1=((T580*)(oBC364short_print));
  2029. r580hook_or(C1,((T0*)ms58_580),((T0*)ms67_470));
  2030. }/*]*/
  2031. }
  2032. /*No:CALL_INFIX_AND_THEN.arg1*/
  2033. void r913for_short(T913* C,T0* a1,int a2,T0* a3,T0* a4){
  2034. T0* _fc=NULL;
  2035. int _i=0;
  2036. _i=1;
  2037. while (!((_i)>((((T764*)((T764*)((((T913*)C))->_list/*0*/))))->_upper/*8*/))) {
  2038. _fc=r764item(((T764*)((((T913*)C))->_list/*0*/)),_i);
  2039. r153for_short(((T153*)_fc),a1,a2,a3,a4);
  2040. _i=(_i)+(1);
  2041. }
  2042. }
  2043. void r913get_started(T913* C,T0* a1){
  2044. int _i=0;
  2045. _i=1;
  2046. while (!((_i)>((((T764*)((T764*)((((T913*)C))->_list/*0*/))))->_upper/*8*/))) {
  2047. r153add_into(((T153*)(r764item(((T764*)((((T913*)C))->_list/*0*/)),_i))),a1);
  2048. _i=(_i)+(1);
  2049. }
  2050. }
  2051. /*No:FEATURE_CLAUSE_LIST.make*/
  2052. /*No:FEATURE_CLAUSE_LIST.list*/
  2053. /*No:FEATURE_CLAUSE_LIST.add_last*/
  2054. /*No:RUN_FEATURE_4.arguments*/
  2055. /*No:RUN_FEATURE_4.actuals_clients*/
  2056. void r857make(T857* C,T0* a1,T0* a2,T0* a3){
  2057. C->_current_type=a1;
  2058. C->_name=a2;
  2059. C->_base_feature=a3;
  2060. r199put(((T199*)((((T368*)((T368*)(r857run_class(C)))))->_feature_dictionary/*24*/)),(T0*)C,X776to_key(a2));
  2061. r604incr_magic_count(((T604*)(oBC364small_eiffel)));
  2062. C->_use_current_state=1015;
  2063. r604push(((T604*)(oBC364small_eiffel)),(T0*)C);
  2064. r857initialize(C);
  2065. r604pop(((T604*)(oBC364small_eiffel)));
  2066. }
  2067. /*No:RUN_FEATURE_4.name*/
  2068. int r857arg_count(T857* C){
  2069. int R=0;
  2070. /*IF*/if (((((T857*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  2071. R=/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T857*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/;
  2072. }
  2073. /*FI*/return R;
  2074. }
  2075. /*No:RUN_FEATURE_4.local_vars*/
  2076. /*No:RUN_FEATURE_4.base_feature*/
  2077. /*No:RUN_FEATURE_4.start_position*/
  2078. /*No:RUN_FEATURE_4.ensure_assertion*/
  2079. int r857is_exported_in(T857* C,T0* a1){
  2080. int R=0;
  2081. R=r636gives_permission_to(((T636*)(r857clients(C))),a1);
  2082. return R;
  2083. }
  2084. /*No:RUN_FEATURE_4.result_type*/
  2085. void r857add_client(T857* C,T0* a1){
  2086. int _i=0;
  2087. /*IF*/if (((((T857*)C))->_actuals_clients/*12*/)==((void*)(NULL))) {
  2088. {T187*n=malloc(sizeof(*n));
  2089. *n=M187;
  2090. r187with_capacity(n,4);
  2091. C->_actuals_clients=(T0*)n;
  2092. }
  2093. r187add_last(((T187*)((((T857*)C))->_actuals_clients/*12*/)),a1);
  2094. }
  2095. else {
  2096. _i=r187fast_index_of(((T187*)((((T857*)C))->_actuals_clients/*12*/)),a1);
  2097. /*IF*/if ((_i)>((((T187*)((T187*)((((T857*)C))->_actuals_clients/*12*/))))->_upper/*8*/)) {
  2098. r187add_last(((T187*)((((T857*)C))->_actuals_clients/*12*/)),a1);
  2099. }
  2100. /*FI*/}
  2101. /*FI*/r368add_client(((T368*)(r857run_class(C))),a1);
  2102. }
  2103. /*No:RUN_FEATURE_4.require_assertion*/
  2104. /*No:RUN_FEATURE_4.use_current_state*/
  2105. /*No:RUN_FEATURE_4.current_type*/
  2106. T0* r857run_class(T857* C){
  2107. T0* R=NULL;
  2108. R=X291run_class((((T857*)C))->_current_type/*4*/);
  2109. return R;
  2110. }
  2111. /*No:RUN_FEATURE_4.ucs_not_computed*/
  2112. /*No:RUN_FEATURE_4.routine_body*/
  2113. T0* r857clients(T857* C){
  2114. T0* R=NULL;
  2115. T0* _bfbc=NULL;
  2116. T0* _bc=NULL;
  2117. /*IF*/if (((((T857*)C))->_clients_memory/*8*/)==((void*)(NULL))) {
  2118. _bc=X291base_class((((T857*)C))->_current_type/*4*/);
  2119. _bfbc=(((T696*)((T696*)((((T857*)C))->_base_feature/*44*/))))->_base_class/*4*/;
  2120. /*IF*/if ((_bc)==((void*)(_bfbc))) {
  2121. R=(((T696*)((T696*)((((T857*)C))->_base_feature/*44*/))))->_clients/*24*/;
  2122. }
  2123. else {
  2124. R=r605clients_for(((T605*)_bc),(((T857*)C))->_name/*16*/);
  2125. }
  2126. /*FI*/C->_clients_memory=R;
  2127. }
  2128. else {
  2129. R=(((T857*)C))->_clients_memory/*8*/;
  2130. }
  2131. /*FI*/return R;
  2132. }
  2133. /*No:RUN_FEATURE_4.clients_memory*/
  2134. void r857initialize(T857* C){
  2135. C->_arguments=(((T696*)((T696*)((((T857*)C))->_base_feature/*44*/))))->_arguments/*28*/;
  2136. /*IF*/if ((((((T857*)C))->_arguments/*20*/)!=((void*)(NULL)))&&((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T857*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)>(0))) {
  2137. C->_arguments=r31to_runnable(((T31*)((((T857*)C))->_arguments/*20*/)),(((T857*)C))->_current_type/*4*/);
  2138. }
  2139. /*FI*/C->_result_type=X291to_runnable((((T696*)((T696*)((((T857*)C))->_base_feature/*44*/))))->_result_type/*12*/,(((T857*)C))->_current_type/*4*/);
  2140. C->_local_vars=(((T696*)((T696*)((((T857*)C))->_base_feature/*44*/))))->_local_vars/*20*/;
  2141. /*IF*/if ((((((T857*)C))->_local_vars/*48*/)!=((void*)(NULL)))&&((/*(IRF4.6count*/(((T733*)((T733*)((((T620*)((T620*)((((T857*)C))->_local_vars/*48*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)>(0))) {
  2142. C->_local_vars=r620to_runnable(((T620*)((((T857*)C))->_local_vars/*48*/)),(((T857*)C))->_current_type/*4*/);
  2143. }
  2144. /*FI*/C->_routine_body=(((T696*)((T696*)((((T857*)C))->_base_feature/*44*/))))->_routine_body/*52*/;
  2145. /*IF*/if (((((T857*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
  2146. C->_routine_body=r592to_runnable(((T592*)((((T857*)C))->_routine_body/*32*/)),(((T857*)C))->_current_type/*4*/);
  2147. }
  2148. /*FI*//*IF*/if (r590require_check(((T590*)(oBC364run_control)))) {
  2149. C->_require_assertion=r696run_require((T0*)C);
  2150. }
  2151. /*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
  2152. C->_ensure_assertion=r696run_ensure((T0*)C);
  2153. }
  2154. /*FI*/}
  2155.  
  2156.