home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / lang / eiffel / smalleif.97 / se.t / SmallEiffel / bin_c / compile_to_c19.c < prev    next >
Encoding:
C/C++ Source or Header  |  1996-05-02  |  34.2 KB  |  1,490 lines

  1. /* ANSI C code generated by SmallEiffel. */
  2. /*
  3. -- SmallEiffel  -- Release (- 0.97)    --      FRANCE
  4. -- Copyright (C), 1994 - Dominique COLNET and Suzanne COLLIN 
  5. -- University Henri Poincare' - Nancy 1 - email colnet@loria.fr 
  6. -- CRIN (Centre de Recherche en Informatique de Nancy)
  7. -- FRANCE 
  8. */
  9. #include "compile_to_c.h"
  10. int rT161static_value(T161 *C){
  11. int R=0;
  12. R=(C)->_static_value_mem;
  13. return R;
  14. }
  15. void rT161to_runnable_0(T161 *C,T0 * a1){
  16. T0 * _rc=NULL;
  17. T0 * _t=NULL;
  18. C->_current_type=a1;
  19. _t=XrT68to_runnable((C)->_target,a1);
  20. /*IF*/if (!(_t)) {
  21. rT161error(XrT68start_position((C)->_target),(T0 *)ms1119);
  22. }
  23. else {
  24. C->_target=_t;
  25. _rc=XrT58run_class(XrT68result_type((C)->_target));
  26. C->_run_feature=rT260get_rf((T260*)_rc,(C)->_target,(C)->_feature_name);
  27. C->_result_type=XrT261result_type((C)->_run_feature);
  28. /*IF*/if (!((C)->_result_type)) {
  29. /*UT*/(T45*)oRBC27eh;
  30. rT45add_position(XrT261start_position((C)->_run_feature));
  31. rT161error(((T66*)(C)->_feature_name)->_start_position,(T0 *)ms1131);
  32. }
  33. /*FI*/}
  34. /*FI*/}
  35. T0 * rT161to_runnable(T161 *C,T0 * a1){
  36. T0 * R=NULL;
  37. /*IF*/if (!((C)->_current_type)) {
  38. rT161to_runnable_0(C,a1);
  39. /*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0))&&((XrT261arg_count((C)->_run_feature))>(0))) {
  40. /*UT*/(T45*)oRBC27eh;
  41. rT45add_position(((T66*)(C)->_feature_name)->_start_position);
  42. rT161error(XrT261start_position((C)->_run_feature),(T0 *)ms1132);
  43. }
  44. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  45. R=(T0 *)C;
  46. }
  47. /*FI*/}
  48. else {
  49. R=rT161clone(C,(T0 *)C);
  50. /*(IRF3*/(((T161*)R)->_current_type)=(NULL);
  51. /*)*/R=rT161to_runnable((T161*)R,a1);
  52. }
  53. /*FI*/return R;
  54. }
  55. void rT161error(/*C*/T0 * a1,T0* a2){
  56. /*UT*/(T45*)oRBC27eh;
  57. rT45add_position(a1);
  58. rT45error((T45*)oRBC27eh,a2);
  59. }
  60. T0 * rT161add_comment(T161 *C,T0 * a1){
  61. T0 * R=NULL;
  62. /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
  63. R=(T0 *)C;
  64. }
  65. else {
  66. {T220 *n=((T220*)new(220));
  67. rT220make(n,(T0 *)C,a1);
  68. R=(T0 *)n;}}
  69. /*FI*/return R;
  70. }
  71. T0 * rT161start_position(T161 *C){
  72. T0 * R=NULL;
  73. R=((T66*)(C)->_feature_name)->_start_position;
  74. return R;
  75. }
  76. int rT161use_current(T161 *C){
  77. int R=0;
  78. /*IF*//*AF*//*AE*/
  79. /*FI*//*IF*/if (R) {
  80. }
  81.  else if (XrT68is_current((C)->_target)) {
  82. R=XrT261use_current((C)->_run_feature);
  83. }
  84. else {
  85. R=XrT68use_current((C)->_target);
  86. }
  87. /*FI*/return R;
  88. }
  89. T0* rT161clone(T161 *C,T0* a1){
  90. T0* R=NULL;
  91. /*IF*/if (((int)a1)) {
  92. R=(T0 *)new(a1->id);
  93. AF_1
  94. XrT28copy(R,a1);
  95. AF_0
  96. }
  97. /*FI*/return R;
  98. }
  99. int rT161can_be_dropped(T161 *C){
  100. int R=0;
  101. /*IF*/if (XrT68is_current((C)->_target)) {
  102. R=XrT261can_be_dropped((C)->_run_feature);
  103. }
  104. /*FI*/return R;
  105. }
  106. void rT161compile_to_c_old(T161 *C){
  107. XrT68compile_to_c_old((C)->_target);
  108. /*IF*//*AF*//*AE*/
  109. /*FI*/}
  110. void rT161compile_to_c(T161 *C){
  111. T0* _n=NULL;
  112. T0 * _dyn_rf=NULL;
  113. T0 * _tt=NULL;
  114. T0* _r=NULL;
  115. _tt=XrT58run_type(XrT68result_type((C)->_target));
  116. _n=XrT67to_string(XrT261name((C)->_run_feature));
  117. /*IF*/if (rT7is_equal((T7*)(T0 *)ms1109,_n)) {
  118. rT40put_is_expanded_type((T40*)oRBC27cpp,_tt);
  119. }
  120.  else if (((XrT58is_expanded(_tt))||(XrT68is_current((C)->_target)))||(XrT68is_manifest_string((C)->_target))) {
  121. rT40push_direct((T40*)oRBC27cpp,(C)->_run_feature,(C)->_target,/*(IRF4*/NULL/*)*/);
  122. XrT261mapping_c((C)->_run_feature);
  123. rT40pop((T40*)oRBC27cpp);
  124. }
  125. else {
  126. _r=((T260*)XrT58run_class(_tt))->_running;
  127. /*IF*/if (!(_r)) {
  128. rT40push_void((T40*)oRBC27cpp,(C)->_run_feature,(C)->_target,/*(IRF4*/NULL/*)*/);
  129. XrT261mapping_c((C)->_run_feature);
  130. rT40pop((T40*)oRBC27cpp);
  131. }
  132.  else if ((rT263count((T263*)_r))==(1)) {
  133. _dyn_rf=rT161dynamic(rT263first((T263*)_r),(C)->_run_feature);
  134. rT40push_check((T40*)oRBC27cpp,_dyn_rf,(C)->_target,/*(IRF4*/NULL/*)*/);
  135. XrT261mapping_c(_dyn_rf);
  136. rT40pop((T40*)oRBC27cpp);
  137. }
  138. else {
  139. rT40use_switch((T40*)oRBC27cpp,(C)->_run_feature,_r,(C)->_target,/*(IRF4*/NULL/*)*/);
  140. }
  141. /*FI*/}
  142. /*FI*/}
  143. int rT161to_integer(T161 *C){
  144. int R=0;
  145. T0 * _rf1=NULL;
  146. _rf1=(C)->_run_feature;
  147. if ((int)_rf1) switch (((T0 *)_rf1)->id) {
  148. case 277: 
  149. break;
  150. default:
  151. _rf1 = NULL;
  152. };/*IF*/if (!(_rf1)) {
  153. rT161error(rT161start_position(C),(T0 *)ms175);
  154. }
  155. else {
  156. R=XrT68to_integer(((T277*)_rf1)->_value);
  157. }
  158. /*FI*/return R;
  159. }
  160. T0 * rT161dynamic(/*C*/T0 * a1,T0 * a2){
  161. T0 * R=NULL;
  162. T0 * _static=NULL;
  163. T0 * _sta_name=NULL;
  164. T0 * _dyn_name=NULL;
  165. _static=XrT261current_type(a2);
  166. _sta_name=XrT261name(a2);
  167. _dyn_name=rT50name_of((T50*)rT260base_class((T260*)a1),XrT58base_class(_static),_sta_name);
  168. R=rT260get_feature((T260*)a1,_dyn_name);
  169. return R;
  170. }
  171. T0 * rT161written_in(T161 *C){
  172. T0 * R=NULL;
  173. T0 * _sp=NULL;
  174. _sp=rT161start_position(C);
  175. /*IF*/if (((int)_sp)) {
  176. R=((T46*)_sp)->_base_class_name;
  177. }
  178. /*FI*/return R;
  179. }
  180. int rT161call_is_static(T161 *C){
  181. int R=0;
  182. T0 * _rc=NULL;
  183. /*IF*/if (((int)(C)->_run_feature)) {
  184. _rc=XrT261run_class((C)->_run_feature);
  185. /*IF*/if ((rT263count((T263*)((T260*)_rc)->_running))==(1)) {
  186. /*IF*/if (XrT261is_static((C)->_run_feature)) {
  187. C->_static_value_mem=XrT261static_value_mem((C)->_run_feature);
  188. R=1;
  189. }
  190. /*FI*/}
  191. /*FI*/}
  192. /*FI*/return R;
  193. }
  194. void rT161copy(T161 *C,T0 * a1){
  195. /*IF*//*AF*//*AE*/
  196. memcpy(C,a1,s[C->id]);
  197. /*FI*/}
  198. int rT161is_a(T161 *C,T0 * a1){
  199. int R=0;
  200. R=XrT58is_a(XrT58run_type((C)->_result_type),XrT58run_type(XrT68result_type(a1)));
  201. /*IF*/if (!(R)) {
  202. /*UT*/(T45*)oRBC27eh;
  203. rT45add_position(rT161start_position(C));
  204. rT161error(XrT68start_position(a1),(T0 *)ms1261);
  205. }
  206. /*FI*/return R;
  207. }
  208. int rT161is_pre_computable(T161 *C){
  209. int R=0;
  210. /*IF*/if (XrT68is_current((C)->_target)) {
  211. R=XrT261is_pre_computable((C)->_run_feature);
  212. }
  213. /*FI*/return R;
  214. }
  215. void rT161make_call0(T161 *C,T0 * a1,T0 * a2){
  216. C->_target=a1;
  217. C->_feature_name=a2;
  218. }
  219. void rT161make(T161 *C,T0 * a1,T0 * a2){
  220. {T66 *n=((T66*)new(66));
  221. rT66make(n,/*(IRF4*/(T0 *)ms84/*)*/,a1);
  222. C->_feature_name=(T0 *)n;}
  223. rT161make_call0(C,a2,(C)->_feature_name);
  224. }
  225. int rT165is_static(T165 *C){
  226. int R=0;
  227. /*IF*/if (XrT58is_integer(XrT68result_type((C)->_target))) {
  228. /*IF*/if (XrT68is_static((C)->_target)) {
  229. R=1;
  230. C->_static_value_mem=XrT68static_value((C)->_target);
  231. }
  232. /*FI*/}
  233. /*FI*/return R;
  234. }
  235. int rT165static_value(T165 *C){
  236. int R=0;
  237. R=(C)->_static_value_mem;
  238. return R;
  239. }
  240. void rT165to_runnable_0(T165 *C,T0 * a1){
  241. T0 * _rc=NULL;
  242. T0 * _t=NULL;
  243. C->_current_type=a1;
  244. _t=XrT68to_runnable((C)->_target,a1);
  245. /*IF*/if (!(_t)) {
  246. rT165error(XrT68start_position((C)->_target),(T0 *)ms1119);
  247. }
  248. else {
  249. C->_target=_t;
  250. _rc=XrT58run_class(XrT68result_type((C)->_target));
  251. C->_run_feature=rT260get_rf((T260*)_rc,(C)->_target,(C)->_feature_name);
  252. C->_result_type=XrT261result_type((C)->_run_feature);
  253. /*IF*/if (!((C)->_result_type)) {
  254. /*UT*/(T45*)oRBC27eh;
  255. rT45add_position(XrT261start_position((C)->_run_feature));
  256. rT165error(((T66*)(C)->_feature_name)->_start_position,(T0 *)ms1131);
  257. }
  258. /*FI*/}
  259. /*FI*/}
  260. T0 * rT165to_runnable(T165 *C,T0 * a1){
  261. T0 * R=NULL;
  262. /*IF*/if (!((C)->_current_type)) {
  263. rT165to_runnable_0(C,a1);
  264. /*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0))&&((XrT261arg_count((C)->_run_feature))>(0))) {
  265. /*UT*/(T45*)oRBC27eh;
  266. rT45add_position(((T66*)(C)->_feature_name)->_start_position);
  267. rT165error(XrT261start_position((C)->_run_feature),(T0 *)ms1132);
  268. }
  269. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  270. R=(T0 *)C;
  271. }
  272. /*FI*/}
  273. else {
  274. R=rT165clone(C,(T0 *)C);
  275. /*(IRF3*/(((T165*)R)->_current_type)=(NULL);
  276. /*)*/R=rT165to_runnable((T165*)R,a1);
  277. }
  278. /*FI*/return R;
  279. }
  280. void rT165error(/*C*/T0 * a1,T0* a2){
  281. /*UT*/(T45*)oRBC27eh;
  282. rT45add_position(a1);
  283. rT45error((T45*)oRBC27eh,a2);
  284. }
  285. T0 * rT165add_comment(T165 *C,T0 * a1){
  286. T0 * R=NULL;
  287. /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
  288. R=(T0 *)C;
  289. }
  290. else {
  291. {T220 *n=((T220*)new(220));
  292. rT220make(n,(T0 *)C,a1);
  293. R=(T0 *)n;}}
  294. /*FI*/return R;
  295. }
  296. T0 * rT165start_position(T165 *C){
  297. T0 * R=NULL;
  298. R=((T66*)(C)->_feature_name)->_start_position;
  299. return R;
  300. }
  301. int rT165use_current(T165 *C){
  302. int R=0;
  303. /*IF*//*AF*//*AE*/
  304. /*FI*//*IF*/if (R) {
  305. }
  306.  else if (XrT68is_current((C)->_target)) {
  307. R=XrT261use_current((C)->_run_feature);
  308. }
  309. else {
  310. R=XrT68use_current((C)->_target);
  311. }
  312. /*FI*/return R;
  313. }
  314. T0* rT165clone(T165 *C,T0* a1){
  315. T0* R=NULL;
  316. /*IF*/if (((int)a1)) {
  317. R=(T0 *)new(a1->id);
  318. AF_1
  319. XrT28copy(R,a1);
  320. AF_0
  321. }
  322. /*FI*/return R;
  323. }
  324. int rT165can_be_dropped(T165 *C){
  325. int R=0;
  326. /*IF*/if (XrT68is_current((C)->_target)) {
  327. R=XrT261can_be_dropped((C)->_run_feature);
  328. }
  329. /*FI*/return R;
  330. }
  331. void rT165compile_to_c_old(T165 *C){
  332. XrT68compile_to_c_old((C)->_target);
  333. /*IF*//*AF*//*AE*/
  334. /*FI*/}
  335. void rT165compile_to_c(T165 *C){
  336. T0* _n=NULL;
  337. T0 * _dyn_rf=NULL;
  338. T0 * _tt=NULL;
  339. T0* _r=NULL;
  340. _tt=XrT58run_type(XrT68result_type((C)->_target));
  341. _n=XrT67to_string(XrT261name((C)->_run_feature));
  342. /*IF*/if (rT7is_equal((T7*)(T0 *)ms1109,_n)) {
  343. rT40put_is_expanded_type((T40*)oRBC27cpp,_tt);
  344. }
  345.  else if (((XrT58is_expanded(_tt))||(XrT68is_current((C)->_target)))||(XrT68is_manifest_string((C)->_target))) {
  346. rT40push_direct((T40*)oRBC27cpp,(C)->_run_feature,(C)->_target,/*(IRF4*/NULL/*)*/);
  347. XrT261mapping_c((C)->_run_feature);
  348. rT40pop((T40*)oRBC27cpp);
  349. }
  350. else {
  351. _r=((T260*)XrT58run_class(_tt))->_running;
  352. /*IF*/if (!(_r)) {
  353. rT40push_void((T40*)oRBC27cpp,(C)->_run_feature,(C)->_target,/*(IRF4*/NULL/*)*/);
  354. XrT261mapping_c((C)->_run_feature);
  355. rT40pop((T40*)oRBC27cpp);
  356. }
  357.  else if ((rT263count((T263*)_r))==(1)) {
  358. _dyn_rf=rT165dynamic(rT263first((T263*)_r),(C)->_run_feature);
  359. rT40push_check((T40*)oRBC27cpp,_dyn_rf,(C)->_target,/*(IRF4*/NULL/*)*/);
  360. XrT261mapping_c(_dyn_rf);
  361. rT40pop((T40*)oRBC27cpp);
  362. }
  363. else {
  364. rT40use_switch((T40*)oRBC27cpp,(C)->_run_feature,_r,(C)->_target,/*(IRF4*/NULL/*)*/);
  365. }
  366. /*FI*/}
  367. /*FI*/}
  368. int rT165to_integer(T165 *C){
  369. int R=0;
  370. T0 * _rf1=NULL;
  371. _rf1=(C)->_run_feature;
  372. if ((int)_rf1) switch (((T0 *)_rf1)->id) {
  373. case 277: 
  374. break;
  375. default:
  376. _rf1 = NULL;
  377. };/*IF*/if (!(_rf1)) {
  378. rT165error(rT165start_position(C),(T0 *)ms175);
  379. }
  380. else {
  381. R=XrT68to_integer(((T277*)_rf1)->_value);
  382. }
  383. /*FI*/return R;
  384. }
  385. T0 * rT165dynamic(/*C*/T0 * a1,T0 * a2){
  386. T0 * R=NULL;
  387. T0 * _static=NULL;
  388. T0 * _sta_name=NULL;
  389. T0 * _dyn_name=NULL;
  390. _static=XrT261current_type(a2);
  391. _sta_name=XrT261name(a2);
  392. _dyn_name=rT50name_of((T50*)rT260base_class((T260*)a1),XrT58base_class(_static),_sta_name);
  393. R=rT260get_feature((T260*)a1,_dyn_name);
  394. return R;
  395. }
  396. T0 * rT165written_in(T165 *C){
  397. T0 * R=NULL;
  398. T0 * _sp=NULL;
  399. _sp=rT165start_position(C);
  400. /*IF*/if (((int)_sp)) {
  401. R=((T46*)_sp)->_base_class_name;
  402. }
  403. /*FI*/return R;
  404. }
  405. int rT165call_is_static(T165 *C){
  406. int R=0;
  407. T0 * _rc=NULL;
  408. /*IF*/if (((int)(C)->_run_feature)) {
  409. _rc=XrT261run_class((C)->_run_feature);
  410. /*IF*/if ((rT263count((T263*)((T260*)_rc)->_running))==(1)) {
  411. /*IF*/if (XrT261is_static((C)->_run_feature)) {
  412. C->_static_value_mem=XrT261static_value_mem((C)->_run_feature);
  413. R=1;
  414. }
  415. /*FI*/}
  416. /*FI*/}
  417. /*FI*/return R;
  418. }
  419. void rT165copy(T165 *C,T0 * a1){
  420. /*IF*//*AF*//*AE*/
  421. memcpy(C,a1,s[C->id]);
  422. /*FI*/}
  423. int rT165is_a(T165 *C,T0 * a1){
  424. int R=0;
  425. R=XrT58is_a(XrT58run_type((C)->_result_type),XrT58run_type(XrT68result_type(a1)));
  426. /*IF*/if (!(R)) {
  427. /*UT*/(T45*)oRBC27eh;
  428. rT45add_position(rT165start_position(C));
  429. rT165error(XrT68start_position(a1),(T0 *)ms1261);
  430. }
  431. /*FI*/return R;
  432. }
  433. int rT165is_pre_computable(T165 *C){
  434. int R=0;
  435. /*IF*/if (XrT68is_current((C)->_target)) {
  436. R=XrT261is_pre_computable((C)->_run_feature);
  437. }
  438. /*FI*/return R;
  439. }
  440. void rT165make_call0(T165 *C,T0 * a1,T0 * a2){
  441. C->_target=a1;
  442. C->_feature_name=a2;
  443. }
  444. void rT165make(T165 *C,T0 * a1,T0 * a2){
  445. {T66 *n=((T66*)new(66));
  446. rT66make(n,/*(IRF4*/(T0 *)ms86/*)*/,a1);
  447. C->_feature_name=(T0 *)n;}
  448. rT165make_call0(C,a2,(C)->_feature_name);
  449. }
  450. int rT166is_static(T166 *C){
  451. int R=0;
  452. /*IF*/if (XrT58is_integer(XrT68result_type((C)->_target))) {
  453. /*IF*/if (XrT68is_static((C)->_target)) {
  454. R=1;
  455. C->_static_value_mem=-(XrT68static_value((C)->_target));
  456. }
  457. /*FI*/}
  458. /*FI*/return R;
  459. }
  460. int rT166static_value(T166 *C){
  461. int R=0;
  462. R=(C)->_static_value_mem;
  463. return R;
  464. }
  465. void rT166to_runnable_0(T166 *C,T0 * a1){
  466. T0 * _rc=NULL;
  467. T0 * _t=NULL;
  468. C->_current_type=a1;
  469. _t=XrT68to_runnable((C)->_target,a1);
  470. /*IF*/if (!(_t)) {
  471. rT166error(XrT68start_position((C)->_target),(T0 *)ms1119);
  472. }
  473. else {
  474. C->_target=_t;
  475. _rc=XrT58run_class(XrT68result_type((C)->_target));
  476. C->_run_feature=rT260get_rf((T260*)_rc,(C)->_target,(C)->_feature_name);
  477. C->_result_type=XrT261result_type((C)->_run_feature);
  478. /*IF*/if (!((C)->_result_type)) {
  479. /*UT*/(T45*)oRBC27eh;
  480. rT45add_position(XrT261start_position((C)->_run_feature));
  481. rT166error(((T66*)(C)->_feature_name)->_start_position,(T0 *)ms1131);
  482. }
  483. /*FI*/}
  484. /*FI*/}
  485. T0 * rT166to_runnable(T166 *C,T0 * a1){
  486. T0 * R=NULL;
  487. /*IF*/if (!((C)->_current_type)) {
  488. rT166to_runnable_0(C,a1);
  489. /*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0))&&((XrT261arg_count((C)->_run_feature))>(0))) {
  490. /*UT*/(T45*)oRBC27eh;
  491. rT45add_position(((T66*)(C)->_feature_name)->_start_position);
  492. rT166error(XrT261start_position((C)->_run_feature),(T0 *)ms1132);
  493. }
  494. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  495. R=(T0 *)C;
  496. }
  497. /*FI*/}
  498. else {
  499. R=rT166clone(C,(T0 *)C);
  500. /*(IRF3*/(((T166*)R)->_current_type)=(NULL);
  501. /*)*/R=rT166to_runnable((T166*)R,a1);
  502. }
  503. /*FI*/return R;
  504. }
  505. void rT166error(/*C*/T0 * a1,T0* a2){
  506. /*UT*/(T45*)oRBC27eh;
  507. rT45add_position(a1);
  508. rT45error((T45*)oRBC27eh,a2);
  509. }
  510. T0 * rT166add_comment(T166 *C,T0 * a1){
  511. T0 * R=NULL;
  512. /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
  513. R=(T0 *)C;
  514. }
  515. else {
  516. {T220 *n=((T220*)new(220));
  517. rT220make(n,(T0 *)C,a1);
  518. R=(T0 *)n;}}
  519. /*FI*/return R;
  520. }
  521. T0 * rT166start_position(T166 *C){
  522. T0 * R=NULL;
  523. R=((T66*)(C)->_feature_name)->_start_position;
  524. return R;
  525. }
  526. int rT166use_current(T166 *C){
  527. int R=0;
  528. /*IF*//*AF*//*AE*/
  529. /*FI*//*IF*/if (R) {
  530. }
  531.  else if (XrT68is_current((C)->_target)) {
  532. R=XrT261use_current((C)->_run_feature);
  533. }
  534. else {
  535. R=XrT68use_current((C)->_target);
  536. }
  537. /*FI*/return R;
  538. }
  539. T0* rT166clone(T166 *C,T0* a1){
  540. T0* R=NULL;
  541. /*IF*/if (((int)a1)) {
  542. R=(T0 *)new(a1->id);
  543. AF_1
  544. XrT28copy(R,a1);
  545. AF_0
  546. }
  547. /*FI*/return R;
  548. }
  549. int rT166can_be_dropped(T166 *C){
  550. int R=0;
  551. /*IF*/if (XrT68is_current((C)->_target)) {
  552. R=XrT261can_be_dropped((C)->_run_feature);
  553. }
  554. /*FI*/return R;
  555. }
  556. void rT166compile_to_c_old(T166 *C){
  557. XrT68compile_to_c_old((C)->_target);
  558. /*IF*//*AF*//*AE*/
  559. /*FI*/}
  560. void rT166compile_to_c(T166 *C){
  561. T0* _n=NULL;
  562. T0 * _dyn_rf=NULL;
  563. T0 * _tt=NULL;
  564. T0* _r=NULL;
  565. _tt=XrT58run_type(XrT68result_type((C)->_target));
  566. _n=XrT67to_string(XrT261name((C)->_run_feature));
  567. /*IF*/if (rT7is_equal((T7*)(T0 *)ms1109,_n)) {
  568. rT40put_is_expanded_type((T40*)oRBC27cpp,_tt);
  569. }
  570.  else if (((XrT58is_expanded(_tt))||(XrT68is_current((C)->_target)))||(XrT68is_manifest_string((C)->_target))) {
  571. rT40push_direct((T40*)oRBC27cpp,(C)->_run_feature,(C)->_target,/*(IRF4*/NULL/*)*/);
  572. XrT261mapping_c((C)->_run_feature);
  573. rT40pop((T40*)oRBC27cpp);
  574. }
  575. else {
  576. _r=((T260*)XrT58run_class(_tt))->_running;
  577. /*IF*/if (!(_r)) {
  578. rT40push_void((T40*)oRBC27cpp,(C)->_run_feature,(C)->_target,/*(IRF4*/NULL/*)*/);
  579. XrT261mapping_c((C)->_run_feature);
  580. rT40pop((T40*)oRBC27cpp);
  581. }
  582.  else if ((rT263count((T263*)_r))==(1)) {
  583. _dyn_rf=rT166dynamic(rT263first((T263*)_r),(C)->_run_feature);
  584. rT40push_check((T40*)oRBC27cpp,_dyn_rf,(C)->_target,/*(IRF4*/NULL/*)*/);
  585. XrT261mapping_c(_dyn_rf);
  586. rT40pop((T40*)oRBC27cpp);
  587. }
  588. else {
  589. rT40use_switch((T40*)oRBC27cpp,(C)->_run_feature,_r,(C)->_target,/*(IRF4*/NULL/*)*/);
  590. }
  591. /*FI*/}
  592. /*FI*/}
  593. int rT166to_integer(T166 *C){
  594. int R=0;
  595. T0 * _rf1=NULL;
  596. _rf1=(C)->_run_feature;
  597. if ((int)_rf1) switch (((T0 *)_rf1)->id) {
  598. case 277: 
  599. break;
  600. default:
  601. _rf1 = NULL;
  602. };/*IF*/if (!(_rf1)) {
  603. rT166error(rT166start_position(C),(T0 *)ms175);
  604. }
  605. else {
  606. R=XrT68to_integer(((T277*)_rf1)->_value);
  607. }
  608. /*FI*/return R;
  609. }
  610. T0 * rT166dynamic(/*C*/T0 * a1,T0 * a2){
  611. T0 * R=NULL;
  612. T0 * _static=NULL;
  613. T0 * _sta_name=NULL;
  614. T0 * _dyn_name=NULL;
  615. _static=XrT261current_type(a2);
  616. _sta_name=XrT261name(a2);
  617. _dyn_name=rT50name_of((T50*)rT260base_class((T260*)a1),XrT58base_class(_static),_sta_name);
  618. R=rT260get_feature((T260*)a1,_dyn_name);
  619. return R;
  620. }
  621. T0 * rT166written_in(T166 *C){
  622. T0 * R=NULL;
  623. T0 * _sp=NULL;
  624. _sp=rT166start_position(C);
  625. /*IF*/if (((int)_sp)) {
  626. R=((T46*)_sp)->_base_class_name;
  627. }
  628. /*FI*/return R;
  629. }
  630. int rT166call_is_static(T166 *C){
  631. int R=0;
  632. T0 * _rc=NULL;
  633. /*IF*/if (((int)(C)->_run_feature)) {
  634. _rc=XrT261run_class((C)->_run_feature);
  635. /*IF*/if ((rT263count((T263*)((T260*)_rc)->_running))==(1)) {
  636. /*IF*/if (XrT261is_static((C)->_run_feature)) {
  637. C->_static_value_mem=XrT261static_value_mem((C)->_run_feature);
  638. R=1;
  639. }
  640. /*FI*/}
  641. /*FI*/}
  642. /*FI*/return R;
  643. }
  644. void rT166copy(T166 *C,T0 * a1){
  645. /*IF*//*AF*//*AE*/
  646. memcpy(C,a1,s[C->id]);
  647. /*FI*/}
  648. int rT166is_a(T166 *C,T0 * a1){
  649. int R=0;
  650. R=XrT58is_a(XrT58run_type((C)->_result_type),XrT58run_type(XrT68result_type(a1)));
  651. /*IF*/if (!(R)) {
  652. /*UT*/(T45*)oRBC27eh;
  653. rT45add_position(rT166start_position(C));
  654. rT166error(XrT68start_position(a1),(T0 *)ms1261);
  655. }
  656. /*FI*/return R;
  657. }
  658. int rT166is_pre_computable(T166 *C){
  659. int R=0;
  660. /*IF*/if (XrT68is_current((C)->_target)) {
  661. R=XrT261is_pre_computable((C)->_run_feature);
  662. }
  663. /*FI*/return R;
  664. }
  665. void rT166make_call0(T166 *C,T0 * a1,T0 * a2){
  666. C->_target=a1;
  667. C->_feature_name=a2;
  668. }
  669. void rT166make(T166 *C,T0 * a1,T0 * a2){
  670. {T66 *n=((T66*)new(66));
  671. rT66make(n,/*(IRF4*/(T0 *)ms87/*)*/,a1);
  672. C->_feature_name=(T0 *)n;}
  673. rT166make_call0(C,a2,(C)->_feature_name);
  674. }
  675. int rT167is_static(T167 *C){
  676. int R=0;
  677. R=rT167call_is_static(C);
  678. return R;
  679. }
  680. int rT167static_value(T167 *C){
  681. int R=0;
  682. R=(C)->_static_value_mem;
  683. return R;
  684. }
  685. void rT167to_runnable_0(T167 *C,T0 * a1){
  686. T0 * _rc=NULL;
  687. T0 * _t=NULL;
  688. C->_current_type=a1;
  689. _t=XrT68to_runnable((C)->_target,a1);
  690. /*IF*/if (!(_t)) {
  691. rT167error(XrT68start_position((C)->_target),(T0 *)ms1119);
  692. }
  693. else {
  694. C->_target=_t;
  695. _rc=XrT58run_class(XrT68result_type((C)->_target));
  696. C->_run_feature=rT260get_rf((T260*)_rc,(C)->_target,(C)->_feature_name);
  697. C->_result_type=XrT261result_type((C)->_run_feature);
  698. /*IF*/if (!((C)->_result_type)) {
  699. /*UT*/(T45*)oRBC27eh;
  700. rT45add_position(XrT261start_position((C)->_run_feature));
  701. rT167error(((T66*)(C)->_feature_name)->_start_position,(T0 *)ms1131);
  702. }
  703. /*FI*/}
  704. /*FI*/}
  705. T0 * rT167to_runnable(T167 *C,T0 * a1){
  706. T0 * R=NULL;
  707. /*IF*/if (!((C)->_current_type)) {
  708. rT167to_runnable_0(C,a1);
  709. /*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0))&&((XrT261arg_count((C)->_run_feature))>(0))) {
  710. /*UT*/(T45*)oRBC27eh;
  711. rT45add_position(((T66*)(C)->_feature_name)->_start_position);
  712. rT167error(XrT261start_position((C)->_run_feature),(T0 *)ms1132);
  713. }
  714. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  715. R=(T0 *)C;
  716. }
  717. /*FI*/}
  718. else {
  719. R=rT167clone(C,(T0 *)C);
  720. /*(IRF3*/(((T167*)R)->_current_type)=(NULL);
  721. /*)*/R=rT167to_runnable((T167*)R,a1);
  722. }
  723. /*FI*/return R;
  724. }
  725. void rT167error(/*C*/T0 * a1,T0* a2){
  726. /*UT*/(T45*)oRBC27eh;
  727. rT45add_position(a1);
  728. rT45error((T45*)oRBC27eh,a2);
  729. }
  730. T0 * rT167add_comment(T167 *C,T0 * a1){
  731. T0 * R=NULL;
  732. /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
  733. R=(T0 *)C;
  734. }
  735. else {
  736. {T220 *n=((T220*)new(220));
  737. rT220make(n,(T0 *)C,a1);
  738. R=(T0 *)n;}}
  739. /*FI*/return R;
  740. }
  741. T0 * rT167start_position(T167 *C){
  742. T0 * R=NULL;
  743. R=((T66*)(C)->_feature_name)->_start_position;
  744. return R;
  745. }
  746. int rT167use_current(T167 *C){
  747. int R=0;
  748. /*IF*//*AF*//*AE*/
  749. /*FI*//*IF*/if (R) {
  750. }
  751.  else if (XrT68is_current((C)->_target)) {
  752. R=XrT261use_current((C)->_run_feature);
  753. }
  754. else {
  755. R=XrT68use_current((C)->_target);
  756. }
  757. /*FI*/return R;
  758. }
  759. T0* rT167clone(T167 *C,T0* a1){
  760. T0* R=NULL;
  761. /*IF*/if (((int)a1)) {
  762. R=(T0 *)new(a1->id);
  763. AF_1
  764. XrT28copy(R,a1);
  765. AF_0
  766. }
  767. /*FI*/return R;
  768. }
  769. int rT167can_be_dropped(T167 *C){
  770. int R=0;
  771. /*IF*/if (XrT68is_current((C)->_target)) {
  772. R=XrT261can_be_dropped((C)->_run_feature);
  773. }
  774. /*FI*/return R;
  775. }
  776. T0* rT167operator(T167 *C){
  777. T0* R=NULL;
  778. R=((T66*)(C)->_feature_name)->_to_string;
  779. return R;
  780. }
  781. void rT167compile_to_c_old(T167 *C){
  782. XrT68compile_to_c_old((C)->_target);
  783. /*IF*//*AF*//*AE*/
  784. /*FI*/}
  785. void rT167compile_to_c(T167 *C){
  786. T0* _n=NULL;
  787. T0 * _dyn_rf=NULL;
  788. T0 * _tt=NULL;
  789. T0* _r=NULL;
  790. _tt=XrT58run_type(XrT68result_type((C)->_target));
  791. _n=XrT67to_string(XrT261name((C)->_run_feature));
  792. /*IF*/if (rT7is_equal((T7*)(T0 *)ms1109,_n)) {
  793. rT40put_is_expanded_type((T40*)oRBC27cpp,_tt);
  794. }
  795.  else if (((XrT58is_expanded(_tt))||(XrT68is_current((C)->_target)))||(XrT68is_manifest_string((C)->_target))) {
  796. rT40push_direct((T40*)oRBC27cpp,(C)->_run_feature,(C)->_target,/*(IRF4*/NULL/*)*/);
  797. XrT261mapping_c((C)->_run_feature);
  798. rT40pop((T40*)oRBC27cpp);
  799. }
  800. else {
  801. _r=((T260*)XrT58run_class(_tt))->_running;
  802. /*IF*/if (!(_r)) {
  803. rT40push_void((T40*)oRBC27cpp,(C)->_run_feature,(C)->_target,/*(IRF4*/NULL/*)*/);
  804. XrT261mapping_c((C)->_run_feature);
  805. rT40pop((T40*)oRBC27cpp);
  806. }
  807.  else if ((rT263count((T263*)_r))==(1)) {
  808. _dyn_rf=rT167dynamic(rT263first((T263*)_r),(C)->_run_feature);
  809. rT40push_check((T40*)oRBC27cpp,_dyn_rf,(C)->_target,/*(IRF4*/NULL/*)*/);
  810. XrT261mapping_c(_dyn_rf);
  811. rT40pop((T40*)oRBC27cpp);
  812. }
  813. else {
  814. rT40use_switch((T40*)oRBC27cpp,(C)->_run_feature,_r,(C)->_target,/*(IRF4*/NULL/*)*/);
  815. }
  816. /*FI*/}
  817. /*FI*/}
  818. int rT167to_integer(T167 *C){
  819. int R=0;
  820. T0 * _rf1=NULL;
  821. _rf1=(C)->_run_feature;
  822. if ((int)_rf1) switch (((T0 *)_rf1)->id) {
  823. case 277: 
  824. break;
  825. default:
  826. _rf1 = NULL;
  827. };/*IF*/if (!(_rf1)) {
  828. rT167error(rT167start_position(C),(T0 *)ms175);
  829. }
  830. else {
  831. R=XrT68to_integer(((T277*)_rf1)->_value);
  832. }
  833. /*FI*/return R;
  834. }
  835. T0 * rT167dynamic(/*C*/T0 * a1,T0 * a2){
  836. T0 * R=NULL;
  837. T0 * _static=NULL;
  838. T0 * _sta_name=NULL;
  839. T0 * _dyn_name=NULL;
  840. _static=XrT261current_type(a2);
  841. _sta_name=XrT261name(a2);
  842. _dyn_name=rT50name_of((T50*)rT260base_class((T260*)a1),XrT58base_class(_static),_sta_name);
  843. R=rT260get_feature((T260*)a1,_dyn_name);
  844. return R;
  845. }
  846. T0 * rT167written_in(T167 *C){
  847. T0 * R=NULL;
  848. T0 * _sp=NULL;
  849. _sp=rT167start_position(C);
  850. /*IF*/if (((int)_sp)) {
  851. R=((T46*)_sp)->_base_class_name;
  852. }
  853. /*FI*/return R;
  854. }
  855. void rT167copy(T167 *C,T0 * a1){
  856. /*IF*//*AF*//*AE*/
  857. memcpy(C,a1,s[C->id]);
  858. /*FI*/}
  859. int rT167call_is_static(T167 *C){
  860. int R=0;
  861. T0 * _rc=NULL;
  862. /*IF*/if (((int)(C)->_run_feature)) {
  863. _rc=XrT261run_class((C)->_run_feature);
  864. /*IF*/if ((rT263count((T263*)((T260*)_rc)->_running))==(1)) {
  865. /*IF*/if (XrT261is_static((C)->_run_feature)) {
  866. C->_static_value_mem=XrT261static_value_mem((C)->_run_feature);
  867. R=1;
  868. }
  869. /*FI*/}
  870. /*FI*/}
  871. /*FI*/return R;
  872. }
  873. int rT167is_a(T167 *C,T0 * a1){
  874. int R=0;
  875. R=XrT58is_a(XrT58run_type((C)->_result_type),XrT58run_type(XrT68result_type(a1)));
  876. /*IF*/if (!(R)) {
  877. /*UT*/(T45*)oRBC27eh;
  878. rT45add_position(rT167start_position(C));
  879. rT167error(XrT68start_position(a1),(T0 *)ms1261);
  880. }
  881. /*FI*/return R;
  882. }
  883. int rT167is_pre_computable(T167 *C){
  884. int R=0;
  885. /*IF*/if (XrT68is_current((C)->_target)) {
  886. R=XrT261is_pre_computable((C)->_run_feature);
  887. }
  888. /*FI*/return R;
  889. }
  890. void rT167make_prefix(T167 *C,T0 * a1,T0 * a2){
  891. {T66 *n=((T66*)new(66));
  892. rT66make(n,rT167operator(C),a1);
  893. C->_feature_name=(T0 *)n;}
  894. rT167make_call0(C,a2,(C)->_feature_name);
  895. }
  896. void rT167make_call0(T167 *C,T0 * a1,T0 * a2){
  897. C->_target=a1;
  898. C->_feature_name=a2;
  899. }
  900. void rT167make(T167 *C,T0 * a1,T0 * a2){
  901. rT167make_call0(C,a1,a2);
  902. }
  903. int rT88static_value(T88 *C){
  904. int R=0;
  905. R=(C)->_static_value_mem;
  906. return R;
  907. }
  908. T0 * rT88to_runnable(T88 *C,T0 * a1){
  909. T0 * R=NULL;
  910. T0 * _rf=NULL;
  911. /*IF*/if (!((C)->_current_type)) {
  912. C->_current_type=a1;
  913. _rf=rT52top_rf((T52*)oRBC27small_eiffel);
  914. C->_result_type=rT92type((T92*)XrT261arguments(_rf),(C)->_rank);
  915. R=(T0 *)C;
  916. /*IF*/if (rT50has_feature((T50*)rT88base_class_written(C),(C)->_to_string)) {
  917. _rf=rT260get_feature_with((T260*)XrT58run_class(a1),(C)->_to_string);
  918. /*IF*/if (((int)_rf)) {
  919. /*UT*/(T45*)oRBC27eh;
  920. rT45add_position(XrT261start_position(_rf));
  921. }
  922. /*FI*/rT88error((C)->_start_position,(T0 *)ms1116);
  923. }
  924. /*FI*/}
  925. else {
  926. R=rT88clone(C,(T0 *)C);
  927. /*(IRF3*/(((T88*)R)->_current_type)=(NULL);
  928. /*)*/R=rT88to_runnable((T88*)R,a1);
  929. }
  930. /*FI*/return R;
  931. }
  932. void rT88error(/*C*/T0 * a1,T0* a2){
  933. /*UT*/(T45*)oRBC27eh;
  934. rT45add_position(a1);
  935. rT45error((T45*)oRBC27eh,a2);
  936. }
  937. T0 * rT88add_comment(T88 *C,T0 * a1){
  938. T0 * R=NULL;
  939. /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
  940. R=(T0 *)C;
  941. }
  942. else {
  943. {T220 *n=((T220*)new(220));
  944. rT220make(n,(T0 *)C,a1);
  945. R=(T0 *)n;}}
  946. /*FI*/return R;
  947. }
  948. T0* rT88clone(T88 *C,T0* a1){
  949. T0* R=NULL;
  950. /*IF*/if (((int)a1)) {
  951. R=(T0 *)new(a1->id);
  952. AF_1
  953. XrT28copy(R,a1);
  954. AF_0
  955. }
  956. /*FI*/return R;
  957. }
  958. T0* rT88to_key(T88 *C){
  959. T0* R=NULL;
  960. R=(C)->_to_string;
  961. return R;
  962. }
  963. void rT88compile_to_c(T88 *C){
  964. rT40put_character((T40*)oRBC27cpp,'a');
  965. rT40put_integer((T40*)oRBC27cpp,(C)->_rank);
  966. }
  967. int rT88to_integer(T88 *C){
  968. int R=0;
  969. rT88error((C)->_start_position,(T0 *)ms175);
  970. return R;
  971. }
  972. T0 * rT88written_in(T88 *C){
  973. T0 * R=NULL;
  974. T0 * _sp=NULL;
  975. _sp=(C)->_start_position;
  976. /*IF*/if (((int)_sp)) {
  977. R=((T46*)_sp)->_base_class_name;
  978. }
  979. /*FI*/return R;
  980. }
  981. T0 * rT88base_class_written(T88 *C){
  982. T0 * R=NULL;
  983. R=rT48base_class((T48*)rT88written_in(C));
  984. return R;
  985. }
  986. void rT88copy(T88 *C,T0 * a1){
  987. /*IF*//*AF*//*AE*/
  988. memcpy(C,a1,s[C->id]);
  989. /*FI*/}
  990. int rT88is_a(T88 *C,T0 * a1){
  991. int R=0;
  992. R=XrT58is_a(XrT58run_type((C)->_result_type),XrT58run_type(XrT68result_type(a1)));
  993. /*IF*/if (!(R)) {
  994. /*UT*/(T45*)oRBC27eh;
  995. rT45add_position((C)->_start_position);
  996. rT88error(XrT68start_position(a1),(T0 *)ms1261);
  997. }
  998. /*FI*/return R;
  999. }
  1000. void rT88make(T88 *C,T0 * a1,T0* a2,int a3){
  1001. C->_start_position=a1;
  1002. C->_to_string=a2;
  1003. C->_rank=a3;
  1004. }
  1005. int rT70same_as(T70 *C,T0 * a1){
  1006. int R=0;
  1007. R=rT7is_equal((T7*)rT70to_key(C),XrT49to_key(a1));
  1008. return R;
  1009. }
  1010. int rT70static_value(T70 *C){
  1011. int R=0;
  1012. R=(C)->_static_value_mem;
  1013. return R;
  1014. }
  1015. void rT70fatal_error(/*C*/T0* a1){
  1016. rT45fatal_error((T45*)oRBC27eh,a1);
  1017. }
  1018. T0 * rT70to_runnable(T70 *C,T0 * a1){
  1019. T0 * R=NULL;
  1020. T0 * _rf=NULL;
  1021. /*IF*/if (!((C)->_current_type)) {
  1022. C->_current_type=a1;
  1023. _rf=rT260get_feature((T260*)XrT58run_class((C)->_current_type),(T0 *)C);
  1024. /*IF*/if (!(_rf)) {
  1025. rT70error((C)->_start_position,(T0 *)ms1110);
  1026. }
  1027.  else if (XrT261is_writable(_rf)) {
  1028. C->_result_type=XrT261result_type(_rf);
  1029. }
  1030. else {
  1031. /*UT*/(T45*)oRBC27eh;
  1032. rT45add_position(XrT261start_position(_rf));
  1033. rT70error((C)->_start_position,(T0 *)ms1111);
  1034. }
  1035. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  1036. R=(T0 *)C;
  1037. }
  1038. else {
  1039. rT70error((C)->_start_position,(T0 *)ms1112);
  1040. }
  1041. /*FI*/}
  1042.  else if (((T0 *)a1)==((T0 *)(C)->_current_type)) {
  1043. R=(T0 *)C;
  1044. }
  1045.  else if (rT7is_equal((T7*)XrT58run_time_mark(a1),XrT58run_time_mark((C)->_current_type))) {
  1046. rT70error((C)->_start_position,(T0 *)ms1113);
  1047. /*UT*/(T45*)oRBC27eh;
  1048. rT45add_type(a1,(T0 *)ms1114);
  1049. /*UT*/(T45*)oRBC27eh;
  1050. rT45add_type((C)->_current_type,(T0 *)ms1115);
  1051. rT45print_as_error((T45*)oRBC27eh);
  1052. }
  1053. else {
  1054. {T70 *n=((T70*)new(70));
  1055. rT70make(n,(C)->_to_string,(C)->_start_position);
  1056. R=(T0 *)n;}
  1057. R=rT70to_runnable((T70*)R,a1);
  1058. }
  1059. /*FI*/return R;
  1060. }
  1061. void rT70error(/*C*/T0 * a1,T0* a2){
  1062. /*UT*/(T45*)oRBC27eh;
  1063. rT45add_position(a1);
  1064. rT45error((T45*)oRBC27eh,a2);
  1065. }
  1066. T0 * rT70add_comment(T70 *C,T0 * a1){
  1067. T0 * R=NULL;
  1068. /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
  1069. R=(T0 *)C;
  1070. }
  1071. else {
  1072. {T220 *n=((T220*)new(220));
  1073. rT220make(n,(T0 *)C,a1);
  1074. R=(T0 *)n;}}
  1075. /*FI*/return R;
  1076. }
  1077. int rT70is_equal(T70 *C,T0 * a1){
  1078. int R=0;
  1079. R=rT70standard_is_equal(C,a1);
  1080. return R;
  1081. }
  1082. T0* rT70to_key(T70 *C){
  1083. T0* R=NULL;
  1084. R=(C)->_to_string;
  1085. return R;
  1086. }
  1087. int rT70can_be_dropped(T70 *C){
  1088. int R=0;
  1089. /*UT*/(T45*)oRBC27eh;
  1090. rT45add_position((C)->_start_position);
  1091. rT70fatal_error((T0 *)ms1520);
  1092. return R;
  1093. }
  1094. void rT70mapping_c(T70 *C){
  1095. /*(IRF3*/(((T7*)oRBC67mapping_c_mem)->_count)=(0);
  1096. /*)*/rT70mapping_c_in(C,oRBC67mapping_c_mem);
  1097. rT40put_string((T40*)oRBC27cpp,oRBC67mapping_c_mem);
  1098. }
  1099. void rT70mapping_c_in(T70 *C,T0* a1){
  1100. /*IF*/{/*AT*//*IF*/if (rT7is_equal((T7*)(T0 *)ms102,(C)->_to_string)) {
  1101. rT7append((T7*)a1,(C)->_to_string);
  1102. }
  1103. else {
  1104. rT7append((T7*)a1,(T0 *)ms798);
  1105. rT70mapping_c_aux(C,a1);
  1106. }
  1107. /*FI*/}
  1108. /*FI*/}
  1109. void rT70mapping_c_aux(T70 *C,T0* a1){
  1110. int _i=0;
  1111. _i=1;
  1112. while (!((_i)>(((T7*)(C)->_to_string)->_count))) {
  1113. rT2append_in(((unsigned char)rT7item((T7*)(C)->_to_string,_i)),a1);
  1114. _i=(_i)+(1);
  1115. }
  1116. }
  1117. void rT70compile_to_c(T70 *C){
  1118. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1156);
  1119. rT40put_string((T40*)oRBC27cpp,(C)->_to_string);
  1120. }
  1121. int rT70to_integer(T70 *C){
  1122. int R=0;
  1123. rT70error((C)->_start_position,(T0 *)ms175);
  1124. return R;
  1125. }
  1126. T0* rT70to_err_msg2(T70 *C){
  1127. T0* R=NULL;
  1128. R=rT70to_err2(C);
  1129. return R;
  1130. }
  1131. T0* rT70to_err1(T70 *C){
  1132. T0* R=NULL;
  1133. {T7 *n=((T7*)new(7));
  1134. rT7copy(n,(C)->_to_string);
  1135. R=(T0 *)n;}
  1136. rT7precede((T7*)R,'\140');
  1137. rT7extend((T7*)R,'\47');
  1138. return R;
  1139. }
  1140. T0* rT70to_err2(T70 *C){
  1141. T0* R=NULL;
  1142. R=rT70to_err1(C);
  1143. /*IF*/if (((int)(C)->_start_position)) {
  1144. rT7append((T7*)R,(T0 *)ms462);
  1145. rT7append((T7*)R,rT46to_err_msg((T46*)(C)->_start_position));
  1146. rT7append((T7*)R,(T0 *)ms466);
  1147. }
  1148. /*FI*/return R;
  1149. }
  1150. T0* rT70to_err_msg(T70 *C){
  1151. T0* R=NULL;
  1152. R=rT70to_err2(C);
  1153. rT7prepend((T7*)R,(T0 *)ms1432);
  1154. return R;
  1155. }
  1156. T0 * rT70written_in(T70 *C){
  1157. T0 * R=NULL;
  1158. T0 * _sp=NULL;
  1159. _sp=(C)->_start_position;
  1160. /*IF*/if (((int)_sp)) {
  1161. R=((T46*)_sp)->_base_class_name;
  1162. }
  1163. /*FI*/return R;
  1164. }
  1165. T0 * rT70run_feature(T70 *C,T0 * a1){
  1166. T0 * R=NULL;
  1167. R=rT260get_feature((T260*)XrT58run_class(a1),(T0 *)C);
  1168. return R;
  1169. }
  1170. int rT70standard_is_equal(T70 *C,T0 * a1){
  1171. int R=0;
  1172. /*IF*//*AF*/if (((T0 *)a1)==((T0 *)C)) {
  1173. R=1;
  1174. }
  1175. else {
  1176. R=!memcmp(C,a1,s[C->id]);
  1177. }
  1178. /*FI*/return R;
  1179. }
  1180. void rT70copy(T70 *C,T0 * a1){
  1181. /*IF*//*AF*//*AE*/
  1182. memcpy(C,a1,s[C->id]);
  1183. /*FI*/}
  1184. int rT70is_a(T70 *C,T0 * a1){
  1185. int R=0;
  1186. R=XrT58is_a(XrT58run_type((C)->_result_type),XrT58run_type(XrT68result_type(a1)));
  1187. /*IF*/if (!(R)) {
  1188. /*UT*/(T45*)oRBC27eh;
  1189. rT45add_position((C)->_start_position);
  1190. rT70error(XrT68start_position(a1),(T0 *)ms1261);
  1191. }
  1192. /*FI*/return R;
  1193. }
  1194. void rT70make(T70 *C,T0* a1,T0 * a2){
  1195. C->_to_string=a1;
  1196. C->_start_position=a2;
  1197. }
  1198. T0 * rT64to_runnable(T64 *C,T0 * a1){
  1199. T0 * R=NULL;
  1200. T0 * _e=NULL;
  1201. /*IF*/if (!((C)->_current_type)) {
  1202. C->_current_type=a1;
  1203. R=(T0 *)C;
  1204. /*IF*/if (((int)(C)->_expression)) {
  1205. _e=XrT68to_runnable((C)->_expression,a1);
  1206. /*IF*/if (!(_e)) {
  1207. rT64error(rT64start_position(C),(T0 *)ms477);
  1208. }
  1209. else {
  1210. C->_expression=_e;
  1211. /*IF*/if (!(XrT58is_boolean(XrT68result_type((C)->_expression)))) {
  1212. /*UT*/(T45*)oRBC27eh;
  1213. rT45add_type(XrT68result_type((C)->_expression),(T0 *)ms479);
  1214. rT64error(rT64start_position(C),(T0 *)ms477);
  1215. }
  1216. /*FI*/}
  1217. /*FI*/}
  1218. /*FI*/}
  1219. else {
  1220. {T64 *n=((T64*)new(64));
  1221. rT64make(n,(C)->_tag,(C)->_expression,(C)->_comment);
  1222. R=(T0 *)n;}
  1223. R=rT64to_runnable((T64*)R,a1);
  1224. }
  1225. /*FI*/return R;
  1226. }
  1227. void rT64error(/*C*/T0 * a1,T0* a2){
  1228. /*UT*/(T45*)oRBC27eh;
  1229. rT45add_position(a1);
  1230. rT45error((T45*)oRBC27eh,a2);
  1231. }
  1232. T0 * rT64start_position(T64 *C){
  1233. T0 * R=NULL;
  1234. /*IF*/if (((int)(C)->_tag)) {
  1235. R=((T159*)(C)->_tag)->_start_position;
  1236. }
  1237.  else if (((int)(C)->_expression)) {
  1238. R=XrT68start_position((C)->_expression);
  1239. }
  1240. else {
  1241. R=((T59*)(C)->_comment)->_start_position;
  1242. }
  1243. /*FI*/return R;
  1244. }
  1245. int rT64use_current(T64 *C){
  1246. int R=0;
  1247. /*IF*/if (((int)(C)->_expression)) {
  1248. R=XrT68use_current((C)->_expression);
  1249. }
  1250. /*FI*/return R;
  1251. }
  1252. void rT64compile_to_c_old(T64 *C){
  1253. /*IF*/if (((int)(C)->_expression)) {
  1254. XrT68compile_to_c_old((C)->_expression);
  1255. }
  1256. /*FI*/}
  1257. void rT64compile_to_c(T64 *C){
  1258. /*IF*/if (((int)(C)->_expression)) {
  1259. rT40check_assertion((T40*)oRBC27cpp,(C)->_expression);
  1260. }
  1261. /*FI*/}
  1262. void rT64copy(T64 *C,T0 * a1){
  1263. /*IF*//*AF*//*AE*/
  1264. memcpy(C,a1,s[C->id]);
  1265. /*FI*/}
  1266. void rT64make(T64 *C,T0 * a1,T0 * a2,T0 * a3){
  1267. C->_tag=a1;
  1268. C->_expression=a2;
  1269. C->_comment=a3;
  1270. }
  1271. T0 * rT140first(T140 *C){
  1272. T0 * R=NULL;
  1273. /*IF*/if (((int)(C)->_list)) {
  1274. R=rT217first((T217*)(C)->_list);
  1275. }
  1276. /*FI*/return R;
  1277. }
  1278. void rT140fatal_error(/*C*/T0* a1){
  1279. rT45fatal_error((T45*)oRBC27eh,a1);
  1280. }
  1281. int rT140count(T140 *C){
  1282. int R=0;
  1283. /*IF*/if (((int)(C)->_list)) {
  1284. R=((T217*)(C)->_list)->_upper;
  1285. }
  1286. /*FI*/return R;
  1287. }
  1288. T0 * rT140to_runnable(T140 *C,T0 * a1){
  1289. T0 * R=NULL;
  1290. T0 * _i2=NULL;
  1291. T0 * _i1=NULL;
  1292. int _i=0;
  1293. /*IF*/if (!((C)->_current_type)) {
  1294. C->_current_type=a1;
  1295. /*IF*/if (((int)(C)->_list)) {
  1296. _i=1;
  1297. while (!((_i)>(((T217*)(C)->_list)->_upper))) {
  1298. _i1=rT217item((T217*)(C)->_list,_i);
  1299. _i2=XrT176to_runnable(_i1,(T0 *)C);
  1300. /*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)>(0)) {
  1301. /*UT*/(T45*)oRBC27eh;
  1302. rT45append((T0 *)ms515);
  1303. /*UT*/(T45*)oRBC27eh;
  1304. rT45append(XrT58written_mark((C)->_current_type));
  1305. /*UT*/(T45*)oRBC27eh;
  1306. rT45add_position(XrT176start_position(_i1));
  1307. rT140fatal_error((T0 *)ms516);
  1308. }
  1309. else {
  1310. rT217put((T217*)(C)->_list,_i2,_i);
  1311. }
  1312. /*FI*/_i=(_i)+(1);
  1313. }
  1314. }
  1315. /*FI*/R=(T0 *)C;
  1316. }
  1317. else {
  1318. {T140 *n=((T140*)new(140));
  1319. rT140make(n,(C)->_header_comment,rT140clone(C,(C)->_list));
  1320. R=(T0 *)n;}
  1321. R=rT140to_runnable((T140*)R,a1);
  1322. }
  1323. /*FI*/return R;
  1324. }
  1325. int rT140use_current(T140 *C){
  1326. int R=0;
  1327. int _i=0;
  1328. /*IF*/if (((int)(C)->_list)) {
  1329. _i=1;
  1330. while (!((R)||((_i)>(((T217*)(C)->_list)->_upper)))) {
  1331. R=XrT176use_current(rT217item((T217*)(C)->_list,_i));
  1332. _i=(_i)+(1);
  1333. }
  1334. }
  1335. /*FI*/return R;
  1336. }
  1337. T0* rT140clone(T140 *C,T0* a1){
  1338. T0* R=NULL;
  1339. /*IF*/if (((int)a1)) {
  1340. R=(T0 *)new(a1->id);
  1341. AF_1
  1342. XrT28copy(R,a1);
  1343. AF_0
  1344. }
  1345. /*FI*/return R;
  1346. }
  1347. T0 * rT140run_class(T140 *C){
  1348. T0 * R=NULL;
  1349. R=XrT58run_class((C)->_current_type);
  1350. return R;
  1351. }
  1352. void rT140compile_to_c(T140 *C){
  1353. int _i=0;
  1354. /*IF*/if (((int)(C)->_list)) {
  1355. _i=1;
  1356. while (!((_i)>(((T217*)(C)->_list)->_upper))) {
  1357. XrT176compile_to_c(rT217item((T217*)(C)->_list,_i));
  1358. _i=(_i)+(1);
  1359. }
  1360. }
  1361. /*FI*/}
  1362. void rT140copy(T140 *C,T0 * a1){
  1363. /*IF*//*AF*//*AE*/
  1364. memcpy(C,a1,s[C->id]);
  1365. /*FI*/}
  1366. int rT140is_pre_computable(T140 *C){
  1367. int R=0;
  1368. T0 * _a=NULL;
  1369. T0 * _cc=NULL;
  1370. T0 * _i=NULL;
  1371. /*IF*/if (!((C)->_list)) {
  1372. R=1;
  1373. }
  1374.  else if ((((T217*)(C)->_list)->_upper)==(1)) {
  1375. _i=rT217item((T217*)(C)->_list,1);
  1376. _cc=_i;
  1377. if ((int)_cc) switch (((T0 *)_cc)->id) {
  1378. case 247: case 245: case 243: case 240: 
  1379. break;
  1380. default:
  1381. _cc = NULL;
  1382. };/*IF*/if (((int)_cc)) {
  1383. R=XrT242is_pre_computable(_cc);
  1384. }
  1385. else {
  1386. _a=_i;
  1387. if ((int)_a) switch (((T0 *)_a)->id) {
  1388. case 248: 
  1389. break;
  1390. default:
  1391. _a = NULL;
  1392. };/*IF*/if (((int)_a)) {
  1393. R=rT248is_pre_computable((T248*)_a);
  1394. }
  1395. /*FI*/}
  1396. /*FI*/}
  1397. /*FI*/return R;
  1398. }
  1399. void rT140make(T140 *C,T0 * a1,T0* a2){
  1400. C->_header_comment=a1;
  1401. C->_list=a2;
  1402. }
  1403. void rT276clear_all(T276 *C){
  1404. int _value=0;
  1405. rT276set_all_with(C,_value);
  1406. }
  1407. void rT276set_all_with(T276 *C,int a1){
  1408. int _i=0;
  1409. _i=(C)->_upper;
  1410. while (!((_i)<((C)->_lower))) {
  1411. rT276put(C,a1,_i);
  1412. _i=(_i)-(1);
  1413. }
  1414. }
  1415. void rT276resize(T276 *C,int a1,int a2){
  1416. int _up=0;
  1417. int _i=0;
  1418. T0* _other=NULL;
  1419. {T276 *n=((T276*)new(276));
  1420. rT276make(n,a1,a2);
  1421. _other=(T0 *)n;}
  1422. _i=rT2max((C)->_lower,((T276*)_other)->_lower);
  1423. _up=rT2min((C)->_upper,((T276*)_other)->_upper);
  1424. while (!((_i)>(_up))) {
  1425. rT276put((T276*)_other,rT276item(C,_i),_i);
  1426. _i=(_i)+(1);
  1427. }
  1428. /*IF*/{/*AT*/free(C->_storage);
  1429. }
  1430. /*FI*/memcpy(C,_other,sizeof(*C));free(_other);
  1431. }
  1432. void rT276force(T276 *C,int a1,int a2){
  1433. /*IF*/if (((C)->_upper)<(a2)) {
  1434. rT276resize(C,(C)->_lower,a2);
  1435. }
  1436.  else if ((a2)<((C)->_lower)) {
  1437. rT276resize(C,a2,(C)->_upper);
  1438. }
  1439. /*FI*/rT276put(C,a1,a2);
  1440. }
  1441. int rT276item(T276 *C,int a1){
  1442. int R=0;
  1443. R=(C->_storage)[a1-(C->_lower)];
  1444. return R;
  1445. }
  1446. int rT276valid_index(T276 *C,int a1){
  1447. int R=0;
  1448. R=(((C)->_lower)<=(a1))&&((a1)<=((C)->_upper));
  1449. return R;
  1450. }
  1451. void rT276put(T276 *C,int a1,int a2){
  1452. (C->_storage)[a2-(C->_lower)]=a1;
  1453. }
  1454. void rT276copy(T276 *C,T0* a1){
  1455. int _i=0;
  1456. C->_upper=((C)->_lower)-(1);
  1457. /*IF*/if (((C)->_capacity)==(0)) {
  1458. rT276make(C,((T276*)a1)->_lower,((T276*)a1)->_upper);
  1459. }
  1460. else {
  1461. rT276resize(C,((T276*)a1)->_lower,((T276*)a1)->_upper);
  1462. }
  1463. /*FI*/_i=(C)->_lower;
  1464. while (!((_i)>((C)->_upper))) {
  1465. rT276put(C,rT276item((T276*)a1,_i),_i);
  1466. _i=(_i)+(1);
  1467. }
  1468. }
  1469. void rT276set_slice_with(T276 *C,int a1,int a2,int a3){
  1470. int _i=0;
  1471. _i=a2;
  1472. while (!((_i)>(a3))) {
  1473. rT276put(C,a1,_i);
  1474. _i=(_i)+(1);
  1475. }
  1476. }
  1477. void rT276make(T276 *C,int a1,int a2){
  1478. /*IF*/{/*AT*/free(C->_storage);
  1479. }
  1480. /*FI*/C->_lower=a1;
  1481. C->_upper=a2;
  1482. C->_capacity=(((C)->_upper)-((C)->_lower))+(1);
  1483. C->_storage=NULL;
  1484. /*IF*/if (((C)->_capacity)>(0)) {
  1485. C->_capacity=((C)->_capacity)+(16);
  1486. C->_storage=malloc((size_t)((C->_capacity)*sizeof(*(C->_storage))));
  1487. rT276clear_all(C);
  1488. }
  1489. /*FI*/}
  1490.