home *** CD-ROM | disk | FTP | other *** search
/ Amiga ACS 1998 #4 / amigaacscoverdisc1998-041998.iso / utilities / shareware / dev / ppcsmalleiffel / source.lha / bin_c / pretty20.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  52.3 KB  |  1,698 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "pretty.h"
  9. void r633add_into(T633* C,T0* a1){
  10. T0* _a=NULL;
  11. int _i=0;
  12. /*IF*/if (((((T633*)C))->_list/*8*/)!=((void*)(NULL))) {
  13. _i=1;
  14. while (!((_i)>((((T608*)((T608*)((((T633*)C))->_list/*8*/))))->_upper/*8*/))) {
  15. _a=r608item(((T608*)((((T633*)C))->_list/*8*/)),_i);
  16. /*IF*/if (!(r608fast_has(((T608*)a1),_a))) {
  17. r608add_last(((T608*)a1),_a);
  18. }
  19. /*FI*/_i=(_i)+(1);
  20. }
  21. }
  22. /*FI*/}
  23. void r633from_runnable(T633* C,T0* a1){
  24. C->_list=a1;
  25. C->_current_type=(((T348*)((T348*)(r608item(((T608*)((((T633*)C))->_list/*8*/)),1)))))->_current_type/*12*/;
  26. }
  27. void r633make(T633* C,T0* a1,T0* a2,T0* a3){
  28. C->_start_position=a1;
  29. C->_header_comment=a2;
  30. C->_list=a3;
  31. }
  32. T0* r633name(T633* C){
  33. T0* R=NULL;
  34. /*IF*/if ((((T633*)C))->_is_ensure_then/*16*/) {
  35. R=((T0*)ms1_633);
  36. }
  37. else {
  38. R=((T0*)ms2_633);
  39. }
  40. /*FI*/return R;
  41. }
  42. /*No:E_ENSURE.set_header_comment*/
  43. /*No:E_ENSURE.start_position*/
  44. /*No:E_ENSURE.set_ensure_then*/
  45. void r633pretty_print(T633* C){
  46. int _i=0;
  47. r238indent(((T238*)(oBC364fmt)));
  48. r238keyword(((T238*)(oBC364fmt)),r633name(C));
  49. r238level_incr(((T238*)(oBC364fmt)));
  50. /*IF*/if (((((T633*)C))->_header_comment/*4*/)!=((void*)(NULL))) {
  51. r393pretty_print(((T393*)((((T633*)C))->_header_comment/*4*/)));
  52. }
  53. else {
  54. r238indent(((T238*)(oBC364fmt)));
  55. }
  56. /*FI*//*IF*/if (((((T633*)C))->_list/*8*/)!=((void*)(NULL))) {
  57. _i=1;
  58. while (!((_i)>((((T608*)((T608*)((((T633*)C))->_list/*8*/))))->_upper/*8*/))) {
  59. /*IF*/if (r6_px_and(r238zen_mode(((T238*)(oBC364fmt))),(_i)==((((T608*)((T608*)((((T633*)C))->_list/*8*/))))->_upper/*8*/))) {
  60. /*[IRF3.3set_semi_colon_flag*/((((T238*)(((T238*)(oBC364fmt)))))->_semi_colon_flag)=(0);
  61. /*]*/
  62. }
  63. else {
  64. /*[IRF3.3set_semi_colon_flag*/((((T238*)(((T238*)(oBC364fmt)))))->_semi_colon_flag)=(1);
  65. /*]*/
  66. }
  67. /*FI*/r238indent(((T238*)(oBC364fmt)));
  68. r348pretty_print(((T348*)(r608item(((T608*)((((T633*)C))->_list/*8*/)),_i))));
  69. _i=(_i)+(1);
  70. }
  71. }
  72. /*FI*/r238level_decr(((T238*)(oBC364fmt)));
  73. r238indent(((T238*)(oBC364fmt)));
  74. }
  75. /*No:E_ENSURE.list*/
  76. /*No:E_ENSURE.current_type*/
  77. /*No:E_ENSURE.is_ensure_then*/
  78. /*No:E_ENSURE.header_comment*/
  79. int r283has_creation(T283* C,T0* a1){
  80. int R=0;
  81. /*IF*/if ((C)==((void*)((((T283*)C))->_run_type/*12*/))) {
  82. R=r605has_creation(((T605*)(r283base_class(C))),a1);
  83. }
  84. else {
  85. R=X291has_creation((((T283*)C))->_run_type/*12*/,a1);
  86. }
  87. /*FI*/return R;
  88. }
  89. /*No:TYPE_FORMAL_GENERIC.is_anchored*/
  90. int r283is_array(T283* C){
  91. int R=0;
  92. R=X291is_array((((T283*)C))->_run_type/*12*/);
  93. return R;
  94. }
  95. int r283is_a(T283* C,T0* a1){
  96. int R=0;
  97. R=X291is_a((((T283*)C))->_run_type/*12*/,a1);
  98. return R;
  99. }
  100. int r283is_pointer(T283* C){
  101. int R=0;
  102. R=X291is_pointer((((T283*)C))->_run_type/*12*/);
  103. return R;
  104. }
  105. /*No:TYPE_FORMAL_GENERIC.run_type*/
  106. int r283is_string(T283* C){
  107. int R=0;
  108. R=X291is_string((((T283*)C))->_run_type/*12*/);
  109. return R;
  110. }
  111. /*No:TYPE_FORMAL_GENERIC.is_like_feature*/
  112. /*No:TYPE_FORMAL_GENERIC.is_like_current*/
  113. void r283make(T283* C,T0* a1,int a2){
  114. C->_rank=a2;
  115. C->_formal_name=a1;
  116. }
  117. /*No:TYPE_FORMAL_GENERIC.formal_name*/
  118. /*No:TYPE_FORMAL_GENERIC.start_position*/
  119. int r283is_character(T283* C){
  120. int R=0;
  121. R=X291is_character((((T283*)C))->_run_type/*12*/);
  122. return R;
  123. }
  124. /*No:TYPE_FORMAL_GENERIC.written_mark*/
  125. T0* r283to_runnable(T283* C,T0* a1){
  126. T0* R=NULL;
  127. T0* _gl=NULL;
  128. T0* _t=NULL;
  129. T0* _p=NULL;
  130. T0* _bc_ct=NULL;
  131. T0* _bc_written=NULL;
  132. _bc_written=r627base_class(((T627*)(/*(IRF4.6start_position*/(((T451*)((T451*)((((T283*)C))->_formal_name/*4*/))))->_start_position/*4*//*)*/)));
  133. _bc_ct=X291base_class(a1);
  134. /*IF*/if ((_bc_written)==((void*)(_bc_ct))) {
  135. _gl=X291generic_list(a1);
  136. /*IF*/if (((_gl)==((void*)(NULL)))||(((((T283*)C))->_rank/*8*/)>((((T701*)((T701*)_gl)))->_upper/*8*/))) {
  137. r683add_position(X291start_position(a1));
  138. r683add_position(/*(IRF4.6start_position*/(((T451*)((T451*)((((T283*)C))->_formal_name/*4*/))))->_start_position/*4*//*)*/);
  139. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms61_470);
  140. r683fatal_error(((T683*)(oBC364eh)),b1);
  141. }/*]*/
  142. }
  143. else {
  144. R=r283make_runnable(C,r701item(((T701*)_gl),(((T283*)C))->_rank/*8*/));
  145. }
  146. /*FI*/}
  147. else {
  148. _p=/*(IRF4.6first_parent_for*/r673first_parent_for(((T673*)((((T605*)((T605*)_bc_ct)))->_parent_list/*40*/)),_bc_written)/*)*/;
  149. while (!((_p)==((void*)(NULL)))) {
  150. _t=(((T877*)((T877*)_p)))->_type/*4*/;
  151. _t=X291run_type(X291to_runnable(_t,a1));
  152. /*IF*/if ((R)==((void*)(NULL))) {
  153. R=r283to_runnable(C,_t);
  154. _p=NULL;
  155. }
  156. else {
  157. _p=/*(IRF4.6next_parent_for*/r673next_parent_for(((T673*)((((T605*)((T605*)_bc_ct)))->_parent_list/*40*/)),_bc_written,_p)/*)*/;
  158. }
  159. /*FI*/}
  160. /*IF*/if ((R)==((void*)(NULL))) {
  161. r683add_type(a1,((T0*)ms1_283));
  162. r283warning(/*(IRF4.6start_position*/(((T451*)((T451*)((((T283*)C))->_formal_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms2_283));
  163. }
  164. /*FI*/}
  165. /*FI*/return R;
  166. }
  167. /*No:TYPE_FORMAL_GENERIC.is_run_type*/
  168. /*No:TYPE_FORMAL_GENERIC.rank*/
  169. /*No:TYPE_FORMAL_GENERIC.is_formal_generic*/
  170. T0* r283generic_list(T283* C){
  171. T0* R=NULL;
  172. /*IF*/if (r283is_generic(C)) {
  173. R=X291generic_list((((T283*)C))->_run_type/*12*/);
  174. }
  175. else {
  176. r283fatal_error_generic_list(C);
  177. }
  178. /*FI*/return R;
  179. }
  180. int r283is_real(T283* C){
  181. int R=0;
  182. R=X291is_real((((T283*)C))->_run_type/*12*/);
  183. return R;
  184. }
  185. T0* r283twin(T283* C){
  186. T0* R=NULL;
  187. R=malloc(sizeof(*C));
  188. *((T283*)R)=*C;
  189. return R;
  190. }
  191. /*No:TYPE_FORMAL_GENERIC.fz_bnga*/
  192. T0* r283formal_arg(T283* C){
  193. T0* R=NULL;
  194. R=/*(IRF4.6item*/r681item(((T681*)((((T881*)((T881*)(r283formal_generic_list(C)))))->_list/*4*/)),(((T283*)C))->_rank/*8*/)/*)*/;
  195. return R;
  196. }
  197. int r283is_bit(T283* C){
  198. int R=0;
  199. R=X291is_bit((((T283*)C))->_run_type/*12*/);
  200. return R;
  201. }
  202. void r283fatal_error_generic_list(T283* C){
  203. r683add_type((T0*)C,((T0*)ms12_291));
  204. r683print_as_fatal_error(((T683*)(oBC364eh)));
  205. }
  206. /*No:TYPE_FORMAL_GENERIC.pretty_print*/
  207. T0* r283smallest_ancestor(T283* C,T0* a1){
  208. T0* R=NULL;
  209. R=X291smallest_ancestor((((T283*)C))->_run_type/*12*/,a1);
  210. return R;
  211. }
  212. int r283is_boolean(T283* C){
  213. int R=0;
  214. R=X291is_boolean((((T283*)C))->_run_type/*12*/);
  215. return R;
  216. }
  217. /*No:TYPE_FORMAL_GENERIC.set_run_type*/
  218. int r283is_double(T283* C){
  219. int R=0;
  220. R=X291is_double((((T283*)C))->_run_type/*12*/);
  221. return R;
  222. }
  223. T0* r283run_class(T283* C){
  224. T0* R=NULL;
  225. R=r604run_class((((T283*)C))->_run_type/*12*/);
  226. return R;
  227. }
  228. T0* r283run_time_mark(T283* C){
  229. T0* R=NULL;
  230. R=X291run_time_mark((((T283*)C))->_run_type/*12*/);
  231. return R;
  232. }
  233. int r283is_a_in(T283* C,T0* a1,T0* a2){
  234. int R=0;
  235. T0* _ct=NULL;
  236. T0* _t2=NULL;
  237. T0* _t1=NULL;
  238. /*IF*/if ((/*(IRF4.6written_mark*/(((T451*)((T451*)((((T283*)C))->_formal_name/*4*/))))->_to_string/*0*//*)*/)==((void*)(X291written_mark(a1)))) {
  239. R=1;
  240. }
  241. else {
  242. _ct=(((T368*)((T368*)a2)))->_current_type/*0*/;
  243. _t1=r283to_runnable(C,_ct);
  244. _t2=X291to_runnable(a1,_ct);
  245. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  246. R=1;
  247. }
  248. else {
  249. R=X291is_a(_t1,_t2);
  250. }
  251. /*FI*/}
  252. /*FI*/return R;
  253. }
  254. T0* r283look_up_for(T283* C,T0* a1,T0* a2){
  255. T0* R=NULL;
  256. R=r605look_up_for(((T605*)(r283base_class(C))),a1,a2);
  257. return R;
  258. }
  259. T0* r283constraint(T283* C){
  260. T0* R=NULL;
  261. R=(((T59*)((T59*)(r283formal_arg(C)))))->_constraint/*4*/;
  262. return R;
  263. }
  264. T0* r283expanded_initializer(T283* C){
  265. T0* R=NULL;
  266. R=X291expanded_initializer((((T283*)C))->_run_type/*12*/);
  267. return R;
  268. }
  269. /*No:TYPE_FORMAL_GENERIC.fz_dot*/
  270. int r283is_generic(T283* C){
  271. int R=0;
  272. R=X291is_generic((((T283*)C))->_run_type/*12*/);
  273. return R;
  274. }
  275. /*No:TYPE_FORMAL_GENERIC.fz_bga*/
  276. /*No:TYPE_FORMAL_GENERIC.used_as_reference*/
  277. T0* r283formal_generic_list(T283* C){
  278. T0* R=NULL;
  279. R=(((T605*)((T605*)(r627base_class(((T627*)(/*(IRF4.6start_position*/(((T451*)((T451*)((((T283*)C))->_formal_name/*4*/))))->_start_position/*4*//*)*/)))))))->_formal_generic_list/*28*/;
  280. return R;
  281. }
  282. int r283is_reference(T283* C){
  283. int R=0;
  284. R=X291is_reference((((T283*)C))->_run_type/*12*/);
  285. return R;
  286. }
  287. void r283error(T0* a1,T0* a2){
  288. r683add_position(a1);
  289. r683error(((T683*)(oBC364eh)),a2);
  290. }
  291. T0* r283base_class(T283* C){
  292. T0* R=NULL;
  293. T0* _bcn=NULL;
  294. _bcn=r283base_class_name(C);
  295. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  296. R=r451base_class(((T451*)_bcn));
  297. }
  298. else {
  299. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  300. r7append(((T7*)(oBC683explanation)),b1);
  301. }/*]*/
  302. r683add_type((T0*)C,((T0*)ms67_470));
  303. r683print_as_fatal_error(((T683*)(oBC364eh)));
  304. }
  305. /*FI*/return R;
  306. }
  307. /*No:TYPE_FORMAL_GENERIC.fatal_error*/
  308. int r283is_any(T283* C){
  309. int R=0;
  310. R=X291is_any((((T283*)C))->_run_type/*12*/);
  311. return R;
  312. }
  313. T0* r283base_class_name(T283* C){
  314. T0* R=NULL;
  315. R=X291base_class_name((((T283*)C))->_run_type/*12*/);
  316. return R;
  317. }
  318. int r283is_expanded(T283* C){
  319. int R=0;
  320. R=X291is_expanded((((T283*)C))->_run_type/*12*/);
  321. return R;
  322. }
  323. int r283is_basic_eiffel_expanded(T283* C){
  324. int R=0;
  325. R=X291is_basic_eiffel_expanded((((T283*)C))->_run_type/*12*/);
  326. return R;
  327. }
  328. int r283is_none(T283* C){
  329. int R=0;
  330. R=X291is_none((((T283*)C))->_run_type/*12*/);
  331. return R;
  332. }
  333. int r283is_integer(T283* C){
  334. int R=0;
  335. R=X291is_integer((((T283*)C))->_run_type/*12*/);
  336. return R;
  337. }
  338. void r283warning(T0* a1,T0* a2){
  339. r683add_position(a1);
  340. r683warning(((T683*)(oBC364eh)),a2);
  341. }
  342. T0* r283make_runnable(T283* C,T0* a1){
  343. T0* R=NULL;
  344. T0* _rt2=NULL;
  345. _rt2=X291run_type(a1);
  346. /*IF*/if ((_rt2)==((void*)(NULL))) {
  347. /*IF*/if ((a1)!=((void*)(NULL))) {
  348. r683add_position(X291start_position(a1));
  349. }
  350. /*FI*/r283error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T283*)C))->_formal_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms59_470));
  351. }
  352.  else if (((((T283*)C))->_run_type/*12*/)==((void*)(NULL))) {
  353. C->_run_type=_rt2;
  354. R=(T0*)C;
  355. }
  356. else {
  357. R=r283twin(C);
  358. /*[IRF3.3set_run_type*/((((T283*)(((T283*)R))))->_run_type)=(_rt2);
  359. /*]*/
  360. }
  361. /*FI*/return R;
  362. }
  363. /*No:NATIVE_WITHOUT_CURRENT.fz_c_withoutcurrent*/
  364. T0* r320language_name(void){
  365. T0* R=NULL;
  366. R=((T0*)ms99_470);
  367. return R;
  368. }
  369. /*No:NATIVE_WITHOUT_CURRENT.pretty_print*/
  370. void r59make(T59* C,T0* a1,T0* a2){
  371. C->_name=a1;
  372. C->_constraint=a2;
  373. }
  374. /*No:FORMAL_GENERIC_ARG.name*/
  375. /*No:FORMAL_GENERIC_ARG.start_position*/
  376. /*No:FORMAL_GENERIC_ARG.constrained*/
  377. void r59pretty_print(T59* C){
  378. /*[IRF3.6pretty_print*/{T451* C1=((T451*)((((T59*)C))->_name/*0*/));
  379. r238put_string(((T238*)(oBC364fmt)),(((T451*)C1))->_to_string/*0*/);
  380. }/*]*/
  381. /*IF*/if (/*(IRF4.7constrained*/((((T59*)C))->_constraint/*4*/)!=(NULL)/*)*/) {
  382. r238level_incr(((T238*)(oBC364fmt)));
  383. r238put_string(((T238*)(oBC364fmt)),((T0*)ms1_59));
  384. X291pretty_print((((T59*)C))->_constraint/*4*/);
  385. r238level_decr(((T238*)(oBC364fmt)));
  386. }
  387. /*FI*/}
  388. /*No:FORMAL_GENERIC_ARG.constraint*/
  389. /*No:CALL_INFIX_PLUS.arguments*/
  390. T0* r253add_comment(T253* C,T0* a1){
  391. T0* R=NULL;
  392. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  393. R=(T0*)C;
  394. }
  395. else {
  396. {T529*n=malloc(sizeof(*n));
  397. *n=M529;
  398. r529make(n,(T0*)C,a1);
  399. R=(T0*)n;
  400. }
  401. }
  402. /*FI*/return R;
  403. }
  404. int r253to_integer(T253* C){
  405. int R=0;
  406. r253error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T253*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  407. return R;
  408. }
  409. int r253is_a(T253* C,T0* a1){
  410. int R=0;
  411. R=X291is_a(X291run_type((((T253*)C))->_result_type/*16*/),X291run_type(X662result_type(a1)));
  412. /*IF*/if (!(R)) {
  413. r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T253*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/);
  414. r253error(X662start_position(a1),((T0*)ms4_662));
  415. }
  416. /*FI*/return R;
  417. }
  418. /*No:CALL_INFIX_PLUS.is_current*/
  419. void r253make(T253* C,T0* a1,T0* a2,T0* a3){
  420. T0* _eal=NULL;
  421. /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
  422. r683add_position(a2);
  423. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
  424. r683fatal_error(((T683*)(oBC364eh)),b1);
  425. }/*]*/
  426. }
  427. /*FI*/{T454*n=malloc(sizeof(*n));
  428. *n=M454;
  429. r454make(n,r253operator(),a2);
  430. C->_feature_name=(T0*)n;
  431. }
  432. {T431*n=malloc(sizeof(*n));
  433. *n=M431;
  434. /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
  435. /*]*/
  436. _eal=(T0*)n;
  437. }
  438. r253make_call_1(C,a1,(((T253*)C))->_feature_name/*24*/,_eal);
  439. }
  440. void r253print_as_target(T253* C){
  441. r238put_character(((T238*)(oBC364fmt)),'\50');
  442. r253pretty_print(C);
  443. r238put_character(((T238*)(oBC364fmt)),'\51');
  444. r238put_character(((T238*)(oBC364fmt)),'\56');
  445. }
  446. /*No:CALL_INFIX_PLUS.nb_errors*/
  447. /*No:CALL_INFIX_PLUS.feature_name*/
  448. /*No:CALL_INFIX_PLUS.fz_iinaiv*/
  449. /*No:CALL_INFIX_PLUS.run_feature*/
  450. /*No:CALL_INFIX_PLUS.start_position*/
  451. /*No:CALL_INFIX_PLUS.target*/
  452. /*No:CALL_INFIX_PLUS.precedence*/
  453. T0* r253to_runnable(T253* C,T0* a1){
  454. T0* R=NULL;
  455. T0* _tla=NULL;
  456. T0* _a=NULL;
  457. /*IF*/if (((((T253*)C))->_current_type/*4*/)==((void*)(NULL))) {
  458. r253to_runnable_0(C,a1);
  459. _a=r431to_runnable(((T431*)((((T253*)C))->_arguments/*20*/)),a1);
  460. /*IF*/if ((_a)==((void*)(NULL))) {
  461. r253error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T253*)C))->_arguments/*20*/)))/*)*/),((T0*)ms55_470));
  462. }
  463. else {
  464. C->_arguments=_a;
  465. }
  466. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  467. r431match_with(((T431*)((((T253*)C))->_arguments/*20*/)),(((T253*)C))->_run_feature/*12*/);
  468. }
  469. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  470. _tla=(((T253*)C))->_result_type/*16*/;
  471. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  472. case 239: 
  473. break;
  474. default:
  475. _tla=NULL;
  476. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  477. C->_result_type=X291run_type(X662result_type(/*(IRF4.6arg1*/r431first(((T431*)((((T253*)C))->_arguments/*20*/)))/*)*/));
  478. }
  479. /*FI*/}
  480. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  481. R=(T0*)C;
  482. }
  483. /*FI*/}
  484. else {
  485. R=r253twin(C);
  486. /*[IRF3.3set_current_type*/((((T253*)(((T253*)R))))->_current_type)=(NULL);
  487. /*]*/
  488. R=r253to_runnable(((T253*)R),a1);
  489. }
  490. /*FI*/return R;
  491. }
  492. void r253bracketed_pretty_print(T253* C){
  493. r238put_character(((T238*)(oBC364fmt)),'\50');
  494. r253pretty_print(C);
  495. r238put_character(((T238*)(oBC364fmt)),'\51');
  496. }
  497. /*No:CALL_INFIX_PLUS.result_type*/
  498. T0* r253twin(T253* C){
  499. T0* R=NULL;
  500. R=malloc(sizeof(*C));
  501. *((T253*)R)=*C;
  502. return R;
  503. }
  504. /*No:CALL_INFIX_PLUS.set_current_type*/
  505. T0* r253operator(void){
  506. T0* R=NULL;
  507. R=((T0*)ms43_473);
  508. return R;
  509. }
  510. /*No:CALL_INFIX_PLUS.atomic_precedence*/
  511. void r253pretty_print(T253* C){
  512. /*IF*/if ((X662precedence((((T253*)C))->_target/*8*/))==(13)) {
  513. X662pretty_print((((T253*)C))->_target/*8*/);
  514. r253print_op(C);
  515. /*IF*/if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T253*)C))->_arguments/*20*/)))/*)*/))==(13)) {
  516. X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T253*)C))->_arguments/*20*/)))/*)*/);
  517. }
  518.  else if ((7)>=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T253*)C))->_arguments/*20*/)))/*)*/))) {
  519. X662bracketed_pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T253*)C))->_arguments/*20*/)))/*)*/);
  520. }
  521. else {
  522. X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T253*)C))->_arguments/*20*/)))/*)*/);
  523. }
  524. /*FI*/}
  525.  else if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T253*)C))->_arguments/*20*/)))/*)*/))==(13)) {
  526. /*IF*/if ((X662precedence((((T253*)C))->_target/*8*/))>=(7)) {
  527. X662bracketed_pretty_print((((T253*)C))->_target/*8*/);
  528. }
  529. else {
  530. X662pretty_print((((T253*)C))->_target/*8*/);
  531. }
  532. /*FI*/r253print_op(C);
  533. X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T253*)C))->_arguments/*20*/)))/*)*/);
  534. }
  535.  else if ((7)<=(X662precedence((((T253*)C))->_target/*8*/))) {
  536. X662bracketed_pretty_print((((T253*)C))->_target/*8*/);
  537. r253print_op(C);
  538. /*IF*/if ((7)<=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T253*)C))->_arguments/*20*/)))/*)*/))) {
  539. X662bracketed_pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T253*)C))->_arguments/*20*/)))/*)*/);
  540. }
  541. else {
  542. X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T253*)C))->_arguments/*20*/)))/*)*/);
  543. }
  544. /*FI*/}
  545. else {
  546. X662pretty_print((((T253*)C))->_target/*8*/);
  547. r253print_op(C);
  548. X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T253*)C))->_arguments/*20*/)))/*)*/);
  549. }
  550. /*FI*/}
  551. void r253print_op(T253* C){
  552. r238put_character(((T238*)(oBC364fmt)),'\40');
  553. /*[IRF3.6pretty_print*/{T454* C1=((T454*)((((T253*)C))->_feature_name/*24*/));
  554. r238put_string(((T238*)(oBC364fmt)),(((T454*)C1))->_to_string/*4*/);
  555. }/*]*/
  556. r238put_character(((T238*)(oBC364fmt)),'\40');
  557. }
  558. /*No:CALL_INFIX_PLUS.current_type*/
  559. void r253make_call_1(T253* C,T0* a1,T0* a2,T0* a3){
  560. C->_target=a1;
  561. C->_feature_name=a2;
  562. C->_arguments=a3;
  563. }
  564. /*No:CALL_INFIX_PLUS.is_manifest_string*/
  565. /*No:CALL_INFIX_PLUS.is_void*/
  566. void r253to_runnable_0(T253* C,T0* a1){
  567. C->_current_type=a1;
  568. r253cpc_to_runnable(C,a1);
  569. C->_result_type=/*X496*/((T0*)(((T808*)((T808*)((((T253*)C))->_run_feature/*12*/))))->_result_type/*24*/);
  570. /*IF*/if (((((T253*)C))->_result_type/*16*/)==((void*)(NULL))) {
  571. r683add_position(X496start_position((((T253*)C))->_run_feature/*12*/));
  572. r253error((((T454*)((T454*)((((T253*)C))->_feature_name/*24*/))))->_start_position/*8*/,((T0*)ms1_295));
  573. }
  574.  else if (X291is_like_current((((T253*)C))->_result_type/*16*/)) {
  575. C->_result_type=X662result_type((((T253*)C))->_target/*8*/);
  576. }
  577. /*FI*/}
  578. void r253cpc_to_runnable(T253* C,T0* a1){
  579. T0* _rc=NULL;
  580. T0* _t=NULL;
  581. _t=X662to_runnable((((T253*)C))->_target/*8*/,a1);
  582. /*IF*/if ((_t)==((void*)(NULL))) {
  583. r683add_position(X662start_position((((T253*)C))->_target/*8*/));
  584. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  585. r683fatal_error(((T683*)(oBC364eh)),b1);
  586. }/*]*/
  587. }
  588. /*FI*/C->_target=_t;
  589. _rc=X291run_class(X662result_type((((T253*)C))->_target/*8*/));
  590. C->_run_feature=r368get_rf(((T368*)_rc),(T0*)C);
  591. r576update((((T253*)C))->_target/*8*/,(((T253*)C))->_run_feature/*12*/);
  592. }
  593. void r253error(T0* a1,T0* a2){
  594. r683add_position(a1);
  595. r683error(((T683*)(oBC364eh)),a2);
  596. }
  597. /*No:CALL_INFIX_PLUS.fatal_error*/
  598. /*No:CALL_INFIX_PLUS.fz_bad_argument*/
  599. /*No:CALL_INFIX_PLUS.us_plus*/
  600. /*No:CALL_INFIX_PLUS.arg1*/
  601. /*No:PARENT.us_none*/
  602. void r877multiple_check(T877* C,T0* a1){
  603. T0* _fn2=NULL;
  604. T0* _fn1=NULL;
  605. int _i=0;
  606. T0* _bc2=NULL;
  607. T0* _bc1=NULL;
  608. _bc1=X291base_class((((T877*)C))->_type/*4*/);
  609. _bc2=X291base_class((((T877*)((T877*)a1)))->_type/*4*/);
  610. /*IF*/if ((((_bc1)==((void*)(_bc2)))||(r605is_subclass_of(((T605*)_bc1),_bc2)))||(r605is_subclass_of(((T605*)_bc2),_bc1))) {
  611. /*IF*/if (((((T877*)C))->_redefine_list/*24*/)!=((void*)(NULL))) {
  612. _i=/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T877*)C))->_redefine_list/*24*/))))->_list/*0*/))))->_upper/*8*//*)*/;
  613. while (!((_i)==(0))) {
  614. _fn1=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T877*)C))->_redefine_list/*24*/))))->_list/*0*/)),_i)/*)*/;
  615. /*IF*/if (((((T877*)((T877*)a1)))->_rename_list/*12*/)==((void*)(NULL))) {
  616. }
  617.  else if (r644affect(((T644*)((((T877*)((T877*)a1)))->_rename_list/*12*/)),_fn1)) {
  618. _fn2=r644to_new_name(((T644*)((((T877*)((T877*)a1)))->_rename_list/*12*/)),_fn1);
  619. /*IF*/if ((_fn2)!=((void*)(_fn1))) {
  620. /*IF*/if (((((T877*)C))->_select_list/*28*/)!=((void*)(NULL))) {
  621. /*IF*/if (r953has(((T953*)((((T877*)C))->_select_list/*28*/)),_fn1)) {
  622. /*IF*/if (((((T877*)((T877*)a1)))->_select_list/*28*/)!=((void*)(NULL))) {
  623. /*IF*/if (r953has(((T953*)((((T877*)((T877*)a1)))->_select_list/*28*/)),_fn2)) {
  624. r877select_conflict(_fn1,_fn2);
  625. }
  626. /*FI*/}
  627. /*FI*/}
  628.  else if (((((T877*)((T877*)a1)))->_select_list/*28*/)==((void*)(NULL))) {
  629. r877missing_select(_fn1,_fn2);
  630. }
  631.  else if (!(r953has(((T953*)((((T877*)((T877*)a1)))->_select_list/*28*/)),_fn2))) {
  632. r877missing_select(_fn1,_fn2);
  633. }
  634. /*FI*/}
  635.  else if (((((T877*)((T877*)a1)))->_select_list/*28*/)==((void*)(NULL))) {
  636. r877missing_select(_fn1,_fn2);
  637. }
  638.  else if (!(r953has(((T953*)((((T877*)((T877*)a1)))->_select_list/*28*/)),_fn2))) {
  639. r877missing_select(_fn1,_fn2);
  640. }
  641. /*FI*/}
  642. /*FI*/}
  643. /*FI*/_i=(_i)-(1);
  644. }
  645. }
  646. /*FI*/}
  647. /*FI*/}
  648. /*No:PARENT.us_integer*/
  649. void r877get_started(T877* C,T0* a1){
  650. int _all_check=0;
  651. T0* _new_fn=NULL;
  652. T0* _old_fn=NULL;
  653. T0* _fn=NULL;
  654. T0* _pbc=NULL;
  655. T0* _wbc=NULL;
  656. int _i=0;
  657. _all_check=r590all_check(((T590*)(oBC364run_control)));
  658. C->_parent_list=a1;
  659. _pbc=X291base_class((((T877*)C))->_type/*4*/);
  660. _wbc=(((T673*)((T673*)((((T877*)C))->_parent_list/*0*/))))->_base_class/*0*/;
  661. /*IF*/if ((_all_check)&&(((((T877*)C))->_rename_list/*12*/)!=((void*)(NULL)))) {
  662. r644get_started(((T644*)((((T877*)C))->_rename_list/*12*/)),_pbc);
  663. }
  664. /*FI*//*IF*/if ((_all_check)&&(((((T877*)C))->_undefine_list/*20*/)!=((void*)(NULL)))) {
  665. _i=/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T877*)C))->_undefine_list/*20*/))))->_list/*0*/))))->_upper/*8*//*)*/;
  666. while (!((_i)==(0))) {
  667. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T877*)C))->_undefine_list/*20*/))))->_list/*0*/)),_i)/*)*/;
  668. _old_fn=r877get_old_name(C,_fn);
  669. /*IF*/if (((_old_fn)==((void*)(NULL)))&&(!(r605has(((T605*)_pbc),_fn)))) {
  670. r683add_position(X776start_position(_fn));
  671. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms9_877);
  672. r683fatal_error(((T683*)(oBC364eh)),b1);
  673. }/*]*/
  674. }
  675. /*FI*/_i=(_i)-(1);
  676. }
  677. }
  678. /*FI*//*IF*/if (((((T877*)C))->_redefine_list/*24*/)!=((void*)(NULL))) {
  679. _i=/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T877*)C))->_redefine_list/*24*/))))->_list/*0*/))))->_upper/*8*//*)*/;
  680. while (!((_i)==(0))) {
  681. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T877*)C))->_redefine_list/*24*/))))->_list/*0*/)),_i)/*)*/;
  682. /*IF*/if (!(r605proper_has(((T605*)_wbc),_fn))) {
  683. r683add_position(X776start_position(_fn));
  684. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms10_877);
  685. r683fatal_error(((T683*)(oBC364eh)),b1);
  686. }/*]*/
  687. }
  688. /*FI*//*IF*/if (_all_check) {
  689. _old_fn=r877get_old_name(C,_fn);
  690. /*IF*/if (((_old_fn)==((void*)(NULL)))&&(!(r605has(((T605*)_pbc),_fn)))) {
  691. r683add_position(X776start_position(_fn));
  692. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms11_877);
  693. r683fatal_error(((T683*)(oBC364eh)),b1);
  694. }/*]*/
  695. }
  696. /*FI*/}
  697. /*FI*/_i=(_i)-(1);
  698. }
  699. }
  700. /*FI*//*IF*/if ((_all_check)&&(((((T877*)C))->_select_list/*28*/)!=((void*)(NULL)))) {
  701. _i=/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T877*)C))->_select_list/*28*/))))->_list/*0*/))))->_upper/*8*//*)*/;
  702. while (!((_i)==(0))) {
  703. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T877*)C))->_select_list/*28*/))))->_list/*0*/)),_i)/*)*/;
  704. _old_fn=r877get_old_name(C,_fn);
  705. /*IF*/if (((_old_fn)==((void*)(NULL)))&&(!(r605has(((T605*)_pbc),_fn)))) {
  706. r683add_position(X776start_position(_fn));
  707. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms16_877);
  708. r683fatal_error(((T683*)(oBC364eh)),b1);
  709. }/*]*/
  710. }
  711. /*FI*/_new_fn=r877get_new_name(C,_fn);
  712. /*IF*/if ((_new_fn)!=((void*)(NULL))) {
  713. /*IF*/if ((r877get_old_name(C,_new_fn))==((void*)(NULL))) {
  714. r683add_position(X776start_position(_new_fn));
  715. r683add_position(X776start_position(_fn));
  716. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms16_877);
  717. r683fatal_error(((T683*)(oBC364eh)),b1);
  718. }/*]*/
  719. }
  720. /*FI*/}
  721. /*FI*/_i=(_i)-(1);
  722. }
  723. }
  724. /*FI*/}
  725. /*No:PARENT.select_list*/
  726. /*No:PARENT.undefine_memory1*/
  727. T0* r877get_new_name(T877* C,T0* a1){
  728. T0* R=NULL;
  729. /*IF*/if (((((T877*)C))->_rename_list/*12*/)!=((void*)(NULL))) {
  730. R=r644to_new_name(((T644*)((((T877*)C))->_rename_list/*12*/)),a1);
  731. /*IF*/if ((R)==((void*)(a1))) {
  732. R=NULL;
  733. }
  734. /*FI*/}
  735. /*FI*/return R;
  736. }
  737. T0* r877get_old_name(T877* C,T0* a1){
  738. T0* R=NULL;
  739. /*IF*/if (((((T877*)C))->_rename_list/*12*/)!=((void*)(NULL))) {
  740. R=r644to_old_name(((T644*)((((T877*)C))->_rename_list/*12*/)),a1);
  741. /*IF*/if ((R)==((void*)(a1))) {
  742. R=NULL;
  743. }
  744. /*FI*/}
  745. /*FI*/return R;
  746. }
  747. void r877make(T877* C,T0* a1){
  748. C->_type=a1;
  749. /*IF*/if (r52fast_has(((T52*)(oBC877forbidden_parent_list)),X291written_mark((((T877*)C))->_type/*4*/))) {
  750. r683add_position(X291start_position((((T877*)C))->_type/*4*/));
  751. /*[IRF3.6append*/{T0* b1=((T0*)ms1_877);
  752. r7append(((T7*)(oBC683explanation)),b1);
  753. }/*]*/
  754. /*[IRF3.6append*/{T0* b1=X291written_mark((((T877*)C))->_type/*4*/);
  755. r7append(((T7*)(oBC683explanation)),b1);
  756. }/*]*/
  757. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_877);
  758. r683fatal_error(((T683*)(oBC364eh)),b1);
  759. }/*]*/
  760. }
  761. /*FI*/}
  762. /*No:PARENT.rename_list*/
  763. /*No:PARENT.parent_list*/
  764. /*No:PARENT.us_pointer*/
  765. void r877set_select(T877* C,T0* a1){
  766. {T953*n=malloc(sizeof(*n));
  767. *n=M953;
  768. r953make(n,a1);
  769. C->_select_list=(T0*)n;
  770. }
  771. }
  772. /*No:PARENT.type*/
  773. T0* r877going_down(T877* C,T0* a1,T0* a2){
  774. T0* R=NULL;
  775. T0* _previous=NULL;
  776. /*IF*/if (((((T877*)C))->_rename_list/*12*/)==((void*)(NULL))) {
  777. R=a2;
  778. }
  779. else {
  780. R=r644to_new_name(((T644*)((((T877*)C))->_rename_list/*12*/)),a2);
  781. }
  782. /*FI*//*IF*/if (!(r854empty(((T854*)a1)))) {
  783. _previous=r854last(((T854*)a1));
  784. r854remove_last(((T854*)a1));
  785. R=r877going_down(((T877*)_previous),a1,R);
  786. }
  787. /*FI*/return R;
  788. }
  789. /*No:PARENT.set_comment*/
  790. /*No:PARENT.undefine_memory2*/
  791. T0* r877start_position(T877* C){
  792. T0* R=NULL;
  793. R=X291start_position((((T877*)C))->_type/*4*/);
  794. return R;
  795. }
  796. /*No:PARENT.comment*/
  797. T0* r877do_rename(T877* C,T0* a1){
  798. T0* R=NULL;
  799. /*IF*/if (((((T877*)C))->_rename_list/*12*/)==((void*)(NULL))) {
  800. R=a1;
  801. }
  802. else {
  803. R=r644to_new_name(((T644*)((((T877*)C))->_rename_list/*12*/)),a1);
  804. }
  805. /*FI*/return R;
  806. }
  807. int r877has_select_for(T877* C,T0* a1){
  808. int R=0;
  809. /*IF*/if (((((T877*)C))->_select_list/*28*/)!=((void*)(NULL))) {
  810. R=r953has(((T953*)((((T877*)C))->_select_list/*28*/)),a1);
  811. }
  812. /*FI*/return R;
  813. }
  814. /*No:PARENT.export_list*/
  815. void r877add_rename(T877* C,T0* a1){
  816. /*IF*/if (((((T877*)C))->_rename_list/*12*/)==((void*)(NULL))) {
  817. {T644*n=malloc(sizeof(*n));
  818. *n=M644;
  819. /*[IRF3.3make*/((((T644*)(n)))->_list)=(se_ma552(1,a1));
  820. /*]*/
  821. C->_rename_list=(T0*)n;
  822. }
  823. }
  824. else {
  825. /*[IRF3.5add_last*/r552add_last(((T552*)((((T644*)((T644*)((((T877*)C))->_rename_list/*12*/))))->_list/*0*/)),a1);
  826. /*]*/
  827. }
  828. /*FI*/}
  829. /*No:PARENT.us_character*/
  830. /*No:PARENT.em1*/
  831. void r877pretty_print(T877* C){
  832. int _end_needed=0;
  833. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(1);
  834. /*]*/
  835. r238indent(((T238*)(oBC364fmt)));
  836. X291pretty_print((((T877*)C))->_type/*4*/);
  837. /*IF*/if (((((((((T877*)C))->_rename_list/*12*/)==((void*)(NULL)))&&(((((T877*)C))->_export_list/*16*/)==((void*)(NULL))))&&(((((T877*)C))->_undefine_list/*20*/)==((void*)(NULL))))&&(((((T877*)C))->_redefine_list/*24*/)==((void*)(NULL))))&&(((((T877*)C))->_select_list/*28*/)==((void*)(NULL)))) {
  838. r238put_character(((T238*)(oBC364fmt)),'\73');
  839. }
  840. /*FI*//*IF*/if (((((T877*)C))->_comment/*8*/)!=((void*)(NULL))) {
  841. r238put_character(((T238*)(oBC364fmt)),'\40');
  842. r393pretty_print(((T393*)((((T877*)C))->_comment/*8*/)));
  843. }
  844. /*FI*//*IF*/if (((((T877*)C))->_rename_list/*12*/)!=((void*)(NULL))) {
  845. _end_needed=1;
  846. r644pretty_print(((T644*)((((T877*)C))->_rename_list/*12*/)));
  847. }
  848. /*FI*//*IF*/if (((((T877*)C))->_export_list/*16*/)!=((void*)(NULL))) {
  849. _end_needed=1;
  850. r671pretty_print(((T671*)((((T877*)C))->_export_list/*16*/)));
  851. }
  852. /*FI*//*IF*/if (((((T877*)C))->_undefine_list/*20*/)!=((void*)(NULL))) {
  853. _end_needed=1;
  854. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
  855. /*]*/
  856. r238indent(((T238*)(oBC364fmt)));
  857. r238keyword(((T238*)(oBC364fmt)),((T0*)ms5_877));
  858. r953pretty_print(((T953*)((((T877*)C))->_undefine_list/*20*/)));
  859. }
  860. /*FI*//*IF*/if (((((T877*)C))->_redefine_list/*24*/)!=((void*)(NULL))) {
  861. _end_needed=1;
  862. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
  863. /*]*/
  864. r238indent(((T238*)(oBC364fmt)));
  865. r238keyword(((T238*)(oBC364fmt)),((T0*)ms6_877));
  866. r953pretty_print(((T953*)((((T877*)C))->_redefine_list/*24*/)));
  867. }
  868. /*FI*//*IF*/if (((((T877*)C))->_select_list/*28*/)!=((void*)(NULL))) {
  869. _end_needed=1;
  870. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
  871. /*]*/
  872. r238indent(((T238*)(oBC364fmt)));
  873. r238keyword(((T238*)(oBC364fmt)),((T0*)ms7_877));
  874. r953pretty_print(((T953*)((((T877*)C))->_select_list/*28*/)));
  875. }
  876. /*FI*//*IF*/if (_end_needed) {
  877. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
  878. /*]*/
  879. r238indent(((T238*)(oBC364fmt)));
  880. r238keyword(((T238*)(oBC364fmt)),((T0*)ms8_877));
  881. }
  882. /*FI*//*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(1);
  883. /*]*/
  884. r238indent(((T238*)(oBC364fmt)));
  885. }
  886. /*No:PARENT.us_real*/
  887. T0* r877up_to_original(T877* C,T0* a1,T0* a2){
  888. T0* R=NULL;
  889. T0* _bc=NULL;
  890. T0* _old_name=NULL;
  891. _bc=X291base_class((((T877*)C))->_type/*4*/);
  892. /*IF*/if (((((T877*)C))->_rename_list/*12*/)==((void*)(NULL))) {
  893. R=r605up_to_original(((T605*)_bc),a1,a2);
  894. }
  895.  else if (r644affect(((T644*)((((T877*)C))->_rename_list/*12*/)),a2)) {
  896. _old_name=r644to_old_name(((T644*)((((T877*)C))->_rename_list/*12*/)),a2);
  897. /*IF*/if ((_old_name)!=((void*)(a2))) {
  898. R=r605up_to_original(((T605*)_bc),a1,_old_name);
  899. }
  900. /*FI*/}
  901. else {
  902. R=r605up_to_original(((T605*)_bc),a1,a2);
  903. }
  904. /*FI*/return R;
  905. }
  906. void r877select_conflict(T0* a1,T0* a2){
  907. r683add_position(X776start_position(a1));
  908. r683add_position(X776start_position(a2));
  909. /*[IRF3.6append*/{T0* b1=((T0*)ms14_877);
  910. r7append(((T7*)(oBC683explanation)),b1);
  911. }/*]*/
  912. r683print_as_fatal_error(((T683*)(oBC364eh)));
  913. }
  914. T0* r877smallest_ancestor(T877* C,T0* a1){
  915. T0* R=NULL;
  916. /*IF*/if (X291is_generic((((T877*)C))->_type/*4*/)) {
  917. R=X291to_runnable((((T877*)C))->_type/*4*/,a1);
  918. }
  919. else {
  920. R=(((T877*)C))->_type/*4*/;
  921. }
  922. /*FI*/return R;
  923. }
  924. int r877has(T877* C,T0* a1){
  925. int R=0;
  926. /*IF*/if (((((T877*)C))->_rename_list/*12*/)==((void*)(NULL))) {
  927. R=r605has(((T605*)(X291base_class((((T877*)C))->_type/*4*/))),a1);
  928. }
  929. else {
  930. R=r605has(((T605*)(X291base_class((((T877*)C))->_type/*4*/))),r644to_old_name(((T644*)((((T877*)C))->_rename_list/*12*/)),a1));
  931. }
  932. /*FI*/return R;
  933. }
  934. void r877missing_select(T0* a1,T0* a2){
  935. r683add_position(X776start_position(a1));
  936. r683add_position(X776start_position(a2));
  937. /*[IRF3.6append*/{T0* b1=((T0*)ms15_877);
  938. r7append(((T7*)(oBC683explanation)),b1);
  939. }/*]*/
  940. r683print_as_fatal_error(((T683*)(oBC364eh)));
  941. }
  942. /*No:PARENT.us_bit*/
  943. /*No:PARENT.fz_09*/
  944. int r877has_redefine(T877* C,T0* a1){
  945. int R=0;
  946. /*IF*/if (((((T877*)C))->_redefine_list/*24*/)!=((void*)(NULL))) {
  947. R=r953has(((T953*)((((T877*)C))->_redefine_list/*24*/)),a1);
  948. }
  949. /*FI*/return R;
  950. }
  951. int r877has_undefine(T877* C,T0* a1){
  952. int R=0;
  953. /*IF*/if (((((T877*)C))->_undefine_list/*20*/)!=((void*)(NULL))) {
  954. R=r953has(((T953*)((((T877*)C))->_undefine_list/*20*/)),a1);
  955. }
  956. /*FI*/return R;
  957. }
  958. T0* r877look_up_for(T877* C,T0* a1,T0* a2){
  959. T0* R=NULL;
  960. T0* _f=NULL;
  961. T0* _fn2=NULL;
  962. /*IF*/if ((((((T877*)C))->_rename_list/*12*/)==((void*)(NULL)))||(!(r644affect(((T644*)((((T877*)C))->_rename_list/*12*/)),a2)))) {
  963. _f=X291look_up_for((((T877*)C))->_type/*4*/,a1,a2);
  964. R=r877apply_undefine(C,_f,a2);
  965. }
  966. else {
  967. _fn2=r644to_old_name(((T644*)((((T877*)C))->_rename_list/*12*/)),a2);
  968. /*IF*/if ((_fn2)!=((void*)(a2))) {
  969. _f=X291look_up_for((((T877*)C))->_type/*4*/,a1,_fn2);
  970. R=r877apply_undefine(C,_f,_fn2);
  971. }
  972. else {
  973. _f=X291look_up_for((((T877*)C))->_type/*4*/,a1,a2);
  974. /*IF*/if ((_f)==((void*)(NULL))) {
  975. r683add_position(X776start_position(a2));
  976. /*[IRF3.6append*/{T0* b1=((T0*)ms143_470);
  977. r7append(((T7*)(oBC683explanation)),b1);
  978. }/*]*/
  979. /*[IRF3.6append*/{T0* b1=X776to_string(a2);
  980. r7append(((T7*)(oBC683explanation)),b1);
  981. }/*]*/
  982. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms3_877);
  983. r683fatal_error(((T683*)(oBC364eh)),b1);
  984. }/*]*/
  985. }
  986. /*FI*/}
  987. /*FI*/}
  988. /*FI*/return R;
  989. }
  990. T0*oBC877forbidden_parent_list=NULL;
  991. /*No:PARENT.us_boolean*/
  992. /*No:PARENT.us_double*/
  993. T0* r877clients_for(T877* C,T0* a1){
  994. T0* R=NULL;
  995. T0* _old_fn=NULL;
  996. /*IF*/if (((((T877*)C))->_rename_list/*12*/)==((void*)(NULL))) {
  997. /*IF*/if (((((T877*)C))->_export_list/*16*/)==((void*)(NULL))) {
  998. R=r605clients_for(((T605*)(X291base_class((((T877*)C))->_type/*4*/))),a1);
  999. }
  1000. else {
  1001. R=r671clients_for(((T671*)((((T877*)C))->_export_list/*16*/)),a1);
  1002. /*IF*/if ((R)==((void*)(NULL))) {
  1003. R=r605clients_for(((T605*)(X291base_class((((T877*)C))->_type/*4*/))),a1);
  1004. }
  1005. /*FI*/}
  1006. /*FI*/}
  1007. else {
  1008. _old_fn=r644to_old_name(((T644*)((((T877*)C))->_rename_list/*12*/)),a1);
  1009. /*IF*/if (((((T877*)C))->_export_list/*16*/)==((void*)(NULL))) {
  1010. R=r605clients_for(((T605*)(X291base_class((((T877*)C))->_type/*4*/))),_old_fn);
  1011. }
  1012. else {
  1013. R=r671clients_for(((T671*)((((T877*)C))->_export_list/*16*/)),_old_fn);
  1014. /*IF*/if ((R)==((void*)(NULL))) {
  1015. R=r605clients_for(((T605*)(X291base_class((((T877*)C))->_type/*4*/))),_old_fn);
  1016. }
  1017. /*FI*/}
  1018. /*FI*/}
  1019. /*FI*/return R;
  1020. }
  1021. void r877set_redefine(T877* C,T0* a1){
  1022. {T953*n=malloc(sizeof(*n));
  1023. *n=M953;
  1024. r953make(n,a1);
  1025. C->_redefine_list=(T0*)n;
  1026. }
  1027. }
  1028. void r877set_undefine(T877* C,T0* a1){
  1029. {T953*n=malloc(sizeof(*n));
  1030. *n=M953;
  1031. r953make(n,a1);
  1032. C->_undefine_list=(T0*)n;
  1033. }
  1034. }
  1035. T0* r877going_up(T877* C,T0* a1,T0* a2,T0* a3){
  1036. T0* R=NULL;
  1037. T0* _bc=NULL;
  1038. _bc=X291base_class((((T877*)C))->_type/*4*/);
  1039. /*IF*/if ((_bc)==((void*)(a2))) {
  1040. R=r877going_down(C,a1,a3);
  1041. }
  1042.  else if (r605is_general(((T605*)_bc))) {
  1043. R=r877going_down(C,a1,a3);
  1044. }
  1045.  else if (r605is_subclass_of(((T605*)_bc),a2)) {
  1046. r854add_last(((T854*)a1),(T0*)C);
  1047. R=r605going_up(((T605*)_bc),a1,a2,a3);
  1048. }
  1049. /*FI*/return R;
  1050. }
  1051. void r877collect_for(T877* C,int a1,T0* a2){
  1052. T0* _fn2=NULL;
  1053. /*IF*/if ((((((T877*)C))->_rename_list/*12*/)==((void*)(NULL)))||(!(r644affect(((T644*)((((T877*)C))->_rename_list/*12*/)),a2)))) {
  1054. r605collect_for(((T605*)(X291base_class((((T877*)C))->_type/*4*/))),a1,a2);
  1055. }
  1056. else {
  1057. _fn2=r644to_old_name(((T644*)((((T877*)C))->_rename_list/*12*/)),a2);
  1058. /*IF*/if ((_fn2)!=((void*)(a2))) {
  1059. r605collect_for(((T605*)(X291base_class((((T877*)C))->_type/*4*/))),a1,_fn2);
  1060. }
  1061. /*FI*/}
  1062. /*FI*/}
  1063. int r877is_a_vncg(T877* C,T0* a1,T0* a2){
  1064. int R=0;
  1065. T0* _t2_bcn=NULL;
  1066. T0* _type_bcn=NULL;
  1067. T0* _t2_bc=NULL;
  1068. T0* _type_bc=NULL;
  1069. T0* _rt=NULL;
  1070. T0* _tfg=NULL;
  1071. T0* _gl2=NULL;
  1072. T0* _gl1=NULL;
  1073. T0* _gl=NULL;
  1074. int _i=0;
  1075. int _rank=0;
  1076. _type_bc=X291base_class((((T877*)C))->_type/*4*/);
  1077. _type_bcn=(((T451*)((T451*)((((T605*)((T605*)_type_bc)))->_base_class_name/*24*/))))->_to_string/*0*/;
  1078. _t2_bc=X291base_class(a2);
  1079. _t2_bcn=(((T451*)((T451*)((((T605*)((T605*)_t2_bc)))->_base_class_name/*24*/))))->_to_string/*0*/;
  1080. /*IF*/if ((_type_bcn)==((void*)(_t2_bcn))) {
  1081. _gl=X291generic_list((((T877*)C))->_type/*4*/);
  1082. _gl2=X291generic_list(a2);
  1083. /*IF*/if (((_gl)==((void*)(NULL)))||((r701count(((T701*)_gl)))!=(r701count(((T701*)_gl2))))) {
  1084. r683add_position(X291start_position((((T877*)C))->_type/*4*/));
  1085. r683add_position(X291start_position(a2));
  1086. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms4_877);
  1087. r683fatal_error(((T683*)(oBC364eh)),b1);
  1088. }/*]*/
  1089. }
  1090. /*FI*//*IF*/if (X291is_generic(a1)) {
  1091. _gl1=X291generic_list(a1);
  1092. R=1;
  1093. _i=r701count(((T701*)_gl2));
  1094. while (!((!(R))||((_i)==(0)))) {
  1095. /*IF*/if (X291is_formal_generic(r701item(((T701*)_gl),_i))) {
  1096. _tfg=r701item(((T701*)_gl),_i);
  1097. if(NULL!=(_tfg))switch(((T0*)_tfg)->id) {
  1098. case 283: 
  1099. break;
  1100. default:
  1101. _tfg=NULL;
  1102. };_rank=(((T283*)((T283*)_tfg)))->_rank/*8*/;
  1103. R=X291is_a(r701item(((T701*)_gl1),_rank),r701item(((T701*)_gl2),_i));
  1104. }
  1105. else {
  1106. _rt=X291run_type(X291to_runnable(r701item(((T701*)_gl),_i),a1));
  1107. R=X291is_a(_rt,r701item(((T701*)_gl2),_i));
  1108. }
  1109. /*FI*/_i=(_i)-(1);
  1110. }
  1111. }
  1112. else {
  1113. R=X291is_a((((T877*)C))->_type/*4*/,a2);
  1114. }
  1115. /*FI*//*IF*/if (!(R)) {
  1116. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
  1117. /*]*/
  1118. r38clear(((T38*)(oBC683positions)));
  1119. /*]*/
  1120. }
  1121. /*FI*/}
  1122.  else if (r605is_subclass_of(((T605*)_type_bc),_t2_bc)) {
  1123. /*IF*/if (X291is_generic(a1)) {
  1124. _rt=X291run_type(X291to_runnable((((T877*)C))->_type/*4*/,a1));
  1125. R=r605is_a_vncg(((T605*)_type_bc),_rt,a2);
  1126. }
  1127. else {
  1128. R=r605is_a_vncg(((T605*)_type_bc),(((T877*)C))->_type/*4*/,a2);
  1129. }
  1130. /*FI*//*IF*/if (!(R)) {
  1131. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
  1132. /*]*/
  1133. r38clear(((T38*)(oBC683positions)));
  1134. /*]*/
  1135. }
  1136. /*FI*/}
  1137. /*FI*/return R;
  1138. }
  1139. /*No:PARENT.fatal_error*/
  1140. /*No:PARENT.redefine_list*/
  1141. /*No:PARENT.us_native_array*/
  1142. /*No:PARENT.set_export*/
  1143. T0* r877apply_undefine(T877* C,T0* a1,T0* a2){
  1144. T0* R=NULL;
  1145. int _index=0;
  1146. T0* _fnkey=NULL;
  1147. /*IF*/if (r877has_undefine(C,a2)) {
  1148. _fnkey=X776to_key(a2);
  1149. /*IF*/if (((((T877*)C))->_undefine_memory1/*32*/)==((void*)(NULL))) {
  1150. C->_undefine_memory1=se_ma52(1,_fnkey);
  1151. R=X359try_to_undefine(a1,a2,(((T673*)((T673*)((((T877*)C))->_parent_list/*0*/))))->_base_class/*0*/);
  1152. C->_undefine_memory2=se_ma495(1,R);
  1153. }
  1154. else {
  1155. _index=r52fast_index_of(((T52*)((((T877*)C))->_undefine_memory1/*32*/)),_fnkey);
  1156. /*IF*/if ((_index)>((((T52*)((T52*)((((T877*)C))->_undefine_memory1/*32*/))))->_upper/*8*/)) {
  1157. r52add_last(((T52*)((((T877*)C))->_undefine_memory1/*32*/)),_fnkey);
  1158. R=X359try_to_undefine(a1,a2,(((T673*)((T673*)((((T877*)C))->_parent_list/*0*/))))->_base_class/*0*/);
  1159. r495add_last(((T495*)((((T877*)C))->_undefine_memory2/*36*/)),R);
  1160. }
  1161. else {
  1162. R=r495item(((T495*)((((T877*)C))->_undefine_memory2/*36*/)),_index);
  1163. }
  1164. /*FI*/}
  1165. /*FI*/}
  1166. else {
  1167. R=a1;
  1168. }
  1169. /*FI*/return R;
  1170. }
  1171. /*No:PARENT.undefine_list*/
  1172. /*No:CALL_INFIX_OR_ELSE.arguments*/
  1173. T0* r278add_comment(T278* C,T0* a1){
  1174. T0* R=NULL;
  1175. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1176. R=(T0*)C;
  1177. }
  1178. else {
  1179. {T529*n=malloc(sizeof(*n));
  1180. *n=M529;
  1181. r529make(n,(T0*)C,a1);
  1182. R=(T0*)n;
  1183. }
  1184. }
  1185. /*FI*/return R;
  1186. }
  1187. int r278to_integer(T278* C){
  1188. int R=0;
  1189. r278error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T278*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  1190. return R;
  1191. }
  1192. int r278is_a(T278* C,T0* a1){
  1193. int R=0;
  1194. R=X291is_a(X291run_type((((T278*)C))->_result_type/*16*/),X291run_type(X662result_type(a1)));
  1195. /*IF*/if (!(R)) {
  1196. r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T278*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/);
  1197. r278error(X662start_position(a1),((T0*)ms4_662));
  1198. }
  1199. /*FI*/return R;
  1200. }
  1201. /*No:CALL_INFIX_OR_ELSE.is_current*/
  1202. void r278make(T278* C,T0* a1,T0* a2,T0* a3){
  1203. T0* _eal=NULL;
  1204. /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
  1205. r683add_position(a2);
  1206. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
  1207. r683fatal_error(((T683*)(oBC364eh)),b1);
  1208. }/*]*/
  1209. }
  1210. /*FI*/{T454*n=malloc(sizeof(*n));
  1211. *n=M454;
  1212. r454make(n,r278operator(),a2);
  1213. C->_feature_name=(T0*)n;
  1214. }
  1215. {T431*n=malloc(sizeof(*n));
  1216. *n=M431;
  1217. /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
  1218. /*]*/
  1219. _eal=(T0*)n;
  1220. }
  1221. r278make_call_1(C,a1,(((T278*)C))->_feature_name/*24*/,_eal);
  1222. }
  1223. void r278print_as_target(T278* C){
  1224. r238put_character(((T238*)(oBC364fmt)),'\50');
  1225. r278pretty_print(C);
  1226. r238put_character(((T238*)(oBC364fmt)),'\51');
  1227. r238put_character(((T238*)(oBC364fmt)),'\56');
  1228. }
  1229. /*No:CALL_INFIX_OR_ELSE.nb_errors*/
  1230. /*No:CALL_INFIX_OR_ELSE.feature_name*/
  1231. /*No:CALL_INFIX_OR_ELSE.fz_iinaiv*/
  1232. /*No:CALL_INFIX_OR_ELSE.run_feature*/
  1233. /*No:CALL_INFIX_OR_ELSE.start_position*/
  1234. /*No:CALL_INFIX_OR_ELSE.us_or_else*/
  1235. /*No:CALL_INFIX_OR_ELSE.target*/
  1236. /*No:CALL_INFIX_OR_ELSE.precedence*/
  1237. T0* r278to_runnable(T278* C,T0* a1){
  1238. T0* R=NULL;
  1239. T0* _tla=NULL;
  1240. T0* _a=NULL;
  1241. /*IF*/if (((((T278*)C))->_current_type/*4*/)==((void*)(NULL))) {
  1242. r278to_runnable_0(C,a1);
  1243. _a=r431to_runnable(((T431*)((((T278*)C))->_arguments/*20*/)),a1);
  1244. /*IF*/if ((_a)==((void*)(NULL))) {
  1245. r278error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T278*)C))->_arguments/*20*/)))/*)*/),((T0*)ms55_470));
  1246. }
  1247. else {
  1248. C->_arguments=_a;
  1249. }
  1250. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1251. r431match_with(((T431*)((((T278*)C))->_arguments/*20*/)),(((T278*)C))->_run_feature/*12*/);
  1252. }
  1253. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1254. _tla=(((T278*)C))->_result_type/*16*/;
  1255. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  1256. case 239: 
  1257. break;
  1258. default:
  1259. _tla=NULL;
  1260. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  1261. C->_result_type=X291run_type(X662result_type(/*(IRF4.6arg1*/r431first(((T431*)((((T278*)C))->_arguments/*20*/)))/*)*/));
  1262. }
  1263. /*FI*/}
  1264. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1265. R=(T0*)C;
  1266. }
  1267. /*FI*/}
  1268. else {
  1269. R=r278twin(C);
  1270. /*[IRF3.3set_current_type*/((((T278*)(((T278*)R))))->_current_type)=(NULL);
  1271. /*]*/
  1272. R=r278to_runnable(((T278*)R),a1);
  1273. }
  1274. /*FI*/return R;
  1275. }
  1276. void r278bracketed_pretty_print(T278* C){
  1277. r238put_character(((T238*)(oBC364fmt)),'\50');
  1278. r278pretty_print(C);
  1279. r238put_character(((T238*)(oBC364fmt)),'\51');
  1280. }
  1281. /*No:CALL_INFIX_OR_ELSE.result_type*/
  1282. T0* r278twin(T278* C){
  1283. T0* R=NULL;
  1284. R=malloc(sizeof(*C));
  1285. *((T278*)R)=*C;
  1286. return R;
  1287. }
  1288. /*No:CALL_INFIX_OR_ELSE.set_current_type*/
  1289. T0* r278operator(void){
  1290. T0* R=NULL;
  1291. R=((T0*)ms42_473);
  1292. return R;
  1293. }
  1294. /*No:CALL_INFIX_OR_ELSE.atomic_precedence*/
  1295. void r278pretty_print(T278* C){
  1296. /*IF*/if ((X662precedence((((T278*)C))->_target/*8*/))==(13)) {
  1297. X662pretty_print((((T278*)C))->_target/*8*/);
  1298. r278print_op(C);
  1299. /*IF*/if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T278*)C))->_arguments/*20*/)))/*)*/))==(13)) {
  1300. X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T278*)C))->_arguments/*20*/)))/*)*/);
  1301. }
  1302.  else if ((4)>=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T278*)C))->_arguments/*20*/)))/*)*/))) {
  1303. X662bracketed_pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T278*)C))->_arguments/*20*/)))/*)*/);
  1304. }
  1305. else {
  1306. X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T278*)C))->_arguments/*20*/)))/*)*/);
  1307. }
  1308. /*FI*/}
  1309.  else if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T278*)C))->_arguments/*20*/)))/*)*/))==(13)) {
  1310. /*IF*/if ((X662precedence((((T278*)C))->_target/*8*/))>=(4)) {
  1311. X662bracketed_pretty_print((((T278*)C))->_target/*8*/);
  1312. }
  1313. else {
  1314. X662pretty_print((((T278*)C))->_target/*8*/);
  1315. }
  1316. /*FI*/r278print_op(C);
  1317. X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T278*)C))->_arguments/*20*/)))/*)*/);
  1318. }
  1319.  else if ((4)<=(X662precedence((((T278*)C))->_target/*8*/))) {
  1320. X662bracketed_pretty_print((((T278*)C))->_target/*8*/);
  1321. r278print_op(C);
  1322. /*IF*/if ((4)<=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T278*)C))->_arguments/*20*/)))/*)*/))) {
  1323. X662bracketed_pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T278*)C))->_arguments/*20*/)))/*)*/);
  1324. }
  1325. else {
  1326. X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T278*)C))->_arguments/*20*/)))/*)*/);
  1327. }
  1328. /*FI*/}
  1329. else {
  1330. X662pretty_print((((T278*)C))->_target/*8*/);
  1331. r278print_op(C);
  1332. X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T278*)C))->_arguments/*20*/)))/*)*/);
  1333. }
  1334. /*FI*/}
  1335. void r278print_op(T278* C){
  1336. r238put_character(((T238*)(oBC364fmt)),'\40');
  1337. /*[IRF3.6pretty_print*/{T454* C1=((T454*)((((T278*)C))->_feature_name/*24*/));
  1338. r238put_string(((T238*)(oBC364fmt)),(((T454*)C1))->_to_string/*4*/);
  1339. }/*]*/
  1340. r238put_character(((T238*)(oBC364fmt)),'\40');
  1341. }
  1342. /*No:CALL_INFIX_OR_ELSE.current_type*/
  1343. void r278make_call_1(T278* C,T0* a1,T0* a2,T0* a3){
  1344. C->_target=a1;
  1345. C->_feature_name=a2;
  1346. C->_arguments=a3;
  1347. }
  1348. /*No:CALL_INFIX_OR_ELSE.is_manifest_string*/
  1349. /*No:CALL_INFIX_OR_ELSE.is_void*/
  1350. void r278to_runnable_0(T278* C,T0* a1){
  1351. C->_current_type=a1;
  1352. r278cpc_to_runnable(C,a1);
  1353. C->_result_type=/*X496*/((T0*)(((T808*)((T808*)((((T278*)C))->_run_feature/*12*/))))->_result_type/*24*/);
  1354. /*IF*/if (((((T278*)C))->_result_type/*16*/)==((void*)(NULL))) {
  1355. r683add_position(X496start_position((((T278*)C))->_run_feature/*12*/));
  1356. r278error((((T454*)((T454*)((((T278*)C))->_feature_name/*24*/))))->_start_position/*8*/,((T0*)ms1_295));
  1357. }
  1358.  else if (X291is_like_current((((T278*)C))->_result_type/*16*/)) {
  1359. C->_result_type=X662result_type((((T278*)C))->_target/*8*/);
  1360. }
  1361. /*FI*/}
  1362. void r278cpc_to_runnable(T278* C,T0* a1){
  1363. T0* _rc=NULL;
  1364. T0* _t=NULL;
  1365. _t=X662to_runnable((((T278*)C))->_target/*8*/,a1);
  1366. /*IF*/if ((_t)==((void*)(NULL))) {
  1367. r683add_position(X662start_position((((T278*)C))->_target/*8*/));
  1368. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  1369. r683fatal_error(((T683*)(oBC364eh)),b1);
  1370. }/*]*/
  1371. }
  1372. /*FI*/C->_target=_t;
  1373. _rc=X291run_class(X662result_type((((T278*)C))->_target/*8*/));
  1374. C->_run_feature=r368get_rf(((T368*)_rc),(T0*)C);
  1375. r576update((((T278*)C))->_target/*8*/,(((T278*)C))->_run_feature/*12*/);
  1376. }
  1377. void r278error(T0* a1,T0* a2){
  1378. r683add_position(a1);
  1379. r683error(((T683*)(oBC364eh)),a2);
  1380. }
  1381. /*No:CALL_INFIX_OR_ELSE.fatal_error*/
  1382. /*No:CALL_INFIX_OR_ELSE.fz_bad_argument*/
  1383. /*No:CALL_INFIX_OR_ELSE.arg1*/
  1384. T0*oBC670std_fr1=NULL;
  1385. int r670is_readable(T0* a1){
  1386. int R=0;
  1387. r675connect_to(((T675*)(oBC670std_fr1)),a1);
  1388. R=/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC670std_fr1))))->_path/*4*/)!=(NULL)/*)*/;
  1389. /*IF*/if (R) {
  1390. r675disconnect(((T675*)(oBC670std_fr1)));
  1391. }
  1392. /*FI*/return R;
  1393. }
  1394. /*No:FILE_TOOLS.rename_to*/
  1395. T0* r767add_comment(T767* C,T0* a1){
  1396. T0* R=NULL;
  1397. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1398. R=(T0*)C;
  1399. }
  1400. else {
  1401. {T529*n=malloc(sizeof(*n));
  1402. *n=M529;
  1403. r529make(n,(T0*)C,a1);
  1404. R=(T0*)n;
  1405. }
  1406. }
  1407. /*FI*/return R;
  1408. }
  1409. int r767to_integer(T767* C){
  1410. int R=0;
  1411. T0* _rf1=NULL;
  1412. _rf1=(((T767*)C))->_run_feature/*12*/;
  1413. if(NULL!=(_rf1))switch(((T0*)_rf1)->id) {
  1414. case 808: 
  1415. break;
  1416. default:
  1417. _rf1=NULL;
  1418. };/*IF*/if ((_rf1)==((void*)(NULL))) {
  1419. r767error(/*(IRF4.6start_position*/(((T406*)((T406*)((((T767*)C))->_feature_name/*20*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  1420. }
  1421. else {
  1422. R=X662to_integer((((T808*)((T808*)_rf1)))->_value/*36*/);
  1423. }
  1424. /*FI*/return R;
  1425. }
  1426. int r767is_a(T767* C,T0* a1){
  1427. int R=0;
  1428. R=X291is_a(X291run_type((((T767*)C))->_result_type/*16*/),X291run_type(X662result_type(a1)));
  1429. /*IF*/if (!(R)) {
  1430. r683add_position(/*(IRF4.6start_position*/(((T406*)((T406*)((((T767*)C))->_feature_name/*20*/))))->_start_position/*8*//*)*/);
  1431. r767error(X662start_position(a1),((T0*)ms4_662));
  1432. }
  1433. /*FI*/return R;
  1434. }
  1435. /*No:CALL_PREFIX_PLUS.is_current*/
  1436. void r767make(T767* C,T0* a1,T0* a2){
  1437. {T406*n=malloc(sizeof(*n));
  1438. *n=M406;
  1439. r406make(n,r767operator(),a1);
  1440. C->_feature_name=(T0*)n;
  1441. }
  1442. r767make_call0(C,a2,(((T767*)C))->_feature_name/*20*/);
  1443. }
  1444. void r767print_as_target(T767* C){
  1445. r238put_character(((T238*)(oBC364fmt)),'\50');
  1446. r767pretty_print(C);
  1447. r238put_character(((T238*)(oBC364fmt)),'\51');
  1448. r238put_character(((T238*)(oBC364fmt)),'\56');
  1449. }
  1450. /*No:CALL_PREFIX_PLUS.nb_errors*/
  1451. /*No:CALL_PREFIX_PLUS.feature_name*/
  1452. /*No:CALL_PREFIX_PLUS.fz_iinaiv*/
  1453. /*No:CALL_PREFIX_PLUS.run_feature*/
  1454. /*No:CALL_PREFIX_PLUS.start_position*/
  1455. /*No:CALL_PREFIX_PLUS.target*/
  1456. /*No:CALL_PREFIX_PLUS.precedence*/
  1457. T0* r767to_runnable(T767* C,T0* a1){
  1458. T0* R=NULL;
  1459. /*IF*/if (((((T767*)C))->_current_type/*4*/)==((void*)(NULL))) {
  1460. r767to_runnable_0(C,a1);
  1461. /*IF*/if (((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0))&&((X496arg_count((((T767*)C))->_run_feature/*12*/))>(0))) {
  1462. r683add_position((((T406*)((T406*)((((T767*)C))->_feature_name/*20*/))))->_start_position/*8*/);
  1463. r767error(X496start_position((((T767*)C))->_run_feature/*12*/),((T0*)ms1_752));
  1464. }
  1465. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1466. R=(T0*)C;
  1467. }
  1468. /*FI*/}
  1469. else {
  1470. R=r767twin(C);
  1471. /*[IRF3.3set_current_type*/((((T767*)(((T767*)R))))->_current_type)=(NULL);
  1472. /*]*/
  1473. R=r767to_runnable(((T767*)R),a1);
  1474. }
  1475. /*FI*/return R;
  1476. }
  1477. void r767bracketed_pretty_print(T767* C){
  1478. r238put_character(((T238*)(oBC364fmt)),'\50');
  1479. r767pretty_print(C);
  1480. r238put_character(((T238*)(oBC364fmt)),'\51');
  1481. }
  1482. /*No:CALL_PREFIX_PLUS.result_type*/
  1483. T0* r767twin(T767* C){
  1484. T0* R=NULL;
  1485. R=malloc(sizeof(*C));
  1486. *((T767*)R)=*C;
  1487. return R;
  1488. }
  1489. /*No:CALL_PREFIX_PLUS.set_current_type*/
  1490. T0* r767operator(void){
  1491. T0* R=NULL;
  1492. R=((T0*)ms43_473);
  1493. return R;
  1494. }
  1495. void r767pretty_print(T767* C){
  1496. /*[IRF3.6pretty_print*/{T406* C1=((T406*)((((T767*)C))->_feature_name/*20*/));
  1497. r238put_string(((T238*)(oBC364fmt)),(((T406*)C1))->_to_string/*4*/);
  1498. }/*]*/
  1499. r238put_character(((T238*)(oBC364fmt)),'\40');
  1500. /*IF*/if ((X662precedence((((T767*)C))->_target/*8*/))<(11)) {
  1501. r238put_character(((T238*)(oBC364fmt)),'\50');
  1502. X662pretty_print((((T767*)C))->_target/*8*/);
  1503. r238put_character(((T238*)(oBC364fmt)),'\51');
  1504. }
  1505. else {
  1506. X662pretty_print((((T767*)C))->_target/*8*/);
  1507. }
  1508. /*FI*/}
  1509. /*No:CALL_PREFIX_PLUS.current_type*/
  1510. /*No:CALL_PREFIX_PLUS.is_manifest_string*/
  1511. /*No:CALL_PREFIX_PLUS.is_void*/
  1512. void r767to_runnable_0(T767* C,T0* a1){
  1513. C->_current_type=a1;
  1514. r767cpc_to_runnable(C,a1);
  1515. C->_result_type=/*X496*/((T0*)(((T808*)((T808*)((((T767*)C))->_run_feature/*12*/))))->_result_type/*24*/);
  1516. /*IF*/if (((((T767*)C))->_result_type/*16*/)==((void*)(NULL))) {
  1517. r683add_position(X496start_position((((T767*)C))->_run_feature/*12*/));
  1518. r767error((((T406*)((T406*)((((T767*)C))->_feature_name/*20*/))))->_start_position/*8*/,((T0*)ms1_295));
  1519. }
  1520.  else if (X291is_like_current((((T767*)C))->_result_type/*16*/)) {
  1521. C->_result_type=X662result_type((((T767*)C))->_target/*8*/);
  1522. }
  1523. /*FI*/}
  1524. void r767cpc_to_runnable(T767* C,T0* a1){
  1525. T0* _rc=NULL;
  1526. T0* _t=NULL;
  1527. _t=X662to_runnable((((T767*)C))->_target/*8*/,a1);
  1528. /*IF*/if ((_t)==((void*)(NULL))) {
  1529. r683add_position(X662start_position((((T767*)C))->_target/*8*/));
  1530. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  1531. r683fatal_error(((T683*)(oBC364eh)),b1);
  1532. }/*]*/
  1533. }
  1534. /*FI*/C->_target=_t;
  1535. _rc=X291run_class(X662result_type((((T767*)C))->_target/*8*/));
  1536. C->_run_feature=r368get_rf(((T368*)_rc),(T0*)C);
  1537. r576update((((T767*)C))->_target/*8*/,(((T767*)C))->_run_feature/*12*/);
  1538. }
  1539. void r767make_call0(T767* C,T0* a1,T0* a2){
  1540. C->_target=a1;
  1541. C->_feature_name=a2;
  1542. }
  1543. void r767error(T0* a1,T0* a2){
  1544. r683add_position(a1);
  1545. r683error(((T683*)(oBC364eh)),a2);
  1546. }
  1547. /*No:CALL_PREFIX_PLUS.fatal_error*/
  1548. /*No:CALL_PREFIX_PLUS.us_plus*/
  1549. T0* r880add_comment(T880* C,T0* a1){
  1550. T0* R=NULL;
  1551. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1552. R=(T0*)C;
  1553. }
  1554.  else {/*AT*//*IF*/if ((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(1)) {
  1555. R=(T0*)C;
  1556. }
  1557. else {
  1558. {T46*n=malloc(sizeof(*n));
  1559. *n=M46;
  1560. r46make(n,(T0*)C,a1);
  1561. R=(T0*)n;
  1562. }
  1563. }
  1564. /*FI*/}
  1565. /*FI*/return R;
  1566. }
  1567. /*No:E_LOOP.fz_is_not_boolean*/
  1568. void r880make(T880* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6){
  1569. C->_start_position=a1;
  1570. C->_initialize=a2;
  1571. C->_invariant_clause=a3;
  1572. C->_variant_clause=a4;
  1573. C->_until_expression=a5;
  1574. C->_loop_body=a6;
  1575. }
  1576. /*No:E_LOOP.nb_errors*/
  1577. /*No:E_LOOP.start_position*/
  1578. /*No:E_LOOP.until_expression*/
  1579. T0* r880to_runnable(T880* C,T0* a1){
  1580. T0* R=NULL;
  1581. int _loop_check=0;
  1582. T0* _ue=NULL;
  1583. _loop_check=r590loop_check(((T590*)(oBC364run_control)));
  1584. /*IF*/if (((((T880*)C))->_run_compound/*4*/)==((void*)(NULL))) {
  1585. C->_run_compound=a1;
  1586. /*IF*/if (((((T880*)C))->_initialize/*12*/)!=((void*)(NULL))) {
  1587. C->_initialize=r592to_runnable(((T592*)((((T880*)C))->_initialize/*12*/)),r880current_type(C));
  1588. /*IF*/if (((((T880*)C))->_initialize/*12*/)==((void*)(NULL))) {
  1589. r880error((((T880*)C))->_start_position/*8*/,((T0*)ms4_880));
  1590. }
  1591. /*FI*/}
  1592. /*FI*//*IF*/if ((_loop_check)&&(((((T880*)C))->_invariant_clause/*16*/)!=((void*)(NULL)))) {
  1593. C->_invariant_clause=r213to_runnable(((T213*)((((T880*)C))->_invariant_clause/*16*/)),(((T592*)((T592*)a1)))->_current_type/*4*/);
  1594. /*IF*/if (((((T880*)C))->_invariant_clause/*16*/)==((void*)(NULL))) {
  1595. r880error((((T880*)C))->_start_position/*8*/,((T0*)ms5_880));
  1596. }
  1597. /*FI*/}
  1598. /*FI*//*IF*/if ((_loop_check)&&(((((T880*)C))->_variant_clause/*20*/)!=((void*)(NULL)))) {
  1599. C->_variant_clause=X856to_runnable((((T880*)C))->_variant_clause/*20*/,r880current_type(C));
  1600. /*IF*/if (((((T880*)C))->_variant_clause/*20*/)==((void*)(NULL))) {
  1601. r880error((((T880*)C))->_start_position/*8*/,((T0*)ms6_880));
  1602. }
  1603. /*FI*/}
  1604. /*FI*/_ue=X662to_runnable((((T880*)C))->_until_expression/*24*/,r880current_type(C));
  1605. /*IF*/if ((_ue)!=((void*)(NULL))) {
  1606. /*IF*/if (!(X291is_boolean(X662result_type(_ue)))) {
  1607. r880error(X662start_position(_ue),((T0*)ms7_880));
  1608. r683add_type(X662result_type(_ue),((T0*)ms73_470));
  1609. r683print_as_error(((T683*)(oBC364eh)));
  1610. }
  1611. /*FI*/C->_until_expression=_ue;
  1612. }
  1613. else {
  1614. r880error((((T880*)C))->_start_position/*8*/,((T0*)ms8_880));
  1615. }
  1616. /*FI*//*IF*/if (((((T880*)C))->_loop_body/*28*/)!=((void*)(NULL))) {
  1617. C->_loop_body=r592to_runnable(((T592*)((((T880*)C))->_loop_body/*28*/)),r880current_type(C));
  1618. /*IF*/if (((((T880*)C))->_loop_body/*28*/)==((void*)(NULL))) {
  1619. r880error((((T880*)C))->_start_position/*8*/,((T0*)ms9_880));
  1620. }
  1621. /*FI*/}
  1622. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1623. R=(T0*)C;
  1624. }
  1625. /*FI*/}
  1626. else {
  1627. {T880*n=malloc(sizeof(*n));
  1628. *n=M880;
  1629. r880make(n,(((T880*)C))->_start_position/*8*/,(((T880*)C))->_initialize/*12*/,(((T880*)C))->_invariant_clause/*16*/,(((T880*)C))->_variant_clause/*20*/,(((T880*)C))->_until_expression/*24*/,(((T880*)C))->_loop_body/*28*/);
  1630. R=(T0*)n;
  1631. }
  1632. R=r880to_runnable(((T880*)R),a1);
  1633. }
  1634. /*FI*/return R;
  1635. }
  1636. /*No:E_LOOP.variant_clause*/
  1637. /*No:E_LOOP.invariant_clause*/
  1638. /*No:E_LOOP.fz_from*/
  1639. /*No:E_LOOP.loop_body*/
  1640. /*No:E_LOOP.fz_loop*/
  1641. void r880pretty_print(T880* C){
  1642. int _semi_colon_flag=0;
  1643. r238indent(((T238*)(oBC364fmt)));
  1644. r238keyword(((T238*)(oBC364fmt)),((T0*)ms19_470));
  1645. /*IF*/if (((((T880*)C))->_initialize/*12*/)!=((void*)(NULL))) {
  1646. r592pretty_print(((T592*)((((T880*)C))->_initialize/*12*/)));
  1647. }
  1648. /*FI*//*IF*/if (((((T880*)C))->_invariant_clause/*16*/)!=((void*)(NULL))) {
  1649. r213pretty_print(((T213*)((((T880*)C))->_invariant_clause/*16*/)));
  1650. }
  1651. /*FI*//*IF*/if (((((T880*)C))->_variant_clause/*20*/)!=((void*)(NULL))) {
  1652. r238indent(((T238*)(oBC364fmt)));
  1653. r238keyword(((T238*)(oBC364fmt)),((T0*)ms51_470));
  1654. _semi_colon_flag=(((T238*)((T238*)(oBC364fmt))))->_semi_colon_flag/*25*/;
  1655. /*[IRF3.3set_semi_colon_flag*/((((T238*)(((T238*)(oBC364fmt)))))->_semi_colon_flag)=(0);
  1656. /*]*/
  1657. X856pretty_print((((T880*)C))->_variant_clause/*20*/);
  1658. /*[IRF3.3set_semi_colon_flag*/((((T238*)(((T238*)(oBC364fmt)))))->_semi_colon_flag)=(_semi_colon_flag);
  1659. /*]*/
  1660. }
  1661. /*FI*/r238indent(((T238*)(oBC364fmt)));
  1662. r238keyword(((T238*)(oBC364fmt)),((T0*)ms50_470));
  1663. r238level_incr(((T238*)(oBC364fmt)));
  1664. r238indent(((T238*)(oBC364fmt)));
  1665. /*[IRF3.3set_semi_colon_flag*/((((T238*)(((T238*)(oBC364fmt)))))->_semi_colon_flag)=(0);
  1666. /*]*/
  1667. X662pretty_print((((T880*)C))->_until_expression/*24*/);
  1668. r238level_decr(((T238*)(oBC364fmt)));
  1669. r238indent(((T238*)(oBC364fmt)));
  1670. r238keyword(((T238*)(oBC364fmt)),((T0*)ms32_470));
  1671. r238indent(((T238*)(oBC364fmt)));
  1672. /*IF*/if (((((T880*)C))->_loop_body/*28*/)!=((void*)(NULL))) {
  1673. r592pretty_print(((T592*)((((T880*)C))->_loop_body/*28*/)));
  1674. }
  1675. /*FI*/r238indent(((T238*)(oBC364fmt)));
  1676. r238keyword(((T238*)(oBC364fmt)),((T0*)ms10_880));
  1677. /*IF*/if (r238print_end_loop(((T238*)(oBC364fmt)))) {
  1678. r238put_end(((T238*)(oBC364fmt)),((T0*)ms32_470));
  1679. }
  1680. /*FI*/}
  1681. T0* r880current_type(T880* C){
  1682. T0* R=NULL;
  1683. /*IF*/if (((((T880*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
  1684. R=(((T592*)((T592*)((((T880*)C))->_run_compound/*4*/))))->_current_type/*4*/;
  1685. }
  1686. /*FI*/return R;
  1687. }
  1688. /*No:E_LOOP.run_compound*/
  1689. /*No:E_LOOP.fz_variant*/
  1690. void r880error(T0* a1,T0* a2){
  1691. r683add_position(a1);
  1692. r683error(((T683*)(oBC364eh)),a2);
  1693. }
  1694. /*No:E_LOOP.fz_until*/
  1695. /*No:E_LOOP.end_mark_comment*/
  1696. /*No:E_LOOP.initialize*/
  1697.  
  1698.