home *** CD-ROM | disk | FTP | other *** search
/ Amiga ACS 1998 #4 / amigaacscoverdisc1998-041998.iso / utilities / shareware / dev / ppcsmalleiffel / source.lha / bin_c / pretty17.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  44.5 KB  |  1,634 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. T0* r529add_comment(T529* C,T0* a1){
  10. T0* R=NULL;
  11. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  12. R=(T0*)C;
  13. }
  14. else {
  15. {T529*n=malloc(sizeof(*n));
  16. *n=M529;
  17. r529make(n,(T0*)C,a1);
  18. R=(T0*)n;
  19. }
  20. }
  21. /*FI*/return R;
  22. }
  23. int r529to_integer(T529* C){
  24. int R=0;
  25. r529error(r529start_position(C),((T0*)ms69_470));
  26. return R;
  27. }
  28. int r529is_a(T529* C,T0* a1){
  29. int R=0;
  30. R=X291is_a(X291run_type(r529result_type(C)),X291run_type(X662result_type(a1)));
  31. /*IF*/if (!(R)) {
  32. r683add_position(r529start_position(C));
  33. r529error(X662start_position(a1),((T0*)ms4_662));
  34. }
  35. /*FI*/return R;
  36. }
  37. /*No:EXPRESSION_WITH_COMMENT.is_current*/
  38. void r529make(T529* C,T0* a1,T0* a2){
  39. C->_expression=a1;
  40. C->_comment=a2;
  41. }
  42. void r529print_as_target(T529* C){
  43. X662print_as_target((((T529*)C))->_expression/*8*/);
  44. }
  45. /*No:EXPRESSION_WITH_COMMENT.fz_iinaiv*/
  46. /*No:EXPRESSION_WITH_COMMENT.expression*/
  47. T0* r529start_position(T529* C){
  48. T0* R=NULL;
  49. R=X662start_position((((T529*)C))->_expression/*8*/);
  50. return R;
  51. }
  52. int r529precedence(T529* C){
  53. int R=0;
  54. R=X662precedence((((T529*)C))->_expression/*8*/);
  55. return R;
  56. }
  57. /*No:EXPRESSION_WITH_COMMENT.comment*/
  58. T0* r529to_runnable(T529* C,T0* a1){
  59. T0* R=NULL;
  60. /*IF*/if (((((T529*)C))->_current_type/*4*/)==((void*)(NULL))) {
  61. C->_current_type=a1;
  62. C->_expression=X662to_runnable((((T529*)C))->_expression/*8*/,a1);
  63. R=(T0*)C;
  64. }
  65. else {
  66. R=r529twin(C);
  67. /*[IRF3.3set_current_type*/((((T529*)(((T529*)R))))->_current_type)=(NULL);
  68. /*]*/
  69. R=r529to_runnable(((T529*)R),a1);
  70. }
  71. /*FI*/return R;
  72. }
  73. void r529bracketed_pretty_print(T529* C){
  74. X662pretty_print((((T529*)C))->_expression/*8*/);
  75. r393pretty_print(((T393*)((((T529*)C))->_comment/*12*/)));
  76. }
  77. T0* r529result_type(T529* C){
  78. T0* R=NULL;
  79. R=X662result_type((((T529*)C))->_expression/*8*/);
  80. return R;
  81. }
  82. T0* r529twin(T529* C){
  83. T0* R=NULL;
  84. R=malloc(sizeof(*C));
  85. *((T529*)R)=*C;
  86. return R;
  87. }
  88. /*No:EXPRESSION_WITH_COMMENT.set_current_type*/
  89. void r529pretty_print(T529* C){
  90. X662pretty_print((((T529*)C))->_expression/*8*/);
  91. r393pretty_print(((T393*)((((T529*)C))->_comment/*12*/)));
  92. }
  93. /*No:EXPRESSION_WITH_COMMENT.current_type*/
  94. /*No:EXPRESSION_WITH_COMMENT.is_manifest_string*/
  95. /*No:EXPRESSION_WITH_COMMENT.is_void*/
  96. void r529error(T0* a1,T0* a2){
  97. r683add_position(a1);
  98. r683error(((T683*)(oBC364eh)),a2);
  99. }
  100. T0* r436add_comment(T436* C,T0* a1){
  101. T0* R=NULL;
  102. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  103. R=(T0*)C;
  104. }
  105. else {
  106. {T529*n=malloc(sizeof(*n));
  107. *n=M529;
  108. r529make(n,(T0*)C,a1);
  109. R=(T0*)n;
  110. }
  111. }
  112. /*FI*/return R;
  113. }
  114. int r436to_integer(T436* C){
  115. int R=0;
  116. r436error((((T436*)C))->_start_position/*8*/,((T0*)ms69_470));
  117. return R;
  118. }
  119. int r436is_a(T436* C,T0* a1){
  120. int R=0;
  121. R=r709is_a(((T709*)((((T709*)((T709*)((((T436*)C))->_result_type/*16*/))))->_run_type/*16*/)),X291run_type(X662result_type(a1)));
  122. /*IF*/if (!(R)) {
  123. r683add_position((((T436*)C))->_start_position/*8*/);
  124. r436error(X662start_position(a1),((T0*)ms4_662));
  125. }
  126. /*FI*/return R;
  127. }
  128. /*No:MANIFEST_ARRAY.is_current*/
  129. void r436make(T436* C,T0* a1,T0* a2){
  130. C->_start_position=a1;
  131. C->_list=a2;
  132. }
  133. void r436print_as_target(T436* C){
  134. r238put_character(((T238*)(oBC364fmt)),'\50');
  135. r436pretty_print(C);
  136. r238put_character(((T238*)(oBC364fmt)),'\51');
  137. r238put_character(((T238*)(oBC364fmt)),'\56');
  138. }
  139. /*No:MANIFEST_ARRAY.nb_errors*/
  140. /*No:MANIFEST_ARRAY.fz_iinaiv*/
  141. /*No:MANIFEST_ARRAY.fz_c_shift_left*/
  142. T0* r436type_any(void){
  143. if (fBC364type_any==0){
  144. T0* R=NULL;
  145. fBC364type_any=1;
  146. {T669*n=malloc(sizeof(*n));
  147. *n=M669;
  148. r669make(n,NULL);
  149. R=(T0*)n;
  150. }
  151. oBC364type_any=R;}
  152. return oBC364type_any;}
  153. /*No:MANIFEST_ARRAY.start_position*/
  154. /*No:MANIFEST_ARRAY.precedence*/
  155. T0* r436to_runnable(T436* C,T0* a1){
  156. T0* R=NULL;
  157. T0* _t=NULL;
  158. T0* _e=NULL;
  159. int _i=0;
  160. /*IF*/if (((((T436*)C))->_current_type/*4*/)==((void*)(NULL))) {
  161. C->_current_type=a1;
  162. /*IF*/if (((((T436*)C))->_list/*12*/)==((void*)(NULL))) {
  163. _t=r436type_any();
  164. }
  165. else {
  166. _i=/*X96*/((int)(((T96*)((T96*)((((T436*)C))->_list/*12*/))))->_upper/*12*/);
  167. while (!((_i)==(0))) {
  168. _e=X662to_runnable(/*X96*/((T0*)r96item(((T96*)((((T436*)C))->_list/*12*/)),_i)),a1);
  169. /*IF*/if ((_e)==((void*)(NULL))) {
  170. r683add_position((((T436*)C))->_start_position/*8*/);
  171. r436error(X662start_position(/*X96*/((T0*)r96item(((T96*)((((T436*)C))->_list/*12*/)),_i))),((T0*)ms1_436));
  172. _i=0;
  173. }
  174. else {
  175. /*X96*//*[IRF3.6put*/{T96* C1=((T96*)((((T436*)C))->_list/*12*/));
  176. T0* b1=_e;
  177. int b2=_i;
  178. ((((T96*)C1))->_storage/*4*/)[(b2)-((((T96*)C1))->_lower/*16*/)]=(b1);
  179. }/*]*/
  180. /*IF*/if ((_t)==((void*)(NULL))) {
  181. _t=X662result_type(_e);
  182. }
  183. else {
  184. _t=X291smallest_ancestor(_t,X662result_type(_e));
  185. }
  186. /*FI*/_i=(_i)-(1);
  187. }
  188. /*FI*/}
  189. }
  190. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  191. {T709*n=malloc(sizeof(*n));
  192. *n=M709;
  193. r709make(n,(((T436*)C))->_start_position/*8*/,X291run_type(_t));
  194. C->_result_type=(T0*)n;
  195. }
  196. C->_result_type=r709to_runnable(((T709*)((((T436*)C))->_result_type/*16*/)),(((T436*)C))->_current_type/*4*/);
  197. r368set_at_run_time(((T368*)(r709run_class(((T709*)((((T436*)C))->_result_type/*16*/))))));
  198. R=(T0*)C;
  199. /*IF*/if ((X291is_reference(_t))&&(((((T436*)C))->_list/*12*/)!=((void*)(NULL)))) {
  200. _i=/*X96*/((int)(((T96*)((T96*)((((T436*)C))->_list/*12*/))))->_upper/*12*/);
  201. while (!((_i)==(0))) {
  202. _t=X662result_type(/*X96*/((T0*)r96item(((T96*)((((T436*)C))->_list/*12*/)),_i)));
  203. /*IF*/if (X291is_expanded(_t)) {
  204. X291used_as_reference(_t);
  205. }
  206. /*FI*/_i=(_i)-(1);
  207. }
  208. }
  209. /*FI*/}
  210. /*FI*/}
  211. else {
  212. /*IF*/if (((((T436*)C))->_list/*12*/)==((void*)(NULL))) {
  213. {T436*n=malloc(sizeof(*n));
  214. *n=M436;
  215. r436make(n,(((T436*)C))->_start_position/*8*/,NULL);
  216. R=(T0*)n;
  217. }
  218. }
  219. else {
  220. {T436*n=malloc(sizeof(*n));
  221. *n=M436;
  222. r436make(n,(((T436*)C))->_start_position/*8*/,X96twin((((T436*)C))->_list/*12*/));
  223. R=(T0*)n;
  224. }
  225. }
  226. /*FI*/R=r436to_runnable(((T436*)R),a1);
  227. }
  228. /*FI*/return R;
  229. }
  230. void r436bracketed_pretty_print(T436* C){
  231. r238put_character(((T238*)(oBC364fmt)),'\50');
  232. r436pretty_print(C);
  233. r238put_character(((T238*)(oBC364fmt)),'\51');
  234. }
  235. /*No:MANIFEST_ARRAY.fz_c_shift_right*/
  236. /*No:MANIFEST_ARRAY.result_type*/
  237. void r436pretty_print(T436* C){
  238. int _i=0;
  239. r238put_string(((T238*)(oBC364fmt)),((T0*)ms95_470));
  240. r238level_incr(((T238*)(oBC364fmt)));
  241. /*IF*/if (((((T436*)C))->_list/*12*/)!=((void*)(NULL))) {
  242. _i=1;
  243. while (!((_i)>(/*X96*/((int)(((T96*)((T96*)((((T436*)C))->_list/*12*/))))->_upper/*12*/)))) {
  244. X662pretty_print(/*X96*/((T0*)r96item(((T96*)((((T436*)C))->_list/*12*/)),_i)));
  245. _i=(_i)+(1);
  246. /*IF*/if ((_i)<=(/*X96*/((int)(((T96*)((T96*)((((T436*)C))->_list/*12*/))))->_upper/*12*/))) {
  247. r238put_character(((T238*)(oBC364fmt)),'\54');
  248. }
  249. /*FI*/}
  250. }
  251. /*FI*/r238put_string(((T238*)(oBC364fmt)),((T0*)ms96_470));
  252. r238level_decr(((T238*)(oBC364fmt)));
  253. }
  254. /*No:MANIFEST_ARRAY.list*/
  255. /*No:MANIFEST_ARRAY.current_type*/
  256. /*No:MANIFEST_ARRAY.is_manifest_string*/
  257. /*No:MANIFEST_ARRAY.is_void*/
  258. void r436error(T0* a1,T0* a2){
  259. r683add_position(a1);
  260. r683error(((T683*)(oBC364eh)),a2);
  261. }
  262. void r644get_started(T644* C,T0* a1){
  263. T0* _rp2=NULL;
  264. T0* _rp1=NULL;
  265. int _j=0;
  266. int _i=0;
  267. _i=(((T552*)((T552*)((((T644*)C))->_list/*0*/))))->_upper/*8*/;
  268. while (!((_i)==(0))) {
  269. _rp1=r552item(((T552*)((((T644*)C))->_list/*0*/)),_i);
  270. /*IF*/if (!(r605has(((T605*)a1),(((T498*)((T498*)_rp1)))->_old_name/*0*/))) {
  271. r683add_position(X776start_position((((T498*)((T498*)_rp1)))->_old_name/*0*/));
  272. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms3_644);
  273. r683fatal_error(((T683*)(oBC364eh)),b1);
  274. }/*]*/
  275. }
  276. /*FI*/_i=(_i)-(1);
  277. _j=_i;
  278. while (!((_j)==(0))) {
  279. _rp2=r552item(((T552*)((((T644*)C))->_list/*0*/)),_j);
  280. /*IF*/if ((X776to_key((((T498*)((T498*)_rp2)))->_old_name/*0*/))==((void*)(X776to_key((((T498*)((T498*)_rp1)))->_old_name/*0*/)))) {
  281. r683add_position(X776start_position((((T498*)((T498*)_rp1)))->_old_name/*0*/));
  282. r683add_position(X776start_position((((T498*)((T498*)_rp2)))->_old_name/*0*/));
  283. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms4_644);
  284. r683fatal_error(((T683*)(oBC364eh)),b1);
  285. }/*]*/
  286. }
  287. /*FI*/_j=(_j)-(1);
  288. }
  289. }
  290. }
  291. int r644affect(T644* C,T0* a1){
  292. int R=0;
  293. T0* _fn_to_key=NULL;
  294. T0* _rp=NULL;
  295. int _i=0;
  296. _i=(((T552*)((T552*)((((T644*)C))->_list/*0*/))))->_upper/*8*/;
  297. while (!((R)||((_i)==(0)))) {
  298. _rp=r552item(((T552*)((((T644*)C))->_list/*0*/)),_i);
  299. _fn_to_key=X776to_key(a1);
  300. /*IF*/if (((X776to_key((((T498*)((T498*)_rp)))->_new_name/*4*/))==((void*)(_fn_to_key)))||((X776to_key((((T498*)((T498*)_rp)))->_old_name/*0*/))==((void*)(_fn_to_key)))) {
  301. R=1;
  302. }
  303. else {
  304. _i=(_i)-(1);
  305. }
  306. /*FI*/}
  307. return R;
  308. }
  309. /*No:RENAME_LIST.make*/
  310. T0* r644to_new_name(T644* C,T0* a1){
  311. T0* R=NULL;
  312. T0* _fn_to_key=NULL;
  313. int _i=0;
  314. _i=1;
  315. _fn_to_key=X776to_key(a1);
  316. while (!(((R)!=((void*)(NULL)))||((_i)>((((T552*)((T552*)((((T644*)C))->_list/*0*/))))->_upper/*8*/)))) {
  317. /*IF*/if ((X776to_key((((T498*)((T498*)(r552item(((T552*)((((T644*)C))->_list/*0*/)),_i)))))->_old_name/*0*/))==((void*)(_fn_to_key))) {
  318. R=(((T498*)((T498*)(r552item(((T552*)((((T644*)C))->_list/*0*/)),_i)))))->_new_name/*4*/;
  319. }
  320. /*FI*/_i=(_i)+(1);
  321. }
  322. /*IF*/if ((R)==((void*)(NULL))) {
  323. R=a1;
  324. }
  325. /*FI*/return R;
  326. }
  327. T0* r644to_old_name(T644* C,T0* a1){
  328. T0* R=NULL;
  329. T0* _fn_to_key=NULL;
  330. int _i=0;
  331. _i=1;
  332. _fn_to_key=X776to_key(a1);
  333. while (!(((R)!=((void*)(NULL)))||((_i)>((((T552*)((T552*)((((T644*)C))->_list/*0*/))))->_upper/*8*/)))) {
  334. /*IF*/if ((X776to_key((((T498*)((T498*)(r552item(((T552*)((((T644*)C))->_list/*0*/)),_i)))))->_new_name/*4*/))==((void*)(_fn_to_key))) {
  335. R=(((T498*)((T498*)(r552item(((T552*)((((T644*)C))->_list/*0*/)),_i)))))->_old_name/*0*/;
  336. }
  337. /*FI*/_i=(_i)+(1);
  338. }
  339. /*IF*/if ((R)==((void*)(NULL))) {
  340. R=a1;
  341. }
  342. /*FI*/return R;
  343. }
  344. void r644pretty_print(T644* C){
  345. int _i=0;
  346. int _icount=0;
  347. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
  348. /*]*/
  349. r238indent(((T238*)(oBC364fmt)));
  350. r238keyword(((T238*)(oBC364fmt)),((T0*)ms1_644));
  351. _i=1;
  352. while (!((_i)>((((T552*)((T552*)((((T644*)C))->_list/*0*/))))->_upper/*8*/))) {
  353. r498pretty_print(((T498*)(r552item(((T552*)((((T644*)C))->_list/*0*/)),_i))));
  354. _i=(_i)+(1);
  355. _icount=(_icount)+(1);
  356. /*IF*/if ((_i)<=((((T552*)((T552*)((((T644*)C))->_list/*0*/))))->_upper/*8*/)) {
  357. r238put_string(((T238*)(oBC364fmt)),((T0*)ms2_644));
  358. /*IF*/if ((_icount)>(3)) {
  359. _icount=0;
  360. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(3);
  361. /*]*/
  362. r238indent(((T238*)(oBC364fmt)));
  363. }
  364. /*FI*/}
  365. /*FI*/}
  366. }
  367. /*No:RENAME_LIST.list*/
  368. /*No:RENAME_LIST.add_last*/
  369. /*No:RENAME_LIST.fatal_error*/
  370. int r388has_creation(T388* C,T0* a1){
  371. int R=0;
  372. r683add_position(X776start_position(a1));
  373. r388error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T388*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_84));
  374. return R;
  375. }
  376. /*No:TYPE_DOUBLE.is_anchored*/
  377. /*No:TYPE_DOUBLE.is_array*/
  378. int r388is_a(T388* C,T0* a1){
  379. int R=0;
  380. /*IF*/if (X291is_double(a1)) {
  381. R=1;
  382. }
  383. else {
  384. R=r605is_subclass_of(((T605*)(r388base_class(C))),X291base_class(a1));
  385. /*IF*/if (R) {
  386. r388used_as_reference();
  387. }
  388. /*FI*/}
  389. /*FI*//*IF*/if (!(R)) {
  390. r683add_type((T0*)C,((T0*)ms71_470));
  391. r683add_type(a1,((T0*)ms67_470));
  392. }
  393. /*FI*/return R;
  394. }
  395. /*No:TYPE_DOUBLE.run_type*/
  396. /*No:TYPE_DOUBLE.is_pointer*/
  397. /*No:TYPE_DOUBLE.us_double_ref*/
  398. /*No:TYPE_DOUBLE.is_string*/
  399. /*No:TYPE_DOUBLE.is_like_feature*/
  400. /*No:TYPE_DOUBLE.is_like_current*/
  401. void r388make(T388* C,T0* a1){
  402. {T451*n=malloc(sizeof(*n));
  403. *n=M451;
  404. r451make(n,((T0*)ms11_473),a1);
  405. C->_base_class_name=(T0*)n;
  406. }
  407. }
  408. /*No:TYPE_DOUBLE.us_item*/
  409. void r388load_ref(T0* a1){
  410. T0* _rf=NULL;
  411. T0* _rc=NULL;
  412. T0* _cn=NULL;
  413. {T451*n=malloc(sizeof(*n));
  414. *n=M451;
  415. r451make(n,a1,NULL);
  416. _cn=(T0*)n;
  417. }
  418. _rc=r605run_class(((T605*)(r451base_class(((T451*)_cn)))));
  419. r368set_at_run_time(((T368*)_rc));
  420. _rf=r368get_feature_with(((T368*)_rc),((T0*)ms86_473));
  421. }
  422. /*No:TYPE_DOUBLE.nb_errors*/
  423. int fBC388check_type=0;
  424. void r388check_type(T388* C){
  425. if (fBC388check_type==0){
  426. T0* _rc=NULL;
  427. T0* _bc=NULL;
  428. fBC388check_type=1;
  429. _bc=r388base_class(C);
  430. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  431. _rc=r388run_class(C);
  432. }
  433. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  434. /*IF*/if (!((((T605*)((T605*)_bc)))->_is_expanded/*20*/)) {
  435. r388error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T388*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_388));
  436. }
  437. /*FI*/}
  438. /*FI*/}}
  439. /*No:TYPE_DOUBLE.start_position*/
  440. /*No:TYPE_DOUBLE.fz_inako*/
  441. /*No:TYPE_DOUBLE.is_character*/
  442. T0* r388written_mark(void){
  443. T0* R=NULL;
  444. R=((T0*)ms11_473);
  445. return R;
  446. }
  447. T0* r388to_runnable(T388* C,T0* a1){
  448. T0* R=NULL;
  449. R=(T0*)C;
  450. r388check_type(C);
  451. return R;
  452. }
  453. /*No:TYPE_DOUBLE.is_run_type*/
  454. /*No:TYPE_DOUBLE.is_formal_generic*/
  455. T0* r388generic_list(T388* C){
  456. T0* R=NULL;
  457. r388fatal_error_generic_list(C);
  458. return R;
  459. }
  460. /*No:TYPE_DOUBLE.is_real*/
  461. /*No:TYPE_DOUBLE.is_bit*/
  462. void r388fatal_error_generic_list(T388* C){
  463. r683add_type((T0*)C,((T0*)ms12_291));
  464. r683print_as_fatal_error(((T683*)(oBC364eh)));
  465. }
  466. /*No:TYPE_DOUBLE.pretty_print*/
  467. T0* r388smallest_ancestor(T388* C,T0* a1){
  468. T0* R=NULL;
  469. T0* _rto=NULL;
  470. _rto=X291run_type(a1);
  471. /*IF*/if (X291is_integer(_rto)) {
  472. R=(T0*)C;
  473. }
  474.  else if (X291is_real(_rto)) {
  475. R=(T0*)C;
  476. }
  477.  else if (X291is_double(_rto)) {
  478. R=(T0*)C;
  479. }
  480. else {
  481. R=r657smallest_ancestor(((T657*)(r388type_double_ref())),_rto);
  482. }
  483. /*FI*/return R;
  484. }
  485. /*No:TYPE_DOUBLE.is_boolean*/
  486. /*No:TYPE_DOUBLE.is_double*/
  487. T0* r388run_class(T388* C){
  488. T0* R=NULL;
  489. R=r604run_class((T0*)C);
  490. return R;
  491. }
  492. T0* r388run_time_mark(void){
  493. T0* R=NULL;
  494. R=((T0*)ms11_473);
  495. return R;
  496. }
  497. int r388is_a_in(T388* C,T0* a1,T0* a2){
  498. int R=0;
  499. T0* _ct=NULL;
  500. T0* _t2=NULL;
  501. T0* _t1=NULL;
  502. /*IF*/if ((r388written_mark())==((void*)(X291written_mark(a1)))) {
  503. R=1;
  504. }
  505. else {
  506. _ct=(((T368*)((T368*)a2)))->_current_type/*0*/;
  507. _t1=r388to_runnable(C,_ct);
  508. _t2=X291to_runnable(a1,_ct);
  509. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  510. R=1;
  511. }
  512. else {
  513. R=X291is_a(_t1,_t2);
  514. }
  515. /*FI*/}
  516. /*FI*/return R;
  517. }
  518. T0* r388look_up_for(T388* C,T0* a1,T0* a2){
  519. T0* R=NULL;
  520. R=r605look_up_for(((T605*)(r388base_class(C))),a1,a2);
  521. return R;
  522. }
  523. /*No:TYPE_DOUBLE.expanded_initializer*/
  524. /*No:TYPE_DOUBLE.us_double*/
  525. /*No:TYPE_DOUBLE.fz_dot*/
  526. /*No:TYPE_DOUBLE.is_generic*/
  527. int fBC388used_as_reference=0;
  528. void r388used_as_reference(void){
  529. if (fBC388used_as_reference==0){
  530. fBC388used_as_reference=1;
  531. r388load_ref(((T0*)ms12_473));
  532. }}
  533. int fBC364type_double_ref=0;
  534. T0*oBC364type_double_ref=NULL;
  535. T0* r388type_double_ref(void){
  536. if (fBC364type_double_ref==0){
  537. T0* R=NULL;
  538. T0* _double_ref=NULL;
  539. fBC364type_double_ref=1;
  540. {T451*n=malloc(sizeof(*n));
  541. *n=M451;
  542. r451make(n,((T0*)ms12_473),NULL);
  543. _double_ref=(T0*)n;
  544. }
  545. {T657*n=malloc(sizeof(*n));
  546. *n=M657;
  547. /*[IRF3.3make*/((((T657*)(n)))->_base_class_name)=(_double_ref);
  548. /*]*/
  549. R=(T0*)n;
  550. }
  551. oBC364type_double_ref=R;}
  552. return oBC364type_double_ref;}
  553. /*No:TYPE_DOUBLE.is_reference*/
  554. void r388error(T0* a1,T0* a2){
  555. r683add_position(a1);
  556. r683error(((T683*)(oBC364eh)),a2);
  557. }
  558. T0* r388base_class(T388* C){
  559. T0* R=NULL;
  560. T0* _bcn=NULL;
  561. _bcn=(((T388*)C))->_base_class_name/*4*/;
  562. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  563. R=r451base_class(((T451*)_bcn));
  564. }
  565. else {
  566. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  567. r7append(((T7*)(oBC683explanation)),b1);
  568. }/*]*/
  569. r683add_type((T0*)C,((T0*)ms67_470));
  570. r683print_as_fatal_error(((T683*)(oBC364eh)));
  571. }
  572. /*FI*/return R;
  573. }
  574. /*No:TYPE_DOUBLE.is_any*/
  575. /*No:TYPE_DOUBLE.base_class_name*/
  576. /*No:TYPE_DOUBLE.is_expanded*/
  577. /*No:TYPE_DOUBLE.is_basic_eiffel_expanded*/
  578. /*No:TYPE_DOUBLE.is_none*/
  579. /*No:TYPE_DOUBLE.is_integer*/
  580. int r900has_creation(T900* C,T0* a1){
  581. int R=0;
  582. r683add_position(X776start_position(a1));
  583. r900error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T900*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_84));
  584. return R;
  585. }
  586. /*No:TYPE_POINTER.is_anchored*/
  587. /*No:TYPE_POINTER.is_array*/
  588. int r900is_a(T900* C,T0* a1){
  589. int R=0;
  590. /*IF*/if (X291is_pointer(a1)) {
  591. R=1;
  592. }
  593. else {
  594. R=r605is_subclass_of(((T605*)(r900base_class(C))),X291base_class(a1));
  595. /*IF*/if (R) {
  596. r900used_as_reference();
  597. }
  598. /*FI*/}
  599. /*FI*//*IF*/if (!(R)) {
  600. r683add_type((T0*)C,((T0*)ms1_900));
  601. r683add_type(a1,((T0*)ms67_470));
  602. }
  603. /*FI*/return R;
  604. }
  605. /*No:TYPE_POINTER.run_type*/
  606. /*No:TYPE_POINTER.is_pointer*/
  607. /*No:TYPE_POINTER.is_string*/
  608. /*No:TYPE_POINTER.is_like_feature*/
  609. /*No:TYPE_POINTER.is_like_current*/
  610. void r900make(T900* C,T0* a1){
  611. {T451*n=malloc(sizeof(*n));
  612. *n=M451;
  613. r451make(n,((T0*)ms21_473),a1);
  614. C->_base_class_name=(T0*)n;
  615. }
  616. }
  617. /*No:TYPE_POINTER.us_item*/
  618. void r900load_ref(T0* a1){
  619. T0* _rf=NULL;
  620. T0* _rc=NULL;
  621. T0* _cn=NULL;
  622. {T451*n=malloc(sizeof(*n));
  623. *n=M451;
  624. r451make(n,a1,NULL);
  625. _cn=(T0*)n;
  626. }
  627. _rc=r605run_class(((T605*)(r451base_class(((T451*)_cn)))));
  628. r368set_at_run_time(((T368*)_rc));
  629. _rf=r368get_feature_with(((T368*)_rc),((T0*)ms86_473));
  630. }
  631. /*No:TYPE_POINTER.nb_errors*/
  632. /*No:TYPE_POINTER.us_pointer*/
  633. int fBC364type_pointer_ref=0;
  634. T0*oBC364type_pointer_ref=NULL;
  635. T0* r900type_pointer_ref(void){
  636. if (fBC364type_pointer_ref==0){
  637. T0* R=NULL;
  638. T0* _pointer_ref=NULL;
  639. fBC364type_pointer_ref=1;
  640. {T451*n=malloc(sizeof(*n));
  641. *n=M451;
  642. r451make(n,((T0*)ms22_473),NULL);
  643. _pointer_ref=(T0*)n;
  644. }
  645. {T657*n=malloc(sizeof(*n));
  646. *n=M657;
  647. /*[IRF3.3make*/((((T657*)(n)))->_base_class_name)=(_pointer_ref);
  648. /*]*/
  649. R=(T0*)n;
  650. }
  651. oBC364type_pointer_ref=R;}
  652. return oBC364type_pointer_ref;}
  653. int fBC900check_type=0;
  654. void r900check_type(T900* C){
  655. if (fBC900check_type==0){
  656. T0* _rc=NULL;
  657. T0* _bc=NULL;
  658. fBC900check_type=1;
  659. _bc=r900base_class(C);
  660. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  661. _rc=r900run_class(C);
  662. }
  663. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  664. /*IF*/if (!((((T605*)((T605*)_bc)))->_is_expanded/*20*/)) {
  665. r900error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T900*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms3_900));
  666. }
  667. /*FI*/}
  668. /*FI*/}}
  669. /*No:TYPE_POINTER.start_position*/
  670. /*No:TYPE_POINTER.is_character*/
  671. T0* r900written_mark(void){
  672. T0* R=NULL;
  673. R=((T0*)ms21_473);
  674. return R;
  675. }
  676. T0* r900to_runnable(T900* C,T0* a1){
  677. T0* R=NULL;
  678. R=(T0*)C;
  679. r900check_type(C);
  680. return R;
  681. }
  682. /*No:TYPE_POINTER.is_run_type*/
  683. /*No:TYPE_POINTER.is_formal_generic*/
  684. T0* r900generic_list(T900* C){
  685. T0* R=NULL;
  686. r900fatal_error_generic_list(C);
  687. return R;
  688. }
  689. /*No:TYPE_POINTER.is_real*/
  690. /*No:TYPE_POINTER.us_pointer_ref*/
  691. /*No:TYPE_POINTER.is_bit*/
  692. void r900fatal_error_generic_list(T900* C){
  693. r683add_type((T0*)C,((T0*)ms12_291));
  694. r683print_as_fatal_error(((T683*)(oBC364eh)));
  695. }
  696. /*No:TYPE_POINTER.pretty_print*/
  697. T0* r900smallest_ancestor(T900* C,T0* a1){
  698. T0* R=NULL;
  699. T0* _rto=NULL;
  700. _rto=X291run_type(a1);
  701. /*IF*/if (X291is_pointer(_rto)) {
  702. R=(T0*)C;
  703. }
  704. else {
  705. R=r657smallest_ancestor(((T657*)(r900type_pointer_ref())),_rto);
  706. }
  707. /*FI*/return R;
  708. }
  709. /*No:TYPE_POINTER.is_boolean*/
  710. /*No:TYPE_POINTER.is_double*/
  711. T0* r900run_class(T900* C){
  712. T0* R=NULL;
  713. R=r604run_class((T0*)C);
  714. return R;
  715. }
  716. T0* r900run_time_mark(void){
  717. T0* R=NULL;
  718. R=((T0*)ms21_473);
  719. return R;
  720. }
  721. int r900is_a_in(T900* C,T0* a1,T0* a2){
  722. int R=0;
  723. T0* _ct=NULL;
  724. T0* _t2=NULL;
  725. T0* _t1=NULL;
  726. /*IF*/if ((r900written_mark())==((void*)(X291written_mark(a1)))) {
  727. R=1;
  728. }
  729. else {
  730. _ct=(((T368*)((T368*)a2)))->_current_type/*0*/;
  731. _t1=r900to_runnable(C,_ct);
  732. _t2=X291to_runnable(a1,_ct);
  733. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  734. R=1;
  735. }
  736. else {
  737. R=X291is_a(_t1,_t2);
  738. }
  739. /*FI*/}
  740. /*FI*/return R;
  741. }
  742. T0* r900look_up_for(T900* C,T0* a1,T0* a2){
  743. T0* R=NULL;
  744. R=r605look_up_for(((T605*)(r900base_class(C))),a1,a2);
  745. return R;
  746. }
  747. /*No:TYPE_POINTER.expanded_initializer*/
  748. /*No:TYPE_POINTER.fz_dot*/
  749. /*No:TYPE_POINTER.is_generic*/
  750. int fBC900used_as_reference=0;
  751. void r900used_as_reference(void){
  752. if (fBC900used_as_reference==0){
  753. fBC900used_as_reference=1;
  754. r900load_ref(((T0*)ms22_473));
  755. }}
  756. /*No:TYPE_POINTER.is_reference*/
  757. void r900error(T0* a1,T0* a2){
  758. r683add_position(a1);
  759. r683error(((T683*)(oBC364eh)),a2);
  760. }
  761. T0* r900base_class(T900* C){
  762. T0* R=NULL;
  763. T0* _bcn=NULL;
  764. _bcn=(((T900*)C))->_base_class_name/*4*/;
  765. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  766. R=r451base_class(((T451*)_bcn));
  767. }
  768. else {
  769. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  770. r7append(((T7*)(oBC683explanation)),b1);
  771. }/*]*/
  772. r683add_type((T0*)C,((T0*)ms67_470));
  773. r683print_as_fatal_error(((T683*)(oBC364eh)));
  774. }
  775. /*FI*/return R;
  776. }
  777. /*No:TYPE_POINTER.is_any*/
  778. /*No:TYPE_POINTER.base_class_name*/
  779. /*No:TYPE_POINTER.is_expanded*/
  780. /*No:TYPE_POINTER.is_basic_eiffel_expanded*/
  781. /*No:TYPE_POINTER.is_none*/
  782. /*No:TYPE_POINTER.is_integer*/
  783. /*No:E_WHEN.when_list*/
  784. void r843add_when_item_1(T843* C,T0* a1){
  785. int _v=0;
  786. _v=(((T349*)((T349*)a1)))->_expression_value/*12*/;
  787. /*IF*/if (/*(IRF4.6includes*/r377includes_integer(((T377*)((((T270*)((T270*)(/*(IRF4.6e_inspect*/(((T377*)((T377*)((((T843*)C))->_when_list/*16*/))))->_e_inspect/*0*//*)*/))))->_when_list/*16*/)),_v)/*)*/) {
  788. r843err_occ(C,_v,r349start_position(((T349*)a1)));
  789. }
  790.  else if (((((T843*)C))->_values/*20*/)==((void*)(NULL))) {
  791. {T353*n=malloc(sizeof(*n));
  792. *n=M353;
  793. r353make(n,_v,_v);
  794. C->_values=(T0*)n;
  795. }
  796. /*[IRF3.6put*/{T353* C1=((T353*)((((T843*)C))->_values/*20*/));
  797. int b1=1;
  798. int b2=_v;
  799. ((((T353*)C1))->_storage/*0*/)[(b2)-((((T353*)C1))->_lower/*12*/)]=(b1);
  800. }/*]*/
  801. }
  802. else {
  803. r353force(((T353*)((((T843*)C))->_values/*20*/)),1,_v);
  804. }
  805. /*FI*/}
  806. T0* r843to_runnable_integer(T843* C,T0* a1){
  807. T0* R=NULL;
  808. T0* _when_item=NULL;
  809. int _i=0;
  810. int _ne=0;
  811. /*IF*/if (((((T843*)C))->_when_list/*16*/)==((void*)(NULL))) {
  812. _ne=/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/;
  813. C->_when_list=a1;
  814. /*IF*/if (((((T843*)C))->_list/*4*/)==((void*)(NULL))) {
  815. r683add_position((((T270*)((T270*)(/*(IRF4.6e_inspect*/(((T377*)((T377*)((((T843*)C))->_when_list/*16*/))))->_e_inspect/*0*//*)*/))))->_start_position/*8*/);
  816. r843error((((T843*)C))->_start_position/*0*/,((T0*)ms12_843));
  817. }
  818. else {
  819. _i=/*X631*/((int)(((T247*)((T247*)((((T843*)C))->_list/*4*/))))->_lower/*16*/);
  820. while (!(((_i)>(/*X631*/((int)(((T247*)((T247*)((((T843*)C))->_list/*4*/))))->_upper/*12*/)))||(((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)-(_ne))>(0)))) {
  821. _when_item=X274to_runnable_integer(/*X631*/((T0*)r247item(((T247*)((((T843*)C))->_list/*4*/)),_i)),(T0*)C);
  822. /*IF*/if ((_when_item)==((void*)(NULL))) {
  823. r843error((((T843*)C))->_start_position/*0*/,((T0*)ms11_843));
  824. }
  825. else {
  826. /*X631*//*[IRF3.6put*/{T247* C1=((T247*)((((T843*)C))->_list/*4*/));
  827. T0* b1=_when_item;
  828. int b2=_i;
  829. ((((T247*)C1))->_storage/*4*/)[(b2)-((((T247*)C1))->_lower/*16*/)]=(b1);
  830. }/*]*/
  831. }
  832. /*FI*/_i=(_i)+(1);
  833. }
  834. }
  835. /*FI*//*IF*/if (((((T843*)C))->_compound/*12*/)!=((void*)(NULL))) {
  836. C->_compound=r592to_runnable(((T592*)((((T843*)C))->_compound/*12*/)),/*(IRF4.6current_type*//*(IRF4.6current_type*/r270current_type(((T270*)((((T377*)((T377*)((((T843*)C))->_when_list/*16*/))))->_e_inspect/*0*/)))/*)*//*)*/);
  837. /*IF*/if (((((T843*)C))->_compound/*12*/)==((void*)(NULL))) {
  838. r843error((((T843*)C))->_start_position/*0*/,((T0*)ms11_843));
  839. }
  840. /*FI*/}
  841. /*FI*/R=(T0*)C;
  842. }
  843. else {
  844. {T843*n=malloc(sizeof(*n));
  845. *n=M843;
  846. r843from_e_when(n,(T0*)C);
  847. R=(T0*)n;
  848. }
  849. R=r843to_runnable_integer(((T843*)R),a1);
  850. }
  851. /*FI*/return R;
  852. }
  853. void r843make(T843* C,T0* a1,T0* a2){
  854. C->_start_position=a1;
  855. C->_header_comment=a2;
  856. }
  857. /*No:E_WHEN.nb_errors*/
  858. void r843add_when_item_2(T843* C,T0* a1){
  859. int _i=0;
  860. int _u=0;
  861. int _l=0;
  862. _l=(((T372*)((T372*)a1)))->_lower_value/*20*/;
  863. _u=(((T372*)((T372*)a1)))->_upper_value/*16*/;
  864. /*IF*/if ((_l)>=(_u)) {
  865. r843error(r372start_position(((T372*)a1)),((T0*)ms8_843));
  866. }
  867. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  868. _i=_l;
  869. while (!((_i)>(_u))) {
  870. /*IF*/if (/*(IRF4.6includes*/r377includes_integer(((T377*)((((T270*)((T270*)(/*(IRF4.6e_inspect*/(((T377*)((T377*)((((T843*)C))->_when_list/*16*/))))->_e_inspect/*0*//*)*/))))->_when_list/*16*/)),_i)/*)*/) {
  871. r843err_occ(C,_i,r372start_position(((T372*)a1)));
  872. _i=(_u)+(1);
  873. }
  874. else {
  875. _i=(_i)+(1);
  876. }
  877. /*FI*/}
  878. }
  879. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  880. /*IF*/if (((((T843*)C))->_values/*20*/)==((void*)(NULL))) {
  881. {T353*n=malloc(sizeof(*n));
  882. *n=M353;
  883. r353make(n,_l,_u);
  884. C->_values=(T0*)n;
  885. }
  886. /*[IRF3.6set_all_with*/{T353* C1=((T353*)((((T843*)C))->_values/*20*/));
  887. int b1=1;
  888. r567set_all_with((((T353*)C1))->_storage/*0*/,b1,((((T353*)C1))->_upper/*8*/)-((((T353*)C1))->_lower/*12*/));
  889. }/*]*/
  890. }
  891. else {
  892. r353force(((T353*)((((T843*)C))->_values/*20*/)),1,_l);
  893. r353force(((T353*)((((T843*)C))->_values/*20*/)),1,_u);
  894. r353set_slice_with(((T353*)((((T843*)C))->_values/*20*/)),1,_l,_u);
  895. }
  896. /*FI*/}
  897. /*FI*/}
  898. void r843from_e_when(T843* C,T0* a1){
  899. T0* _when_item=NULL;
  900. int _i=0;
  901. C->_start_position=(((T843*)((T843*)a1)))->_start_position/*0*/;
  902. C->_list=X631twin((((T843*)((T843*)a1)))->_list/*4*/);
  903. _i=/*X631*/((int)(((T247*)((T247*)((((T843*)C))->_list/*4*/))))->_lower/*16*/);
  904. while (!((_i)>(/*X631*/((int)(((T247*)((T247*)((((T843*)C))->_list/*4*/))))->_upper/*12*/)))) {
  905. _when_item=X274twin(/*X631*/((T0*)r247item(((T247*)((((T843*)C))->_list/*4*/)),_i)));
  906. /*X274*//*[IRF3.3clear_e_when*/((((T349*)(((T349*)_when_item))))->_e_when)=(NULL);
  907. /*]*/
  908. /*X631*//*[IRF3.6put*/{T247* C1=((T247*)((((T843*)C))->_list/*4*/));
  909. T0* b1=_when_item;
  910. int b2=_i;
  911. ((((T247*)C1))->_storage/*4*/)[(b2)-((((T247*)C1))->_lower/*16*/)]=(b1);
  912. }/*]*/
  913. _i=(_i)+(1);
  914. }
  915. C->_header_comment=(((T843*)((T843*)a1)))->_header_comment/*8*/;
  916. C->_compound=(((T843*)((T843*)a1)))->_compound/*12*/;
  917. }
  918. /*No:E_WHEN.values*/
  919. /*No:E_WHEN.start_position*/
  920. void r843err_occ(T843* C,int a1,T0* a2){
  921. r683add_position((((T270*)((T270*)(/*(IRF4.6e_inspect*/(((T377*)((T377*)((((T843*)C))->_when_list/*16*/))))->_e_inspect/*0*//*)*/))))->_start_position/*8*/);
  922. /*[IRF3.6append*/{T0* b1=((T0*)ms9_843);
  923. r7append(((T7*)(oBC683explanation)),b1);
  924. }/*]*/
  925. /*[IRF3.6append*/{T0* b1=r2to_string(a1);
  926. r7append(((T7*)(oBC683explanation)),b1);
  927. }/*]*/
  928. r843error(a2,((T0*)ms10_843));
  929. }
  930. /*No:E_WHEN.em1*/
  931. void r843pretty_print(T843* C){
  932. int _i=0;
  933. r238keyword(((T238*)(oBC364fmt)),((T0*)ms52_470));
  934. r238level_incr(((T238*)(oBC364fmt)));
  935. /*IF*/if (((((T843*)C))->_header_comment/*8*/)!=((void*)(NULL))) {
  936. r393pretty_print(((T393*)((((T843*)C))->_header_comment/*8*/)));
  937. }
  938. /*FI*//*IF*/if (((((T843*)C))->_list/*4*/)!=((void*)(NULL))) {
  939. _i=/*X631*/((int)(((T247*)((T247*)((((T843*)C))->_list/*4*/))))->_lower/*16*/);
  940. while (!((_i)>(/*X631*/((int)(((T247*)((T247*)((((T843*)C))->_list/*4*/))))->_upper/*12*/)))) {
  941. X274pretty_print(/*X631*/((T0*)r247item(((T247*)((((T843*)C))->_list/*4*/)),_i)));
  942. _i=(_i)+(1);
  943. /*IF*/if ((_i)<=(/*X631*/((int)(((T247*)((T247*)((((T843*)C))->_list/*4*/))))->_upper/*12*/))) {
  944. r238put_character(((T238*)(oBC364fmt)),'\54');
  945. }
  946. /*FI*/}
  947. }
  948. /*FI*/r238level_decr(((T238*)(oBC364fmt)));
  949. r238keyword(((T238*)(oBC364fmt)),((T0*)ms46_470));
  950. r238level_incr(((T238*)(oBC364fmt)));
  951. /*IF*/if (((((T843*)C))->_compound/*12*/)!=((void*)(NULL))) {
  952. r592pretty_print(((T592*)((((T843*)C))->_compound/*12*/)));
  953. }
  954. /*FI*/r238level_decr(((T238*)(oBC364fmt)));
  955. }
  956. /*No:E_WHEN.list*/
  957. /*No:E_WHEN.em2*/
  958. /*No:E_WHEN.set_compound*/
  959. void r843add_value(T843* C,T0* a1){
  960. T0* _element=NULL;
  961. {T349*n=malloc(sizeof(*n));
  962. *n=M349;
  963. /*[IRF3.3make*/((((T349*)(n)))->_expression)=(a1);
  964. /*]*/
  965. _element=(T0*)n;
  966. }
  967. /*IF*/if (((((T843*)C))->_list/*4*/)==((void*)(NULL))) {
  968. C->_list=se_ma247(1,_element);
  969. }
  970. else {
  971. X631add_last((((T843*)C))->_list/*4*/,_element);
  972. }
  973. /*FI*/}
  974. /*No:E_WHEN.current_type*/
  975. /*No:E_WHEN.compound*/
  976. /*No:E_WHEN.header_comment*/
  977. void r843error(T0* a1,T0* a2){
  978. r683add_position(a1);
  979. r683error(((T683*)(oBC364eh)),a2);
  980. }
  981. /*No:E_WHEN.fz_when*/
  982. /*No:E_WHEN.fz_then*/
  983. int r843includes_integer(T843* C,int a1){
  984. int R=0;
  985. R=((((((T843*)C))->_values/*20*/)!=((void*)(NULL)))&&(r353valid_index(((T353*)((((T843*)C))->_values/*20*/)),a1)))&&(r353item(((T353*)((((T843*)C))->_values/*20*/)),a1));
  986. return R;
  987. }
  988. T0* r843to_runnable_character(T843* C,T0* a1){
  989. T0* R=NULL;
  990. T0* _when_item=NULL;
  991. int _i=0;
  992. int _ne=0;
  993. /*IF*/if (((((T843*)C))->_when_list/*16*/)==((void*)(NULL))) {
  994. _ne=/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/;
  995. C->_when_list=a1;
  996. /*IF*/if (((((T843*)C))->_list/*4*/)==((void*)(NULL))) {
  997. r683add_position((((T270*)((T270*)(/*(IRF4.6e_inspect*/(((T377*)((T377*)((((T843*)C))->_when_list/*16*/))))->_e_inspect/*0*//*)*/))))->_start_position/*8*/);
  998. r843error((((T843*)C))->_start_position/*0*/,((T0*)ms12_843));
  999. }
  1000. else {
  1001. _i=/*X631*/((int)(((T247*)((T247*)((((T843*)C))->_list/*4*/))))->_lower/*16*/);
  1002. while (!(((_i)>(/*X631*/((int)(((T247*)((T247*)((((T843*)C))->_list/*4*/))))->_upper/*12*/)))||(((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)-(_ne))>(0)))) {
  1003. _when_item=X274to_runnable_character(/*X631*/((T0*)r247item(((T247*)((((T843*)C))->_list/*4*/)),_i)),(T0*)C);
  1004. /*IF*/if ((_when_item)==((void*)(NULL))) {
  1005. r843error((((T843*)C))->_start_position/*0*/,((T0*)ms11_843));
  1006. }
  1007. else {
  1008. /*X631*//*[IRF3.6put*/{T247* C1=((T247*)((((T843*)C))->_list/*4*/));
  1009. T0* b1=_when_item;
  1010. int b2=_i;
  1011. ((((T247*)C1))->_storage/*4*/)[(b2)-((((T247*)C1))->_lower/*16*/)]=(b1);
  1012. }/*]*/
  1013. }
  1014. /*FI*/_i=(_i)+(1);
  1015. }
  1016. }
  1017. /*FI*//*IF*/if (((((T843*)C))->_compound/*12*/)!=((void*)(NULL))) {
  1018. C->_compound=r592to_runnable(((T592*)((((T843*)C))->_compound/*12*/)),/*(IRF4.6current_type*//*(IRF4.6current_type*/r270current_type(((T270*)((((T377*)((T377*)((((T843*)C))->_when_list/*16*/))))->_e_inspect/*0*/)))/*)*//*)*/);
  1019. /*IF*/if (((((T843*)C))->_compound/*12*/)==((void*)(NULL))) {
  1020. r843error((((T843*)C))->_start_position/*0*/,((T0*)ms11_843));
  1021. }
  1022. /*FI*/}
  1023. /*FI*/R=(T0*)C;
  1024. }
  1025. else {
  1026. {T843*n=malloc(sizeof(*n));
  1027. *n=M843;
  1028. r843from_e_when(n,(T0*)C);
  1029. R=(T0*)n;
  1030. }
  1031. R=r843to_runnable_character(((T843*)R),a1);
  1032. }
  1033. /*FI*/return R;
  1034. }
  1035. void r843add_slice(T843* C,T0* a1,T0* a2){
  1036. T0* _element=NULL;
  1037. {T372*n=malloc(sizeof(*n));
  1038. *n=M372;
  1039. r372make(n,a1,a2);
  1040. _element=(T0*)n;
  1041. }
  1042. /*IF*/if (((((T843*)C))->_list/*4*/)==((void*)(NULL))) {
  1043. C->_list=se_ma263(1,_element);
  1044. }
  1045. else {
  1046. X631add_last((((T843*)C))->_list/*4*/,_element);
  1047. }
  1048. /*FI*/}
  1049. /*No:E_WHEN.e_inspect*/
  1050. void r673get_started(T673* C){
  1051. T0* _p2=NULL;
  1052. T0* _p1=NULL;
  1053. int _i2=0;
  1054. int _i1=0;
  1055. _i1=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
  1056. while (!((_i1)==(0))) {
  1057. r877get_started(((T877*)(r26item(((T26*)((((T673*)C))->_list/*12*/)),_i1))),(T0*)C);
  1058. _i1=(_i1)-(1);
  1059. }
  1060. /*IF*/if (((((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/)>(1)) {
  1061. _i2=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
  1062. while (!((_i2)==(1))) {
  1063. _i1=1;
  1064. while (!((_i1)==(_i2))) {
  1065. _p1=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i1);
  1066. _p2=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i2);
  1067. r877multiple_check(((T877*)_p1),_p2);
  1068. r877multiple_check(((T877*)_p2),_p1);
  1069. _i1=(_i1)+(1);
  1070. }
  1071. _i2=(_i2)-(1);
  1072. }
  1073. }
  1074. /*FI*/}
  1075. int r673has_parent(T673* C,T0* a1){
  1076. int R=0;
  1077. T0* _bc=NULL;
  1078. int _i=0;
  1079. _i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
  1080. while (!((_i)==(0))) {
  1081. _bc=X291base_class((((T877*)((T877*)(r26item(((T26*)((((T673*)C))->_list/*12*/)),_i)))))->_type/*4*/);
  1082. /*IF*/if ((a1)==((void*)(_bc))) {
  1083. R=1;
  1084. _i=0;
  1085. }
  1086.  else if (r605is_subclass_of_aux(((T605*)_bc),a1)) {
  1087. R=1;
  1088. _i=0;
  1089. }
  1090. else {
  1091. _i=(_i)-(1);
  1092. }
  1093. /*FI*/}
  1094. return R;
  1095. }
  1096. /*No:PARENT_LIST.fz_cnf*/
  1097. void r673make(T673* C,T0* a1,T0* a2,T0* a3,T0* a4){
  1098. C->_base_class=a1;
  1099. C->_heading_comment=a3;
  1100. C->_start_position=a2;
  1101. C->_list=a4;
  1102. }
  1103. /*No:PARENT_LIST.start_position*/
  1104. T0* r673next_parent_for(T673* C,T0* a1,T0* a2){
  1105. T0* R=NULL;
  1106. T0* _pbc=NULL;
  1107. int _i=0;
  1108. _i=1;
  1109. while (!((R)==((void*)(a2)))) {
  1110. R=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
  1111. _i=(_i)+(1);
  1112. }
  1113. R=NULL;
  1114. while (!(((R)!=((void*)(NULL)))||((_i)>(r26count(((T26*)((((T673*)C))->_list/*12*/))))))) {
  1115. R=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
  1116. _pbc=X291base_class((((T877*)((T877*)R)))->_type/*4*/);
  1117. /*IF*/if ((_pbc)==((void*)(a1))) {
  1118. }
  1119.  else if (r605is_subclass_of(((T605*)_pbc),a1)) {
  1120. }
  1121. else {
  1122. R=NULL;
  1123. }
  1124. /*FI*/_i=(_i)+(1);
  1125. }
  1126. return R;
  1127. }
  1128. T0* r673first_parent_for(T673* C,T0* a1){
  1129. T0* R=NULL;
  1130. T0* _pbc=NULL;
  1131. int _i=0;
  1132. _i=1;
  1133. while (!((R)!=((void*)(NULL)))) {
  1134. R=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
  1135. _pbc=X291base_class((((T877*)((T877*)R)))->_type/*4*/);
  1136. /*IF*/if ((_pbc)==((void*)(a1))) {
  1137. }
  1138.  else if (r605is_subclass_of(((T605*)_pbc),a1)) {
  1139. }
  1140. else {
  1141. R=NULL;
  1142. }
  1143. /*FI*/_i=(_i)+(1);
  1144. }
  1145. return R;
  1146. }
  1147. void r673inherit_cycle_check(T673* C){
  1148. T0* _bc=NULL;
  1149. T0* _p=NULL;
  1150. int _i=0;
  1151. _i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
  1152. while (!((_i)==(0))) {
  1153. _p=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
  1154. _bc=X291base_class((((T877*)((T877*)_p)))->_type/*4*/);
  1155. /*IF*/if ((_bc)==((void*)(NULL))) {
  1156. r683add_position(r877start_position(((T877*)_p)));
  1157. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms66_470);
  1158. r683fatal_error(((T683*)(oBC364eh)),b1);
  1159. }/*]*/
  1160. }
  1161. else {
  1162. r605inherit_cycle_check(((T605*)_bc));
  1163. }
  1164. /*FI*/_i=(_i)-(1);
  1165. }
  1166. }
  1167. /*No:PARENT_LIST.em1*/
  1168. void r673pretty_print(T673* C){
  1169. int _i=0;
  1170. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(0);
  1171. /*]*/
  1172. /*IF*/if (r238zen_mode(((T238*)(oBC364fmt)))) {
  1173. r238indent(((T238*)(oBC364fmt)));
  1174. }
  1175. else {
  1176. r238skip(((T238*)(oBC364fmt)),1);
  1177. }
  1178. /*FI*/r238keyword(((T238*)(oBC364fmt)),((T0*)ms1_673));
  1179. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(1);
  1180. /*]*/
  1181. r238indent(((T238*)(oBC364fmt)));
  1182. /*IF*/if (((((T673*)C))->_heading_comment/*8*/)!=((void*)(NULL))) {
  1183. r393pretty_print(((T393*)((((T673*)C))->_heading_comment/*8*/)));
  1184. }
  1185. /*FI*/_i=1;
  1186. while (!((_i)>((((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/))) {
  1187. r877pretty_print(((T877*)(r26item(((T26*)((((T673*)C))->_list/*12*/)),_i))));
  1188. _i=(_i)+(1);
  1189. }
  1190. }
  1191. /*No:PARENT_LIST.list*/
  1192. T0* r673up_to_original(T673* C,T0* a1,T0* a2){
  1193. T0* R=NULL;
  1194. int _i=0;
  1195. T0* _new_fn=NULL;
  1196. T0* _fn2=NULL;
  1197. T0* _fn1=NULL;
  1198. T0* _p2=NULL;
  1199. T0* _p1=NULL;
  1200. _i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
  1201. while (!(((_i)==(0))||((_fn1)!=((void*)(NULL))))) {
  1202. _p1=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
  1203. _fn1=r877up_to_original(((T877*)_p1),a1,a2);
  1204. _i=(_i)-(1);
  1205. }
  1206. while (!((_i)==(0))) {
  1207. _p2=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
  1208. _fn2=r877up_to_original(((T877*)_p2),a1,a2);
  1209. /*IF*/if ((_fn2)!=((void*)(NULL))) {
  1210. _new_fn=r877do_rename(((T877*)_p2),a2);
  1211. /*IF*/if (r877has_select_for(((T877*)_p2),_new_fn)) {
  1212. _p1=_p2;
  1213. _fn1=_fn2;
  1214. }
  1215. /*FI*/}
  1216. /*FI*/_i=(_i)-(1);
  1217. }
  1218. /*IF*/if ((_fn1)!=((void*)(NULL))) {
  1219. /*IF*/if ((X776to_string(_fn1))!=((void*)(X776to_string(a2)))) {
  1220. R=r673repeated_inheritance(C,_p1,_fn1,a2);
  1221. }
  1222. else {
  1223. R=_fn1;
  1224. }
  1225. /*FI*/}
  1226. /*FI*/return R;
  1227. }
  1228. void r673collect_invariant(T673* C,T0* a1){
  1229. int _i=0;
  1230. _i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
  1231. while (!((_i)==(0))) {
  1232. r605collect_invariant(((T605*)(X291base_class((((T877*)((T877*)(r26item(((T26*)((((T673*)C))->_list/*12*/)),_i)))))->_type/*4*/))),a1);
  1233. _i=(_i)-(1);
  1234. }
  1235. }
  1236. T0* r673smallest_ancestor(T673* C,T0* a1){
  1237. T0* R=NULL;
  1238. T0* _sa=NULL;
  1239. T0* _p=NULL;
  1240. int _i=0;
  1241. _i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
  1242. while (!((_i)==(0))) {
  1243. _p=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
  1244. _sa=X291run_type(r877smallest_ancestor(((T877*)_p),a1));
  1245. /*IF*/if ((R)==((void*)(NULL))) {
  1246. R=_sa;
  1247. }
  1248. else {
  1249. R=X291smallest_ancestor(_sa,R);
  1250. }
  1251. /*FI*//*IF*/if (X291is_any(R)) {
  1252. _i=0;
  1253. }
  1254. else {
  1255. _i=(_i)-(1);
  1256. }
  1257. /*FI*/}
  1258. return R;
  1259. }
  1260. int r673has(T673* C,T0* a1){
  1261. int R=0;
  1262. int _i=0;
  1263. _i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
  1264. while (!((R)||((_i)==(0)))) {
  1265. R=r877has(((T877*)(r26item(((T26*)((((T673*)C))->_list/*12*/)),_i))),a1);
  1266. _i=(_i)-(1);
  1267. }
  1268. return R;
  1269. }
  1270. int r673has_redefine(T673* C,T0* a1){
  1271. int R=0;
  1272. int _i=0;
  1273. _i=1;
  1274. while (!((R)||((_i)>((((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/)))) {
  1275. R=r877has_redefine(((T877*)(r26item(((T26*)((((T673*)C))->_list/*12*/)),_i))),a1);
  1276. _i=(_i)+(1);
  1277. }
  1278. return R;
  1279. }
  1280. T0* r673look_up_for(T673* C,T0* a1,T0* a2){
  1281. T0* R=NULL;
  1282. T0* _f2=NULL;
  1283. T0* _f1=NULL;
  1284. T0* _p2=NULL;
  1285. T0* _p1=NULL;
  1286. int _i=0;
  1287. _i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
  1288. while (!(((_f1)!=((void*)(NULL)))||((_i)==(0)))) {
  1289. _p1=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
  1290. _f1=r877look_up_for(((T877*)_p1),a1,a2);
  1291. _i=(_i)-(1);
  1292. }
  1293. while (!((_i)==(0))) {
  1294. _p2=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
  1295. _f2=r877look_up_for(((T877*)_p2),a1,a2);
  1296. /*IF*/if ((_f2)==((void*)(NULL))) {
  1297. }
  1298.  else if ((_f1)==((void*)(_f2))) {
  1299. }
  1300.  else if (!(X359is_merge_with(_f2,_f1,a1))) {
  1301. r683add_position((((T673*)C))->_start_position/*4*/);
  1302. r683add_position(X359start_position(_f1));
  1303. r683add_position(X359start_position(_f2));
  1304. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms70_470);
  1305. r683fatal_error(((T683*)(oBC364eh)),b1);
  1306. }/*]*/
  1307. }
  1308.  else if (X359is_deferred(_f2)) {
  1309. }
  1310.  else if (X359is_deferred(_f1)) {
  1311. _f1=_f2;
  1312. _p1=_p2;
  1313. }
  1314.  else if (r877has_redefine(((T877*)_p1),a2)) {
  1315. /*IF*/if (r877has_redefine(((T877*)_p2),a2)) {
  1316. }
  1317. else {
  1318. r683add_position(X776start_position(a2));
  1319. r683add_position(r877start_position(((T877*)_p2)));
  1320. r683add_position(X359start_position(_f2));
  1321. /*[IRF3.6append*/{T0* b1=((T0*)ms2_673);
  1322. r7append(((T7*)(oBC683explanation)),b1);
  1323. }/*]*/
  1324. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1325. }
  1326. /*FI*/}
  1327.  else if (r877has_redefine(((T877*)_p2),a2)) {
  1328. r683add_position(X776start_position(a2));
  1329. r683add_position(r877start_position(((T877*)_p1)));
  1330. r683add_position(X359start_position(_f1));
  1331. /*[IRF3.6append*/{T0* b1=((T0*)ms2_673);
  1332. r7append(((T7*)(oBC683explanation)),b1);
  1333. }/*]*/
  1334. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1335. }
  1336. else {
  1337. r683add_position(r877start_position(((T877*)_p2)));
  1338. r683add_position(r877start_position(((T877*)_p1)));
  1339. r683add_position(X359start_position(_f1));
  1340. r683add_position(X359start_position(_f2));
  1341. /*[IRF3.6append*/{T0* b1=((T0*)ms2_673);
  1342. r7append(((T7*)(oBC683explanation)),b1);
  1343. }/*]*/
  1344. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1345. }
  1346. /*FI*/_i=(_i)-(1);
  1347. }
  1348. R=_f1;
  1349. return R;
  1350. }
  1351. T0* r673repeated_inheritance(T673* C,T0* a1,T0* a2,T0* a3){
  1352. T0* R=NULL;
  1353. T0* _bc1=NULL;
  1354. T0* _p2=NULL;
  1355. int _i=0;
  1356. _bc1=X291base_class((((T877*)((T877*)a1)))->_type/*4*/);
  1357. _i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
  1358. while (!((_i)==(0))) {
  1359. _p2=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
  1360. /*IF*/if ((a1)!=((void*)(_p2))) {
  1361. /*IF*/if ((_bc1)==((void*)(X291base_class((((T877*)((T877*)_p2)))->_type/*4*/)))) {
  1362. /*IF*/if ((X776to_string(r877do_rename(((T877*)_p2),a2)))==((void*)(X776to_string(a3)))) {
  1363. R=a3;
  1364. }
  1365.  else if ((X776to_string(r877do_rename(((T877*)a1),a2)))==((void*)(X776to_string(a3)))) {
  1366. R=a3;
  1367. }
  1368. /*FI*/}
  1369. /*FI*/}
  1370. /*FI*/_i=(_i)-(1);
  1371. }
  1372. /*IF*/if ((R)==((void*)(NULL))) {
  1373. R=a2;
  1374. }
  1375. /*FI*/return R;
  1376. }
  1377. /*No:PARENT_LIST.super*/
  1378. T0* r673clients_for(T673* C,T0* a1){
  1379. T0* R=NULL;
  1380. T0* _cl=NULL;
  1381. int _i=0;
  1382. _i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
  1383. while (!((_i)==(0))) {
  1384. _cl=r877clients_for(((T877*)(r26item(((T26*)((((T673*)C))->_list/*12*/)),_i))),a1);
  1385. /*IF*/if ((R)==((void*)(NULL))) {
  1386. R=_cl;
  1387. }
  1388.  else if ((_cl)!=((void*)(NULL))) {
  1389. R=r636append(((T636*)R),_cl);
  1390. }
  1391. /*FI*//*IF*/if (((R)!=((void*)(NULL)))&&(r636gives_permission_to_any(((T636*)R)))) {
  1392. _i=0;
  1393. }
  1394. else {
  1395. _i=(_i)-(1);
  1396. }
  1397. /*FI*/}
  1398. return R;
  1399. }
  1400. T0* r673going_up(T673* C,T0* a1,T0* a2,T0* a3){
  1401. T0* R=NULL;
  1402. T0* _fn2=NULL;
  1403. T0* _fn1=NULL;
  1404. T0* _p2=NULL;
  1405. T0* _p1=NULL;
  1406. int _i=0;
  1407. _i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
  1408. while (!(((_fn1)!=((void*)(NULL)))||((_i)==(0)))) {
  1409. _p1=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
  1410. _fn1=r877going_up(((T877*)_p1),a1,a2,a3);
  1411. _i=(_i)-(1);
  1412. }
  1413. while (!((_i)==(0))) {
  1414. _p2=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
  1415. _fn2=r877going_up(((T877*)_p2),a1,a2,a3);
  1416. /*IF*/if ((_fn2)!=((void*)(NULL))) {
  1417. /*IF*/if (r877has_select_for(((T877*)_p2),_fn2)) {
  1418. _p1=_p2;
  1419. _fn1=_fn2;
  1420. }
  1421. /*FI*/}
  1422. /*FI*/_i=(_i)-(1);
  1423. }
  1424. R=_fn1;
  1425. return R;
  1426. }
  1427. void r673collect_for(T673* C,int a1,T0* a2){
  1428. int _i=0;
  1429. _i=1;
  1430. while (!((_i)>((((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/))) {
  1431. r877collect_for(((T877*)(r26item(((T26*)((((T673*)C))->_list/*12*/)),_i))),a1,a2);
  1432. _i=(_i)+(1);
  1433. }
  1434. }
  1435. int r673is_a_vncg(T673* C,T0* a1,T0* a2){
  1436. int R=0;
  1437. int _i=0;
  1438. _i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
  1439. while (!((R)||((_i)==(0)))) {
  1440. R=r877is_a_vncg(((T877*)(r26item(((T26*)((((T673*)C))->_list/*12*/)),_i))),a1,a2);
  1441. _i=(_i)-(1);
  1442. }
  1443. return R;
  1444. }
  1445. /*No:PARENT_LIST.heading_comment*/
  1446. /*No:PARENT_LIST.count*/
  1447. /*No:PARENT_LIST.base_class*/
  1448. /*No:PARENT_LIST.fatal_error*/
  1449. /*No:PARENT_LIST.fz_ich*/
  1450. /*No:PREFIX_NAME.set_is_frozen*/
  1451. void r406make(T406* C,T0* a1,T0* a2){
  1452. C->_to_string=r902item(a1);
  1453. C->_start_position=a2;
  1454. C->_to_key=r902for_prefix((((T406*)C))->_to_string/*4*/);
  1455. }
  1456. /*No:PREFIX_NAME.to_string*/
  1457. /*No:PREFIX_NAME.fz_prefix*/
  1458. /*No:PREFIX_NAME.start_position*/
  1459. void r406definition_pretty_print(T406* C){
  1460. r238keyword(((T238*)(oBC364fmt)),((T0*)ms37_470));
  1461. r238put_character(((T238*)(oBC364fmt)),'\42');
  1462. r238put_string(((T238*)(oBC364fmt)),(((T406*)C))->_to_string/*4*/);
  1463. r238put_character(((T238*)(oBC364fmt)),'\42');
  1464. }
  1465. /*No:PREFIX_NAME.pretty_print*/
  1466. /*No:PREFIX_NAME.to_key*/
  1467. /*No:PREFIX_NAME.is_frozen*/
  1468. void r406undefine_in(T406* C,T0* a1){
  1469. /*IF*/if ((((T406*)C))->_is_frozen/*12*/) {
  1470. r406error((((T406*)C))->_start_position/*8*/,((T0*)ms1_776));
  1471. r605fatal_undefine(((T605*)a1),(T0*)C);
  1472. }
  1473. /*FI*/}
  1474. void r406error(T0* a1,T0* a2){
  1475. r683add_position(a1);
  1476. r683error(((T683*)(oBC364eh)),a2);
  1477. }
  1478. T0* r406origin_base_class(T406* C){
  1479. T0* R=NULL;
  1480. T0* _sp=NULL;
  1481. _sp=(((T406*)C))->_start_position/*8*/;
  1482. /*IF*/if ((_sp)!=((void*)(NULL))) {
  1483. R=r627base_class(((T627*)_sp));
  1484. }
  1485. /*FI*/return R;
  1486. }
  1487. void r675connect_to(T675* C,T0* a1){
  1488. C->_input_stream=fopen(r7to_external(((T7*)a1)),"r");
  1489. /*IF*/if ((NULL!=(((T675*)C))->_input_stream/*8*/)) {
  1490. C->_push_back_flag=0;
  1491. C->_memory=((unsigned char)'\40');
  1492. C->_path=a1;
  1493. }
  1494. /*FI*/}
  1495. T0*oBC762last_string=NULL;
  1496. /*No:STD_FILE_READ.push_back_flag*/
  1497. void r675skip_separators(T675* C){
  1498. while (!((r675end_of_input(C))||(!(r3is_separator(/*(IRF4.6last_character*/((char)((((T675*)C))->_memory/*12*/))/*)*/))))) {
  1499. r675read_character(C);
  1500. }
  1501. }
  1502. /*No:STD_FILE_READ.make*/
  1503. void r675disconnect(T675* C){
  1504. fclose((((T675*)C))->_input_stream/*8*/);
  1505. C->_path=NULL;
  1506. }
  1507. /*No:STD_FILE_READ.path*/
  1508. void r675read_character(T675* C){
  1509. /*IF*/if ((((T675*)C))->_push_back_flag/*0*/) {
  1510. C->_push_back_flag=0;
  1511. }
  1512. else {
  1513. C->_memory=getc((FILE*)((((T675*)C))->_input_stream/*8*/));
  1514. }
  1515. /*FI*/}
  1516. /*No:STD_FILE_READ.is_connected*/
  1517. void r675read_word(T675* C){
  1518. r675skip_separators(C);
  1519. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC762last_string)))))->_count)=(0);
  1520. /*]*/
  1521. while (!((r675end_of_input(C))||(r3is_separator(/*(IRF4.6last_character*/((char)((((T675*)C))->_memory/*12*/))/*)*/)))) {
  1522. r7extend(((T7*)(oBC762last_string)),/*(IRF4.6last_character*/((char)((((T675*)C))->_memory/*12*/))/*)*/);
  1523. r675read_character(C);
  1524. }
  1525. }
  1526. /*No:STD_FILE_READ.last_character*/
  1527. void r675read_line_in(T675* C,T0* a1){
  1528. int _mem=0;
  1529. r675read_character(C);
  1530. _mem=(((T675*)C))->_memory/*12*/;
  1531. while (!(((_mem)==((EOF)))||((_mem)==(((unsigned char)'\n'))))) {
  1532. r7extend(((T7*)a1),((char)(_mem)));
  1533. _mem=getc((FILE*)((((T675*)C))->_input_stream/*8*/));
  1534. }
  1535. C->_memory=_mem;
  1536. }
  1537. int r675end_of_input(T675* C){
  1538. int R=0;
  1539. /*IF*/if (!((((T675*)C))->_push_back_flag/*0*/)) {
  1540. R=((((T675*)C))->_memory/*12*/)==((EOF));
  1541. }
  1542. /*FI*/return R;
  1543. }
  1544. void r675read_line(T675* C){
  1545. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC762last_string)))))->_count)=(0);
  1546. /*]*/
  1547. r675read_line_in(C,oBC762last_string);
  1548. }
  1549. /*No:STD_FILE_READ.input_stream*/
  1550. /*No:STD_FILE_READ.memory*/
  1551. T0* r347add_comment(T347* C,T0* a1){
  1552. T0* R=NULL;
  1553. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1554. R=(T0*)C;
  1555. }
  1556.  else {/*AT*//*IF*/if ((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(1)) {
  1557. R=(T0*)C;
  1558. }
  1559. else {
  1560. {T46*n=malloc(sizeof(*n));
  1561. *n=M46;
  1562. r46make(n,(T0*)C,a1);
  1563. R=(T0*)n;
  1564. }
  1565. }
  1566. /*FI*/}
  1567. /*FI*/return R;
  1568. }
  1569. void r347make(T347* C,T0* a1,T0* a2,T0* a3){
  1570. C->_start_position=a1;
  1571. C->_list=a2;
  1572. C->_compound=a3;
  1573. }
  1574. /*No:E_DEBUG.start_position*/
  1575. T0* r347to_runnable(T347* C,T0* a1){
  1576. T0* R=NULL;
  1577. /*IF*/if (((((T347*)C))->_run_compound/*4*/)==((void*)(NULL))) {
  1578. C->_run_compound=a1;
  1579. /*IF*/if (r590debug_check(((T590*)(oBC364run_control)))) {
  1580. /*IF*/if (((((T347*)C))->_compound/*16*/)!=((void*)(NULL))) {
  1581. C->_compound=r592to_runnable(((T592*)((((T347*)C))->_compound/*16*/)),r347current_type(C));
  1582. }
  1583. /*FI*/}
  1584. /*FI*/R=(T0*)C;
  1585. }
  1586. else {
  1587. {T347*n=malloc(sizeof(*n));
  1588. *n=M347;
  1589. r347make(n,(((T347*)C))->_start_position/*8*/,(((T347*)C))->_list/*12*/,(((T347*)C))->_compound/*16*/);
  1590. R=(T0*)n;
  1591. }
  1592. R=r347to_runnable(((T347*)R),a1);
  1593. }
  1594. /*FI*/return R;
  1595. }
  1596. void r347pretty_print(T347* C){
  1597. int _i=0;
  1598. r238keyword(((T238*)(oBC364fmt)),((T0*)ms1_347));
  1599. r238level_incr(((T238*)(oBC364fmt)));
  1600. /*IF*/if (((((T347*)C))->_list/*12*/)!=((void*)(NULL))) {
  1601. r238put_character(((T238*)(oBC364fmt)),'\50');
  1602. _i=(((T381*)((T381*)((((T347*)C))->_list/*12*/))))->_lower/*16*/;
  1603. while (!((_i)>((((T381*)((T381*)((((T347*)C))->_list/*12*/))))->_upper/*12*/))) {
  1604. r805pretty_print(((T805*)(r381item(((T381*)((((T347*)C))->_list/*12*/)),_i))));
  1605. _i=(_i)+(1);
  1606. /*IF*/if ((_i)<=((((T381*)((T381*)((((T347*)C))->_list/*12*/))))->_upper/*12*/)) {
  1607. r238put_character(((T238*)(oBC364fmt)),'\54');
  1608. }
  1609. /*FI*/}
  1610. r238put_character(((T238*)(oBC364fmt)),'\51');
  1611. }
  1612. /*FI*/r238level_decr(((T238*)(oBC364fmt)));
  1613. /*IF*/if (((((T347*)C))->_compound/*16*/)!=((void*)(NULL))) {
  1614. r592pretty_print(((T592*)((((T347*)C))->_compound/*16*/)));
  1615. }
  1616. /*FI*/r238indent(((T238*)(oBC364fmt)));
  1617. r238keyword(((T238*)(oBC364fmt)),((T0*)ms2_347));
  1618. /*IF*/if (r238print_end_debug(((T238*)(oBC364fmt)))) {
  1619. r238put_end(((T238*)(oBC364fmt)),((T0*)ms3_347));
  1620. }
  1621. /*FI*/}
  1622. /*No:E_DEBUG.list*/
  1623. T0* r347current_type(T347* C){
  1624. T0* R=NULL;
  1625. /*IF*/if (((((T347*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
  1626. R=(((T592*)((T592*)((((T347*)C))->_run_compound/*4*/))))->_current_type/*4*/;
  1627. }
  1628. /*FI*/return R;
  1629. }
  1630. /*No:E_DEBUG.run_compound*/
  1631. /*No:E_DEBUG.compound*/
  1632. /*No:E_DEBUG.end_mark_comment*/
  1633.  
  1634.