home *** CD-ROM | disk | FTP | other *** search
/ Amiga ACS 1998 #4 / amigaacscoverdisc1998-041998.iso / utilities / shareware / dev / ppcsmalleiffel / source.lha / bin_c / short25.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  40.2 KB  |  1,418 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 "short.h"
  9. /*No:TMP_FEATURE.arguments*/
  10. T0* r505n(void){
  11. T0* R=NULL;
  12. {T953*n=malloc(sizeof(*n));
  13. *n=M953;
  14. r953make(n,r855twin(((T855*)(oBC505names))));
  15. R=(T0*)n;
  16. }
  17. return R;
  18. }
  19. T0* r505to_cst_att_integer(T505* C,T0* a1){
  20. T0* R=NULL;
  21. /*IF*/if (((((T505*)C))->_type/*4*/)!=((void*)(NULL))) {
  22. /*IF*/if (X291is_integer((((T505*)C))->_type/*4*/)) {
  23. {T689*n=malloc(sizeof(*n));
  24. *n=M689;
  25. r689make(n,r505n(),(((T505*)C))->_type/*4*/,a1);
  26. R=(T0*)n;
  27. }
  28. }
  29.  else if (X291is_real((((T505*)C))->_type/*4*/)) {
  30. {T835*n=malloc(sizeof(*n));
  31. *n=M835;
  32. r835make(n,r505n(),(((T505*)C))->_type/*4*/,r342to_real_constant(((T342*)a1)));
  33. R=(T0*)n;
  34. }
  35. }
  36.  else if (X291is_double((((T505*)C))->_type/*4*/)) {
  37. {T118*n=malloc(sizeof(*n));
  38. *n=M118;
  39. r118make(n,r505n(),(((T505*)C))->_type/*4*/,r342to_real_constant(((T342*)a1)));
  40. R=(T0*)n;
  41. }
  42. }
  43. else {
  44. r505error(X776start_position(r855first(((T855*)(oBC505names)))),((T0*)ms6_505));
  45. }
  46. /*FI*/}
  47. else {
  48. r505error(X776start_position(r855first(((T855*)(oBC505names)))),((T0*)ms7_505));
  49. }
  50. /*FI*/return R;
  51. }
  52. /*No:TMP_FEATURE.add_synonym*/
  53. /*No:TMP_FEATURE.set_type*/
  54. T0* r505to_writable_attribute(T505* C){
  55. T0* R=NULL;
  56. /*IF*/if (((((T505*)C))->_type/*4*/)==((void*)(NULL))) {
  57. r505error(X776start_position(r855first(((T855*)(oBC505names)))),((T0*)ms1_505));
  58. }
  59.  else if (((((T505*)C))->_arguments/*0*/)!=((void*)(NULL))) {
  60. r505error(r818current_position(((T818*)(oBC364eiffel_parser))),((T0*)ms2_505));
  61. }
  62. /*FI*/{T106*n=malloc(sizeof(*n));
  63. *n=M106;
  64. r106make(n,r505n(),(((T505*)C))->_type/*4*/);
  65. R=(T0*)n;
  66. }
  67. return R;
  68. }
  69. T0* r505to_cst_att_boolean(T505* C,T0* a1){
  70. T0* R=NULL;
  71. /*IF*/if ((((((T505*)C))->_type/*4*/)!=((void*)(NULL)))&&(X291is_boolean((((T505*)C))->_type/*4*/))) {
  72. {T593*n=malloc(sizeof(*n));
  73. *n=M593;
  74. r593make(n,r505n(),(((T505*)C))->_type/*4*/,a1);
  75. R=(T0*)n;
  76. }
  77. }
  78. else {
  79. r505error(X776start_position(r855first(((T855*)(oBC505names)))),((T0*)ms3_505));
  80. }
  81. /*FI*/return R;
  82. }
  83. /*No:TMP_FEATURE.type*/
  84. /*No:TMP_FEATURE.local_vars*/
  85. /*No:TMP_FEATURE.set_header_comment*/
  86. void r505set_require(T505* C,T0* a1,T0* a2,T0* a3){
  87. /*IF*/if (((a2)!=((void*)(NULL)))||((a3)!=((void*)(NULL)))) {
  88. {T343*n=malloc(sizeof(*n));
  89. *n=M343;
  90. r343make(n,a1,a2,a3);
  91. C->_require_assertion=(T0*)n;
  92. }
  93. }
  94. /*FI*/}
  95. /*No:TMP_FEATURE.set_local_vars*/
  96. T0* r505to_deferred_routine(T505* C){
  97. T0* R=NULL;
  98. /*IF*/if (((((T505*)C))->_type/*4*/)==((void*)(NULL))) {
  99. {T853*n=malloc(sizeof(*n));
  100. *n=M853;
  101. /*[IRF3.6make*/{T853* C1=n;
  102. T0* b1=r505n();
  103. T0* b2=(((T505*)C))->_arguments/*0*/;
  104. T0* b3=(((T505*)C))->_obsolete_mark/*12*/;
  105. T0* b4=(((T505*)C))->_header_comment/*8*/;
  106. T0* b5=(((T505*)C))->_require_assertion/*16*/;
  107. r853make_routine(C1,b1,b2,b3,b4,b5);
  108. }/*]*/
  109. R=(T0*)n;
  110. }
  111. }
  112. else {
  113. {T649*n=malloc(sizeof(*n));
  114. *n=M649;
  115. 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*/);
  116. R=(T0*)n;
  117. }
  118. }
  119. /*FI*/return R;
  120. }
  121. T0* r505to_procedure_or_function(T505* C){
  122. T0* R=NULL;
  123. /*IF*/if (((((T505*)C))->_type/*4*/)==((void*)(NULL))) {
  124. {T297*n=malloc(sizeof(*n));
  125. *n=M297;
  126. 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*/);
  127. R=(T0*)n;
  128. }
  129. }
  130. else {
  131. {T696*n=malloc(sizeof(*n));
  132. *n=M696;
  133. 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*/);
  134. R=(T0*)n;
  135. }
  136. }
  137. /*FI*/return R;
  138. }
  139. /*No:TMP_FEATURE.obsolete_mark*/
  140. /*No:TMP_FEATURE.require_assertion*/
  141. T0*oBC505names=NULL;
  142. T0* r505to_cst_att_real(T505* C,T0* a1){
  143. T0* R=NULL;
  144. /*IF*/if (((((T505*)C))->_type/*4*/)!=((void*)(NULL))) {
  145. /*IF*/if (X291is_real((((T505*)C))->_type/*4*/)) {
  146. {T835*n=malloc(sizeof(*n));
  147. *n=M835;
  148. r835make(n,r505n(),(((T505*)C))->_type/*4*/,a1);
  149. R=(T0*)n;
  150. }
  151. }
  152.  else if (X291is_double((((T505*)C))->_type/*4*/)) {
  153. {T118*n=malloc(sizeof(*n));
  154. *n=M118;
  155. r118make(n,r505n(),(((T505*)C))->_type/*4*/,a1);
  156. R=(T0*)n;
  157. }
  158. }
  159. else {
  160. r683add_position((((T936*)((T936*)a1)))->_start_position/*8*/);
  161. r683add_position(X776start_position(r855first(((T855*)(oBC505names)))));
  162. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms8_505);
  163. r683fatal_error(((T683*)(oBC364eh)),b1);
  164. }/*]*/
  165. }
  166. /*FI*/}
  167. else {
  168. r505error(X776start_position(r855first(((T855*)(oBC505names)))),((T0*)ms9_505));
  169. }
  170. /*FI*/return R;
  171. }
  172. /*No:TMP_FEATURE.set_arguments*/
  173. T0* r505to_cst_att_string(T505* C,T0* a1){
  174. T0* R=NULL;
  175. /*IF*/if ((((((T505*)C))->_type/*4*/)!=((void*)(NULL)))&&(X291is_string((((T505*)C))->_type/*4*/))) {
  176. {T380*n=malloc(sizeof(*n));
  177. *n=M380;
  178. r380make(n,r505n(),(((T505*)C))->_type/*4*/,a1);
  179. R=(T0*)n;
  180. }
  181. }
  182. else {
  183. r505error(X776start_position(r855first(((T855*)(oBC505names)))),((T0*)ms10_505));
  184. }
  185. /*FI*/return R;
  186. }
  187. /*No:TMP_FEATURE.header_comment*/
  188. /*No:TMP_FEATURE.set_routine_body*/
  189. /*No:TMP_FEATURE.routine_body*/
  190. T0* r505to_external_routine(T505* C,T0* a1,T0* a2){
  191. T0* R=NULL;
  192. /*IF*/if (((((T505*)C))->_type/*4*/)==((void*)(NULL))) {
  193. {T883*n=malloc(sizeof(*n));
  194. *n=M883;
  195. r883make(n,r505n(),(((T505*)C))->_arguments/*0*/,(((T505*)C))->_obsolete_mark/*12*/,(((T505*)C))->_header_comment/*8*/,(((T505*)C))->_require_assertion/*16*/,a1,a2);
  196. R=(T0*)n;
  197. }
  198. }
  199. else {
  200. {T679*n=malloc(sizeof(*n));
  201. *n=M679;
  202. 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);
  203. R=(T0*)n;
  204. }
  205. }
  206. /*FI*/return R;
  207. }
  208. T0* r505to_cst_att_unique(T505* C){
  209. T0* R=NULL;
  210. T0* _sp=NULL;
  211. /*IF*/if (((((T505*)C))->_type/*4*/)==((void*)(NULL))) {
  212. _sp=X776start_position(r855first(((T855*)(oBC505names))));
  213. r505error(_sp,((T0*)ms11_505));
  214. }
  215. /*FI*//*IF*/if (!(X291is_integer((((T505*)C))->_type/*4*/))) {
  216. r505error(X291start_position((((T505*)C))->_type/*4*/),((T0*)ms12_505));
  217. }
  218. /*FI*/{T398*n=malloc(sizeof(*n));
  219. *n=M398;
  220. r398make(n,r505n(),(((T505*)C))->_type/*4*/);
  221. R=(T0*)n;
  222. }
  223. return R;
  224. }
  225. T0* r505to_cst_att_character(T505* C,T0* a1){
  226. T0* R=NULL;
  227. /*IF*/if ((((((T505*)C))->_type/*4*/)!=((void*)(NULL)))&&(X291is_character((((T505*)C))->_type/*4*/))) {
  228. {T554*n=malloc(sizeof(*n));
  229. *n=M554;
  230. r554make(n,r505n(),(((T505*)C))->_type/*4*/,a1);
  231. R=(T0*)n;
  232. }
  233. }
  234. else {
  235. r505error(X776start_position(r855first(((T855*)(oBC505names)))),((T0*)ms5_505));
  236. }
  237. /*FI*/return R;
  238. }
  239. void r505error(T0* a1,T0* a2){
  240. r683add_position(a1);
  241. r683error(((T683*)(oBC364eh)),a2);
  242. }
  243. /*No:TMP_FEATURE.fatal_error*/
  244. void r505set_require_else(T505* C,T0* a1,T0* a2,T0* a3){
  245. /*IF*/if (((a2)!=((void*)(NULL)))||((a3)!=((void*)(NULL)))) {
  246. {T343*n=malloc(sizeof(*n));
  247. *n=M343;
  248. r343make(n,a1,a2,a3);
  249. C->_require_assertion=(T0*)n;
  250. }
  251. /*[IRF3.3set_require_else*/((((T343*)(((T343*)((((T505*)C))->_require_assertion/*16*/)))))->_is_require_else)=(1);
  252. /*]*/
  253. }
  254. /*FI*/}
  255. void r505initialize(T505* C){
  256. r855clear(((T855*)(oBC505names)));
  257. C->_arguments=NULL;
  258. C->_type=NULL;
  259. C->_header_comment=NULL;
  260. C->_obsolete_mark=NULL;
  261. C->_require_assertion=NULL;
  262. C->_local_vars=NULL;
  263. C->_routine_body=NULL;
  264. }
  265. /*No:TMP_FEATURE.set_obsolete_mark*/
  266. T0* r505to_cst_att_bit(T505* C,T0* a1){
  267. T0* R=NULL;
  268. /*IF*/if ((((((T505*)C))->_type/*4*/)!=((void*)(NULL)))&&(X291is_bit((((T505*)C))->_type/*4*/))) {
  269. {T588*n=malloc(sizeof(*n));
  270. *n=M588;
  271. r588make(n,r505n(),(((T505*)C))->_type/*4*/,a1);
  272. R=(T0*)n;
  273. }
  274. }
  275. else {
  276. r505error(X776start_position(r855first(((T855*)(oBC505names)))),((T0*)ms4_505));
  277. }
  278. /*FI*/return R;
  279. }
  280. T0* r505to_once_routine(T505* C){
  281. T0* R=NULL;
  282. /*IF*/if (((((T505*)C))->_type/*4*/)==((void*)(NULL))) {
  283. {T134*n=malloc(sizeof(*n));
  284. *n=M134;
  285. 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*/);
  286. R=(T0*)n;
  287. }
  288. }
  289. else {
  290. {T844*n=malloc(sizeof(*n));
  291. *n=M844;
  292. 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*/);
  293. R=(T0*)n;
  294. }
  295. }
  296. /*FI*/return R;
  297. }
  298. /*No:RENAME_PAIR.new_name*/
  299. void r498make(T498* C,T0* a1,T0* a2){
  300. /*IF*/if ((X776to_string(a1))==((void*)(X776to_string(a2)))) {
  301. r683add_position(X776start_position(a1));
  302. r683add_position(X776start_position(a2));
  303. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_498);
  304. r683fatal_error(((T683*)(oBC364eh)),b1);
  305. }/*]*/
  306. }
  307. /*FI*/C->_old_name=a1;
  308. C->_new_name=a2;
  309. }
  310. /*No:RENAME_PAIR.fatal_error*/
  311. /*No:RENAME_PAIR.old_name*/
  312. void r523short(T523* C){
  313. r580hook(((T580*)(oBC364short_print)),((T0*)ms1_291));
  314. r523short_hook(C);
  315. r580hook(((T580*)(oBC364short_print)),((T0*)ms2_291));
  316. }
  317. T0*oBC523tmp_written_mark=NULL;
  318. int r523has_creation(T523* C,T0* a1){
  319. int R=0;
  320. R=r605has_creation(((T605*)(r523base_class(C))),a1);
  321. return R;
  322. }
  323. /*No:TYPE_EXPANDED.is_anchored*/
  324. /*No:TYPE_EXPANDED.is_array*/
  325. int r523is_a(T523* C,T0* a1){
  326. int R=0;
  327. R=((((T523*)C))->_run_time_mark/*16*/)==((void*)(X291run_time_mark(a1)));
  328. /*IF*/if (!(R)) {
  329. r683add_type((T0*)C,((T0*)ms71_470));
  330. r683add_type(a1,((T0*)ms67_470));
  331. }
  332. /*FI*/return R;
  333. }
  334. int r523is_pointer(T523* C){
  335. int R=0;
  336. R=X291is_pointer((((T523*)C))->_mapped/*12*/);
  337. return R;
  338. }
  339. /*No:TYPE_EXPANDED.run_type*/
  340. /*No:TYPE_EXPANDED.is_string*/
  341. /*No:TYPE_EXPANDED.is_like_feature*/
  342. T0* r523compute_mark(T0* a1){
  343. T0* R=NULL;
  344. r7copy(((T7*)(oBC523tmp_written_mark)),((T0*)ms14_470));
  345. r7extend(((T7*)(oBC523tmp_written_mark)),'\40');
  346. r7append(((T7*)(oBC523tmp_written_mark)),a1);
  347. R=r902item(oBC523tmp_written_mark);
  348. return R;
  349. }
  350. /*No:TYPE_EXPANDED.is_like_current*/
  351. void r523make(T523* C,T0* a1,T0* a2){
  352. C->_start_position=a1;
  353. C->_mapped=a2;
  354. C->_written_mark=r523compute_mark(X291written_mark((((T523*)C))->_mapped/*12*/));
  355. }
  356. /*No:TYPE_EXPANDED.start_position*/
  357. /*No:TYPE_EXPANDED.fz_inako*/
  358. int r523is_character(T523* C){
  359. int R=0;
  360. R=X291is_character((((T523*)C))->_mapped/*12*/);
  361. return R;
  362. }
  363. /*No:TYPE_EXPANDED.written_mark*/
  364. /*No:TYPE_EXPANDED.is_run_type*/
  365. T0* r523to_runnable(T523* C,T0* a1){
  366. T0* R=NULL;
  367. T0* _m=NULL;
  368. /*IF*/if (((((T523*)C))->_run_type/*20*/)==((void*)(C))) {
  369. R=(T0*)C;
  370. }
  371.  else if (((((T523*)C))->_run_type/*20*/)==((void*)((((T523*)C))->_mapped/*12*/))) {
  372. R=(T0*)C;
  373. }
  374. else {
  375. _m=X291to_runnable((((T523*)C))->_mapped/*12*/,a1);
  376. /*IF*/if ((_m)==((void*)(NULL))) {
  377. r683add_position((((T523*)C))->_start_position/*4*/);
  378. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_523);
  379. r683fatal_error(((T683*)(oBC364eh)),b1);
  380. }/*]*/
  381. }
  382. /*FI*//*IF*/if (((((T523*)C))->_run_type/*20*/)!=((void*)(NULL))) {
  383. {T523*n=malloc(sizeof(*n));
  384. *n=M523;
  385. r523from_other(n,(T0*)C,X291run_type(_m));
  386. R=(T0*)n;
  387. }
  388. }
  389.  else if (X291is_expanded(_m)) {
  390. C->_run_type=_m;
  391. C->_run_time_mark=X291run_time_mark(_m);
  392. R=(T0*)C;
  393. }
  394.  else if (((((T523*)C))->_mapped/*12*/)==((void*)(X291run_type(_m)))) {
  395. C->_run_time_mark=r523compute_mark(X291run_time_mark(_m));
  396. C->_run_type=(T0*)C;
  397. R=(T0*)C;
  398. }
  399. else {
  400. C->_run_time_mark=r523compute_mark(X291run_time_mark(_m));
  401. {T523*n=malloc(sizeof(*n));
  402. *n=M523;
  403. r523from_other(n,(T0*)C,X291run_type(_m));
  404. C->_run_type=(T0*)n;
  405. }
  406. R=(T0*)C;
  407. }
  408. /*FI*/r368set_at_run_time(((T368*)(X291run_class((((T523*)((T523*)R)))->_run_type/*20*/))));
  409. }
  410. /*FI*/return R;
  411. }
  412. T0* r523generic_list(T523* C){
  413. T0* R=NULL;
  414. R=X291generic_list((((T523*)C))->_mapped/*12*/);
  415. return R;
  416. }
  417. /*No:TYPE_EXPANDED.is_formal_generic*/
  418. int r523is_real(T523* C){
  419. int R=0;
  420. R=X291is_real((((T523*)C))->_mapped/*12*/);
  421. return R;
  422. }
  423. int r523is_bit(T523* C){
  424. int R=0;
  425. R=X291is_bit((((T523*)C))->_mapped/*12*/);
  426. return R;
  427. }
  428. T0* r523smallest_ancestor(T523* C,T0* a1){
  429. T0* R=NULL;
  430. /*IF*/if (((((T523*)C))->_run_time_mark/*16*/)==((void*)(X291run_time_mark(a1)))) {
  431. R=(((T523*)C))->_run_type/*20*/;
  432. }
  433. else {
  434. R=X291run_type(X291smallest_ancestor((((T523*)C))->_mapped/*12*/,a1));
  435. }
  436. /*FI*/return R;
  437. }
  438. int r523is_boolean(T523* C){
  439. int R=0;
  440. R=X291is_boolean((((T523*)C))->_mapped/*12*/);
  441. return R;
  442. }
  443. int r523is_double(T523* C){
  444. int R=0;
  445. R=X291is_double((((T523*)C))->_mapped/*12*/);
  446. return R;
  447. }
  448. T0* r523run_class(T523* C){
  449. T0* R=NULL;
  450. R=r604run_class((((T523*)C))->_run_type/*20*/);
  451. return R;
  452. }
  453. /*No:TYPE_EXPANDED.run_time_mark*/
  454. /*No:TYPE_EXPANDED.mapped*/
  455. int r523is_a_in(T523* C,T0* a1,T0* a2){
  456. int R=0;
  457. T0* _ct=NULL;
  458. T0* _t2=NULL;
  459. T0* _t1=NULL;
  460. /*IF*/if (((((T523*)C))->_written_mark/*8*/)==((void*)(X291written_mark(a1)))) {
  461. R=1;
  462. }
  463. else {
  464. _ct=(((T368*)((T368*)a2)))->_current_type/*0*/;
  465. _t1=r523to_runnable(C,_ct);
  466. _t2=X291to_runnable(a1,_ct);
  467. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  468. R=1;
  469. }
  470. else {
  471. R=X291is_a(_t1,_t2);
  472. }
  473. /*FI*/}
  474. /*FI*/return R;
  475. }
  476. T0* r523look_up_for(T523* C,T0* a1,T0* a2){
  477. T0* R=NULL;
  478. R=r605look_up_for(((T605*)(r523base_class(C))),a1,a2);
  479. return R;
  480. }
  481. T0* r523expanded_initializer(T523* C){
  482. T0* R=NULL;
  483. R=r605expanded_initializer(((T605*)(r523base_class(C))),(T0*)C);
  484. return R;
  485. }
  486. /*No:TYPE_EXPANDED.fz_dot*/
  487. int r523is_generic(T523* C){
  488. int R=0;
  489. R=X291is_generic((((T523*)C))->_mapped/*12*/);
  490. return R;
  491. }
  492. /*No:TYPE_EXPANDED.used_as_reference*/
  493. /*No:TYPE_EXPANDED.is_reference*/
  494. T0* r523base_class(T523* C){
  495. T0* R=NULL;
  496. T0* _bcn=NULL;
  497. _bcn=r523base_class_name(C);
  498. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  499. R=r451base_class(((T451*)_bcn));
  500. }
  501. else {
  502. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  503. r7append(((T7*)(oBC683explanation)),b1);
  504. }/*]*/
  505. r683add_type((T0*)C,((T0*)ms67_470));
  506. r683print_as_fatal_error(((T683*)(oBC364eh)));
  507. }
  508. /*FI*/return R;
  509. }
  510. void r523from_other(T523* C,T0* a1,T0* a2){
  511. C->_start_position=(((T523*)((T523*)a1)))->_start_position/*4*/;
  512. C->_written_mark=(((T523*)((T523*)a1)))->_written_mark/*8*/;
  513. C->_mapped=a2;
  514. /*IF*/if (X291is_expanded((((T523*)C))->_mapped/*12*/)) {
  515. C->_run_time_mark=X291run_time_mark((((T523*)C))->_mapped/*12*/);
  516. C->_run_type=(((T523*)C))->_mapped/*12*/;
  517. }
  518. else {
  519. C->_run_time_mark=r523compute_mark(X291run_time_mark((((T523*)C))->_mapped/*12*/));
  520. C->_run_type=(T0*)C;
  521. }
  522. /*FI*/}
  523. /*No:TYPE_EXPANDED.fatal_error*/
  524. void r523short_hook(T523* C){
  525. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms14_470),((T0*)ms2_523));
  526. X291short_hook((((T523*)C))->_mapped/*12*/);
  527. }
  528. /*No:TYPE_EXPANDED.is_any*/
  529. T0* r523base_class_name(T523* C){
  530. T0* R=NULL;
  531. R=X291base_class_name((((T523*)C))->_mapped/*12*/);
  532. return R;
  533. }
  534. /*No:TYPE_EXPANDED.is_expanded*/
  535. /*No:TYPE_EXPANDED.fz_expanded*/
  536. int r523is_basic_eiffel_expanded(T523* C){
  537. int R=0;
  538. /*IF*/if (((((T523*)C))->_run_type/*20*/)==((void*)((((T523*)C))->_mapped/*12*/))) {
  539. R=X291is_basic_eiffel_expanded((((T523*)C))->_mapped/*12*/);
  540. }
  541. /*FI*/return R;
  542. }
  543. /*No:TYPE_EXPANDED.is_none*/
  544. int r523is_integer(T523* C){
  545. int R=0;
  546. R=X291is_integer((((T523*)C))->_mapped/*12*/);
  547. return R;
  548. }
  549. void r805short(T805* C){
  550. int _i=0;
  551. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms3_805),((T0*)ms4_805));
  552. _i=1;
  553. while (!((_i)>((((T7*)((T7*)((((T805*)C))->_to_string/*12*/))))->_count/*4*/))) {
  554. r805short_character(C,_i);
  555. _i=(_i)+(1);
  556. }
  557. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms5_805),((T0*)ms6_805));
  558. }
  559. T0* r805add_comment(T805* C,T0* a1){
  560. T0* R=NULL;
  561. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  562. R=(T0*)C;
  563. }
  564. else {
  565. {T529*n=malloc(sizeof(*n));
  566. *n=M529;
  567. r529make(n,(T0*)C,a1);
  568. R=(T0*)n;
  569. }
  570. }
  571. /*FI*/return R;
  572. }
  573. int r805to_integer(T805* C){
  574. int R=0;
  575. r805error((((T805*)C))->_start_position/*8*/,((T0*)ms69_470));
  576. return R;
  577. }
  578. void r805bracketed_short(T805* C){
  579. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms6_662),((T0*)ms7_662));
  580. r805short(C);
  581. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms8_662),((T0*)ms9_662));
  582. }
  583. int r805is_a(T805* C,T0* a1){
  584. int R=0;
  585. R=X291is_a(/*(IRF4.4run_type*/((T0*)((T491*)/*(IRF4.8result_type*/r805type_string()/*)*/))/*)*/,X291run_type(X662result_type(a1)));
  586. /*IF*/if (!(R)) {
  587. r683add_position((((T805*)C))->_start_position/*8*/);
  588. r805error(X662start_position(a1),((T0*)ms4_662));
  589. }
  590. /*FI*/return R;
  591. }
  592. void r805from_manifest_string(T805* C,T0* a1,int a2){
  593. *((T805*)(C))=*((T805*)(a1));
  594. C->_mapping_c=r7twin(((T7*)((((T805*)((T805*)a1)))->_mapping_c/*28*/)));
  595. r7extend(((T7*)((((T805*)C))->_mapping_c/*28*/)),'\137');
  596. r2append_in(a2,(((T805*)C))->_mapping_c/*28*/);
  597. }
  598. /*No:MANIFEST_STRING.is_current*/
  599. void r805character_coding(char a1,T0* a2){
  600. char _special=0;
  601. {int z1=a1;
  602.  
  603. if((64==z1)){
  604. _special='A';
  605. }
  606.  else 
  607. if((8==z1)){
  608. _special='B';
  609. }
  610.  else 
  611. if((94==z1)){
  612. _special='C';
  613. }
  614.  else 
  615. if((36==z1)){
  616. _special='D';
  617. }
  618.  else 
  619. if((12==z1)){
  620. _special='F';
  621. }
  622.  else 
  623. if((92==z1)){
  624. _special='H';
  625. }
  626.  else 
  627. if((126==z1)){
  628. _special='L';
  629. }
  630.  else 
  631. if((10==z1)){
  632. _special='N';
  633. }
  634.  else 
  635. if((96==z1)){
  636. _special='Q';
  637. }
  638.  else 
  639. if((13==z1)){
  640. _special='R';
  641. }
  642.  else 
  643. if((35==z1)){
  644. _special='S';
  645. }
  646.  else 
  647. if((9==z1)){
  648. _special='T';
  649. }
  650.  else 
  651. if((0==z1)){
  652. _special='U';
  653. }
  654.  else 
  655. if((124==z1)){
  656. _special='V';
  657. }
  658.  else 
  659. if((37==z1)){
  660. _special='\45';
  661. }
  662.  else 
  663. if((39==z1)){
  664. _special='\47';
  665. }
  666.  else 
  667. if((34==z1)){
  668. _special='\42';
  669. }
  670.  else 
  671. if((91==z1)){
  672. _special='\50';
  673. }
  674.  else 
  675. if((93==z1)){
  676. _special='\51';
  677. }
  678.  else 
  679. if((123==z1)){
  680. _special='\74';
  681. }
  682.  else 
  683. if((125==z1)){
  684. _special='\76';
  685. }
  686. }
  687. r7extend(((T7*)a2),'\45');
  688. /*IF*/if ((_special)==('\0')) {
  689. r7extend(((T7*)a2),'\57');
  690. r2append_in(((unsigned char)a1),a2);
  691. r7extend(((T7*)a2),'\57');
  692. }
  693. else {
  694. r7extend(((T7*)a2),_special);
  695. }
  696. /*FI*/}
  697. void r805make(T805* C,T0* a1,int a2){
  698. C->_start_position=a1;
  699. {T7*n=malloc(sizeof(*n));
  700. *n=M7;
  701. r7make(n,0);
  702. C->_to_string=(T0*)n;
  703. }
  704. {T7*n=malloc(sizeof(*n));
  705. *n=M7;
  706. r7make(n,12);
  707. C->_mapping_c=(T0*)n;
  708. }
  709. r7copy(((T7*)((((T805*)C))->_mapping_c/*28*/)),((T0*)ms1_805));
  710. r2append_in(a2,(((T805*)C))->_mapping_c/*28*/);
  711. }
  712. /*No:MANIFEST_STRING.to_string*/
  713. /*No:MANIFEST_STRING.fz_iinaiv*/
  714. T0* r805type_string(void){
  715. if (fBC364type_string==0){
  716. T0* R=NULL;
  717. fBC364type_string=1;
  718. {T491*n=malloc(sizeof(*n));
  719. *n=M491;
  720. r491make(n,NULL);
  721. R=(T0*)n;
  722. }
  723. oBC364type_string=R;}
  724. return oBC364type_string;}
  725. /*No:MANIFEST_STRING.break*/
  726. /*No:MANIFEST_STRING.add*/
  727. /*No:MANIFEST_STRING.start_position*/
  728. /*No:MANIFEST_STRING.precedence*/
  729. T0* r805to_runnable(T805* C,T0* a1){
  730. T0* R=NULL;
  731. T0* _dummy=NULL;
  732. T0* _bc=NULL;
  733. _dummy=r491to_runnable(((T491*)(r805type_string())),a1);
  734. /*IF*/if (((((T805*)C))->_current_type/*4*/)==((void*)(NULL))) {
  735. C->_current_type=a1;
  736. r7extend(((T7*)((((T805*)C))->_mapping_c/*28*/)),'\137');
  737. _bc=r627base_class(((T627*)((((T805*)C))->_start_position/*8*/)));
  738. r2append_in((((T605*)((T605*)_bc)))->_id/*0*/,(((T805*)C))->_mapping_c/*28*/);
  739. r368set_at_run_time(((T368*)(r491run_class(((T491*)(/*(IRF4.8result_type*/r805type_string()/*)*/))))));
  740. r340add_last((T0*)C);
  741. R=(T0*)C;
  742. }
  743. else {
  744. R=r805twin(C);
  745. /*[IRF3.3set_current_type*/((((T805*)(((T805*)R))))->_current_type)=(a1);
  746. /*]*/
  747. }
  748. /*FI*/return R;
  749. }
  750. /*No:MANIFEST_STRING.ascii*/
  751. /*No:MANIFEST_STRING.us_slash*/
  752. /*No:MANIFEST_STRING.percent*/
  753. /*No:MANIFEST_STRING.result_type*/
  754. T0* r805twin(T805* C){
  755. T0* R=NULL;
  756. R=malloc(sizeof(*C));
  757. *((T805*)R)=*C;
  758. return R;
  759. }
  760. /*No:MANIFEST_STRING.set_current_type*/
  761. void r805add_ascii(T805* C,char a1){
  762. r7extend(((T7*)((((T805*)C))->_to_string/*12*/)),a1);
  763. /*IF*/if (((((T805*)C))->_ascii/*20*/)==((void*)(NULL))) {
  764. C->_ascii=se_ma429(1,(((T7*)((T7*)((((T805*)C))->_to_string/*12*/))))->_count/*4*/);
  765. }
  766. else {
  767. r429add_last(((T429*)((((T805*)C))->_ascii/*20*/)),(((T7*)((T7*)((((T805*)C))->_to_string/*12*/))))->_count/*4*/);
  768. }
  769. /*FI*/}
  770. /*No:MANIFEST_STRING.atomic_precedence*/
  771. T0*oBC805tmp_string=NULL;
  772. /*No:MANIFEST_STRING.current_type*/
  773. T0*oBC364manifest_string_pool=NULL;
  774. /*No:MANIFEST_STRING.is_manifest_string*/
  775. /*No:MANIFEST_STRING.is_void*/
  776. void r805add_percent(T805* C,char a1){
  777. r7extend(((T7*)((((T805*)C))->_to_string/*12*/)),a1);
  778. /*IF*/if (((((T805*)C))->_percent/*24*/)==((void*)(NULL))) {
  779. C->_percent=se_ma429(1,(((T7*)((T7*)((((T805*)C))->_to_string/*12*/))))->_count/*4*/);
  780. }
  781. else {
  782. r429add_last(((T429*)((((T805*)C))->_percent/*24*/)),(((T7*)((T7*)((((T805*)C))->_to_string/*12*/))))->_count/*4*/);
  783. }
  784. /*FI*/}
  785. void r805short_character(T805* C,int a1){
  786. char _c=0;
  787. int _val=0;
  788. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC805tmp_string)))))->_count)=(0);
  789. /*]*/
  790. /*IF*/if ((((((T805*)C))->_percent/*24*/)!=((void*)(NULL)))&&(r429fast_has(((T429*)((((T805*)C))->_percent/*24*/)),a1))) {
  791. r805character_coding(/*(IRF4.6item*/((((T7*)((T7*)((((T805*)C))->_to_string/*12*/))))->_storage/*0*/)[(a1)-(1)]/*)*/,oBC805tmp_string);
  792. }
  793.  else if ((((((T805*)C))->_ascii/*20*/)!=((void*)(NULL)))&&(r429fast_has(((T429*)((((T805*)C))->_ascii/*20*/)),a1))) {
  794. _val=((unsigned char)/*(IRF4.6item*/((((T7*)((T7*)((((T805*)C))->_to_string/*12*/))))->_storage/*0*/)[(a1)-(1)]/*)*/);
  795. r7append(((T7*)(oBC805tmp_string)),((T0*)ms8_805));
  796. r2append_in(_val,oBC805tmp_string);
  797. r7append(((T7*)(oBC805tmp_string)),((T0*)ms47_473));
  798. }
  799. /*FI*//*IF*/if (((((T7*)((T7*)(oBC805tmp_string))))->_count/*4*/)==(0)) {
  800. /*[IRF3.6a_character*/{char b1=/*(IRF4.6item*/((((T7*)((T7*)((((T805*)C))->_to_string/*12*/))))->_storage/*0*/)[(a1)-(1)]/*)*/;
  801. /*[IRF3.6put_character*/{T830* C2=((T830*)(oBC1std_output));
  802. char c1=b1;
  803. putc(c1,((FILE*)(stdout)));
  804. }/*]*/
  805. }/*]*/
  806. }
  807. else {
  808. _val=1;
  809. while (!((_val)>((((T7*)((T7*)(oBC805tmp_string))))->_count/*4*/))) {
  810. _c=/*(IRF4.6item*/((((T7*)((T7*)(oBC805tmp_string))))->_storage/*0*/)[(_val)-(1)]/*)*/;
  811. /*IF*/if ((_c)==('\45')) {
  812. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms9_805),((T0*)ms10_805));
  813. }
  814.  else if ((_c)==('\57')) {
  815. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms11_805),((T0*)ms47_473));
  816. }
  817. else {
  818. /*[IRF3.6a_character*/{char b1=_c;
  819. /*[IRF3.6put_character*/{T830* C2=((T830*)(oBC1std_output));
  820. char c1=b1;
  821. putc(c1,((FILE*)(stdout)));
  822. }/*]*/
  823. }/*]*/
  824. }
  825. /*FI*/_val=(_val)+(1);
  826. }
  827. }
  828. /*FI*/}
  829. void r805error(T0* a1,T0* a2){
  830. r683add_position(a1);
  831. r683error(((T683*)(oBC364eh)),a2);
  832. }
  833. /*No:MANIFEST_STRING.mapping_c*/
  834. void r805short_target(T805* C){
  835. r805bracketed_short(C);
  836. /*[IRF3.6a_dot*/{T580* C1=((T580*)(oBC364short_print));
  837. r580hook_or(C1,((T0*)ms58_580),((T0*)ms67_470));
  838. }/*]*/
  839. }
  840. void r805break_line(T805* C){
  841. /*IF*/if (((((T805*)C))->_break/*16*/)==((void*)(NULL))) {
  842. C->_break=se_ma429(1,((((T7*)((T7*)((((T805*)C))->_to_string/*12*/))))->_count/*4*/)+(1));
  843. }
  844. else {
  845. r429add_last(((T429*)((((T805*)C))->_break/*16*/)),((((T7*)((T7*)((((T805*)C))->_to_string/*12*/))))->_count/*4*/)+(1));
  846. }
  847. /*FI*/}
  848. /*No:CALL_INFIX_MINUS.arguments*/
  849. void r574short(T574* C){
  850. /*IF*/if ((X662precedence((((T574*)C))->_target/*8*/))==(13)) {
  851. X662short((((T574*)C))->_target/*8*/);
  852. /*[IRF3.6short_print_feature_name*/{T574* C1=C;
  853. r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T574*)C1))->_feature_name/*24*/);
  854. }/*]*/
  855. /*IF*/if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T574*)C))->_arguments/*20*/)))/*)*/))==(13)) {
  856. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T574*)C))->_arguments/*20*/)))/*)*/);
  857. }
  858.  else if ((7)>=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T574*)C))->_arguments/*20*/)))/*)*/))) {
  859. X662bracketed_short(/*(IRF4.6arg1*/r431first(((T431*)((((T574*)C))->_arguments/*20*/)))/*)*/);
  860. }
  861. else {
  862. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T574*)C))->_arguments/*20*/)))/*)*/);
  863. }
  864. /*FI*/}
  865.  else if ((X662precedence((((T574*)C))->_target/*8*/))<(7)) {
  866. X662bracketed_short((((T574*)C))->_target/*8*/);
  867. /*[IRF3.6short_print_feature_name*/{T574* C1=C;
  868. r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T574*)C1))->_feature_name/*24*/);
  869. }/*]*/
  870. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T574*)C))->_arguments/*20*/)))/*)*/);
  871. }
  872. else {
  873. X662short((((T574*)C))->_target/*8*/);
  874. /*[IRF3.6short_print_feature_name*/{T574* C1=C;
  875. r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T574*)C1))->_feature_name/*24*/);
  876. }/*]*/
  877. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T574*)C))->_arguments/*20*/)))/*)*/);
  878. }
  879. /*FI*/}
  880. T0* r574add_comment(T574* C,T0* a1){
  881. T0* R=NULL;
  882. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  883. R=(T0*)C;
  884. }
  885. else {
  886. {T529*n=malloc(sizeof(*n));
  887. *n=M529;
  888. r529make(n,(T0*)C,a1);
  889. R=(T0*)n;
  890. }
  891. }
  892. /*FI*/return R;
  893. }
  894. int r574to_integer(T574* C){
  895. int R=0;
  896. r574error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T574*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  897. return R;
  898. }
  899. void r574bracketed_short(T574* C){
  900. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms6_662),((T0*)ms7_662));
  901. r574short(C);
  902. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms8_662),((T0*)ms9_662));
  903. }
  904. int r574is_a(T574* C,T0* a1){
  905. int R=0;
  906. R=X291is_a(X291run_type((((T574*)C))->_result_type/*16*/),X291run_type(X662result_type(a1)));
  907. /*IF*/if (!(R)) {
  908. r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T574*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/);
  909. r574error(X662start_position(a1),((T0*)ms4_662));
  910. }
  911. /*FI*/return R;
  912. }
  913. /*No:CALL_INFIX_MINUS.is_current*/
  914. void r574make(T574* C,T0* a1,T0* a2,T0* a3){
  915. T0* _eal=NULL;
  916. /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
  917. r683add_position(a2);
  918. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
  919. r683fatal_error(((T683*)(oBC364eh)),b1);
  920. }/*]*/
  921. }
  922. /*FI*/{T454*n=malloc(sizeof(*n));
  923. *n=M454;
  924. r454make(n,r574operator(),a2);
  925. C->_feature_name=(T0*)n;
  926. }
  927. {T431*n=malloc(sizeof(*n));
  928. *n=M431;
  929. /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
  930. /*]*/
  931. _eal=(T0*)n;
  932. }
  933. r574make_call_1(C,a1,(((T574*)C))->_feature_name/*24*/,_eal);
  934. }
  935. /*No:CALL_INFIX_MINUS.nb_errors*/
  936. /*No:CALL_INFIX_MINUS.feature_name*/
  937. /*No:CALL_INFIX_MINUS.fz_iinaiv*/
  938. /*No:CALL_INFIX_MINUS.run_feature*/
  939. /*No:CALL_INFIX_MINUS.start_position*/
  940. /*No:CALL_INFIX_MINUS.target*/
  941. /*No:CALL_INFIX_MINUS.precedence*/
  942. T0* r574to_runnable(T574* C,T0* a1){
  943. T0* R=NULL;
  944. T0* _tla=NULL;
  945. T0* _a=NULL;
  946. /*IF*/if (((((T574*)C))->_current_type/*4*/)==((void*)(NULL))) {
  947. r574to_runnable_0(C,a1);
  948. _a=r431to_runnable(((T431*)((((T574*)C))->_arguments/*20*/)),a1);
  949. /*IF*/if ((_a)==((void*)(NULL))) {
  950. r574error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T574*)C))->_arguments/*20*/)))/*)*/),((T0*)ms55_470));
  951. }
  952. else {
  953. C->_arguments=_a;
  954. }
  955. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  956. r431match_with(((T431*)((((T574*)C))->_arguments/*20*/)),(((T574*)C))->_run_feature/*12*/);
  957. }
  958. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  959. _tla=(((T574*)C))->_result_type/*16*/;
  960. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  961. case 239: 
  962. break;
  963. default:
  964. _tla=NULL;
  965. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  966. C->_result_type=X291run_type(X662result_type(/*(IRF4.6arg1*/r431first(((T431*)((((T574*)C))->_arguments/*20*/)))/*)*/));
  967. }
  968. /*FI*/}
  969. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  970. R=(T0*)C;
  971. }
  972. /*FI*/}
  973. else {
  974. R=r574twin(C);
  975. /*[IRF3.3set_current_type*/((((T574*)(((T574*)R))))->_current_type)=(NULL);
  976. /*]*/
  977. R=r574to_runnable(((T574*)R),a1);
  978. }
  979. /*FI*/return R;
  980. }
  981. /*No:CALL_INFIX_MINUS.short_print_feature_name*/
  982. /*No:CALL_INFIX_MINUS.result_type*/
  983. T0* r574twin(T574* C){
  984. T0* R=NULL;
  985. R=malloc(sizeof(*C));
  986. *((T574*)R)=*C;
  987. return R;
  988. }
  989. /*No:CALL_INFIX_MINUS.set_current_type*/
  990. T0* r574operator(void){
  991. T0* R=NULL;
  992. R=((T0*)ms37_473);
  993. return R;
  994. }
  995. /*No:CALL_INFIX_MINUS.atomic_precedence*/
  996. /*No:CALL_INFIX_MINUS.us_minus*/
  997. /*No:CALL_INFIX_MINUS.current_type*/
  998. void r574make_call_1(T574* C,T0* a1,T0* a2,T0* a3){
  999. C->_target=a1;
  1000. C->_feature_name=a2;
  1001. C->_arguments=a3;
  1002. }
  1003. /*No:CALL_INFIX_MINUS.is_manifest_string*/
  1004. /*No:CALL_INFIX_MINUS.is_void*/
  1005. void r574to_runnable_0(T574* C,T0* a1){
  1006. C->_current_type=a1;
  1007. r574cpc_to_runnable(C,a1);
  1008. C->_result_type=/*X496*/((T0*)(((T808*)((T808*)((((T574*)C))->_run_feature/*12*/))))->_result_type/*24*/);
  1009. /*IF*/if (((((T574*)C))->_result_type/*16*/)==((void*)(NULL))) {
  1010. r683add_position(X496start_position((((T574*)C))->_run_feature/*12*/));
  1011. r574error((((T454*)((T454*)((((T574*)C))->_feature_name/*24*/))))->_start_position/*8*/,((T0*)ms1_295));
  1012. }
  1013.  else if (X291is_like_current((((T574*)C))->_result_type/*16*/)) {
  1014. C->_result_type=X662result_type((((T574*)C))->_target/*8*/);
  1015. }
  1016. /*FI*/}
  1017. void r574cpc_to_runnable(T574* C,T0* a1){
  1018. T0* _rc=NULL;
  1019. T0* _t=NULL;
  1020. _t=X662to_runnable((((T574*)C))->_target/*8*/,a1);
  1021. /*IF*/if ((_t)==((void*)(NULL))) {
  1022. r683add_position(X662start_position((((T574*)C))->_target/*8*/));
  1023. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  1024. r683fatal_error(((T683*)(oBC364eh)),b1);
  1025. }/*]*/
  1026. }
  1027. /*FI*/C->_target=_t;
  1028. _rc=X291run_class(X662result_type((((T574*)C))->_target/*8*/));
  1029. C->_run_feature=r368get_rf(((T368*)_rc),(T0*)C);
  1030. r576update((((T574*)C))->_target/*8*/,(((T574*)C))->_run_feature/*12*/);
  1031. }
  1032. void r574error(T0* a1,T0* a2){
  1033. r683add_position(a1);
  1034. r683error(((T683*)(oBC364eh)),a2);
  1035. }
  1036. /*No:CALL_INFIX_MINUS.fatal_error*/
  1037. /*No:CALL_INFIX_MINUS.fz_bad_argument*/
  1038. void r574short_target(T574* C){
  1039. r574bracketed_short(C);
  1040. /*[IRF3.6a_dot*/{T580* C1=((T580*)(oBC364short_print));
  1041. r580hook_or(C1,((T0*)ms58_580),((T0*)ms67_470));
  1042. }/*]*/
  1043. }
  1044. /*No:CALL_INFIX_MINUS.arg1*/
  1045. void r576update_with(T0* a1){
  1046. T0* _running=NULL;
  1047. T0* _dictionary2=NULL;
  1048. T0* _key2=NULL;
  1049. T0* _key1=NULL;
  1050. T0* _current_type=NULL;
  1051. _current_type=/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/);
  1052. _running=(((T368*)((T368*)(X291run_class(_current_type)))))->_running/*12*/;
  1053. /*IF*/if (((_running)!=((void*)(NULL)))&&((r396count(((T396*)_running)))>(1))) {
  1054. _key1=X291run_time_mark(_current_type);
  1055. _key2=X776to_key(/*X496*/((T0*)(((T808*)((T808*)a1)))->_name/*16*/));
  1056. /*IF*/if (r338has(((T338*)(oBC576dictionary)),_key1)) {
  1057. _dictionary2=r338at(((T338*)(oBC576dictionary)),_key1);
  1058. /*IF*/if (!(r199has(((T199*)_dictionary2),_key2))) {
  1059. r199put(((T199*)_dictionary2),a1,_key2);
  1060. }
  1061. /*FI*/}
  1062. else {
  1063. {T199*n=malloc(sizeof(*n));
  1064. *n=M199;
  1065. r199make(n);
  1066. _dictionary2=(T0*)n;
  1067. }
  1068. r199put(((T199*)_dictionary2),a1,_key2);
  1069. r338put(((T338*)(oBC576dictionary)),_dictionary2,_key1);
  1070. }
  1071. /*FI*/}
  1072. /*FI*/}
  1073. void r576update(T0* a1,T0* a2){
  1074. T0* _running=NULL;
  1075. T0* _current_type=NULL;
  1076. /*IF*/if (X662is_current(a1)) {
  1077. }
  1078.  else if (X662is_manifest_string(a1)) {
  1079. }
  1080. else {
  1081. _current_type=/*X496*/((T0*)(((T808*)((T808*)a2)))->_current_type/*4*/);
  1082. /*IF*/if (X291is_reference(_current_type)) {
  1083. _running=(((T368*)((T368*)(X291run_class(_current_type)))))->_running/*12*/;
  1084. /*IF*/if (((_running)!=((void*)(NULL)))&&((r396count(((T396*)_running)))>(1))) {
  1085. r576update_with(a2);
  1086. }
  1087. /*FI*/}
  1088. /*FI*/}
  1089. /*FI*/}
  1090. T0*oBC576dictionary=NULL;
  1091. /*No:CALL_INFIX_IMPLIES.arguments*/
  1092. void r90short(T90* C){
  1093. /*IF*/if ((X662precedence((((T90*)C))->_target/*8*/))==(13)) {
  1094. X662short((((T90*)C))->_target/*8*/);
  1095. /*[IRF3.6short_print_feature_name*/{T90* C1=C;
  1096. r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T90*)C1))->_feature_name/*24*/);
  1097. }/*]*/
  1098. /*IF*/if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T90*)C))->_arguments/*20*/)))/*)*/))==(13)) {
  1099. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T90*)C))->_arguments/*20*/)))/*)*/);
  1100. }
  1101.  else if ((3)>=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T90*)C))->_arguments/*20*/)))/*)*/))) {
  1102. X662bracketed_short(/*(IRF4.6arg1*/r431first(((T431*)((((T90*)C))->_arguments/*20*/)))/*)*/);
  1103. }
  1104. else {
  1105. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T90*)C))->_arguments/*20*/)))/*)*/);
  1106. }
  1107. /*FI*/}
  1108.  else if ((X662precedence((((T90*)C))->_target/*8*/))<(3)) {
  1109. X662bracketed_short((((T90*)C))->_target/*8*/);
  1110. /*[IRF3.6short_print_feature_name*/{T90* C1=C;
  1111. r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T90*)C1))->_feature_name/*24*/);
  1112. }/*]*/
  1113. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T90*)C))->_arguments/*20*/)))/*)*/);
  1114. }
  1115. else {
  1116. X662short((((T90*)C))->_target/*8*/);
  1117. /*[IRF3.6short_print_feature_name*/{T90* C1=C;
  1118. r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T90*)C1))->_feature_name/*24*/);
  1119. }/*]*/
  1120. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T90*)C))->_arguments/*20*/)))/*)*/);
  1121. }
  1122. /*FI*/}
  1123. T0* r90add_comment(T90* C,T0* a1){
  1124. T0* R=NULL;
  1125. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1126. R=(T0*)C;
  1127. }
  1128. else {
  1129. {T529*n=malloc(sizeof(*n));
  1130. *n=M529;
  1131. r529make(n,(T0*)C,a1);
  1132. R=(T0*)n;
  1133. }
  1134. }
  1135. /*FI*/return R;
  1136. }
  1137. int r90to_integer(T90* C){
  1138. int R=0;
  1139. r90error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T90*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  1140. return R;
  1141. }
  1142. void r90bracketed_short(T90* C){
  1143. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms6_662),((T0*)ms7_662));
  1144. r90short(C);
  1145. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms8_662),((T0*)ms9_662));
  1146. }
  1147. int r90is_a(T90* C,T0* a1){
  1148. int R=0;
  1149. R=X291is_a(X291run_type((((T90*)C))->_result_type/*16*/),X291run_type(X662result_type(a1)));
  1150. /*IF*/if (!(R)) {
  1151. r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T90*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/);
  1152. r90error(X662start_position(a1),((T0*)ms4_662));
  1153. }
  1154. /*FI*/return R;
  1155. }
  1156. /*No:CALL_INFIX_IMPLIES.is_current*/
  1157. void r90make(T90* C,T0* a1,T0* a2,T0* a3){
  1158. T0* _eal=NULL;
  1159. /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
  1160. r683add_position(a2);
  1161. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
  1162. r683fatal_error(((T683*)(oBC364eh)),b1);
  1163. }/*]*/
  1164. }
  1165. /*FI*/{T454*n=malloc(sizeof(*n));
  1166. *n=M454;
  1167. r454make(n,r90operator(),a2);
  1168. C->_feature_name=(T0*)n;
  1169. }
  1170. {T431*n=malloc(sizeof(*n));
  1171. *n=M431;
  1172. /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
  1173. /*]*/
  1174. _eal=(T0*)n;
  1175. }
  1176. r90make_call_1(C,a1,(((T90*)C))->_feature_name/*24*/,_eal);
  1177. }
  1178. /*No:CALL_INFIX_IMPLIES.nb_errors*/
  1179. /*No:CALL_INFIX_IMPLIES.feature_name*/
  1180. /*No:CALL_INFIX_IMPLIES.fz_iinaiv*/
  1181. /*No:CALL_INFIX_IMPLIES.run_feature*/
  1182. /*No:CALL_INFIX_IMPLIES.start_position*/
  1183. /*No:CALL_INFIX_IMPLIES.target*/
  1184. /*No:CALL_INFIX_IMPLIES.precedence*/
  1185. T0* r90to_runnable(T90* C,T0* a1){
  1186. T0* R=NULL;
  1187. T0* _tla=NULL;
  1188. T0* _a=NULL;
  1189. /*IF*/if (((((T90*)C))->_current_type/*4*/)==((void*)(NULL))) {
  1190. r90to_runnable_0(C,a1);
  1191. _a=r431to_runnable(((T431*)((((T90*)C))->_arguments/*20*/)),a1);
  1192. /*IF*/if ((_a)==((void*)(NULL))) {
  1193. r90error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T90*)C))->_arguments/*20*/)))/*)*/),((T0*)ms55_470));
  1194. }
  1195. else {
  1196. C->_arguments=_a;
  1197. }
  1198. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1199. r431match_with(((T431*)((((T90*)C))->_arguments/*20*/)),(((T90*)C))->_run_feature/*12*/);
  1200. }
  1201. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1202. _tla=(((T90*)C))->_result_type/*16*/;
  1203. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  1204. case 239: 
  1205. break;
  1206. default:
  1207. _tla=NULL;
  1208. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  1209. C->_result_type=X291run_type(X662result_type(/*(IRF4.6arg1*/r431first(((T431*)((((T90*)C))->_arguments/*20*/)))/*)*/));
  1210. }
  1211. /*FI*/}
  1212. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1213. R=(T0*)C;
  1214. }
  1215. /*FI*/}
  1216. else {
  1217. R=r90twin(C);
  1218. /*[IRF3.3set_current_type*/((((T90*)(((T90*)R))))->_current_type)=(NULL);
  1219. /*]*/
  1220. R=r90to_runnable(((T90*)R),a1);
  1221. }
  1222. /*FI*/return R;
  1223. }
  1224. /*No:CALL_INFIX_IMPLIES.short_print_feature_name*/
  1225. /*No:CALL_INFIX_IMPLIES.result_type*/
  1226. T0* r90twin(T90* C){
  1227. T0* R=NULL;
  1228. R=malloc(sizeof(*C));
  1229. *((T90*)R)=*C;
  1230. return R;
  1231. }
  1232. /*No:CALL_INFIX_IMPLIES.set_current_type*/
  1233. T0* r90operator(void){
  1234. T0* R=NULL;
  1235. R=((T0*)ms34_473);
  1236. return R;
  1237. }
  1238. /*No:CALL_INFIX_IMPLIES.atomic_precedence*/
  1239. /*No:CALL_INFIX_IMPLIES.us_implies*/
  1240. /*No:CALL_INFIX_IMPLIES.current_type*/
  1241. void r90make_call_1(T90* C,T0* a1,T0* a2,T0* a3){
  1242. C->_target=a1;
  1243. C->_feature_name=a2;
  1244. C->_arguments=a3;
  1245. }
  1246. /*No:CALL_INFIX_IMPLIES.is_manifest_string*/
  1247. /*No:CALL_INFIX_IMPLIES.is_void*/
  1248. void r90to_runnable_0(T90* C,T0* a1){
  1249. C->_current_type=a1;
  1250. r90cpc_to_runnable(C,a1);
  1251. C->_result_type=/*X496*/((T0*)(((T808*)((T808*)((((T90*)C))->_run_feature/*12*/))))->_result_type/*24*/);
  1252. /*IF*/if (((((T90*)C))->_result_type/*16*/)==((void*)(NULL))) {
  1253. r683add_position(X496start_position((((T90*)C))->_run_feature/*12*/));
  1254. r90error((((T454*)((T454*)((((T90*)C))->_feature_name/*24*/))))->_start_position/*8*/,((T0*)ms1_295));
  1255. }
  1256.  else if (X291is_like_current((((T90*)C))->_result_type/*16*/)) {
  1257. C->_result_type=X662result_type((((T90*)C))->_target/*8*/);
  1258. }
  1259. /*FI*/}
  1260. void r90cpc_to_runnable(T90* C,T0* a1){
  1261. T0* _rc=NULL;
  1262. T0* _t=NULL;
  1263. _t=X662to_runnable((((T90*)C))->_target/*8*/,a1);
  1264. /*IF*/if ((_t)==((void*)(NULL))) {
  1265. r683add_position(X662start_position((((T90*)C))->_target/*8*/));
  1266. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  1267. r683fatal_error(((T683*)(oBC364eh)),b1);
  1268. }/*]*/
  1269. }
  1270. /*FI*/C->_target=_t;
  1271. _rc=X291run_class(X662result_type((((T90*)C))->_target/*8*/));
  1272. C->_run_feature=r368get_rf(((T368*)_rc),(T0*)C);
  1273. r576update((((T90*)C))->_target/*8*/,(((T90*)C))->_run_feature/*12*/);
  1274. }
  1275. void r90error(T0* a1,T0* a2){
  1276. r683add_position(a1);
  1277. r683error(((T683*)(oBC364eh)),a2);
  1278. }
  1279. /*No:CALL_INFIX_IMPLIES.fatal_error*/
  1280. /*No:CALL_INFIX_IMPLIES.fz_bad_argument*/
  1281. void r90short_target(T90* C){
  1282. r90bracketed_short(C);
  1283. /*[IRF3.6a_dot*/{T580* C1=((T580*)(oBC364short_print));
  1284. r580hook_or(C1,((T0*)ms58_580),((T0*)ms67_470));
  1285. }/*]*/
  1286. }
  1287. /*No:CALL_INFIX_IMPLIES.arg1*/
  1288. /*No:E_RESULT.short*/
  1289. T0* r715add_comment(T715* C,T0* a1){
  1290. T0* R=NULL;
  1291. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1292. R=(T0*)C;
  1293. }
  1294. else {
  1295. {T529*n=malloc(sizeof(*n));
  1296. *n=M529;
  1297. r529make(n,(T0*)C,a1);
  1298. R=(T0*)n;
  1299. }
  1300. }
  1301. /*FI*/return R;
  1302. }
  1303. int r715to_integer(T715* C){
  1304. int R=0;
  1305. r715error((((T715*)C))->_start_position/*12*/,((T0*)ms69_470));
  1306. return R;
  1307. }
  1308. /*No:E_RESULT.bracketed_short*/
  1309. int r715is_a(T715* C,T0* a1){
  1310. int R=0;
  1311. R=X291is_a(X291run_type((((T715*)C))->_result_type/*16*/),X291run_type(X662result_type(a1)));
  1312. /*IF*/if (!(R)) {
  1313. r683add_position((((T715*)C))->_start_position/*12*/);
  1314. r715error(X662start_position(a1),((T0*)ms4_662));
  1315. }
  1316. /*FI*/return R;
  1317. }
  1318. /*No:E_RESULT.is_current*/
  1319. void r715make(T715* C,T0* a1){
  1320. C->_to_string=((T0*)ms146_473);
  1321. C->_start_position=a1;
  1322. }
  1323. /*No:E_RESULT.to_string*/
  1324. /*No:E_RESULT.fz_iinaiv*/
  1325. /*No:E_RESULT.start_position*/
  1326. /*No:E_RESULT.precedence*/
  1327. T0* r715to_runnable(T715* C,T0* a1){
  1328. T0* R=NULL;
  1329. /*IF*/if (((((T715*)C))->_current_type/*4*/)==((void*)(NULL))) {
  1330. C->_current_type=a1;
  1331. C->_result_type=/*X496*/((T0*)(((T808*)((T808*)(r604top_rf(((T604*)(oBC364small_eiffel)))))))->_result_type/*24*/);
  1332. R=(T0*)C;
  1333. }
  1334. else {
  1335. {T715*n=malloc(sizeof(*n));
  1336. *n=M715;
  1337. r715make(n,(((T715*)C))->_start_position/*12*/);
  1338. R=(T0*)n;
  1339. }
  1340. R=r715to_runnable(((T715*)R),a1);
  1341. }
  1342. /*FI*/return R;
  1343. }
  1344. /*No:E_RESULT.result_type*/
  1345. /*No:E_RESULT.atomic_precedence*/
  1346. /*No:E_RESULT.us_result*/
  1347. /*No:E_RESULT.current_type*/
  1348. /*No:E_RESULT.is_manifest_string*/
  1349. /*No:E_RESULT.is_void*/
  1350. void r715error(T0* a1,T0* a2){
  1351. r683add_position(a1);
  1352. r683error(((T683*)(oBC364eh)),a2);
  1353. }
  1354. /*No:E_RESULT.short_target*/
  1355. int r378short(T378* C){
  1356. int R=0;
  1357. int _i=0;
  1358. _i=1;
  1359. while (!((_i)>((((T235*)((T235*)((((T378*)C))->_list/*0*/))))->_upper/*8*/))) {
  1360. R=(r583short(((T583*)(r235item(((T235*)((((T378*)C))->_list/*0*/)),_i))),R))||(R);
  1361. _i=(_i)+(1);
  1362. }
  1363. return R;
  1364. }
  1365. /*No:CREATION_CLAUSE_LIST.make*/
  1366. T0* r378start_position(T378* C){
  1367. T0* R=NULL;
  1368. R=(((T583*)((T583*)(r235first(((T235*)((((T378*)C))->_list/*0*/)))))))->_start_position/*0*/;
  1369. return R;
  1370. }
  1371. void r378check_expanded_with(T378* C,T0* a1){
  1372. /*IF*/if (((((T235*)((T235*)((((T378*)C))->_list/*0*/))))->_upper/*8*/)>(1)) {
  1373. r683add_type(a1,((T0*)ms65_470));
  1374. r683add_position((((T583*)((T583*)(r235item(((T235*)((((T378*)C))->_list/*0*/)),1)))))->_start_position/*0*/);
  1375. r683add_position((((T583*)((T583*)(r235item(((T235*)((((T378*)C))->_list/*0*/)),2)))))->_start_position/*0*/);
  1376. /*[IRF3.2fatal_error_vtec_2*//*[IRF3.6fatal_error*/{T0* b1=((T0*)ms12_364);
  1377. r683fatal_error(((T683*)(oBC364eh)),b1);
  1378. }/*]*/
  1379. /*]*/
  1380. }
  1381. /*FI*/r583check_expanded_with(((T583*)(r235item(((T235*)((((T378*)C))->_list/*0*/)),1))),a1);
  1382. }
  1383. T0* r378get_clause(T378* C,T0* a1){
  1384. T0* R=NULL;
  1385. int _i=0;
  1386. _i=1;
  1387. while (!(((_i)>((((T235*)((T235*)((((T378*)C))->_list/*0*/))))->_upper/*8*/))||(r583has(((T583*)(r235item(((T235*)((((T378*)C))->_list/*0*/)),_i))),a1)))) {
  1388. _i=(_i)+(1);
  1389. }
  1390. /*IF*/if ((_i)<=((((T235*)((T235*)((((T378*)C))->_list/*0*/))))->_upper/*8*/)) {
  1391. R=r235item(((T235*)((((T378*)C))->_list/*0*/)),_i);
  1392. }
  1393. /*FI*/return R;
  1394. }
  1395. /*No:CREATION_CLAUSE_LIST.list*/
  1396. T0* r378expanded_initializer(T378* C,T0* a1){
  1397. T0* R=NULL;
  1398. R=r583expanded_initializer(((T583*)(r235item(((T235*)((((T378*)C))->_list/*0*/)),1))),a1);
  1399. return R;
  1400. }
  1401. /*No:CREATION_CLAUSE_LIST.fz_cbe*/
  1402. /*No:CREATION_CLAUSE_LIST.fatal_error_vtec_2*/
  1403. /*No:CREATION_CLAUSE_LIST.add_last*/
  1404. /*No:CREATION_CLAUSE_LIST.fatal_error*/
  1405. void r541short(T541* C){
  1406. int _i=0;
  1407. r343short(((T343*)(r522item(((T522*)((((T541*)C))->_list/*0*/)),1))),((T0*)ms1_541),((T0*)ms2_541));
  1408. _i=2;
  1409. while (!((_i)>((((T522*)((T522*)((((T541*)C))->_list/*0*/))))->_upper/*8*/))) {
  1410. r343short(((T343*)(r522item(((T522*)((((T541*)C))->_list/*0*/)),_i))),((T0*)ms3_541),((T0*)ms4_541));
  1411. _i=(_i)+(1);
  1412. }
  1413. r580hook(((T580*)(oBC364short_print)),((T0*)ms5_541));
  1414. }
  1415. /*No:RUN_REQUIRE.make*/
  1416. /*No:RUN_REQUIRE.list*/
  1417.  
  1418.