home *** CD-ROM | disk | FTP | other *** search
/ Amiga ACS 1998 #4 / amigaacscoverdisc1998-041998.iso / utilities / shareware / dev / ppcsmalleiffel / source.lha / bin_c / compile_to_jvm32.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  12.4 KB  |  474 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "compile_to_jvm.h"
  9. T0* r491written_mark(void){
  10. T0* R=NULL;
  11. R=((T0*)ms25_473);
  12. return R;
  13. }
  14. /*No:TYPE_STRING.is_run_type*/
  15. T0* r491to_runnable(T491* C,T0* a1){
  16. T0* R=NULL;
  17. R=(T0*)C;
  18. r491check_type(C);
  19. return R;
  20. }
  21. /*No:TYPE_STRING.is_formal_generic*/
  22. T0* r491generic_list(T491* C){
  23. T0* R=NULL;
  24. r491fatal_error_generic_list(C);
  25. return R;
  26. }
  27. /*No:TYPE_STRING.is_real*/
  28. void r491standard_jvm_check_class_invariant(T491* C){
  29. /*IF*/if (r590invariant_check(((T590*)(oBC364run_control)))) {
  30. r355jvm_check_class_invariant(((T355*)(r491run_class(C))));
  31. }
  32. /*FI*/}
  33. /*No:TYPE_STRING.is_bit*/
  34. void r491fatal_error_generic_list(T491* C){
  35. r683add_type((T0*)C,((T0*)ms12_291));
  36. r683print_as_fatal_error(((T683*)(oBC364eh)));
  37. }
  38. /*No:TYPE_STRING.jvm_check_class_invariant*/
  39. T0* r491jvm_root_descriptor(void){
  40. if (fBC364jvm_root_descriptor==0){
  41. T0* R=NULL;
  42. fBC364jvm_root_descriptor=1;
  43. {T7*n=malloc(sizeof(*n));
  44. *n=M7;
  45. r7make(n,12);
  46. R=(T0*)n;
  47. }
  48. r7extend(((T7*)R),'L');
  49. r7append(((T7*)R),r491jvm_root_class());
  50. r7extend(((T7*)R),'\73');
  51. oBC364jvm_root_descriptor=R;}
  52. return oBC364jvm_root_descriptor;}
  53. /*No:TYPE_STRING.jvm_xaload*/
  54. T0* r491smallest_ancestor(T491* C,T0* a1){
  55. T0* R=NULL;
  56. T0* _rto_bc=NULL;
  57. T0* _rto=NULL;
  58. _rto=X291run_type(a1);
  59. /*IF*/if (X291is_string(_rto)) {
  60. R=(T0*)C;
  61. }
  62.  else if (X291is_none(_rto)) {
  63. R=(T0*)C;
  64. }
  65.  else if (X291is_expanded(_rto)) {
  66. R=X291smallest_ancestor(_rto,(T0*)C);
  67. }
  68. else {
  69. _rto_bc=X291base_class(_rto);
  70. /*IF*/if (r605is_subclass_of(((T605*)_rto_bc),r491base_class(C))) {
  71. R=(T0*)C;
  72. }
  73. else {
  74. R=X291smallest_ancestor(_rto,(T0*)C);
  75. }
  76. /*FI*/}
  77. /*FI*/return R;
  78. }
  79. /*No:TYPE_STRING.is_boolean*/
  80. /*No:TYPE_STRING.us_count*/
  81. /*No:TYPE_STRING.is_double*/
  82. int r491jvm_stack_space(void){
  83. int R=0;
  84. /*IF*//*AF*//*AE*/
  85. R=1;
  86. /*FI*/return R;
  87. }
  88. /*No:TYPE_STRING.us_storage*/
  89. T0* r491run_class(T491* C){
  90. T0* R=NULL;
  91. R=r604run_class((T0*)C);
  92. return R;
  93. }
  94. T0* r491run_time_mark(void){
  95. T0* R=NULL;
  96. R=((T0*)ms25_473);
  97. return R;
  98. }
  99. int r491is_a_in(T491* C,T0* a1,T0* a2){
  100. int R=0;
  101. T0* _ct=NULL;
  102. T0* _t2=NULL;
  103. T0* _t1=NULL;
  104. /*IF*/if ((r491written_mark())==((void*)(X291written_mark(a1)))) {
  105. R=1;
  106. }
  107. else {
  108. _ct=(((T355*)((T355*)a2)))->_current_type/*0*/;
  109. _t1=r491to_runnable(C,_ct);
  110. _t2=X291to_runnable(a1,_ct);
  111. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  112. R=1;
  113. }
  114. else {
  115. R=X291is_a(_t1,_t2);
  116. }
  117. /*FI*/}
  118. /*FI*/return R;
  119. }
  120. T0* r491look_up_for(T491* C,T0* a1,T0* a2){
  121. T0* R=NULL;
  122. R=r605look_up_for(((T605*)(r491base_class(C))),a1,a2);
  123. return R;
  124. }
  125. /*No:TYPE_STRING.jvm_convert_to*/
  126. /*No:TYPE_STRING.expanded_initializer*/
  127. /*No:TYPE_STRING.fz_jvm_root*/
  128. /*No:TYPE_STRING.jvm_if_x_ne*/
  129. /*No:TYPE_STRING.fz_dot*/
  130. /*No:TYPE_STRING.is_generic*/
  131. /*No:TYPE_STRING.jvm_write_local*/
  132. void r491jvm_initialize_local(int a1){
  133. /*[IRF3.4opcode_aconst_null*/r256opcode(((T256*)(oBC364code_attribute)),1,1);
  134. /*]*/
  135. /*[IRF3.6jvm_write_local*/{int b1=a1;
  136. r256opcode_astore(((T256*)(oBC364code_attribute)),b1);
  137. }/*]*/
  138. }
  139. /*No:TYPE_STRING.used_as_reference*/
  140. /*No:TYPE_STRING.is_reference*/
  141. void r491error(T0* a1,T0* a2){
  142. r683add_position(a1);
  143. r683error(((T683*)(oBC364eh)),a2);
  144. }
  145. T0* r491base_class(T491* C){
  146. T0* R=NULL;
  147. T0* _bcn=NULL;
  148. _bcn=(((T491*)C))->_base_class_name/*4*/;
  149. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  150. R=r451base_class(((T451*)_bcn));
  151. }
  152. else {
  153. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  154. r7append(((T7*)(oBC683explanation)),b1);
  155. }/*]*/
  156. r683add_type((T0*)C,((T0*)ms67_470));
  157. r683print_as_fatal_error(((T683*)(oBC364eh)));
  158. }
  159. /*FI*/return R;
  160. }
  161. /*No:TYPE_STRING.jvm_xastore*/
  162. /*No:TYPE_STRING.is_any*/
  163. /*No:TYPE_STRING.jvm_method_flags*/
  164. /*No:TYPE_STRING.base_class_name*/
  165. /*No:TYPE_STRING.jvm_push_local*/
  166. /*No:TYPE_STRING.is_expanded*/
  167. /*No:TYPE_STRING.is_basic_eiffel_expanded*/
  168. /*No:TYPE_STRING.is_none*/
  169. /*No:TYPE_STRING.is_integer*/
  170. /*No:TMP_FEATURE.arguments*/
  171. T0* r505n(void){
  172. T0* R=NULL;
  173. {T953*n=malloc(sizeof(*n));
  174. *n=M953;
  175. r953make(n,r855twin(((T855*)(oBC505names))));
  176. R=(T0*)n;
  177. }
  178. return R;
  179. }
  180. T0* r505to_cst_att_integer(T505* C,T0* a1){
  181. T0* R=NULL;
  182. /*IF*/if (((((T505*)C))->_type/*4*/)!=((void*)(NULL))) {
  183. /*IF*/if (X291is_integer((((T505*)C))->_type/*4*/)) {
  184. {T689*n=malloc(sizeof(*n));
  185. *n=M689;
  186. r689make(n,r505n(),(((T505*)C))->_type/*4*/,a1);
  187. R=(T0*)n;
  188. }
  189. }
  190.  else if (X291is_real((((T505*)C))->_type/*4*/)) {
  191. {T835*n=malloc(sizeof(*n));
  192. *n=M835;
  193. r835make(n,r505n(),(((T505*)C))->_type/*4*/,r342to_real_constant(((T342*)a1)));
  194. R=(T0*)n;
  195. }
  196. }
  197.  else if (X291is_double((((T505*)C))->_type/*4*/)) {
  198. {T118*n=malloc(sizeof(*n));
  199. *n=M118;
  200. r118make(n,r505n(),(((T505*)C))->_type/*4*/,r342to_real_constant(((T342*)a1)));
  201. R=(T0*)n;
  202. }
  203. }
  204. else {
  205. r505error(X776start_position(r855first(((T855*)(oBC505names)))),((T0*)ms6_505));
  206. }
  207. /*FI*/}
  208. else {
  209. r505error(X776start_position(r855first(((T855*)(oBC505names)))),((T0*)ms7_505));
  210. }
  211. /*FI*/return R;
  212. }
  213. /*No:TMP_FEATURE.add_synonym*/
  214. /*No:TMP_FEATURE.set_type*/
  215. T0* r505to_writable_attribute(T505* C){
  216. T0* R=NULL;
  217. /*IF*/if (((((T505*)C))->_type/*4*/)==((void*)(NULL))) {
  218. r505error(X776start_position(r855first(((T855*)(oBC505names)))),((T0*)ms1_505));
  219. }
  220.  else if (((((T505*)C))->_arguments/*0*/)!=((void*)(NULL))) {
  221. r505error(r818current_position(((T818*)(oBC364eiffel_parser))),((T0*)ms2_505));
  222. }
  223. /*FI*/{T106*n=malloc(sizeof(*n));
  224. *n=M106;
  225. r106make(n,r505n(),(((T505*)C))->_type/*4*/);
  226. R=(T0*)n;
  227. }
  228. return R;
  229. }
  230. T0* r505to_cst_att_boolean(T505* C,T0* a1){
  231. T0* R=NULL;
  232. /*IF*/if ((((((T505*)C))->_type/*4*/)!=((void*)(NULL)))&&(X291is_boolean((((T505*)C))->_type/*4*/))) {
  233. {T580*n=malloc(sizeof(*n));
  234. *n=M580;
  235. r580make(n,r505n(),(((T505*)C))->_type/*4*/,a1);
  236. R=(T0*)n;
  237. }
  238. }
  239. else {
  240. r505error(X776start_position(r855first(((T855*)(oBC505names)))),((T0*)ms3_505));
  241. }
  242. /*FI*/return R;
  243. }
  244. /*No:TMP_FEATURE.type*/
  245. /*No:TMP_FEATURE.local_vars*/
  246. /*No:TMP_FEATURE.set_header_comment*/
  247. void r505set_require(T505* C,T0* a1,T0* a2,T0* a3){
  248. /*IF*/if (((a2)!=((void*)(NULL)))||((a3)!=((void*)(NULL)))) {
  249. {T343*n=malloc(sizeof(*n));
  250. *n=M343;
  251. r343make(n,a1,a2,a3);
  252. C->_require_assertion=(T0*)n;
  253. }
  254. }
  255. /*FI*/}
  256. /*No:TMP_FEATURE.set_local_vars*/
  257. T0* r505to_deferred_routine(T505* C){
  258. T0* R=NULL;
  259. /*IF*/if (((((T505*)C))->_type/*4*/)==((void*)(NULL))) {
  260. {T853*n=malloc(sizeof(*n));
  261. *n=M853;
  262. /*[IRF3.6make*/{T853* C1=n;
  263. T0* b1=r505n();
  264. T0* b2=(((T505*)C))->_arguments/*0*/;
  265. T0* b3=(((T505*)C))->_obsolete_mark/*12*/;
  266. T0* b4=(((T505*)C))->_header_comment/*8*/;
  267. T0* b5=(((T505*)C))->_require_assertion/*16*/;
  268. r853make_routine(C1,b1,b2,b3,b4,b5);
  269. }/*]*/
  270. R=(T0*)n;
  271. }
  272. }
  273. else {
  274. {T649*n=malloc(sizeof(*n));
  275. *n=M649;
  276. r649make(n,r505n(),(((T505*)C))->_arguments/*0*/,(((T505*)C))->_type/*4*/,(((T505*)C))->_obsolete_mark/*12*/,(((T505*)C))->_header_comment/*8*/,(((T505*)C))->_require_assertion/*16*/);
  277. R=(T0*)n;
  278. }
  279. }
  280. /*FI*/return R;
  281. }
  282. T0* r505to_procedure_or_function(T505* C){
  283. T0* R=NULL;
  284. /*IF*/if (((((T505*)C))->_type/*4*/)==((void*)(NULL))) {
  285. {T297*n=malloc(sizeof(*n));
  286. *n=M297;
  287. r297make(n,r505n(),(((T505*)C))->_arguments/*0*/,(((T505*)C))->_obsolete_mark/*12*/,(((T505*)C))->_header_comment/*8*/,(((T505*)C))->_require_assertion/*16*/,(((T505*)C))->_local_vars/*20*/,(((T505*)C))->_routine_body/*24*/);
  288. R=(T0*)n;
  289. }
  290. }
  291. else {
  292. {T696*n=malloc(sizeof(*n));
  293. *n=M696;
  294. r696make(n,r505n(),(((T505*)C))->_arguments/*0*/,(((T505*)C))->_type/*4*/,(((T505*)C))->_obsolete_mark/*12*/,(((T505*)C))->_header_comment/*8*/,(((T505*)C))->_require_assertion/*16*/,(((T505*)C))->_local_vars/*20*/,(((T505*)C))->_routine_body/*24*/);
  295. R=(T0*)n;
  296. }
  297. }
  298. /*FI*/return R;
  299. }
  300. /*No:TMP_FEATURE.obsolete_mark*/
  301. /*No:TMP_FEATURE.require_assertion*/
  302. T0*oBC505names=NULL;
  303. T0* r505to_cst_att_real(T505* C,T0* a1){
  304. T0* R=NULL;
  305. /*IF*/if (((((T505*)C))->_type/*4*/)!=((void*)(NULL))) {
  306. /*IF*/if (X291is_real((((T505*)C))->_type/*4*/)) {
  307. {T835*n=malloc(sizeof(*n));
  308. *n=M835;
  309. r835make(n,r505n(),(((T505*)C))->_type/*4*/,a1);
  310. R=(T0*)n;
  311. }
  312. }
  313.  else if (X291is_double((((T505*)C))->_type/*4*/)) {
  314. {T118*n=malloc(sizeof(*n));
  315. *n=M118;
  316. r118make(n,r505n(),(((T505*)C))->_type/*4*/,a1);
  317. R=(T0*)n;
  318. }
  319. }
  320. else {
  321. r683add_position((((T936*)((T936*)a1)))->_start_position/*12*/);
  322. r683add_position(X776start_position(r855first(((T855*)(oBC505names)))));
  323. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms8_505);
  324. r683fatal_error(((T683*)(oBC364eh)),b1);
  325. }/*]*/
  326. }
  327. /*FI*/}
  328. else {
  329. r505error(X776start_position(r855first(((T855*)(oBC505names)))),((T0*)ms9_505));
  330. }
  331. /*FI*/return R;
  332. }
  333. /*No:TMP_FEATURE.set_arguments*/
  334. T0* r505to_cst_att_string(T505* C,T0* a1){
  335. T0* R=NULL;
  336. /*IF*/if ((((((T505*)C))->_type/*4*/)!=((void*)(NULL)))&&(X291is_string((((T505*)C))->_type/*4*/))) {
  337. {T380*n=malloc(sizeof(*n));
  338. *n=M380;
  339. r380make(n,r505n(),(((T505*)C))->_type/*4*/,a1);
  340. R=(T0*)n;
  341. }
  342. }
  343. else {
  344. r505error(X776start_position(r855first(((T855*)(oBC505names)))),((T0*)ms10_505));
  345. }
  346. /*FI*/return R;
  347. }
  348. /*No:TMP_FEATURE.header_comment*/
  349. /*No:TMP_FEATURE.set_routine_body*/
  350. /*No:TMP_FEATURE.routine_body*/
  351. T0* r505to_external_routine(T505* C,T0* a1,T0* a2){
  352. T0* R=NULL;
  353. /*IF*/if (((((T505*)C))->_type/*4*/)==((void*)(NULL))) {
  354. {T883*n=malloc(sizeof(*n));
  355. *n=M883;
  356. r883make(n,r505n(),(((T505*)C))->_arguments/*0*/,(((T505*)C))->_obsolete_mark/*12*/,(((T505*)C))->_header_comment/*8*/,(((T505*)C))->_require_assertion/*16*/,a1,a2);
  357. R=(T0*)n;
  358. }
  359. }
  360. else {
  361. {T679*n=malloc(sizeof(*n));
  362. *n=M679;
  363. r679make(n,r505n(),(((T505*)C))->_arguments/*0*/,(((T505*)C))->_type/*4*/,(((T505*)C))->_obsolete_mark/*12*/,(((T505*)C))->_header_comment/*8*/,(((T505*)C))->_require_assertion/*16*/,a1,a2);
  364. R=(T0*)n;
  365. }
  366. }
  367. /*FI*/return R;
  368. }
  369. T0* r505to_cst_att_unique(T505* C){
  370. T0* R=NULL;
  371. T0* _sp=NULL;
  372. /*IF*/if (((((T505*)C))->_type/*4*/)==((void*)(NULL))) {
  373. _sp=X776start_position(r855first(((T855*)(oBC505names))));
  374. r505error(_sp,((T0*)ms11_505));
  375. }
  376. /*FI*//*IF*/if (!(X291is_integer((((T505*)C))->_type/*4*/))) {
  377. r505error(X291start_position((((T505*)C))->_type/*4*/),((T0*)ms12_505));
  378. }
  379. /*FI*/{T398*n=malloc(sizeof(*n));
  380. *n=M398;
  381. r398make(n,r505n(),(((T505*)C))->_type/*4*/);
  382. R=(T0*)n;
  383. }
  384. return R;
  385. }
  386. T0* r505to_cst_att_character(T505* C,T0* a1){
  387. T0* R=NULL;
  388. /*IF*/if ((((((T505*)C))->_type/*4*/)!=((void*)(NULL)))&&(X291is_character((((T505*)C))->_type/*4*/))) {
  389. {T554*n=malloc(sizeof(*n));
  390. *n=M554;
  391. r554make(n,r505n(),(((T505*)C))->_type/*4*/,a1);
  392. R=(T0*)n;
  393. }
  394. }
  395. else {
  396. r505error(X776start_position(r855first(((T855*)(oBC505names)))),((T0*)ms5_505));
  397. }
  398. /*FI*/return R;
  399. }
  400. void r505error(T0* a1,T0* a2){
  401. r683add_position(a1);
  402. r683error(((T683*)(oBC364eh)),a2);
  403. }
  404. /*No:TMP_FEATURE.fatal_error*/
  405. void r505set_require_else(T505* C,T0* a1,T0* a2,T0* a3){
  406. /*IF*/if (((a2)!=((void*)(NULL)))||((a3)!=((void*)(NULL)))) {
  407. {T343*n=malloc(sizeof(*n));
  408. *n=M343;
  409. r343make(n,a1,a2,a3);
  410. C->_require_assertion=(T0*)n;
  411. }
  412. /*[IRF3.3set_require_else*/((((T343*)(((T343*)((((T505*)C))->_require_assertion/*16*/)))))->_is_require_else)=(1);
  413. /*]*/
  414. }
  415. /*FI*/}
  416. void r505initialize(T505* C){
  417. r855clear(((T855*)(oBC505names)));
  418. C->_arguments=NULL;
  419. C->_type=NULL;
  420. C->_header_comment=NULL;
  421. C->_obsolete_mark=NULL;
  422. C->_require_assertion=NULL;
  423. C->_local_vars=NULL;
  424. C->_routine_body=NULL;
  425. }
  426. /*No:TMP_FEATURE.set_obsolete_mark*/
  427. T0* r505to_cst_att_bit(T505* C,T0* a1){
  428. T0* R=NULL;
  429. /*IF*/if ((((((T505*)C))->_type/*4*/)!=((void*)(NULL)))&&(X291is_bit((((T505*)C))->_type/*4*/))) {
  430. {T588*n=malloc(sizeof(*n));
  431. *n=M588;
  432. r588make(n,r505n(),(((T505*)C))->_type/*4*/,a1);
  433. R=(T0*)n;
  434. }
  435. }
  436. else {
  437. r505error(X776start_position(r855first(((T855*)(oBC505names)))),((T0*)ms4_505));
  438. }
  439. /*FI*/return R;
  440. }
  441. T0* r505to_once_routine(T505* C){
  442. T0* R=NULL;
  443. /*IF*/if (((((T505*)C))->_type/*4*/)==((void*)(NULL))) {
  444. {T134*n=malloc(sizeof(*n));
  445. *n=M134;
  446. r134make(n,r505n(),(((T505*)C))->_arguments/*0*/,(((T505*)C))->_obsolete_mark/*12*/,(((T505*)C))->_header_comment/*8*/,(((T505*)C))->_require_assertion/*16*/,(((T505*)C))->_local_vars/*20*/,(((T505*)C))->_routine_body/*24*/);
  447. R=(T0*)n;
  448. }
  449. }
  450. else {
  451. {T844*n=malloc(sizeof(*n));
  452. *n=M844;
  453. r844make(n,r505n(),(((T505*)C))->_arguments/*0*/,(((T505*)C))->_type/*4*/,(((T505*)C))->_obsolete_mark/*12*/,(((T505*)C))->_header_comment/*8*/,(((T505*)C))->_require_assertion/*16*/,(((T505*)C))->_local_vars/*20*/,(((T505*)C))->_routine_body/*24*/);
  454. R=(T0*)n;
  455. }
  456. }
  457. /*FI*/return R;
  458. }
  459. /*No:RENAME_PAIR.new_name*/
  460. void r498make(T498* C,T0* a1,T0* a2){
  461. /*IF*/if ((X776to_string(a1))==((void*)(X776to_string(a2)))) {
  462. r683add_position(X776start_position(a1));
  463. r683add_position(X776start_position(a2));
  464. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_498);
  465. r683fatal_error(((T683*)(oBC364eh)),b1);
  466. }/*]*/
  467. }
  468. /*FI*/C->_old_name=a1;
  469. C->_new_name=a2;
  470. }
  471. /*No:RENAME_PAIR.fatal_error*/
  472. /*No:RENAME_PAIR.old_name*/
  473.  
  474.