home *** CD-ROM | disk | FTP | other *** search
/ Amiga ACS 1998 #4 / amigaacscoverdisc1998-041998.iso / utilities / shareware / dev / ppcsmalleiffel / source.lha / bin_c / short14.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  48.0 KB  |  1,450 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:EXTERNAL_FUNCTION.arguments*/
  10. T0* r679try_to_undefine(T679* C,T0* a1,T0* a2){
  11. T0* R=NULL;
  12. X776undefine_in(a1,a2);
  13. R=r679try_to_undefine_aux(C,a1,a2);
  14. /*IF*/if ((R)!=((void*)(NULL))) {
  15. /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T679*)C))->_clients/*20*/);
  16. /*]*/
  17. }
  18. else {
  19. r605fatal_undefine(((T605*)a2),a1);
  20. }
  21. /*FI*/return R;
  22. }
  23. /*No:EXTERNAL_FUNCTION.is_deferred*/
  24. /*No:EXTERNAL_FUNCTION.fz_bad_assertion*/
  25. T0* r679runnable(T0* a1,T0* a2,T0* a3){
  26. T0* R=NULL;
  27. T0* _a=NULL;
  28. int _i=0;
  29. /*IF*/if (!(r608empty(((T608*)a1)))) {
  30. R=r608twin(((T608*)a1));
  31. _i=(((T608*)((T608*)R)))->_upper/*8*/;
  32. while (!((_i)==(0))) {
  33. r604push(((T604*)(oBC364small_eiffel)),a3);
  34. _a=r348to_runnable(((T348*)(r608item(((T608*)R),_i))),a2);
  35. /*IF*/if ((_a)==((void*)(NULL))) {
  36. r679error(r348start_position(((T348*)(r608item(((T608*)R),_i)))),((T0*)ms57_470));
  37. }
  38. else {
  39. /*[IRF3.6put*/{T608* C1=((T608*)R);
  40. T0* b1=_a;
  41. int b2=_i;
  42. ((((T608*)C1))->_storage/*0*/)[(b2)-((((T608*)C1))->_lower/*12*/)]=(b1);
  43. }/*]*/
  44. }
  45. /*FI*/r604pop(((T604*)(oBC364small_eiffel)));
  46. _i=(_i)-(1);
  47. }
  48. }
  49. /*FI*/return R;
  50. }
  51. /*No:EXTERNAL_FUNCTION.rescue_compound*/
  52. void r679add_into(T679* C,T0* a1){
  53. T0* _fn=NULL;
  54. int _i=0;
  55. C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T679*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
  56. _i=1;
  57. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T679*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  58. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T679*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
  59. /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
  60. _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)/*)*//*)*/);
  61. r683add_position(X776start_position(_fn));
  62. r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T679*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
  63. r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
  64. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  65. r7append(((T7*)(oBC683explanation)),b1);
  66. }/*]*/
  67. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  68. }
  69. else {
  70. r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
  71. }
  72. /*FI*/_i=(_i)+(1);
  73. }
  74. }
  75. /*No:EXTERNAL_FUNCTION.end_comment*/
  76. T0* r679try_to_undefine_aux(T679* C,T0* a1,T0* a2){
  77. T0* R=NULL;
  78. {T649*n=malloc(sizeof(*n));
  79. *n=M649;
  80. r649from_effective(n,a1,(((T679*)C))->_arguments/*24*/,(((T679*)C))->_result_type/*12*/,(((T679*)C))->_require_assertion/*32*/,(((T679*)C))->_ensure_assertion/*36*/,a2);
  81. R=(T0*)n;
  82. }
  83. return R;
  84. }
  85. void r679make(T679* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7,T0* a8){
  86. r679make_routine(C,a1,a2,a4,a5,a6);
  87. C->_result_type=a3;
  88. r679make_external_routine(C,a7,a8);
  89. }
  90. /*No:EXTERNAL_FUNCTION.nb_errors*/
  91. /*No:EXTERNAL_FUNCTION.native*/
  92. void r679make_routine(T679* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  93. r679make_e_feature(C,a1,NULL);
  94. C->_header_comment=a4;
  95. C->_arguments=a2;
  96. C->_obsolete_mark=a3;
  97. C->_require_assertion=a5;
  98. }
  99. void r679set_header_comment(T679* C,T0* a1){
  100. /*IF*/if (((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)>(1))) {
  101. C->_end_comment=a1;
  102. }
  103. /*FI*/}
  104. T0* r679start_position(T679* C){
  105. T0* R=NULL;
  106. R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T679*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  107. return R;
  108. }
  109. T0* r679to_run_feature(T679* C,T0* a1,T0* a2){
  110. T0* R=NULL;
  111. r679check_obsolete(C);
  112. {T892*n=malloc(sizeof(*n));
  113. *n=M892;
  114. r892make(n,a1,a2,(T0*)C);
  115. R=(T0*)n;
  116. }
  117. return R;
  118. }
  119. /*No:EXTERNAL_FUNCTION.alias_string*/
  120. /*No:EXTERNAL_FUNCTION.ensure_assertion*/
  121. /*No:EXTERNAL_FUNCTION.code_require*/
  122. T0* r679run_ensure(T0* a1){
  123. T0* R=NULL;
  124. T0* _r=NULL;
  125. r608clear(((T608*)(oBC359assertion_collector)));
  126. /*[IRF3.3clear*/{T0* _default_item=NULL;
  127. ((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
  128. }/*]*/
  129. r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/)))),1002,/*X496*/((T0*)(((T808*)((T808*)a1)))->_name/*16*/));
  130. _r=r679runnable(oBC359assertion_collector,/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/),a1);
  131. /*IF*/if ((_r)!=((void*)(NULL))) {
  132. {T633*n=malloc(sizeof(*n));
  133. *n=M633;
  134. r633from_runnable(n,_r);
  135. R=(T0*)n;
  136. }
  137. /*[IRF3.3set_header_comment*/((((T633*)(((T633*)R))))->_header_comment)=((((T56*)((T56*)(oBC359header_comment_memory))))->_item/*0*/);
  138. /*]*/
  139. /*[IRF3.3clear*/{T0* _default_item=NULL;
  140. ((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
  141. }/*]*/
  142. }
  143. /*FI*/return R;
  144. }
  145. T0* r679run_require(T0* a1){
  146. T0* R=NULL;
  147. T0* _ar=NULL;
  148. T0* _hc=NULL;
  149. T0* _er=NULL;
  150. T0* _r=NULL;
  151. int _i=0;
  152. r522clear(((T522*)(oBC359require_collector)));
  153. r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/)))),1001,/*X496*/((T0*)(((T808*)((T808*)a1)))->_name/*16*/));
  154. /*IF*/if (!(r522empty(((T522*)(oBC359require_collector))))) {
  155. _i=1;
  156. while (!((_i)>((((T522*)((T522*)(oBC359require_collector))))->_upper/*8*/))) {
  157. _er=r522item(((T522*)(oBC359require_collector)),_i);
  158. _hc=(((T343*)((T343*)_er)))->_header_comment/*4*/;
  159. /*IF*/if (!(/*(IRF4.7empty*/((((T343*)((T343*)_er)))->_list/*8*/)==(NULL)/*)*/)) {
  160. _r=r679runnable((((T343*)((T343*)_er)))->_list/*8*/,/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/),a1);
  161. /*IF*/if ((_r)!=((void*)(NULL))) {
  162. {T343*n=malloc(sizeof(*n));
  163. *n=M343;
  164. r343from_runnable(n,_r);
  165. _er=(T0*)n;
  166. }
  167. /*[IRF3.3set_header_comment*/((((T343*)(((T343*)_er))))->_header_comment)=(_hc);
  168. /*]*/
  169. /*IF*/if ((_ar)==((void*)(NULL))) {
  170. _ar=se_ma522(1,_er);
  171. }
  172. else {
  173. r522add_last(((T522*)_ar),_er);
  174. }
  175. /*FI*/}
  176. /*FI*/}
  177. /*FI*/_i=(_i)+(1);
  178. }
  179. /*IF*/if ((_ar)!=((void*)(NULL))) {
  180. {T541*n=malloc(sizeof(*n));
  181. *n=M541;
  182. /*[IRF3.3make*/((((T541*)(n)))->_list)=(_ar);
  183. /*]*/
  184. R=(T0*)n;
  185. }
  186. }
  187. /*FI*/}
  188. /*FI*/return R;
  189. }
  190. /*No:EXTERNAL_FUNCTION.result_type*/
  191. /*No:EXTERNAL_FUNCTION.fz_03*/
  192. /*No:EXTERNAL_FUNCTION.em1*/
  193. /*No:EXTERNAL_FUNCTION.obsolete_mark*/
  194. /*No:EXTERNAL_FUNCTION.set_clients*/
  195. /*No:EXTERNAL_FUNCTION.em2*/
  196. /*No:EXTERNAL_FUNCTION.names*/
  197. /*No:EXTERNAL_FUNCTION.require_assertion*/
  198. /*No:EXTERNAL_FUNCTION.code_ensure*/
  199. void r679set_rescue_compound(T679* C,T0* a1){
  200. /*IF*/if (((a1)!=((void*)(NULL)))&&(/*(IRF4.1is_deferred*/0/*)*/)) {
  201. r679error(r679start_position(C),((T0*)ms6_355));
  202. }
  203. /*FI*/C->_rescue_compound=a1;
  204. }
  205. void r679make_external_routine(T679* C,T0* a1,T0* a2){
  206. C->_native=a1;
  207. C->_alias_string=a2;
  208. }
  209. int r679can_hide(T679* C,T0* a1,T0* a2){
  210. int R=0;
  211. /*IF*/if (((((T679*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  212. /*IF*/if ((((((T679*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  213. r683add_position(X359start_position(a1));
  214. r679error(r679start_position(C),((T0*)ms5_359));
  215. }
  216. /*FI*/}
  217. /*FI*//*IF*/if (((((T679*)C))->_arguments/*24*/)!=((void*)(X359arguments(a1)))) {
  218. /*IF*/if ((((((T679*)C))->_arguments/*24*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  219. r683add_position(X359start_position(a1));
  220. r679error(r679start_position(C),((T0*)ms6_359));
  221. }
  222.  else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T679*)C))->_arguments/*24*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  223. r683add_position(X359start_position(a1));
  224. r679error(r679start_position(C),((T0*)ms7_359));
  225. }
  226. /*FI*/}
  227. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  228. /*IF*/if (((((T679*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  229. /*IF*/if (!(X291is_a_in((((T679*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  230. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  231. r7append(((T7*)(oBC683explanation)),b1);
  232. }/*]*/
  233. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T368*)((T368*)a2)))->_current_type/*0*/);
  234. r7append(((T7*)(oBC683explanation)),b1);
  235. }/*]*/
  236. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  237. }
  238. /*FI*/}
  239. /*FI*/}
  240. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  241. /*IF*/if (((((T679*)C))->_arguments/*24*/)!=((void*)(NULL))) {
  242. /*IF*/if (!(r31is_a_in(((T31*)((((T679*)C))->_arguments/*24*/)),X359arguments(a1),a2))) {
  243. r683add_position(X359start_position(a1));
  244. r683add_position(r679start_position(C));
  245. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  246. r7append(((T7*)(oBC683explanation)),b1);
  247. }/*]*/
  248. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T368*)((T368*)a2)))->_current_type/*0*/);
  249. r7append(((T7*)(oBC683explanation)),b1);
  250. }/*]*/
  251. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  252. }
  253. /*FI*/}
  254. /*FI*/}
  255. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  256. return R;
  257. }
  258. /*No:EXTERNAL_FUNCTION.header_comment*/
  259. int r679is_merge_with(T679* C,T0* a1,T0* a2){
  260. int R=0;
  261. /*IF*/if (((((T679*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  262. /*IF*/if ((((((T679*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  263. r683add_position(X359start_position(a1));
  264. r679error(r679start_position(C),((T0*)ms2_359));
  265. }
  266. /*FI*/}
  267. /*FI*//*IF*/if (((((T679*)C))->_arguments/*24*/)!=((void*)(X359arguments(a1)))) {
  268. /*IF*/if ((((((T679*)C))->_arguments/*24*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  269. r683add_position(X359start_position(a1));
  270. r679error(r679start_position(C),((T0*)ms3_359));
  271. }
  272.  else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T679*)C))->_arguments/*24*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  273. r683add_position(X359start_position(a1));
  274. r679error(r679start_position(C),((T0*)ms4_359));
  275. }
  276. /*FI*/}
  277. /*FI*//*IF*/if (((((T679*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  278. /*IF*/if (!(X291is_a_in((((T679*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  279. r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
  280. }
  281. /*FI*/}
  282. /*FI*//*IF*/if (((((T679*)C))->_arguments/*24*/)!=((void*)(NULL))) {
  283. /*IF*/if (!(r31is_a_in(((T31*)((((T679*)C))->_arguments/*24*/)),X359arguments(a1),a2))) {
  284. r683add_position(X359start_position(a1));
  285. r679error(r679start_position(C),((T0*)ms12_359));
  286. }
  287. /*FI*/}
  288. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  289. return R;
  290. }
  291. /*No:EXTERNAL_FUNCTION.fz_dot*/
  292. /*No:EXTERNAL_FUNCTION.set_ensure_assertion*/
  293. /*No:EXTERNAL_FUNCTION.first_name*/
  294. /*No:EXTERNAL_FUNCTION.clients*/
  295. void r679collect_for(T679* C,int a1){
  296. /*IF*/if ((a1)==(1001)) {
  297. /*IF*/if (((((T679*)C))->_require_assertion/*32*/)!=((void*)(NULL))) {
  298. /*IF*/if (!(r522fast_has(((T522*)(oBC359require_collector)),(((T679*)C))->_require_assertion/*32*/))) {
  299. r522add_last(((T522*)(oBC359require_collector)),(((T679*)C))->_require_assertion/*32*/);
  300. }
  301. /*FI*/}
  302. /*FI*/}
  303. else {
  304. /*IF*/if (((((T679*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  305. /*[IRF3.3set_item*/((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=((((T633*)((T633*)((((T679*)C))->_ensure_assertion/*36*/))))->_header_comment/*4*/);
  306. /*]*/
  307. r633add_into(((T633*)((((T679*)C))->_ensure_assertion/*36*/)),oBC359assertion_collector);
  308. }
  309. /*FI*/}
  310. /*FI*/}
  311. void r679error(T0* a1,T0* a2){
  312. r683add_position(a1);
  313. r683error(((T683*)(oBC364eh)),a2);
  314. }
  315. /*No:EXTERNAL_FUNCTION.base_class*/
  316. void r679make_e_feature(T679* C,T0* a1,T0* a2){
  317. C->_names=a1;
  318. C->_result_type=a2;
  319. }
  320. void r679check_obsolete(T679* C){
  321. /*IF*/if (!((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/)) {
  322. /*IF*/if (((((T679*)C))->_obsolete_mark/*28*/)!=((void*)(NULL))) {
  323. /*[IRF3.6append*/{T0* b1=((T0*)ms7_355);
  324. r7append(((T7*)(oBC683explanation)),b1);
  325. }/*]*/
  326. /*[IRF3.6append*/{T0* b1=(((T805*)((T805*)((((T679*)C))->_obsolete_mark/*28*/))))->_to_string/*12*/;
  327. r7append(((T7*)(oBC683explanation)),b1);
  328. }/*]*/
  329. r679warning(r679start_position(C),((T0*)ms137_470));
  330. }
  331. /*FI*/}
  332. /*FI*/}
  333. void r679warning(T0* a1,T0* a2){
  334. r683add_position(a1);
  335. r683warning(((T683*)(oBC364eh)),a2);
  336. }
  337. void r145make(T145* C,T0* a1,T0* a2){
  338. C->_comment=a2;
  339. C->_expression=a1;
  340. }
  341. /*No:LOOP_VARIANT_1.nb_errors*/
  342. /*No:LOOP_VARIANT_1.expression*/
  343. T0* r145start_position(T145* C){
  344. T0* R=NULL;
  345. R=X662start_position((((T145*)C))->_expression/*8*/);
  346. return R;
  347. }
  348. /*No:LOOP_VARIANT_1.comment*/
  349. T0* r145to_runnable(T145* C,T0* a1){
  350. T0* R=NULL;
  351. T0* _e=NULL;
  352. /*IF*/if (((((T145*)C))->_current_type/*12*/)==((void*)(NULL))) {
  353. C->_current_type=a1;
  354. _e=X662to_runnable((((T145*)C))->_expression/*8*/,a1);
  355. /*IF*/if ((_e)==((void*)(NULL))) {
  356. r145error(r145start_position(C),((T0*)ms1_856));
  357. }
  358. else {
  359. C->_expression=_e;
  360. /*IF*/if (!(X291is_integer(X662result_type((((T145*)C))->_expression/*8*/)))) {
  361. r145error(X662start_position((((T145*)C))->_expression/*8*/),((T0*)ms2_856));
  362. }
  363. /*FI*/}
  364. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  365. R=(T0*)C;
  366. }
  367. /*FI*/}
  368. else {
  369. R=r145twin(C);
  370. /*[IRF3.3set_current_type*/((((T145*)(((T145*)R))))->_current_type)=(NULL);
  371. /*]*/
  372. R=r145to_runnable(((T145*)R),a1);
  373. }
  374. /*FI*/return R;
  375. }
  376. T0* r145twin(T145* C){
  377. T0* R=NULL;
  378. R=malloc(sizeof(*C));
  379. *((T145*)R)=*C;
  380. return R;
  381. }
  382. /*No:LOOP_VARIANT_1.set_current_type*/
  383. /*No:LOOP_VARIANT_1.current_type*/
  384. void r145error(T0* a1,T0* a2){
  385. r683add_position(a1);
  386. r683error(((T683*)(oBC364eh)),a2);
  387. }
  388. /*No:RUN_FEATURE_8.arguments*/
  389. /*No:RUN_FEATURE_8.us_character_bits*/
  390. /*No:RUN_FEATURE_8.us_generator*/
  391. /*No:RUN_FEATURE_8.actuals_clients*/
  392. /*No:RUN_FEATURE_8.us_integer_bits*/
  393. void r892make(T892* C,T0* a1,T0* a2,T0* a3){
  394. C->_current_type=a1;
  395. C->_name=a2;
  396. C->_base_feature=a3;
  397. r199put(((T199*)((((T368*)((T368*)(r892run_class(C)))))->_feature_dictionary/*24*/)),(T0*)C,X776to_key(a2));
  398. r604incr_magic_count(((T604*)(oBC364small_eiffel)));
  399. C->_use_current_state=1015;
  400. r604push(((T604*)(oBC364small_eiffel)),(T0*)C);
  401. r892initialize(C);
  402. r604pop(((T604*)(oBC364small_eiffel)));
  403. }
  404. /*No:RUN_FEATURE_8.name*/
  405. int fBC364type_string=0;
  406. T0*oBC364type_string=NULL;
  407. T0* r892type_string(void){
  408. if (fBC364type_string==0){
  409. T0* R=NULL;
  410. fBC364type_string=1;
  411. {T491*n=malloc(sizeof(*n));
  412. *n=M491;
  413. r491make(n,NULL);
  414. R=(T0*)n;
  415. }
  416. oBC364type_string=R;}
  417. return oBC364type_string;}
  418. /*No:RUN_FEATURE_8.fz_iinaiv*/
  419. int r892arg_count(T892* C){
  420. int R=0;
  421. /*IF*/if (((((T892*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  422. R=/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T892*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/;
  423. }
  424. /*FI*/return R;
  425. }
  426. /*No:RUN_FEATURE_8.local_vars*/
  427. /*No:RUN_FEATURE_8.base_feature*/
  428. int r892integer_value(T892* C,T0* a1){
  429. int R=0;
  430. T0* _n=NULL;
  431. _n=X776to_string((((T892*)C))->_name/*16*/);
  432. /*IF*/if ((((T0*)ms81_473))==((void*)(_n))) {
  433. R= (CHAR_BIT*sizeof(int)) ;
  434. }
  435.  else if ((((T0*)ms56_473))==((void*)(_n))) {
  436. R= CHAR_BIT ;
  437. }
  438. else {
  439. r683add_position(a1);
  440. r683add_position(/*(IRF4.6start_position*/r679start_position(((T679*)((((T892*)C))->_base_feature/*40*/)))/*)*/);
  441. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms69_470);
  442. r683fatal_error(((T683*)(oBC364eh)),b1);
  443. }/*]*/
  444. }
  445. /*FI*/return R;
  446. }
  447. /*No:RUN_FEATURE_8.start_position*/
  448. /*No:RUN_FEATURE_8.ensure_assertion*/
  449. int r892is_exported_in(T892* C,T0* a1){
  450. int R=0;
  451. R=r636gives_permission_to(((T636*)(r892clients(C))),a1);
  452. return R;
  453. }
  454. /*No:RUN_FEATURE_8.result_type*/
  455. /*No:RUN_FEATURE_8.us_bitn*/
  456. /*No:RUN_FEATURE_8.us_twin*/
  457. void r892add_client(T892* C,T0* a1){
  458. int _i=0;
  459. /*IF*/if (((((T892*)C))->_actuals_clients/*12*/)==((void*)(NULL))) {
  460. {T187*n=malloc(sizeof(*n));
  461. *n=M187;
  462. r187with_capacity(n,4);
  463. C->_actuals_clients=(T0*)n;
  464. }
  465. r187add_last(((T187*)((((T892*)C))->_actuals_clients/*12*/)),a1);
  466. }
  467. else {
  468. _i=r187fast_index_of(((T187*)((((T892*)C))->_actuals_clients/*12*/)),a1);
  469. /*IF*/if ((_i)>((((T187*)((T187*)((((T892*)C))->_actuals_clients/*12*/))))->_upper/*8*/)) {
  470. r187add_last(((T187*)((((T892*)C))->_actuals_clients/*12*/)),a1);
  471. }
  472. /*FI*/}
  473. /*FI*/r368add_client(((T368*)(r892run_class(C))),a1);
  474. }
  475. /*No:RUN_FEATURE_8.require_assertion*/
  476. /*No:RUN_FEATURE_8.use_current_state*/
  477. /*No:RUN_FEATURE_8.us_generating_type*/
  478. /*No:RUN_FEATURE_8.us_se_argc*/
  479. /*No:RUN_FEATURE_8.current_type*/
  480. T0* r892run_class(T892* C){
  481. T0* R=NULL;
  482. R=X291run_class((((T892*)C))->_current_type/*4*/);
  483. return R;
  484. }
  485. /*No:RUN_FEATURE_8.ucs_not_computed*/
  486. T0* r892clients(T892* C){
  487. T0* R=NULL;
  488. T0* _bfbc=NULL;
  489. T0* _bc=NULL;
  490. /*IF*/if (((((T892*)C))->_clients_memory/*8*/)==((void*)(NULL))) {
  491. _bc=X291base_class((((T892*)C))->_current_type/*4*/);
  492. _bfbc=(((T679*)((T679*)((((T892*)C))->_base_feature/*40*/))))->_base_class/*4*/;
  493. /*IF*/if ((_bc)==((void*)(_bfbc))) {
  494. R=(((T679*)((T679*)((((T892*)C))->_base_feature/*40*/))))->_clients/*20*/;
  495. }
  496. else {
  497. R=r605clients_for(((T605*)_bc),(((T892*)C))->_name/*16*/);
  498. }
  499. /*FI*/C->_clients_memory=R;
  500. }
  501. else {
  502. R=(((T892*)C))->_clients_memory/*8*/;
  503. }
  504. /*FI*/return R;
  505. }
  506. /*No:RUN_FEATURE_8.fatal_error*/
  507. /*No:RUN_FEATURE_8.clients_memory*/
  508. void r892initialize(T892* C){
  509. T0* _type_bit_ref=NULL;
  510. T0* _rf=NULL;
  511. T0* _n=NULL;
  512. _n=X776to_string((((T892*)C))->_name/*16*/);
  513. C->_arguments=(((T679*)((T679*)((((T892*)C))->_base_feature/*40*/))))->_arguments/*24*/;
  514. /*IF*/if ((((((T892*)C))->_arguments/*20*/)!=((void*)(NULL)))&&((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T892*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)>(0))) {
  515. C->_arguments=r31to_runnable(((T31*)((((T892*)C))->_arguments/*20*/)),(((T892*)C))->_current_type/*4*/);
  516. }
  517. /*FI*//*IF*/if ((((T0*)ms52_473))==((void*)(_n))) {
  518. _type_bit_ref=(((T892*)C))->_current_type/*4*/;
  519. if(NULL!=(_type_bit_ref))switch(((T0*)_type_bit_ref)->id) {
  520. case 963: 
  521. break;
  522. default:
  523. _type_bit_ref=NULL;
  524. };C->_result_type=(((T963*)((T963*)_type_bit_ref)))->_type_bit/*4*/;
  525. }
  526. else {
  527. C->_result_type=X291to_runnable((((T679*)((T679*)((((T892*)C))->_base_feature/*40*/))))->_result_type/*12*/,(((T892*)C))->_current_type/*4*/);
  528. }
  529. /*FI*//*IF*/if (r590require_check(((T590*)(oBC364run_control)))) {
  530. C->_require_assertion=r679run_require((T0*)C);
  531. }
  532. /*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
  533. C->_ensure_assertion=r679run_ensure((T0*)C);
  534. }
  535. /*FI*//*IF*/if ((((T0*)ms139_473))==((void*)(_n))) {
  536. _rf=r368get_copy(((T368*)(r892run_class(C))));
  537. }
  538.  else if ((((T0*)ms110_473))==((void*)(_n))) {
  539. r368set_at_run_time(((T368*)(r491run_class(((T491*)(r892type_string()))))));
  540. }
  541.  else if ((((T0*)ms78_473))==((void*)(_n))) {
  542. r368set_at_run_time(((T368*)(r491run_class(((T491*)(r892type_string()))))));
  543. }
  544.  else if ((((T0*)ms79_473))==((void*)(_n))) {
  545. r368set_at_run_time(((T368*)(r491run_class(((T491*)(r892type_string()))))));
  546. }
  547. /*FI*/}
  548. /*No:E_VOID.short*/
  549. T0* r796add_comment(T796* C,T0* a1){
  550. T0* R=NULL;
  551. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  552. R=(T0*)C;
  553. }
  554. else {
  555. {T529*n=malloc(sizeof(*n));
  556. *n=M529;
  557. r529make(n,(T0*)C,a1);
  558. R=(T0*)n;
  559. }
  560. }
  561. /*FI*/return R;
  562. }
  563. int r796to_integer(T796* C){
  564. int R=0;
  565. r796error((((T796*)C))->_start_position/*12*/,((T0*)ms69_470));
  566. return R;
  567. }
  568. /*No:E_VOID.bracketed_short*/
  569. int r796is_a(T796* C,T0* a1){
  570. int R=0;
  571. R=X291is_a(/*(IRF4.4run_type*/((T0*)((T284*)r796result_type()))/*)*/,X291run_type(X662result_type(a1)));
  572. /*IF*/if (!(R)) {
  573. r683add_position((((T796*)C))->_start_position/*12*/);
  574. r796error(X662start_position(a1),((T0*)ms4_662));
  575. }
  576. /*FI*/return R;
  577. }
  578. /*No:E_VOID.is_current*/
  579. void r796make(T796* C,T0* a1){
  580. C->_start_position=a1;
  581. C->_to_string=((T0*)ms147_473);
  582. }
  583. /*No:E_VOID.to_string*/
  584. /*No:E_VOID.fz_iinaiv*/
  585. /*No:E_VOID.start_position*/
  586. /*No:E_VOID.precedence*/
  587. T0* r796to_runnable(T796* C,T0* a1){
  588. T0* R=NULL;
  589. /*IF*/if (((((T796*)C))->_current_type/*4*/)==((void*)(NULL))) {
  590. C->_current_type=a1;
  591. R=(T0*)C;
  592. }
  593. else {
  594. R=r796twin(C);
  595. /*[IRF3.3set_current_type*/((((T796*)(((T796*)R))))->_current_type)=(a1);
  596. /*]*/
  597. }
  598. /*FI*/return R;
  599. }
  600. int fBC796result_type=0;
  601. T0*oBC796result_type=NULL;
  602. T0* r796result_type(void){
  603. if (fBC796result_type==0){
  604. T0* R=NULL;
  605. fBC796result_type=1;
  606. {T284*n=malloc(sizeof(*n));
  607. *n=M284;
  608. r284make(n,NULL);
  609. R=(T0*)n;
  610. }
  611. oBC796result_type=R;}
  612. return oBC796result_type;}
  613. T0* r796twin(T796* C){
  614. T0* R=NULL;
  615. R=malloc(sizeof(*C));
  616. *((T796*)R)=*C;
  617. return R;
  618. }
  619. /*No:E_VOID.set_current_type*/
  620. /*No:E_VOID.atomic_precedence*/
  621. /*No:E_VOID.current_type*/
  622. /*No:E_VOID.is_manifest_string*/
  623. /*No:E_VOID.is_void*/
  624. /*No:E_VOID.us_void*/
  625. void r796error(T0* a1,T0* a2){
  626. r683add_position(a1);
  627. r683error(((T683*)(oBC364eh)),a2);
  628. }
  629. /*No:E_VOID.short_target*/
  630. void r404check_creation_clause(T404* C,T0* a1){
  631. T0* _args=NULL;
  632. T0* _top=NULL;
  633. T0* _bottom=NULL;
  634. T0* _fn=NULL;
  635. _fn=/*X173*/((T0*)(((T268*)((T268*)((((T404*)C))->_call/*20*/))))->_feature_name/*12*/);
  636. /*IF*/if (X291is_like_current(a1)) {
  637. _top=r627base_class(((T627*)(X776start_position(_fn))));
  638. _bottom=X291base_class(a1);
  639. _fn=r605new_name_of(((T605*)_bottom),_top,_fn);
  640. /*IF*/if ((_fn)==((void*)(NULL))) {
  641. _fn=/*X173*/((T0*)(((T268*)((T268*)((((T404*)C))->_call/*20*/))))->_feature_name/*12*/);
  642. r683add_position(X776start_position(_fn));
  643. /*[IRF3.6append*/{T0* b1=((T0*)ms143_470);
  644. r7append(((T7*)(oBC683explanation)),b1);
  645. }/*]*/
  646. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  647. r7append(((T7*)(oBC683explanation)),b1);
  648. }/*]*/
  649. /*[IRF3.6append*/{T0* b1=((T0*)ms1_394);
  650. r7append(((T7*)(oBC683explanation)),b1);
  651. }/*]*/
  652. /*[IRF3.6append*/{T0* b1=X291run_time_mark(a1);
  653. r7append(((T7*)(oBC683explanation)),b1);
  654. }/*]*/
  655. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms137_470);
  656. r683fatal_error(((T683*)(oBC364eh)),b1);
  657. }/*]*/
  658. }
  659. /*FI*/}
  660. /*FI*/C->_run_feature=r368get_feature(((T368*)(X291run_class(a1))),_fn);
  661. /*IF*/if (((((T404*)C))->_run_feature/*16*/)==((void*)(NULL))) {
  662. r404cp_not_found(C,_fn);
  663. }
  664. /*FI*//*IF*/if ((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/) {
  665. }
  666.  else if (!(X291has_creation(a1,_fn))) {
  667. r683add_position(X776start_position(/*X173*/((T0*)(((T268*)((T268*)((((T404*)C))->_call/*20*/))))->_feature_name/*12*/)));
  668. r683add_position(X776start_position(_fn));
  669. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  670. r7append(((T7*)(oBC683explanation)),b1);
  671. }/*]*/
  672. /*[IRF3.6append*/{T0* b1=((T0*)ms2_394);
  673. r7append(((T7*)(oBC683explanation)),b1);
  674. }/*]*/
  675. r683add_type(a1,((T0*)ms67_470));
  676. r683print_as_fatal_error(((T683*)(oBC364eh)));
  677. }
  678. /*FI*/X496add_client((((T404*)C))->_run_feature/*16*/,r592run_class(((T592*)((((T404*)C))->_run_compound/*4*/))));
  679. /*IF*/if ((/*X496*/((T0*)(((T808*)((T808*)((((T404*)C))->_run_feature/*16*/))))->_result_type/*24*/))!=((void*)(NULL))) {
  680. r683add_position(X496start_position((((T404*)C))->_run_feature/*16*/));
  681. r683add_position(X776start_position(_fn));
  682. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms3_394);
  683. r683fatal_error(((T683*)(oBC364eh)),b1);
  684. }/*]*/
  685. }
  686. /*FI*//*IF*/if (((r404arg_count(C))==(0))&&((/*X496*/((T0*)(((T808*)((T808*)((((T404*)C))->_run_feature/*16*/))))->_arguments/*20*/))!=((void*)(NULL)))) {
  687. r683add_position(X496start_position((((T404*)C))->_run_feature/*16*/));
  688. r683add_position((((T404*)C))->_start_position/*8*/);
  689. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms4_394);
  690. r683fatal_error(((T683*)(oBC364eh)),b1);
  691. }/*]*/
  692. }
  693. /*FI*//*IF*/if ((r404arg_count(C))>(0)) {
  694. _args=r431to_runnable(((T431*)(X173arguments((((T404*)C))->_call/*20*/))),r404current_type(C));
  695. /*IF*/if ((_args)==((void*)(NULL))) {
  696. r404error(r431start_position(((T431*)(X173arguments((((T404*)C))->_call/*20*/)))),((T0*)ms56_470));
  697. }
  698. else {
  699. r431match_with(((T431*)_args),(((T404*)C))->_run_feature/*16*/);
  700. }
  701. /*FI*/}
  702. /*FI*/C->_call=X173make_runnable((((T404*)C))->_call/*20*/,(((T404*)C))->_run_compound/*4*/,(((T404*)C))->_writable/*12*/,_args,(((T404*)C))->_run_feature/*16*/);
  703. }
  704. T0* r404add_comment(T404* C,T0* a1){
  705. T0* R=NULL;
  706. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  707. R=(T0*)C;
  708. }
  709. /*AF*/else {
  710. {T59*n=malloc(sizeof(*n));
  711. *n=M59;
  712. r59make(n,(T0*)C,a1);
  713. R=(T0*)n;
  714. }
  715. }
  716. /*FI*/return R;
  717. }
  718. void r404check_created_type(T404* C,T0* a1){
  719. T0* _rt=NULL;
  720. _rt=X291run_type(a1);
  721. /*IF*/if ((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/) {
  722. }
  723.  else if ((((T605*)((T605*)(X291base_class(_rt)))))->_is_deferred/*16*/) {
  724. r683add_type(_rt,((T0*)ms2_747));
  725. r683add_position((((T404*)C))->_start_position/*8*/);
  726. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms3_747);
  727. r683fatal_error(((T683*)(oBC364eh)),b1);
  728. }/*]*/
  729. }
  730. /*FI*//*IF*/if (X291is_formal_generic(a1)) {
  731. r683add_position((((T404*)C))->_start_position/*8*/);
  732. /*[IRF3.6append*/{T0* b1=((T0*)ms4_747);
  733. r7append(((T7*)(oBC683explanation)),b1);
  734. }/*]*/
  735. r683add_type(a1,((T0*)ms5_747));
  736. r683print_as_fatal_error(((T683*)(oBC364eh)));
  737. }
  738. /*FI*/r368set_at_run_time(((T368*)(X291run_class(_rt))));
  739. }
  740. void r404cp_not_found(T404* C,T0* a1){
  741. r683add_position(X776start_position(/*X173*/((T0*)(((T268*)((T268*)((((T404*)C))->_call/*20*/))))->_feature_name/*12*/)));
  742. r683add_position(X776start_position(a1));
  743. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms5_394);
  744. r683fatal_error(((T683*)(oBC364eh)),b1);
  745. }/*]*/
  746. }
  747. /*No:CREATION_CALL_4.writable*/
  748. /*No:CREATION_CALL_4.fz_bad_arguments*/
  749. void r404make(T404* C,T0* a1,T0* a2,T0* a3,T0* a4){
  750. C->_start_position=a1;
  751. C->_type=a2;
  752. C->_writable=a3;
  753. C->_call=a4;
  754. }
  755. /*No:CREATION_CALL_4.type*/
  756. int r404arg_count(T404* C){
  757. int R=0;
  758. /*IF*/if (((((T404*)C))->_call/*20*/)!=((void*)(NULL))) {
  759. R=X173arg_count((((T404*)C))->_call/*20*/);
  760. }
  761. /*FI*/return R;
  762. }
  763. /*No:CREATION_CALL_4.call*/
  764. /*No:CREATION_CALL_4.run_feature*/
  765. /*No:CREATION_CALL_4.start_position*/
  766. T0* r404to_runnable(T404* C,T0* a1){
  767. T0* R=NULL;
  768. /*IF*/if (((((T404*)C))->_run_compound/*4*/)==((void*)(NULL))) {
  769. r404check_writable(C,a1);
  770. r404check_explicit_type(C);
  771. r404check_created_type(C,(((T404*)C))->_type/*24*/);
  772. r404check_creation_clause(C,(((T404*)C))->_type/*24*/);
  773. R=(T0*)C;
  774. }
  775. else {
  776. {T404*n=malloc(sizeof(*n));
  777. *n=M404;
  778. r404make(n,(((T404*)C))->_start_position/*8*/,(((T404*)C))->_type/*24*/,(((T404*)C))->_writable/*12*/,(((T404*)C))->_call/*20*/);
  779. R=(T0*)n;
  780. }
  781. R=r404to_runnable(((T404*)R),a1);
  782. }
  783. /*FI*/return R;
  784. }
  785. /*No:CREATION_CALL_4.fz_03*/
  786. T0* r404current_type(T404* C){
  787. T0* R=NULL;
  788. /*IF*/if (((((T404*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
  789. R=(((T592*)((T592*)((((T404*)C))->_run_compound/*4*/))))->_current_type/*4*/;
  790. }
  791. /*FI*/return R;
  792. }
  793. /*No:CREATION_CALL_4.fz_09*/
  794. /*No:CREATION_CALL_4.run_compound*/
  795. void r404check_explicit_type(T404* C){
  796. T0* _t=NULL;
  797. _t=X291to_runnable((((T404*)C))->_type/*24*/,r404current_type(C));
  798. /*IF*/if (((_t)==((void*)(NULL)))||(!(X291is_run_type(_t)))) {
  799. r683add_position(X291start_position((((T404*)C))->_type/*24*/));
  800. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_432);
  801. r683fatal_error(((T683*)(oBC364eh)),b1);
  802. }/*]*/
  803. }
  804. else {
  805. C->_type=_t;
  806. }
  807. /*FI*//*IF*/if (!(X291is_a((((T404*)C))->_type/*24*/,X662result_type((((T404*)C))->_writable/*12*/)))) {
  808. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_432);
  809. r683fatal_error(((T683*)(oBC364eh)),b1);
  810. }/*]*/
  811. }
  812. /*FI*/}
  813. /*No:CREATION_CALL_4.fz_dot*/
  814. void r404check_writable(T404* C,T0* a1){
  815. T0* _w=NULL;
  816. C->_run_compound=a1;
  817. _w=X662to_runnable((((T404*)C))->_writable/*12*/,r404current_type(C));
  818. /*IF*/if ((_w)==((void*)(NULL))) {
  819. r683add_position(X662start_position((((T404*)C))->_writable/*12*/));
  820. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_747);
  821. r683fatal_error(((T683*)(oBC364eh)),b1);
  822. }/*]*/
  823. }
  824. else {
  825. C->_writable=_w;
  826. }
  827. /*FI*/}
  828. void r404error(T0* a1,T0* a2){
  829. r683add_position(a1);
  830. r683error(((T683*)(oBC364eh)),a2);
  831. }
  832. /*No:CREATION_CALL_4.fatal_error*/
  833. /*No:CREATION_CALL_4.end_mark_comment*/
  834. /*No:CALL_INFIX_INT_REM.arguments*/
  835. void r453short(T453* C){
  836. /*IF*/if ((X662precedence((((T453*)C))->_target/*8*/))==(13)) {
  837. X662short((((T453*)C))->_target/*8*/);
  838. /*[IRF3.6short_print_feature_name*/{T453* C1=C;
  839. r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T453*)C1))->_feature_name/*24*/);
  840. }/*]*/
  841. /*IF*/if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T453*)C))->_arguments/*20*/)))/*)*/))==(13)) {
  842. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T453*)C))->_arguments/*20*/)))/*)*/);
  843. }
  844.  else if ((8)>=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T453*)C))->_arguments/*20*/)))/*)*/))) {
  845. X662bracketed_short(/*(IRF4.6arg1*/r431first(((T431*)((((T453*)C))->_arguments/*20*/)))/*)*/);
  846. }
  847. else {
  848. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T453*)C))->_arguments/*20*/)))/*)*/);
  849. }
  850. /*FI*/}
  851.  else if ((X662precedence((((T453*)C))->_target/*8*/))<(8)) {
  852. X662bracketed_short((((T453*)C))->_target/*8*/);
  853. /*[IRF3.6short_print_feature_name*/{T453* C1=C;
  854. r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T453*)C1))->_feature_name/*24*/);
  855. }/*]*/
  856. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T453*)C))->_arguments/*20*/)))/*)*/);
  857. }
  858. else {
  859. X662short((((T453*)C))->_target/*8*/);
  860. /*[IRF3.6short_print_feature_name*/{T453* C1=C;
  861. r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T453*)C1))->_feature_name/*24*/);
  862. }/*]*/
  863. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T453*)C))->_arguments/*20*/)))/*)*/);
  864. }
  865. /*FI*/}
  866. T0* r453add_comment(T453* C,T0* a1){
  867. T0* R=NULL;
  868. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  869. R=(T0*)C;
  870. }
  871. else {
  872. {T529*n=malloc(sizeof(*n));
  873. *n=M529;
  874. r529make(n,(T0*)C,a1);
  875. R=(T0*)n;
  876. }
  877. }
  878. /*FI*/return R;
  879. }
  880. int r453to_integer(T453* C){
  881. int R=0;
  882. r453error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T453*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  883. return R;
  884. }
  885. void r453bracketed_short(T453* C){
  886. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms6_662),((T0*)ms7_662));
  887. r453short(C);
  888. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms8_662),((T0*)ms9_662));
  889. }
  890. int r453is_a(T453* C,T0* a1){
  891. int R=0;
  892. R=X291is_a(X291run_type((((T453*)C))->_result_type/*16*/),X291run_type(X662result_type(a1)));
  893. /*IF*/if (!(R)) {
  894. r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T453*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/);
  895. r453error(X662start_position(a1),((T0*)ms4_662));
  896. }
  897. /*FI*/return R;
  898. }
  899. T576 oBC364switch_collection=0;
  900. /*No:CALL_INFIX_INT_REM.is_current*/
  901. void r453make(T453* C,T0* a1,T0* a2,T0* a3){
  902. T0* _eal=NULL;
  903. /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
  904. r683add_position(a2);
  905. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
  906. r683fatal_error(((T683*)(oBC364eh)),b1);
  907. }/*]*/
  908. }
  909. /*FI*/{T454*n=malloc(sizeof(*n));
  910. *n=M454;
  911. r454make(n,((T0*)ms1_453),a2);
  912. C->_feature_name=(T0*)n;
  913. }
  914. {T431*n=malloc(sizeof(*n));
  915. *n=M431;
  916. /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
  917. /*]*/
  918. _eal=(T0*)n;
  919. }
  920. r453make_call_1(C,a1,(((T453*)C))->_feature_name/*24*/,_eal);
  921. }
  922. /*No:CALL_INFIX_INT_REM.nb_errors*/
  923. /*No:CALL_INFIX_INT_REM.feature_name*/
  924. /*No:CALL_INFIX_INT_REM.fz_iinaiv*/
  925. /*No:CALL_INFIX_INT_REM.run_feature*/
  926. /*No:CALL_INFIX_INT_REM.start_position*/
  927. /*No:CALL_INFIX_INT_REM.target*/
  928. /*No:CALL_INFIX_INT_REM.precedence*/
  929. T0* r453to_runnable(T453* C,T0* a1){
  930. T0* R=NULL;
  931. T0* _tla=NULL;
  932. T0* _a=NULL;
  933. /*IF*/if (((((T453*)C))->_current_type/*4*/)==((void*)(NULL))) {
  934. r453to_runnable_0(C,a1);
  935. _a=r431to_runnable(((T431*)((((T453*)C))->_arguments/*20*/)),a1);
  936. /*IF*/if ((_a)==((void*)(NULL))) {
  937. r453error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T453*)C))->_arguments/*20*/)))/*)*/),((T0*)ms55_470));
  938. }
  939. else {
  940. C->_arguments=_a;
  941. }
  942. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  943. r431match_with(((T431*)((((T453*)C))->_arguments/*20*/)),(((T453*)C))->_run_feature/*12*/);
  944. }
  945. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  946. _tla=(((T453*)C))->_result_type/*16*/;
  947. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  948. case 239: 
  949. break;
  950. default:
  951. _tla=NULL;
  952. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  953. C->_result_type=X291run_type(X662result_type(/*(IRF4.6arg1*/r431first(((T431*)((((T453*)C))->_arguments/*20*/)))/*)*/));
  954. }
  955. /*FI*/}
  956. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  957. R=(T0*)C;
  958. }
  959. /*FI*/}
  960. else {
  961. R=r453twin(C);
  962. /*[IRF3.3set_current_type*/((((T453*)(((T453*)R))))->_current_type)=(NULL);
  963. /*]*/
  964. R=r453to_runnable(((T453*)R),a1);
  965. }
  966. /*FI*/return R;
  967. }
  968. /*No:CALL_INFIX_INT_REM.short_print_feature_name*/
  969. /*No:CALL_INFIX_INT_REM.result_type*/
  970. T0* r453twin(T453* C){
  971. T0* R=NULL;
  972. R=malloc(sizeof(*C));
  973. *((T453*)R)=*C;
  974. return R;
  975. }
  976. /*No:CALL_INFIX_INT_REM.set_current_type*/
  977. /*No:CALL_INFIX_INT_REM.operator*/
  978. /*No:CALL_INFIX_INT_REM.atomic_precedence*/
  979. /*No:CALL_INFIX_INT_REM.current_type*/
  980. void r453make_call_1(T453* C,T0* a1,T0* a2,T0* a3){
  981. C->_target=a1;
  982. C->_feature_name=a2;
  983. C->_arguments=a3;
  984. }
  985. /*No:CALL_INFIX_INT_REM.is_manifest_string*/
  986. /*No:CALL_INFIX_INT_REM.is_void*/
  987. void r453to_runnable_0(T453* C,T0* a1){
  988. C->_current_type=a1;
  989. r453cpc_to_runnable(C,a1);
  990. C->_result_type=/*X496*/((T0*)(((T808*)((T808*)((((T453*)C))->_run_feature/*12*/))))->_result_type/*24*/);
  991. /*IF*/if (((((T453*)C))->_result_type/*16*/)==((void*)(NULL))) {
  992. r683add_position(X496start_position((((T453*)C))->_run_feature/*12*/));
  993. r453error((((T454*)((T454*)((((T453*)C))->_feature_name/*24*/))))->_start_position/*8*/,((T0*)ms1_295));
  994. }
  995.  else if (X291is_like_current((((T453*)C))->_result_type/*16*/)) {
  996. C->_result_type=X662result_type((((T453*)C))->_target/*8*/);
  997. }
  998. /*FI*/}
  999. void r453cpc_to_runnable(T453* C,T0* a1){
  1000. T0* _rc=NULL;
  1001. T0* _t=NULL;
  1002. _t=X662to_runnable((((T453*)C))->_target/*8*/,a1);
  1003. /*IF*/if ((_t)==((void*)(NULL))) {
  1004. r683add_position(X662start_position((((T453*)C))->_target/*8*/));
  1005. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  1006. r683fatal_error(((T683*)(oBC364eh)),b1);
  1007. }/*]*/
  1008. }
  1009. /*FI*/C->_target=_t;
  1010. _rc=X291run_class(X662result_type((((T453*)C))->_target/*8*/));
  1011. C->_run_feature=r368get_rf(((T368*)_rc),(T0*)C);
  1012. r576update((((T453*)C))->_target/*8*/,(((T453*)C))->_run_feature/*12*/);
  1013. }
  1014. void r453error(T0* a1,T0* a2){
  1015. r683add_position(a1);
  1016. r683error(((T683*)(oBC364eh)),a2);
  1017. }
  1018. /*No:CALL_INFIX_INT_REM.fatal_error*/
  1019. /*No:CALL_INFIX_INT_REM.fz_bad_argument*/
  1020. void r453short_target(T453* C){
  1021. r453bracketed_short(C);
  1022. /*[IRF3.6a_dot*/{T580* C1=((T580*)(oBC364short_print));
  1023. r580hook_or(C1,((T0*)ms58_580),((T0*)ms67_470));
  1024. }/*]*/
  1025. }
  1026. /*No:CALL_INFIX_INT_REM.arg1*/
  1027. void r348short(T348* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7,T0* a8,T0* a9,T0* a10,T0* a11,T0* a12,T0* a13,T0* a14,T0* a15,T0* a16,T0* a17,T0* a18,T0* a19,T0* a20,T0* a21,T0* a22,T0* a23,T0* a24,T0* a25,T0* a26){
  1028. r580hook_or(((T580*)(oBC364short_print)),a1,a2);
  1029. /*IF*/if (((((T348*)C))->_tag/*0*/)==((void*)(NULL))) {
  1030. r580hook_or(((T580*)(oBC364short_print)),a3,a4);
  1031. }
  1032. else {
  1033. r580hook_or(((T580*)(oBC364short_print)),a5,a6);
  1034. r490short(((T490*)((((T348*)C))->_tag/*0*/)));
  1035. r580hook_or(((T580*)(oBC364short_print)),a7,a8);
  1036. }
  1037. /*FI*//*IF*/if (((((T348*)C))->_expression/*4*/)==((void*)(NULL))) {
  1038. r580hook_or(((T580*)(oBC364short_print)),a9,a10);
  1039. }
  1040. else {
  1041. r580hook_or(((T580*)(oBC364short_print)),a11,a12);
  1042. X662short((((T348*)C))->_expression/*4*/);
  1043. r580hook_or(((T580*)(oBC364short_print)),a13,a14);
  1044. }
  1045. /*FI*//*IF*/if (((((T348*)C))->_comment/*8*/)==((void*)(NULL))) {
  1046. r580hook_or(((T580*)(oBC364short_print)),a15,a16);
  1047. }
  1048. else {
  1049. r580hook_or(((T580*)(oBC364short_print)),a17,a18);
  1050. r393short(((T393*)((((T348*)C))->_comment/*8*/)),a19,a20,a21,a22);
  1051. r580hook_or(((T580*)(oBC364short_print)),a23,a24);
  1052. }
  1053. /*FI*/r580hook_or(((T580*)(oBC364short_print)),a25,a26);
  1054. }
  1055. /*No:ASSERTION.fz_is_not_boolean*/
  1056. /*No:ASSERTION.fz_bad_assertion*/
  1057. void r348make(T348* C,T0* a1,T0* a2,T0* a3){
  1058. C->_tag=a1;
  1059. C->_expression=a2;
  1060. C->_comment=a3;
  1061. }
  1062. /*No:ASSERTION.expression*/
  1063. T0* r348start_position(T348* C){
  1064. T0* R=NULL;
  1065. /*IF*/if (((((T348*)C))->_tag/*0*/)!=((void*)(NULL))) {
  1066. R=(((T490*)((T490*)((((T348*)C))->_tag/*0*/))))->_start_position/*4*/;
  1067. }
  1068.  else if (((((T348*)C))->_expression/*4*/)!=((void*)(NULL))) {
  1069. R=X662start_position((((T348*)C))->_expression/*4*/);
  1070. }
  1071. else {
  1072. R=(((T393*)((T393*)((((T348*)C))->_comment/*8*/))))->_start_position/*0*/;
  1073. }
  1074. /*FI*/return R;
  1075. }
  1076. /*No:ASSERTION.comment*/
  1077. T0* r348to_runnable(T348* C,T0* a1){
  1078. T0* R=NULL;
  1079. T0* _e=NULL;
  1080. /*IF*/if (((((T348*)C))->_current_type/*12*/)==((void*)(NULL))) {
  1081. C->_current_type=a1;
  1082. R=(T0*)C;
  1083. /*IF*/if (((((T348*)C))->_expression/*4*/)!=((void*)(NULL))) {
  1084. _e=X662to_runnable((((T348*)C))->_expression/*4*/,a1);
  1085. /*IF*/if ((_e)==((void*)(NULL))) {
  1086. r348error(r348start_position(C),((T0*)ms57_470));
  1087. }
  1088. else {
  1089. C->_expression=_e;
  1090. /*IF*/if (!(X291is_boolean(X662result_type((((T348*)C))->_expression/*4*/)))) {
  1091. r683add_type(X662result_type((((T348*)C))->_expression/*4*/),((T0*)ms73_470));
  1092. r348error(r348start_position(C),((T0*)ms57_470));
  1093. }
  1094. /*FI*/}
  1095. /*FI*/}
  1096. /*FI*/}
  1097. else {
  1098. {T348*n=malloc(sizeof(*n));
  1099. *n=M348;
  1100. r348make(n,(((T348*)C))->_tag/*0*/,(((T348*)C))->_expression/*4*/,(((T348*)C))->_comment/*8*/);
  1101. R=(T0*)n;
  1102. }
  1103. R=r348to_runnable(((T348*)R),a1);
  1104. }
  1105. /*FI*/return R;
  1106. }
  1107. /*No:ASSERTION.tag*/
  1108. /*No:ASSERTION.current_type*/
  1109. void r348error(T0* a1,T0* a2){
  1110. r683add_position(a1);
  1111. r683error(((T683*)(oBC364eh)),a2);
  1112. }
  1113. /*No:WHEN_ITEM_2.lower_value*/
  1114. /*No:WHEN_ITEM_2.upper_value*/
  1115. T0* r372to_runnable_integer(T372* C,T0* a1){
  1116. T0* R=NULL;
  1117. T0* _v=NULL;
  1118. /*IF*/if (((((T372*)C))->_e_when/*4*/)==((void*)(NULL))) {
  1119. C->_e_when=a1;
  1120. _v=X662to_runnable((((T372*)C))->_lower/*12*/,/*(IRF4.6current_type*//*(IRF4.6current_type*//*(IRF4.6current_type*/r270current_type(((T270*)((((T377*)((T377*)((((T843*)((T843*)((((T372*)C))->_e_when/*4*/))))->_when_list/*16*/))))->_e_inspect/*0*/)))/*)*//*)*//*)*/);
  1121. /*IF*/if (((_v)!=((void*)(NULL)))&&(X291is_integer(X662result_type(_v)))) {
  1122. C->_lower=_v;
  1123. C->_lower_value=X662to_integer((((T372*)C))->_lower/*12*/);
  1124. }
  1125. else {
  1126. r372error(X662start_position((((T372*)C))->_lower/*12*/),((T0*)ms60_470));
  1127. }
  1128. /*FI*/_v=X662to_runnable((((T372*)C))->_upper/*8*/,/*(IRF4.6current_type*//*(IRF4.6current_type*//*(IRF4.6current_type*/r270current_type(((T270*)((((T377*)((T377*)((((T843*)((T843*)((((T372*)C))->_e_when/*4*/))))->_when_list/*16*/))))->_e_inspect/*0*/)))/*)*//*)*//*)*/);
  1129. /*IF*/if (((_v)!=((void*)(NULL)))&&(X291is_integer(X662result_type(_v)))) {
  1130. C->_upper=_v;
  1131. C->_upper_value=X662to_integer((((T372*)C))->_upper/*8*/);
  1132. }
  1133. else {
  1134. r372error(X662start_position((((T372*)C))->_upper/*8*/),((T0*)ms60_470));
  1135. }
  1136. /*FI*/r843add_when_item_2(((T843*)((((T372*)C))->_e_when/*4*/)),(T0*)C);
  1137. R=(T0*)C;
  1138. }
  1139. else {
  1140. {T372*n=malloc(sizeof(*n));
  1141. *n=M372;
  1142. r372make(n,(((T372*)C))->_lower/*12*/,(((T372*)C))->_upper/*8*/);
  1143. R=(T0*)n;
  1144. }
  1145. R=r372to_runnable_integer(((T372*)R),a1);
  1146. }
  1147. /*FI*/return R;
  1148. }
  1149. void r372make(T372* C,T0* a1,T0* a2){
  1150. C->_lower=a1;
  1151. C->_upper=a2;
  1152. }
  1153. T0* r372start_position(T372* C){
  1154. T0* R=NULL;
  1155. R=X662start_position((((T372*)C))->_lower/*12*/);
  1156. return R;
  1157. }
  1158. /*No:WHEN_ITEM_2.clear_e_when*/
  1159. /*No:WHEN_ITEM_2.fz_bcv*/
  1160. T0* r372twin(T372* C){
  1161. T0* R=NULL;
  1162. R=malloc(sizeof(*C));
  1163. *((T372*)R)=*C;
  1164. return R;
  1165. }
  1166. /*No:WHEN_ITEM_2.current_type*/
  1167. /*No:WHEN_ITEM_2.fz_biv*/
  1168. /*No:WHEN_ITEM_2.lower*/
  1169. /*No:WHEN_ITEM_2.upper*/
  1170. void r372error(T0* a1,T0* a2){
  1171. r683add_position(a1);
  1172. r683error(((T683*)(oBC364eh)),a2);
  1173. }
  1174. T0* r372to_runnable_character(T372* C,T0* a1){
  1175. T0* R=NULL;
  1176. T0* _v=NULL;
  1177. /*IF*/if (((((T372*)C))->_e_when/*4*/)==((void*)(NULL))) {
  1178. C->_e_when=a1;
  1179. _v=X662to_runnable((((T372*)C))->_lower/*12*/,/*(IRF4.6current_type*//*(IRF4.6current_type*//*(IRF4.6current_type*/r270current_type(((T270*)((((T377*)((T377*)((((T843*)((T843*)((((T372*)C))->_e_when/*4*/))))->_when_list/*16*/))))->_e_inspect/*0*/)))/*)*//*)*//*)*/);
  1180. /*IF*/if (((_v)!=((void*)(NULL)))&&(X291is_character(X662result_type(_v)))) {
  1181. C->_lower=_v;
  1182. C->_lower_value=X662to_integer((((T372*)C))->_lower/*12*/);
  1183. }
  1184. else {
  1185. r372error(X662start_position((((T372*)C))->_lower/*12*/),((T0*)ms58_470));
  1186. }
  1187. /*FI*/_v=X662to_runnable((((T372*)C))->_upper/*8*/,/*(IRF4.6current_type*//*(IRF4.6current_type*//*(IRF4.6current_type*/r270current_type(((T270*)((((T377*)((T377*)((((T843*)((T843*)((((T372*)C))->_e_when/*4*/))))->_when_list/*16*/))))->_e_inspect/*0*/)))/*)*//*)*//*)*/);
  1188. /*IF*/if (((_v)!=((void*)(NULL)))&&(X291is_character(X662result_type(_v)))) {
  1189. C->_upper=_v;
  1190. C->_upper_value=X662to_integer((((T372*)C))->_upper/*8*/);
  1191. }
  1192. else {
  1193. r372error(X662start_position((((T372*)C))->_upper/*8*/),((T0*)ms58_470));
  1194. }
  1195. /*FI*/r843add_when_item_2(((T843*)((((T372*)C))->_e_when/*4*/)),(T0*)C);
  1196. R=(T0*)C;
  1197. }
  1198. else {
  1199. {T372*n=malloc(sizeof(*n));
  1200. *n=M372;
  1201. r372make(n,(((T372*)C))->_lower/*12*/,(((T372*)C))->_upper/*8*/);
  1202. R=(T0*)n;
  1203. }
  1204. R=r372to_runnable_character(((T372*)R),a1);
  1205. }
  1206. /*FI*/return R;
  1207. }
  1208. /*No:WHEN_ITEM_2.e_when*/
  1209. void r153for_short(T153* C,T0* a1,int a2,T0* a3,T0* a4){
  1210. int _heading_done=0;
  1211. T0* _f=NULL;
  1212. int _i=0;
  1213. /*IF*/if ((((((T153*)C))->_list/*8*/)!=((void*)(NULL)))&&(r636gives_permission_to_any(((T636*)((((T153*)C))->_clients/*0*/))))) {
  1214. _i=0;
  1215. while (!((_i)>((((T352*)((T352*)((((T153*)C))->_list/*8*/))))->_upper/*8*/))) {
  1216. _f=/*(IRF4.6item*/((((T352*)((T352*)((((T153*)C))->_list/*8*/))))->_storage/*0*/)[_i]/*)*/;
  1217. _heading_done=r953for_short(((T953*)(/*X359*/((T0*)(((T398*)((T398*)_f)))->_names/*8*/))),(T0*)C,_heading_done,a1,a2,a3,a4);
  1218. _i=(_i)+(1);
  1219. }
  1220. }
  1221. /*FI*/}
  1222. void r153add_into(T153* C,T0* a1){
  1223. T0* _f=NULL;
  1224. int _i=0;
  1225. /*IF*/if (((((T153*)C))->_list/*8*/)!=((void*)(NULL))) {
  1226. _i=0;
  1227. while (!((_i)>((((T352*)((T352*)((((T153*)C))->_list/*8*/))))->_upper/*8*/))) {
  1228. _f=/*(IRF4.6item*/((((T352*)((T352*)((((T153*)C))->_list/*8*/))))->_storage/*0*/)[_i]/*)*/;
  1229. X359set_clients(_f,(((T153*)C))->_clients/*0*/);
  1230. X359add_into(_f,a1);
  1231. _i=(_i)+(1);
  1232. }
  1233. }
  1234. /*FI*/}
  1235. void r153make(T153* C,T0* a1,T0* a2,T0* a3){
  1236. C->_clients=a1;
  1237. C->_comment=a2;
  1238. C->_list=a3;
  1239. }
  1240. /*No:FEATURE_CLAUSE.comment*/
  1241. /*No:FEATURE_CLAUSE.list*/
  1242. void r153do_heading_for_short(T153* C,T0* a1){
  1243. /*IF*/if (((((T153*)C))->_comment/*4*/)==((void*)(NULL))) {
  1244. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms1_153),((T0*)ms2_153));
  1245. r580a_class_name(((T580*)(oBC364short_print)),a1);
  1246. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms3_153),((T0*)ms4_153));
  1247. }
  1248. else {
  1249. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms5_153),((T0*)ms6_153));
  1250. r580a_class_name(((T580*)(oBC364short_print)),a1);
  1251. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms7_153),((T0*)ms8_153));
  1252. r393short(((T393*)((((T153*)C))->_comment/*4*/)),((T0*)ms9_153),((T0*)ms10_153),((T0*)ms11_153),((T0*)ms12_153));
  1253. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms13_153),((T0*)ms14_153));
  1254. }
  1255. /*FI*/}
  1256. /*No:FEATURE_CLAUSE.clients*/
  1257. /*No:CALL_INFIX_INT_DIV.arguments*/
  1258. void r460short(T460* C){
  1259. /*IF*/if ((X662precedence((((T460*)C))->_target/*8*/))==(13)) {
  1260. X662short((((T460*)C))->_target/*8*/);
  1261. /*[IRF3.6short_print_feature_name*/{T460* C1=C;
  1262. r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T460*)C1))->_feature_name/*24*/);
  1263. }/*]*/
  1264. /*IF*/if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T460*)C))->_arguments/*20*/)))/*)*/))==(13)) {
  1265. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T460*)C))->_arguments/*20*/)))/*)*/);
  1266. }
  1267.  else if ((8)>=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T460*)C))->_arguments/*20*/)))/*)*/))) {
  1268. X662bracketed_short(/*(IRF4.6arg1*/r431first(((T431*)((((T460*)C))->_arguments/*20*/)))/*)*/);
  1269. }
  1270. else {
  1271. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T460*)C))->_arguments/*20*/)))/*)*/);
  1272. }
  1273. /*FI*/}
  1274.  else if ((X662precedence((((T460*)C))->_target/*8*/))<(8)) {
  1275. X662bracketed_short((((T460*)C))->_target/*8*/);
  1276. /*[IRF3.6short_print_feature_name*/{T460* C1=C;
  1277. r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T460*)C1))->_feature_name/*24*/);
  1278. }/*]*/
  1279. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T460*)C))->_arguments/*20*/)))/*)*/);
  1280. }
  1281. else {
  1282. X662short((((T460*)C))->_target/*8*/);
  1283. /*[IRF3.6short_print_feature_name*/{T460* C1=C;
  1284. r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T460*)C1))->_feature_name/*24*/);
  1285. }/*]*/
  1286. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T460*)C))->_arguments/*20*/)))/*)*/);
  1287. }
  1288. /*FI*/}
  1289. T0* r460add_comment(T460* C,T0* a1){
  1290. T0* R=NULL;
  1291. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1292. R=(T0*)C;
  1293. }
  1294. else {
  1295. {T529*n=malloc(sizeof(*n));
  1296. *n=M529;
  1297. r529make(n,(T0*)C,a1);
  1298. R=(T0*)n;
  1299. }
  1300. }
  1301. /*FI*/return R;
  1302. }
  1303. int r460to_integer(T460* C){
  1304. int R=0;
  1305. r460error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T460*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  1306. return R;
  1307. }
  1308. void r460bracketed_short(T460* C){
  1309. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms6_662),((T0*)ms7_662));
  1310. r460short(C);
  1311. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms8_662),((T0*)ms9_662));
  1312. }
  1313. int r460is_a(T460* C,T0* a1){
  1314. int R=0;
  1315. R=X291is_a(X291run_type((((T460*)C))->_result_type/*16*/),X291run_type(X662result_type(a1)));
  1316. /*IF*/if (!(R)) {
  1317. r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T460*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/);
  1318. r460error(X662start_position(a1),((T0*)ms4_662));
  1319. }
  1320. /*FI*/return R;
  1321. }
  1322. /*No:CALL_INFIX_INT_DIV.is_current*/
  1323. void r460make(T460* C,T0* a1,T0* a2,T0* a3){
  1324. T0* _eal=NULL;
  1325. /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
  1326. r683add_position(a2);
  1327. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
  1328. r683fatal_error(((T683*)(oBC364eh)),b1);
  1329. }/*]*/
  1330. }
  1331. /*FI*/{T454*n=malloc(sizeof(*n));
  1332. *n=M454;
  1333. r454make(n,((T0*)ms1_460),a2);
  1334. C->_feature_name=(T0*)n;
  1335. }
  1336. {T431*n=malloc(sizeof(*n));
  1337. *n=M431;
  1338. /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
  1339. /*]*/
  1340. _eal=(T0*)n;
  1341. }
  1342. r460make_call_1(C,a1,(((T460*)C))->_feature_name/*24*/,_eal);
  1343. }
  1344. /*No:CALL_INFIX_INT_DIV.nb_errors*/
  1345. /*No:CALL_INFIX_INT_DIV.feature_name*/
  1346. /*No:CALL_INFIX_INT_DIV.fz_iinaiv*/
  1347. /*No:CALL_INFIX_INT_DIV.run_feature*/
  1348. /*No:CALL_INFIX_INT_DIV.start_position*/
  1349. /*No:CALL_INFIX_INT_DIV.target*/
  1350. /*No:CALL_INFIX_INT_DIV.precedence*/
  1351. T0* r460to_runnable(T460* C,T0* a1){
  1352. T0* R=NULL;
  1353. T0* _tla=NULL;
  1354. T0* _a=NULL;
  1355. /*IF*/if (((((T460*)C))->_current_type/*4*/)==((void*)(NULL))) {
  1356. r460to_runnable_0(C,a1);
  1357. _a=r431to_runnable(((T431*)((((T460*)C))->_arguments/*20*/)),a1);
  1358. /*IF*/if ((_a)==((void*)(NULL))) {
  1359. r460error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T460*)C))->_arguments/*20*/)))/*)*/),((T0*)ms55_470));
  1360. }
  1361. else {
  1362. C->_arguments=_a;
  1363. }
  1364. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1365. r431match_with(((T431*)((((T460*)C))->_arguments/*20*/)),(((T460*)C))->_run_feature/*12*/);
  1366. }
  1367. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1368. _tla=(((T460*)C))->_result_type/*16*/;
  1369. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  1370. case 239: 
  1371. break;
  1372. default:
  1373. _tla=NULL;
  1374. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  1375. C->_result_type=X291run_type(X662result_type(/*(IRF4.6arg1*/r431first(((T431*)((((T460*)C))->_arguments/*20*/)))/*)*/));
  1376. }
  1377. /*FI*/}
  1378. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1379. R=(T0*)C;
  1380. }
  1381. /*FI*/}
  1382. else {
  1383. R=r460twin(C);
  1384. /*[IRF3.3set_current_type*/((((T460*)(((T460*)R))))->_current_type)=(NULL);
  1385. /*]*/
  1386. R=r460to_runnable(((T460*)R),a1);
  1387. }
  1388. /*FI*/return R;
  1389. }
  1390. /*No:CALL_INFIX_INT_DIV.short_print_feature_name*/
  1391. /*No:CALL_INFIX_INT_DIV.result_type*/
  1392. T0* r460twin(T460* C){
  1393. T0* R=NULL;
  1394. R=malloc(sizeof(*C));
  1395. *((T460*)R)=*C;
  1396. return R;
  1397. }
  1398. /*No:CALL_INFIX_INT_DIV.set_current_type*/
  1399. /*No:CALL_INFIX_INT_DIV.operator*/
  1400. /*No:CALL_INFIX_INT_DIV.atomic_precedence*/
  1401. /*No:CALL_INFIX_INT_DIV.current_type*/
  1402. void r460make_call_1(T460* C,T0* a1,T0* a2,T0* a3){
  1403. C->_target=a1;
  1404. C->_feature_name=a2;
  1405. C->_arguments=a3;
  1406. }
  1407. /*No:CALL_INFIX_INT_DIV.is_manifest_string*/
  1408. /*No:CALL_INFIX_INT_DIV.is_void*/
  1409. void r460to_runnable_0(T460* C,T0* a1){
  1410. C->_current_type=a1;
  1411. r460cpc_to_runnable(C,a1);
  1412. C->_result_type=/*X496*/((T0*)(((T808*)((T808*)((((T460*)C))->_run_feature/*12*/))))->_result_type/*24*/);
  1413. /*IF*/if (((((T460*)C))->_result_type/*16*/)==((void*)(NULL))) {
  1414. r683add_position(X496start_position((((T460*)C))->_run_feature/*12*/));
  1415. r460error((((T454*)((T454*)((((T460*)C))->_feature_name/*24*/))))->_start_position/*8*/,((T0*)ms1_295));
  1416. }
  1417.  else if (X291is_like_current((((T460*)C))->_result_type/*16*/)) {
  1418. C->_result_type=X662result_type((((T460*)C))->_target/*8*/);
  1419. }
  1420. /*FI*/}
  1421. void r460cpc_to_runnable(T460* C,T0* a1){
  1422. T0* _rc=NULL;
  1423. T0* _t=NULL;
  1424. _t=X662to_runnable((((T460*)C))->_target/*8*/,a1);
  1425. /*IF*/if ((_t)==((void*)(NULL))) {
  1426. r683add_position(X662start_position((((T460*)C))->_target/*8*/));
  1427. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  1428. r683fatal_error(((T683*)(oBC364eh)),b1);
  1429. }/*]*/
  1430. }
  1431. /*FI*/C->_target=_t;
  1432. _rc=X291run_class(X662result_type((((T460*)C))->_target/*8*/));
  1433. C->_run_feature=r368get_rf(((T368*)_rc),(T0*)C);
  1434. r576update((((T460*)C))->_target/*8*/,(((T460*)C))->_run_feature/*12*/);
  1435. }
  1436. void r460error(T0* a1,T0* a2){
  1437. r683add_position(a1);
  1438. r683error(((T683*)(oBC364eh)),a2);
  1439. }
  1440. /*No:CALL_INFIX_INT_DIV.fatal_error*/
  1441. /*No:CALL_INFIX_INT_DIV.fz_bad_argument*/
  1442. void r460short_target(T460* C){
  1443. r460bracketed_short(C);
  1444. /*[IRF3.6a_dot*/{T580* C1=((T580*)(oBC364short_print));
  1445. r580hook_or(C1,((T0*)ms58_580),((T0*)ms67_470));
  1446. }/*]*/
  1447. }
  1448. /*No:CALL_INFIX_INT_DIV.arg1*/
  1449.  
  1450.