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_c13.c < prev    next >
Encoding:
C/C++ Source or Header  |  1996-05-02  |  45.4 KB  |  1,874 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. void rT61expand(T61 *C){
  11. int _old_size=0;
  12. int _i=0;
  13. C->_item_mem=0;
  14. _old_size=XrT63count((C)->_store);
  15. rT55resize((T55*)(C)->_chain,1,(2)*(_old_size));
  16. rT41resize((T41*)(C)->_keys,1,(2)*(_old_size));
  17. XrT63resize((C)->_store,1,(2)*(_old_size));
  18. _i=(_old_size)+(1);
  19. while (!((_i)==(rT55count((T55*)(C)->_chain)))) {
  20. rT55put((T55*)(C)->_chain,(_i)+(1),_i);
  21. _i=(_i)+(1);
  22. }
  23. rT55put((T55*)(C)->_chain,(C)->_free,_i);
  24. C->_free=(_old_size)+(1);
  25. }
  26. int rT61has(T61 *C,T0* a1){
  27. int R=0;
  28. /*IF*/if ((((C)->_has_mem)==(0))||(!(rT7is_equal((T7*)a1,rT41item((T41*)(C)->_keys,(C)->_has_mem))))) {
  29. C->_has_mem=rT55item((T55*)(C)->_buckets,(rT7hash_code((T7*)a1))%((C)->_modulus));
  30. while (!((((C)->_has_mem)==(0))||(rT7is_equal((T7*)a1,rT41item((T41*)(C)->_keys,(C)->_has_mem))))) {
  31. C->_has_mem=rT55item((T55*)(C)->_chain,(C)->_has_mem);
  32. }
  33. }
  34. /*FI*/R=((C)->_has_mem)!=(0);
  35. return R;
  36. }
  37. void rT61make(T61 *C){
  38. int _i=0;
  39. C->_modulus=32;
  40. C->_count=0;
  41. C->_free=1;
  42. C->_has_mem=0;
  43. C->_item_mem=0;
  44. {T55 *n=((T55*)new(55));
  45. rT55make(n,0,((C)->_modulus)-(1));
  46. C->_buckets=(T0 *)n;}
  47. {T55 *n=((T55*)new(55));
  48. rT55make(n,1,16);
  49. C->_chain=(T0 *)n;}
  50. {T63 *n=((T63*)new(63));
  51. rT63make(n,1,16);
  52. C->_store=(T0 *)n;}
  53. {T41 *n=((T41*)new(41));
  54. rT41make(n,1,16);
  55. C->_keys=(T0 *)n;}
  56. _i=1;
  57. while (!((_i)==(rT55count((T55*)(C)->_chain)))) {
  58. rT55put((T55*)(C)->_chain,(_i)+(1),_i);
  59. _i=(_i)+(1);
  60. }
  61. rT55put((T55*)(C)->_chain,0,_i);
  62. _i=0;
  63. while (!((_i)>=((C)->_modulus))) {
  64. rT55put((T55*)(C)->_buckets,0,_i);
  65. _i=(_i)+(1);
  66. }
  67. }
  68. void rT57resize(T57 *C,int a1){
  69. int _p=0;
  70. int _n=0;
  71. int _i=0;
  72. T0* _new_buc=NULL;
  73. int _hash=0;
  74. {T55 *n=((T55*)new(55));
  75. rT55make(n,0,(a1)-(1));
  76. _new_buc=(T0 *)n;}
  77. _i=0;
  78. while (!((_i)>=((C)->_modulus))) {
  79. _n=rT55item((T55*)(C)->_buckets,_i);
  80. while (!((_n)==(0))) {
  81. _p=rT55item((T55*)(C)->_chain,_n);
  82. _hash=(rT7hash_code((T7*)rT41item((T41*)(C)->_keys,_n)))%(a1);
  83. rT55put((T55*)(C)->_chain,rT55item((T55*)_new_buc,_hash),_n);
  84. rT55put((T55*)_new_buc,_n,_hash);
  85. _n=_p;
  86. }
  87. _i=(_i)+(1);
  88. }
  89. C->_buckets=_new_buc;
  90. C->_modulus=a1;
  91. C->_item_mem=0;
  92. }
  93. T0* rT57clone(T57 *C,T0* a1){
  94. T0* R=NULL;
  95. /*IF*/if (((int)a1)) {
  96. R=(T0 *)new(a1->id);
  97. AF_1
  98. XrT28copy(R,a1);
  99. AF_0
  100. }
  101. /*FI*/return R;
  102. }
  103. T0* rT57at(T57 *C,T0* a1){
  104. T0* R=NULL;
  105. int _foo=0;
  106. _foo=rT57has(C,a1);
  107. R=rT41item((T41*)(C)->_store,(C)->_has_mem);
  108. return R;
  109. }
  110. void rT57put(T57 *C,T0* a1,T0* a2){
  111. int _hash=0;
  112. _hash=(rT7hash_code((T7*)a2))%((C)->_modulus);
  113. /*IF*/if ((((C)->_has_mem)==(0))||(!(rT7is_equal((T7*)a2,rT41item((T41*)(C)->_keys,(C)->_has_mem))))) {
  114. C->_has_mem=rT55item((T55*)(C)->_buckets,_hash);
  115. while (!((((C)->_has_mem)==(0))||(rT7is_equal((T7*)a2,rT41item((T41*)(C)->_keys,(C)->_has_mem))))) {
  116. C->_has_mem=rT55item((T55*)(C)->_chain,(C)->_has_mem);
  117. }
  118. /*IF*/if (((C)->_has_mem)==(0)) {
  119. /*IF*/if (((C)->_count)>=(rT41count((T41*)(C)->_store))) {
  120. rT57expand(C);
  121. }
  122. /*FI*/rT41put((T41*)(C)->_keys,a2,(C)->_free);
  123. rT41put((T41*)(C)->_store,a1,(C)->_free);
  124. C->_has_mem=(C)->_free;
  125. C->_free=rT55item((T55*)(C)->_chain,(C)->_free);
  126. rT55put((T55*)(C)->_chain,rT55item((T55*)(C)->_buckets,_hash),(C)->_has_mem);
  127. rT55put((T55*)(C)->_buckets,(C)->_has_mem,_hash);
  128. C->_count=((C)->_count)+(1);
  129. /*IF*/if (((C)->_count)>(((C)->_modulus)*(2))) {
  130. rT57resize(C,(2)*((C)->_modulus));
  131. }
  132. /*FI*/}
  133. /*FI*/}
  134. else {
  135. rT41put((T41*)(C)->_store,a1,(C)->_has_mem);
  136. }
  137. /*FI*/C->_item_mem=0;
  138. }
  139. void rT57standard_copy(T57 *C,T0 * a1){
  140. memcpy(C,a1,s[a1->id]);
  141. }
  142. void rT57copy(T57 *C,T0 * a1){
  143. rT57standard_copy(C,a1);
  144. C->_keys=rT57clone(C,((T57*)a1)->_keys);
  145. C->_store=rT57clone(C,((T57*)a1)->_store);
  146. C->_buckets=rT57clone(C,((T57*)a1)->_buckets);
  147. C->_chain=rT57clone(C,((T57*)a1)->_chain);
  148. }
  149. void rT57expand(T57 *C){
  150. int _old_size=0;
  151. int _i=0;
  152. C->_item_mem=0;
  153. _old_size=rT41count((T41*)(C)->_store);
  154. rT55resize((T55*)(C)->_chain,1,(2)*(_old_size));
  155. rT41resize((T41*)(C)->_keys,1,(2)*(_old_size));
  156. rT41resize((T41*)(C)->_store,1,(2)*(_old_size));
  157. _i=(_old_size)+(1);
  158. while (!((_i)==(rT55count((T55*)(C)->_chain)))) {
  159. rT55put((T55*)(C)->_chain,(_i)+(1),_i);
  160. _i=(_i)+(1);
  161. }
  162. rT55put((T55*)(C)->_chain,(C)->_free,_i);
  163. C->_free=(_old_size)+(1);
  164. }
  165. int rT57has(T57 *C,T0* a1){
  166. int R=0;
  167. /*IF*/if ((((C)->_has_mem)==(0))||(!(rT7is_equal((T7*)a1,rT41item((T41*)(C)->_keys,(C)->_has_mem))))) {
  168. C->_has_mem=rT55item((T55*)(C)->_buckets,(rT7hash_code((T7*)a1))%((C)->_modulus));
  169. while (!((((C)->_has_mem)==(0))||(rT7is_equal((T7*)a1,rT41item((T41*)(C)->_keys,(C)->_has_mem))))) {
  170. C->_has_mem=rT55item((T55*)(C)->_chain,(C)->_has_mem);
  171. }
  172. }
  173. /*FI*/R=((C)->_has_mem)!=(0);
  174. return R;
  175. }
  176. void rT57make(T57 *C){
  177. int _i=0;
  178. C->_modulus=32;
  179. C->_count=0;
  180. C->_free=1;
  181. C->_has_mem=0;
  182. C->_item_mem=0;
  183. {T55 *n=((T55*)new(55));
  184. rT55make(n,0,((C)->_modulus)-(1));
  185. C->_buckets=(T0 *)n;}
  186. {T55 *n=((T55*)new(55));
  187. rT55make(n,1,16);
  188. C->_chain=(T0 *)n;}
  189. {T41 *n=((T41*)new(41));
  190. rT41make(n,1,16);
  191. C->_store=(T0 *)n;}
  192. {T41 *n=((T41*)new(41));
  193. rT41make(n,1,16);
  194. C->_keys=(T0 *)n;}
  195. _i=1;
  196. while (!((_i)==(rT55count((T55*)(C)->_chain)))) {
  197. rT55put((T55*)(C)->_chain,(_i)+(1),_i);
  198. _i=(_i)+(1);
  199. }
  200. rT55put((T55*)(C)->_chain,0,_i);
  201. _i=0;
  202. while (!((_i)>=((C)->_modulus))) {
  203. rT55put((T55*)(C)->_buckets,0,_i);
  204. _i=(_i)+(1);
  205. }
  206. }
  207. void rT54forth(T54 *C){
  208. int _i=0;
  209. /*IF*/if ((rT55item((T55*)(C)->_chain,(C)->_item_mem_j))!=(0)) {
  210. C->_item_mem_j=rT55item((T55*)(C)->_chain,(C)->_item_mem_j);
  211. }
  212. else {
  213. _i=((C)->_item_mem_i)+(1);
  214. while (!((rT55item((T55*)(C)->_buckets,_i))!=(0))) {
  215. _i=(_i)+(1);
  216. }
  217. C->_item_mem_i=_i;
  218. C->_item_mem_j=rT55item((T55*)(C)->_buckets,_i);
  219. }
  220. /*FI*/C->_item_mem=((C)->_item_mem)+(1);
  221. }
  222. void rT54first(T54 *C){
  223. int _i=0;
  224. _i=0;
  225. while (!((rT55item((T55*)(C)->_buckets,_i))!=(0))) {
  226. _i=(_i)+(1);
  227. }
  228. C->_item_mem_i=_i;
  229. C->_item_mem_j=rT55item((T55*)(C)->_buckets,_i);
  230. C->_item_mem=1;
  231. }
  232. void rT54resize(T54 *C,int a1){
  233. int _p=0;
  234. int _n=0;
  235. int _i=0;
  236. T0* _new_buc=NULL;
  237. int _hash=0;
  238. {T55 *n=((T55*)new(55));
  239. rT55make(n,0,(a1)-(1));
  240. _new_buc=(T0 *)n;}
  241. _i=0;
  242. while (!((_i)>=((C)->_modulus))) {
  243. _n=rT55item((T55*)(C)->_buckets,_i);
  244. while (!((_n)==(0))) {
  245. _p=rT55item((T55*)(C)->_chain,_n);
  246. _hash=(rT7hash_code((T7*)rT41item((T41*)(C)->_keys,_n)))%(a1);
  247. rT55put((T55*)(C)->_chain,rT55item((T55*)_new_buc,_hash),_n);
  248. rT55put((T55*)_new_buc,_n,_hash);
  249. _n=_p;
  250. }
  251. _i=(_i)+(1);
  252. }
  253. C->_buckets=_new_buc;
  254. C->_modulus=a1;
  255. C->_item_mem=0;
  256. }
  257. T0 * rT54item(T54 *C,int a1){
  258. T0 * R=NULL;
  259. /*IF*/if (((C)->_item_mem)==(0)) {
  260. rT54first(C);
  261. while (!((a1)==((C)->_item_mem))) {
  262. rT54forth(C);
  263. }
  264. R=rT56item((T56*)(C)->_store,(C)->_item_mem_j);
  265. }
  266.  else if (((C)->_item_mem)<=(a1)) {
  267. while (!((a1)==((C)->_item_mem))) {
  268. rT54forth(C);
  269. }
  270. R=rT56item((T56*)(C)->_store,(C)->_item_mem_j);
  271. }
  272. else {
  273. C->_item_mem=0;
  274. R=rT54item(C,a1);
  275. }
  276. /*FI*/return R;
  277. }
  278. T0* rT54clone(T54 *C,T0* a1){
  279. T0* R=NULL;
  280. /*IF*/if (((int)a1)) {
  281. R=(T0 *)new(a1->id);
  282. AF_1
  283. XrT28copy(R,a1);
  284. AF_0
  285. }
  286. /*FI*/return R;
  287. }
  288. T0 * rT54at(T54 *C,T0* a1){
  289. T0 * R=NULL;
  290. int _foo=0;
  291. _foo=rT54has(C,a1);
  292. R=rT56item((T56*)(C)->_store,(C)->_has_mem);
  293. return R;
  294. }
  295. void rT54put(T54 *C,T0 * a1,T0* a2){
  296. int _hash=0;
  297. _hash=(rT7hash_code((T7*)a2))%((C)->_modulus);
  298. /*IF*/if ((((C)->_has_mem)==(0))||(!(rT7is_equal((T7*)a2,rT41item((T41*)(C)->_keys,(C)->_has_mem))))) {
  299. C->_has_mem=rT55item((T55*)(C)->_buckets,_hash);
  300. while (!((((C)->_has_mem)==(0))||(rT7is_equal((T7*)a2,rT41item((T41*)(C)->_keys,(C)->_has_mem))))) {
  301. C->_has_mem=rT55item((T55*)(C)->_chain,(C)->_has_mem);
  302. }
  303. /*IF*/if (((C)->_has_mem)==(0)) {
  304. /*IF*/if (((C)->_count)>=(rT56count((T56*)(C)->_store))) {
  305. rT54expand(C);
  306. }
  307. /*FI*/rT41put((T41*)(C)->_keys,a2,(C)->_free);
  308. rT56put((T56*)(C)->_store,a1,(C)->_free);
  309. C->_has_mem=(C)->_free;
  310. C->_free=rT55item((T55*)(C)->_chain,(C)->_free);
  311. rT55put((T55*)(C)->_chain,rT55item((T55*)(C)->_buckets,_hash),(C)->_has_mem);
  312. rT55put((T55*)(C)->_buckets,(C)->_has_mem,_hash);
  313. C->_count=((C)->_count)+(1);
  314. /*IF*/if (((C)->_count)>(((C)->_modulus)*(2))) {
  315. rT54resize(C,(2)*((C)->_modulus));
  316. }
  317. /*FI*/}
  318. /*FI*/}
  319. else {
  320. rT56put((T56*)(C)->_store,a1,(C)->_has_mem);
  321. }
  322. /*FI*/C->_item_mem=0;
  323. }
  324. void rT54standard_copy(T54 *C,T0 * a1){
  325. memcpy(C,a1,s[a1->id]);
  326. }
  327. void rT54copy(T54 *C,T0 * a1){
  328. rT54standard_copy(C,a1);
  329. C->_keys=rT54clone(C,((T54*)a1)->_keys);
  330. C->_store=rT54clone(C,((T54*)a1)->_store);
  331. C->_buckets=rT54clone(C,((T54*)a1)->_buckets);
  332. C->_chain=rT54clone(C,((T54*)a1)->_chain);
  333. }
  334. void rT54expand(T54 *C){
  335. int _old_size=0;
  336. int _i=0;
  337. C->_item_mem=0;
  338. _old_size=rT56count((T56*)(C)->_store);
  339. rT55resize((T55*)(C)->_chain,1,(2)*(_old_size));
  340. rT41resize((T41*)(C)->_keys,1,(2)*(_old_size));
  341. rT56resize((T56*)(C)->_store,1,(2)*(_old_size));
  342. _i=(_old_size)+(1);
  343. while (!((_i)==(rT55count((T55*)(C)->_chain)))) {
  344. rT55put((T55*)(C)->_chain,(_i)+(1),_i);
  345. _i=(_i)+(1);
  346. }
  347. rT55put((T55*)(C)->_chain,(C)->_free,_i);
  348. C->_free=(_old_size)+(1);
  349. }
  350. int rT54has(T54 *C,T0* a1){
  351. int R=0;
  352. /*IF*/if ((((C)->_has_mem)==(0))||(!(rT7is_equal((T7*)a1,rT41item((T41*)(C)->_keys,(C)->_has_mem))))) {
  353. C->_has_mem=rT55item((T55*)(C)->_buckets,(rT7hash_code((T7*)a1))%((C)->_modulus));
  354. while (!((((C)->_has_mem)==(0))||(rT7is_equal((T7*)a1,rT41item((T41*)(C)->_keys,(C)->_has_mem))))) {
  355. C->_has_mem=rT55item((T55*)(C)->_chain,(C)->_has_mem);
  356. }
  357. }
  358. /*FI*/R=((C)->_has_mem)!=(0);
  359. return R;
  360. }
  361. void rT54make(T54 *C){
  362. int _i=0;
  363. C->_modulus=32;
  364. C->_count=0;
  365. C->_free=1;
  366. C->_has_mem=0;
  367. C->_item_mem=0;
  368. {T55 *n=((T55*)new(55));
  369. rT55make(n,0,((C)->_modulus)-(1));
  370. C->_buckets=(T0 *)n;}
  371. {T55 *n=((T55*)new(55));
  372. rT55make(n,1,16);
  373. C->_chain=(T0 *)n;}
  374. {T56 *n=((T56*)new(56));
  375. rT56make(n,1,16);
  376. C->_store=(T0 *)n;}
  377. {T41 *n=((T41*)new(41));
  378. rT41make(n,1,16);
  379. C->_keys=(T0 *)n;}
  380. _i=1;
  381. while (!((_i)==(rT55count((T55*)(C)->_chain)))) {
  382. rT55put((T55*)(C)->_chain,(_i)+(1),_i);
  383. _i=(_i)+(1);
  384. }
  385. rT55put((T55*)(C)->_chain,0,_i);
  386. _i=0;
  387. while (!((_i)>=((C)->_modulus))) {
  388. rT55put((T55*)(C)->_buckets,0,_i);
  389. _i=(_i)+(1);
  390. }
  391. }
  392. T0 * rT247current_type(T247 *C){
  393. T0 * R=NULL;
  394. /*IF*/if (((int)(C)->_run_compound)) {
  395. R=((T140*)(C)->_run_compound)->_current_type;
  396. }
  397. /*FI*/return R;
  398. }
  399. void rT247fatal_error(/*C*/T0* a1){
  400. rT45fatal_error((T45*)oRBC27eh,a1);
  401. }
  402. T0 * rT247to_runnable(T247 *C,T0 * a1){
  403. T0 * R=NULL;
  404. /*IF*/if (!((C)->_run_compound)) {
  405. rT247check_writable(C,a1);
  406. rT247check_explicit_type(C);
  407. rT247check_created_type(C,(C)->_type);
  408. rT247check_creation_clause(C,(C)->_type);
  409. R=(T0 *)C;
  410. }
  411. else {
  412. {T247 *n=((T247*)new(247));
  413. rT247make(n,(C)->_start_position,(C)->_type,(C)->_writable,(C)->_call);
  414. R=(T0 *)n;}
  415. R=rT247to_runnable((T247*)R,a1);
  416. }
  417. /*FI*/return R;
  418. }
  419. void rT247error(/*C*/T0 * a1,T0* a2){
  420. /*UT*/(T45*)oRBC27eh;
  421. rT45add_position(a1);
  422. rT45error((T45*)oRBC27eh,a2);
  423. }
  424. T0 * rT247add_comment(T247 *C,T0 * a1){
  425. T0 * R=NULL;
  426. /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
  427. R=(T0 *)C;
  428. }
  429. /*AF*/else {
  430. {T216 *n=((T216*)new(216));
  431. rT216make(n,(T0 *)C,a1);
  432. R=(T0 *)n;}}
  433. /*FI*/return R;
  434. }
  435. int rT247use_current(T247 *C){
  436. int R=0;
  437. /*IF*/if (((int)(C)->_run_args)) {
  438. R=rT170use_current((T170*)(C)->_run_args);
  439. }
  440. /*FI*/R=(R)||(XrT68use_current((C)->_writable));
  441. return R;
  442. }
  443. void rT247compile_to_c(T247 *C){
  444. int _id=0;
  445. _id=XrT58id((C)->_type);
  446. rT40rs_push_position((T40*)oRBC27cpp,'5',(C)->_start_position);
  447. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1321);
  448. rT40put_integer((T40*)oRBC27cpp,_id);
  449. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1322);
  450. rT40put_new_id((T40*)oRBC27cpp,_id);
  451. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1323);
  452. rT40expanded_attributes((T40*)oRBC27cpp,(T0 *)ms1324,NULL,(C)->_type);
  453. rT40push_new((T40*)oRBC27cpp,(C)->_run_feature,(C)->_run_args);
  454. XrT261mapping_c((C)->_run_feature);
  455. rT40pop((T40*)oRBC27cpp);
  456. XrT68compile_to_c((C)->_writable);
  457. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1325);
  458. rT247call_invariant(C,(C)->_type);
  459. rT40rs_pop_position((T40*)oRBC27cpp);
  460. }
  461. void rT247copy(T247 *C,T0 * a1){
  462. /*IF*//*AF*//*AE*/
  463. memcpy(C,a1,s[C->id]);
  464. /*FI*/}
  465. void rT247call_invariant(T247 *C,T0 * a1){
  466. /*IF*/if (rT40call_invariant_start((T40*)oRBC27cpp,a1)) {
  467. XrT58mapping_cast(a1);
  468. XrT68compile_to_c((C)->_writable);
  469. rT40call_invariant_end((T40*)oRBC27cpp);
  470. rT40put_character((T40*)oRBC27cpp,'\73');
  471. }
  472. /*FI*/}
  473. int rT247arg_count(T247 *C){
  474. int R=0;
  475. /*IF*/if (((int)(C)->_call)) {
  476. R=XrT177arg_count((C)->_call);
  477. }
  478. /*FI*/return R;
  479. }
  480. int rT247is_pre_computable(T247 *C){
  481. int R=0;
  482. T0* _rfctn=NULL;
  483. T0 * _rfct=NULL;
  484. int _i=0;
  485. /*IF*/if (XrT68is_result((C)->_writable)) {
  486. /*IF*/if (!((C)->_run_args)) {
  487. R=1;
  488. }
  489. else {
  490. R=1;
  491. _i=rT170count((T170*)(C)->_run_args);
  492. while (!((!(R))||((_i)==(0)))) {
  493. R=XrT68is_pre_computable(rT170expression((T170*)(C)->_run_args,_i));
  494. _i=(_i)-(1);
  495. }
  496. }
  497. /*FI*//*IF*/if (R) {
  498. /*IF*/if (XrT261is_pre_computable((C)->_run_feature)) {
  499. R=1;
  500. }
  501.  else if (rT7is_equal(ms1595,XrT67to_string(XrT261name((C)->_run_feature)))) {
  502. _rfct=XrT261current_type((C)->_run_feature);
  503. R=(XrT58is_array(_rfct))||(XrT58is_string(_rfct));
  504. /*IF*/if (!(R)) {
  505. _rfctn=XrT58run_time_mark(_rfct);
  506. R=(rT7has_prefix((T7*)_rfctn,(T0 *)ms1596))||(rT7has_prefix((T7*)_rfctn,(T0 *)ms1597));
  507. }
  508. /*FI*/}
  509. /*FI*/}
  510. /*FI*/}
  511. /*FI*/return R;
  512. }
  513. void rT247check_creation_clause(T247 *C,T0 * a1){
  514. T0 * _proc_name=NULL;
  515. _proc_name=XrT177procedure_name((C)->_call);
  516. /*IF*/if (!(XrT58has_creation(a1,_proc_name))) {
  517. /*UT*/(T45*)oRBC27eh;
  518. rT45add_position(XrT67start_position(_proc_name));
  519. /*UT*/(T45*)oRBC27eh;
  520. rT45append(XrT67to_string(_proc_name));
  521. /*UT*/(T45*)oRBC27eh;
  522. rT45append((T0 *)ms1254);
  523. /*UT*/(T45*)oRBC27eh;
  524. rT45add_type(a1,(T0 *)ms38);
  525. rT45print_as_error((T45*)oRBC27eh);
  526. }
  527. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  528. C->_run_feature=rT260get_feature((T260*)XrT58run_class(a1),_proc_name);
  529. /*IF*/if (!((C)->_run_feature)) {
  530. rT247error(XrT67start_position(_proc_name),(T0 *)ms1255);
  531. }
  532. else {
  533. XrT261add_clients((C)->_run_feature,rT140run_class((T140*)(C)->_run_compound));
  534. /*IF*/if (((int)XrT261result_type((C)->_run_feature))) {
  535. /*UT*/(T45*)oRBC27eh;
  536. rT45add_position(XrT261start_position((C)->_run_feature));
  537. rT247error(XrT67start_position(_proc_name),(T0 *)ms1256);
  538. }
  539. /*FI*/}
  540. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  541. /*IF*/if (((rT247arg_count(C))==(0))&&(((int)XrT261arguments((C)->_run_feature)))) {
  542. /*UT*/(T45*)oRBC27eh;
  543. rT45add_position(XrT261start_position((C)->_run_feature));
  544. rT247error((C)->_start_position,(T0 *)ms1257);
  545. }
  546. /*FI*/}
  547. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0))&&((rT247arg_count(C))>(0))) {
  548. C->_run_args=rT170to_runnable((T170*)XrT177arguments((C)->_call),rT247current_type(C));
  549. /*IF*/if (!((C)->_run_args)) {
  550. rT247error(rT170start_position((T170*)XrT177arguments((C)->_call)),(T0 *)ms1258);
  551. }
  552. else {
  553. rT170match_with((T170*)(C)->_run_args,(C)->_run_feature);
  554. }
  555. /*FI*/}
  556. /*FI*/}
  557. /*FI*/}
  558. void rT247check_created_type(T247 *C,T0 * a1){
  559. T0 * _rt=NULL;
  560. _rt=XrT58run_type(a1);
  561. /*IF*/if (((T50*)XrT58base_class(_rt))->_is_deferred) {
  562. /*UT*/(T45*)oRBC27eh;
  563. rT45add_type(_rt,(T0 *)ms1243);
  564. /*UT*/(T45*)oRBC27eh;
  565. rT45add_position((C)->_start_position);
  566. rT247fatal_error((T0 *)ms1244);
  567. }
  568. /*FI*//*IF*/if (XrT58is_expanded(_rt)) {
  569. /*UT*/(T45*)oRBC27eh;
  570. rT45add_position((C)->_start_position);
  571. /*UT*/(T45*)oRBC27eh;
  572. rT45append((T0 *)ms1245);
  573. /*UT*/(T45*)oRBC27eh;
  574. rT45add_type(a1,(T0 *)ms1246);
  575. rT45print_as_fatal_error((T45*)oRBC27eh);
  576. }
  577. /*FI*//*IF*/if (XrT58is_formal_generic(a1)) {
  578. /*UT*/(T45*)oRBC27eh;
  579. rT45add_position((C)->_start_position);
  580. /*UT*/(T45*)oRBC27eh;
  581. rT45append((T0 *)ms1247);
  582. /*UT*/(T45*)oRBC27eh;
  583. rT45add_type(a1,(T0 *)ms1248);
  584. rT45print_as_fatal_error((T45*)oRBC27eh);
  585. }
  586. /*FI*/rT260set_at_run_time((T260*)XrT58run_class(_rt));
  587. }
  588. void rT247check_explicit_type(T247 *C){
  589. T0 * _t=NULL;
  590. _t=XrT58to_runnable((C)->_type,rT247current_type(C));
  591. /*IF*/if ((!(_t))||(!(XrT58is_run_type(_t)))) {
  592. /*UT*/(T45*)oRBC27eh;
  593. rT45add_position(XrT58start_position((C)->_type));
  594. rT247fatal_error((T0 *)ms1252);
  595. }
  596. /*FI*//*IF*/if (!(XrT58is_a((C)->_type,XrT68result_type((C)->_writable)))) {
  597. rT247fatal_error((T0 *)ms1253);
  598. }
  599. /*FI*/}
  600. void rT247check_writable(T247 *C,T0 * a1){
  601. T0 * _w=NULL;
  602. C->_run_compound=a1;
  603. _w=XrT68to_runnable((C)->_writable,rT247current_type(C));
  604. /*IF*/if (!(_w)) {
  605. /*UT*/(T45*)oRBC27eh;
  606. rT45add_position(XrT68start_position((C)->_writable));
  607. rT247fatal_error((T0 *)ms1242);
  608. }
  609. else {
  610. C->_writable=_w;
  611. }
  612. /*FI*/}
  613. void rT247make(T247 *C,T0 * a1,T0 * a2,T0 * a3,T0 * a4){
  614. C->_start_position=a1;
  615. C->_type=a2;
  616. C->_writable=a3;
  617. C->_call=a4;
  618. }
  619. T0 * rT245current_type(T245 *C){
  620. T0 * R=NULL;
  621. /*IF*/if (((int)(C)->_run_compound)) {
  622. R=((T140*)(C)->_run_compound)->_current_type;
  623. }
  624. /*FI*/return R;
  625. }
  626. void rT245fatal_error(/*C*/T0* a1){
  627. rT45fatal_error((T45*)oRBC27eh,a1);
  628. }
  629. T0 * rT245to_runnable(T245 *C,T0 * a1){
  630. T0 * R=NULL;
  631. T0 * _t=NULL;
  632. /*IF*/if (!((C)->_run_compound)) {
  633. rT245check_writable(C,a1);
  634. _t=XrT68result_type((C)->_writable);
  635. rT245check_created_type(C,_t);
  636. rT245check_creation_clause(C,_t);
  637. R=(T0 *)C;
  638. }
  639. else {
  640. {T245 *n=((T245*)new(245));
  641. rT245make(n,(C)->_start_position,(C)->_writable,(C)->_call);
  642. R=(T0 *)n;}
  643. R=rT245to_runnable((T245*)R,a1);
  644. }
  645. /*FI*/return R;
  646. }
  647. void rT245error(/*C*/T0 * a1,T0* a2){
  648. /*UT*/(T45*)oRBC27eh;
  649. rT45add_position(a1);
  650. rT45error((T45*)oRBC27eh,a2);
  651. }
  652. T0 * rT245add_comment(T245 *C,T0 * a1){
  653. T0 * R=NULL;
  654. /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
  655. R=(T0 *)C;
  656. }
  657. /*AF*/else {
  658. {T216 *n=((T216*)new(216));
  659. rT216make(n,(T0 *)C,a1);
  660. R=(T0 *)n;}}
  661. /*FI*/return R;
  662. }
  663. int rT245use_current(T245 *C){
  664. int R=0;
  665. /*IF*/if (((int)(C)->_run_args)) {
  666. R=rT170use_current((T170*)(C)->_run_args);
  667. }
  668. /*FI*/R=(R)||(XrT68use_current((C)->_writable));
  669. return R;
  670. }
  671. void rT245compile_to_c(T245 *C){
  672. int _id=0;
  673. T0 * _t=NULL;
  674. rT40rs_push_position((T40*)oRBC27cpp,'5',(C)->_start_position);
  675. _t=XrT58run_type(XrT68result_type((C)->_writable));
  676. _id=XrT58id(_t);
  677. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1316);
  678. rT40put_integer((T40*)oRBC27cpp,_id);
  679. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1317);
  680. rT40put_new_id((T40*)oRBC27cpp,_id);
  681. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1318);
  682. rT40expanded_attributes((T40*)oRBC27cpp,(T0 *)ms1319,NULL,_t);
  683. rT40push_new((T40*)oRBC27cpp,(C)->_run_feature,(C)->_run_args);
  684. XrT261mapping_c((C)->_run_feature);
  685. rT40pop((T40*)oRBC27cpp);
  686. XrT68compile_to_c((C)->_writable);
  687. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1320);
  688. rT245call_invariant(C,_t);
  689. rT40rs_pop_position((T40*)oRBC27cpp);
  690. }
  691. void rT245copy(T245 *C,T0 * a1){
  692. /*IF*//*AF*//*AE*/
  693. memcpy(C,a1,s[C->id]);
  694. /*FI*/}
  695. void rT245call_invariant(T245 *C,T0 * a1){
  696. /*IF*/if (rT40call_invariant_start((T40*)oRBC27cpp,a1)) {
  697. XrT58mapping_cast(a1);
  698. XrT68compile_to_c((C)->_writable);
  699. rT40call_invariant_end((T40*)oRBC27cpp);
  700. rT40put_character((T40*)oRBC27cpp,'\73');
  701. }
  702. /*FI*/}
  703. int rT245arg_count(T245 *C){
  704. int R=0;
  705. /*IF*/if (((int)(C)->_call)) {
  706. R=XrT177arg_count((C)->_call);
  707. }
  708. /*FI*/return R;
  709. }
  710. int rT245is_pre_computable(T245 *C){
  711. int R=0;
  712. T0* _rfctn=NULL;
  713. T0 * _rfct=NULL;
  714. int _i=0;
  715. /*IF*/if (XrT68is_result((C)->_writable)) {
  716. /*IF*/if (!((C)->_run_args)) {
  717. R=1;
  718. }
  719. else {
  720. R=1;
  721. _i=rT170count((T170*)(C)->_run_args);
  722. while (!((!(R))||((_i)==(0)))) {
  723. R=XrT68is_pre_computable(rT170expression((T170*)(C)->_run_args,_i));
  724. _i=(_i)-(1);
  725. }
  726. }
  727. /*FI*//*IF*/if (R) {
  728. /*IF*/if (XrT261is_pre_computable((C)->_run_feature)) {
  729. R=1;
  730. }
  731.  else if (rT7is_equal(ms1595,XrT67to_string(XrT261name((C)->_run_feature)))) {
  732. _rfct=XrT261current_type((C)->_run_feature);
  733. R=(XrT58is_array(_rfct))||(XrT58is_string(_rfct));
  734. /*IF*/if (!(R)) {
  735. _rfctn=XrT58run_time_mark(_rfct);
  736. R=(rT7has_prefix((T7*)_rfctn,(T0 *)ms1596))||(rT7has_prefix((T7*)_rfctn,(T0 *)ms1597));
  737. }
  738. /*FI*/}
  739. /*FI*/}
  740. /*FI*/}
  741. /*FI*/return R;
  742. }
  743. void rT245check_creation_clause(T245 *C,T0 * a1){
  744. T0 * _proc_name=NULL;
  745. _proc_name=XrT177procedure_name((C)->_call);
  746. /*IF*/if (!(XrT58has_creation(a1,_proc_name))) {
  747. /*UT*/(T45*)oRBC27eh;
  748. rT45add_position(XrT67start_position(_proc_name));
  749. /*UT*/(T45*)oRBC27eh;
  750. rT45append(XrT67to_string(_proc_name));
  751. /*UT*/(T45*)oRBC27eh;
  752. rT45append((T0 *)ms1254);
  753. /*UT*/(T45*)oRBC27eh;
  754. rT45add_type(a1,(T0 *)ms38);
  755. rT45print_as_error((T45*)oRBC27eh);
  756. }
  757. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  758. C->_run_feature=rT260get_feature((T260*)XrT58run_class(a1),_proc_name);
  759. /*IF*/if (!((C)->_run_feature)) {
  760. rT245error(XrT67start_position(_proc_name),(T0 *)ms1255);
  761. }
  762. else {
  763. XrT261add_clients((C)->_run_feature,rT140run_class((T140*)(C)->_run_compound));
  764. /*IF*/if (((int)XrT261result_type((C)->_run_feature))) {
  765. /*UT*/(T45*)oRBC27eh;
  766. rT45add_position(XrT261start_position((C)->_run_feature));
  767. rT245error(XrT67start_position(_proc_name),(T0 *)ms1256);
  768. }
  769. /*FI*/}
  770. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  771. /*IF*/if (((rT245arg_count(C))==(0))&&(((int)XrT261arguments((C)->_run_feature)))) {
  772. /*UT*/(T45*)oRBC27eh;
  773. rT45add_position(XrT261start_position((C)->_run_feature));
  774. rT245error((C)->_start_position,(T0 *)ms1257);
  775. }
  776. /*FI*/}
  777. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0))&&((rT245arg_count(C))>(0))) {
  778. C->_run_args=rT170to_runnable((T170*)XrT177arguments((C)->_call),rT245current_type(C));
  779. /*IF*/if (!((C)->_run_args)) {
  780. rT245error(rT170start_position((T170*)XrT177arguments((C)->_call)),(T0 *)ms1258);
  781. }
  782. else {
  783. rT170match_with((T170*)(C)->_run_args,(C)->_run_feature);
  784. }
  785. /*FI*/}
  786. /*FI*/}
  787. /*FI*/}
  788. void rT245check_created_type(T245 *C,T0 * a1){
  789. T0 * _rt=NULL;
  790. _rt=XrT58run_type(a1);
  791. /*IF*/if (((T50*)XrT58base_class(_rt))->_is_deferred) {
  792. /*UT*/(T45*)oRBC27eh;
  793. rT45add_type(_rt,(T0 *)ms1243);
  794. /*UT*/(T45*)oRBC27eh;
  795. rT45add_position((C)->_start_position);
  796. rT245fatal_error((T0 *)ms1244);
  797. }
  798. /*FI*//*IF*/if (XrT58is_expanded(_rt)) {
  799. /*UT*/(T45*)oRBC27eh;
  800. rT45add_position((C)->_start_position);
  801. /*UT*/(T45*)oRBC27eh;
  802. rT45append((T0 *)ms1245);
  803. /*UT*/(T45*)oRBC27eh;
  804. rT45add_type(a1,(T0 *)ms1246);
  805. rT45print_as_fatal_error((T45*)oRBC27eh);
  806. }
  807. /*FI*//*IF*/if (XrT58is_formal_generic(a1)) {
  808. /*UT*/(T45*)oRBC27eh;
  809. rT45add_position((C)->_start_position);
  810. /*UT*/(T45*)oRBC27eh;
  811. rT45append((T0 *)ms1247);
  812. /*UT*/(T45*)oRBC27eh;
  813. rT45add_type(a1,(T0 *)ms1248);
  814. rT45print_as_fatal_error((T45*)oRBC27eh);
  815. }
  816. /*FI*/rT260set_at_run_time((T260*)XrT58run_class(_rt));
  817. }
  818. void rT245check_writable(T245 *C,T0 * a1){
  819. T0 * _w=NULL;
  820. C->_run_compound=a1;
  821. _w=XrT68to_runnable((C)->_writable,rT245current_type(C));
  822. /*IF*/if (!(_w)) {
  823. /*UT*/(T45*)oRBC27eh;
  824. rT45add_position(XrT68start_position((C)->_writable));
  825. rT245fatal_error((T0 *)ms1242);
  826. }
  827. else {
  828. C->_writable=_w;
  829. }
  830. /*FI*/}
  831. void rT245make(T245 *C,T0 * a1,T0 * a2,T0 * a3){
  832. C->_start_position=a1;
  833. C->_writable=a2;
  834. C->_call=a3;
  835. }
  836. T0 * rT243current_type(T243 *C){
  837. T0 * R=NULL;
  838. /*IF*/if (((int)(C)->_run_compound)) {
  839. R=((T140*)(C)->_run_compound)->_current_type;
  840. }
  841. /*FI*/return R;
  842. }
  843. void rT243fatal_error(/*C*/T0* a1){
  844. rT45fatal_error((T45*)oRBC27eh,a1);
  845. }
  846. T0 * rT243to_runnable(T243 *C,T0 * a1){
  847. T0 * R=NULL;
  848. /*IF*/if (!((C)->_run_compound)) {
  849. rT243check_writable(C,a1);
  850. rT243check_explicit_type(C);
  851. rT243check_created_type(C,(C)->_type);
  852. rT243check_creation_clause(C,(C)->_type);
  853. R=(T0 *)C;
  854. }
  855. else {
  856. {T243 *n=((T243*)new(243));
  857. rT243make(n,(C)->_start_position,(C)->_type,(C)->_writable);
  858. R=(T0 *)n;}
  859. R=rT243to_runnable((T243*)R,a1);
  860. }
  861. /*FI*/return R;
  862. }
  863. void rT243error(/*C*/T0 * a1,T0* a2){
  864. /*UT*/(T45*)oRBC27eh;
  865. rT45add_position(a1);
  866. rT45error((T45*)oRBC27eh,a2);
  867. }
  868. T0 * rT243add_comment(T243 *C,T0 * a1){
  869. T0 * R=NULL;
  870. /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
  871. R=(T0 *)C;
  872. }
  873. /*AF*/else {
  874. {T216 *n=((T216*)new(216));
  875. rT216make(n,(T0 *)C,a1);
  876. R=(T0 *)n;}}
  877. /*FI*/return R;
  878. }
  879. int rT243use_current(T243 *C){
  880. int R=0;
  881. R=XrT68use_current((C)->_writable);
  882. return R;
  883. }
  884. void rT243compile_to_c(T243 *C){
  885. rT40rs_push_position((T40*)oRBC27cpp,'5',(C)->_start_position);
  886. XrT68compile_to_c((C)->_writable);
  887. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1314);
  888. rT40put_new((T40*)oRBC27cpp,(C)->_type);
  889. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1315);
  890. rT40expanded_attributes((T40*)oRBC27cpp,NULL,(C)->_writable,(C)->_type);
  891. rT243call_invariant(C,(C)->_type);
  892. rT40rs_pop_position((T40*)oRBC27cpp);
  893. }
  894. void rT243copy(T243 *C,T0 * a1){
  895. /*IF*//*AF*//*AE*/
  896. memcpy(C,a1,s[C->id]);
  897. /*FI*/}
  898. void rT243call_invariant(T243 *C,T0 * a1){
  899. /*IF*/if (rT40call_invariant_start((T40*)oRBC27cpp,a1)) {
  900. XrT58mapping_cast(a1);
  901. XrT68compile_to_c((C)->_writable);
  902. rT40call_invariant_end((T40*)oRBC27cpp);
  903. rT40put_character((T40*)oRBC27cpp,'\73');
  904. }
  905. /*FI*/}
  906. int rT243is_pre_computable(T243 *C){
  907. int R=0;
  908. T0 * _args=NULL;
  909. int _i=0;
  910. R=XrT68is_result((C)->_writable);
  911. return R;
  912. }
  913. void rT243check_creation_clause(T243 *C,T0 * a1){
  914. /*IF*/if (rT50has_creation_clause((T50*)XrT58base_class(a1))) {
  915. /*UT*/(T45*)oRBC27eh;
  916. rT45append((T0 *)ms1249);
  917. /*UT*/(T45*)oRBC27eh;
  918. rT45add_type(a1,(T0 *)ms1250);
  919. rT243error((C)->_start_position,(T0 *)ms1251);
  920. }
  921. /*FI*/}
  922. void rT243check_created_type(T243 *C,T0 * a1){
  923. T0 * _rt=NULL;
  924. _rt=XrT58run_type(a1);
  925. /*IF*/if (((T50*)XrT58base_class(_rt))->_is_deferred) {
  926. /*UT*/(T45*)oRBC27eh;
  927. rT45add_type(_rt,(T0 *)ms1243);
  928. /*UT*/(T45*)oRBC27eh;
  929. rT45add_position((C)->_start_position);
  930. rT243fatal_error((T0 *)ms1244);
  931. }
  932. /*FI*//*IF*/if (XrT58is_expanded(_rt)) {
  933. /*UT*/(T45*)oRBC27eh;
  934. rT45add_position((C)->_start_position);
  935. /*UT*/(T45*)oRBC27eh;
  936. rT45append((T0 *)ms1245);
  937. /*UT*/(T45*)oRBC27eh;
  938. rT45add_type(a1,(T0 *)ms1246);
  939. rT45print_as_fatal_error((T45*)oRBC27eh);
  940. }
  941. /*FI*//*IF*/if (XrT58is_formal_generic(a1)) {
  942. /*UT*/(T45*)oRBC27eh;
  943. rT45add_position((C)->_start_position);
  944. /*UT*/(T45*)oRBC27eh;
  945. rT45append((T0 *)ms1247);
  946. /*UT*/(T45*)oRBC27eh;
  947. rT45add_type(a1,(T0 *)ms1248);
  948. rT45print_as_fatal_error((T45*)oRBC27eh);
  949. }
  950. /*FI*/rT260set_at_run_time((T260*)XrT58run_class(_rt));
  951. }
  952. void rT243check_explicit_type(T243 *C){
  953. T0 * _t=NULL;
  954. _t=XrT58to_runnable((C)->_type,rT243current_type(C));
  955. /*IF*/if ((!(_t))||(!(XrT58is_run_type(_t)))) {
  956. /*UT*/(T45*)oRBC27eh;
  957. rT45add_position(XrT58start_position((C)->_type));
  958. rT243fatal_error((T0 *)ms1252);
  959. }
  960. /*FI*//*IF*/if (!(XrT58is_a((C)->_type,XrT68result_type((C)->_writable)))) {
  961. rT243fatal_error((T0 *)ms1253);
  962. }
  963. /*FI*/}
  964. void rT243check_writable(T243 *C,T0 * a1){
  965. T0 * _w=NULL;
  966. C->_run_compound=a1;
  967. _w=XrT68to_runnable((C)->_writable,rT243current_type(C));
  968. /*IF*/if (!(_w)) {
  969. /*UT*/(T45*)oRBC27eh;
  970. rT45add_position(XrT68start_position((C)->_writable));
  971. rT243fatal_error((T0 *)ms1242);
  972. }
  973. else {
  974. C->_writable=_w;
  975. }
  976. /*FI*/}
  977. void rT243make(T243 *C,T0 * a1,T0 * a2,T0 * a3){
  978. C->_start_position=a1;
  979. C->_type=a2;
  980. C->_writable=a3;
  981. }
  982. T0 * rT240current_type(T240 *C){
  983. T0 * R=NULL;
  984. /*IF*/if (((int)(C)->_run_compound)) {
  985. R=((T140*)(C)->_run_compound)->_current_type;
  986. }
  987. /*FI*/return R;
  988. }
  989. void rT240fatal_error(/*C*/T0* a1){
  990. rT45fatal_error((T45*)oRBC27eh,a1);
  991. }
  992. T0 * rT240to_runnable(T240 *C,T0 * a1){
  993. T0 * R=NULL;
  994. T0 * _t=NULL;
  995. /*IF*/if (!((C)->_run_compound)) {
  996. rT240check_writable(C,a1);
  997. _t=XrT68result_type((C)->_writable);
  998. rT240check_created_type(C,_t);
  999. rT240check_creation_clause(C,_t);
  1000. R=(T0 *)C;
  1001. }
  1002. else {
  1003. {T240 *n=((T240*)new(240));
  1004. rT240make(n,(C)->_start_position,(C)->_writable);
  1005. R=(T0 *)n;}
  1006. R=rT240to_runnable((T240*)R,a1);
  1007. }
  1008. /*FI*/return R;
  1009. }
  1010. void rT240error(/*C*/T0 * a1,T0* a2){
  1011. /*UT*/(T45*)oRBC27eh;
  1012. rT45add_position(a1);
  1013. rT45error((T45*)oRBC27eh,a2);
  1014. }
  1015. T0 * rT240add_comment(T240 *C,T0 * a1){
  1016. T0 * R=NULL;
  1017. /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
  1018. R=(T0 *)C;
  1019. }
  1020. /*AF*/else {
  1021. {T216 *n=((T216*)new(216));
  1022. rT216make(n,(T0 *)C,a1);
  1023. R=(T0 *)n;}}
  1024. /*FI*/return R;
  1025. }
  1026. int rT240use_current(T240 *C){
  1027. int R=0;
  1028. R=XrT68use_current((C)->_writable);
  1029. return R;
  1030. }
  1031. void rT240compile_to_c(T240 *C){
  1032. T0 * _t=NULL;
  1033. rT40rs_push_position((T40*)oRBC27cpp,'5',(C)->_start_position);
  1034. _t=XrT58run_type(XrT68result_type((C)->_writable));
  1035. XrT68compile_to_c((C)->_writable);
  1036. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1312);
  1037. rT40put_new((T40*)oRBC27cpp,_t);
  1038. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1313);
  1039. rT40expanded_attributes((T40*)oRBC27cpp,NULL,(C)->_writable,_t);
  1040. rT240call_invariant(C,_t);
  1041. rT40rs_pop_position((T40*)oRBC27cpp);
  1042. }
  1043. void rT240copy(T240 *C,T0 * a1){
  1044. /*IF*//*AF*//*AE*/
  1045. memcpy(C,a1,s[C->id]);
  1046. /*FI*/}
  1047. void rT240call_invariant(T240 *C,T0 * a1){
  1048. /*IF*/if (rT40call_invariant_start((T40*)oRBC27cpp,a1)) {
  1049. XrT58mapping_cast(a1);
  1050. XrT68compile_to_c((C)->_writable);
  1051. rT40call_invariant_end((T40*)oRBC27cpp);
  1052. rT40put_character((T40*)oRBC27cpp,'\73');
  1053. }
  1054. /*FI*/}
  1055. int rT240is_pre_computable(T240 *C){
  1056. int R=0;
  1057. T0 * _args=NULL;
  1058. int _i=0;
  1059. R=XrT68is_result((C)->_writable);
  1060. return R;
  1061. }
  1062. void rT240check_creation_clause(T240 *C,T0 * a1){
  1063. /*IF*/if (rT50has_creation_clause((T50*)XrT58base_class(a1))) {
  1064. /*UT*/(T45*)oRBC27eh;
  1065. rT45append((T0 *)ms1249);
  1066. /*UT*/(T45*)oRBC27eh;
  1067. rT45add_type(a1,(T0 *)ms1250);
  1068. rT240error((C)->_start_position,(T0 *)ms1251);
  1069. }
  1070. /*FI*/}
  1071. void rT240check_created_type(T240 *C,T0 * a1){
  1072. T0 * _rt=NULL;
  1073. _rt=XrT58run_type(a1);
  1074. /*IF*/if (((T50*)XrT58base_class(_rt))->_is_deferred) {
  1075. /*UT*/(T45*)oRBC27eh;
  1076. rT45add_type(_rt,(T0 *)ms1243);
  1077. /*UT*/(T45*)oRBC27eh;
  1078. rT45add_position((C)->_start_position);
  1079. rT240fatal_error((T0 *)ms1244);
  1080. }
  1081. /*FI*//*IF*/if (XrT58is_expanded(_rt)) {
  1082. /*UT*/(T45*)oRBC27eh;
  1083. rT45add_position((C)->_start_position);
  1084. /*UT*/(T45*)oRBC27eh;
  1085. rT45append((T0 *)ms1245);
  1086. /*UT*/(T45*)oRBC27eh;
  1087. rT45add_type(a1,(T0 *)ms1246);
  1088. rT45print_as_fatal_error((T45*)oRBC27eh);
  1089. }
  1090. /*FI*//*IF*/if (XrT58is_formal_generic(a1)) {
  1091. /*UT*/(T45*)oRBC27eh;
  1092. rT45add_position((C)->_start_position);
  1093. /*UT*/(T45*)oRBC27eh;
  1094. rT45append((T0 *)ms1247);
  1095. /*UT*/(T45*)oRBC27eh;
  1096. rT45add_type(a1,(T0 *)ms1248);
  1097. rT45print_as_fatal_error((T45*)oRBC27eh);
  1098. }
  1099. /*FI*/rT260set_at_run_time((T260*)XrT58run_class(_rt));
  1100. }
  1101. void rT240check_writable(T240 *C,T0 * a1){
  1102. T0 * _w=NULL;
  1103. C->_run_compound=a1;
  1104. _w=XrT68to_runnable((C)->_writable,rT240current_type(C));
  1105. /*IF*/if (!(_w)) {
  1106. /*UT*/(T45*)oRBC27eh;
  1107. rT45add_position(XrT68start_position((C)->_writable));
  1108. rT240fatal_error((T0 *)ms1242);
  1109. }
  1110. else {
  1111. C->_writable=_w;
  1112. }
  1113. /*FI*/}
  1114. void rT240make(T240 *C,T0 * a1,T0 * a2){
  1115. C->_start_position=a1;
  1116. C->_writable=a2;
  1117. }
  1118. T0 * rT215current_type(T215 *C){
  1119. T0 * R=NULL;
  1120. /*IF*/if (((int)(C)->_run_compound)) {
  1121. R=((T140*)(C)->_run_compound)->_current_type;
  1122. }
  1123. /*FI*/return R;
  1124. }
  1125. T0 * rT215to_runnable(T215 *C,T0 * a1){
  1126. T0 * R=NULL;
  1127. /*IF*/if (rT44boost((T44*)oRBC27eiffel_run_control)) {
  1128. C->_run_compound=a1;
  1129. R=(T0 *)C;
  1130. }
  1131.  else if (!((C)->_run_compound)) {
  1132. C->_run_compound=a1;
  1133. /*IF*/if (((int)(C)->_compound)) {
  1134. C->_compound=rT140to_runnable((T140*)(C)->_compound,rT215current_type(C));
  1135. }
  1136. /*FI*/R=(T0 *)C;
  1137. }
  1138.  else if (((T0 *)(C)->_run_compound)==((T0 *)a1)) {
  1139. R=(T0 *)C;
  1140. }
  1141. else {
  1142. {T215 *n=((T215*)new(215));
  1143. rT215make(n,(C)->_start_position,(C)->_list,(C)->_compound);
  1144. R=(T0 *)n;}
  1145. R=rT215to_runnable((T215*)R,a1);
  1146. }
  1147. /*FI*/return R;
  1148. }
  1149. T0 * rT215add_comment(T215 *C,T0 * a1){
  1150. T0 * R=NULL;
  1151. /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
  1152. R=(T0 *)C;
  1153. }
  1154.  else {/*AT*//*IF*/if ((rT59count((T59*)a1))==(1)) {
  1155. R=(T0 *)C;
  1156. }
  1157. else {
  1158. {T216 *n=((T216*)new(216));
  1159. rT216make(n,(T0 *)C,a1);
  1160. R=(T0 *)n;}}
  1161. /*FI*/}
  1162. /*FI*/return R;
  1163. }
  1164. int rT215use_current(T215 *C){
  1165. int R=0;
  1166. /*IF*/if (rT44all_check((T44*)oRBC27eiffel_run_control)) {
  1167. /*IF*/if (((int)(C)->_compound)) {
  1168. R=rT140use_current((T140*)(C)->_compound);
  1169. }
  1170. /*FI*/}
  1171. /*FI*/return R;
  1172. }
  1173. void rT215compile_to_c(T215 *C){
  1174. /*IF*/if (rT44all_check((T44*)oRBC27eiffel_run_control)) {
  1175. /*IF*/if (((int)(C)->_compound)) {
  1176. rT140compile_to_c((T140*)(C)->_compound);
  1177. }
  1178. /*FI*/}
  1179. /*FI*/}
  1180. void rT215copy(T215 *C,T0 * a1){
  1181. /*IF*//*AF*//*AE*/
  1182. memcpy(C,a1,s[C->id]);
  1183. /*FI*/}
  1184. void rT215make(T215 *C,T0 * a1,T0* a2,T0 * a3){
  1185. C->_start_position=a1;
  1186. C->_list=a2;
  1187. C->_compound=a3;
  1188. }
  1189. void rT132fatal_error(/*C*/T0* a1){
  1190. rT45fatal_error((T45*)oRBC27eh,a1);
  1191. }
  1192. T0 * rT132start_position(T132 *C){
  1193. T0 * R=NULL;
  1194. R=XrT67start_position(rT128item((T128*)(C)->_procedure_list,1));
  1195. return R;
  1196. }
  1197. void rT132copy(T132 *C,T0 * a1){
  1198. /*IF*//*AF*//*AE*/
  1199. memcpy(C,a1,s[C->id]);
  1200. /*FI*/}
  1201. T0 * rT132expanded_initializer(T132 *C,T0 * a1){
  1202. T0 * R=NULL;
  1203. R=rT260get_feature((T260*)XrT58run_class(a1),rT128item((T128*)(C)->_procedure_list,1));
  1204. return R;
  1205. }
  1206. int rT132has(T132 *C,T0 * a1){
  1207. int R=0;
  1208. R=rT128has((T128*)(C)->_procedure_list,a1);
  1209. return R;
  1210. }
  1211. void rT132check_expanded_with(T132 *C,T0 * a1){
  1212. T0 * _rf3=NULL;
  1213. T0 * _rf=NULL;
  1214. /*IF*/if ((rT128count((T128*)(C)->_procedure_list))>(1)) {
  1215. /*UT*/(T45*)oRBC27eh;
  1216. rT45add_type(a1,(T0 *)ms1425);
  1217. /*UT*/(T45*)oRBC27eh;
  1218. rT45add_position(rT132start_position(C));
  1219. /*(IRF3*/rT132fatal_error((T0 *)ms1424);
  1220. /*)*/}
  1221. /*FI*/_rf=rT260get_feature((T260*)XrT58run_class(a1),rT128item((T128*)(C)->_procedure_list,1));
  1222. /*IF*/if (!(_rf)) {
  1223. /*UT*/(T45*)oRBC27eh;
  1224. rT45add_position(rT132start_position(C));
  1225. /*UT*/(T45*)oRBC27eh;
  1226. rT45append((T0 *)ms1426);
  1227. /*UT*/(T45*)oRBC27eh;
  1228. rT45add_type(a1,(T0 *)ms1427);
  1229. rT45print_as_fatal_error((T45*)oRBC27eh);
  1230. }
  1231. /*FI*/_rf3=_rf;
  1232. if ((int)_rf3) switch (((T0 *)_rf3)->id) {
  1233. case 266: 
  1234. break;
  1235. default:
  1236. _rf3 = NULL;
  1237. };/*IF*/if (!(_rf3)) {
  1238. /*UT*/(T45*)oRBC27eh;
  1239. rT45add_position(rT132start_position(C));
  1240. /*UT*/(T45*)oRBC27eh;
  1241. rT45add_position(XrT261start_position(_rf));
  1242. rT132fatal_error((T0 *)ms1428);
  1243. }
  1244. /*FI*//*IF*/if ((rT266arg_count((T266*)_rf3))>(0)) {
  1245. /*UT*/(T45*)oRBC27eh;
  1246. rT45add_type(a1,(T0 *)ms1429);
  1247. /*UT*/(T45*)oRBC27eh;
  1248. rT45add_position(rT132start_position(C));
  1249. /*UT*/(T45*)oRBC27eh;
  1250. rT45add_position(rT266start_position((T266*)_rf3));
  1251. /*UT*/(T45*)oRBC27eh;
  1252. rT45append((T0 *)ms1430);
  1253. /*(IRF3*/rT132fatal_error((T0 *)ms1424);
  1254. /*)*/}
  1255. /*FI*/}
  1256. void rT132make(T132 *C,T0 * a1,T0 * a2,T0* a3){
  1257. C->_clients=a1;
  1258. C->_comment=a2;
  1259. {T128 *n=((T128*)new(128));
  1260. rT128make(n,a3);
  1261. C->_procedure_list=(T0 *)n;}
  1262. }
  1263. T0 * rT133get_clause(T133 *C,T0 * a1){
  1264. T0 * R=NULL;
  1265. int _i=0;
  1266. _i=1;
  1267. while (!(((_i)>(((T134*)(C)->_list)->_upper))||(rT132has((T132*)rT134item((T134*)(C)->_list,_i),a1)))) {
  1268. _i=(_i)+(1);
  1269. }
  1270. /*IF*/if ((_i)<=(((T134*)(C)->_list)->_upper)) {
  1271. R=rT134item((T134*)(C)->_list,_i);
  1272. }
  1273. /*FI*/return R;
  1274. }
  1275. void rT133fatal_error(/*C*/T0* a1){
  1276. rT45fatal_error((T45*)oRBC27eh,a1);
  1277. }
  1278. void rT133add_last(T133 *C,T0 * a1){
  1279. rT134add_last((T134*)(C)->_list,a1);
  1280. }
  1281. void rT133copy(T133 *C,T0 * a1){
  1282. /*IF*//*AF*//*AE*/
  1283. memcpy(C,a1,s[C->id]);
  1284. /*FI*/}
  1285. T0 * rT133expanded_initializer(T133 *C,T0 * a1){
  1286. T0 * R=NULL;
  1287. R=rT132expanded_initializer((T132*)rT134item((T134*)(C)->_list,1),a1);
  1288. return R;
  1289. }
  1290. void rT133check_expanded_with(T133 *C,T0 * a1){
  1291. /*IF*/if ((((T134*)(C)->_list)->_upper)>(1)) {
  1292. /*UT*/(T45*)oRBC27eh;
  1293. rT45add_type(a1,(T0 *)ms1423);
  1294. /*UT*/(T45*)oRBC27eh;
  1295. rT45add_position(rT132start_position((T132*)rT134item((T134*)(C)->_list,1)));
  1296. /*UT*/(T45*)oRBC27eh;
  1297. rT45add_position(rT132start_position((T132*)rT134item((T134*)(C)->_list,2)));
  1298. /*(IRF3*/rT133fatal_error((T0 *)ms1424);
  1299. /*)*/}
  1300. /*FI*/rT132check_expanded_with((T132*)rT134item((T134*)(C)->_list,1),a1);
  1301. }
  1302. T0 * rT222to_runnable(T222 *C,T0 * a1){
  1303. T0 * R=NULL;
  1304. int _i=0;
  1305. int _ne=0;
  1306. /*IF*/if (((int)(C)->_run_compound)) {
  1307. {T222 *n=((T222*)new(222));
  1308. /*(IRF3*/((n)->_list)=(rT222clone(C,(C)->_list));
  1309. /*)*/R=(T0 *)n;}
  1310. R=rT222to_runnable((T222*)R,a1);
  1311. }
  1312. else {
  1313. C->_run_compound=a1;
  1314. _ne=/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/;
  1315. _i=1;
  1316. while (!(((_i)>(((T223*)(C)->_list)->_upper))||(((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))>(0)))) {
  1317. rT223put((T223*)(C)->_list,rT221to_runnable((T221*)rT223item((T223*)(C)->_list,_i),a1),_i);
  1318. _i=(_i)+(1);
  1319. }
  1320. R=(T0 *)C;
  1321. }
  1322. /*FI*/return R;
  1323. }
  1324. int rT222use_current(T222 *C){
  1325. int R=0;
  1326. int _i=0;
  1327. _i=1;
  1328. while (!(((_i)>(((T223*)(C)->_list)->_upper))||(R))) {
  1329. R=rT221use_current((T221*)rT223item((T223*)(C)->_list,_i));
  1330. _i=(_i)+(1);
  1331. }
  1332. return R;
  1333. }
  1334. T0* rT222clone(T222 *C,T0* a1){
  1335. T0* R=NULL;
  1336. /*IF*/if (((int)a1)) {
  1337. R=(T0 *)new(a1->id);
  1338. AF_1
  1339. XrT28copy(R,a1);
  1340. AF_0
  1341. }
  1342. /*FI*/return R;
  1343. }
  1344. void rT222add_last(T222 *C,T0 * a1){
  1345. rT223add_last((T223*)(C)->_list,a1);
  1346. }
  1347. int rT222compile_to_c(T222 *C){
  1348. int R=0;
  1349. int _i=0;
  1350. int _previous=0;
  1351. int _state=0;
  1352. _i=1;
  1353. while (!((_state)==(2))) {
  1354. {int iv1=_state;
  1355. if (0 == iv1) goto l471;
  1356. goto l472;
  1357.  l471: ;
  1358. /*IF*/if ((_i)>(((T223*)(C)->_list)->_upper)) {
  1359. _state=2;
  1360. R=_previous;
  1361. }
  1362. else {
  1363. _previous=rT221compile_to_c((T221*)rT223item((T223*)(C)->_list,_i),0);
  1364. {int iv2=_previous;
  1365. if (1012 == iv2) goto l474;
  1366. goto l475;
  1367.  l474: ;
  1368. _state=1;
  1369. goto l473;
  1370.  l475: ;
  1371. if (1011 == iv2) goto l476;
  1372. goto l477;
  1373.  l476: ;
  1374. goto l473;
  1375.  l477: ;
  1376. if (1010 == iv2) goto l478;
  1377. goto l479;
  1378.  l478: ;
  1379. R=1010;
  1380. _state=2;
  1381. goto l473;
  1382.  l479: ;
  1383.  l473: ;
  1384. }
  1385. }
  1386. /*FI*/goto l470;
  1387.  l472: ;
  1388. /*IF*/if ((_i)>(((T223*)(C)->_list)->_upper)) {
  1389. _state=2;
  1390. {int iv2=_previous;
  1391. if (1010 == iv2) goto l481;
  1392. goto l482;
  1393.  l481: ;
  1394. R=1010;
  1395. goto l480;
  1396.  l482: ;
  1397. R=1012;
  1398.  l480: ;
  1399. }
  1400. }
  1401. else {
  1402. _previous=rT221compile_to_c((T221*)rT223item((T223*)(C)->_list,_i),1);
  1403. {int iv2=_previous;
  1404. if (1012 == iv2) goto l484;
  1405. goto l485;
  1406.  l484: ;
  1407. goto l483;
  1408.  l485: ;
  1409. if (1011 == iv2) goto l486;
  1410. goto l487;
  1411.  l486: ;
  1412. goto l483;
  1413.  l487: ;
  1414. if (1010 == iv2) goto l488;
  1415. goto l489;
  1416.  l488: ;
  1417. _state=2;
  1418. R=1010;
  1419. goto l483;
  1420.  l489: ;
  1421.  l483: ;
  1422. }
  1423. }
  1424. /*FI*/ l470: ;
  1425. }
  1426. _i=(_i)+(1);
  1427. }
  1428. return R;
  1429. }
  1430. void rT222copy(T222 *C,T0 * a1){
  1431. /*IF*//*AF*//*AE*/
  1432. memcpy(C,a1,s[C->id]);
  1433. /*FI*/}
  1434. T0 * rT221current_type(T221 *C){
  1435. T0 * R=NULL;
  1436. R=((T140*)(C)->_run_compound)->_current_type;
  1437. return R;
  1438. }
  1439. T0 * rT221to_runnable(T221 *C,T0 * a1){
  1440. T0 * R=NULL;
  1441. T0 * _t=NULL;
  1442. T0 * _tc=NULL;
  1443. T0 * _e=NULL;
  1444. /*IF*/if (!((C)->_run_compound)) {
  1445. C->_run_compound=a1;
  1446. _e=XrT68to_runnable((C)->_expression,rT221current_type(C));
  1447. /*IF*/if (!(_e)) {
  1448. rT221error(XrT68start_position((C)->_expression),(T0 *)ms1228);
  1449. }
  1450. else {
  1451. C->_expression=_e;
  1452. _t=XrT68result_type((C)->_expression);
  1453. /*IF*/if (!(XrT58is_boolean(_t))) {
  1454. /*UT*/(T45*)oRBC27eh;
  1455. rT45append((T0 *)ms1229);
  1456. /*UT*/(T45*)oRBC27eh;
  1457. rT45add_type(XrT68result_type((C)->_expression),(T0 *)ms479);
  1458. /*UT*/(T45*)oRBC27eh;
  1459. rT45add_position(XrT68start_position((C)->_expression));
  1460. rT45print_as_error((T45*)oRBC27eh);
  1461. }
  1462. /*FI*/}
  1463. /*FI*//*IF*/if (((int)(C)->_then_compound)) {
  1464. _tc=rT140to_runnable((T140*)(C)->_then_compound,rT221current_type(C));
  1465. /*IF*/if (((int)_tc)) {
  1466. C->_then_compound=_tc;
  1467. }
  1468. /*FI*/}
  1469. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  1470. R=(T0 *)C;
  1471. }
  1472. /*FI*/}
  1473. else {
  1474. {T221 *n=((T221*)new(221));
  1475. rT221make(n,(C)->_expression,(C)->_then_compound);
  1476. R=(T0 *)n;}
  1477. R=rT221to_runnable((T221*)R,a1);
  1478. }
  1479. /*FI*/return R;
  1480. }
  1481. void rT221error(/*C*/T0 * a1,T0* a2){
  1482. /*UT*/(T45*)oRBC27eh;
  1483. rT45add_position(a1);
  1484. rT45error((T45*)oRBC27eh,a2);
  1485. }
  1486. void rT221print_else(/*C*/int a1){
  1487. /*IF*/if (a1) {
  1488. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1272);
  1489. }
  1490. /*FI*/}
  1491. int rT221use_current(T221 *C){
  1492. int R=0;
  1493. R=XrT68use_current((C)->_expression);
  1494. /*IF*/if ((!(R))&&(((int)(C)->_then_compound))) {
  1495. R=rT140use_current((T140*)(C)->_then_compound);
  1496. }
  1497. /*FI*/return R;
  1498. }
  1499. int rT221compile_to_c(T221 *C,int a1){
  1500. int R=0;
  1501. int _trace=0;
  1502. /*IF*/if (XrT68is_static((C)->_expression)) {
  1503. R=XrT68static_value((C)->_expression);
  1504. rT40incr_static_expression_count((T40*)oRBC27cpp);
  1505. /*IF*/if ((R)==(1)) {
  1506. rT221print_else(a1);
  1507. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1273);
  1508. /*IF*/if (((int)(C)->_then_compound)) {
  1509. rT140compile_to_c((T140*)(C)->_then_compound);
  1510. }
  1511. /*FI*/rT40put_string((T40*)oRBC27cpp,(T0 *)ms1274);
  1512. R=1010;
  1513. }
  1514. else {
  1515. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1275);
  1516. R=1011;
  1517. }
  1518. /*FI*/}
  1519. else {
  1520. R=1012;
  1521. _trace=(!(XrT68c_simple((C)->_expression)))&&(rT44no_check((T44*)oRBC27eiffel_run_control));
  1522. rT221print_else(a1);
  1523. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1276);
  1524. /*IF*/if (_trace) {
  1525. rT40trace_boolean_expression((T40*)oRBC27cpp,(C)->_expression);
  1526. }
  1527. else {
  1528. XrT68compile_to_c((C)->_expression);
  1529. }
  1530. /*FI*/rT40put_string((T40*)oRBC27cpp,(T0 *)ms1278);
  1531. /*IF*/if (((int)(C)->_then_compound)) {
  1532. rT140compile_to_c((T140*)(C)->_then_compound);
  1533. }
  1534. /*FI*/rT40put_string((T40*)oRBC27cpp,(T0 *)ms1279);
  1535. }
  1536. /*FI*/return R;
  1537. }
  1538. void rT221copy(T221 *C,T0 * a1){
  1539. /*IF*//*AF*//*AE*/
  1540. memcpy(C,a1,s[C->id]);
  1541. /*FI*/}
  1542. void rT221make(T221 *C,T0 * a1,T0 * a2){
  1543. C->_expression=a1;
  1544. C->_then_compound=a2;
  1545. }
  1546. T0 * rT218current_type(T218 *C){
  1547. T0 * R=NULL;
  1548. /*IF*/if (((int)(C)->_run_compound)) {
  1549. R=((T140*)(C)->_run_compound)->_current_type;
  1550. }
  1551. /*FI*/return R;
  1552. }
  1553. T0 * rT218to_runnable(T218 *C,T0 * a1){
  1554. T0 * R=NULL;
  1555. T0 * _ec=NULL;
  1556. T0 * _itl=NULL;
  1557. int _ne=0;
  1558. _ne=/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/;
  1559. /*IF*/if (!((C)->_run_compound)) {
  1560. C->_run_compound=a1;
  1561. _itl=rT222to_runnable((T222*)(C)->_ifthenlist,a1);
  1562. /*IF*/if (!(_itl)) {
  1563. }
  1564. else {
  1565. C->_ifthenlist=_itl;
  1566. }
  1567. /*FI*//*IF*/if ((((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0))&&(((int)(C)->_else_compound))) {
  1568. _ec=rT140to_runnable((T140*)(C)->_else_compound,rT218current_type(C));
  1569. /*IF*/if (!(_ec)) {
  1570. }
  1571. else {
  1572. C->_else_compound=_ec;
  1573. }
  1574. /*FI*/}
  1575. /*FI*//*IF*/if (((int)_itl)) {
  1576. R=(T0 *)C;
  1577. }
  1578. /*FI*/}
  1579. else {
  1580. R=rT218to_runnable((T218*)rT218clone(C,(T0 *)C),a1);
  1581. }
  1582. /*FI*/return R;
  1583. }
  1584. T0 * rT218add_comment(T218 *C,T0 * a1){
  1585. T0 * R=NULL;
  1586. /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
  1587. R=(T0 *)C;
  1588. }
  1589.  else {/*AT*//*IF*/if ((rT59count((T59*)a1))==(1)) {
  1590. R=(T0 *)C;
  1591. }
  1592. else {
  1593. {T216 *n=((T216*)new(216));
  1594. rT216make(n,(T0 *)C,a1);
  1595. R=(T0 *)n;}}
  1596. /*FI*/}
  1597. /*FI*/return R;
  1598. }
  1599. int rT218use_current(T218 *C){
  1600. int R=0;
  1601. /*IF*/if (rT222use_current((T222*)(C)->_ifthenlist)) {
  1602. R=1;
  1603. }
  1604.  else if (((int)(C)->_else_compound)) {
  1605. R=rT140use_current((T140*)(C)->_else_compound);
  1606. }
  1607. /*FI*/return R;
  1608. }
  1609. T0* rT218clone(T218 *C,T0* a1){
  1610. T0* R=NULL;
  1611. /*IF*/if (((int)a1)) {
  1612. R=(T0 *)new(a1->id);
  1613. AF_1
  1614. XrT28copy(R,a1);
  1615. AF_0
  1616. }
  1617. /*FI*/return R;
  1618. }
  1619. void rT218add_if_then(T218 *C,T0 * a1,T0 * a2){
  1620. T0 * _ifthen=NULL;
  1621. {T221 *n=((T221*)new(221));
  1622. rT221make(n,a1,a2);
  1623. _ifthen=(T0 *)n;}
  1624. /*IF*/if (!((C)->_ifthenlist)) {
  1625. {T222 *n=((T222*)new(222));
  1626. /*(IRF3*/((n)->_list)=(ma(223,0,1,_ifthen));
  1627. /*)*/C->_ifthenlist=(T0 *)n;}
  1628. }
  1629. else {
  1630. rT222add_last((T222*)(C)->_ifthenlist,_ifthen);
  1631. }
  1632. /*FI*/}
  1633. void rT218compile_to_c(T218 *C){
  1634. int _static_value=0;
  1635. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1271);
  1636. _static_value=rT222compile_to_c((T222*)(C)->_ifthenlist);
  1637. {int iv1=_static_value;
  1638. if (1011 == iv1) goto l491;
  1639. goto l492;
  1640.  l491: ;
  1641. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1280);
  1642. /*IF*/if (((int)(C)->_else_compound)) {
  1643. rT140compile_to_c((T140*)(C)->_else_compound);
  1644. }
  1645. /*FI*/goto l490;
  1646.  l492: ;
  1647. if (1010 == iv1) goto l493;
  1648. goto l494;
  1649.  l493: ;
  1650. goto l490;
  1651.  l494: ;
  1652. if (1012 == iv1) goto l495;
  1653. goto l496;
  1654.  l495: ;
  1655. /*IF*/if (((int)(C)->_else_compound)) {
  1656. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1281);
  1657. rT140compile_to_c((T140*)(C)->_else_compound);
  1658. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1282);
  1659. }
  1660. /*FI*/goto l490;
  1661.  l496: ;
  1662.  l490: ;
  1663. }
  1664. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1283);
  1665. }
  1666. void rT218copy(T218 *C,T0 * a1){
  1667. C->_start_position=((T218*)a1)->_start_position;
  1668. C->_ifthenlist=((T218*)a1)->_ifthenlist;
  1669. C->_else_compound=((T218*)a1)->_else_compound;
  1670. }
  1671. int rT59count(T59 *C){
  1672. int R=0;
  1673. R=rT41count((T41*)(C)->_list);
  1674. return R;
  1675. }
  1676. void rT59add_last(T59 *C,T0* a1){
  1677. rT41add_last((T41*)(C)->_list,a1);
  1678. }
  1679. void rT59copy(T59 *C,T0 * a1){
  1680. /*IF*//*AF*//*AE*/
  1681. memcpy(C,a1,s[C->id]);
  1682. /*FI*/}
  1683. void rT59make(T59 *C,T0 * a1,T0* a2){
  1684. C->_start_position=a1;
  1685. C->_list=a2;
  1686. }
  1687. void rT119copy(T119 *C,T0 * a1){
  1688. /*IF*//*AF*//*AE*/
  1689. memcpy(C,a1,s[C->id]);
  1690. /*FI*/}
  1691. void rT119make(T119 *C,T0 * a1,T0 * a2){
  1692. C->_old_name=a1;
  1693. C->_new_name=a2;
  1694. }
  1695. void rT120fatal_error(/*C*/T0* a1){
  1696. rT45fatal_error((T45*)oRBC27eh,a1);
  1697. }
  1698. void rT120get_started(T120 *C,T0 * a1){
  1699. T0 * _rp=NULL;
  1700. int _i=0;
  1701. _i=((T121*)(C)->_list)->_upper;
  1702. while (!((_i)==(0))) {
  1703. _rp=rT121item((T121*)(C)->_list,_i);
  1704. /*IF*/if (!(rT50has((T50*)a1,((T119*)_rp)->_old_name))) {
  1705. /*UT*/(T45*)oRBC27eh;
  1706. rT45add_position(XrT67start_position(((T119*)_rp)->_old_name));
  1707. rT120fatal_error((T0 *)ms420);
  1708. }
  1709. /*FI*/_i=(_i)-(1);
  1710. }
  1711. }
  1712. void rT120add_last(T120 *C,T0 * a1){
  1713. rT121add_last((T121*)(C)->_list,a1);
  1714. }
  1715. int rT120affect(T120 *C,T0 * a1){
  1716. int R=0;
  1717. T0 * _rp=NULL;
  1718. int _i=0;
  1719. _i=((T121*)(C)->_list)->_upper;
  1720. while (!((R)||((_i)==(0)))) {
  1721. _rp=rT121item((T121*)(C)->_list,_i);
  1722. /*IF*/if ((XrT67same_as(((T119*)_rp)->_new_name,a1))||(XrT67same_as(((T119*)_rp)->_old_name,a1))) {
  1723. R=1;
  1724. }
  1725. else {
  1726. _i=(_i)-(1);
  1727. }
  1728. /*FI*/}
  1729. return R;
  1730. }
  1731. T0 * rT120to_new_name(T120 *C,T0 * a1){
  1732. T0 * R=NULL;
  1733. int _i=0;
  1734. _i=1;
  1735. while (!((((int)R))||((_i)>(((T121*)(C)->_list)->_upper)))) {
  1736. /*IF*/if (XrT67same_as(((T119*)rT121item((T121*)(C)->_list,_i))->_old_name,a1)) {
  1737. R=((T119*)rT121item((T121*)(C)->_list,_i))->_new_name;
  1738. }
  1739. /*FI*/_i=(_i)+(1);
  1740. }
  1741. /*IF*/if (!(R)) {
  1742. R=a1;
  1743. }
  1744. /*FI*/return R;
  1745. }
  1746. void rT120copy(T120 *C,T0 * a1){
  1747. /*IF*//*AF*//*AE*/
  1748. memcpy(C,a1,s[C->id]);
  1749. /*FI*/}
  1750. T0 * rT120to_old_name(T120 *C,T0 * a1){
  1751. T0 * R=NULL;
  1752. int _i=0;
  1753. _i=1;
  1754. while (!((((int)R))||((_i)>(((T121*)(C)->_list)->_upper)))) {
  1755. /*IF*/if (XrT67same_as(((T119*)rT121item((T121*)(C)->_list,_i))->_new_name,a1)) {
  1756. R=((T119*)rT121item((T121*)(C)->_list,_i))->_old_name;
  1757. }
  1758. /*FI*/_i=(_i)+(1);
  1759. }
  1760. /*IF*/if (!(R)) {
  1761. R=a1;
  1762. }
  1763. /*FI*/return R;
  1764. }
  1765. T0 * rT213to_runnable(T213 *C,T0 * a1){
  1766. T0 * R=NULL;
  1767. T0 * _al=NULL;
  1768. /*IF*/if (!((C)->_run_compound)) {
  1769. C->_run_compound=a1;
  1770. /*IF*/if (rT44all_check((T44*)oRBC27eiffel_run_control)) {
  1771. _al=rT214to_runnable((T214*)(C)->_check_invariant,((T140*)a1)->_current_type);
  1772. /*IF*/if (!(_al)) {
  1773. rT213error(rT213start_position(C),(T0 *)ms1226);
  1774. }
  1775. else {
  1776. C->_check_invariant=_al;
  1777. R=(T0 *)C;
  1778. }
  1779. /*FI*/}
  1780. else {
  1781. R=(T0 *)C;
  1782. }
  1783. /*FI*/}
  1784. else {
  1785. {T213 *n=((T213*)new(213));
  1786. rT213make(n,rT213start_position(C),NULL,((T214*)(C)->_check_invariant)->_list);
  1787. R=(T0 *)n;}
  1788. R=rT213to_runnable((T213*)R,a1);
  1789. }
  1790. /*FI*/return R;
  1791. }
  1792. void rT213error(/*C*/T0 * a1,T0* a2){
  1793. /*UT*/(T45*)oRBC27eh;
  1794. rT45add_position(a1);
  1795. rT45error((T45*)oRBC27eh,a2);
  1796. }
  1797. T0 * rT213add_comment(T213 *C,T0 * a1){
  1798. T0 * R=NULL;
  1799. /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
  1800. R=(T0 *)C;
  1801. }
  1802.  else {/*AT*//*IF*/if ((rT59count((T59*)a1))==(1)) {
  1803. R=(T0 *)C;
  1804. }
  1805. else {
  1806. {T216 *n=((T216*)new(216));
  1807. rT216make(n,(T0 *)C,a1);
  1808. R=(T0 *)n;}}
  1809. /*FI*/}
  1810. /*FI*/return R;
  1811. }
  1812. T0 * rT213start_position(T213 *C){
  1813. T0 * R=NULL;
  1814. R=((T214*)(C)->_check_invariant)->_start_position;
  1815. return R;
  1816. }
  1817. int rT213use_current(T213 *C){
  1818. int R=0;
  1819. /*IF*/if (rT44all_check((T44*)oRBC27eiffel_run_control)) {
  1820. R=rT214use_current((T214*)(C)->_check_invariant);
  1821. }
  1822. /*FI*/return R;
  1823. }
  1824. void rT213compile_to_c(T213 *C){
  1825. /*IF*/if (rT44all_check((T44*)oRBC27eiffel_run_control)) {
  1826. rT214compile_to_c((T214*)(C)->_check_invariant);
  1827. }
  1828. /*FI*/}
  1829. void rT213copy(T213 *C,T0 * a1){
  1830. /*IF*//*AF*//*AE*/
  1831. memcpy(C,a1,s[C->id]);
  1832. /*FI*/}
  1833. void rT213make(T213 *C,T0 * a1,T0 * a2,T0* a3){
  1834. {T214 *n=((T214*)new(214));
  1835. rT214make(n,a1,a2,a3);
  1836. C->_check_invariant=(T0 *)n;}
  1837. }
  1838. void rT257get_started(T257 *C,T0 * a1){
  1839. int _i=0;
  1840. _i=1;
  1841. while (!((_i)>(((T258*)(C)->_list)->_upper))) {
  1842. rT135add_into((T135*)rT258item((T258*)(C)->_list,_i),a1);
  1843. _i=(_i)+(1);
  1844. }
  1845. }
  1846. void rT257add_last(T257 *C,T0 * a1){
  1847. rT258add_last((T258*)(C)->_list,a1);
  1848. }
  1849. void rT257copy(T257 *C,T0 * a1){
  1850. /*IF*//*AF*//*AE*/
  1851. memcpy(C,a1,s[C->id]);
  1852. /*FI*/}
  1853. void rT92cecil_in(T92 *C,T0* a1){
  1854. T0 * _t=NULL;
  1855. int _i=0;
  1856. _i=1;
  1857. while (!((_i)>(rT92count(C)))) {
  1858. _t=XrT58run_type(rT92type(C,_i));
  1859. /*IF*/if (XrT58is_expanded(_t)) {
  1860. XrT58mapping_c_in(_t,a1);
  1861. rT7extend((T7*)a1,'\40');
  1862. }
  1863. else {
  1864. rT7append((T7*)a1,(T0 *)ms791);
  1865. }
  1866. /*FI*/rT7extend((T7*)a1,'a');
  1867. rT2append_in(_i,a1);
  1868. _i=(_i)+(1);
  1869. /*IF*/if ((_i)<=(rT92count(C))) {
  1870. rT7extend((T7*)a1,'\54');
  1871. }
  1872. /*FI*/}
  1873. }
  1874.