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_c2.c < prev    next >
Encoding:
C/C++ Source or Header  |  1996-05-02  |  64.3 KB  |  2,277 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. T0 * rT226to_runnable_integer(T226 *C,T0 * a1){
  11. T0 * R=NULL;
  12. T0 * _when_item=NULL;
  13. int _i=0;
  14. int _ne=0;
  15. /*IF*/if (!((C)->_when_list)) {
  16. _ne=/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/;
  17. C->_when_list=a1;
  18. /*IF*/if (!((C)->_list)) {
  19. /*UT*/(T45*)oRBC27eh;
  20. rT45add_position(((T225*)rT226e_inspect(C))->_start_position);
  21. rT226error((C)->_start_position,(T0 *)ms1234);
  22. }
  23. else {
  24. _i=XrT230lower((C)->_list);
  25. while (!(((_i)>(XrT230upper((C)->_list)))||(((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))>(0)))) {
  26. _when_item=XrT228to_runnable_integer(XrT230item((C)->_list,_i),(T0 *)C);
  27. /*IF*/if (!(_when_item)) {
  28. rT226error((C)->_start_position,(T0 *)ms1231);
  29. }
  30. else {
  31. XrT230put((C)->_list,_when_item,_i);
  32. }
  33. /*FI*/_i=(_i)+(1);
  34. }
  35. }
  36. /*FI*//*IF*/if (((int)(C)->_compound)) {
  37. C->_compound=rT140to_runnable((T140*)(C)->_compound,rT226current_type(C));
  38. /*IF*/if (!((C)->_compound)) {
  39. rT226error((C)->_start_position,(T0 *)ms1231);
  40. }
  41. /*FI*/}
  42. /*FI*/R=(T0 *)C;
  43. }
  44. else {
  45. {T226 *n=((T226*)new(226));
  46. rT226from_e_when(n,(T0 *)C);
  47. R=(T0 *)n;}
  48. R=rT226to_runnable_integer((T226*)R,a1);
  49. }
  50. /*FI*/return R;
  51. }
  52. T0 * rT226to_runnable_character(T226 *C,T0 * a1){
  53. T0 * R=NULL;
  54. T0 * _when_item=NULL;
  55. int _i=0;
  56. int _ne=0;
  57. /*IF*/if (!((C)->_when_list)) {
  58. _ne=/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/;
  59. C->_when_list=a1;
  60. /*IF*/if (!((C)->_list)) {
  61. /*UT*/(T45*)oRBC27eh;
  62. rT45add_position(((T225*)rT226e_inspect(C))->_start_position);
  63. rT226error((C)->_start_position,(T0 *)ms1230);
  64. }
  65. else {
  66. _i=XrT230lower((C)->_list);
  67. while (!(((_i)>(XrT230upper((C)->_list)))||(((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))>(0)))) {
  68. _when_item=XrT228to_runnable_character(XrT230item((C)->_list,_i),(T0 *)C);
  69. /*IF*/if (!(_when_item)) {
  70. rT226error((C)->_start_position,(T0 *)ms1231);
  71. }
  72. else {
  73. XrT230put((C)->_list,_when_item,_i);
  74. }
  75. /*FI*/_i=(_i)+(1);
  76. }
  77. }
  78. /*FI*//*IF*/if (((int)(C)->_compound)) {
  79. C->_compound=rT140to_runnable((T140*)(C)->_compound,rT226current_type(C));
  80. /*IF*/if (!((C)->_compound)) {
  81. rT226error((C)->_start_position,(T0 *)ms1231);
  82. }
  83. /*FI*/}
  84. /*FI*/R=(T0 *)C;
  85. }
  86. else {
  87. {T226 *n=((T226*)new(226));
  88. rT226from_e_when(n,(T0 *)C);
  89. R=(T0 *)n;}
  90. R=rT226to_runnable_character((T226*)R,a1);
  91. }
  92. /*FI*/return R;
  93. }
  94. void rT226error(/*C*/T0 * a1,T0* a2){
  95. /*UT*/(T45*)oRBC27eh;
  96. rT45add_position(a1);
  97. rT45error((T45*)oRBC27eh,a2);
  98. }
  99. T0 * rT226e_inspect(T226 *C){
  100. T0 * R=NULL;
  101. R=((T231*)(C)->_when_list)->_e_inspect;
  102. return R;
  103. }
  104. int rT226use_current(T226 *C){
  105. int R=0;
  106. /*IF*/if (((int)(C)->_compound)) {
  107. R=rT140use_current((T140*)(C)->_compound);
  108. }
  109. /*FI*/return R;
  110. }
  111. T0* rT226clone(T226 *C,T0* a1){
  112. T0* R=NULL;
  113. /*IF*/if (((int)a1)) {
  114. R=(T0 *)new(a1->id);
  115. AF_1
  116. XrT28copy(R,a1);
  117. AF_0
  118. }
  119. /*FI*/return R;
  120. }
  121. void rT226from_e_when(T226 *C,T0 * a1){
  122. T0 * _when_item=NULL;
  123. int _i=0;
  124. C->_start_position=((T226*)a1)->_start_position;
  125. C->_list=rT226clone(C,((T226*)a1)->_list);
  126. _i=XrT230lower((C)->_list);
  127. while (!((_i)>(XrT230upper((C)->_list)))) {
  128. _when_item=rT226clone(C,XrT230item((C)->_list,_i));
  129. XrT228clear_e_when(_when_item);
  130. XrT230put((C)->_list,_when_item,_i);
  131. _i=(_i)+(1);
  132. }
  133. C->_header_comment=((T226*)a1)->_header_comment;
  134. C->_compound=((T226*)a1)->_compound;
  135. }
  136. void rT226err_occ(T226 *C,int a1,T0 * a2){
  137. /*UT*/(T45*)oRBC27eh;
  138. rT45add_position(((T225*)rT226e_inspect(C))->_start_position);
  139. /*UT*/(T45*)oRBC27eh;
  140. rT45append((T0 *)ms1343);
  141. /*UT*/(T45*)oRBC27eh;
  142. rT45append(rT2to_string(a1));
  143. rT226error(a2,(T0 *)ms1344);
  144. }
  145. void rT226compile_to_c(T226 *C,int a1){
  146. int _bs=0;
  147. int _bi=0;
  148. int _go_next_when=0;
  149. int _go_start_when=0;
  150. /*IF*/if (((int)(C)->_values)) {
  151. _go_start_when=rT40new_goto((T40*)oRBC27cpp);
  152. _bi=((T276*)(C)->_values)->_lower;
  153. while (!((_bi)>(((T276*)(C)->_values)->_upper))) {
  154. _bs=(_bi)+(1);
  155. while (!(((_bs)>(((T276*)(C)->_values)->_upper))||(!(rT276item((T276*)(C)->_values,_bs))))) {
  156. _bs=(_bs)+(1);
  157. }
  158. _bs=(_bs)-(1);
  159. /*IF*/if ((_bi)==(_bs)) {
  160. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1288);
  161. rT40put_integer((T40*)oRBC27cpp,_bi);
  162. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1289);
  163. rT40put_inspect((T40*)oRBC27cpp);
  164. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1290);
  165. rT40put_goto((T40*)oRBC27cpp,_go_start_when);
  166. }
  167. else {
  168. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1293);
  169. rT40put_integer((T40*)oRBC27cpp,_bi);
  170. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1294);
  171. rT40put_inspect((T40*)oRBC27cpp);
  172. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1295);
  173. rT40put_inspect((T40*)oRBC27cpp);
  174. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1296);
  175. rT40put_integer((T40*)oRBC27cpp,_bs);
  176. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1297);
  177. rT40put_goto((T40*)oRBC27cpp,_go_start_when);
  178. }
  179. /*FI*/_bi=(_bs)+(1);
  180. while (!(((_bi)>(((T276*)(C)->_values)->_upper))||(rT276item((T276*)(C)->_values,_bi)))) {
  181. _bi=(_bi)+(1);
  182. }
  183. }
  184. _go_next_when=rT40new_goto((T40*)oRBC27cpp);
  185. rT40put_goto((T40*)oRBC27cpp,_go_next_when);
  186. rT40put_goto_label((T40*)oRBC27cpp,_go_start_when);
  187. /*IF*/if (((int)(C)->_compound)) {
  188. rT140compile_to_c((T140*)(C)->_compound);
  189. }
  190. /*FI*/rT40put_goto((T40*)oRBC27cpp,a1);
  191. rT40put_goto_label((T40*)oRBC27cpp,_go_next_when);
  192. }
  193. /*FI*/}
  194. void rT226copy(T226 *C,T0 * a1){
  195. /*IF*//*AF*//*AE*/
  196. memcpy(C,a1,s[C->id]);
  197. /*FI*/}
  198. int rT226includes_integer(T226 *C,int a1){
  199. int R=0;
  200. R=((((int)(C)->_values))&&(rT276valid_index((T276*)(C)->_values,a1)))&&(rT276item((T276*)(C)->_values,a1));
  201. return R;
  202. }
  203. void rT226add_slice(T226 *C,T0 * a1,T0 * a2){
  204. T0 * _element=NULL;
  205. {T233 *n=((T233*)new(233));
  206. rT233make(n,a1,a2);
  207. _element=(T0 *)n;}
  208. /*IF*/if (!((C)->_list)) {
  209. C->_list=ma(234,0,1,_element);
  210. }
  211. else {
  212. XrT230add_last((C)->_list,_element);
  213. }
  214. /*FI*/}
  215. void rT226add_value(T226 *C,T0 * a1){
  216. T0 * _element=NULL;
  217. {T227 *n=((T227*)new(227));
  218. /*(IRF3*/((n)->_expression)=(a1);
  219. /*)*/_element=(T0 *)n;}
  220. /*IF*/if (!((C)->_list)) {
  221. C->_list=ma(229,0,1,_element);
  222. }
  223. else {
  224. XrT230add_last((C)->_list,_element);
  225. }
  226. /*FI*/}
  227. void rT226make(T226 *C,T0 * a1,T0 * a2){
  228. C->_start_position=a1;
  229. C->_header_comment=a2;
  230. }
  231. void rT226add_when_item_2(T226 *C,T0 * a1){
  232. int _i=0;
  233. int _u=0;
  234. int _l=0;
  235. _l=((T233*)a1)->_lower_value;
  236. _u=((T233*)a1)->_upper_value;
  237. /*IF*/if ((_l)>=(_u)) {
  238. rT226error(rT233start_position((T233*)a1),(T0 *)ms1348);
  239. }
  240. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  241. _i=_l;
  242. while (!((_i)>(_u))) {
  243. /*IF*/if (rT225includes((T225*)rT226e_inspect(C),_i)) {
  244. rT226err_occ(C,_i,rT233start_position((T233*)a1));
  245. _i=(_u)+(1);
  246. }
  247. else {
  248. _i=(_i)+(1);
  249. }
  250. /*FI*/}
  251. }
  252. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  253. /*IF*/if (!((C)->_values)) {
  254. {T276 *n=((T276*)new(276));
  255. rT276make(n,_l,_u);
  256. C->_values=(T0 *)n;}
  257. rT276set_all_with((T276*)(C)->_values,1);
  258. }
  259. else {
  260. rT276force((T276*)(C)->_values,1,_l);
  261. rT276force((T276*)(C)->_values,1,_u);
  262. rT276set_slice_with((T276*)(C)->_values,1,_l,_u);
  263. }
  264. /*FI*/}
  265. /*FI*/}
  266. void rT226add_when_item_1(T226 *C,T0 * a1){
  267. int _v=0;
  268. _v=((T227*)a1)->_expression_value;
  269. /*IF*/if (rT225includes((T225*)rT226e_inspect(C),_v)) {
  270. rT226err_occ(C,_v,rT227start_position((T227*)a1));
  271. }
  272.  else if (!((C)->_values)) {
  273. {T276 *n=((T276*)new(276));
  274. rT276make(n,_v,_v);
  275. C->_values=(T0 *)n;}
  276. rT276put((T276*)(C)->_values,1,_v);
  277. }
  278. else {
  279. rT276force((T276*)(C)->_values,1,_v);
  280. }
  281. /*FI*/}
  282. void rT212fatal_error(/*C*/T0* a1){
  283. rT45fatal_error((T45*)oRBC27eh,a1);
  284. }
  285. T0 * rT212first_name(T212 *C){
  286. T0 * R=NULL;
  287. R=rT128item((T128*)(C)->_names,1);
  288. return R;
  289. }
  290. T0 * rT212to_run_feature(T212 *C,T0 * a1,T0 * a2){
  291. T0 * R=NULL;
  292. {T280 *n=((T280*)new(280));
  293. rT280make(n,a1,a2,(T0 *)C);
  294. R=(T0 *)n;}
  295. return R;
  296. }
  297. void rT212error(/*C*/T0 * a1,T0* a2){
  298. /*UT*/(T45*)oRBC27eh;
  299. rT45add_position(a1);
  300. rT45error((T45*)oRBC27eh,a2);
  301. }
  302. void rT212fe_undefine(/*C*/T0 * a1,T0 * a2){
  303. /*UT*/(T45*)oRBC27eh;
  304. rT45append((T0 *)ms483);
  305. /*UT*/(T45*)oRBC27eh;
  306. rT45append(XrT67to_string(a1));
  307. /*UT*/(T45*)oRBC27eh;
  308. rT45append((T0 *)ms484);
  309. /*UT*/(T45*)oRBC27eh;
  310. rT45append(((T48*)((T50*)a2)->_base_class_name)->_to_string);
  311. rT212fatal_error((T0 *)ms485);
  312. }
  313. int rT212is_merge_with(T212 *C,T0 * a1,T0 * a2){
  314. int R=0;
  315. int _ne=0;
  316. _ne=/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/;
  317. /*IF*/if (((T0 *)(C)->_result_type)!=((T0 *)XrT62result_type(a1))) {
  318. /*IF*/if ((!((C)->_result_type))||(!(XrT62result_type(a1)))) {
  319. /*UT*/(T45*)oRBC27eh;
  320. rT45add_position(XrT62start_position(a1));
  321. rT212error(rT212start_position(C),(T0 *)ms488);
  322. }
  323. /*FI*/}
  324. /*FI*//*IF*/if (((T0 *)(C)->_arguments)!=((T0 *)XrT62arguments(a1))) {
  325. /*IF*/if ((!((C)->_arguments))||(!(XrT62arguments(a1)))) {
  326. /*UT*/(T45*)oRBC27eh;
  327. rT45add_position(XrT62start_position(a1));
  328. rT212error(rT212start_position(C),(T0 *)ms489);
  329. }
  330.  else if ((rT92count((T92*)(C)->_arguments))!=(rT92count((T92*)XrT62arguments(a1)))) {
  331. /*UT*/(T45*)oRBC27eh;
  332. rT45add_position(XrT62start_position(a1));
  333. rT212error(rT212start_position(C),(T0 *)ms490);
  334. }
  335. /*FI*/}
  336. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  337. /*IF*/if (((int)(C)->_result_type)) {
  338. /*IF*/if (!(XrT58is_a_in((C)->_result_type,XrT62result_type(a1),a2))) {
  339. rT45error((T45*)oRBC27eh,(T0 *)ms491);
  340. }
  341. /*FI*/}
  342. /*FI*/}
  343. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  344. /*IF*/if (((int)(C)->_arguments)) {
  345. /*IF*/if (!(rT92is_a_in((T92*)(C)->_arguments,XrT62arguments(a1),a2))) {
  346. /*UT*/(T45*)oRBC27eh;
  347. rT45add_position(XrT62start_position(a1));
  348. rT212error(rT212start_position(C),(T0 *)ms494);
  349. }
  350. /*FI*/}
  351. /*FI*/}
  352. /*FI*/R=((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0);
  353. return R;
  354. }
  355. T0 * rT212start_position(T212 *C){
  356. T0 * R=NULL;
  357. R=XrT67start_position(rT212first_name(C));
  358. return R;
  359. }
  360. int rT212use_current(T212 *C){
  361. int R=0;
  362. R=XrT206use_current((C)->_langage,(T0 *)C);
  363. return R;
  364. }
  365. void rT212collect_for(T212 *C,int a1){
  366. /*IF*/if ((a1)==(1001)) {
  367. /*IF*/if (((int)(C)->_require_assertion)) {
  368. /*IF*/if (!(rT268fast_has((T268*)oRBC62require_collector,(C)->_require_assertion))) {
  369. rT268add_last((T268*)oRBC62require_collector,(C)->_require_assertion);
  370. }
  371. /*FI*/}
  372. /*FI*/}
  373. else {
  374. /*IF*/if (((int)(C)->_ensure_assertion)) {
  375. rT157add_into((T157*)(C)->_ensure_assertion,oRBC62assertion_collector);
  376. }
  377. /*FI*/}
  378. /*FI*/}
  379. int rT212is_cse(T212 *C){
  380. int R=0;
  381. R=XrT206is_cse((C)->_langage);
  382. return R;
  383. }
  384. void rT212add_into(T212 *C,T0 * a1){
  385. T0 * _fn=NULL;
  386. int _i=0;
  387. C->_base_class=rT46base_class((T46*)XrT67start_position(rT128item((T128*)(C)->_names,1)));
  388. _i=1;
  389. while (!((_i)>(rT128count((T128*)(C)->_names)))) {
  390. _fn=rT128item((T128*)(C)->_names,_i);
  391. /*IF*/if (rT61has((T61*)a1,XrT67to_key(_fn))) {
  392. _fn=XrT62first_name(rT61at((T61*)a1,XrT67to_key(_fn)));
  393. /*UT*/(T45*)oRBC27eh;
  394. rT45add_position(XrT67start_position(_fn));
  395. /*UT*/(T45*)oRBC27eh;
  396. rT45add_position(XrT67start_position(rT128item((T128*)(C)->_names,_i)));
  397. rT45error((T45*)oRBC27eh,(T0 *)ms419);
  398. /*UT*/(T45*)oRBC27eh;
  399. rT45append(XrT67to_string(_fn));
  400. rT45error((T45*)oRBC27eh,(T0 *)ms38);
  401. }
  402. else {
  403. rT61put((T61*)a1,(T0 *)C,XrT67to_key(_fn));
  404. }
  405. /*FI*/_i=(_i)+(1);
  406. }
  407. }
  408. T0 * rT212try_to_undefine(T212 *C,T0 * a1,T0 * a2){
  409. T0 * R=NULL;
  410. /*IF*/if (XrT67is_frozen(a1)) {
  411. /*UT*/(T45*)oRBC27eh;
  412. rT45add_position(rT212start_position(C));
  413. rT212error(XrT67start_position(a1),(T0 *)ms482);
  414. rT212fe_undefine(a1,a2);
  415. }
  416. else {
  417. R=rT212try_to_undefine_aux(C,a1,a2);
  418. /*IF*/if (((int)R)) {
  419. XrT203set_clients(R,(C)->_clients);
  420. }
  421. else {
  422. rT212fe_undefine(a1,a2);
  423. }
  424. /*FI*/}
  425. /*FI*/return R;
  426. }
  427. T0 * rT212try_to_undefine_aux(T212 *C,T0 * a1,T0 * a2){
  428. T0 * R=NULL;
  429. {T205 *n=((T205*)new(205));
  430. rT205from_effective(n,a1,(C)->_arguments,(C)->_result_type,(C)->_require_assertion,(C)->_ensure_assertion,a2);
  431. R=(T0 *)n;}return R;
  432. }
  433. void rT212set_header_comment(T212 *C,T0 * a1){
  434. /*IF*/if ((((int)a1))&&((rT59count((T59*)a1))>(1))) {
  435. C->_end_comment=a1;
  436. }
  437. /*FI*/}
  438. int rT212can_hide(T212 *C,T0 * a1,T0 * a2){
  439. int R=0;
  440. int _ne=0;
  441. _ne=/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/;
  442. /*IF*/if (((T0 *)(C)->_result_type)!=((T0 *)XrT62result_type(a1))) {
  443. /*IF*/if ((!((C)->_result_type))||(!(XrT62result_type(a1)))) {
  444. /*UT*/(T45*)oRBC27eh;
  445. rT45add_position(XrT62start_position(a1));
  446. rT212error(rT212start_position(C),(T0 *)ms501);
  447. }
  448. /*FI*/}
  449. /*FI*//*IF*/if (((T0 *)(C)->_arguments)!=((T0 *)XrT62arguments(a1))) {
  450. /*IF*/if ((!((C)->_arguments))||(!(XrT62arguments(a1)))) {
  451. /*UT*/(T45*)oRBC27eh;
  452. rT45add_position(XrT62start_position(a1));
  453. rT212error(rT212start_position(C),(T0 *)ms502);
  454. }
  455.  else if ((rT92count((T92*)(C)->_arguments))!=(rT92count((T92*)XrT62arguments(a1)))) {
  456. /*UT*/(T45*)oRBC27eh;
  457. rT45add_position(XrT62start_position(a1));
  458. rT212error(rT212start_position(C),(T0 *)ms503);
  459. }
  460. /*FI*/}
  461. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  462. /*IF*/if (((int)(C)->_result_type)) {
  463. /*IF*/if (!(XrT58is_a_in((C)->_result_type,XrT62result_type(a1),a2))) {
  464. /*UT*/(T45*)oRBC27eh;
  465. rT45append((T0 *)ms504);
  466. /*UT*/(T45*)oRBC27eh;
  467. rT45append(XrT58run_time_mark(((T260*)a2)->_current_type));
  468. rT45error((T45*)oRBC27eh,(T0 *)ms505);
  469. }
  470. /*FI*/}
  471. /*FI*/}
  472. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  473. /*IF*/if (((int)(C)->_arguments)) {
  474. /*IF*/if (!(rT92is_a_in((T92*)(C)->_arguments,XrT62arguments(a1),a2))) {
  475. /*UT*/(T45*)oRBC27eh;
  476. rT45add_position(XrT62start_position(a1));
  477. /*UT*/(T45*)oRBC27eh;
  478. rT45add_position(rT212start_position(C));
  479. /*UT*/(T45*)oRBC27eh;
  480. rT45append((T0 *)ms506);
  481. /*UT*/(T45*)oRBC27eh;
  482. rT45append(XrT58run_time_mark(((T260*)a2)->_current_type));
  483. rT45error((T45*)oRBC27eh,(T0 *)ms507);
  484. }
  485. /*FI*/}
  486. /*FI*/}
  487. /*FI*/R=((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0);
  488. return R;
  489. }
  490. T0 * rT212base_class_name(T212 *C){
  491. T0 * R=NULL;
  492. R=((T50*)(C)->_base_class)->_base_class_name;
  493. return R;
  494. }
  495. void rT212copy(T212 *C,T0 * a1){
  496. /*IF*//*AF*//*AE*/
  497. memcpy(C,a1,s[C->id]);
  498. /*FI*/}
  499. void rT212set_rescue_compound(T212 *C,T0 * a1){
  500. /*IF*/if ((((int)a1))&&(/*(IRF4*/0/*)*/)) {
  501. rT212error(rT212start_position(C),(T0 *)ms402);
  502. }
  503. /*FI*/C->_rescue_compound=a1;
  504. }
  505. void rT212make_external_routine(T212 *C,T0 * a1,T0* a2){
  506. C->_langage=a1;
  507. /*IF*/if (!(a2)) {
  508. C->_external_name=XrT67to_string(rT212first_name(C));
  509. }
  510. else {
  511. C->_external_name=a2;
  512. }
  513. /*FI*/}
  514. void rT212make_e_feature(T212 *C,T0 * a1,T0 * a2){
  515. C->_names=a1;
  516. C->_result_type=a2;
  517. }
  518. void rT212make_routine(T212 *C,T0 * a1,T0 * a2,T0 * a3,T0 * a4,T0 * a5){
  519. rT212make_e_feature(C,a1,NULL);
  520. C->_header_comment=a4;
  521. C->_arguments=a2;
  522. C->_obsolete_mark=a3;
  523. C->_require_assertion=a5;
  524. }
  525. int rT212is_c(T212 *C){
  526. int R=0;
  527. R=XrT206is_c((C)->_langage);
  528. return R;
  529. }
  530. void rT212make(T212 *C,T0 * a1,T0 * a2,T0 * a3,T0 * a4,T0 * a5,T0 * a6,T0 * a7,T0* a8){
  531. rT212make_routine(C,a1,a2,a4,a5,a6);
  532. C->_result_type=a3;
  533. rT212make_external_routine(C,a7,a8);
  534. }
  535. void rT211fatal_error(/*C*/T0* a1){
  536. rT45fatal_error((T45*)oRBC27eh,a1);
  537. }
  538. T0 * rT211first_name(T211 *C){
  539. T0 * R=NULL;
  540. R=rT128item((T128*)(C)->_names,1);
  541. return R;
  542. }
  543. T0 * rT211to_run_feature(T211 *C,T0 * a1,T0 * a2){
  544. T0 * R=NULL;
  545. {T279 *n=((T279*)new(279));
  546. rT279make(n,a1,a2,(T0 *)C);
  547. R=(T0 *)n;}
  548. return R;
  549. }
  550. void rT211error(/*C*/T0 * a1,T0* a2){
  551. /*UT*/(T45*)oRBC27eh;
  552. rT45add_position(a1);
  553. rT45error((T45*)oRBC27eh,a2);
  554. }
  555. void rT211fe_undefine(/*C*/T0 * a1,T0 * a2){
  556. /*UT*/(T45*)oRBC27eh;
  557. rT45append((T0 *)ms483);
  558. /*UT*/(T45*)oRBC27eh;
  559. rT45append(XrT67to_string(a1));
  560. /*UT*/(T45*)oRBC27eh;
  561. rT45append((T0 *)ms484);
  562. /*UT*/(T45*)oRBC27eh;
  563. rT45append(((T48*)((T50*)a2)->_base_class_name)->_to_string);
  564. rT211fatal_error((T0 *)ms485);
  565. }
  566. int rT211is_merge_with(T211 *C,T0 * a1,T0 * a2){
  567. int R=0;
  568. int _ne=0;
  569. _ne=/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/;
  570. /*IF*/if (((T0 *)(C)->_result_type)!=((T0 *)XrT62result_type(a1))) {
  571. /*IF*/if ((!((C)->_result_type))||(!(XrT62result_type(a1)))) {
  572. /*UT*/(T45*)oRBC27eh;
  573. rT45add_position(XrT62start_position(a1));
  574. rT211error(rT211start_position(C),(T0 *)ms488);
  575. }
  576. /*FI*/}
  577. /*FI*//*IF*/if (((T0 *)(C)->_arguments)!=((T0 *)XrT62arguments(a1))) {
  578. /*IF*/if ((!((C)->_arguments))||(!(XrT62arguments(a1)))) {
  579. /*UT*/(T45*)oRBC27eh;
  580. rT45add_position(XrT62start_position(a1));
  581. rT211error(rT211start_position(C),(T0 *)ms489);
  582. }
  583.  else if ((rT92count((T92*)(C)->_arguments))!=(rT92count((T92*)XrT62arguments(a1)))) {
  584. /*UT*/(T45*)oRBC27eh;
  585. rT45add_position(XrT62start_position(a1));
  586. rT211error(rT211start_position(C),(T0 *)ms490);
  587. }
  588. /*FI*/}
  589. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  590. /*IF*/if (((int)(C)->_result_type)) {
  591. /*IF*/if (!(XrT58is_a_in((C)->_result_type,XrT62result_type(a1),a2))) {
  592. rT45error((T45*)oRBC27eh,(T0 *)ms491);
  593. }
  594. /*FI*/}
  595. /*FI*/}
  596. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  597. /*IF*/if (((int)(C)->_arguments)) {
  598. /*IF*/if (!(rT92is_a_in((T92*)(C)->_arguments,XrT62arguments(a1),a2))) {
  599. /*UT*/(T45*)oRBC27eh;
  600. rT45add_position(XrT62start_position(a1));
  601. rT211error(rT211start_position(C),(T0 *)ms494);
  602. }
  603. /*FI*/}
  604. /*FI*/}
  605. /*FI*/R=((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0);
  606. return R;
  607. }
  608. T0 * rT211start_position(T211 *C){
  609. T0 * R=NULL;
  610. R=XrT67start_position(rT211first_name(C));
  611. return R;
  612. }
  613. int rT211use_current(T211 *C){
  614. int R=0;
  615. R=XrT206use_current((C)->_langage,(T0 *)C);
  616. return R;
  617. }
  618. void rT211collect_for(T211 *C,int a1){
  619. /*IF*/if ((a1)==(1001)) {
  620. /*IF*/if (((int)(C)->_require_assertion)) {
  621. /*IF*/if (!(rT268fast_has((T268*)oRBC62require_collector,(C)->_require_assertion))) {
  622. rT268add_last((T268*)oRBC62require_collector,(C)->_require_assertion);
  623. }
  624. /*FI*/}
  625. /*FI*/}
  626. else {
  627. /*IF*/if (((int)(C)->_ensure_assertion)) {
  628. rT157add_into((T157*)(C)->_ensure_assertion,oRBC62assertion_collector);
  629. }
  630. /*FI*/}
  631. /*FI*/}
  632. int rT211is_cse(T211 *C){
  633. int R=0;
  634. R=XrT206is_cse((C)->_langage);
  635. return R;
  636. }
  637. void rT211add_into(T211 *C,T0 * a1){
  638. T0 * _fn=NULL;
  639. int _i=0;
  640. C->_base_class=rT46base_class((T46*)XrT67start_position(rT128item((T128*)(C)->_names,1)));
  641. _i=1;
  642. while (!((_i)>(rT128count((T128*)(C)->_names)))) {
  643. _fn=rT128item((T128*)(C)->_names,_i);
  644. /*IF*/if (rT61has((T61*)a1,XrT67to_key(_fn))) {
  645. _fn=XrT62first_name(rT61at((T61*)a1,XrT67to_key(_fn)));
  646. /*UT*/(T45*)oRBC27eh;
  647. rT45add_position(XrT67start_position(_fn));
  648. /*UT*/(T45*)oRBC27eh;
  649. rT45add_position(XrT67start_position(rT128item((T128*)(C)->_names,_i)));
  650. rT45error((T45*)oRBC27eh,(T0 *)ms419);
  651. /*UT*/(T45*)oRBC27eh;
  652. rT45append(XrT67to_string(_fn));
  653. rT45error((T45*)oRBC27eh,(T0 *)ms38);
  654. }
  655. else {
  656. rT61put((T61*)a1,(T0 *)C,XrT67to_key(_fn));
  657. }
  658. /*FI*/_i=(_i)+(1);
  659. }
  660. }
  661. T0 * rT211try_to_undefine(T211 *C,T0 * a1,T0 * a2){
  662. T0 * R=NULL;
  663. /*IF*/if (XrT67is_frozen(a1)) {
  664. /*UT*/(T45*)oRBC27eh;
  665. rT45add_position(rT211start_position(C));
  666. rT211error(XrT67start_position(a1),(T0 *)ms482);
  667. rT211fe_undefine(a1,a2);
  668. }
  669. else {
  670. R=rT211try_to_undefine_aux(C,a1,a2);
  671. /*IF*/if (((int)R)) {
  672. XrT203set_clients(R,(C)->_clients);
  673. }
  674. else {
  675. rT211fe_undefine(a1,a2);
  676. }
  677. /*FI*/}
  678. /*FI*/return R;
  679. }
  680. T0 * rT211try_to_undefine_aux(T211 *C,T0 * a1,T0 * a2){
  681. T0 * R=NULL;
  682. {T204 *n=((T204*)new(204));
  683. rT204from_effective(n,a1,(C)->_arguments,(C)->_require_assertion,(C)->_ensure_assertion,a2);
  684. R=(T0 *)n;}return R;
  685. }
  686. void rT211set_header_comment(T211 *C,T0 * a1){
  687. /*IF*/if ((((int)a1))&&((rT59count((T59*)a1))>(1))) {
  688. C->_end_comment=a1;
  689. }
  690. /*FI*/}
  691. int rT211can_hide(T211 *C,T0 * a1,T0 * a2){
  692. int R=0;
  693. int _ne=0;
  694. _ne=/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/;
  695. /*IF*/if (((T0 *)(C)->_result_type)!=((T0 *)XrT62result_type(a1))) {
  696. /*IF*/if ((!((C)->_result_type))||(!(XrT62result_type(a1)))) {
  697. /*UT*/(T45*)oRBC27eh;
  698. rT45add_position(XrT62start_position(a1));
  699. rT211error(rT211start_position(C),(T0 *)ms501);
  700. }
  701. /*FI*/}
  702. /*FI*//*IF*/if (((T0 *)(C)->_arguments)!=((T0 *)XrT62arguments(a1))) {
  703. /*IF*/if ((!((C)->_arguments))||(!(XrT62arguments(a1)))) {
  704. /*UT*/(T45*)oRBC27eh;
  705. rT45add_position(XrT62start_position(a1));
  706. rT211error(rT211start_position(C),(T0 *)ms502);
  707. }
  708.  else if ((rT92count((T92*)(C)->_arguments))!=(rT92count((T92*)XrT62arguments(a1)))) {
  709. /*UT*/(T45*)oRBC27eh;
  710. rT45add_position(XrT62start_position(a1));
  711. rT211error(rT211start_position(C),(T0 *)ms503);
  712. }
  713. /*FI*/}
  714. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  715. /*IF*/if (((int)(C)->_result_type)) {
  716. /*IF*/if (!(XrT58is_a_in((C)->_result_type,XrT62result_type(a1),a2))) {
  717. /*UT*/(T45*)oRBC27eh;
  718. rT45append((T0 *)ms504);
  719. /*UT*/(T45*)oRBC27eh;
  720. rT45append(XrT58run_time_mark(((T260*)a2)->_current_type));
  721. rT45error((T45*)oRBC27eh,(T0 *)ms505);
  722. }
  723. /*FI*/}
  724. /*FI*/}
  725. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  726. /*IF*/if (((int)(C)->_arguments)) {
  727. /*IF*/if (!(rT92is_a_in((T92*)(C)->_arguments,XrT62arguments(a1),a2))) {
  728. /*UT*/(T45*)oRBC27eh;
  729. rT45add_position(XrT62start_position(a1));
  730. /*UT*/(T45*)oRBC27eh;
  731. rT45add_position(rT211start_position(C));
  732. /*UT*/(T45*)oRBC27eh;
  733. rT45append((T0 *)ms506);
  734. /*UT*/(T45*)oRBC27eh;
  735. rT45append(XrT58run_time_mark(((T260*)a2)->_current_type));
  736. rT45error((T45*)oRBC27eh,(T0 *)ms507);
  737. }
  738. /*FI*/}
  739. /*FI*/}
  740. /*FI*/R=((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0);
  741. return R;
  742. }
  743. T0 * rT211base_class_name(T211 *C){
  744. T0 * R=NULL;
  745. R=((T50*)(C)->_base_class)->_base_class_name;
  746. return R;
  747. }
  748. void rT211copy(T211 *C,T0 * a1){
  749. /*IF*//*AF*//*AE*/
  750. memcpy(C,a1,s[C->id]);
  751. /*FI*/}
  752. void rT211set_rescue_compound(T211 *C,T0 * a1){
  753. /*IF*/if ((((int)a1))&&(/*(IRF4*/0/*)*/)) {
  754. rT211error(rT211start_position(C),(T0 *)ms402);
  755. }
  756. /*FI*/C->_rescue_compound=a1;
  757. }
  758. void rT211make_external_routine(T211 *C,T0 * a1,T0* a2){
  759. C->_langage=a1;
  760. /*IF*/if (!(a2)) {
  761. C->_external_name=XrT67to_string(rT211first_name(C));
  762. }
  763. else {
  764. C->_external_name=a2;
  765. }
  766. /*FI*/}
  767. void rT211make_e_feature(T211 *C,T0 * a1,T0 * a2){
  768. C->_names=a1;
  769. C->_result_type=a2;
  770. }
  771. void rT211make_routine(T211 *C,T0 * a1,T0 * a2,T0 * a3,T0 * a4,T0 * a5){
  772. rT211make_e_feature(C,a1,NULL);
  773. C->_header_comment=a4;
  774. C->_arguments=a2;
  775. C->_obsolete_mark=a3;
  776. C->_require_assertion=a5;
  777. }
  778. int rT211is_c(T211 *C){
  779. int R=0;
  780. R=XrT206is_c((C)->_langage);
  781. return R;
  782. }
  783. void rT211make(T211 *C,T0 * a1,T0 * a2,T0 * a3,T0 * a4,T0 * a5,T0 * a6,T0* a7){
  784. rT211make_routine(C,a1,a2,a3,a4,a5);
  785. rT211make_external_routine(C,a6,a7);
  786. }
  787. int rT209use_current(/*C*/T0 * a1){
  788. int R=0;
  789. return R;
  790. }
  791. void rT209copy(T209 *C,T0 * a1){
  792. /*IF*//*AF*//*AE*/
  793. memcpy(C,a1,s[C->id]);
  794. /*FI*/}
  795. int rT208use_current(/*C*/T0 * a1){
  796. int R=0;
  797. R=1;
  798. return R;
  799. }
  800. void rT208copy(T208 *C,T0 * a1){
  801. /*IF*//*AF*//*AE*/
  802. memcpy(C,a1,s[C->id]);
  803. /*FI*/}
  804. int rT207use_current(/*C*/T0 * a1){
  805. int R=0;
  806. T0* _n=NULL;
  807. _n=XrT67to_string(XrT210first_name(a1));
  808. /*IF*/if (rT7is_equal((T7*)(T0 *)ms1517,_n)) {
  809. }
  810.  else if (rT7is_equal((T7*)(T0 *)ms1516,_n)) {
  811. }
  812. else {
  813. R=1;
  814. }
  815. /*FI*/return R;
  816. }
  817. void rT207copy(T207 *C,T0 * a1){
  818. /*IF*//*AF*//*AE*/
  819. memcpy(C,a1,s[C->id]);
  820. /*FI*/}
  821. void rT40cecil_define(T40 *C){
  822. T0 * _rf=NULL;
  823. int _i=0;
  824. /*IF*/if (((int)(C)->_cecil_list)) {
  825. rT38put_string((T38*)oRBC1std_output,(T0 *)ms786);
  826. XrT34put_string((C)->_out_h,(T0 *)ms787);
  827. _i=XrT265upper((C)->_cecil_list);
  828. while (!((_i)==(0))) {
  829. _rf=XrT265item((C)->_cecil_list,_i);
  830. rT40cecil_define_of(C,_rf);
  831. _i=(_i)-(1);
  832. /*IF*/if ((_i)>(0)) {
  833. rT38put_string((T38*)oRBC1std_output,(T0 *)ms804);
  834. }
  835. /*FI*/}
  836. XrT34put_string((C)->_out_h,(T0 *)ms805);
  837. rT38put_string((T38*)oRBC1std_output,(T0 *)ms806);
  838. }
  839. /*FI*/}
  840. void rT40cecil_define_of(T40 *C,T0 * a1){
  841. T0 * _rfargs=NULL;
  842. T0 * _rfname=NULL;
  843. T0 * _rfrt=NULL;
  844. T0 * _rfct=NULL;
  845. T0* _running=NULL;
  846. int _running_count=0;
  847. int _i=0;
  848. int _rfid=0;
  849. _rfct=XrT261current_type(a1);
  850. _rfrt=XrT261result_type(a1);
  851. _rfname=XrT261name(a1);
  852. _rfargs=XrT261arguments(a1);
  853. rT38put_string((T38*)oRBC1std_output,XrT58run_time_mark(_rfct));
  854. rT38put_string((T38*)oRBC1std_output,XrT67to_key(_rfname));
  855. /*(IRF3*/(((T7*)oRBC40tmp_string)->_count)=(0);
  856. /*)*//*IF*/if (((int)_rfrt)) {
  857. _rfrt=XrT58run_type(_rfrt);
  858. /*IF*/if (XrT58is_expanded(_rfrt)) {
  859. XrT58mapping_c_in(_rfrt,oRBC40tmp_string);
  860. rT7extend((T7*)oRBC40tmp_string,'\40');
  861. }
  862. else {
  863. rT7append((T7*)oRBC40tmp_string,(T0 *)ms788);
  864. }
  865. /*FI*/}
  866. else {
  867. rT7append((T7*)oRBC40tmp_string,(T0 *)ms789);
  868. }
  869. /*FI*/rT7append((T7*)oRBC40tmp_string,XrT58run_time_mark(_rfct));
  870. rT7append((T7*)oRBC40tmp_string,XrT67to_key(_rfname));
  871. rT7extend((T7*)oRBC40tmp_string,'\50');
  872. /*IF*/if (XrT58fast_mapping_c(_rfct)) {
  873. XrT58mapping_c_in(_rfct,oRBC40tmp_string);
  874. rT7extend((T7*)oRBC40tmp_string,'\40');
  875. }
  876. else {
  877. rT7append((T7*)oRBC40tmp_string,(T0 *)ms790);
  878. }
  879. /*FI*/rT7extend((T7*)oRBC40tmp_string,'C');
  880. /*IF*/if (((int)_rfargs)) {
  881. rT7extend((T7*)oRBC40tmp_string,'\54');
  882. rT92cecil_in((T92*)_rfargs,oRBC40tmp_string);
  883. }
  884. /*FI*/rT7extend((T7*)oRBC40tmp_string,'\51');
  885. rT40put_c_heading(C,oRBC40tmp_string);
  886. _running=((T260*)XrT58run_class(_rfct))->_running;
  887. /*IF*/if (!(_running)) {
  888. /*UT*/(T45*)oRBC27eh;
  889. rT45add_type(_rfct,(T0 *)ms792);
  890. /*UT*/(T45*)oRBC27eh;
  891. rT45append((T0 *)ms793);
  892. /*UT*/(T45*)oRBC27eh;
  893. rT45append(XrT58run_time_mark(_rfct));
  894. /*UT*/(T45*)oRBC27eh;
  895. rT45append(XrT67to_key(_rfname));
  896. /*UT*/(T45*)oRBC27eh;
  897. rT45append((T0 *)ms794);
  898. rT45print_as_warning((T45*)oRBC27eh);
  899. }
  900. else {
  901. _running_count=rT263count((T263*)_running);
  902. _rfid=XrT58id(_rfct);
  903. /*IF*/if (((int)_rfrt)) {
  904. XrT34put_string((C)->_out_c,(T0 *)ms795);
  905. }
  906. /*FI*//*IF*/if ((_running_count)>(1)) {
  907. rT40update_switch_cltn(C,_rfct,_rfid,XrT261name(a1),_running);
  908. XrT34put_character((C)->_out_c,'X');
  909. }
  910. /*FI*/XrT34put_string((C)->_out_c,(T0 *)ms797);
  911. XrT34put_integer((C)->_out_c,_rfid);
  912. XrT67mapping_c(_rfname);
  913. XrT34put_character((C)->_out_c,'\50');
  914. /*IF*/if ((_running_count)==(1)) {
  915. XrT34put_character((C)->_out_c,'\50');
  916. XrT58mapping_cast(_rfct);
  917. }
  918.  else if (rT44no_check((T44*)oRBC27eiffel_run_control)) {
  919. rT40put_position(C,NULL);
  920. XrT34put_character((C)->_out_c,'\54');
  921. }
  922. /*FI*/XrT34put_character((C)->_out_c,'C');
  923. /*IF*/if ((_running_count)==(1)) {
  924. XrT34put_character((C)->_out_c,'\51');
  925. }
  926. /*FI*//*IF*/if (((int)_rfargs)) {
  927. _i=1;
  928. /*(IRF3*/(((T7*)oRBC40tmp_string)->_count)=(0);
  929. /*)*/while (!((_i)>(rT92count((T92*)_rfargs)))) {
  930. rT7append((T7*)oRBC40tmp_string,(T0 *)ms801);
  931. rT2append_in(_i,oRBC40tmp_string);
  932. _i=(_i)+(1);
  933. }
  934. XrT34put_string((C)->_out_c,oRBC40tmp_string);
  935. }
  936. /*FI*/XrT34put_character((C)->_out_c,'\51');
  937. /*IF*/if (!(_rfrt)) {
  938. rT40put_semicolon(C);
  939. }
  940. /*FI*/}
  941. /*FI*/rT40put_string(C,(T0 *)ms803);
  942. }
  943. T0* rT40get_environment_variable(T40 *C,T0* a1){
  944. T0* R=NULL;
  945. rT7extend((T7*)a1,'\0');
  946. R=((T0 *)getenv(((T7 *)a1)->_storage));
  947. if (R) R=((T0 *)e2s((char *)R));
  948. rT7remove_last((T7*)a1,1);
  949. return R;
  950. }
  951. void rT40once_pre_computing(T40 *C){
  952. T0 * _of=NULL;
  953. T0 * _rf6=NULL;
  954. T0* _of_array=NULL;
  955. int _i=0;
  956. /*IF*/if (((int)(C)->_pre_computed_once)) {
  957. rT38put_string((T38*)oRBC1std_output,(T0 *)ms842);
  958. _i=((T274*)(C)->_pre_computed_once)->_upper;
  959. {T275 *n=((T275*)new(275));
  960. rT275make(n,1,(1)+((_i)/(2)));
  961. _of_array=(T0 *)n;}
  962. rT275clear((T275*)_of_array);
  963. while (!((_i)==(0))) {
  964. _rf6=rT274item((T274*)(C)->_pre_computed_once,_i);
  965. _of=((T273*)_rf6)->_base_feature;
  966. /*IF*/if (!(rT275fast_has((T275*)_of_array,_of))) {
  967. rT38put_character((T38*)oRBC1std_output,'\40');
  968. rT275add_last((T275*)_of_array,_of);
  969. rT273pre_computing((T273*)_rf6);
  970. }
  971. /*FI*/_i=(_i)-(1);
  972. }
  973. rT38put_string((T38*)oRBC1std_output,(T0 *)ms846);
  974. rT38put_integer((T38*)oRBC1std_output,rT275count((T275*)_of_array));
  975. rT38put_character((T38*)oRBC1std_output,'\12');
  976. }
  977. /*FI*/}
  978. void rT40define_initialize(T40 *C){
  979. int _no_check=0;
  980. _no_check=rT44no_check((T44*)oRBC27eiffel_run_control);
  981. rT38put_string((T38*)oRBC1std_output,(T0 *)ms1045);
  982. rT52define_extern_tables((T52*)oRBC27small_eiffel);
  983. XrT34put_string((C)->_out_h,(T0 *)ms1057);
  984. rT40swap_on_c(C);
  985. C->_elt_c_count=((C)->_elt_c_count)+(50);
  986. rT40incr_elt_c_count(C,10);
  987. rT40put_string(C,(T0 *)ms1058);
  988. /*(IRF3*//*UT*/(T52*)oRBC27small_eiffel;
  989. {
  990. T0 * _rc=NULL;
  991. int _i=0;
  992. _i=1;
  993. while (!((_i)>(((T262*)oRBC52run_class_dictionary)->_count))) {
  994. _rc=rT262item((T262*)oRBC52run_class_dictionary,_i);
  995. /*IF*/if (((T260*)_rc)->_at_run_time) {
  996. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1059);
  997. rT40put_integer((T40*)oRBC27cpp,((T260*)_rc)->_id);
  998. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1060);
  999. rT40put_integer((T40*)oRBC27cpp,((T260*)_rc)->_id);
  1000. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1061);
  1001. }
  1002. /*FI*/_i=(_i)+(1);
  1003. }
  1004. }
  1005. /*)*//*IF*/if (_no_check) {
  1006. /*(IRF3*//*UT*/(T52*)oRBC27small_eiffel;
  1007. {
  1008. T0 * _rc=NULL;
  1009. T0 * _bc=NULL;
  1010. int _i=0;
  1011. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1062);
  1012. _i=1;
  1013. while (!((_i)>(((T54*)oRBC52base_class_dictionary)->_count))) {
  1014. _bc=rT54item((T54*)oRBC52base_class_dictionary,_i);
  1015. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1063);
  1016. rT40put_integer((T40*)oRBC27cpp,((T50*)_bc)->_id);
  1017. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1064);
  1018. rT40put_string_c((T40*)oRBC27cpp,((T50*)_bc)->_path);
  1019. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1065);
  1020. _i=(_i)+(1);
  1021. }
  1022. _i=1;
  1023. while (!((_i)>(((T262*)oRBC52run_class_dictionary)->_count))) {
  1024. _rc=rT262item((T262*)oRBC52run_class_dictionary,_i);
  1025. /*IF*/if ((((T260*)_rc)->_at_run_time)&&(XrT58is_generic(((T260*)_rc)->_current_type))) {
  1026. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1066);
  1027. rT40put_integer((T40*)oRBC27cpp,((T260*)_rc)->_id);
  1028. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1067);
  1029. rT40put_integer((T40*)oRBC27cpp,((T50*)rT260base_class((T260*)_rc))->_id);
  1030. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1068);
  1031. }
  1032. /*FI*/_i=(_i)+(1);
  1033. }
  1034. }
  1035. /*)*/}
  1036. /*FI*//*IF*/if (((C)->_generator_used)||(rT44no_check((T44*)oRBC27eiffel_run_control))) {
  1037. /*(IRF3*//*UT*/(T52*)oRBC27small_eiffel;
  1038. {
  1039. T0 * _rc=NULL;
  1040. T0 * _bc=NULL;
  1041. int _i=0;
  1042. _i=1;
  1043. while (!((_i)>(((T54*)oRBC52base_class_dictionary)->_count))) {
  1044. _bc=rT54item((T54*)oRBC52base_class_dictionary,_i);
  1045. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1069);
  1046. rT40put_integer((T40*)oRBC27cpp,((T50*)_bc)->_id);
  1047. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1070);
  1048. rT40put_string_c((T40*)oRBC27cpp,((T48*)((T50*)_bc)->_base_class_name)->_to_string);
  1049. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1071);
  1050. _i=(_i)+(1);
  1051. }
  1052. _i=1;
  1053. while (!((_i)>(((T262*)oRBC52run_class_dictionary)->_count))) {
  1054. _rc=rT262item((T262*)oRBC52run_class_dictionary,_i);
  1055. /*IF*/if ((((T260*)_rc)->_at_run_time)&&(XrT58is_generic(((T260*)_rc)->_current_type))) {
  1056. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1072);
  1057. rT40put_integer((T40*)oRBC27cpp,((T260*)_rc)->_id);
  1058. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1073);
  1059. rT40put_integer((T40*)oRBC27cpp,((T50*)rT260base_class((T260*)_rc))->_id);
  1060. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1074);
  1061. }
  1062. /*FI*/_i=(_i)+(1);
  1063. }
  1064. }
  1065. /*)*/}
  1066. /*FI*//*IF*/if (((C)->_generating_type_used)||(rT44no_check((T44*)oRBC27eiffel_run_control))) {
  1067. /*(IRF3*//*UT*/(T52*)oRBC27small_eiffel;
  1068. {
  1069. T0 * _rc=NULL;
  1070. int _i=0;
  1071. _i=1;
  1072. while (!((_i)>(((T262*)oRBC52run_class_dictionary)->_count))) {
  1073. _rc=rT262item((T262*)oRBC52run_class_dictionary,_i);
  1074. /*IF*/if (((T260*)_rc)->_at_run_time) {
  1075. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1075);
  1076. rT40put_integer((T40*)oRBC27cpp,((T260*)_rc)->_id);
  1077. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1076);
  1078. /*IF*/if (XrT58is_generic(((T260*)_rc)->_current_type)) {
  1079. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1077);
  1080. rT40put_string_c((T40*)oRBC27cpp,XrT58run_time_mark(((T260*)_rc)->_current_type));
  1081. rT40put_character((T40*)oRBC27cpp,'\51');
  1082. }
  1083. else {
  1084. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1078);
  1085. rT40put_integer((T40*)oRBC27cpp,((T260*)_rc)->_id);
  1086. rT40put_character((T40*)oRBC27cpp,'\135');
  1087. }
  1088. /*FI*/rT40put_string((T40*)oRBC27cpp,(T0 *)ms1079);
  1089. }
  1090. /*FI*/_i=(_i)+(1);
  1091. }
  1092. }
  1093. /*)*/}
  1094. /*FI*/rT40put_string(C,(T0 *)ms1080);
  1095. }
  1096. void rT40define_main(T40 *C,T0 * a1){
  1097. T0 * _ms=NULL;
  1098. T0 * _ct=NULL;
  1099. T0 * _rc=NULL;
  1100. int _id=0;
  1101. int _i=0;
  1102. rT38put_string((T38*)oRBC1std_output,(T0 *)ms807);
  1103. _ct=XrT261current_type(a1);
  1104. _id=XrT58id(_ct);
  1105. _rc=XrT261run_class(a1);
  1106. /*IF*/if ((C)->_environment_used) {
  1107. rT40put_extern1(C,(T0 *)ms808);
  1108. rT40put_extern1(C,(T0 *)ms809);
  1109. }
  1110. /*FI*/rT40swap_on_c(C);
  1111. /*IF*/if (((int)(C)->_ms_list)) {
  1112. rT40incr_elt_c_count(C,rT151count((T151*)(C)->_ms_list));
  1113. }
  1114. else {
  1115. rT40incr_elt_c_count(C,10);
  1116. }
  1117. /*FI*/rT40put_string(C,(T0 *)ms810);
  1118. /*IF*/if ((C)->_environment_used) {
  1119. rT40put_string(C,(T0 *)ms811);
  1120. }
  1121. /*FI*/rT40put_string(C,(T0 *)ms812);
  1122. rT40put_integer(C,_id);
  1123. rT40put_string(C,(T0 *)ms813);
  1124. rT40put_new(C,_ct);
  1125. rT40put_string(C,(T0 *)ms817);
  1126. /*IF*/if ((C)->_environment_used) {
  1127. rT40put_lines(C,ma(41,0,5,ms818,ms819,ms820,ms821,ms822));
  1128. }
  1129. /*FI*/rT40put_string(C,(T0 *)ms823);
  1130. rT40put_string(C,(T0 *)ms824);
  1131. rT40put_string(C,(T0 *)ms825);
  1132. /*IF*/if (((int)(C)->_ms_list)) {
  1133. _i=((T151*)(C)->_ms_list)->_lower;
  1134. while (!((_i)>(((T151*)(C)->_ms_list)->_upper))) {
  1135. _ms=rT151item((T151*)(C)->_ms_list,_i);
  1136. /*IF*/if (((int)_ms)) {
  1137. rT40put_string(C,(T0 *)ms826);
  1138. rT40put_integer(C,_i);
  1139. rT40put_string(C,(T0 *)ms827);
  1140. rT40put_string_c(C,((T76*)_ms)->_to_string);
  1141. rT40put_string(C,(T0 *)ms836);
  1142. }
  1143. /*FI*/_i=(_i)+(1);
  1144. }
  1145. }
  1146. /*FI*//*IF*/if (rT44no_check((T44*)oRBC27eiffel_run_control)) {
  1147. rT40put_lines(C,ma(41,0,4,ms837,ms838,ms839,ms840));
  1148. }
  1149. /*FI*/rT40expanded_attributes(C,(T0 *)ms841,NULL,_ct);
  1150. rT40once_pre_computing(C);
  1151. rT40push_new(C,a1,NULL);
  1152. XrT261mapping_c(a1);
  1153. rT40pop(C);
  1154. /*IF*/if (rT44invariant_check((T44*)oRBC27eiffel_run_control)) {
  1155. /*IF*/if (((int)((T260*)_rc)->_invariant_assertion)) {
  1156. rT40put_string(C,(T0 *)ms847);
  1157. rT40put_integer(C,_id);
  1158. rT40put_string(C,(T0 *)ms848);
  1159. }
  1160. /*FI*/}
  1161. /*FI*//*IF*/if (rT44no_check((T44*)oRBC27eiffel_run_control)) {
  1162. rT40put_lines(C,ma(41,0,3,ms849,ms850,ms851));
  1163. }
  1164. /*FI*/rT40put_string(C,(T0 *)ms852);
  1165. /*IF*/if (((int)(C)->_ms_list)) {
  1166. rT40incr_elt_c_count(C,rT151count((T151*)(C)->_ms_list));
  1167. }
  1168. else {
  1169. rT40incr_elt_c_count(C,10);
  1170. }
  1171. /*FI*/rT40print_included(C);
  1172. }
  1173. void rT40define_used_basics(T40 *C){
  1174. T0 * _ms=NULL;
  1175. int _no_check=0;
  1176. int _i=0;
  1177. _no_check=rT44no_check((T44*)oRBC27eiffel_run_control);
  1178. rT38put_string((T38*)oRBC1std_output,(T0 *)ms855);
  1179. /*IF*/if ((/*UT*/(T52*)oRBC27small_eiffel,
  1180. rT52is_used((T0 *)ms188))) {
  1181. rT40include(C,(T0 *)ms856);
  1182. rT40put_c_function(C,ma(41,0,5,ms857,ms858,ms859,ms860,ms861));
  1183. rT40put_c_function(C,ma(41,0,8,ms862,ms863,ms864,ms865,ms866,ms867,ms868,ms869));
  1184. }
  1185. /*FI*//*IF*/if ((/*UT*/(T52*)oRBC27small_eiffel,
  1186. rT52is_used((T0 *)ms187))) {
  1187. rT40include(C,(T0 *)ms870);
  1188. rT40put_c_function(C,ma(41,0,33,ms871,ms872,ms873,ms874,ms875,ms876,ms877,ms878,ms879,ms880,ms881,ms882,ms883,ms884,ms885,ms886,ms887,ms888,ms889,ms890,ms891,ms892,ms893,ms894,ms895,ms896,ms897,ms898,ms899,ms900,ms901,ms902,ms903));
  1189. }
  1190. /*FI*//*IF*/if (((int)(C)->_ms_list)) {
  1191. rT38put_string((T38*)oRBC1std_output,(T0 *)ms904);
  1192. rT38put_integer((T38*)oRBC1std_output,rT151count((T151*)(C)->_ms_list));
  1193. rT38put_string((T38*)oRBC1std_output,(T0 *)ms905);
  1194. rT40swap_on_h(C);
  1195. rT40put_character(C,'\12');
  1196. _i=1;
  1197. while (!((_i)>(((T151*)(C)->_ms_list)->_upper))) {
  1198. _ms=rT151item((T151*)(C)->_ms_list,_i);
  1199. /*IF*/if (((int)_ms)) {
  1200. /*(IRF3*/(((T7*)oRBC40tmp_string)->_count)=(0);
  1201. /*)*/rT7append((T7*)oRBC40tmp_string,(T0 *)ms906);
  1202. rT2append_in(_i,oRBC40tmp_string);
  1203. rT40put_extern1(C,oRBC40tmp_string);
  1204. }
  1205. /*FI*/_i=(_i)+(1);
  1206. }
  1207. }
  1208. /*FI*//*IF*/if (_no_check) {
  1209. rT40put_c_function(C,ma(41,0,56,ms907,ms908,ms909,ms910,ms911,ms912,ms913,ms914,ms915,ms916,ms917,ms918,ms919,ms920,ms921,ms922,ms923,ms924,ms925,ms926,ms927,ms928,ms929,ms930,ms931,ms932,ms933,ms934,ms935,ms936,ms937,ms938,ms939,ms940,ms941,ms942,ms943,ms944,ms945,ms946,ms947,ms948,ms949,ms950,ms951,ms952,ms953,ms954,ms955,ms956,ms957,ms958,ms959,ms960,ms961,ms962));
  1210. }
  1211. else {
  1212. rT40put_c_function(C,ma(41,0,4,ms963,ms964,ms965,ms966));
  1213. }
  1214. /*FI*//*IF*/if (_no_check) {
  1215. rT40put_c_function(C,ma(41,0,4,ms967,ms968,ms969,ms970));
  1216. rT40put_c_function(C,ma(41,0,5,ms971,ms972,ms973,ms974,ms975));
  1217. rT40put_c_function(C,ma(41,0,3,ms976,ms977,ms978));
  1218. rT40put_c_function(C,ma(41,0,3,ms979,ms980,ms981));
  1219. rT40put_c_function(C,ma(41,0,9,ms982,ms983,ms984,ms985,ms986,ms987,ms988,ms989,ms990));
  1220. rT40put_c_function(C,ma(41,0,3,ms991,ms992,ms993));
  1221. }
  1222. /*FI*/rT40put_c_function(C,ma(41,0,4,ms994,ms995,ms996,ms997));
  1223. rT40define_switches(C);
  1224. /*IF*/if (((int)(C)->_conversion_mem)) {
  1225. rT40define_conversion(C);
  1226. }
  1227. /*FI*//*IF*/if (((C)->_sure_void_count)>(0)) {
  1228. rT38put_string((T38*)oRBC1std_output,(T0 *)ms1031);
  1229. rT38put_integer((T38*)oRBC1std_output,(C)->_sure_void_count);
  1230. rT38put_string((T38*)oRBC1std_output,(T0 *)ms1032);
  1231. }
  1232. /*FI*/rT40print_count((T0 *)ms1033,(C)->_direct_call_count);
  1233. rT40print_count((T0 *)ms1034,(C)->_check_id_count);
  1234. rT40print_count((T0 *)ms1035,(C)->_switch_count);
  1235. rT40print_count((T0 *)ms1036,(C)->_inlined_procedure_count);
  1236. rT40print_count((T0 *)ms1037,(C)->_inlined_function_count);
  1237. rT40print_count((T0 *)ms1038,(C)->_static_expression_count);
  1238. rT40print_count((T0 *)ms1039,(C)->_real_procedure_count);
  1239. rT40print_count((T0 *)ms1040,(C)->_real_function_count);
  1240. rT40print_count((T0 *)ms1041,(C)->_procedure_count);
  1241. rT40print_count((T0 *)ms1042,(C)->_function_count);
  1242. /*IF*/if (((int)(C)->_pre_computed_once)) {
  1243. rT40print_count((T0 *)ms1043,rT274count((T274*)(C)->_pre_computed_once));
  1244. }
  1245. /*FI*/rT38put_string((T38*)oRBC1std_output,(T0 *)ms1044);
  1246. rT38put_integer((T38*)oRBC1std_output,((T55*)oRBC40stack_code)->_upper);
  1247. rT38put_character((T38*)oRBC1std_output,'\12');
  1248. rT40define_initialize(C);
  1249. }
  1250. void rT40define_switches(T40 *C){
  1251. T0* _st=NULL;
  1252. int _count=0;
  1253. int _j=0;
  1254. int _i=0;
  1255. /*IF*/if (((int)(C)->_switch_cltn)) {
  1256. rT40swap_on_c(C);
  1257. _i=((T270*)(C)->_switch_cltn)->_lower;
  1258. while (!((_i)>(((T270*)(C)->_switch_cltn)->_upper))) {
  1259. _st=rT270item((T270*)(C)->_switch_cltn,_i);
  1260. /*IF*/if (((int)_st)) {
  1261. _j=((T271*)_st)->_lower;
  1262. while (!((_j)>(((T271*)_st)->_upper))) {
  1263. rT269c_define((T269*)rT271item((T271*)_st,_j));
  1264. rT40incr_elt_c_count(C,20);
  1265. _count=(_count)+(1);
  1266. _j=(_j)+(1);
  1267. }
  1268. }
  1269. /*FI*/_i=(_i)+(1);
  1270. }
  1271. }
  1272. /*FI*/rT40print_count((T0 *)ms1019,_count);
  1273. }
  1274. void rT40define_conversion(T40 *C){
  1275. T0 * _dest_type=NULL;
  1276. T0 * _src_type=NULL;
  1277. T0 * _dest_rc=NULL;
  1278. T0 * _src_rc=NULL;
  1279. int _i=0;
  1280. _i=1;
  1281. while (!((_i)>(((T263*)(C)->_conversion_mem)->_upper))) {
  1282. _src_rc=rT263item((T263*)(C)->_conversion_mem,_i);
  1283. _i=(_i)+(1);
  1284. _dest_rc=rT263item((T263*)(C)->_conversion_mem,_i);
  1285. _i=(_i)+(1);
  1286. _src_type=((T260*)_src_rc)->_current_type;
  1287. _dest_type=((T260*)_dest_rc)->_current_type;
  1288. rT38put_string((T38*)oRBC1std_output,(T0 *)ms1020);
  1289. rT38put_string((T38*)oRBC1std_output,XrT58run_time_mark(_src_type));
  1290. rT38put_string((T38*)oRBC1std_output,(T0 *)ms1021);
  1291. rT38put_string((T38*)oRBC1std_output,XrT58run_time_mark(_dest_type));
  1292. rT38put_string((T38*)oRBC1std_output,(T0 *)ms1022);
  1293. /*(IRF3*/(((T7*)oRBC40tmp_string)->_count)=(0);
  1294. /*)*//*IF*/if (XrT58is_reference(_dest_type)) {
  1295. rT7append((T7*)oRBC40tmp_string,(T0 *)ms1023);
  1296. }
  1297. else {
  1298. XrT58mapping_c_in(_dest_type,oRBC40tmp_string);
  1299. rT7extend((T7*)oRBC40tmp_string,'\40');
  1300. }
  1301. /*FI*/rT40conversion_name(((T260*)_dest_rc)->_id);
  1302. rT7extend((T7*)oRBC40tmp_string,'\50');
  1303. XrT58mapping_c_in(_src_type,oRBC40tmp_string);
  1304. rT7append((T7*)oRBC40tmp_string,(T0 *)ms1025);
  1305. XrT34put_string((C)->_out_h,oRBC40tmp_string);
  1306. XrT34put_string((C)->_out_h,(T0 *)ms1026);
  1307. XrT34put_string((C)->_out_c,oRBC40tmp_string);
  1308. /*(IRF3*/(((T7*)oRBC40tmp_string)->_count)=(0);
  1309. /*)*/rT7append((T7*)oRBC40tmp_string,(T0 *)ms1027);
  1310. XrT58mapping_c_in(_dest_type,oRBC40tmp_string);
  1311. rT7append((T7*)oRBC40tmp_string,(T0 *)ms1028);
  1312. XrT58mapping_c_in(_dest_type,oRBC40tmp_string);
  1313. rT7append((T7*)oRBC40tmp_string,(T0 *)ms1029);
  1314. rT2append_in(((T260*)_dest_rc)->_id,oRBC40tmp_string);
  1315. rT7append((T7*)oRBC40tmp_string,(T0 *)ms1030);
  1316. XrT34put_string((C)->_out_c,oRBC40tmp_string);
  1317. }
  1318. }
  1319. int ofBC27directory_separator=0;
  1320. T3 oRBC27directory_separator;
  1321. char rT40directory_separator(T40 *C){
  1322. char R='\0';
  1323. if (ofBC27directory_separator==0){
  1324. ofBC27directory_separator=1;
  1325. R=rT7last((T7*)rT40small_eiffel_directory(C));
  1326. oRBC27directory_separator=R;}
  1327. return oRBC27directory_separator;}
  1328. T0* rT40to_bcn(T40 *C,T0* a1){
  1329. T0* R=NULL;
  1330. char _c='\0';
  1331. int _i=0;
  1332. R=rT40clone(C,a1);
  1333. /*IF*/if (rT7has_suffix((T7*)R,(T0 *)ms51)) {
  1334. rT7remove_last((T7*)R,2);
  1335. }
  1336. /*FI*/_i=((T7*)R)->_count;
  1337. while (!((_i)==(0))) {
  1338. _c=rT7item((T7*)R,_i);
  1339. /*IF*/if (rT3is_letter(_c)) {
  1340. _i=(_i)-(1);
  1341. }
  1342.  else if ((_c)==('\137')) {
  1343. _i=(_i)-(1);
  1344. }
  1345.  else if (rT3is_digit(_c)) {
  1346. _i=(_i)-(1);
  1347. }
  1348. else {
  1349. rT7remove_first((T7*)R,_i);
  1350. _i=0;
  1351. }
  1352. /*FI*/}
  1353. rT7to_upper((T7*)R);
  1354. return R;
  1355. }
  1356. void rT40fatal_error(/*C*/T0* a1){
  1357. rT45fatal_error((T45*)oRBC27eh,a1);
  1358. }
  1359. void rT40die_with_code(T40 *C,int a1){
  1360. exit(a1);
  1361. }
  1362. void rT40incr_pre_computed_once_count(T40 *C,T0 * a1){
  1363. /*IF*/if (!((C)->_pre_computed_once)) {
  1364. C->_pre_computed_once=ma(274,0,1,a1);
  1365. }
  1366. else {
  1367. rT274add_last((T274*)(C)->_pre_computed_once,a1);
  1368. }
  1369. /*FI*/}
  1370. void rT40incr_real_function_count(T40 *C){
  1371. C->_real_function_count=((C)->_real_function_count)+(1);
  1372. rT40incr_elt_c_count(C,10);
  1373. }
  1374. void rT40incr_function_count(T40 *C){
  1375. C->_function_count=((C)->_function_count)+(1);
  1376. rT40incr_elt_c_count(C,10);
  1377. }
  1378. void rT40incr_inlined_function_count(T40 *C){
  1379. C->_inlined_function_count=((C)->_inlined_function_count)+(1);
  1380. }
  1381. void rT40incr_real_procedure_count(T40 *C){
  1382. C->_real_procedure_count=((C)->_real_procedure_count)+(1);
  1383. rT40incr_elt_c_count(C,10);
  1384. }
  1385. void rT40incr_procedure_count(T40 *C){
  1386. C->_procedure_count=((C)->_procedure_count)+(1);
  1387. rT40incr_elt_c_count(C,10);
  1388. }
  1389. void rT40incr_inlined_procedure_count(T40 *C){
  1390. C->_inlined_procedure_count=((C)->_inlined_procedure_count)+(1);
  1391. }
  1392. void rT40incr_static_expression_count(T40 *C){
  1393. C->_static_expression_count=((C)->_static_expression_count)+(1);
  1394. }
  1395. void rT40manifest_string_mapping_c(T40 *C,int a1){
  1396. rT40put_string(C,(T0 *)ms1157);
  1397. rT40put_integer(C,a1);
  1398. }
  1399. void rT40incr_elt_c_count(T40 *C,int a1){
  1400. C->_elt_c_count=((C)->_elt_c_count)+(a1);
  1401. /*IF*/if (((C)->_elt_c_count)>(1500)) {
  1402. C->_elt_c_count=0;
  1403. XrT34disconnect((C)->_out_c);
  1404. C->_split_count=((C)->_split_count)+(1);
  1405. rT7copy((T7*)rT40path_c(C),rT40path_h(C));
  1406. rT7remove_last((T7*)rT40path_c(C),2);
  1407. rT2append_in((C)->_split_count,rT40path_c(C));
  1408. rT7append((T7*)rT40path_c(C),(T0 *)ms532);
  1409. C->_out_c=rT40open_write(C,rT40path_c(C));
  1410. rT40add_first_include(C);
  1411. /*IF*/if (((T0 *)(C)->_current_out)!=((T0 *)(C)->_out_h)) {
  1412. C->_current_out=(C)->_out_c;
  1413. }
  1414. /*FI*/}
  1415. /*FI*/}
  1416. int ofBC40path_make=0;
  1417. T0*oRBC40path_make;
  1418. T0* rT40path_make(T40 *C){
  1419. T0* R=NULL;
  1420. if (ofBC40path_make==0){
  1421. ofBC40path_make=1;
  1422. R=rT40clone(C,rT40path_h(C));
  1423. rT7remove_last((T7*)R,2);
  1424. rT7append((T7*)R,rT40make_suffix(C));
  1425. oRBC40path_make=R;}
  1426. return oRBC40path_make;}
  1427. int ofBC40path_h=0;
  1428. T0*oRBC40path_h;
  1429. T0* rT40path_h(T40 *C){
  1430. T0* R=NULL;
  1431. if (ofBC40path_h==0){
  1432. ofBC40path_h=1;
  1433. R=((T44*)oRBC27eiffel_run_control)->_root_class;
  1434. /*IF*/if (!(R)) {
  1435. rT40fatal_error((T0 *)ms530);
  1436. }
  1437. else {
  1438. R=rT40to_bcn(C,R);
  1439. rT7to_lower((T7*)R);
  1440. rT7append((T7*)R,(T0 *)ms531);
  1441. }
  1442. /*FI*/oRBC40path_h=R;}
  1443. return oRBC40path_h;}
  1444. int ofBC40path_c=0;
  1445. T0*oRBC40path_c;
  1446. T0* rT40path_c(T40 *C){
  1447. T0* R=NULL;
  1448. if (ofBC40path_c==0){
  1449. ofBC40path_c=1;
  1450. R=rT40clone(C,rT40path_h(C));
  1451. rT7remove_last((T7*)R,2);
  1452. C->_split_count=1;
  1453. rT2append_in((C)->_split_count,R);
  1454. rT7append((T7*)R,(T0 *)ms532);
  1455. oRBC40path_c=R;}
  1456. return oRBC40path_c;}
  1457. void rT40trace_boolean_expression(T40 *C,T0 * a1){
  1458. rT40rs_push_position(C,'2',XrT68start_position(a1));
  1459. rT40put_string(C,(T0 *)ms1277);
  1460. XrT68compile_to_c(a1);
  1461. rT40put_character(C,'\51');
  1462. }
  1463. T0*oRBC1std_error;
  1464. int rT40new_goto(T40 *C){
  1465. int R=0;
  1466. C->_goto_count=((C)->_goto_count)+(1);
  1467. R=(C)->_goto_count;
  1468. return R;
  1469. }
  1470. void rT40open_read(T40 *C,T0 * a1,T0* a2){
  1471. rT39connect_to((T39*)a1,a2);
  1472. /*IF*/if (!(rT39is_connected((T39*)a1))) {
  1473. rT33put_string((T33*)oRBC1std_error,(T0 *)ms53);
  1474. rT33put_string((T33*)oRBC1std_error,a2);
  1475. rT33put_string((T33*)oRBC1std_error,(T0 *)ms54);
  1476. rT40die_with_code(C,1);
  1477. }
  1478. /*FI*/}
  1479. T0* rT40clone(T40 *C,T0* a1){
  1480. T0* R=NULL;
  1481. /*IF*/if (((int)a1)) {
  1482. R=(T0 *)new(a1->id);
  1483. AF_1
  1484. XrT28copy(R,a1);
  1485. AF_0
  1486. }
  1487. /*FI*/return R;
  1488. }
  1489. T0 * rT40open_write(T40 *C,T0* a1){
  1490. T0 * R=NULL;
  1491. {T34 *n=((T34*)new(34));
  1492. rT34connect_to(n,a1);
  1493. R=(T0 *)n;}
  1494. /*IF*/if (!(XrT34is_connected(R))) {
  1495. rT33put_string((T33*)oRBC1std_error,(T0 *)ms528);
  1496. rT33put_string((T33*)oRBC1std_error,a1);
  1497. rT33put_string((T33*)oRBC1std_error,(T0 *)ms529);
  1498. rT40die_with_code(C,1);
  1499. }
  1500. /*FI*/return R;
  1501. }
  1502. void rT40get_started(T40 *C){
  1503. int _no_check=0;
  1504. _no_check=rT44no_check((T44*)oRBC27eiffel_run_control);
  1505. C->_has_started=1;
  1506. C->_top=0;
  1507. C->_out_c=rT40open_write(C,rT40path_c(C));
  1508. C->_current_out=(C)->_out_c;
  1509. rT40add_first_include(C);
  1510. C->_out_h=rT40open_write(C,rT40path_h(C));
  1511. C->_current_out=(C)->_out_h;
  1512. rT40put_banner((C)->_out_h);
  1513. rT40include(C,(T0 *)ms541);
  1514. rT40include(C,(T0 *)ms542);
  1515. rT40include(C,(T0 *)ms543);
  1516. rT40include(C,(T0 *)ms544);
  1517. rT40put_lines(C,ma(41,0,7,ms545,ms546,ms547,ms548,ms549,ms550,ms551));
  1518. rT40put_c_function(C,ma(41,0,6,ms555,ms556,ms557,ms558,ms559,ms560));
  1519. rT40cdef_t(C,(T0 *)ms563,1);
  1520. rT40cdef_id(C,(T0 *)ms566,1);
  1521. rT40cdef_id(C,(T0 *)ms567,2);
  1522. rT40cdef_id(C,(T0 *)ms568,3);
  1523. rT40cdef_id(C,(T0 *)ms569,6);
  1524. rT40cdef_id(C,(T0 *)ms570,4);
  1525. rT40cdef_id(C,(T0 *)ms571,5);
  1526. rT40cdef_id(C,(T0 *)ms572,7);
  1527. rT40cdef_id(C,(T0 *)ms573,8);
  1528. rT40cdef_id(C,(T0 *)ms574,10);
  1529. rT40cdef_id(C,(T0 *)ms575,11);
  1530. rT40cdef_id(C,(T0 *)ms576,12);
  1531. rT40cdef_id(C,(T0 *)ms577,13);
  1532. rT40cdef_id(C,(T0 *)ms578,14);
  1533. rT40cdef_id(C,(T0 *)ms579,15);
  1534. rT40cdef_id(C,(T0 *)ms580,16);
  1535. rT40cdef_id(C,(T0 *)ms581,17);
  1536. rT40cdef_id(C,(T0 *)ms582,18);
  1537. rT40cdef_id(C,(T0 *)ms583,19);
  1538. /*IF*/if (_no_check) {
  1539. rT40put_extern3(C,(T0 *)ms589,(T0 *)ms590);
  1540. rT40put_extern3(C,(T0 *)ms591,(T0 *)ms592);
  1541. rT40put_extern3(C,(T0 *)ms593,(T0 *)ms594);
  1542. rT40put_extern3(C,(T0 *)ms595,(T0 *)ms596);
  1543. rT40put_extern3(C,(T0 *)ms597,(T0 *)ms598);
  1544. rT40put_extern3(C,(T0 *)ms599,(T0 *)ms600);
  1545. rT40put_extern3(C,(T0 *)ms205,(T0 *)ms205);
  1546. rT40put_extern3(C,(T0 *)ms293,(T0 *)ms293);
  1547. rT40put_extern1(C,(T0 *)ms604);
  1548. rT40put_extern1(C,(T0 *)ms605);
  1549. rT40put_extern1(C,(T0 *)ms606);
  1550. rT40put_extern1(C,(T0 *)ms607);
  1551. rT40put_c_function(C,ma(41,0,16,ms608,ms609,ms610,ms611,ms612,ms613,ms614,ms615,ms616,ms617,ms618,ms619,ms620,ms621,ms622,ms623));
  1552. rT40put_c_function(C,ma(41,0,7,ms624,ms625,ms626,ms627,ms628,ms629,ms630));
  1553. rT40put_c_function(C,ma(41,0,3,ms631,ms632,ms633));
  1554. rT40put_c_function(C,ma(41,0,10,ms634,ms635,ms636,ms637,ms638,ms639,ms640,ms641,ms642,ms643));
  1555. rT40put_c_function(C,ma(41,0,3,ms644,ms645,ms646));
  1556. rT40put_c_function(C,ma(41,0,6,ms647,ms648,ms649,ms650,ms651,ms652));
  1557. rT40put_c_function(C,ma(41,0,6,ms653,ms654,ms655,ms656,ms657,ms658));
  1558. rT40put_c_function(C,ma(41,0,6,ms659,ms660,ms661,ms662,ms663,ms664));
  1559. rT40put_c_function(C,ma(41,0,6,ms665,ms666,ms667,ms668,ms669,ms670));
  1560. rT40put_c_function(C,ma(41,0,6,ms671,ms672,ms673,ms674,ms675,ms676));
  1561. rT40put_c_function(C,ma(41,0,6,ms677,ms678,ms679,ms680,ms681,ms682));
  1562. rT40put_c_function(C,ma(41,0,6,ms683,ms684,ms685,ms686,ms687,ms688));
  1563. }
  1564. /*FI*//*IF*/if (rT44require_check((T44*)oRBC27eiffel_run_control)) {
  1565. rT40put_extern1(C,(T0 *)ms689);
  1566. rT40put_extern1(C,(T0 *)ms690);
  1567. rT40put_extern2(C,(T0 *)ms694,'0');
  1568. rT40put_c_function(C,ma(41,0,5,ms695,ms696,ms697,ms698,ms699));
  1569. rT40put_macro_af(C,(T0 *)ms701);
  1570. rT40put_macro_af(C,(T0 *)ms702);
  1571. }
  1572. else {
  1573. rT40put_macro_af(C,(T0 *)ms703);
  1574. rT40put_macro_af(C,(T0 *)ms704);
  1575. }
  1576. /*FI*//*IF*/if (rT44ensure_check((T44*)oRBC27eiffel_run_control)) {
  1577. rT40put_extern2(C,(T0 *)ms705,'0');
  1578. rT40put_c_function(C,ma(41,0,3,ms706,ms707,ms708));
  1579. rT40put_macro_af(C,(T0 *)ms709);
  1580. rT40put_macro_af(C,(T0 *)ms710);
  1581. }
  1582. else {
  1583. rT40put_macro_af(C,(T0 *)ms711);
  1584. rT40put_macro_af(C,(T0 *)ms712);
  1585. }
  1586. /*FI*//*IF*/if (rT44invariant_check((T44*)oRBC27eiffel_run_control)) {
  1587. rT40put_extern2(C,(T0 *)ms713,'0');
  1588. rT40put_c_function(C,ma(41,0,3,ms714,ms715,ms716));
  1589. rT40put_macro_af(C,(T0 *)ms717);
  1590. rT40put_macro_af(C,(T0 *)ms718);
  1591. }
  1592. else {
  1593. rT40put_macro_af(C,(T0 *)ms719);
  1594. rT40put_macro_af(C,(T0 *)ms720);
  1595. }
  1596. /*FI*//*IF*/if (rT44loop_check((T44*)oRBC27eiffel_run_control)) {
  1597. rT40put_extern2(C,(T0 *)ms721,'0');
  1598. rT40put_c_function(C,ma(41,0,3,ms722,ms723,ms724));
  1599. rT40put_c_function(C,ma(41,0,11,ms725,ms726,ms727,ms728,ms729,ms730,ms731,ms732,ms733,ms734,ms735));
  1600. rT40put_macro_af(C,(T0 *)ms736);
  1601. rT40put_macro_af(C,(T0 *)ms737);
  1602. }
  1603. else {
  1604. rT40put_macro_af(C,(T0 *)ms738);
  1605. rT40put_macro_af(C,(T0 *)ms739);
  1606. }
  1607. /*FI*//*IF*/if (rT44all_check((T44*)oRBC27eiffel_run_control)) {
  1608. rT40put_extern2(C,(T0 *)ms740,'0');
  1609. rT40put_c_function(C,ma(41,0,3,ms741,ms742,ms743));
  1610. rT40put_macro_af(C,(T0 *)ms744);
  1611. rT40put_macro_af(C,(T0 *)ms745);
  1612. }
  1613. else {
  1614. rT40put_macro_af(C,(T0 *)ms746);
  1615. rT40put_macro_af(C,(T0 *)ms747);
  1616. }
  1617. /*FI*/rT40put_macro_af(C,(T0 *)ms748);
  1618. rT40put_macro_af(C,(T0 *)ms749);
  1619. rT40macro_list_printing(C);
  1620. C->_current_out=(C)->_out_c;
  1621. }
  1622. void rT40macro_list_printing(T40 *C){
  1623. int _i=0;
  1624. /*IF*/if (((int)(C)->_macro_list)) {
  1625. rT38put_string((T38*)oRBC1std_output,(T0 *)ms750);
  1626. XrT34put_string((C)->_out_h,(T0 *)ms751);
  1627. _i=1;
  1628. while (!((_i)==(((T41*)(C)->_macro_list)->_upper))) {
  1629. XrT34put_string((C)->_out_h,rT41item((T41*)(C)->_macro_list,_i));
  1630. _i=(_i)+(1);
  1631. }
  1632. XrT34put_string((C)->_out_h,(T0 *)ms752);
  1633. rT38put_string((T38*)oRBC1std_output,(T0 *)ms753);
  1634. }
  1635. /*FI*/}
  1636. int rT40target_cannot_be_dropped(T40 *C){
  1637. int R=0;
  1638. int _function=0;
  1639. {int iv1=rT55item((T55*)oRBC40stack_code,(C)->_top);
  1640. if ((1004 <= iv1) && (iv1<= 1005)) goto l2;
  1641. goto l3;
  1642.  l2: ;
  1643. R=!(XrT68can_be_dropped(XrT81item(oRBC40stack_target,(C)->_top)));
  1644. goto l1;
  1645.  l3: ;
  1646.  l1: ;
  1647. }
  1648. /*IF*/if (R) {
  1649. _function=((int)XrT261result_type(XrT265item(oRBC40stack_rf,(C)->_top)));
  1650. /*IF*/if (_function) {
  1651. rT40put_character(C,'\50');
  1652. }
  1653. /*FI*/rT40put_string(C,(T0 *)ms1399);
  1654. rT40put_target(C);
  1655. /*IF*/if (_function) {
  1656. rT40put_string(C,(T0 *)ms1400);
  1657. }
  1658. else {
  1659. rT40put_string(C,(T0 *)ms1401);
  1660. }
  1661. /*FI*/}
  1662. /*FI*/return R;
  1663. }
  1664. void rT40variant_check(T40 *C,T0 * a1){
  1665. rT40rs_push_position(C,'6',XrT68start_position(a1));
  1666. rT40put_string(C,(T0 *)ms1308);
  1667. XrT68compile_to_c(a1);
  1668. rT40put_string(C,(T0 *)ms1309);
  1669. }
  1670. int ofBC27tmp_file_read=0;
  1671. T0*oRBC27tmp_file_read;
  1672. T0 * rT40tmp_file_read(/*C*/void){
  1673. T0 * R=NULL;
  1674. if (ofBC27tmp_file_read==0){
  1675. ofBC27tmp_file_read=1;
  1676. {T39 *n=((T39*)new(39));
  1677. /*(IRF3*/((n)->_mode)=((T0 *)ms26);
  1678. /*)*/R=(T0 *)n;}
  1679. oRBC27tmp_file_read=R;}
  1680. return oRBC27tmp_file_read;}
  1681. void rT40stack_push(T40 *C,int a1){
  1682. int _new_size=0;
  1683. C->_top=((C)->_top)+(1);
  1684. /*IF*/if (((C)->_top)>(((T55*)oRBC40stack_code)->_upper)) {
  1685. _new_size=(((T55*)oRBC40stack_code)->_upper)+(12);
  1686. rT55resize((T55*)oRBC40stack_code,1,_new_size);
  1687. XrT265resize(oRBC40stack_rf,1,_new_size);
  1688. XrT81resize(oRBC40stack_target,1,_new_size);
  1689. rT272resize((T272*)oRBC40stack_args,1,_new_size);
  1690. rT271resize((T271*)oRBC40stack_switch,1,_new_size);
  1691. rT41resize((T41*)oRBC40stack_string,1,_new_size);
  1692. }
  1693. /*FI*/rT55put((T55*)oRBC40stack_code,a1,(C)->_top);
  1694. }
  1695. T0*oRBC40stack_code;
  1696. T0*oRBC40stack_rf;
  1697. T0*oRBC40stack_target;
  1698. T0*oRBC40stack_args;
  1699. T0*oRBC40stack_switch;
  1700. T0*oRBC40stack_string;
  1701. void rT40put_arguments(T40 *C){
  1702. T0 * _fal=NULL;
  1703. {int iv1=rT55item((T55*)oRBC40stack_code,(C)->_top);
  1704. if (1003 == iv1) goto l5;
  1705. goto l6;
  1706.  l5: ;
  1707. _fal=XrT261arguments(XrT265item(oRBC40stack_rf,(C)->_top));
  1708. rT170compile_to_c((T170*)rT272item((T272*)oRBC40stack_args,(C)->_top),_fal);
  1709. goto l4;
  1710.  l6: ;
  1711. if (1004 == iv1) goto l7;
  1712. goto l8;
  1713.  l7: ;
  1714. _fal=XrT261arguments(XrT265item(oRBC40stack_rf,(C)->_top));
  1715. rT170compile_to_c((T170*)rT272item((T272*)oRBC40stack_args,(C)->_top),_fal);
  1716. goto l4;
  1717.  l8: ;
  1718. if (1005 == iv1) goto l9;
  1719. goto l10;
  1720.  l9: ;
  1721. _fal=XrT261arguments(XrT265item(oRBC40stack_rf,(C)->_top));
  1722. rT170compile_to_c((T170*)rT272item((T272*)oRBC40stack_args,(C)->_top),_fal);
  1723. goto l4;
  1724.  l10: ;
  1725. if (1006 == iv1) goto l11;
  1726. goto l12;
  1727.  l11: ;
  1728. _fal=XrT261arguments(XrT265item(oRBC40stack_rf,(C)->_top));
  1729. rT269put_arguments((T269*)rT271item((T271*)oRBC40stack_switch,(C)->_top),_fal);
  1730. goto l4;
  1731.  l12: ;
  1732. if (1007 == iv1) goto l13;
  1733. goto l14;
  1734.  l13: ;
  1735. _fal=XrT261arguments(XrT265item(oRBC40stack_rf,(C)->_top));
  1736. rT170compile_to_c((T170*)rT272item((T272*)oRBC40stack_args,(C)->_top),_fal);
  1737. goto l4;
  1738.  l14: ;
  1739.  l4: ;
  1740. }
  1741. }
  1742. void rT40rs_link(T40 *C,T0 * a1){
  1743. rT40put_string(C,(T0 *)ms1370);
  1744. XrT261mapping_name(a1);
  1745. rT40put_string(C,(T0 *)ms1371);
  1746. }
  1747. int ofBC27small_eiffel_directory=0;
  1748. T0*oRBC27small_eiffel_directory;
  1749. T0* rT40small_eiffel_directory(T40 *C){
  1750. T0* R=NULL;
  1751. char _slash='\0';
  1752. int _i=0;
  1753. if (ofBC27small_eiffel_directory==0){
  1754. ofBC27small_eiffel_directory=1;
  1755. R=rT40get_environment_variable(C,(T0 *)ms14);
  1756. /*IF*/if (!(R)) {
  1757. R=rT40clone(C,(T0 *)ms14);
  1758. rT7to_upper((T7*)R);
  1759. R=rT40get_environment_variable(C,R);
  1760. /*IF*/if (((int)R)) {
  1761. rT7to_upper((T7*)(T0 *)ms14);
  1762. }
  1763. /*FI*/}
  1764. /*FI*//*IF*/if (!(R)) {
  1765. R=(T0 *)ms20;
  1766. }
  1767. /*FI*/_i=((T7*)R)->_count;
  1768. while (!((_i)<(0))) {
  1769. _slash=rT7item((T7*)R,_i);
  1770. /*IF*/if ((rT3is_letter(_slash))||(rT3is_digit(_slash))) {
  1771. _i=(_i)-(1);
  1772. }
  1773. else {
  1774. _i=-(1);
  1775. }
  1776. /*FI*/}
  1777. /*IF*/if ((_i)==(0)) {
  1778. rT7extend((T7*)R,'\57');
  1779. }
  1780.  else if (!((rT7last((T7*)R))==(_slash))) {
  1781. rT7extend((T7*)R,_slash);
  1782. }
  1783. /*FI*/oRBC27small_eiffel_directory=R;}
  1784. return oRBC27small_eiffel_directory;}
  1785. T0*oRBC1std_output;
  1786. void rT40swap_on_c(T40 *C){
  1787. C->_current_out=(C)->_out_c;
  1788. }
  1789. void rT40put_banner(/*C*/T0 * a1){
  1790. XrT34put_string(a1,(T0 *)ms533);
  1791. XrT34put_string(a1,(T0 *)ms450);
  1792. XrT34put_string(a1,(T0 *)ms534);
  1793. }
  1794. void rT40swap_on_h(T40 *C){
  1795. C->_current_out=(C)->_out_h;
  1796. }
  1797. void rT40put_c_inline_h(T40 *C){
  1798. int _index=0;
  1799. T0 * _c_code=NULL;
  1800. _c_code=rT170expression((T170*)rT272item((T272*)oRBC40stack_args,(C)->_top),1);
  1801. if ((int)_c_code) switch (((T0 *)_c_code)->id) {
  1802. case 76: 
  1803. break;
  1804. default:
  1805. _c_code = NULL;
  1806. };_index=rT151fast_index_of((T151*)(C)->_ms_list,_c_code);
  1807. /*IF*/if ((_index)<=(((T151*)(C)->_ms_list)->_upper)) {
  1808. XrT34put_string((C)->_out_h,((T76*)_c_code)->_to_string);
  1809. XrT34put_character((C)->_out_h,'\12');
  1810. rT151put((T151*)(C)->_ms_list,NULL,rT151fast_index_of((T151*)(C)->_ms_list,_c_code));
  1811. }
  1812. /*FI*/}
  1813. void rT40put_c_inline_c(T40 *C){
  1814. int _index=0;
  1815. T0 * _c_code=NULL;
  1816. _c_code=rT170expression((T170*)rT272item((T272*)oRBC40stack_args,(C)->_top),1);
  1817. if ((int)_c_code) switch (((T0 *)_c_code)->id) {
  1818. case 76: 
  1819. break;
  1820. default:
  1821. _c_code = NULL;
  1822. };XrT34put_string((C)->_out_c,((T76*)_c_code)->_to_string);
  1823. XrT34put_character((C)->_out_c,'\12');
  1824. _index=rT151fast_index_of((T151*)(C)->_ms_list,_c_code);
  1825. /*IF*/if ((_index)<=(((T151*)(C)->_ms_list)->_upper)) {
  1826. rT151put((T151*)(C)->_ms_list,NULL,_index);
  1827. }
  1828. /*FI*/}
  1829. void rT40conversion(T40 *C,T0 * a1,T0 * a2){
  1830. T0 * _dest_rc=NULL;
  1831. T0 * _src_rc=NULL;
  1832. _src_rc=XrT58run_class(a1);
  1833. _dest_rc=XrT58run_class(a2);
  1834. /*IF*/if (!((C)->_conversion_mem)) {
  1835. C->_conversion_mem=ma(263,0,2,_src_rc,_dest_rc);
  1836. }
  1837.  else if (!(rT263fast_has((T263*)(C)->_conversion_mem,_src_rc))) {
  1838. rT263add_last((T263*)(C)->_conversion_mem,_src_rc);
  1839. rT263add_last((T263*)(C)->_conversion_mem,_dest_rc);
  1840. }
  1841. /*FI*//*(IRF3*/(((T7*)oRBC40tmp_string)->_count)=(0);
  1842. /*)*/rT40conversion_name(((T260*)_dest_rc)->_id);
  1843. rT40put_string(C,oRBC40tmp_string);
  1844. }
  1845. void rT40put_c_heading(T40 *C,T0* a1){
  1846. XrT34put_string((C)->_out_h,a1);
  1847. XrT34put_string((C)->_out_h,(T0 *)ms552);
  1848. XrT34put_string((C)->_out_c,a1);
  1849. XrT34put_string((C)->_out_c,(T0 *)ms553);
  1850. rT40swap_on_c(C);
  1851. }
  1852. void rT40put_c_function(T40 *C,T0* a1){
  1853. int _i=0;
  1854. rT40incr_elt_c_count(C,10);
  1855. rT40put_c_heading(C,rT41item((T41*)a1,1));
  1856. _i=2;
  1857. while (!((_i)>(rT41count((T41*)a1)))) {
  1858. XrT34put_string((C)->_out_c,rT41item((T41*)a1,_i));
  1859. XrT34put_character((C)->_out_c,'\12');
  1860. _i=(_i)+(1);
  1861. }
  1862. XrT34put_string((C)->_out_c,(T0 *)ms554);
  1863. }
  1864. void rT40include(T40 *C,T0* a1){
  1865. /*IF*/if (!((C)->_included)) {
  1866. {T41 *n=((T41*)new(41));
  1867. rT41make(n,1,5);
  1868. C->_included=(T0 *)n;}
  1869. rT41clear((T41*)(C)->_included);
  1870. }
  1871. /*FI*//*IF*/if (!(rT41has((T41*)(C)->_included,a1))) {
  1872. /*IF*/if (rT7is_equal((T7*)(T0 *)ms537,a1)) {
  1873. rT40add_c_library(C,(T0 *)ms538);
  1874. }
  1875. /*FI*/rT41add_last((T41*)(C)->_included,a1);
  1876. XrT34put_string((C)->_out_h,(T0 *)ms539);
  1877. XrT34put_string((C)->_out_h,a1);
  1878. XrT34put_string((C)->_out_h,(T0 *)ms540);
  1879. }
  1880. /*FI*/}
  1881. void rT40put_character(T40 *C,char a1){
  1882. XrT34put_character((C)->_current_out,a1);
  1883. }
  1884. void rT40conversion_name(/*C*/int a1){
  1885. rT7append((T7*)oRBC40tmp_string,(T0 *)ms1024);
  1886. rT2append_in(a1,oRBC40tmp_string);
  1887. }
  1888. void rT40expanded_attributes(T40 *C,T0* a1,T0 * a2,T0 * a3){
  1889. int _i=0;
  1890. T0 * _at=NULL;
  1891. T0 * _rf=NULL;
  1892. T0 * _a=NULL;
  1893. T0* _wa=NULL;
  1894. _wa=rT260writable_attributes((T260*)XrT58run_class(a3));
  1895. /*IF*/if (((int)_wa)) {
  1896. _i=XrT265count(_wa);
  1897. while (!((_i)==(0))) {
  1898. _a=XrT265item(_wa,_i);
  1899. _at=XrT58run_type(XrT261result_type(_a));
  1900. /*IF*/if (XrT58is_expanded(_at)) {
  1901. /*IF*/if (!(XrT58fast_mapping_c(_at))) {
  1902. _rf=rT50expanded_initializer((T50*)XrT58base_class(_at),_at);
  1903. /*IF*/if (((int)_rf)) {
  1904. rT40stack_push(C,1009);
  1905. XrT265put(oRBC40stack_rf,_a,(C)->_top);
  1906. rT41put((T41*)oRBC40stack_string,a1,(C)->_top);
  1907. XrT81put(oRBC40stack_target,a2,(C)->_top);
  1908. XrT261mapping_c(_rf);
  1909. rT40pop(C);
  1910. }
  1911. /*FI*/}
  1912. /*FI*/}
  1913. /*FI*/_i=(_i)-(1);
  1914. }
  1915. }
  1916. /*FI*/}
  1917. void rT40put_error1(T40 *C,T0* a1,T0 * a2){
  1918. rT40put_string(C,(T0 *)ms1300);
  1919. rT40put_string_c(C,a1);
  1920. rT40put_character(C,'\54');
  1921. rT40put_position(C,a2);
  1922. rT40put_string(C,(T0 *)ms1301);
  1923. }
  1924. void rT40put_extern4(T40 *C,T0* a1,T0* a2,int a3){
  1925. rT40incr_elt_c_count(C,1);
  1926. XrT34put_string((C)->_out_c,a1);
  1927. XrT34put_character((C)->_out_c,'\40');
  1928. XrT34put_string((C)->_out_c,a2);
  1929. XrT34put_character((C)->_out_c,'\133');
  1930. XrT34put_integer((C)->_out_c,a3);
  1931. XrT34put_string((C)->_out_c,(T0 *)ms1046);
  1932. XrT34put_string((C)->_out_h,(T0 *)ms1047);
  1933. XrT34put_string((C)->_out_h,a1);
  1934. XrT34put_character((C)->_out_h,'\40');
  1935. XrT34put_string((C)->_out_h,a2);
  1936. XrT34put_string((C)->_out_h,(T0 *)ms1048);
  1937. }
  1938. void rT40put_extern1(T40 *C,T0* a1){
  1939. rT40incr_elt_c_count(C,1);
  1940. XrT34put_string((C)->_out_h,(T0 *)ms601);
  1941. XrT34put_string((C)->_out_h,a1);
  1942. XrT34put_string((C)->_out_h,(T0 *)ms602);
  1943. XrT34put_string((C)->_out_c,a1);
  1944. XrT34put_string((C)->_out_c,(T0 *)ms603);
  1945. }
  1946. void rT40put_extern3(T40 *C,T0* a1,T0* a2){
  1947. rT40incr_elt_c_count(C,1);
  1948. XrT34put_string((C)->_out_c,(T0 *)ms584);
  1949. XrT34put_string((C)->_out_c,a1);
  1950. XrT34put_string((C)->_out_c,(T0 *)ms585);
  1951. XrT34put_string((C)->_out_c,a2);
  1952. XrT34put_string((C)->_out_c,(T0 *)ms586);
  1953. XrT34put_string((C)->_out_h,(T0 *)ms587);
  1954. XrT34put_string((C)->_out_h,a1);
  1955. XrT34put_string((C)->_out_h,(T0 *)ms588);
  1956. }
  1957. void rT40put_extern2(T40 *C,T0* a1,char a2){
  1958. rT40incr_elt_c_count(C,1);
  1959. XrT34put_string((C)->_out_h,(T0 *)ms691);
  1960. XrT34put_string((C)->_out_h,a1);
  1961. XrT34put_string((C)->_out_h,(T0 *)ms692);
  1962. XrT34put_string((C)->_out_c,a1);
  1963. XrT34put_character((C)->_out_c,'\75');
  1964. XrT34put_character((C)->_out_c,a2);
  1965. XrT34put_string((C)->_out_c,(T0 *)ms693);
  1966. }
  1967. int rT40next_e_old_id(T40 *C){
  1968. int R=0;
  1969. C->_last_e_old_id=((C)->_last_e_old_id)+(1);
  1970. R=(C)->_last_e_old_id;
  1971. return R;
  1972. }
  1973. void rT40update_switch_cltn(T40 *C,T0 * a1,int a2,T0 * a3,T0* a4){
  1974. int _i=0;
  1975. T0* _st=NULL;
  1976. T0 * _switch=NULL;
  1977. /*IF*/if (!((C)->_switch_cltn)) {
  1978. {T270 *n=((T270*)new(270));
  1979. rT270make(n,a2,a2);
  1980. C->_switch_cltn=(T0 *)n;}
  1981. }
  1982.  else if (!(rT270valid_index((T270*)(C)->_switch_cltn,a2))) {
  1983. rT270force((T270*)(C)->_switch_cltn,NULL,a2);
  1984. }
  1985. /*FI*/_st=rT270item((T270*)(C)->_switch_cltn,a2);
  1986. /*IF*/if (!(_st)) {
  1987. {T269 *n=((T269*)new(269));
  1988. rT269make(n,a1,a3,a4);
  1989. _switch=(T0 *)n;}
  1990. rT270put((T270*)(C)->_switch_cltn,ma(271,0,1,_switch),a2);
  1991. }
  1992. else {
  1993. _i=((T271*)_st)->_lower;
  1994. while (!(((_i)>(((T271*)_st)->_upper))||(XrT67is_equal(((T269*)rT271item((T271*)_st,_i))->_name,a3)))) {
  1995. _i=(_i)+(1);
  1996. }
  1997. /*IF*/if ((_i)>(((T271*)_st)->_upper)) {
  1998. {T269 *n=((T269*)new(269));
  1999. rT269make(n,a1,a3,a4);
  2000. _switch=(T0 *)n;}
  2001. rT271add_last((T271*)_st,_switch);
  2002. }
  2003. /*FI*/}
  2004. /*FI*/}
  2005. void rT40push_local_expanded(T40 *C,T0* a1){
  2006. rT40stack_push(C,1008);
  2007. rT41put((T41*)oRBC40stack_string,a1,(C)->_top);
  2008. C->_direct_call_count=((C)->_direct_call_count)+(1);
  2009. }
  2010. void rT40inspect_decr(T40 *C){
  2011. C->_inspect_level=((C)->_inspect_level)-(1);
  2012. }
  2013. void rT40put_goto_label(T40 *C,int a1){
  2014. rT40put_string(C,(T0 *)ms1298);
  2015. rT40put_integer(C,a1);
  2016. rT40put_string(C,(T0 *)ms1299);
  2017. }
  2018. void rT40put_goto(T40 *C,int a1){
  2019. rT40put_string(C,(T0 *)ms1291);
  2020. rT40put_integer(C,a1);
  2021. rT40put_string(C,(T0 *)ms1292);
  2022. }
  2023. void rT40inspect_incr(T40 *C){
  2024. C->_inspect_level=((C)->_inspect_level)+(1);
  2025. }
  2026. void rT40put_generator(T40 *C,T0 * a1){
  2027. C->_generator_used=1;
  2028. rT40put_string(C,(T0 *)ms1179);
  2029. /*IF*/if (XrT58is_reference(a1)) {
  2030. rT40put_target(C);
  2031. rT40put_string(C,(T0 *)ms1180);
  2032. }
  2033. else {
  2034. rT40put_target(C);
  2035. rT40put_character(C,'\54');
  2036. rT40put_integer(C,XrT58id(a1));
  2037. rT40put_string(C,(T0 *)ms1181);
  2038. }
  2039. /*FI*/rT40put_string(C,(T0 *)ms1182);
  2040. }
  2041. void rT40put_generating_type(T40 *C,T0 * a1){
  2042. C->_generator_used=1;
  2043. C->_generating_type_used=1;
  2044. rT40put_string(C,(T0 *)ms1163);
  2045. /*IF*/if (XrT58is_reference(a1)) {
  2046. rT40put_target(C);
  2047. rT40put_string(C,(T0 *)ms1176);
  2048. }
  2049. else {
  2050. rT40put_target(C);
  2051. rT40put_character(C,'\54');
  2052. rT40put_integer(C,XrT58id(a1));
  2053. rT40put_character(C,'\51');
  2054. }
  2055. /*FI*/rT40put_string(C,(T0 *)ms1177);
  2056. }
  2057. void rT40use_switch(T40 *C,T0 * a1,T0* a2,T0 * a3,T0 * a4){
  2058. T0 * _name=NULL;
  2059. int _switch_id=0;
  2060. T0 * _target_type=NULL;
  2061. T0* _n=NULL;
  2062. _n=XrT67to_string(XrT261name(a1));
  2063. /*IF*/if (rT7is_equal((T7*)(T0 *)ms1162,_n)) {
  2064. rT40push_direct(C,a1,a3,a4);
  2065. rT40put_generating_type(C,XrT261current_type(a1));
  2066. rT40pop(C);
  2067. }
  2068.  else if (rT7is_equal((T7*)(T0 *)ms1178,_n)) {
  2069. rT40push_direct(C,a1,a3,a4);
  2070. rT40put_generator(C,XrT261current_type(a1));
  2071. rT40pop(C);
  2072. }
  2073. else {
  2074. C->_switch_count=((C)->_switch_count)+(1);
  2075. _target_type=XrT58run_type(XrT68result_type(a3));
  2076. _switch_id=XrT58id(_target_type);
  2077. _name=XrT261name(a1);
  2078. rT40update_switch_cltn(C,_target_type,_switch_id,_name,a2);
  2079. XrT34put_string((C)->_out_c,(T0 *)ms1183);
  2080. XrT34put_integer((C)->_out_c,_switch_id);
  2081. XrT67mapping_c(_name);
  2082. XrT34put_character((C)->_out_c,'\50');
  2083. /*IF*/if (rT44no_check((T44*)oRBC27eiffel_run_control)) {
  2084. rT40put_position(C,XrT68start_position(a3));
  2085. XrT34put_character((C)->_out_c,'\54');
  2086. }
  2087. /*FI*/XrT68compile_to_c(a3);
  2088. /*IF*/if (((int)a4)) {
  2089. XrT34put_character((C)->_out_c,'\54');
  2090. rT170compile_to_c((T170*)a4,XrT261arguments(a1));
  2091. }
  2092. /*FI*/rT40put_character(C,'\51');
  2093. /*IF*/if (!(XrT261result_type(a1))) {
  2094. rT40put_semicolon(C);
  2095. }
  2096. /*FI*/}
  2097. /*FI*/}
  2098. void rT40push_check(T40 *C,T0 * a1,T0 * a2,T0 * a3){
  2099. rT40stack_push(C,1005);
  2100. XrT265put(oRBC40stack_rf,a1,(C)->_top);
  2101. XrT81put(oRBC40stack_target,a2,(C)->_top);
  2102. rT272put((T272*)oRBC40stack_args,a3,(C)->_top);
  2103. }
  2104. void rT40push_void(T40 *C,T0 * a1,T0 * a2,T0 * a3){
  2105. rT40stack_push(C,1003);
  2106. XrT265put(oRBC40stack_rf,a1,(C)->_top);
  2107. XrT81put(oRBC40stack_target,a2,(C)->_top);
  2108. rT272put((T272*)oRBC40stack_args,a3,(C)->_top);
  2109. C->_sure_void_count=((C)->_sure_void_count)+(1);
  2110. }
  2111. void rT40push_direct(T40 *C,T0 * a1,T0 * a2,T0 * a3){
  2112. rT40stack_push(C,1004);
  2113. XrT265put(oRBC40stack_rf,a1,(C)->_top);
  2114. XrT81put(oRBC40stack_target,a2,(C)->_top);
  2115. rT272put((T272*)oRBC40stack_args,a3,(C)->_top);
  2116. C->_direct_call_count=((C)->_direct_call_count)+(1);
  2117. }
  2118. void rT40push_new(T40 *C,T0 * a1,T0 * a2){
  2119. rT40stack_push(C,1007);
  2120. XrT265put(oRBC40stack_rf,a1,(C)->_top);
  2121. rT272put((T272*)oRBC40stack_args,a2,(C)->_top);
  2122. C->_direct_call_count=((C)->_direct_call_count)+(1);
  2123. }
  2124. void rT40push_switch(T40 *C,T0 * a1,T0 * a2){
  2125. rT40stack_push(C,1006);
  2126. XrT265put(oRBC40stack_rf,a1,(C)->_top);
  2127. rT271put((T271*)oRBC40stack_switch,a2,(C)->_top);
  2128. }
  2129. void rT40put_inspect(T40 *C){
  2130. rT40put_string(C,(T0 *)ms1286);
  2131. rT40put_integer(C,(C)->_inspect_level);
  2132. }
  2133. void rT40put_is_expanded_type(T40 *C,T0 * a1){
  2134. /*IF*/if (XrT58is_expanded(a1)) {
  2135. rT40put_character(C,'1');
  2136. }
  2137. else {
  2138. rT40put_character(C,'0');
  2139. }
  2140. /*FI*/}
  2141. void rT40put_integer(T40 *C,int a1){
  2142. XrT34put_integer((C)->_current_out,a1);
  2143. }
  2144. void rT40put_in_c_string(T40 *C,char a1){
  2145. /*IF*/if ((a1)==('\12')) {
  2146. rT40put_string(C,(T0 *)ms828);
  2147. }
  2148.  else if ((a1)==('\134')) {
  2149. rT40put_string(C,(T0 *)ms829);
  2150. }
  2151.  else if ((a1)==('\42')) {
  2152. rT40put_string(C,(T0 *)ms830);
  2153. }
  2154.  else if ((a1)==('\47')) {
  2155. rT40put_string(C,(T0 *)ms831);
  2156. }
  2157.  else if (((((unsigned char)a1))<(32))||((122)<(((unsigned char)a1)))) {
  2158. rT40put_character(C,'\134');
  2159. rT40put_integer(C,rT2to_octal(((unsigned char)a1)));
  2160. rT40put_string(C,(T0 *)ms835);
  2161. }
  2162. else {
  2163. rT40put_character(C,a1);
  2164. }
  2165. /*FI*/}
  2166. int ofBC27rescue_evobt=0;
  2167. void rT40rescue_evobt(/*C*/T0 * a1){
  2168. if (ofBC27rescue_evobt==0){
  2169. ofBC27rescue_evobt=1;
  2170. /*UT*/(T45*)oRBC27eh;
  2171. rT45add_type(a1,(T0 *)ms1172);
  2172. /*UT*/(T45*)oRBC27eh;
  2173. rT45append((T0 *)ms1173);
  2174. rT45print_as_warning((T45*)oRBC27eh);
  2175. rT260set_at_run_time((T260*)XrT58run_class(a1));
  2176. }
  2177. }
  2178. void rT40rs_pop_position(T40 *C){
  2179. /*IF*/if (rT44no_check((T44*)oRBC27eiffel_run_control)) {
  2180. rT40put_string(C,(T0 *)ms1269);
  2181. }
  2182. /*FI*/}
  2183. void rT40tmp_string_object_library(T40 *C){
  2184. int _i=0;
  2185. /*IF*/if (((int)(C)->_c_object_list)) {
  2186. _i=((T41*)(C)->_c_object_list)->_lower;
  2187. while (!((_i)>(((T41*)(C)->_c_object_list)->_upper))) {
  2188. rT7extend((T7*)oRBC40tmp_string,'\40');
  2189. rT7append((T7*)oRBC40tmp_string,rT41item((T41*)(C)->_c_object_list,_i));
  2190. _i=(_i)+(1);
  2191. }
  2192. }
  2193. /*FI*//*IF*/if (((int)(C)->_c_library_list)) {
  2194. _i=((T41*)(C)->_c_library_list)->_lower;
  2195. while (!((_i)>(((T41*)(C)->_c_library_list)->_upper))) {
  2196. rT7extend((T7*)oRBC40tmp_string,'\40');
  2197. rT7append((T7*)oRBC40tmp_string,rT41item((T41*)(C)->_c_library_list,_i));
  2198. _i=(_i)+(1);
  2199. }
  2200. }
  2201. /*FI*/}
  2202. void rT40tmp_string_output(T40 *C){
  2203. /*IF*/if (((int)(C)->_output_name)) {
  2204. rT7append((T7*)oRBC40tmp_string,(T0 *)ms1102);
  2205. rT7append((T7*)oRBC40tmp_string,(C)->_output_name);
  2206. rT7extend((T7*)oRBC40tmp_string,'\40');
  2207. }
  2208. /*FI*/}
  2209. void rT40tmp_string_gcc(T40 *C){
  2210. /*(IRF3*/(((T7*)oRBC40tmp_string)->_count)=(0);
  2211. /*)*//*IF*/if ((C)->_cc_used) {
  2212. rT7append((T7*)oRBC40tmp_string,(T0 *)ms1098);
  2213. }
  2214. else {
  2215. rT7append((T7*)oRBC40tmp_string,(T0 *)ms1099);
  2216. /*IF*/if ((rT40directory_separator(C))!=('\134')) {
  2217. rT7append((T7*)oRBC40tmp_string,(T0 *)ms1100);
  2218. }
  2219. /*FI*/}
  2220. /*FI*//*IF*/if (((int)(C)->_c_compiler_options)) {
  2221. rT7append((T7*)oRBC40tmp_string,(C)->_c_compiler_options);
  2222. }
  2223. /*FI*/}
  2224. T0*oRBC40tmp_string;
  2225. void rT40put_local_name(T40 *C,T0* a1){
  2226. XrT34put_character((C)->_out_c,'\137');
  2227. XrT34put_string((C)->_out_c,a1);
  2228. }
  2229. void rT40put_lines(T40 *C,T0* a1){
  2230. int _i=0;
  2231. _i=((T41*)a1)->_lower;
  2232. while (!((_i)>(((T41*)a1)->_upper))) {
  2233. XrT34put_string((C)->_current_out,rT41item((T41*)a1,_i));
  2234. XrT34put_character((C)->_current_out,'\12');
  2235. _i=(_i)+(1);
  2236. }
  2237. }
  2238. void rT40put_macro_af(T40 *C,T0* a1){
  2239. XrT34put_string((C)->_out_h,(T0 *)ms700);
  2240. XrT34put_string((C)->_out_h,a1);
  2241. XrT34put_character((C)->_out_h,'\12');
  2242. }
  2243. void rT40put_new(T40 *C,T0 * a1){
  2244. rT40put_new_id(C,XrT58id(XrT58run_type(a1)));
  2245. }
  2246. void rT40put_new_id(T40 *C,int a1){
  2247. rT40put_string(C,(T0 *)ms814);
  2248. rT40put_integer(C,a1);
  2249. rT40put_string(C,(T0 *)ms815);
  2250. rT40put_integer(C,a1);
  2251. rT40put_string(C,(T0 *)ms816);
  2252. }
  2253. void rT40rs_unlink(T40 *C){
  2254. rT40put_string(C,(T0 *)ms1388);
  2255. }
  2256. void rT40put_position(T40 *C,T0 * a1){
  2257. /*IF*/if (!(a1)) {
  2258. rT40put_string(C,(T0 *)ms779);
  2259. }
  2260. else {
  2261. rT40put_integer(C,((T46*)a1)->_line);
  2262. rT40put_character(C,'\54');
  2263. rT40put_integer(C,((T46*)a1)->_column);
  2264. rT40put_character(C,'\54');
  2265. rT40put_integer(C,((T50*)rT46base_class((T46*)a1))->_id);
  2266. }
  2267. /*FI*/}
  2268. void rT40rs_push_local(T40 *C,T0* a1,T0 * a2){
  2269. /*(IRF3*/(((T7*)oRBC40tmp_string)->_count)=(0);
  2270. /*)*/rT7extend((T7*)oRBC40tmp_string,'\137');
  2271. rT7append((T7*)oRBC40tmp_string,a1);
  2272. rT40rs_push(C,a1,oRBC40tmp_string,a2);
  2273. }
  2274. void rT40rs_push_result(T40 *C,T0 * a1){
  2275. rT40rs_push(C,(T0 *)ms293,(T0 *)ms1378,a1);
  2276. }
  2277.