home *** CD-ROM | disk | FTP | other *** search
/ Amiga ACS 1998 #4 / amigaacscoverdisc1998-041998.iso / utilities / shareware / dev / ppcsmalleiffel / source.lha / bin_c / short15.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  48.8 KB  |  1,642 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. void r180short(T180* C){
  10. r580a_prefix_name(((T580*)(oBC364short_print)),(((T180*)C))->_feature_name/*20*/);
  11. /*IF*/if ((X662precedence((((T180*)C))->_target/*8*/))<(11)) {
  12. X662bracketed_short((((T180*)C))->_target/*8*/);
  13. }
  14. else {
  15. X662short((((T180*)C))->_target/*8*/);
  16. }
  17. /*FI*/}
  18. T0* r180add_comment(T180* C,T0* a1){
  19. T0* R=NULL;
  20. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  21. R=(T0*)C;
  22. }
  23. else {
  24. {T529*n=malloc(sizeof(*n));
  25. *n=M529;
  26. r529make(n,(T0*)C,a1);
  27. R=(T0*)n;
  28. }
  29. }
  30. /*FI*/return R;
  31. }
  32. int r180to_integer(T180* C){
  33. int R=0;
  34. T0* _rf1=NULL;
  35. _rf1=(((T180*)C))->_run_feature/*12*/;
  36. if(NULL!=(_rf1))switch(((T0*)_rf1)->id) {
  37. case 808: 
  38. break;
  39. default:
  40. _rf1=NULL;
  41. };/*IF*/if ((_rf1)==((void*)(NULL))) {
  42. r180error(/*(IRF4.6start_position*/(((T406*)((T406*)((((T180*)C))->_feature_name/*20*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  43. }
  44. else {
  45. R=X662to_integer((((T808*)((T808*)_rf1)))->_value/*44*/);
  46. }
  47. /*FI*/return R;
  48. }
  49. void r180bracketed_short(T180* C){
  50. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms6_662),((T0*)ms7_662));
  51. r180short(C);
  52. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms8_662),((T0*)ms9_662));
  53. }
  54. int r180is_a(T180* C,T0* a1){
  55. int R=0;
  56. R=X291is_a(X291run_type((((T180*)C))->_result_type/*16*/),X291run_type(X662result_type(a1)));
  57. /*IF*/if (!(R)) {
  58. r683add_position(/*(IRF4.6start_position*/(((T406*)((T406*)((((T180*)C))->_feature_name/*20*/))))->_start_position/*8*//*)*/);
  59. r180error(X662start_position(a1),((T0*)ms4_662));
  60. }
  61. /*FI*/return R;
  62. }
  63. /*No:CALL_PREFIX_NOT.is_current*/
  64. void r180make(T180* C,T0* a1,T0* a2){
  65. {T406*n=malloc(sizeof(*n));
  66. *n=M406;
  67. r406make(n,r180operator(),a1);
  68. C->_feature_name=(T0*)n;
  69. }
  70. r180make_call0(C,a2,(((T180*)C))->_feature_name/*20*/);
  71. }
  72. /*No:CALL_PREFIX_NOT.nb_errors*/
  73. /*No:CALL_PREFIX_NOT.feature_name*/
  74. /*No:CALL_PREFIX_NOT.fz_iinaiv*/
  75. /*No:CALL_PREFIX_NOT.run_feature*/
  76. /*No:CALL_PREFIX_NOT.start_position*/
  77. /*No:CALL_PREFIX_NOT.target*/
  78. /*No:CALL_PREFIX_NOT.precedence*/
  79. T0* r180to_runnable(T180* C,T0* a1){
  80. T0* R=NULL;
  81. /*IF*/if (((((T180*)C))->_current_type/*4*/)==((void*)(NULL))) {
  82. r180to_runnable_0(C,a1);
  83. /*IF*/if (((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0))&&((X496arg_count((((T180*)C))->_run_feature/*12*/))>(0))) {
  84. r683add_position((((T406*)((T406*)((((T180*)C))->_feature_name/*20*/))))->_start_position/*8*/);
  85. r180error(X496start_position((((T180*)C))->_run_feature/*12*/),((T0*)ms1_752));
  86. }
  87. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  88. R=(T0*)C;
  89. }
  90. /*FI*/}
  91. else {
  92. R=r180twin(C);
  93. /*[IRF3.3set_current_type*/((((T180*)(((T180*)R))))->_current_type)=(NULL);
  94. /*]*/
  95. R=r180to_runnable(((T180*)R),a1);
  96. }
  97. /*FI*/return R;
  98. }
  99. /*No:CALL_PREFIX_NOT.result_type*/
  100. T0* r180twin(T180* C){
  101. T0* R=NULL;
  102. R=malloc(sizeof(*C));
  103. *((T180*)R)=*C;
  104. return R;
  105. }
  106. /*No:CALL_PREFIX_NOT.set_current_type*/
  107. T0* r180operator(void){
  108. T0* R=NULL;
  109. R=((T0*)ms40_473);
  110. return R;
  111. }
  112. /*No:CALL_PREFIX_NOT.current_type*/
  113. /*No:CALL_PREFIX_NOT.is_manifest_string*/
  114. /*No:CALL_PREFIX_NOT.is_void*/
  115. void r180to_runnable_0(T180* C,T0* a1){
  116. C->_current_type=a1;
  117. r180cpc_to_runnable(C,a1);
  118. C->_result_type=/*X496*/((T0*)(((T808*)((T808*)((((T180*)C))->_run_feature/*12*/))))->_result_type/*24*/);
  119. /*IF*/if (((((T180*)C))->_result_type/*16*/)==((void*)(NULL))) {
  120. r683add_position(X496start_position((((T180*)C))->_run_feature/*12*/));
  121. r180error((((T406*)((T406*)((((T180*)C))->_feature_name/*20*/))))->_start_position/*8*/,((T0*)ms1_295));
  122. }
  123.  else if (X291is_like_current((((T180*)C))->_result_type/*16*/)) {
  124. C->_result_type=X662result_type((((T180*)C))->_target/*8*/);
  125. }
  126. /*FI*/}
  127. void r180cpc_to_runnable(T180* C,T0* a1){
  128. T0* _rc=NULL;
  129. T0* _t=NULL;
  130. _t=X662to_runnable((((T180*)C))->_target/*8*/,a1);
  131. /*IF*/if ((_t)==((void*)(NULL))) {
  132. r683add_position(X662start_position((((T180*)C))->_target/*8*/));
  133. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  134. r683fatal_error(((T683*)(oBC364eh)),b1);
  135. }/*]*/
  136. }
  137. /*FI*/C->_target=_t;
  138. _rc=X291run_class(X662result_type((((T180*)C))->_target/*8*/));
  139. C->_run_feature=r368get_rf(((T368*)_rc),(T0*)C);
  140. r576update((((T180*)C))->_target/*8*/,(((T180*)C))->_run_feature/*12*/);
  141. }
  142. /*No:CALL_PREFIX_NOT.us_not*/
  143. void r180make_call0(T180* C,T0* a1,T0* a2){
  144. C->_target=a1;
  145. C->_feature_name=a2;
  146. }
  147. void r180error(T0* a1,T0* a2){
  148. r683add_position(a1);
  149. r683error(((T683*)(oBC364eh)),a2);
  150. }
  151. /*No:CALL_PREFIX_NOT.fatal_error*/
  152. void r180short_target(T180* C){
  153. r180bracketed_short(C);
  154. /*[IRF3.6a_dot*/{T580* C1=((T580*)(oBC364short_print));
  155. r580hook_or(C1,((T0*)ms58_580),((T0*)ms67_470));
  156. }/*]*/
  157. }
  158. void r158make(T158* C,T0* a1,T0* a2,T0* a3){
  159. C->_comment=a3;
  160. C->_tag=a1;
  161. C->_expression=a2;
  162. }
  163. /*No:LOOP_VARIANT_2.nb_errors*/
  164. /*No:LOOP_VARIANT_2.expression*/
  165. T0* r158start_position(T158* C){
  166. T0* R=NULL;
  167. R=X662start_position((((T158*)C))->_expression/*8*/);
  168. return R;
  169. }
  170. /*No:LOOP_VARIANT_2.comment*/
  171. T0* r158to_runnable(T158* C,T0* a1){
  172. T0* R=NULL;
  173. T0* _e=NULL;
  174. /*IF*/if (((((T158*)C))->_current_type/*12*/)==((void*)(NULL))) {
  175. C->_current_type=a1;
  176. _e=X662to_runnable((((T158*)C))->_expression/*8*/,a1);
  177. /*IF*/if ((_e)==((void*)(NULL))) {
  178. r158error(r158start_position(C),((T0*)ms1_856));
  179. }
  180. else {
  181. C->_expression=_e;
  182. /*IF*/if (!(X291is_integer(X662result_type((((T158*)C))->_expression/*8*/)))) {
  183. r158error(X662start_position((((T158*)C))->_expression/*8*/),((T0*)ms2_856));
  184. }
  185. /*FI*/}
  186. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  187. R=(T0*)C;
  188. }
  189. /*FI*/}
  190. else {
  191. R=r158twin(C);
  192. /*[IRF3.3set_current_type*/((((T158*)(((T158*)R))))->_current_type)=(NULL);
  193. /*]*/
  194. R=r158to_runnable(((T158*)R),a1);
  195. }
  196. /*FI*/return R;
  197. }
  198. T0* r158twin(T158* C){
  199. T0* R=NULL;
  200. R=malloc(sizeof(*C));
  201. *((T158*)R)=*C;
  202. return R;
  203. }
  204. /*No:LOOP_VARIANT_2.set_current_type*/
  205. /*No:LOOP_VARIANT_2.tag*/
  206. /*No:LOOP_VARIANT_2.current_type*/
  207. void r158error(T0* a1,T0* a2){
  208. r683add_position(a1);
  209. r683error(((T683*)(oBC364eh)),a2);
  210. }
  211. /*No:DEFERRED_FUNCTION.arguments*/
  212. T0* r649try_to_undefine(T649* C,T0* a1,T0* a2){
  213. T0* R=NULL;
  214. X776undefine_in(a1,a2);
  215. R=/*(IRF4.4try_to_undefine_aux*/((T0*)(C))/*)*/;
  216. /*IF*/if ((R)!=((void*)(NULL))) {
  217. /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T649*)C))->_clients/*20*/);
  218. /*]*/
  219. }
  220. else {
  221. r605fatal_undefine(((T605*)a2),a1);
  222. }
  223. /*FI*/return R;
  224. }
  225. /*No:DEFERRED_FUNCTION.is_deferred*/
  226. /*No:DEFERRED_FUNCTION.rescue_compound*/
  227. void r649add_into(T649* C,T0* a1){
  228. T0* _fn=NULL;
  229. int _i=0;
  230. C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T649*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
  231. _i=1;
  232. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T649*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  233. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T649*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
  234. /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
  235. _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)/*)*//*)*/);
  236. r683add_position(X776start_position(_fn));
  237. r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T649*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
  238. r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
  239. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  240. r7append(((T7*)(oBC683explanation)),b1);
  241. }/*]*/
  242. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  243. }
  244. else {
  245. r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
  246. }
  247. /*FI*/_i=(_i)+(1);
  248. }
  249. }
  250. /*No:DEFERRED_FUNCTION.end_comment*/
  251. /*No:DEFERRED_FUNCTION.try_to_undefine_aux*/
  252. void r649make(T649* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6){
  253. r649make_routine(C,a1,a2,a4,a5,a6);
  254. C->_result_type=a3;
  255. }
  256. /*No:DEFERRED_FUNCTION.nb_errors*/
  257. void r649make_routine(T649* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  258. r649make_e_feature(C,a1,NULL);
  259. C->_header_comment=a4;
  260. C->_arguments=a2;
  261. C->_obsolete_mark=a3;
  262. C->_require_assertion=a5;
  263. }
  264. void r649set_header_comment(T649* C,T0* a1){
  265. /*IF*/if (((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)>(1))) {
  266. C->_end_comment=a1;
  267. }
  268. /*FI*/}
  269. T0* r649start_position(T649* C){
  270. T0* R=NULL;
  271. R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T649*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  272. return R;
  273. }
  274. T0* r649to_run_feature(T649* C,T0* a1,T0* a2){
  275. T0* R=NULL;
  276. r649check_obsolete(C);
  277. {T904*n=malloc(sizeof(*n));
  278. *n=M904;
  279. r904make(n,a1,a2,(T0*)C);
  280. R=(T0*)n;
  281. }
  282. return R;
  283. }
  284. /*No:DEFERRED_FUNCTION.ensure_assertion*/
  285. /*No:DEFERRED_FUNCTION.code_require*/
  286. /*No:DEFERRED_FUNCTION.result_type*/
  287. /*No:DEFERRED_FUNCTION.fz_03*/
  288. /*No:DEFERRED_FUNCTION.em1*/
  289. /*No:DEFERRED_FUNCTION.obsolete_mark*/
  290. /*No:DEFERRED_FUNCTION.em2*/
  291. /*No:DEFERRED_FUNCTION.set_clients*/
  292. /*No:DEFERRED_FUNCTION.names*/
  293. /*No:DEFERRED_FUNCTION.require_assertion*/
  294. void r649from_effective(T649* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6){
  295. {T953*n=malloc(sizeof(*n));
  296. *n=M953;
  297. r953make(n,se_ma855(1,a1));
  298. C->_names=(T0*)n;
  299. }
  300. r649make(C,(((T649*)C))->_names/*8*/,a2,a3,NULL,NULL,a4);
  301. /*[IRF3.3set_ensure_assertion*/((((T649*)(C)))->_ensure_assertion)=(a5);
  302. /*]*/
  303. C->_base_class=a6;
  304. }
  305. void r649set_rescue_compound(T649* C,T0* a1){
  306. /*IF*/if (((a1)!=((void*)(NULL)))&&(/*(IRF4.2is_deferred*/(1)/*)*/)) {
  307. r649error(r649start_position(C),((T0*)ms6_355));
  308. }
  309. /*FI*/C->_rescue_compound=a1;
  310. }
  311. int r649can_hide(T649* C,T0* a1,T0* a2){
  312. int R=0;
  313. /*IF*/if (((((T649*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  314. /*IF*/if ((((((T649*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  315. r683add_position(X359start_position(a1));
  316. r649error(r649start_position(C),((T0*)ms5_359));
  317. }
  318. /*FI*/}
  319. /*FI*//*IF*/if (((((T649*)C))->_arguments/*24*/)!=((void*)(X359arguments(a1)))) {
  320. /*IF*/if ((((((T649*)C))->_arguments/*24*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  321. r683add_position(X359start_position(a1));
  322. r649error(r649start_position(C),((T0*)ms6_359));
  323. }
  324.  else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T649*)C))->_arguments/*24*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  325. r683add_position(X359start_position(a1));
  326. r649error(r649start_position(C),((T0*)ms7_359));
  327. }
  328. /*FI*/}
  329. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  330. /*IF*/if (((((T649*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  331. /*IF*/if (!(X291is_a_in((((T649*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  332. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  333. r7append(((T7*)(oBC683explanation)),b1);
  334. }/*]*/
  335. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T368*)((T368*)a2)))->_current_type/*0*/);
  336. r7append(((T7*)(oBC683explanation)),b1);
  337. }/*]*/
  338. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  339. }
  340. /*FI*/}
  341. /*FI*/}
  342. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  343. /*IF*/if (((((T649*)C))->_arguments/*24*/)!=((void*)(NULL))) {
  344. /*IF*/if (!(r31is_a_in(((T31*)((((T649*)C))->_arguments/*24*/)),X359arguments(a1),a2))) {
  345. r683add_position(X359start_position(a1));
  346. r683add_position(r649start_position(C));
  347. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  348. r7append(((T7*)(oBC683explanation)),b1);
  349. }/*]*/
  350. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T368*)((T368*)a2)))->_current_type/*0*/);
  351. r7append(((T7*)(oBC683explanation)),b1);
  352. }/*]*/
  353. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  354. }
  355. /*FI*/}
  356. /*FI*/}
  357. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  358. return R;
  359. }
  360. /*No:DEFERRED_FUNCTION.header_comment*/
  361. int r649is_merge_with(T649* C,T0* a1,T0* a2){
  362. int R=0;
  363. /*IF*/if (((((T649*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  364. /*IF*/if ((((((T649*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  365. r683add_position(X359start_position(a1));
  366. r649error(r649start_position(C),((T0*)ms2_359));
  367. }
  368. /*FI*/}
  369. /*FI*//*IF*/if (((((T649*)C))->_arguments/*24*/)!=((void*)(X359arguments(a1)))) {
  370. /*IF*/if ((((((T649*)C))->_arguments/*24*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  371. r683add_position(X359start_position(a1));
  372. r649error(r649start_position(C),((T0*)ms3_359));
  373. }
  374.  else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T649*)C))->_arguments/*24*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  375. r683add_position(X359start_position(a1));
  376. r649error(r649start_position(C),((T0*)ms4_359));
  377. }
  378. /*FI*/}
  379. /*FI*//*IF*/if (((((T649*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  380. /*IF*/if (!(X291is_a_in((((T649*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  381. r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
  382. }
  383. /*FI*/}
  384. /*FI*//*IF*/if (((((T649*)C))->_arguments/*24*/)!=((void*)(NULL))) {
  385. /*IF*/if (!(r31is_a_in(((T31*)((((T649*)C))->_arguments/*24*/)),X359arguments(a1),a2))) {
  386. r683add_position(X359start_position(a1));
  387. r649error(r649start_position(C),((T0*)ms12_359));
  388. }
  389. /*FI*/}
  390. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  391. return R;
  392. }
  393. /*No:DEFERRED_FUNCTION.fz_dot*/
  394. /*No:DEFERRED_FUNCTION.set_ensure_assertion*/
  395. /*No:DEFERRED_FUNCTION.first_name*/
  396. /*No:DEFERRED_FUNCTION.clients*/
  397. void r649collect_for(T649* C,int a1){
  398. /*IF*/if ((a1)==(1001)) {
  399. /*IF*/if (((((T649*)C))->_require_assertion/*32*/)!=((void*)(NULL))) {
  400. /*IF*/if (!(r522fast_has(((T522*)(oBC359require_collector)),(((T649*)C))->_require_assertion/*32*/))) {
  401. r522add_last(((T522*)(oBC359require_collector)),(((T649*)C))->_require_assertion/*32*/);
  402. }
  403. /*FI*/}
  404. /*FI*/}
  405. else {
  406. /*IF*/if (((((T649*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  407. /*[IRF3.3set_item*/((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=((((T633*)((T633*)((((T649*)C))->_ensure_assertion/*36*/))))->_header_comment/*4*/);
  408. /*]*/
  409. r633add_into(((T633*)((((T649*)C))->_ensure_assertion/*36*/)),oBC359assertion_collector);
  410. }
  411. /*FI*/}
  412. /*FI*/}
  413. void r649error(T0* a1,T0* a2){
  414. r683add_position(a1);
  415. r683error(((T683*)(oBC364eh)),a2);
  416. }
  417. /*No:DEFERRED_FUNCTION.base_class*/
  418. void r649make_e_feature(T649* C,T0* a1,T0* a2){
  419. C->_names=a1;
  420. C->_result_type=a2;
  421. }
  422. void r649check_obsolete(T649* C){
  423. /*IF*/if (!((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/)) {
  424. /*IF*/if (((((T649*)C))->_obsolete_mark/*28*/)!=((void*)(NULL))) {
  425. /*[IRF3.6append*/{T0* b1=((T0*)ms7_355);
  426. r7append(((T7*)(oBC683explanation)),b1);
  427. }/*]*/
  428. /*[IRF3.6append*/{T0* b1=(((T805*)((T805*)((((T649*)C))->_obsolete_mark/*28*/))))->_to_string/*12*/;
  429. r7append(((T7*)(oBC683explanation)),b1);
  430. }/*]*/
  431. r649warning(r649start_position(C),((T0*)ms137_470));
  432. }
  433. /*FI*/}
  434. /*FI*/}
  435. void r649warning(T0* a1,T0* a2){
  436. r683add_position(a1);
  437. r683warning(((T683*)(oBC364eh)),a2);
  438. }
  439. void r953short(T953* C){
  440. int _i=0;
  441. _i=1;
  442. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)C))->_list/*0*/))))->_upper/*8*//*)*/))) {
  443. X776short(r855item(((T855*)((((T953*)C))->_list/*0*/)),_i));
  444. _i=(_i)+(1);
  445. /*IF*/if ((_i)<=(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)C))->_list/*0*/))))->_upper/*8*//*)*/)) {
  446. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms3_953),((T0*)ms4_953));
  447. }
  448. /*FI*/}
  449. }
  450. int r953for_short(T953* C,T0* a1,int a2,T0* a3,int a4,T0* a5,T0* a6){
  451. int R=0;
  452. T0* _rf=NULL;
  453. T0* _fn=NULL;
  454. int _i=0;
  455. R=a2;
  456. _i=1;
  457. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)C))->_list/*0*/))))->_upper/*8*//*)*/))) {
  458. _fn=r855item(((T855*)((((T953*)C))->_list/*0*/)),_i);
  459. _rf=r368get_rf_with(((T368*)a6),_fn);
  460. /*IF*/if (!(X321fast_has(a5,_rf))) {
  461. X321add_last(a5,_rf);
  462. /*IF*/if (!(a4)) {
  463. /*IF*/if (!(a2)) {
  464. R=1;
  465. r153do_heading_for_short(((T153*)a1),a3);
  466. }
  467. /*FI*/r580a_run_feature(((T580*)(oBC364short_print)),_rf);
  468. }
  469. /*FI*/}
  470. /*FI*/_i=(_i)+(1);
  471. }
  472. return R;
  473. }
  474. void r953make(T953* C,T0* a1){
  475. int _i2=0;
  476. int _i=0;
  477. C->_list=a1;
  478. _i=(((T855*)((T855*)a1)))->_upper/*8*/;
  479. while (!((_i)==(0))) {
  480. _i2=r953index_of(C,r855item(((T855*)a1),_i));
  481. /*IF*/if ((_i2)!=(_i)) {
  482. r683add_position(X776start_position(r855item(((T855*)a1),_i2)));
  483. r683add_position(X776start_position(r855item(((T855*)a1),_i)));
  484. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_953);
  485. r683fatal_error(((T683*)(oBC364eh)),b1);
  486. }/*]*/
  487. }
  488. /*FI*/_i=(_i)-(1);
  489. }
  490. }
  491. /*No:FEATURE_NAME_LIST.item*/
  492. /*No:FEATURE_NAME_LIST.list*/
  493. int r953has(T953* C,T0* a1){
  494. int R=0;
  495. R=(r953index_of(C,a1))>(0);
  496. return R;
  497. }
  498. /*No:FEATURE_NAME_LIST.count*/
  499. /*No:FEATURE_NAME_LIST.fatal_error*/
  500. void r953short_for_creation(T953* C){
  501. int _i=0;
  502. _i=1;
  503. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)C))->_list/*0*/))))->_upper/*8*//*)*/))) {
  504. r580a_feature(((T580*)(oBC364short_print)),r855item(((T855*)((((T953*)C))->_list/*0*/)),_i));
  505. _i=(_i)+(1);
  506. }
  507. }
  508. int r953index_of(T953* C,T0* a1){
  509. int R=0;
  510. T0* _fn_key=NULL;
  511. _fn_key=X776to_key(a1);
  512. R=(((T855*)((T855*)((((T953*)C))->_list/*0*/))))->_upper/*8*/;
  513. while (!(((R)==(0))||((_fn_key)==((void*)(X776to_key(/*(IRF4.6item*/r855item(((T855*)((((T953*)C))->_list/*0*/)),R)/*)*/)))))) {
  514. R=(R)-(1);
  515. }
  516. return R;
  517. }
  518. /*No:IFTHEN.fz_is_not_boolean*/
  519. void r809make(T809* C,T0* a1,T0* a2){
  520. C->_expression=a1;
  521. C->_then_compound=a2;
  522. }
  523. /*No:IFTHEN.nb_errors*/
  524. /*No:IFTHEN.expression*/
  525. T0* r809to_runnable(T809* C,T0* a1){
  526. T0* R=NULL;
  527. T0* _t=NULL;
  528. T0* _tc=NULL;
  529. T0* _e=NULL;
  530. /*IF*/if (((((T809*)C))->_run_compound/*8*/)==((void*)(NULL))) {
  531. C->_run_compound=a1;
  532. _e=X662to_runnable((((T809*)C))->_expression/*0*/,/*(IRF4.6current_type*/(((T592*)((T592*)((((T809*)C))->_run_compound/*8*/))))->_current_type/*4*//*)*/);
  533. /*IF*/if ((_e)==((void*)(NULL))) {
  534. r809error(X662start_position((((T809*)C))->_expression/*0*/),((T0*)ms8_809));
  535. }
  536. else {
  537. C->_expression=_e;
  538. _t=X662result_type((((T809*)C))->_expression/*0*/);
  539. /*IF*/if (!(X291is_boolean(_t))) {
  540. /*[IRF3.6append*/{T0* b1=((T0*)ms9_809);
  541. r7append(((T7*)(oBC683explanation)),b1);
  542. }/*]*/
  543. r683add_type(X662result_type((((T809*)C))->_expression/*0*/),((T0*)ms73_470));
  544. r683add_position(X662start_position((((T809*)C))->_expression/*0*/));
  545. r683print_as_error(((T683*)(oBC364eh)));
  546. }
  547. /*FI*/}
  548. /*FI*//*IF*/if (((((T809*)C))->_then_compound/*4*/)!=((void*)(NULL))) {
  549. _tc=r592to_runnable(((T592*)((((T809*)C))->_then_compound/*4*/)),/*(IRF4.6current_type*/(((T592*)((T592*)((((T809*)C))->_run_compound/*8*/))))->_current_type/*4*//*)*/);
  550. /*IF*/if ((_tc)!=((void*)(NULL))) {
  551. C->_then_compound=_tc;
  552. }
  553. /*FI*/}
  554. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  555. R=(T0*)C;
  556. }
  557. /*FI*/}
  558. else {
  559. {T809*n=malloc(sizeof(*n));
  560. *n=M809;
  561. r809make(n,(((T809*)C))->_expression/*0*/,(((T809*)C))->_then_compound/*4*/);
  562. R=(T0*)n;
  563. }
  564. R=r809to_runnable(((T809*)R),a1);
  565. }
  566. /*FI*/return R;
  567. }
  568. /*No:IFTHEN.then_compound*/
  569. /*No:IFTHEN.current_type*/
  570. /*No:IFTHEN.run_compound*/
  571. void r809error(T0* a1,T0* a2){
  572. r683add_position(a1);
  573. r683error(((T683*)(oBC364eh)),a2);
  574. }
  575. /*No:CST_ATT_INTEGER.arguments*/
  576. T0* r689try_to_undefine(T689* C,T0* a1,T0* a2){
  577. T0* R=NULL;
  578. X776undefine_in(a1,a2);
  579. R=r689try_to_undefine_aux(C,a1,a2);
  580. /*IF*/if ((R)!=((void*)(NULL))) {
  581. /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T689*)C))->_clients/*20*/);
  582. /*]*/
  583. }
  584. else {
  585. r605fatal_undefine(((T605*)a2),a1);
  586. }
  587. /*FI*/return R;
  588. }
  589. /*No:CST_ATT_INTEGER.is_deferred*/
  590. void r689add_into(T689* C,T0* a1){
  591. T0* _fn=NULL;
  592. int _i=0;
  593. C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T689*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
  594. _i=1;
  595. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T689*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  596. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T689*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
  597. /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
  598. _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)/*)*//*)*/);
  599. r683add_position(X776start_position(_fn));
  600. r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T689*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
  601. r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
  602. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  603. r7append(((T7*)(oBC683explanation)),b1);
  604. }/*]*/
  605. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  606. }
  607. else {
  608. r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
  609. }
  610. /*FI*/_i=(_i)+(1);
  611. }
  612. }
  613. T0* r689try_to_undefine_aux(T689* C,T0* a1,T0* a2){
  614. T0* R=NULL;
  615. r683add_position(r689start_position(C));
  616. r689error(X776start_position(a1),((T0*)ms1_308));
  617. r605fatal_undefine(((T605*)a2),a1);
  618. return R;
  619. }
  620. void r689make(T689* C,T0* a1,T0* a2,T0* a3){
  621. r689make_e_feature(C,a1,a2);
  622. C->_value_mem=a3;
  623. }
  624. /*No:CST_ATT_INTEGER.nb_errors*/
  625. /*No:CST_ATT_INTEGER.set_header_comment*/
  626. T0* r689start_position(T689* C){
  627. T0* R=NULL;
  628. R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T689*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  629. return R;
  630. }
  631. T0* r689to_run_feature(T689* C,T0* a1,T0* a2){
  632. T0* R=NULL;
  633. T0* _rc=NULL;
  634. _rc=X291run_class(a1);
  635. R=r368at(((T368*)_rc),a2);
  636. if(NULL!=(R))switch(((T0*)R)->id) {
  637. case 808: 
  638. break;
  639. default:
  640. R=NULL;
  641. };/*IF*/if ((R)==((void*)(NULL))) {
  642. {T808*n=malloc(sizeof(*n));
  643. *n=M808;
  644. r808make(n,a1,a2,(T0*)C);
  645. R=(T0*)n;
  646. }
  647. }
  648. /*FI*/return R;
  649. }
  650. /*No:CST_ATT_INTEGER.ensure_assertion*/
  651. /*No:CST_ATT_INTEGER.code_require*/
  652. /*No:CST_ATT_INTEGER.result_type*/
  653. /*No:CST_ATT_INTEGER.em1*/
  654. /*No:CST_ATT_INTEGER.set_clients*/
  655. /*No:CST_ATT_INTEGER.em2*/
  656. /*No:CST_ATT_INTEGER.value*/
  657. /*No:CST_ATT_INTEGER.require_assertion*/
  658. /*No:CST_ATT_INTEGER.names*/
  659. /*No:CST_ATT_INTEGER.value_mem*/
  660. int r689can_hide(T689* C,T0* a1,T0* a2){
  661. int R=0;
  662. /*IF*/if (((((T689*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  663. /*IF*/if ((((((T689*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  664. r683add_position(X359start_position(a1));
  665. r689error(r689start_position(C),((T0*)ms5_359));
  666. }
  667. /*FI*/}
  668. /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
  669. /*IF*/{/*AT*/r683add_position(X359start_position(a1));
  670. r689error(r689start_position(C),((T0*)ms6_359));
  671. }
  672. /*FI*/}
  673. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  674. /*IF*/if (((((T689*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  675. /*IF*/if (!(X291is_a_in((((T689*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  676. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  677. r7append(((T7*)(oBC683explanation)),b1);
  678. }/*]*/
  679. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T368*)((T368*)a2)))->_current_type/*0*/);
  680. r7append(((T7*)(oBC683explanation)),b1);
  681. }/*]*/
  682. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  683. }
  684. /*FI*/}
  685. /*FI*/}
  686. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  687. /*IF*//*AF*//*AE*/
  688. /*FI*/}
  689. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  690. return R;
  691. }
  692. /*No:CST_ATT_INTEGER.header_comment*/
  693. int r689is_merge_with(T689* C,T0* a1,T0* a2){
  694. int R=0;
  695. /*IF*/if (((((T689*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  696. /*IF*/if ((((((T689*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  697. r683add_position(X359start_position(a1));
  698. r689error(r689start_position(C),((T0*)ms2_359));
  699. }
  700. /*FI*/}
  701. /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
  702. /*IF*/{/*AT*/r683add_position(X359start_position(a1));
  703. r689error(r689start_position(C),((T0*)ms3_359));
  704. }
  705. /*FI*/}
  706. /*FI*//*IF*/if (((((T689*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  707. /*IF*/if (!(X291is_a_in((((T689*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  708. r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
  709. }
  710. /*FI*/}
  711. /*FI*//*IF*//*AF*//*AE*/
  712. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  713. return R;
  714. }
  715. /*No:CST_ATT_INTEGER.fz_dot*/
  716. /*No:CST_ATT_INTEGER.first_name*/
  717. /*No:CST_ATT_INTEGER.clients*/
  718. void r689collect_for(int a1){
  719. /*IF*/if ((a1)==(1001)) {
  720. /*IF*//*AF*//*AE*/
  721. /*FI*/}
  722. else {
  723. /*IF*//*AF*//*AE*/
  724. /*FI*/}
  725. /*FI*/}
  726. void r689error(T0* a1,T0* a2){
  727. r683add_position(a1);
  728. r683error(((T683*)(oBC364eh)),a2);
  729. }
  730. /*No:CST_ATT_INTEGER.base_class*/
  731. void r689make_e_feature(T689* C,T0* a1,T0* a2){
  732. C->_names=a1;
  733. C->_result_type=a2;
  734. }
  735. /*No:BASE_CLASS.fz_is_invalid*/
  736. /*No:BASE_CLASS.set_end_comment*/
  737. /*No:BASE_CLASS.id*/
  738. void r605add_feature_clause(T605* C,T0* a1){
  739. /*IF*/if (((((T605*)C))->_feature_clause_list/*48*/)==((void*)(NULL))) {
  740. {T913*n=malloc(sizeof(*n));
  741. *n=M913;
  742. /*[IRF3.3make*/((((T913*)(n)))->_list)=(se_ma764(1,a1));
  743. /*]*/
  744. C->_feature_clause_list=(T0*)n;
  745. }
  746. }
  747. else {
  748. /*[IRF3.5add_last*/r764add_last(((T764*)((((T913*)((T913*)((((T605*)C))->_feature_clause_list/*48*/))))->_list/*0*/)),a1);
  749. /*]*/
  750. }
  751. /*FI*/}
  752. void r605set_parent_list(T605* C,T0* a1,T0* a2,T0* a3){
  753. {T686*n=malloc(sizeof(*n));
  754. *n=M686;
  755. r686make(n,(T0*)C,a1,a2,a3);
  756. C->_parent_list=(T0*)n;
  757. }
  758. }
  759. /*No:BASE_CLASS.is_deferred*/
  760. int r605has_creation(T605* C,T0* a1){
  761. int R=0;
  762. T0* _cn=NULL;
  763. T0* _bc=NULL;
  764. T0* _cc=NULL;
  765. /*IF*/if (((((T605*)C))->_creation_clause_list/*44*/)==((void*)(NULL))) {
  766. /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/;
  767. r7append(((T7*)(oBC683explanation)),b1);
  768. }/*]*/
  769. /*[IRF3.6append*/{T0* b1=((T0*)ms7_605);
  770. r7append(((T7*)(oBC683explanation)),b1);
  771. }/*]*/
  772. r683add_position(X776start_position(a1));
  773. r683print_as_error(((T683*)(oBC364eh)));
  774. }
  775. else {
  776. _cc=r378get_clause(((T378*)((((T605*)C))->_creation_clause_list/*44*/)),a1);
  777. /*IF*/if ((_cc)==((void*)(NULL))) {
  778. /*[IRF3.6append*/{T0* b1=((T0*)ms143_470);
  779. r7append(((T7*)(oBC683explanation)),b1);
  780. }/*]*/
  781. /*[IRF3.6append*/{T0* b1=X776to_string(a1);
  782. r7append(((T7*)(oBC683explanation)),b1);
  783. }/*]*/
  784. /*[IRF3.6append*/{T0* b1=((T0*)ms8_605);
  785. r7append(((T7*)(oBC683explanation)),b1);
  786. }/*]*/
  787. /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/;
  788. r7append(((T7*)(oBC683explanation)),b1);
  789. }/*]*/
  790. r605error(X776start_position(a1),((T0*)ms67_470));
  791. }
  792. else {
  793. R=1;
  794. _bc=X776origin_base_class(a1);
  795. /*IF*/if ((_bc)!=((void*)(NULL))) {
  796. _cn=(((T605*)((T605*)_bc)))->_base_class_name/*24*/;
  797. R=r636gives_permission_to(((T636*)((((T583*)((T583*)_cc)))->_clients/*4*/)),_cn);
  798. }
  799. /*FI*/}
  800. /*FI*/}
  801. /*FI*//*IF*/if (!(R)) {
  802. r605error(X776start_position(a1),((T0*)ms9_605));
  803. }
  804. /*FI*/return R;
  805. }
  806. void r605add_creation_clause(T605* C,T0* a1){
  807. /*IF*/if (((((T605*)C))->_creation_clause_list/*44*/)==((void*)(NULL))) {
  808. {T378*n=malloc(sizeof(*n));
  809. *n=M378;
  810. /*[IRF3.3make*/((((T378*)(n)))->_list)=(se_ma235(1,a1));
  811. /*]*/
  812. C->_creation_clause_list=(T0*)n;
  813. }
  814. }
  815. else {
  816. /*[IRF3.5add_last*/r235add_last(((T235*)((((T378*)((T378*)((((T605*)C))->_creation_clause_list/*44*/))))->_list/*0*/)),a1);
  817. /*]*/
  818. }
  819. /*FI*/}
  820. /*No:BASE_CLASS.us_copy*/
  821. /*No:BASE_CLASS.feature_clause_list*/
  822. void r605get_started(T605* C){
  823. C->_id=r410item(((T410*)(r605id_provider())),(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/);
  824. /*IF*/if (((((T605*)C))->_feature_clause_list/*48*/)!=((void*)(NULL))) {
  825. r913get_started(((T913*)((((T605*)C))->_feature_clause_list/*48*/)),(((T605*)C))->_feature_dictionary/*60*/);
  826. }
  827. /*FI*//*IF*/if (((((T605*)C))->_parent_list/*40*/)!=((void*)(NULL))) {
  828. r686get_started(((T686*)((((T605*)C))->_parent_list/*40*/)));
  829. }
  830. /*FI*//*IF*/if (((((T605*)C))->_end_comment/*56*/)!=((void*)(NULL))) {
  831. r393good_end(((T393*)((((T605*)C))->_end_comment/*56*/)),(((T605*)C))->_base_class_name/*24*/);
  832. }
  833. /*FI*//*IF*/if (((((T605*)C))->_parent_list/*40*/)!=((void*)(NULL))) {
  834. r863clear(((T863*)(oBC605visited)));
  835. r863add_last(((T863*)(oBC605visited)),(T0*)C);
  836. r686inherit_cycle_check(((T686*)((((T605*)C))->_parent_list/*40*/)));
  837. }
  838. /*FI*//*IF*/if (((r590all_check(((T590*)(oBC364run_control))))&&((((T605*)C))->_is_deferred/*16*/))&&(((((T605*)C))->_creation_clause_list/*44*/)!=((void*)(NULL)))) {
  839. r683add_position((((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_start_position/*4*/);
  840. r605warning(r378start_position(((T378*)((((T605*)C))->_creation_clause_list/*44*/))),((T0*)ms6_605));
  841. }
  842. /*FI*/}
  843. int r605is_subclass_of(T605* C,T0* a1){
  844. int R=0;
  845. /*IF*/if (r863fast_has(((T863*)((((T605*)C))->_isom/*64*/)),a1)) {
  846. R=1;
  847. }
  848. else {
  849. /*IF*/if (r605is_any(((T605*)a1))) {
  850. R=1;
  851. }
  852. else {
  853. r863clear(((T863*)(oBC605visited)));
  854. R=r605is_subclass_of_aux(C,a1);
  855. }
  856. /*FI*//*IF*/if (R) {
  857. r863add_last(((T863*)((((T605*)C))->_isom/*64*/)),a1);
  858. }
  859. /*FI*/}
  860. /*FI*/return R;
  861. }
  862. int fBC364class_any=0;
  863. T0*oBC364class_any=NULL;
  864. T0* r605class_any(void){
  865. if (fBC364class_any==0){
  866. T0* R=NULL;
  867. fBC364class_any=1;
  868. R=r605class_with(((T0*)ms1_473));
  869. oBC364class_any=R;}
  870. return oBC364class_any;}
  871. int r605has_feature(T605* C,T0* a1){
  872. int R=0;
  873. r446make(((T446*)(r605mem_fn())),a1,NULL);
  874. R=r605has(C,r605mem_fn());
  875. return R;
  876. }
  877. int fBC605mem_fn=0;
  878. T0*oBC605mem_fn=NULL;
  879. T0* r605mem_fn(void){
  880. if (fBC605mem_fn==0){
  881. T0* R=NULL;
  882. fBC605mem_fn=1;
  883. {T446*n=malloc(sizeof(*n));
  884. *n=M446;
  885. r446make(n,((T0*)ms27_605),NULL);
  886. R=(T0*)n;
  887. }
  888. oBC605mem_fn=R;}
  889. return oBC605mem_fn;}
  890. int r605is_subclass_of_aux(T605* C,T0* a1){
  891. int R=0;
  892. /*IF*/if (r863fast_has(((T863*)(oBC605visited)),(T0*)C)) {
  893. }
  894. else {
  895. r863add_last(((T863*)(oBC605visited)),(T0*)C);
  896. /*IF*/if (((((T605*)C))->_parent_list/*40*/)!=((void*)(NULL))) {
  897. R=r686has_parent(((T686*)((((T605*)C))->_parent_list/*40*/)),a1);
  898. }
  899.  else if (!(r863fast_has(((T863*)(oBC605visited)),r605class_any()))) {
  900. R=r605is_subclass_of_aux(((T605*)(r605class_any())),a1);
  901. }
  902. /*FI*/}
  903. /*FI*/return R;
  904. }
  905. /*No:BASE_CLASS.end_comment*/
  906. void r605add_index_clause(T605* C,T0* a1){
  907. /*IF*/if (((((T605*)C))->_index_list/*8*/)==((void*)(NULL))) {
  908. {T688*n=malloc(sizeof(*n));
  909. *n=M688;
  910. /*[IRF3.3make*/((((T688*)(n)))->_list)=(se_ma848(1,a1));
  911. /*]*/
  912. C->_index_list=(T0*)n;
  913. }
  914. }
  915. else {
  916. r848add_last(((T848*)((((T688*)((T688*)((((T605*)C))->_index_list/*8*/))))->_list/*0*/)),a1);
  917. }
  918. /*FI*/}
  919. /*No:BASE_CLASS.obsolete_type_string*/
  920. T0* r605class_with(T0* a1){
  921. T0* R=NULL;
  922. R=r604get_class(a1);
  923. return R;
  924. }
  925. /*No:BASE_CLASS.has_creation_clause*/
  926. void r605up_to_any_in(T605* C,T0* a1){
  927. /*IF*/if (r605is_general(C)) {
  928. }
  929. else {
  930. /*IF*/if (!(r654fast_has(((T654*)a1),(T0*)C))) {
  931. r654add_last(((T654*)a1),(T0*)C);
  932. }
  933. /*FI*//*IF*/if (((((T605*)C))->_parent_list/*40*/)==((void*)(NULL))) {
  934. /*IF*/if (!(r654fast_has(((T654*)a1),r605class_any()))) {
  935. r654add_last(((T654*)a1),r605class_any());
  936. }
  937. /*FI*/}
  938. else {
  939. r686up_to_any_in(((T686*)((((T605*)C))->_parent_list/*40*/)),a1);
  940. }
  941. /*FI*/}
  942. /*FI*/}
  943. void r605make(T605* C){
  944. {T863*n=malloc(sizeof(*n));
  945. *n=M863;
  946. r863with_capacity(n,6,1);
  947. C->_isom=(T0*)n;
  948. }
  949. C->_path=r902item((((T676*)((T676*)(oBC364parser_buffer))))->_path/*0*/);
  950. {T451*n=malloc(sizeof(*n));
  951. *n=M451;
  952. r451make_unknown(n);
  953. C->_base_class_name=(T0*)n;
  954. }
  955. {T237*n=malloc(sizeof(*n));
  956. *n=M237;
  957. r237with_capacity(n,32);
  958. C->_feature_dictionary=(T0*)n;
  959. }
  960. }
  961. /*No:BASE_CLASS.parent_list*/
  962. void r605header_comment_for(T605* C,T0* a1){
  963. T0* _ia=NULL;
  964. _ia=(((T605*)C))->_invariant_assertion/*52*/;
  965. /*IF*/if (((_ia)!=((void*)(NULL)))&&(((((T673*)((T673*)_ia)))->_header_comment/*4*/)!=((void*)(NULL)))) {
  966. /*[IRF3.3set_header_comment*/((((T673*)(((T673*)a1))))->_header_comment)=((((T673*)((T673*)_ia)))->_header_comment/*4*/);
  967. /*]*/
  968. }
  969.  else if (((((T605*)C))->_parent_list/*40*/)!=((void*)(NULL))) {
  970. r686header_comment_for(((T686*)((((T605*)C))->_parent_list/*40*/)),a1);
  971. }
  972. /*FI*/}
  973. /*No:BASE_CLASS.error_vtec1*/
  974. /*No:BASE_CLASS.path*/
  975. /*No:BASE_CLASS.next_parent_for*/
  976. void r605check_expanded_with(T605* C,T0* a1){
  977. T0* _rf=NULL;
  978. /*IF*/if ((((T605*)C))->_is_deferred/*16*/) {
  979. r683add_type(a1,((T0*)ms72_470));
  980. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_605);
  981. r683fatal_error(((T683*)(oBC364eh)),b1);
  982. }/*]*/
  983. }
  984. /*FI*//*IF*/if (((((T605*)C))->_creation_clause_list/*44*/)!=((void*)(NULL))) {
  985. r378check_expanded_with(((T378*)((((T605*)C))->_creation_clause_list/*44*/)),a1);
  986. }
  987. /*FI*/_rf=r605expanded_initializer(C,a1);
  988. }
  989. /*No:BASE_CLASS.isom*/
  990. /*No:BASE_CLASS.first_parent_for*/
  991. /*No:BASE_CLASS.index_list*/
  992. /*No:BASE_CLASS.set_heading_comment1*/
  993. void r605inherit_cycle_check(T605* C){
  994. int _i=0;
  995. r863add_last(((T863*)(oBC605visited)),(T0*)C);
  996. /*IF*/if ((r863first(((T863*)(oBC605visited))))==((void*)(C))) {
  997. /*[IRF3.6append*/{T0* b1=((T0*)ms19_605);
  998. r7append(((T7*)(oBC683explanation)),b1);
  999. }/*]*/
  1000. _i=1;
  1001. while (!((_i)>((((T863*)((T863*)(oBC605visited))))->_upper/*8*/))) {
  1002. /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)((T605*)(r863item(((T863*)(oBC605visited)),_i)))))->_base_class_name/*24*/))))->_to_string/*0*/;
  1003. r7append(((T7*)(oBC683explanation)),b1);
  1004. }/*]*/
  1005. /*IF*/if ((_i)<((((T863*)((T863*)(oBC605visited))))->_upper/*8*/)) {
  1006. /*[IRF3.6append*/{T0* b1=((T0*)ms20_605);
  1007. r7append(((T7*)(oBC683explanation)),b1);
  1008. }/*]*/
  1009. }
  1010. /*FI*/_i=(_i)+(1);
  1011. }
  1012. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms21_605);
  1013. r683fatal_error(((T683*)(oBC364eh)),b1);
  1014. }/*]*/
  1015. }
  1016.  else if (((((T605*)C))->_parent_list/*40*/)!=((void*)(NULL))) {
  1017. r686inherit_cycle_check(((T686*)((((T605*)C))->_parent_list/*40*/)));
  1018. }
  1019. /*FI*/}
  1020. T0* r605new_name_of(T605* C,T0* a1,T0* a2){
  1021. T0* R=NULL;
  1022. /*IF*/if ((C)==((void*)(a1))) {
  1023. R=a2;
  1024. }
  1025. else {
  1026. R=r605up_to_original(((T605*)a1),(T0*)C,a2);
  1027. /*IF*/if ((R)==((void*)(NULL))) {
  1028. r683add_position(X776start_position(a2));
  1029. /*[IRF3.6append*/{T0* b1=((T0*)ms143_470);
  1030. r7append(((T7*)(oBC683explanation)),b1);
  1031. }/*]*/
  1032. /*[IRF3.6append*/{T0* b1=X776to_string(a2);
  1033. r7append(((T7*)(oBC683explanation)),b1);
  1034. }/*]*/
  1035. /*[IRF3.6append*/{T0* b1=((T0*)ms2_605);
  1036. r7append(((T7*)(oBC683explanation)),b1);
  1037. }/*]*/
  1038. /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)((T605*)a1)))->_base_class_name/*24*/))))->_to_string/*0*/;
  1039. r7append(((T7*)(oBC683explanation)),b1);
  1040. }/*]*/
  1041. /*[IRF3.6append*/{T0* b1=((T0*)ms3_605);
  1042. r7append(((T7*)(oBC683explanation)),b1);
  1043. }/*]*/
  1044. /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/;
  1045. r7append(((T7*)(oBC683explanation)),b1);
  1046. }/*]*/
  1047. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms4_605);
  1048. r683fatal_error(((T683*)(oBC364eh)),b1);
  1049. }/*]*/
  1050. }
  1051. /*FI*/}
  1052. /*FI*/return R;
  1053. }
  1054. void r605set_is_expanded(T605* C){
  1055. /*IF*/if ((((T605*)C))->_is_deferred/*16*/) {
  1056. /*[IRF3.6error_vtec1*/{T605* C1=C;
  1057. r605error((((T451*)((T451*)((((T605*)C1))->_base_class_name/*24*/))))->_start_position/*4*/,((T0*)ms33_605));
  1058. }/*]*/
  1059. }
  1060. /*FI*/C->_is_expanded=1;
  1061. }
  1062. int r605super_has(T605* C,T0* a1){
  1063. int R=0;
  1064. /*IF*/if (((((T605*)C))->_parent_list/*40*/)==((void*)(NULL))) {
  1065. /*IF*/if (r605is_general(C)) {
  1066. R=0;
  1067. }
  1068. else {
  1069. R=r605has(((T605*)(r605class_any())),a1);
  1070. }
  1071. /*FI*/}
  1072. else {
  1073. R=r686has(((T686*)((((T605*)C))->_parent_list/*40*/)),a1);
  1074. }
  1075. /*FI*/return R;
  1076. }
  1077. T0* r605up_to_original(T605* C,T0* a1,T0* a2){
  1078. T0* R=NULL;
  1079. /*IF*/if (r605proper_has(C,a2)) {
  1080. /*IF*/if (((((T605*)C))->_parent_list/*40*/)==((void*)(NULL))) {
  1081. R=r605new_name_of_original(((T605*)a1),(T0*)C,a2);
  1082. }
  1083. else {
  1084. R=r686up_to_original(((T686*)((((T605*)C))->_parent_list/*40*/)),a1,a2);
  1085. /*IF*/if ((R)==((void*)(NULL))) {
  1086. R=r605new_name_of_original(((T605*)a1),(T0*)C,a2);
  1087. }
  1088. /*FI*/}
  1089. /*FI*/}
  1090.  else if (((((T605*)C))->_parent_list/*40*/)!=((void*)(NULL))) {
  1091. R=r686up_to_original(((T686*)((((T605*)C))->_parent_list/*40*/)),a1,a2);
  1092. }
  1093.  else if (r605is_general(C)) {
  1094. }
  1095. else {
  1096. R=r605up_to_original(((T605*)(r605class_any())),a1,a2);
  1097. }
  1098. /*FI*/return R;
  1099. }
  1100. void r605collect_invariant(T605* C,T0* a1){
  1101. /*IF*/if (((((T605*)C))->_parent_list/*40*/)!=((void*)(NULL))) {
  1102. r686collect_invariant(((T686*)((((T605*)C))->_parent_list/*40*/)),a1);
  1103. }
  1104. /*FI*//*IF*/if (((((T605*)C))->_invariant_assertion/*52*/)!=((void*)(NULL))) {
  1105. /*[IRF3.6collect_invariant*/{T0* b1=(((T605*)C))->_invariant_assertion/*52*/;
  1106. r673add_into(((T673*)b1),oBC368ci_collector);
  1107. }/*]*/
  1108. }
  1109. /*FI*/}
  1110. /*No:BASE_CLASS.set_heading_comment2*/
  1111. int r605has(T605* C,T0* a1){
  1112. int R=0;
  1113. /*IF*/if (r237has(((T237*)((((T605*)C))->_feature_dictionary/*60*/)),X776to_key(a1))) {
  1114. R=1;
  1115. }
  1116. else {
  1117. R=r605super_has(C,a1);
  1118. }
  1119. /*FI*/return R;
  1120. }
  1121. int fBC364id_provider=0;
  1122. T0*oBC364id_provider=NULL;
  1123. T0* r605id_provider(void){
  1124. if (fBC364id_provider==0){
  1125. T0* R=NULL;
  1126. fBC364id_provider=1;
  1127. {T410*n=malloc(sizeof(*n));
  1128. *n=M410;
  1129. r410make(n);
  1130. R=(T0*)n;
  1131. }
  1132. oBC364id_provider=R;}
  1133. return oBC364id_provider;}
  1134. T0* r605run_class(T605* C){
  1135. T0* R=NULL;
  1136. T0* _type=NULL;
  1137. T0* _name=NULL;
  1138. T0* _rcd=NULL;
  1139. _name=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/;
  1140. /*IF*/if ((!((((T605*)C))->_is_deferred/*16*/))&&(!(/*(IRF4.7is_generic*/((((T605*)C))->_formal_generic_list/*28*/)!=(NULL)/*)*/))) {
  1141. _rcd=oBC604run_class_dictionary;
  1142. /*IF*/if (r250has(((T250*)_rcd),_name)) {
  1143. R=r250at(((T250*)_rcd),_name);
  1144. }
  1145. else {
  1146. {T657*n=malloc(sizeof(*n));
  1147. *n=M657;
  1148. /*[IRF3.3make*/((((T657*)(n)))->_base_class_name)=((((T605*)C))->_base_class_name/*24*/);
  1149. /*]*/
  1150. _type=(T0*)n;
  1151. }
  1152. R=r657run_class(((T657*)_type));
  1153. }
  1154. /*FI*/}
  1155. else {
  1156. r605error(NULL,((T0*)ms18_605));
  1157. }
  1158. /*FI*/return R;
  1159. }
  1160. /*No:BASE_CLASS.fz_09*/
  1161. int r605has_redefine(T605* C,T0* a1){
  1162. int R=0;
  1163. /*IF*/if (((((T605*)C))->_parent_list/*40*/)!=((void*)(NULL))) {
  1164. R=r686has_redefine(((T686*)((((T605*)C))->_parent_list/*40*/)),a1);
  1165. }
  1166. /*FI*/return R;
  1167. }
  1168. T0* r605look_up_for(T605* C,T0* a1,T0* a2){
  1169. T0* R=NULL;
  1170. int _i=0;
  1171. T0* _super_fn=NULL;
  1172. T0* _fnl=NULL;
  1173. T0* _cst_att=NULL;
  1174. T0* _fn_key=NULL;
  1175. T0* _super=NULL;
  1176. _fn_key=X776to_key(a2);
  1177. /*IF*/if (r237has(((T237*)((((T605*)C))->_feature_dictionary/*60*/)),_fn_key)) {
  1178. R=r237at(((T237*)((((T605*)C))->_feature_dictionary/*60*/)),_fn_key);
  1179. _super=r605super_look_up_for(C,a1,a2);
  1180. /*IF*/if ((_super)!=((void*)(NULL))) {
  1181. _cst_att=_super;
  1182. if(NULL!=(_cst_att))switch(((T0*)_cst_att)->id) {
  1183. case 380: case 588: case 398: case 689: case 554: case 593: case 835: case 118: 
  1184. break;
  1185. default:
  1186. _cst_att=NULL;
  1187. };/*IF*/if ((_cst_att)!=((void*)(NULL))) {
  1188. r683add_position(X359start_position(_super));
  1189. r683add_position(X359start_position(R));
  1190. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms22_605);
  1191. r683fatal_error(((T683*)(oBC364eh)),b1);
  1192. }/*]*/
  1193. }
  1194. /*FI*/_fnl=/*X359*/((T0*)(((T398*)((T398*)_super)))->_names/*8*/);
  1195. _i=/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)_fnl)))->_list/*0*/))))->_upper/*8*//*)*/;
  1196. while (!((_i)<(1))) {
  1197. _super_fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)_fnl)))->_list/*0*/)),_i)/*)*/;
  1198. /*IF*/if (X776is_frozen(_super_fn)) {
  1199. /*IF*/if ((X776to_key(_super_fn))==((void*)(_fn_key))) {
  1200. r683add_position(X776start_position(_super_fn));
  1201. r683add_position(X359start_position(R));
  1202. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms23_605);
  1203. r683fatal_error(((T683*)(oBC364eh)),b1);
  1204. }/*]*/
  1205. }
  1206. /*FI*/}
  1207. /*FI*/_i=(_i)-(1);
  1208. }
  1209. /*IF*/if (!(X359can_hide(R,_super,a1))) {
  1210. r683add_position(X359start_position(_super));
  1211. r683add_position(X359start_position(R));
  1212. /*[IRF3.6append*/{T0* b1=((T0*)ms24_605);
  1213. r7append(((T7*)(oBC683explanation)),b1);
  1214. }/*]*/
  1215. r683print_as_warning(((T683*)(oBC364eh)));
  1216. }
  1217. /*FI*//*IF*/if (X359is_deferred(_super)) {
  1218. }
  1219.  else if (r605has_redefine(C,a2)) {
  1220. }
  1221. else {
  1222. r683add_position(X359start_position(R));
  1223. r683add_position(X359start_position(_super));
  1224. /*[IRF3.6append*/{T0* b1=((T0*)ms25_605);
  1225. r7append(((T7*)(oBC683explanation)),b1);
  1226. }/*]*/
  1227. /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/;
  1228. r7append(((T7*)(oBC683explanation)),b1);
  1229. }/*]*/
  1230. /*[IRF3.6append*/{T0* b1=((T0*)ms26_605);
  1231. r7append(((T7*)(oBC683explanation)),b1);
  1232. }/*]*/
  1233. r683print_as_error(((T683*)(oBC364eh)));
  1234. }
  1235. /*FI*/}
  1236. /*FI*/}
  1237. else {
  1238. R=r605super_look_up_for(C,a1,a2);
  1239. }
  1240. /*FI*/return R;
  1241. }
  1242. T0* r605get_copy(T605* C){
  1243. T0* R=NULL;
  1244. R=r237at(((T237*)((((T605*)C))->_feature_dictionary/*60*/)),((T0*)ms64_473));
  1245. return R;
  1246. }
  1247. T0* r605expanded_initializer(T605* C,T0* a1){
  1248. T0* R=NULL;
  1249. /*IF*/if (((((T605*)C))->_creation_clause_list/*44*/)!=((void*)(NULL))) {
  1250. R=r378expanded_initializer(((T378*)((((T605*)C))->_creation_clause_list/*44*/)),a1);
  1251. }
  1252. /*FI*/return R;
  1253. }
  1254. void r605fatal_undefine(T605* C,T0* a1){
  1255. /*[IRF3.6append*/{T0* b1=((T0*)ms34_605);
  1256. r7append(((T7*)(oBC683explanation)),b1);
  1257. }/*]*/
  1258. /*[IRF3.6append*/{T0* b1=X776to_string(a1);
  1259. r7append(((T7*)(oBC683explanation)),b1);
  1260. }/*]*/
  1261. /*[IRF3.6append*/{T0* b1=((T0*)ms35_605);
  1262. r7append(((T7*)(oBC683explanation)),b1);
  1263. }/*]*/
  1264. /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/;
  1265. r7append(((T7*)(oBC683explanation)),b1);
  1266. }/*]*/
  1267. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms36_605);
  1268. r683fatal_error(((T683*)(oBC364eh)),b1);
  1269. }/*]*/
  1270. }
  1271. T0* r605super_look_up_for(T605* C,T0* a1,T0* a2){
  1272. T0* R=NULL;
  1273. /*IF*/if (((((T605*)C))->_parent_list/*40*/)==((void*)(NULL))) {
  1274. /*IF*/if (r605is_general(C)) {
  1275. R=NULL;
  1276. }
  1277. else {
  1278. R=r605look_up_for(((T605*)(r605class_any())),a1,a2);
  1279. }
  1280. /*FI*/}
  1281. else {
  1282. R=r686look_up_for(((T686*)((((T605*)C))->_parent_list/*40*/)),a1,a2);
  1283. }
  1284. /*FI*/return R;
  1285. }
  1286. /*No:BASE_CLASS.invariant_assertion*/
  1287. void r605set_invariant(T605* C,T0* a1,T0* a2,T0* a3){
  1288. /*IF*/if (((a2)!=((void*)(NULL)))||((a3)!=((void*)(NULL)))) {
  1289. {T673*n=malloc(sizeof(*n));
  1290. *n=M673;
  1291. r673make(n,a1,a2,a3);
  1292. C->_invariant_assertion=(T0*)n;
  1293. }
  1294. }
  1295. /*FI*/}
  1296. /*No:BASE_CLASS.fz_dot*/
  1297. /*No:BASE_CLASS.set_formal_generic_list*/
  1298. T0* r605clients_for(T605* C,T0* a1){
  1299. T0* R=NULL;
  1300. /*IF*/if (r605proper_has(C,a1)) {
  1301. R=X359clients(r237at(((T237*)((((T605*)C))->_feature_dictionary/*60*/)),X776to_key(a1)));
  1302. }
  1303.  else if (r605is_general(C)) {
  1304. }
  1305.  else if (((((T605*)C))->_parent_list/*40*/)==((void*)(NULL))) {
  1306. R=r605clients_for(((T605*)(r605class_any())),a1);
  1307. }
  1308. else {
  1309. R=r686clients_for(((T686*)((((T605*)C))->_parent_list/*40*/)),a1);
  1310. }
  1311. /*FI*/return R;
  1312. }
  1313. /*No:BASE_CLASS.is_generic*/
  1314. T0*oBC605going_up_trace=NULL;
  1315. /*No:BASE_CLASS.heading_comment1*/
  1316. void r605set_is_deferred(T605* C){
  1317. /*IF*/if ((((T605*)C))->_is_expanded/*20*/) {
  1318. /*[IRF3.6error_vtec1*/{T605* C1=C;
  1319. r605error((((T451*)((T451*)((((T605*)C1))->_base_class_name/*24*/))))->_start_position/*4*/,((T0*)ms33_605));
  1320. }/*]*/
  1321. }
  1322. /*FI*/C->_is_deferred=1;
  1323. }
  1324. int r605proper_has(T605* C,T0* a1){
  1325. int R=0;
  1326. R=r237has(((T237*)((((T605*)C))->_feature_dictionary/*60*/)),X776to_key(a1));
  1327. return R;
  1328. }
  1329. T0* r605going_up(T605* C,T0* a1,T0* a2,T0* a3){
  1330. T0* R=NULL;
  1331. /*IF*/if (((((T605*)C))->_parent_list/*40*/)==((void*)(NULL))) {
  1332. R=r605going_up(((T605*)(r605class_any())),a1,a2,a3);
  1333. }
  1334. else {
  1335. R=r686going_up(((T686*)((((T605*)C))->_parent_list/*40*/)),a1,a2,a3);
  1336. }
  1337. /*FI*/return R;
  1338. }
  1339. /*No:BASE_CLASS.set_obsolete_type_string*/
  1340. /*No:BASE_CLASS.formal_generic_list*/
  1341. void r605collect_for(T605* C,int a1,T0* a2){
  1342. T0* _fn_key=NULL;
  1343. _fn_key=X776to_key(a2);
  1344. /*IF*/if (r237has(((T237*)((((T605*)C))->_feature_dictionary/*60*/)),_fn_key)) {
  1345. X359collect_for(r237at(((T237*)((((T605*)C))->_feature_dictionary/*60*/)),_fn_key),a1);
  1346. }
  1347. /*FI*//*IF*/if (((((T605*)C))->_parent_list/*40*/)==((void*)(NULL))) {
  1348. /*IF*/if (r605is_general(C)) {
  1349. }
  1350. else {
  1351. r605collect_for(((T605*)(r605class_any())),a1,a2);
  1352. }
  1353. /*FI*/}
  1354. else {
  1355. r686collect_for(((T686*)((((T605*)C))->_parent_list/*40*/)),a1,a2);
  1356. }
  1357. /*FI*/}
  1358. int r605is_a_vncg(T605* C,T0* a1,T0* a2){
  1359. int R=0;
  1360. /*IF*/if (((((T605*)C))->_parent_list/*40*/)!=((void*)(NULL))) {
  1361. R=r686is_a_vncg(((T686*)((((T605*)C))->_parent_list/*40*/)),X291run_type(a1),X291run_type(a2));
  1362. }
  1363. /*FI*/return R;
  1364. }
  1365. void r605error(T0* a1,T0* a2){
  1366. r683add_position(a1);
  1367. r683error(((T683*)(oBC364eh)),a2);
  1368. }
  1369. /*No:BASE_CLASS.fatal_error*/
  1370. int r605is_any(T605* C){
  1371. int R=0;
  1372. R=(((T0*)ms1_473))==((void*)((((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/));
  1373. return R;
  1374. }
  1375. /*No:BASE_CLASS.heading_comment2*/
  1376. int r605is_general(T605* C){
  1377. int R=0;
  1378. R=(((T0*)ms14_473))==((void*)((((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/));
  1379. return R;
  1380. }
  1381. /*No:BASE_CLASS.feature_dictionary*/
  1382. T0* r605new_name_of_original(T605* C,T0* a1,T0* a2){
  1383. T0* R=NULL;
  1384. /*IF*/if ((C)==((void*)(a1))) {
  1385. R=a2;
  1386. }
  1387.  else if (r605is_general(C)) {
  1388. R=a2;
  1389. }
  1390. else {
  1391. /*IF*/if (((((T605*)C))->_parent_list/*40*/)==((void*)(NULL))) {
  1392. R=r605new_name_of(((T605*)(r605class_any())),a1,a2);
  1393. }
  1394. else {
  1395. /*[IRF3.3clear*/((((T854*)(((T854*)(oBC605going_up_trace)))))->_upper)=(-(1));
  1396. /*]*/
  1397. R=r686going_up(((T686*)((((T605*)C))->_parent_list/*40*/)),oBC605going_up_trace,a1,a2);
  1398. }
  1399. /*FI*/}
  1400. /*FI*/return R;
  1401. }
  1402. T0*oBC605visited=NULL;
  1403. /*No:BASE_CLASS.base_class_name*/
  1404. /*No:BASE_CLASS.is_expanded*/
  1405. /*No:BASE_CLASS.creation_clause_list*/
  1406. /*No:BASE_CLASS.us_any*/
  1407. /*No:BASE_CLASS.us_general*/
  1408. void r605warning(T0* a1,T0* a2){
  1409. r683add_position(a1);
  1410. r683warning(((T683*)(oBC364eh)),a2);
  1411. }
  1412. /*No:TYPE_LIKE_CURRENT.short*/
  1413. int r958has_creation(T958* C,T0* a1){
  1414. int R=0;
  1415. R=X291has_creation((((T958*)C))->_run_type/*8*/,a1);
  1416. return R;
  1417. }
  1418. /*No:TYPE_LIKE_CURRENT.is_anchored*/
  1419. int r958is_array(T958* C){
  1420. int R=0;
  1421. R=X291is_array((((T958*)C))->_run_type/*8*/);
  1422. return R;
  1423. }
  1424. int r958is_a(T958* C,T0* a1){
  1425. int R=0;
  1426. R=X291is_a((((T958*)C))->_run_type/*8*/,a1);
  1427. return R;
  1428. }
  1429. int r958is_pointer(T958* C){
  1430. int R=0;
  1431. R=X291is_pointer((((T958*)C))->_run_type/*8*/);
  1432. return R;
  1433. }
  1434. /*No:TYPE_LIKE_CURRENT.run_type*/
  1435. int r958is_string(T958* C){
  1436. int R=0;
  1437. R=X291is_string((((T958*)C))->_run_type/*8*/);
  1438. return R;
  1439. }
  1440. /*No:TYPE_LIKE_CURRENT.is_like_feature*/
  1441. /*No:TYPE_LIKE_CURRENT.is_like_current*/
  1442. void r958make(T958* C,T0* a1,T0* a2){
  1443. C->_start_position=a1;
  1444. C->_like_what=a2;
  1445. if(NULL!=(C->_like_what))switch(((T0*)C->_like_what)->id) {
  1446. case 358: 
  1447. break;
  1448. default:
  1449. C->_like_what=NULL;
  1450. };}
  1451. /*No:TYPE_LIKE_CURRENT.us_current*/
  1452. /*No:TYPE_LIKE_CURRENT.us_like_current*/
  1453. /*No:TYPE_LIKE_CURRENT.start_position*/
  1454. /*No:TYPE_LIKE_CURRENT.like_what*/
  1455. int r958is_character(T958* C){
  1456. int R=0;
  1457. R=X291is_character((((T958*)C))->_run_type/*8*/);
  1458. return R;
  1459. }
  1460. T0* r958written_mark(void){
  1461. T0* R=NULL;
  1462. R=((T0*)ms145_473);
  1463. return R;
  1464. }
  1465. /*No:TYPE_LIKE_CURRENT.is_run_type*/
  1466. T0* r958to_runnable(T958* C,T0* a1){
  1467. T0* R=NULL;
  1468. /*IF*/if (((((T958*)C))->_run_type/*8*/)==((void*)(NULL))) {
  1469. C->_run_type=X291run_type(a1);
  1470. R=(T0*)C;
  1471. }
  1472. else {
  1473. {T958*n=malloc(sizeof(*n));
  1474. *n=M958;
  1475. r958make(n,(((T958*)C))->_start_position/*4*/,(((T958*)C))->_like_what/*12*/);
  1476. R=(T0*)n;
  1477. }
  1478. R=r958to_runnable(((T958*)R),a1);
  1479. }
  1480. /*FI*/return R;
  1481. }
  1482. T0* r958generic_list(T958* C){
  1483. T0* R=NULL;
  1484. /*IF*/if (r958is_generic(C)) {
  1485. R=X291generic_list((((T958*)C))->_run_type/*8*/);
  1486. }
  1487. else {
  1488. r958fatal_error_generic_list(C);
  1489. }
  1490. /*FI*/return R;
  1491. }
  1492. /*No:TYPE_LIKE_CURRENT.is_formal_generic*/
  1493. int r958is_real(T958* C){
  1494. int R=0;
  1495. R=X291is_real((((T958*)C))->_run_type/*8*/);
  1496. return R;
  1497. }
  1498. int r958is_bit(T958* C){
  1499. int R=0;
  1500. R=X291is_bit((((T958*)C))->_run_type/*8*/);
  1501. return R;
  1502. }
  1503. void r958fatal_error_generic_list(T958* C){
  1504. r683add_type((T0*)C,((T0*)ms12_291));
  1505. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1506. }
  1507. T0* r958smallest_ancestor(T958* C,T0* a1){
  1508. T0* R=NULL;
  1509. R=X291smallest_ancestor((((T958*)C))->_run_type/*8*/,a1);
  1510. return R;
  1511. }
  1512. int r958is_boolean(T958* C){
  1513. int R=0;
  1514. R=X291is_boolean((((T958*)C))->_run_type/*8*/);
  1515. return R;
  1516. }
  1517. int r958is_double(T958* C){
  1518. int R=0;
  1519. R=X291is_double((((T958*)C))->_run_type/*8*/);
  1520. return R;
  1521. }
  1522. T0* r958run_class(T958* C){
  1523. T0* R=NULL;
  1524. R=r604run_class((((T958*)C))->_run_type/*8*/);
  1525. return R;
  1526. }
  1527. T0* r958run_time_mark(T958* C){
  1528. T0* R=NULL;
  1529. /*IF*/if (((((T958*)C))->_run_type/*8*/)!=((void*)(NULL))) {
  1530. R=X291run_time_mark((((T958*)C))->_run_type/*8*/);
  1531. }
  1532. /*FI*/return R;
  1533. }
  1534. int r958is_a_in(T958* C,T0* a1,T0* a2){
  1535. int R=0;
  1536. T0* _ct=NULL;
  1537. T0* _t2=NULL;
  1538. T0* _t1=NULL;
  1539. /*IF*/if ((r958written_mark())==((void*)(X291written_mark(a1)))) {
  1540. R=1;
  1541. }
  1542. else {
  1543. _ct=(((T368*)((T368*)a2)))->_current_type/*0*/;
  1544. _t1=r958to_runnable(C,_ct);
  1545. _t2=X291to_runnable(a1,_ct);
  1546. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  1547. R=1;
  1548. }
  1549. else {
  1550. R=X291is_a(_t1,_t2);
  1551. }
  1552. /*FI*/}
  1553. /*FI*/return R;
  1554. }
  1555. T0* r958look_up_for(T958* C,T0* a1,T0* a2){
  1556. T0* R=NULL;
  1557. R=r605look_up_for(((T605*)(r958base_class(C))),a1,a2);
  1558. return R;
  1559. }
  1560. T0* r958expanded_initializer(T958* C){
  1561. T0* R=NULL;
  1562. R=X291expanded_initializer((((T958*)C))->_run_type/*8*/);
  1563. return R;
  1564. }
  1565. /*No:TYPE_LIKE_CURRENT.fz_dot*/
  1566. int r958is_generic(T958* C){
  1567. int R=0;
  1568. R=X291is_generic((((T958*)C))->_run_type/*8*/);
  1569. return R;
  1570. }
  1571. /*No:TYPE_LIKE_CURRENT.used_as_reference*/
  1572. int r958is_reference(T958* C){
  1573. int R=0;
  1574. R=X291is_reference((((T958*)C))->_run_type/*8*/);
  1575. return R;
  1576. }
  1577. T0* r958base_class(T958* C){
  1578. T0* R=NULL;
  1579. T0* _bcn=NULL;
  1580. _bcn=r958base_class_name(C);
  1581. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  1582. R=r451base_class(((T451*)_bcn));
  1583. }
  1584. else {
  1585. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  1586. r7append(((T7*)(oBC683explanation)),b1);
  1587. }/*]*/
  1588. r683add_type((T0*)C,((T0*)ms67_470));
  1589. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1590. }
  1591. /*FI*/return R;
  1592. }
  1593. /*No:TYPE_LIKE_CURRENT.short_hook*/
  1594. int r958is_any(T958* C){
  1595. int R=0;
  1596. R=X291is_any((((T958*)C))->_run_type/*8*/);
  1597. return R;
  1598. }
  1599. T0* r958base_class_name(T958* C){
  1600. T0* R=NULL;
  1601. R=X291base_class_name((((T958*)C))->_run_type/*8*/);
  1602. return R;
  1603. }
  1604. int r958is_expanded(T958* C){
  1605. int R=0;
  1606. R=X291is_expanded((((T958*)C))->_run_type/*8*/);
  1607. return R;
  1608. }
  1609. int r958is_basic_eiffel_expanded(T958* C){
  1610. int R=0;
  1611. R=X291is_basic_eiffel_expanded((((T958*)C))->_run_type/*8*/);
  1612. return R;
  1613. }
  1614. int r958is_none(T958* C){
  1615. int R=0;
  1616. R=X291is_none((((T958*)C))->_run_type/*8*/);
  1617. return R;
  1618. }
  1619. int r958is_integer(T958* C){
  1620. int R=0;
  1621. R=X291is_integer((((T958*)C))->_run_type/*8*/);
  1622. return R;
  1623. }
  1624. /*No:ECHO.make*/
  1625. /*No:ECHO.verbose*/
  1626. T0*oBC1std_error=NULL;
  1627. void r306sfr_connect(T306* C,T0* a1,T0* a2){
  1628. r306put_string(C,((T0*)ms3_306));
  1629. r306put_string(C,a2);
  1630. r306put_string(C,((T0*)ms4_306));
  1631. r675connect_to(((T675*)a1),a2);
  1632. }
  1633. void r306put_string(T306* C,T0* a1){
  1634. /*IF*/if ((((T306*)C))->_verbose/*0*/) {
  1635. r830put_string(((T830*)(oBC1std_output)),a1);
  1636. /*[IRF3.6flush*/{T830* C1=((T830*)(oBC1std_output));
  1637. fflush(stdout);
  1638. }/*]*/
  1639. }
  1640. /*FI*/}
  1641.  
  1642.