home *** CD-ROM | disk | FTP | other *** search
/ Amiga ACS 1998 #4 / amigaacscoverdisc1998-041998.iso / utilities / shareware / dev / ppcsmalleiffel / source.lha / bin_c / pretty23.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  46.6 KB  |  1,640 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. /*No:CALL_INFIX_DIV.arguments*/
  10. T0* r520add_comment(T520* C,T0* a1){
  11. T0* R=NULL;
  12. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  13. R=(T0*)C;
  14. }
  15. else {
  16. {T529*n=malloc(sizeof(*n));
  17. *n=M529;
  18. r529make(n,(T0*)C,a1);
  19. R=(T0*)n;
  20. }
  21. }
  22. /*FI*/return R;
  23. }
  24. int r520to_integer(T520* C){
  25. int R=0;
  26. r520error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T520*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  27. return R;
  28. }
  29. int r520is_a(T520* C,T0* a1){
  30. int R=0;
  31. R=X291is_a(X291run_type((((T520*)C))->_result_type/*16*/),X291run_type(X662result_type(a1)));
  32. /*IF*/if (!(R)) {
  33. r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T520*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/);
  34. r520error(X662start_position(a1),((T0*)ms4_662));
  35. }
  36. /*FI*/return R;
  37. }
  38. /*No:CALL_INFIX_DIV.is_current*/
  39. void r520make(T520* C,T0* a1,T0* a2,T0* a3){
  40. T0* _eal=NULL;
  41. /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
  42. r683add_position(a2);
  43. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
  44. r683fatal_error(((T683*)(oBC364eh)),b1);
  45. }/*]*/
  46. }
  47. /*FI*/{T454*n=malloc(sizeof(*n));
  48. *n=M454;
  49. r454make(n,r520operator(),a2);
  50. C->_feature_name=(T0*)n;
  51. }
  52. {T431*n=malloc(sizeof(*n));
  53. *n=M431;
  54. /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
  55. /*]*/
  56. _eal=(T0*)n;
  57. }
  58. r520make_call_1(C,a1,(((T520*)C))->_feature_name/*24*/,_eal);
  59. }
  60. void r520print_as_target(T520* C){
  61. r238put_character(((T238*)(oBC364fmt)),'\50');
  62. r520pretty_print(C);
  63. r238put_character(((T238*)(oBC364fmt)),'\51');
  64. r238put_character(((T238*)(oBC364fmt)),'\56');
  65. }
  66. /*No:CALL_INFIX_DIV.nb_errors*/
  67. /*No:CALL_INFIX_DIV.feature_name*/
  68. /*No:CALL_INFIX_DIV.fz_iinaiv*/
  69. /*No:CALL_INFIX_DIV.run_feature*/
  70. /*No:CALL_INFIX_DIV.start_position*/
  71. /*No:CALL_INFIX_DIV.target*/
  72. /*No:CALL_INFIX_DIV.precedence*/
  73. T0* r520to_runnable(T520* C,T0* a1){
  74. T0* R=NULL;
  75. T0* _tla=NULL;
  76. T0* _a=NULL;
  77. /*IF*/if (((((T520*)C))->_current_type/*4*/)==((void*)(NULL))) {
  78. r520to_runnable_0(C,a1);
  79. _a=r431to_runnable(((T431*)((((T520*)C))->_arguments/*20*/)),a1);
  80. /*IF*/if ((_a)==((void*)(NULL))) {
  81. r520error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T520*)C))->_arguments/*20*/)))/*)*/),((T0*)ms55_470));
  82. }
  83. else {
  84. C->_arguments=_a;
  85. }
  86. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  87. r431match_with(((T431*)((((T520*)C))->_arguments/*20*/)),(((T520*)C))->_run_feature/*12*/);
  88. }
  89. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  90. _tla=(((T520*)C))->_result_type/*16*/;
  91. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  92. case 239: 
  93. break;
  94. default:
  95. _tla=NULL;
  96. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  97. C->_result_type=X291run_type(X662result_type(/*(IRF4.6arg1*/r431first(((T431*)((((T520*)C))->_arguments/*20*/)))/*)*/));
  98. }
  99. /*FI*/}
  100. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  101. R=(T0*)C;
  102. }
  103. /*FI*/}
  104. else {
  105. R=r520twin(C);
  106. /*[IRF3.3set_current_type*/((((T520*)(((T520*)R))))->_current_type)=(NULL);
  107. /*]*/
  108. R=r520to_runnable(((T520*)R),a1);
  109. }
  110. /*FI*/return R;
  111. }
  112. void r520bracketed_pretty_print(T520* C){
  113. r238put_character(((T238*)(oBC364fmt)),'\50');
  114. r520pretty_print(C);
  115. r238put_character(((T238*)(oBC364fmt)),'\51');
  116. }
  117. /*No:CALL_INFIX_DIV.us_slash*/
  118. /*No:CALL_INFIX_DIV.result_type*/
  119. T0* r520twin(T520* C){
  120. T0* R=NULL;
  121. R=malloc(sizeof(*C));
  122. *((T520*)R)=*C;
  123. return R;
  124. }
  125. /*No:CALL_INFIX_DIV.set_current_type*/
  126. T0* r520operator(void){
  127. T0* R=NULL;
  128. R=((T0*)ms47_473);
  129. return R;
  130. }
  131. /*No:CALL_INFIX_DIV.atomic_precedence*/
  132. void r520pretty_print(T520* C){
  133. /*IF*/if ((X662precedence((((T520*)C))->_target/*8*/))==(13)) {
  134. X662pretty_print((((T520*)C))->_target/*8*/);
  135. r520print_op(C);
  136. /*IF*/if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T520*)C))->_arguments/*20*/)))/*)*/))==(13)) {
  137. X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T520*)C))->_arguments/*20*/)))/*)*/);
  138. }
  139.  else if ((8)>=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T520*)C))->_arguments/*20*/)))/*)*/))) {
  140. X662bracketed_pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T520*)C))->_arguments/*20*/)))/*)*/);
  141. }
  142. else {
  143. X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T520*)C))->_arguments/*20*/)))/*)*/);
  144. }
  145. /*FI*/}
  146.  else if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T520*)C))->_arguments/*20*/)))/*)*/))==(13)) {
  147. /*IF*/if ((X662precedence((((T520*)C))->_target/*8*/))>=(8)) {
  148. X662bracketed_pretty_print((((T520*)C))->_target/*8*/);
  149. }
  150. else {
  151. X662pretty_print((((T520*)C))->_target/*8*/);
  152. }
  153. /*FI*/r520print_op(C);
  154. X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T520*)C))->_arguments/*20*/)))/*)*/);
  155. }
  156.  else if ((8)<=(X662precedence((((T520*)C))->_target/*8*/))) {
  157. X662bracketed_pretty_print((((T520*)C))->_target/*8*/);
  158. r520print_op(C);
  159. /*IF*/if ((8)<=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T520*)C))->_arguments/*20*/)))/*)*/))) {
  160. X662bracketed_pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T520*)C))->_arguments/*20*/)))/*)*/);
  161. }
  162. else {
  163. X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T520*)C))->_arguments/*20*/)))/*)*/);
  164. }
  165. /*FI*/}
  166. else {
  167. X662pretty_print((((T520*)C))->_target/*8*/);
  168. r520print_op(C);
  169. X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T520*)C))->_arguments/*20*/)))/*)*/);
  170. }
  171. /*FI*/}
  172. void r520print_op(T520* C){
  173. r238put_character(((T238*)(oBC364fmt)),'\40');
  174. /*[IRF3.6pretty_print*/{T454* C1=((T454*)((((T520*)C))->_feature_name/*24*/));
  175. r238put_string(((T238*)(oBC364fmt)),(((T454*)C1))->_to_string/*4*/);
  176. }/*]*/
  177. r238put_character(((T238*)(oBC364fmt)),'\40');
  178. }
  179. /*No:CALL_INFIX_DIV.current_type*/
  180. void r520make_call_1(T520* C,T0* a1,T0* a2,T0* a3){
  181. C->_target=a1;
  182. C->_feature_name=a2;
  183. C->_arguments=a3;
  184. }
  185. /*No:CALL_INFIX_DIV.is_manifest_string*/
  186. /*No:CALL_INFIX_DIV.is_void*/
  187. void r520to_runnable_0(T520* C,T0* a1){
  188. C->_current_type=a1;
  189. r520cpc_to_runnable(C,a1);
  190. C->_result_type=/*X496*/((T0*)(((T808*)((T808*)((((T520*)C))->_run_feature/*12*/))))->_result_type/*24*/);
  191. /*IF*/if (((((T520*)C))->_result_type/*16*/)==((void*)(NULL))) {
  192. r683add_position(X496start_position((((T520*)C))->_run_feature/*12*/));
  193. r520error((((T454*)((T454*)((((T520*)C))->_feature_name/*24*/))))->_start_position/*8*/,((T0*)ms1_295));
  194. }
  195.  else if (X291is_like_current((((T520*)C))->_result_type/*16*/)) {
  196. C->_result_type=X662result_type((((T520*)C))->_target/*8*/);
  197. }
  198. /*FI*/}
  199. void r520cpc_to_runnable(T520* C,T0* a1){
  200. T0* _rc=NULL;
  201. T0* _t=NULL;
  202. _t=X662to_runnable((((T520*)C))->_target/*8*/,a1);
  203. /*IF*/if ((_t)==((void*)(NULL))) {
  204. r683add_position(X662start_position((((T520*)C))->_target/*8*/));
  205. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  206. r683fatal_error(((T683*)(oBC364eh)),b1);
  207. }/*]*/
  208. }
  209. /*FI*/C->_target=_t;
  210. _rc=X291run_class(X662result_type((((T520*)C))->_target/*8*/));
  211. C->_run_feature=r368get_rf(((T368*)_rc),(T0*)C);
  212. r576update((((T520*)C))->_target/*8*/,(((T520*)C))->_run_feature/*12*/);
  213. }
  214. void r520error(T0* a1,T0* a2){
  215. r683add_position(a1);
  216. r683error(((T683*)(oBC364eh)),a2);
  217. }
  218. /*No:CALL_INFIX_DIV.fatal_error*/
  219. /*No:CALL_INFIX_DIV.fz_bad_argument*/
  220. /*No:CALL_INFIX_DIV.arg1*/
  221. T0*oBC340ms_list=NULL;
  222. void r340add_last(T0* a1){
  223. r256add_last(((T256*)(oBC340ms_list)),a1);
  224. }
  225. /*No:ADDRESS_OF.rf*/
  226. T0* r708add_comment(T708* C,T0* a1){
  227. T0* R=NULL;
  228. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  229. R=(T0*)C;
  230. }
  231. else {
  232. {T529*n=malloc(sizeof(*n));
  233. *n=M529;
  234. r529make(n,(T0*)C,a1);
  235. R=(T0*)n;
  236. }
  237. }
  238. /*FI*/return R;
  239. }
  240. int r708to_integer(T708* C){
  241. int R=0;
  242. r708error(r708start_position(C),((T0*)ms69_470));
  243. return R;
  244. }
  245. int r708is_a(T708* C,T0* a1){
  246. int R=0;
  247. R=X291is_a(/*(IRF4.4run_type*/((T0*)((T900*)/*(IRF4.8result_type*/r708type_pointer()/*)*/))/*)*/,X291run_type(X662result_type(a1)));
  248. /*IF*/if (!(R)) {
  249. r683add_position(r708start_position(C));
  250. r708error(X662start_position(a1),((T0*)ms4_662));
  251. }
  252. /*FI*/return R;
  253. }
  254. /*No:ADDRESS_OF.is_current*/
  255. /*No:ADDRESS_OF.make*/
  256. /*No:ADDRESS_OF.print_as_target*/
  257. /*No:ADDRESS_OF.feature_name*/
  258. /*No:ADDRESS_OF.fz_iinaiv*/
  259. T0* r708start_position(T708* C){
  260. T0* R=NULL;
  261. R=X776start_position((((T708*)C))->_feature_name/*8*/);
  262. return R;
  263. }
  264. /*No:ADDRESS_OF.precedence*/
  265. T0* r708to_runnable(T708* C,T0* a1){
  266. T0* R=NULL;
  267. /*IF*/if (((((T708*)C))->_current_type/*4*/)==((void*)(NULL))) {
  268. C->_current_type=a1;
  269. C->_rf=r368get_rf_with(((T368*)(X291run_class(a1))),(((T708*)C))->_feature_name/*8*/);
  270. /*IF*/if (((((T708*)C))->_rf/*12*/)==((void*)(NULL))) {
  271. r708error(r708start_position(C),((T0*)ms2_708));
  272. }
  273. /*FI*/R=(T0*)C;
  274. }
  275. else {
  276. {T708*n=malloc(sizeof(*n));
  277. *n=M708;
  278. /*[IRF3.3make*/((((T708*)(n)))->_feature_name)=((((T708*)C))->_feature_name/*8*/);
  279. /*]*/
  280. R=(T0*)n;
  281. }
  282. R=r708to_runnable(((T708*)R),a1);
  283. }
  284. /*FI*/return R;
  285. }
  286. void r708bracketed_pretty_print(T708* C){
  287. r238put_character(((T238*)(oBC364fmt)),'\50');
  288. r708pretty_print(C);
  289. r238put_character(((T238*)(oBC364fmt)),'\51');
  290. }
  291. /*No:ADDRESS_OF.result_type*/
  292. /*No:ADDRESS_OF.atomic_precedence*/
  293. void r708pretty_print(T708* C){
  294. r238put_character(((T238*)(oBC364fmt)),'\44');
  295. X776pretty_print((((T708*)C))->_feature_name/*8*/);
  296. }
  297. /*No:ADDRESS_OF.current_type*/
  298. /*No:ADDRESS_OF.is_manifest_string*/
  299. /*No:ADDRESS_OF.is_void*/
  300. int fBC364type_pointer=0;
  301. T0*oBC364type_pointer=NULL;
  302. T0* r708type_pointer(void){
  303. if (fBC364type_pointer==0){
  304. T0* R=NULL;
  305. fBC364type_pointer=1;
  306. {T900*n=malloc(sizeof(*n));
  307. *n=M900;
  308. r900make(n,NULL);
  309. R=(T0*)n;
  310. }
  311. oBC364type_pointer=R;}
  312. return oBC364type_pointer;}
  313. void r708error(T0* a1,T0* a2){
  314. r683add_position(a1);
  315. r683error(((T683*)(oBC364eh)),a2);
  316. }
  317. /*No:TYPE_ARRAY.array_of*/
  318. T0*oBC709tmp_written_mark=NULL;
  319. int r709has_creation(T709* C,T0* a1){
  320. int R=0;
  321. /*IF*/if ((C)==((void*)((((T709*)C))->_run_type/*16*/))) {
  322. R=r605has_creation(((T605*)(r709base_class(C))),a1);
  323. }
  324. else {
  325. R=r709has_creation(((T709*)((((T709*)C))->_run_type/*16*/)),a1);
  326. }
  327. /*FI*/return R;
  328. }
  329. /*No:TYPE_ARRAY.is_anchored*/
  330. /*No:TYPE_ARRAY.is_array*/
  331. int r709is_a(T709* C,T0* a1){
  332. int R=0;
  333. /*IF*/if ((r709run_class(C))==((void*)(X291run_class(a1)))) {
  334. R=1;
  335. }
  336.  else if (X291is_array(a1)) {
  337. R=X291is_a(/*(IRF4.6array_of*/r701item(((T701*)((((T709*)C))->_generic_list/*8*/)),1)/*)*/,r701item(((T701*)(X291generic_list(a1))),1));
  338. /*IF*/if (!(R)) {
  339. /*[IRF3.6extend*/{char b1='\40';
  340. r7extend(((T7*)(oBC683explanation)),b1);
  341. }/*]*/
  342. r683add_type((T0*)C,((T0*)ms71_470));
  343. r683add_type(a1,((T0*)ms67_470));
  344. }
  345. /*FI*/}
  346.  else if (r605is_subclass_of(((T605*)(r709base_class(C))),X291base_class(a1))) {
  347. /*IF*/if (X291is_generic(a1)) {
  348. R=r605is_a_vncg(((T605*)(r709base_class(C))),(T0*)C,a1);
  349. }
  350. else {
  351. R=1;
  352. }
  353. /*FI*/}
  354. /*FI*//*IF*/if (!(R)) {
  355. r683add_type((T0*)C,((T0*)ms71_470));
  356. r683add_type(a1,((T0*)ms67_470));
  357. }
  358. /*FI*/return R;
  359. }
  360. /*No:TYPE_ARRAY.is_pointer*/
  361. /*No:TYPE_ARRAY.run_type*/
  362. /*No:TYPE_ARRAY.us_lower*/
  363. /*No:TYPE_ARRAY.us_array*/
  364. /*No:TYPE_ARRAY.is_string*/
  365. /*No:TYPE_ARRAY.is_like_feature*/
  366. /*No:TYPE_ARRAY.is_like_current*/
  367. /*No:TYPE_ARRAY.us_capacity*/
  368. void r709make(T709* C,T0* a1,T0* a2){
  369. T0* _owwm=NULL;
  370. {T451*n=malloc(sizeof(*n));
  371. *n=M451;
  372. r451make(n,((T0*)ms2_473),a1);
  373. C->_base_class_name=(T0*)n;
  374. }
  375. C->_generic_list=se_ma701(1,a2);
  376. _owwm=X291written_mark(a2);
  377. r7copy(((T7*)(oBC709tmp_written_mark)),((T0*)ms2_473));
  378. r7extend(((T7*)(oBC709tmp_written_mark)),'\133');
  379. r7append(((T7*)(oBC709tmp_written_mark)),_owwm);
  380. r7extend(((T7*)(oBC709tmp_written_mark)),'\135');
  381. C->_written_mark=r902item(oBC709tmp_written_mark);
  382. }
  383. /*No:TYPE_ARRAY.nb_errors*/
  384. /*No:TYPE_ARRAY.start_position*/
  385. /*No:TYPE_ARRAY.fz_inako*/
  386. /*No:TYPE_ARRAY.is_character*/
  387. /*No:TYPE_ARRAY.written_mark*/
  388. T0* r709to_runnable(T709* C,T0* a1){
  389. T0* R=NULL;
  390. T0* _rc=NULL;
  391. T0* _rt=NULL;
  392. T0* _elt2=NULL;
  393. T0* _elt1=NULL;
  394. /*IF*/if (((((T709*)C))->_run_type/*16*/)==((void*)(C))) {
  395. R=(T0*)C;
  396. }
  397. else {
  398. _elt1=r701item(((T701*)((((T709*)C))->_generic_list/*8*/)),1);
  399. _elt2=X291to_runnable(_elt1,a1);
  400. /*IF*/if (((_elt2)==((void*)(NULL)))||(!(X291is_run_type(_elt2)))) {
  401. /*IF*/if ((_elt2)!=((void*)(NULL))) {
  402. r683add_position(X291start_position(_elt2));
  403. }
  404. /*FI*/r709error(X291start_position(_elt1),((T0*)ms59_470));
  405. }
  406. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  407. _elt2=X291run_type(_elt2);
  408. /*IF*/if (((((T709*)C))->_run_type/*16*/)==((void*)(NULL))) {
  409. R=(T0*)C;
  410. /*IF*/if ((_elt2)==((void*)(_elt1))) {
  411. C->_run_type=(T0*)C;
  412. r709load_basic_features(C);
  413. }
  414. else {
  415. {T709*n=malloc(sizeof(*n));
  416. *n=M709;
  417. r709make_runnable(n,/*(IRF4.6start_position*/(((T451*)((T451*)((((T709*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,_elt2);
  418. C->_run_type=(T0*)n;
  419. }
  420. r709load_basic_features(((T709*)((((T709*)C))->_run_type/*16*/)));
  421. }
  422. /*FI*/}
  423. else {
  424. R=r709twin(C);
  425. {T709*n=malloc(sizeof(*n));
  426. *n=M709;
  427. r709make_runnable(n,/*(IRF4.6start_position*/(((T451*)((T451*)((((T709*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,_elt2);
  428. _rt=(T0*)n;
  429. }
  430. /*[IRF3.3set_run_type*/((((T709*)(((T709*)R))))->_run_type)=(_rt);
  431. /*]*/
  432. r709load_basic_features(((T709*)_rt));
  433. }
  434. /*FI*/}
  435. /*FI*/}
  436. /*FI*/_rc=X291run_class(r701item(((T701*)((((T709*)((T709*)R)))->_generic_list/*8*/)),1));
  437. _rc=r709run_class(((T709*)R));
  438. return R;
  439. }
  440. int r709is_run_type(T709* C){
  441. int R=0;
  442. T0* _t=NULL;
  443. /*IF*/if (((((T709*)C))->_run_type/*16*/)!=((void*)(NULL))) {
  444. R=1;
  445. }
  446. else {
  447. _t=r701item(((T701*)((((T709*)C))->_generic_list/*8*/)),1);
  448. /*IF*/if ((X291is_run_type(_t))&&((X291run_type(_t))==((void*)(_t)))) {
  449. C->_run_type=(T0*)C;
  450. R=1;
  451. }
  452. /*FI*/}
  453. /*FI*/return R;
  454. }
  455. /*No:TYPE_ARRAY.is_formal_generic*/
  456. /*No:TYPE_ARRAY.generic_list*/
  457. /*No:TYPE_ARRAY.is_real*/
  458. T0* r709twin(T709* C){
  459. T0* R=NULL;
  460. R=malloc(sizeof(*C));
  461. *((T709*)R)=*C;
  462. return R;
  463. }
  464. /*No:TYPE_ARRAY.is_bit*/
  465. /*No:TYPE_ARRAY.pretty_print*/
  466. T0* r709smallest_ancestor(T709* C,T0* a1){
  467. T0* R=NULL;
  468. T0* _array_of3=NULL;
  469. T0* _array_of2=NULL;
  470. T0* _array_of1=NULL;
  471. T0* _rto=NULL;
  472. _rto=X291run_type(a1);
  473. /*IF*/if (X291is_array(_rto)) {
  474. _array_of1=X291run_type(/*(IRF4.6array_of*/r701item(((T701*)((((T709*)C))->_generic_list/*8*/)),1)/*)*/);
  475. _array_of2=r701item(((T701*)(X291generic_list(_rto))),1);
  476. _array_of3=X291smallest_ancestor(_array_of1,_array_of2);
  477. /*IF*/if ((_array_of3)==((void*)(_array_of1))) {
  478. R=(T0*)C;
  479. }
  480.  else if ((_array_of3)==((void*)(_array_of2))) {
  481. R=a1;
  482. }
  483. else {
  484. {T709*n=malloc(sizeof(*n));
  485. *n=M709;
  486. r709make(n,NULL,_array_of3);
  487. R=(T0*)n;
  488. }
  489. }
  490. /*FI*/}
  491. else {
  492. R=X291smallest_ancestor(_rto,(T0*)C);
  493. }
  494. /*FI*/return R;
  495. }
  496. /*No:TYPE_ARRAY.is_boolean*/
  497. /*No:TYPE_ARRAY.set_run_type*/
  498. /*No:TYPE_ARRAY.is_double*/
  499. /*No:TYPE_ARRAY.us_storage*/
  500. T0* r709run_class(T709* C){
  501. T0* R=NULL;
  502. /*IF*/if (r709is_run_type(C)) {
  503. R=r604run_class((((T709*)C))->_run_type/*16*/);
  504. }
  505. /*FI*/return R;
  506. }
  507. T0* r709run_time_mark(T709* C){
  508. T0* R=NULL;
  509. /*IF*/if (r709is_run_type(C)) {
  510. R=(((T709*)((T709*)((((T709*)C))->_run_type/*16*/))))->_written_mark/*12*/;
  511. }
  512. /*FI*/return R;
  513. }
  514. int r709is_a_in(T709* C,T0* a1,T0* a2){
  515. int R=0;
  516. T0* _ct=NULL;
  517. T0* _t2=NULL;
  518. T0* _t1=NULL;
  519. /*IF*/if (((((T709*)C))->_written_mark/*12*/)==((void*)(X291written_mark(a1)))) {
  520. R=1;
  521. }
  522. else {
  523. _ct=(((T368*)((T368*)a2)))->_current_type/*0*/;
  524. _t1=r709to_runnable(C,_ct);
  525. _t2=X291to_runnable(a1,_ct);
  526. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  527. R=1;
  528. }
  529. else {
  530. R=X291is_a(_t1,_t2);
  531. }
  532. /*FI*/}
  533. /*FI*/return R;
  534. }
  535. T0* r709look_up_for(T709* C,T0* a1,T0* a2){
  536. T0* R=NULL;
  537. R=r605look_up_for(((T605*)(r709base_class(C))),a1,a2);
  538. return R;
  539. }
  540. /*No:TYPE_ARRAY.expanded_initializer*/
  541. /*No:TYPE_ARRAY.fz_dot*/
  542. /*No:TYPE_ARRAY.is_generic*/
  543. /*No:TYPE_ARRAY.fz_bga*/
  544. /*No:TYPE_ARRAY.used_as_reference*/
  545. /*No:TYPE_ARRAY.is_reference*/
  546. void r709error(T0* a1,T0* a2){
  547. r683add_position(a1);
  548. r683error(((T683*)(oBC364eh)),a2);
  549. }
  550. void r709load_basic_features(T709* C){
  551. T0* _rc=NULL;
  552. T0* _rf=NULL;
  553. T0* _elt_type=NULL;
  554. _elt_type=r701item(((T701*)((((T709*)C))->_generic_list/*8*/)),1);
  555. /*IF*/if (X291is_expanded(_elt_type)) {
  556. r368set_at_run_time(((T368*)(X291run_class(_elt_type))));
  557. }
  558. /*FI*/_rc=r709run_class(C);
  559. _rf=r368get_feature_with(((T368*)_rc),((T0*)ms55_473));
  560. _rf=r368get_feature_with(((T368*)_rc),((T0*)ms87_473));
  561. _rf=r368get_feature_with(((T368*)_rc),((T0*)ms140_473));
  562. _rf=r368get_feature_with(((T368*)_rc),((T0*)ms130_473));
  563. }
  564. T0* r709base_class(T709* C){
  565. T0* R=NULL;
  566. T0* _bcn=NULL;
  567. _bcn=(((T709*)C))->_base_class_name/*4*/;
  568. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  569. R=r451base_class(((T451*)_bcn));
  570. }
  571. else {
  572. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  573. r7append(((T7*)(oBC683explanation)),b1);
  574. }/*]*/
  575. r683add_type((T0*)C,((T0*)ms67_470));
  576. r683print_as_fatal_error(((T683*)(oBC364eh)));
  577. }
  578. /*FI*/return R;
  579. }
  580. /*No:TYPE_ARRAY.is_any*/
  581. /*No:TYPE_ARRAY.us_upper*/
  582. /*No:TYPE_ARRAY.base_class_name*/
  583. /*No:TYPE_ARRAY.is_expanded*/
  584. /*No:TYPE_ARRAY.is_basic_eiffel_expanded*/
  585. /*No:TYPE_ARRAY.is_none*/
  586. /*No:TYPE_ARRAY.is_integer*/
  587. void r709make_runnable(T709* C,T0* a1,T0* a2){
  588. r709make(C,a1,a2);
  589. C->_run_type=(T0*)C;
  590. }
  591. /*No:E_OLD.id*/
  592. T0* r664add_comment(T664* C,T0* a1){
  593. T0* R=NULL;
  594. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  595. R=(T0*)C;
  596. }
  597. else {
  598. {T529*n=malloc(sizeof(*n));
  599. *n=M529;
  600. r529make(n,(T0*)C,a1);
  601. R=(T0*)n;
  602. }
  603. }
  604. /*FI*/return R;
  605. }
  606. int r664to_integer(T664* C){
  607. int R=0;
  608. r664error(r664start_position(C),((T0*)ms69_470));
  609. return R;
  610. }
  611. int r664is_a(T664* C,T0* a1){
  612. int R=0;
  613. R=X291is_a(X291run_type(r664result_type(C)),X291run_type(X662result_type(a1)));
  614. /*IF*/if (!(R)) {
  615. r683add_position(r664start_position(C));
  616. r664error(X662start_position(a1),((T0*)ms4_662));
  617. }
  618. /*FI*/return R;
  619. }
  620. /*No:E_OLD.is_current*/
  621. /*No:E_OLD.make*/
  622. void r664print_as_target(T664* C){
  623. r238put_character(((T238*)(oBC364fmt)),'\50');
  624. r664pretty_print(C);
  625. r238put_character(((T238*)(oBC364fmt)),'\51');
  626. r238put_character(((T238*)(oBC364fmt)),'\56');
  627. }
  628. /*No:E_OLD.fz_iinaiv*/
  629. /*No:E_OLD.expression*/
  630. T0* r664start_position(T664* C){
  631. T0* R=NULL;
  632. R=X662start_position((((T664*)C))->_expression/*8*/);
  633. return R;
  634. }
  635. /*No:E_OLD.precedence*/
  636. T0* r664to_runnable(T664* C,T0* a1){
  637. T0* R=NULL;
  638. T0* _exp=NULL;
  639. /*IF*/if (((((T664*)C))->_current_type/*4*/)==((void*)(NULL))) {
  640. C->_current_type=a1;
  641. _exp=X662to_runnable((((T664*)C))->_expression/*8*/,a1);
  642. /*IF*/if ((_exp)==((void*)(NULL))) {
  643. r664error(r664start_position(C),((T0*)ms1_664));
  644. }
  645. else {
  646. C->_expression=_exp;
  647. }
  648. /*FI*/r417increment(((T417*)(oBC664id_counter)));
  649. C->_id=(((T417*)((T417*)(oBC664id_counter))))->_value/*0*/;
  650. R=(T0*)C;
  651. }
  652. else {
  653. {T664*n=malloc(sizeof(*n));
  654. *n=M664;
  655. /*[IRF3.3make*/((((T664*)(n)))->_expression)=((((T664*)C))->_expression/*8*/);
  656. /*]*/
  657. R=(T0*)n;
  658. }
  659. R=r664to_runnable(((T664*)R),a1);
  660. }
  661. /*FI*/return R;
  662. }
  663. void r664bracketed_pretty_print(T664* C){
  664. r238put_character(((T238*)(oBC364fmt)),'\50');
  665. r664pretty_print(C);
  666. r238put_character(((T238*)(oBC364fmt)),'\51');
  667. }
  668. T0* r664result_type(T664* C){
  669. T0* R=NULL;
  670. R=X662result_type((((T664*)C))->_expression/*8*/);
  671. return R;
  672. }
  673. void r664pretty_print(T664* C){
  674. r238put_string(((T238*)(oBC364fmt)),((T0*)ms2_664));
  675. r238level_incr(((T238*)(oBC364fmt)));
  676. X662pretty_print((((T664*)C))->_expression/*8*/);
  677. r238level_decr(((T238*)(oBC364fmt)));
  678. }
  679. /*No:E_OLD.current_type*/
  680. /*No:E_OLD.is_manifest_string*/
  681. /*No:E_OLD.is_void*/
  682. void r664error(T0* a1,T0* a2){
  683. r683add_position(a1);
  684. r683error(((T683*)(oBC364eh)),a2);
  685. }
  686. T0*oBC664id_counter=NULL;
  687. /*No:CST_ATT_CHARACTER.arguments*/
  688. T0* r554try_to_undefine(T554* C,T0* a1,T0* a2){
  689. T0* R=NULL;
  690. X776undefine_in(a1,a2);
  691. R=r554try_to_undefine_aux(C,a1,a2);
  692. /*IF*/if ((R)!=((void*)(NULL))) {
  693. /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T554*)C))->_clients/*20*/);
  694. /*]*/
  695. }
  696. else {
  697. r605fatal_undefine(((T605*)a2),a1);
  698. }
  699. /*FI*/return R;
  700. }
  701. /*No:CST_ATT_CHARACTER.is_deferred*/
  702. void r554pretty_tail(T554* C){
  703. r238put_string(((T238*)(oBC364fmt)),((T0*)ms1_418));
  704. /*[IRF3.6pretty_print*/{T260* C1=((T260*)(/*(IRF4.3value*/(((T554*)C))->_value_mem/*24*//*)*/));
  705. r238put_string(((T238*)(oBC364fmt)),r260to_string(C1));
  706. }/*]*/
  707. }
  708. void r554add_into(T554* C,T0* a1){
  709. T0* _fn=NULL;
  710. int _i=0;
  711. C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T554*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
  712. _i=1;
  713. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T554*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  714. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T554*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
  715. /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
  716. _fn=/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)(r237at(((T237*)a1),X776to_key(_fn))))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  717. r683add_position(X776start_position(_fn));
  718. r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T554*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
  719. r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
  720. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  721. r7append(((T7*)(oBC683explanation)),b1);
  722. }/*]*/
  723. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  724. }
  725. else {
  726. r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
  727. }
  728. /*FI*/_i=(_i)+(1);
  729. }
  730. }
  731. T0* r554try_to_undefine_aux(T554* C,T0* a1,T0* a2){
  732. T0* R=NULL;
  733. r683add_position(r554start_position(C));
  734. r554error(X776start_position(a1),((T0*)ms1_308));
  735. r605fatal_undefine(((T605*)a2),a1);
  736. return R;
  737. }
  738. void r554make(T554* C,T0* a1,T0* a2,T0* a3){
  739. r554make_e_feature(C,a1,a2);
  740. C->_value_mem=a3;
  741. }
  742. /*No:CST_ATT_CHARACTER.nb_errors*/
  743. void r554pretty_print_one_name(T0* a1){
  744. /*IF*/if (X776is_frozen(a1)) {
  745. r238keyword(((T238*)(oBC364fmt)),((T0*)ms10_359));
  746. }
  747. /*FI*/X776definition_pretty_print(a1);
  748. }
  749. /*No:CST_ATT_CHARACTER.set_header_comment*/
  750. T0* r554start_position(T554* C){
  751. T0* R=NULL;
  752. R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T554*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  753. return R;
  754. }
  755. T0* r554to_run_feature(T554* C,T0* a1,T0* a2){
  756. T0* R=NULL;
  757. T0* _rc=NULL;
  758. _rc=X291run_class(a1);
  759. R=r368at(((T368*)_rc),a2);
  760. if(NULL!=(R))switch(((T0*)R)->id) {
  761. case 808: 
  762. break;
  763. default:
  764. R=NULL;
  765. };/*IF*/if ((R)==((void*)(NULL))) {
  766. {T808*n=malloc(sizeof(*n));
  767. *n=M808;
  768. r808make(n,a1,a2,(T0*)C);
  769. R=(T0*)n;
  770. }
  771. }
  772. /*FI*/return R;
  773. }
  774. /*No:CST_ATT_CHARACTER.ensure_assertion*/
  775. /*No:CST_ATT_CHARACTER.code_require*/
  776. /*No:CST_ATT_CHARACTER.result_type*/
  777. /*No:CST_ATT_CHARACTER.em1*/
  778. void r554pretty_print(T554* C){
  779. r554pretty_print_profile(C);
  780. r554pretty_tail(C);
  781. r238put_character(((T238*)(oBC364fmt)),'\73');
  782. /*IF*/if (((((T554*)C))->_header_comment/*16*/)!=((void*)(NULL))) {
  783. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
  784. /*]*/
  785. r238indent(((T238*)(oBC364fmt)));
  786. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(1);
  787. /*]*/
  788. r393pretty_print(((T393*)((((T554*)C))->_header_comment/*16*/)));
  789. }
  790. /*FI*/}
  791. /*No:CST_ATT_CHARACTER.set_clients*/
  792. /*No:CST_ATT_CHARACTER.em2*/
  793. /*No:CST_ATT_CHARACTER.require_assertion*/
  794. /*No:CST_ATT_CHARACTER.value*/
  795. /*No:CST_ATT_CHARACTER.names*/
  796. /*No:CST_ATT_CHARACTER.value_mem*/
  797. void r554pretty_print_profile(T554* C){
  798. r554pretty_print_names(C);
  799. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
  800. /*]*/
  801. /*[IRF3.1pretty_print_arguments*//*]*/
  802. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(3);
  803. /*]*/
  804. /*IF*/if (((((T554*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  805. r238put_string(((T238*)(oBC364fmt)),((T0*)ms8_359));
  806. X291pretty_print((((T554*)C))->_result_type/*12*/);
  807. }
  808. /*FI*/}
  809. void r554pretty_print_names(T554* C){
  810. int _i=0;
  811. _i=1;
  812. r554pretty_print_one_name(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T554*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/);
  813. _i=(_i)+(1);
  814. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T554*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  815. r238put_string(((T238*)(oBC364fmt)),((T0*)ms9_359));
  816. r554pretty_print_one_name(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T554*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/);
  817. _i=(_i)+(1);
  818. }
  819. }
  820. int r554can_hide(T554* C,T0* a1,T0* a2){
  821. int R=0;
  822. /*IF*/if (((((T554*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  823. /*IF*/if ((((((T554*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  824. r683add_position(X359start_position(a1));
  825. r554error(r554start_position(C),((T0*)ms5_359));
  826. }
  827. /*FI*/}
  828. /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
  829. /*IF*/{/*AT*/r683add_position(X359start_position(a1));
  830. r554error(r554start_position(C),((T0*)ms6_359));
  831. }
  832. /*FI*/}
  833. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  834. /*IF*/if (((((T554*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  835. /*IF*/if (!(X291is_a_in((((T554*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  836. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  837. r7append(((T7*)(oBC683explanation)),b1);
  838. }/*]*/
  839. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T368*)((T368*)a2)))->_current_type/*0*/);
  840. r7append(((T7*)(oBC683explanation)),b1);
  841. }/*]*/
  842. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  843. }
  844. /*FI*/}
  845. /*FI*/}
  846. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  847. /*IF*//*AF*//*AE*/
  848. /*FI*/}
  849. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  850. return R;
  851. }
  852. /*No:CST_ATT_CHARACTER.header_comment*/
  853. int r554is_merge_with(T554* C,T0* a1,T0* a2){
  854. int R=0;
  855. /*IF*/if (((((T554*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  856. /*IF*/if ((((((T554*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  857. r683add_position(X359start_position(a1));
  858. r554error(r554start_position(C),((T0*)ms2_359));
  859. }
  860. /*FI*/}
  861. /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
  862. /*IF*/{/*AT*/r683add_position(X359start_position(a1));
  863. r554error(r554start_position(C),((T0*)ms3_359));
  864. }
  865. /*FI*/}
  866. /*FI*//*IF*/if (((((T554*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  867. /*IF*/if (!(X291is_a_in((((T554*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  868. r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
  869. }
  870. /*FI*/}
  871. /*FI*//*IF*//*AF*//*AE*/
  872. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  873. return R;
  874. }
  875. /*No:CST_ATT_CHARACTER.fz_dot*/
  876. /*No:CST_ATT_CHARACTER.first_name*/
  877. /*No:CST_ATT_CHARACTER.clients*/
  878. void r554collect_for(int a1){
  879. /*IF*/if ((a1)==(1001)) {
  880. /*IF*//*AF*//*AE*/
  881. /*FI*/}
  882. else {
  883. /*IF*//*AF*//*AE*/
  884. /*FI*/}
  885. /*FI*/}
  886. void r554error(T0* a1,T0* a2){
  887. r683add_position(a1);
  888. r683error(((T683*)(oBC364eh)),a2);
  889. }
  890. /*No:CST_ATT_CHARACTER.base_class*/
  891. /*No:CST_ATT_CHARACTER.pretty_print_arguments*/
  892. void r554make_e_feature(T554* C,T0* a1,T0* a2){
  893. C->_names=a1;
  894. C->_result_type=a2;
  895. }
  896. /*No:CALL_INFIX_POWER.arguments*/
  897. T0* r557add_comment(T557* C,T0* a1){
  898. T0* R=NULL;
  899. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  900. R=(T0*)C;
  901. }
  902. else {
  903. {T529*n=malloc(sizeof(*n));
  904. *n=M529;
  905. r529make(n,(T0*)C,a1);
  906. R=(T0*)n;
  907. }
  908. }
  909. /*FI*/return R;
  910. }
  911. int r557to_integer(T557* C){
  912. int R=0;
  913. r557error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T557*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  914. return R;
  915. }
  916. int r557is_a(T557* C,T0* a1){
  917. int R=0;
  918. R=X291is_a(X291run_type((((T557*)C))->_result_type/*16*/),X291run_type(X662result_type(a1)));
  919. /*IF*/if (!(R)) {
  920. r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T557*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/);
  921. r557error(X662start_position(a1),((T0*)ms4_662));
  922. }
  923. /*FI*/return R;
  924. }
  925. /*No:CALL_INFIX_POWER.is_current*/
  926. void r557make(T557* C,T0* a1,T0* a2,T0* a3){
  927. T0* _eal=NULL;
  928. /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
  929. r683add_position(a2);
  930. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
  931. r683fatal_error(((T683*)(oBC364eh)),b1);
  932. }/*]*/
  933. }
  934. /*FI*/{T454*n=malloc(sizeof(*n));
  935. *n=M454;
  936. r454make(n,r557operator(),a2);
  937. C->_feature_name=(T0*)n;
  938. }
  939. {T431*n=malloc(sizeof(*n));
  940. *n=M431;
  941. /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
  942. /*]*/
  943. _eal=(T0*)n;
  944. }
  945. r557make_call_1(C,a1,(((T557*)C))->_feature_name/*24*/,_eal);
  946. }
  947. void r557print_as_target(T557* C){
  948. r238put_character(((T238*)(oBC364fmt)),'\50');
  949. r557pretty_print(C);
  950. r238put_character(((T238*)(oBC364fmt)),'\51');
  951. r238put_character(((T238*)(oBC364fmt)),'\56');
  952. }
  953. /*No:CALL_INFIX_POWER.nb_errors*/
  954. /*No:CALL_INFIX_POWER.feature_name*/
  955. /*No:CALL_INFIX_POWER.fz_iinaiv*/
  956. /*No:CALL_INFIX_POWER.run_feature*/
  957. /*No:CALL_INFIX_POWER.start_position*/
  958. /*No:CALL_INFIX_POWER.target*/
  959. /*No:CALL_INFIX_POWER.precedence*/
  960. T0* r557to_runnable(T557* C,T0* a1){
  961. T0* R=NULL;
  962. T0* _tla=NULL;
  963. T0* _a=NULL;
  964. /*IF*/if (((((T557*)C))->_current_type/*4*/)==((void*)(NULL))) {
  965. r557to_runnable_0(C,a1);
  966. _a=r431to_runnable(((T431*)((((T557*)C))->_arguments/*20*/)),a1);
  967. /*IF*/if ((_a)==((void*)(NULL))) {
  968. r557error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T557*)C))->_arguments/*20*/)))/*)*/),((T0*)ms55_470));
  969. }
  970. else {
  971. C->_arguments=_a;
  972. }
  973. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  974. r431match_with(((T431*)((((T557*)C))->_arguments/*20*/)),(((T557*)C))->_run_feature/*12*/);
  975. }
  976. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  977. _tla=(((T557*)C))->_result_type/*16*/;
  978. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  979. case 239: 
  980. break;
  981. default:
  982. _tla=NULL;
  983. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  984. C->_result_type=X291run_type(X662result_type(/*(IRF4.6arg1*/r431first(((T431*)((((T557*)C))->_arguments/*20*/)))/*)*/));
  985. }
  986. /*FI*/}
  987. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  988. R=(T0*)C;
  989. }
  990. /*FI*/}
  991. else {
  992. R=r557twin(C);
  993. /*[IRF3.3set_current_type*/((((T557*)(((T557*)R))))->_current_type)=(NULL);
  994. /*]*/
  995. R=r557to_runnable(((T557*)R),a1);
  996. }
  997. /*FI*/return R;
  998. }
  999. void r557bracketed_pretty_print(T557* C){
  1000. r238put_character(((T238*)(oBC364fmt)),'\50');
  1001. r557pretty_print(C);
  1002. r238put_character(((T238*)(oBC364fmt)),'\51');
  1003. }
  1004. /*No:CALL_INFIX_POWER.result_type*/
  1005. T0* r557twin(T557* C){
  1006. T0* R=NULL;
  1007. R=malloc(sizeof(*C));
  1008. *((T557*)R)=*C;
  1009. return R;
  1010. }
  1011. /*No:CALL_INFIX_POWER.set_current_type*/
  1012. T0* r557operator(void){
  1013. T0* R=NULL;
  1014. R=((T0*)ms44_473);
  1015. return R;
  1016. }
  1017. /*No:CALL_INFIX_POWER.atomic_precedence*/
  1018. void r557pretty_print(T557* C){
  1019. /*IF*/if ((X662precedence((((T557*)C))->_target/*8*/))==(13)) {
  1020. X662pretty_print((((T557*)C))->_target/*8*/);
  1021. r557print_op(C);
  1022. /*IF*/if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T557*)C))->_arguments/*20*/)))/*)*/))==(13)) {
  1023. X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T557*)C))->_arguments/*20*/)))/*)*/);
  1024. }
  1025.  else if ((9)>(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T557*)C))->_arguments/*20*/)))/*)*/))) {
  1026. X662bracketed_pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T557*)C))->_arguments/*20*/)))/*)*/);
  1027. }
  1028. else {
  1029. X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T557*)C))->_arguments/*20*/)))/*)*/);
  1030. }
  1031. /*FI*/}
  1032.  else if ((X662precedence((((T557*)C))->_target/*8*/))<=(9)) {
  1033. X662bracketed_pretty_print((((T557*)C))->_target/*8*/);
  1034. r557print_op(C);
  1035. X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T557*)C))->_arguments/*20*/)))/*)*/);
  1036. }
  1037. else {
  1038. X662pretty_print((((T557*)C))->_target/*8*/);
  1039. r557print_op(C);
  1040. X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T557*)C))->_arguments/*20*/)))/*)*/);
  1041. }
  1042. /*FI*/}
  1043. void r557print_op(T557* C){
  1044. r238put_character(((T238*)(oBC364fmt)),'\40');
  1045. /*[IRF3.6pretty_print*/{T454* C1=((T454*)((((T557*)C))->_feature_name/*24*/));
  1046. r238put_string(((T238*)(oBC364fmt)),(((T454*)C1))->_to_string/*4*/);
  1047. }/*]*/
  1048. r238put_character(((T238*)(oBC364fmt)),'\40');
  1049. }
  1050. /*No:CALL_INFIX_POWER.current_type*/
  1051. void r557make_call_1(T557* C,T0* a1,T0* a2,T0* a3){
  1052. C->_target=a1;
  1053. C->_feature_name=a2;
  1054. C->_arguments=a3;
  1055. }
  1056. /*No:CALL_INFIX_POWER.is_manifest_string*/
  1057. /*No:CALL_INFIX_POWER.is_void*/
  1058. void r557to_runnable_0(T557* C,T0* a1){
  1059. C->_current_type=a1;
  1060. r557cpc_to_runnable(C,a1);
  1061. C->_result_type=/*X496*/((T0*)(((T808*)((T808*)((((T557*)C))->_run_feature/*12*/))))->_result_type/*24*/);
  1062. /*IF*/if (((((T557*)C))->_result_type/*16*/)==((void*)(NULL))) {
  1063. r683add_position(X496start_position((((T557*)C))->_run_feature/*12*/));
  1064. r557error((((T454*)((T454*)((((T557*)C))->_feature_name/*24*/))))->_start_position/*8*/,((T0*)ms1_295));
  1065. }
  1066.  else if (X291is_like_current((((T557*)C))->_result_type/*16*/)) {
  1067. C->_result_type=X662result_type((((T557*)C))->_target/*8*/);
  1068. }
  1069. /*FI*/}
  1070. void r557cpc_to_runnable(T557* C,T0* a1){
  1071. T0* _rc=NULL;
  1072. T0* _t=NULL;
  1073. _t=X662to_runnable((((T557*)C))->_target/*8*/,a1);
  1074. /*IF*/if ((_t)==((void*)(NULL))) {
  1075. r683add_position(X662start_position((((T557*)C))->_target/*8*/));
  1076. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  1077. r683fatal_error(((T683*)(oBC364eh)),b1);
  1078. }/*]*/
  1079. }
  1080. /*FI*/C->_target=_t;
  1081. _rc=X291run_class(X662result_type((((T557*)C))->_target/*8*/));
  1082. C->_run_feature=r368get_rf(((T368*)_rc),(T0*)C);
  1083. r576update((((T557*)C))->_target/*8*/,(((T557*)C))->_run_feature/*12*/);
  1084. }
  1085. void r557error(T0* a1,T0* a2){
  1086. r683add_position(a1);
  1087. r683error(((T683*)(oBC364eh)),a2);
  1088. }
  1089. /*No:CALL_INFIX_POWER.fatal_error*/
  1090. /*No:CALL_INFIX_POWER.fz_bad_argument*/
  1091. /*No:CALL_INFIX_POWER.arg1*/
  1092. /*No:CALL_INFIX_POWER.us_pow*/
  1093. T0* r72add_comment(T72* C,T0* a1){
  1094. T0* R=NULL;
  1095. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1096. R=(T0*)C;
  1097. }
  1098. else {
  1099. {T529*n=malloc(sizeof(*n));
  1100. *n=M529;
  1101. r529make(n,(T0*)C,a1);
  1102. R=(T0*)n;
  1103. }
  1104. }
  1105. /*FI*/return R;
  1106. }
  1107. int r72to_integer(T72* C){
  1108. int R=0;
  1109. T0* _rf1=NULL;
  1110. _rf1=(((T72*)C))->_run_feature/*12*/;
  1111. if(NULL!=(_rf1))switch(((T0*)_rf1)->id) {
  1112. case 808: 
  1113. break;
  1114. default:
  1115. _rf1=NULL;
  1116. };/*IF*/if ((_rf1)==((void*)(NULL))) {
  1117. r72error(/*(IRF4.6start_position*/(((T406*)((T406*)((((T72*)C))->_feature_name/*20*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  1118. }
  1119. else {
  1120. R=X662to_integer((((T808*)((T808*)_rf1)))->_value/*36*/);
  1121. }
  1122. /*FI*/return R;
  1123. }
  1124. int r72is_a(T72* C,T0* a1){
  1125. int R=0;
  1126. R=X291is_a(X291run_type((((T72*)C))->_result_type/*16*/),X291run_type(X662result_type(a1)));
  1127. /*IF*/if (!(R)) {
  1128. r683add_position(/*(IRF4.6start_position*/(((T406*)((T406*)((((T72*)C))->_feature_name/*20*/))))->_start_position/*8*//*)*/);
  1129. r72error(X662start_position(a1),((T0*)ms4_662));
  1130. }
  1131. /*FI*/return R;
  1132. }
  1133. /*No:CALL_PREFIX_MINUS.is_current*/
  1134. void r72make(T72* C,T0* a1,T0* a2){
  1135. {T406*n=malloc(sizeof(*n));
  1136. *n=M406;
  1137. r406make(n,r72operator(),a1);
  1138. C->_feature_name=(T0*)n;
  1139. }
  1140. r72make_call0(C,a2,(((T72*)C))->_feature_name/*20*/);
  1141. }
  1142. void r72print_as_target(T72* C){
  1143. r238put_character(((T238*)(oBC364fmt)),'\50');
  1144. r72pretty_print(C);
  1145. r238put_character(((T238*)(oBC364fmt)),'\51');
  1146. r238put_character(((T238*)(oBC364fmt)),'\56');
  1147. }
  1148. /*No:CALL_PREFIX_MINUS.nb_errors*/
  1149. /*No:CALL_PREFIX_MINUS.feature_name*/
  1150. /*No:CALL_PREFIX_MINUS.fz_iinaiv*/
  1151. /*No:CALL_PREFIX_MINUS.run_feature*/
  1152. /*No:CALL_PREFIX_MINUS.start_position*/
  1153. /*No:CALL_PREFIX_MINUS.target*/
  1154. /*No:CALL_PREFIX_MINUS.precedence*/
  1155. T0* r72to_runnable(T72* C,T0* a1){
  1156. T0* R=NULL;
  1157. /*IF*/if (((((T72*)C))->_current_type/*4*/)==((void*)(NULL))) {
  1158. r72to_runnable_0(C,a1);
  1159. /*IF*/if (((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0))&&((X496arg_count((((T72*)C))->_run_feature/*12*/))>(0))) {
  1160. r683add_position((((T406*)((T406*)((((T72*)C))->_feature_name/*20*/))))->_start_position/*8*/);
  1161. r72error(X496start_position((((T72*)C))->_run_feature/*12*/),((T0*)ms1_752));
  1162. }
  1163. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1164. R=(T0*)C;
  1165. }
  1166. /*FI*/}
  1167. else {
  1168. R=r72twin(C);
  1169. /*[IRF3.3set_current_type*/((((T72*)(((T72*)R))))->_current_type)=(NULL);
  1170. /*]*/
  1171. R=r72to_runnable(((T72*)R),a1);
  1172. }
  1173. /*FI*/return R;
  1174. }
  1175. void r72bracketed_pretty_print(T72* C){
  1176. r238put_character(((T238*)(oBC364fmt)),'\50');
  1177. r72pretty_print(C);
  1178. r238put_character(((T238*)(oBC364fmt)),'\51');
  1179. }
  1180. /*No:CALL_PREFIX_MINUS.result_type*/
  1181. T0* r72twin(T72* C){
  1182. T0* R=NULL;
  1183. R=malloc(sizeof(*C));
  1184. *((T72*)R)=*C;
  1185. return R;
  1186. }
  1187. /*No:CALL_PREFIX_MINUS.set_current_type*/
  1188. T0* r72operator(void){
  1189. T0* R=NULL;
  1190. R=((T0*)ms37_473);
  1191. return R;
  1192. }
  1193. void r72pretty_print(T72* C){
  1194. /*[IRF3.6pretty_print*/{T406* C1=((T406*)((((T72*)C))->_feature_name/*20*/));
  1195. r238put_string(((T238*)(oBC364fmt)),(((T406*)C1))->_to_string/*4*/);
  1196. }/*]*/
  1197. r238put_character(((T238*)(oBC364fmt)),'\40');
  1198. /*IF*/if ((X662precedence((((T72*)C))->_target/*8*/))<(11)) {
  1199. r238put_character(((T238*)(oBC364fmt)),'\50');
  1200. X662pretty_print((((T72*)C))->_target/*8*/);
  1201. r238put_character(((T238*)(oBC364fmt)),'\51');
  1202. }
  1203. else {
  1204. X662pretty_print((((T72*)C))->_target/*8*/);
  1205. }
  1206. /*FI*/}
  1207. /*No:CALL_PREFIX_MINUS.us_minus*/
  1208. /*No:CALL_PREFIX_MINUS.current_type*/
  1209. /*No:CALL_PREFIX_MINUS.is_manifest_string*/
  1210. /*No:CALL_PREFIX_MINUS.is_void*/
  1211. void r72to_runnable_0(T72* C,T0* a1){
  1212. C->_current_type=a1;
  1213. r72cpc_to_runnable(C,a1);
  1214. C->_result_type=/*X496*/((T0*)(((T808*)((T808*)((((T72*)C))->_run_feature/*12*/))))->_result_type/*24*/);
  1215. /*IF*/if (((((T72*)C))->_result_type/*16*/)==((void*)(NULL))) {
  1216. r683add_position(X496start_position((((T72*)C))->_run_feature/*12*/));
  1217. r72error((((T406*)((T406*)((((T72*)C))->_feature_name/*20*/))))->_start_position/*8*/,((T0*)ms1_295));
  1218. }
  1219.  else if (X291is_like_current((((T72*)C))->_result_type/*16*/)) {
  1220. C->_result_type=X662result_type((((T72*)C))->_target/*8*/);
  1221. }
  1222. /*FI*/}
  1223. void r72cpc_to_runnable(T72* C,T0* a1){
  1224. T0* _rc=NULL;
  1225. T0* _t=NULL;
  1226. _t=X662to_runnable((((T72*)C))->_target/*8*/,a1);
  1227. /*IF*/if ((_t)==((void*)(NULL))) {
  1228. r683add_position(X662start_position((((T72*)C))->_target/*8*/));
  1229. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  1230. r683fatal_error(((T683*)(oBC364eh)),b1);
  1231. }/*]*/
  1232. }
  1233. /*FI*/C->_target=_t;
  1234. _rc=X291run_class(X662result_type((((T72*)C))->_target/*8*/));
  1235. C->_run_feature=r368get_rf(((T368*)_rc),(T0*)C);
  1236. r576update((((T72*)C))->_target/*8*/,(((T72*)C))->_run_feature/*12*/);
  1237. }
  1238. void r72make_call0(T72* C,T0* a1,T0* a2){
  1239. C->_target=a1;
  1240. C->_feature_name=a2;
  1241. }
  1242. void r72error(T0* a1,T0* a2){
  1243. r683add_position(a1);
  1244. r683error(((T683*)(oBC364eh)),a2);
  1245. }
  1246. /*No:CALL_PREFIX_MINUS.fatal_error*/
  1247. int fBC364type_real_ref=0;
  1248. T0*oBC364type_real_ref=NULL;
  1249. T0* r209type_real_ref(void){
  1250. if (fBC364type_real_ref==0){
  1251. T0* R=NULL;
  1252. T0* _real_ref=NULL;
  1253. fBC364type_real_ref=1;
  1254. {T451*n=malloc(sizeof(*n));
  1255. *n=M451;
  1256. r451make(n,((T0*)ms24_473),NULL);
  1257. _real_ref=(T0*)n;
  1258. }
  1259. {T657*n=malloc(sizeof(*n));
  1260. *n=M657;
  1261. /*[IRF3.3make*/((((T657*)(n)))->_base_class_name)=(_real_ref);
  1262. /*]*/
  1263. R=(T0*)n;
  1264. }
  1265. oBC364type_real_ref=R;}
  1266. return oBC364type_real_ref;}
  1267. int r209has_creation(T209* C,T0* a1){
  1268. int R=0;
  1269. r683add_position(X776start_position(a1));
  1270. r209error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T209*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_84));
  1271. return R;
  1272. }
  1273. /*No:TYPE_REAL.is_anchored*/
  1274. /*No:TYPE_REAL.is_array*/
  1275. int r209is_a(T209* C,T0* a1){
  1276. int R=0;
  1277. /*IF*/if ((X291is_real(a1))||(X291is_double(a1))) {
  1278. R=1;
  1279. }
  1280. else {
  1281. R=r605is_subclass_of(((T605*)(r209base_class(C))),X291base_class(a1));
  1282. /*IF*/if (R) {
  1283. r209used_as_reference();
  1284. }
  1285. /*FI*/}
  1286. /*FI*//*IF*/if (!(R)) {
  1287. r683add_type((T0*)C,((T0*)ms71_470));
  1288. r683add_type(a1,((T0*)ms67_470));
  1289. }
  1290. /*FI*/return R;
  1291. }
  1292. /*No:TYPE_REAL.run_type*/
  1293. /*No:TYPE_REAL.is_pointer*/
  1294. /*No:TYPE_REAL.is_string*/
  1295. /*No:TYPE_REAL.is_like_feature*/
  1296. /*No:TYPE_REAL.is_like_current*/
  1297. void r209make(T209* C,T0* a1){
  1298. {T451*n=malloc(sizeof(*n));
  1299. *n=M451;
  1300. r451make(n,((T0*)ms23_473),a1);
  1301. C->_base_class_name=(T0*)n;
  1302. }
  1303. }
  1304. /*No:TYPE_REAL.us_item*/
  1305. void r209load_ref(T0* a1){
  1306. T0* _rf=NULL;
  1307. T0* _rc=NULL;
  1308. T0* _cn=NULL;
  1309. {T451*n=malloc(sizeof(*n));
  1310. *n=M451;
  1311. r451make(n,a1,NULL);
  1312. _cn=(T0*)n;
  1313. }
  1314. _rc=r605run_class(((T605*)(r451base_class(((T451*)_cn)))));
  1315. r368set_at_run_time(((T368*)_rc));
  1316. _rf=r368get_feature_with(((T368*)_rc),((T0*)ms86_473));
  1317. }
  1318. /*No:TYPE_REAL.nb_errors*/
  1319. int fBC209check_type=0;
  1320. void r209check_type(T209* C){
  1321. if (fBC209check_type==0){
  1322. T0* _rc=NULL;
  1323. T0* _bc=NULL;
  1324. fBC209check_type=1;
  1325. _bc=r209base_class(C);
  1326. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1327. _rc=r209run_class(C);
  1328. }
  1329. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1330. /*IF*/if (!((((T605*)((T605*)_bc)))->_is_expanded/*20*/)) {
  1331. r209error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T209*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_209));
  1332. }
  1333. /*FI*/}
  1334. /*FI*/}}
  1335. /*No:TYPE_REAL.start_position*/
  1336. /*No:TYPE_REAL.fz_inako*/
  1337. /*No:TYPE_REAL.is_character*/
  1338. T0* r209written_mark(void){
  1339. T0* R=NULL;
  1340. R=((T0*)ms23_473);
  1341. return R;
  1342. }
  1343. T0* r209to_runnable(T209* C,T0* a1){
  1344. T0* R=NULL;
  1345. R=(T0*)C;
  1346. r209check_type(C);
  1347. return R;
  1348. }
  1349. /*No:TYPE_REAL.is_run_type*/
  1350. /*No:TYPE_REAL.is_formal_generic*/
  1351. T0* r209generic_list(T209* C){
  1352. T0* R=NULL;
  1353. r209fatal_error_generic_list(C);
  1354. return R;
  1355. }
  1356. /*No:TYPE_REAL.is_real*/
  1357. /*No:TYPE_REAL.is_bit*/
  1358. void r209fatal_error_generic_list(T209* C){
  1359. r683add_type((T0*)C,((T0*)ms12_291));
  1360. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1361. }
  1362. /*No:TYPE_REAL.pretty_print*/
  1363. /*No:TYPE_REAL.us_real*/
  1364. T0* r209smallest_ancestor(T209* C,T0* a1){
  1365. T0* R=NULL;
  1366. T0* _rto=NULL;
  1367. _rto=X291run_type(a1);
  1368. /*IF*/if (X291is_integer(_rto)) {
  1369. R=(T0*)C;
  1370. }
  1371.  else if (X291is_real(_rto)) {
  1372. R=(T0*)C;
  1373. }
  1374.  else if (X291is_double(_rto)) {
  1375. R=a1;
  1376. }
  1377. else {
  1378. R=r657smallest_ancestor(((T657*)(r209type_real_ref())),_rto);
  1379. }
  1380. /*FI*/return R;
  1381. }
  1382. /*No:TYPE_REAL.is_boolean*/
  1383. /*No:TYPE_REAL.is_double*/
  1384. T0* r209run_class(T209* C){
  1385. T0* R=NULL;
  1386. R=r604run_class((T0*)C);
  1387. return R;
  1388. }
  1389. T0* r209run_time_mark(void){
  1390. T0* R=NULL;
  1391. R=((T0*)ms23_473);
  1392. return R;
  1393. }
  1394. /*No:TYPE_REAL.us_real_ref*/
  1395. int r209is_a_in(T209* C,T0* a1,T0* a2){
  1396. int R=0;
  1397. T0* _ct=NULL;
  1398. T0* _t2=NULL;
  1399. T0* _t1=NULL;
  1400. /*IF*/if ((r209written_mark())==((void*)(X291written_mark(a1)))) {
  1401. R=1;
  1402. }
  1403. else {
  1404. _ct=(((T368*)((T368*)a2)))->_current_type/*0*/;
  1405. _t1=r209to_runnable(C,_ct);
  1406. _t2=X291to_runnable(a1,_ct);
  1407. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  1408. R=1;
  1409. }
  1410. else {
  1411. R=X291is_a(_t1,_t2);
  1412. }
  1413. /*FI*/}
  1414. /*FI*/return R;
  1415. }
  1416. T0* r209look_up_for(T209* C,T0* a1,T0* a2){
  1417. T0* R=NULL;
  1418. R=r605look_up_for(((T605*)(r209base_class(C))),a1,a2);
  1419. return R;
  1420. }
  1421. /*No:TYPE_REAL.expanded_initializer*/
  1422. /*No:TYPE_REAL.fz_dot*/
  1423. /*No:TYPE_REAL.is_generic*/
  1424. int fBC209used_as_reference=0;
  1425. void r209used_as_reference(void){
  1426. if (fBC209used_as_reference==0){
  1427. fBC209used_as_reference=1;
  1428. r209load_ref(((T0*)ms24_473));
  1429. }}
  1430. /*No:TYPE_REAL.is_reference*/
  1431. void r209error(T0* a1,T0* a2){
  1432. r683add_position(a1);
  1433. r683error(((T683*)(oBC364eh)),a2);
  1434. }
  1435. T0* r209base_class(T209* C){
  1436. T0* R=NULL;
  1437. T0* _bcn=NULL;
  1438. _bcn=(((T209*)C))->_base_class_name/*4*/;
  1439. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  1440. R=r451base_class(((T451*)_bcn));
  1441. }
  1442. else {
  1443. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  1444. r7append(((T7*)(oBC683explanation)),b1);
  1445. }/*]*/
  1446. r683add_type((T0*)C,((T0*)ms67_470));
  1447. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1448. }
  1449. /*FI*/return R;
  1450. }
  1451. /*No:TYPE_REAL.is_any*/
  1452. /*No:TYPE_REAL.base_class_name*/
  1453. /*No:TYPE_REAL.is_expanded*/
  1454. /*No:TYPE_REAL.is_basic_eiffel_expanded*/
  1455. /*No:TYPE_REAL.is_none*/
  1456. /*No:TYPE_REAL.is_integer*/
  1457. int r491has_creation(T491* C,T0* a1){
  1458. int R=0;
  1459. R=r605has_creation(((T605*)(r491base_class(C))),a1);
  1460. return R;
  1461. }
  1462. /*No:TYPE_STRING.is_anchored*/
  1463. /*No:TYPE_STRING.is_array*/
  1464. int r491is_a(T491* C,T0* a1){
  1465. int R=0;
  1466. /*IF*/if (X291is_string(a1)) {
  1467. R=1;
  1468. }
  1469. else {
  1470. R=r605is_subclass_of(((T605*)(r491base_class(C))),X291base_class(a1));
  1471. }
  1472. /*FI*//*IF*/if (!(R)) {
  1473. r683add_type((T0*)C,((T0*)ms71_470));
  1474. r683add_type(a1,((T0*)ms67_470));
  1475. }
  1476. /*FI*/return R;
  1477. }
  1478. /*No:TYPE_STRING.run_type*/
  1479. /*No:TYPE_STRING.is_pointer*/
  1480. /*No:TYPE_STRING.is_string*/
  1481. /*No:TYPE_STRING.is_like_feature*/
  1482. /*No:TYPE_STRING.is_like_current*/
  1483. /*No:TYPE_STRING.us_capacity*/
  1484. void r491make(T491* C,T0* a1){
  1485. {T451*n=malloc(sizeof(*n));
  1486. *n=M451;
  1487. r451make(n,((T0*)ms25_473),a1);
  1488. C->_base_class_name=(T0*)n;
  1489. }
  1490. }
  1491. /*No:TYPE_STRING.nb_errors*/
  1492. /*No:TYPE_STRING.us_string*/
  1493. int fBC491check_type=0;
  1494. void r491check_type(T491* C){
  1495. if (fBC491check_type==0){
  1496. T0* _rf=NULL;
  1497. T0* _rc=NULL;
  1498. T0* _bc=NULL;
  1499. fBC491check_type=1;
  1500. _bc=r491base_class(C);
  1501. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1502. _rc=r491run_class(C);
  1503. }
  1504. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1505. /*IF*/if ((((T605*)((T605*)_bc)))->_is_expanded/*20*/) {
  1506. r491error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T491*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms2_491));
  1507. }
  1508. /*FI*/}
  1509. /*FI*/_rc=r491run_class(C);
  1510. _rf=r368get_feature_with(((T368*)_rc),((T0*)ms55_473));
  1511. _rf=r368get_feature_with(((T368*)_rc),((T0*)ms60_473));
  1512. _rf=r368get_feature_with(((T368*)_rc),((T0*)ms130_473));
  1513. r368set_at_run_time(((T368*)(X291run_class(/*X496*/((T0*)(((T808*)((T808*)_rf)))->_result_type/*24*/)))));
  1514. }}
  1515. /*No:TYPE_STRING.start_position*/
  1516. /*No:TYPE_STRING.fz_inako*/
  1517. /*No:TYPE_STRING.is_character*/
  1518. T0* r491written_mark(void){
  1519. T0* R=NULL;
  1520. R=((T0*)ms25_473);
  1521. return R;
  1522. }
  1523. T0* r491to_runnable(T491* C,T0* a1){
  1524. T0* R=NULL;
  1525. R=(T0*)C;
  1526. r491check_type(C);
  1527. return R;
  1528. }
  1529. /*No:TYPE_STRING.is_run_type*/
  1530. /*No:TYPE_STRING.is_formal_generic*/
  1531. T0* r491generic_list(T491* C){
  1532. T0* R=NULL;
  1533. r491fatal_error_generic_list(C);
  1534. return R;
  1535. }
  1536. /*No:TYPE_STRING.is_real*/
  1537. /*No:TYPE_STRING.is_bit*/
  1538. void r491fatal_error_generic_list(T491* C){
  1539. r683add_type((T0*)C,((T0*)ms12_291));
  1540. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1541. }
  1542. /*No:TYPE_STRING.pretty_print*/
  1543. T0* r491smallest_ancestor(T491* C,T0* a1){
  1544. T0* R=NULL;
  1545. T0* _rto_bc=NULL;
  1546. T0* _rto=NULL;
  1547. _rto=X291run_type(a1);
  1548. /*IF*/if (X291is_string(_rto)) {
  1549. R=(T0*)C;
  1550. }
  1551.  else if (X291is_none(_rto)) {
  1552. R=(T0*)C;
  1553. }
  1554.  else if (X291is_expanded(_rto)) {
  1555. R=X291smallest_ancestor(_rto,(T0*)C);
  1556. }
  1557. else {
  1558. _rto_bc=X291base_class(_rto);
  1559. /*IF*/if (r605is_subclass_of(((T605*)_rto_bc),r491base_class(C))) {
  1560. R=(T0*)C;
  1561. }
  1562. else {
  1563. R=X291smallest_ancestor(_rto,(T0*)C);
  1564. }
  1565. /*FI*/}
  1566. /*FI*/return R;
  1567. }
  1568. /*No:TYPE_STRING.is_boolean*/
  1569. /*No:TYPE_STRING.is_double*/
  1570. /*No:TYPE_STRING.us_count*/
  1571. /*No:TYPE_STRING.us_storage*/
  1572. T0* r491run_class(T491* C){
  1573. T0* R=NULL;
  1574. R=r604run_class((T0*)C);
  1575. return R;
  1576. }
  1577. T0* r491run_time_mark(void){
  1578. T0* R=NULL;
  1579. R=((T0*)ms25_473);
  1580. return R;
  1581. }
  1582. int r491is_a_in(T491* C,T0* a1,T0* a2){
  1583. int R=0;
  1584. T0* _ct=NULL;
  1585. T0* _t2=NULL;
  1586. T0* _t1=NULL;
  1587. /*IF*/if ((r491written_mark())==((void*)(X291written_mark(a1)))) {
  1588. R=1;
  1589. }
  1590. else {
  1591. _ct=(((T368*)((T368*)a2)))->_current_type/*0*/;
  1592. _t1=r491to_runnable(C,_ct);
  1593. _t2=X291to_runnable(a1,_ct);
  1594. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  1595. R=1;
  1596. }
  1597. else {
  1598. R=X291is_a(_t1,_t2);
  1599. }
  1600. /*FI*/}
  1601. /*FI*/return R;
  1602. }
  1603. T0* r491look_up_for(T491* C,T0* a1,T0* a2){
  1604. T0* R=NULL;
  1605. R=r605look_up_for(((T605*)(r491base_class(C))),a1,a2);
  1606. return R;
  1607. }
  1608. /*No:TYPE_STRING.expanded_initializer*/
  1609. /*No:TYPE_STRING.fz_dot*/
  1610. /*No:TYPE_STRING.is_generic*/
  1611. /*No:TYPE_STRING.used_as_reference*/
  1612. /*No:TYPE_STRING.is_reference*/
  1613. void r491error(T0* a1,T0* a2){
  1614. r683add_position(a1);
  1615. r683error(((T683*)(oBC364eh)),a2);
  1616. }
  1617. T0* r491base_class(T491* C){
  1618. T0* R=NULL;
  1619. T0* _bcn=NULL;
  1620. _bcn=(((T491*)C))->_base_class_name/*4*/;
  1621. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  1622. R=r451base_class(((T451*)_bcn));
  1623. }
  1624. else {
  1625. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  1626. r7append(((T7*)(oBC683explanation)),b1);
  1627. }/*]*/
  1628. r683add_type((T0*)C,((T0*)ms67_470));
  1629. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1630. }
  1631. /*FI*/return R;
  1632. }
  1633. /*No:TYPE_STRING.is_any*/
  1634. /*No:TYPE_STRING.base_class_name*/
  1635. /*No:TYPE_STRING.is_expanded*/
  1636. /*No:TYPE_STRING.is_basic_eiffel_expanded*/
  1637. /*No:TYPE_STRING.is_none*/
  1638. /*No:TYPE_STRING.is_integer*/
  1639.  
  1640.