source: to-imperative/trunk/bootstrap/compiler/rfp_asail_java.cc @ 2012

Last change on this file since 2012 was 2012, checked in by orlov, 15 years ago
  • Fresh-generated compiler sources.
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 133.2 KB
Line 
1#include <rf_core.hh>
2#include <refal/Access.hh>
3#include <refal/Apply.hh>
4#include <refal/Box.hh>
5#include <refal/Arithm.hh>
6#include <refal/Compare.hh>
7#include <refal/Convert.hh>
8#include <refal/List.hh>
9#include <refal/JavaMangle.hh>
10#include <refal/Class.hh>
11#include <refal/Table.hh>
12#include "rfpc.hh"
13#include "rfp_helper.hh"
14#include <refal/StdIO.hh>
15
16namespace refal
17{
18
19using namespace rfrt;
20
21namespace rfp__asail__java
22{
23
24static Expr Int;
25
26static Expr Exports;
27
28static Expr Inputs;
29
30static Expr Module_m_Name;
31
32static Expr Entry;
33
34static Expr Entry_m_Name;
35
36static Expr Current_m_Namespace;
37
38static Expr Func_m_Name;
39
40static Expr Ress;
41
42static Expr Result;
43
44static Expr Res_m_Assigns;
45
46static Expr Iter_m_Vars;
47
48static Expr Free_m_Idx;
49
50RF_DECL (RFP_m_ASAIL_m_To_m_Java);
51
52RF_DECL (ASAIL_m_To_m_Java);
53
54RF_DECL (Declare_m_Results);
55
56RF_DECL (Expr_m_To_m_Java);
57
58RF_DECL (Expr_m_Ref_m_To_m_Java);
59
60RF_DECL (Term_m_Ref_m_To_m_Java);
61
62RF_DECL (Expr_m_Int_m_To_m_Java);
63
64RF_DECL (Cond_m_To_m_Java);
65
66RF_DECL (Infix_m_To_m_Java);
67
68RF_DECL (Op_m_Arg_m_To_m_Java);
69
70RF_DECL (Step_m_To_m_Java);
71
72RF_DECL (Const_m_Expr_m_To_m_Java);
73
74RF_DECL (Const_m_Expr_m_Aux);
75
76RF_DECL (Symbol_m_To_m_Java);
77
78RF_DECL (Int_m_Args_m_To_m_Java);
79
80RF_DECL (Var_m_Args_m_To_m_Java);
81
82RF_DECL (Expr_m_Args_m_To_m_Java);
83
84RF_DECL (Name_m_To_m_Java);
85
86RF_DECL (Var_m_To_m_Java);
87
88RF_DECL (Access_m_Mode);
89
90RF_DECL (Free_m_Index);
91
92RF_DECL (Cond_m_To_m_Java__0);
93
94RF_DECL (Term_m_Ref_m_To_m_Java__0);
95
96RF_DECL (Expr_m_Int_m_To_m_Java__0);
97
98static Expr _c_0;
99
100static Expr _c_1;
101
102static Expr _c_2;
103
104static Expr _c_5;
105
106static Expr _c_3;
107
108static Expr _c_4;
109
110static Expr _c_6;
111
112static Expr _c_181;
113
114static Expr _c_182;
115
116static Expr _c_7;
117
118static Expr _c_8;
119
120static Expr _c_9;
121
122static Expr _c_10;
123
124static Expr _c_11;
125
126static Expr _c_12;
127
128static Expr _c_13;
129
130static Expr _c_14;
131
132static Expr _c_15;
133
134static Expr _c_16;
135
136static Expr _c_159;
137
138static Expr _c_17;
139
140static Expr _c_183;
141
142static Expr _c_18;
143
144static Expr _c_19;
145
146static Expr _c_20;
147
148static Expr _c_21;
149
150static Expr _c_22;
151
152static Expr _c_23;
153
154static Expr _c_24;
155
156static Expr _c_25;
157
158static Expr _c_26;
159
160static Expr _c_27;
161
162static Expr _c_28;
163
164static Expr _c_29;
165
166static Expr _c_30;
167
168static Expr _c_48;
169
170static Expr _c_31;
171
172static Expr _c_32;
173
174static Expr _c_33;
175
176static Expr _c_34;
177
178static Expr _c_35;
179
180static Expr _c_36;
181
182static Expr _c_37;
183
184static Expr _c_184;
185
186static Expr _c_38;
187
188static Expr _c_39;
189
190static Expr _c_40;
191
192static Expr _c_42;
193
194static Expr _c_41;
195
196static Expr _c_43;
197
198static Expr _c_44;
199
200static Expr _c_45;
201
202static Expr _c_46;
203
204static Expr _c_47;
205
206static Expr _c_49;
207
208static Expr _c_50;
209
210static Expr _c_51;
211
212static Expr _c_52;
213
214static Expr _c_53;
215
216static Expr _c_185;
217
218static Expr _c_99;
219
220static Expr _c_54;
221
222static Expr _c_55;
223
224static Expr _c_56;
225
226static Expr _c_57;
227
228static Expr _c_58;
229
230static Expr _c_59;
231
232static Expr _c_60;
233
234static Expr _c_61;
235
236static Expr _c_62;
237
238static Expr _c_63;
239
240static Expr _c_64;
241
242static Expr _c_65;
243
244static Expr _c_66;
245
246static Expr _c_67;
247
248static Expr _c_68;
249
250static Expr _c_69;
251
252static Expr _c_70;
253
254static Expr _c_71;
255
256static Expr _c_72;
257
258static Expr _c_73;
259
260static Expr _c_74;
261
262static Expr _c_75;
263
264static Expr _c_76;
265
266static Expr _c_77;
267
268static Expr _c_95;
269
270static Expr _c_78;
271
272static Expr _c_79;
273
274static Expr _c_80;
275
276static Expr _c_81;
277
278static Expr _c_82;
279
280static Expr _c_83;
281
282static Expr _c_84;
283
284static Expr _c_85;
285
286static Expr _c_86;
287
288static Expr _c_87;
289
290static Expr _c_88;
291
292static Expr _c_89;
293
294static Expr _c_90;
295
296static Expr _c_91;
297
298static Expr _c_92;
299
300static Expr _c_93;
301
302static Expr _c_94;
303
304static Expr _c_96;
305
306static Expr _c_97;
307
308static Expr _c_98;
309
310static Expr _c_100;
311
312static Expr _c_101;
313
314static Expr _c_102;
315
316static Expr _c_103;
317
318static Expr _c_104;
319
320static Expr _c_105;
321
322static Expr _c_106;
323
324static Expr _c_107;
325
326static Expr _c_108;
327
328static Expr _c_109;
329
330static Expr _c_110;
331
332static Expr _c_111;
333
334static Expr _c_112;
335
336static Expr _c_113;
337
338static Expr _c_154;
339
340static Expr _c_114;
341
342static Expr _c_115;
343
344static Expr _c_116;
345
346static Expr _c_117;
347
348static Expr _c_118;
349
350static Expr _c_119;
351
352static Expr _c_120;
353
354static Expr _c_121;
355
356static Expr _c_122;
357
358static Expr _c_123;
359
360static Expr _c_124;
361
362static Expr _c_125;
363
364static Expr _c_126;
365
366static Expr _c_127;
367
368static Expr _c_128;
369
370static Expr _c_129;
371
372static Expr _c_130;
373
374static Expr _c_131;
375
376static Expr _c_132;
377
378static Expr _c_133;
379
380static Expr _c_134;
381
382static Expr _c_135;
383
384static Expr _c_136;
385
386static Expr _c_137;
387
388static Expr _c_138;
389
390static Expr _c_139;
391
392static Expr _c_140;
393
394static Expr _c_141;
395
396static Expr _c_142;
397
398static Expr _c_143;
399
400static Expr _c_144;
401
402static Expr _c_145;
403
404static Expr _c_146;
405
406static Expr _c_147;
407
408static Expr _c_148;
409
410static Expr _c_149;
411
412static Expr _c_150;
413
414static Expr _c_151;
415
416static Expr _c_152;
417
418static Expr _c_153;
419
420static Expr _c_155;
421
422static Expr _c_156;
423
424static Expr _c_157;
425
426static Expr _c_158;
427
428static Expr _c_160;
429
430static Expr _c_161;
431
432static Expr _c_162;
433
434static Expr _c_163;
435
436static Expr _c_164;
437
438static Expr _c_165;
439
440static Expr _c_167;
441
442static Expr _c_166;
443
444static Expr _c_168;
445
446static Expr _c_169;
447
448static Expr _c_170;
449
450static Expr _c_171;
451
452static Expr _c_172;
453
454static Expr _c_173;
455
456static Expr _c_174;
457
458static Expr _c_175;
459
460static Expr _c_176;
461
462static Expr _c_177;
463
464static Expr _c_178;
465
466static Expr _c_179;
467
468static Expr _c_180;
469
470RF_FUNC (RFP_m_ASAIL_m_To_m_Java, (RF_ARG _v_arg1, _v_arg2, _v_arg3;;), (RF_RES _v_res1, _v_res2, _v_res3;;))
471  uintptr_t _v_len1 = (_v_arg3.get_len () + 2);
472  uintptr_t _v_len2 = 2;
473  if ((_v_len1 < _v_len2))
474  {
475    RF_FUNC_ERROR (unexpected_fail);
476  }
477  uintptr_t _v_len__asail = (_v_len1 - _v_len2);
478  Expr _v_compose1 ((_v_arg1 + _v_arg2 () + _v_arg3));
479  if (_v_compose1.symbol_at (0))
480  {
481    RF_FUNC_ERROR (unexpected_fail);
482  }
483  if (_v_compose1.symbol_at (1))
484  {
485    RF_FUNC_ERROR (unexpected_fail);
486  }
487  Expr _v_deref__compose1 (_v_compose1, 0);
488  Expr _v_deref__compose12 (_v_compose1, 1);
489  uintptr_t _v_len3 = _v_deref__compose12.get_len ();
490  uintptr_t _v_len4 = 0;
491  if ((_v_len3 < _v_len4))
492  {
493    RF_FUNC_ERROR (unexpected_fail);
494  }
495  uintptr_t _v_len__exports = (_v_len3 - _v_len4);
496  uintptr_t _v_len5 = _v_deref__compose1.get_len ();
497  uintptr_t _v_len6 = 0;
498  if ((_v_len5 < _v_len6))
499  {
500    RF_FUNC_ERROR (unexpected_fail);
501  }
502  uintptr_t _v_len__ModuleName = (_v_len5 - _v_len6);
503  Expr _ve_asail (_v_compose1, 2, _v_len__asail);
504  Expr _ve_ModuleName (_v_deref__compose1, 0, _v_len__ModuleName);
505  Expr _ve_exports (_v_deref__compose12, 0, _v_len__exports);
506  RF_CALL (Box::Store, (Free_m_Idx, empty), /*void*/);
507  RF_CALL (rfp__helper::RFP_m_Clear_m_Table, Iter_m_Vars, /*void*/);
508  RF_CALL (rfp__helper::RFP_m_Clear_m_Table, Inputs, /*void*/);
509  {
510    {
511      Expr _v_Lookup1;
512      if (!RF_CALL (Table::Lookup, (rfp__helper::RFP_m_Options, _c_0), _v_Lookup1))
513      {
514        goto _block1__branch1;
515      }
516      RF_CALL (Box::Store, (Int, _v_Lookup1), /*void*/);
517      goto _block1;
518    }
519  _block1__branch1: {}
520    RF_CALL (Box::Store, (Int, _c_1), /*void*/);
521  }
522_block1: {}
523  RF_CALL (Box::Store, (Exports, _ve_exports), /*void*/);
524  RF_CALL (Box::Store, (Current_m_Namespace, _ve_ModuleName), /*void*/);
525  RF_CALL (Box::Store, (Entry, (_ve_ModuleName + _c_2) ()), /*void*/);
526  RF_CALL (Box::Store, (Entry_m_Name, empty), /*void*/);
527  Expr _v_Intersperse1;
528  RF_CALL (List::Intersperse, (_c_3, _ve_ModuleName), _v_Intersperse1);
529  RF_CALL (Box::Store, (Module_m_Name, _v_Intersperse1), /*void*/);
530  Expr _ve_java_m_module_m_name;
531  RF_CALL (JavaMangle::Rfp2Java, _ve_ModuleName, _ve_java_m_module_m_name);
532  {
533    {
534      Expr _v_ASAIL_m_To_m_Java1;
535      RF_CALL (ASAIL_m_To_m_Java, _ve_asail, _v_ASAIL_m_To_m_Java1);
536      uintptr_t _v_len7 = _v_ASAIL_m_To_m_Java1.get_len ();
537      uintptr_t _v_len8 = 0;
538      if ((_v_len7 < (_v_len8 + 1)))
539      {
540        goto _block2__branch1;
541      }
542      uintptr_t _v_len__java = (_v_len7 - _v_len8);
543      Expr _vv_java (_v_ASAIL_m_To_m_Java1, 0, _v_len__java);
544      Expr _ve_entry;
545      {
546        {
547          Expr _v__q_1;
548          RF_CALL (Box::_q_, Entry_m_Name, _v__q_1);
549          uintptr_t _v_len9 = _v__q_1.get_len ();
550          uintptr_t _v_len10 = 0;
551          if ((_v_len9 < (_v_len10 + 1)))
552          {
553            goto _block3__branch1;
554          }
555          uintptr_t _v_len__name = (_v_len9 - _v_len10);
556          Expr _vv_name (_v__q_1, 0, _v_len__name);
557          _ve_entry = (_c_11 + (_c_10 + ((_c_5 + _ve_java_m_module_m_name + _c_4) () + (_c_8 + (_vv_name + _c_6) () + _c_7) () + _c_9) () + _c_7) ());
558          goto _block3;
559        }
560      _block3__branch1: {}
561        _ve_entry = empty;
562      }
563    _block3: {}
564      RF_CALL (Table::Domain, Inputs, _v_res2);
565      _v_res1 = _ve_java_m_module_m_name;
566      _v_res3 = (_c_13 + _ve_java_m_module_m_name + _c_12 + (_vv_java + _ve_entry) () + _c_7) ();
567      goto _block2;
568    }
569  _block2__branch1: {}
570    _v_res1 = _ve_java_m_module_m_name;
571    _v_res2 = empty;
572    _v_res3 = empty;
573  }
574_block2: {}
575RF_END
576
577RF_FUNC (ASAIL_m_To_m_Java, (RF_ARG _ve_asail;;), (RF_RES _v_res1;;))
578  {
579    {
580      uintptr_t _v_len1 = _ve_asail.get_len ();
581      uintptr_t _v_len2 = 1;
582      if ((_v_len1 < _v_len2))
583      {
584        goto _block1__branch1;
585      }
586      uintptr_t _v_len__rest = (_v_len1 - _v_len2);
587      Expr _vt_item (_ve_asail, 0, 1);
588      Expr _ve_rest (_ve_asail, 1, _v_len__rest);
589      Expr _ve_java_m_item;
590      {
591        {
592          if (_vt_item.symbol_at (0))
593          {
594            goto _block2__branch1;
595          }
596          Expr _v_deref__item (_vt_item, 0);
597          uintptr_t _v_len3 = _v_deref__item.get_len ();
598          uintptr_t _v_len4 = 4;
599          if ((_v_len3 < _v_len4))
600          {
601            goto _block2__branch1;
602          }
603          uintptr_t _v_len__body = (_v_len3 - _v_len4);
604          if (_v_deref__item.symbol_at (2))
605          {
606            goto _block2__branch1;
607          }
608          if (_v_deref__item.symbol_at (3))
609          {
610            goto _block2__branch1;
611          }
612          Expr _v_deref__deref__item (_v_deref__item, 2);
613          Expr _v_deref__deref__item2 (_v_deref__item, 3);
614          uintptr_t _v_len5 = _v_deref__deref__item2.get_len ();
615          uintptr_t _v_len6 = 0;
616          if ((_v_len5 < _v_len6))
617          {
618            goto _block2__branch1;
619          }
620          uintptr_t _v_len__ress = (_v_len5 - _v_len6);
621          uintptr_t _v_len7 = _v_deref__deref__item.get_len ();
622          uintptr_t _v_len8 = 0;
623          if ((_v_len7 < _v_len8))
624          {
625            goto _block2__branch1;
626          }
627          uintptr_t _v_len__args = (_v_len7 - _v_len8);
628          if (!_v_deref__item.symbol_at (0))
629          {
630            goto _block2__branch1;
631          }
632          Expr _vs_tag (_v_deref__item, 0, 1);
633          Expr _vt_name (_v_deref__item, 1, 1);
634          Expr _ve_body (_v_deref__item, 4, _v_len__body);
635          Expr _ve_args (_v_deref__deref__item, 0, _v_len__args);
636          Expr _ve_ress (_v_deref__deref__item2, 0, _v_len__ress);
637          Expr _ve_return_m_type;
638          Expr _ve_return;
639          {
640            {
641              if (!_vs_tag.term_eq (_c_14, 0))
642              {
643                goto _block3__branch1;
644              }
645              _ve_return_m_type = _c_15;
646              _ve_return = empty;
647              goto _block3;
648            }
649          _block3__branch1: {}
650            if (!_vs_tag.term_eq (_c_16, 0))
651            {
652              goto _block2__branch1;
653            }
654            _ve_return_m_type = _c_17;
655            _ve_return = _c_18;
656          }
657        _block3: {}
658          RF_CALL (Box::Store, (Ress, _ve_ress), /*void*/);
659          RF_CALL (rfp__helper::RFP_m_Clear_m_Table, Result, /*void*/);
660          {
661            {
662              Expr _v__q_1;
663              RF_CALL (Box::_q_, Entry, _v__q_1);
664              if ((_v__q_1.get_len () != 1))
665              {
666                goto _block4__branch1;
667              }
668              if (!_vt_name.term_eq (_v__q_1, 0))
669              {
670                goto _block4__branch1;
671              }
672              Expr _v_Rfp2Java1;
673              RF_CALL (JavaMangle::Rfp2Java, _vt_name, _v_Rfp2Java1);
674              RF_CALL (Box::Store, (Entry_m_Name, _v_Rfp2Java1), /*void*/);
675              goto _block4;
676            }
677          _block4__branch1: {}
678          }
679        _block4: {}
680          Expr _v_Name_m_To_m_Java1;
681          RF_CALL (Name_m_To_m_Java, _vt_name, _v_Name_m_To_m_Java1);
682          RF_CALL (Box::Store, (Func_m_Name, _v_Name_m_To_m_Java1), /*void*/);
683          Expr _v_Access_m_Mode1;
684          RF_CALL (Access_m_Mode, _vt_name, _v_Access_m_Mode1);
685          Expr _v__q_2;
686          RF_CALL (Box::_q_, Func_m_Name, _v__q_2);
687          Expr _v_Var_m_Args_m_To_m_Java1;
688          RF_CALL (Var_m_Args_m_To_m_Java, (_c_20 + _ve_args + _c_19 + _ve_ress), _v_Var_m_Args_m_To_m_Java1);
689          Expr _v_ASAIL_m_To_m_Java1;
690          RF_CALL (ASAIL_m_To_m_Java, _ve_body, _v_ASAIL_m_To_m_Java1);
691          _ve_java_m_item = (_c_11 + (_c_24 + _v_Access_m_Mode1 + _c_23 + _ve_return_m_type + _c_23 + _v__q_2 + _c_22 + _v_Var_m_Args_m_To_m_Java1 + _c_21) () + (_c_25 + (_v_ASAIL_m_To_m_Java1 + _ve_return) () + _c_7) ());
692          goto _block2;
693        }
694      _block2__branch1: {}
695        {
696          if (_vt_item.symbol_at (0))
697          {
698            goto _block2__branch2;
699          }
700          Expr _v_deref__item2 (_vt_item, 0);
701          if ((_v_deref__item2.get_len () != 2))
702          {
703            goto _block2__branch2;
704          }
705          if (!_c_26.term_eq (_v_deref__item2, 0))
706          {
707            goto _block2__branch2;
708          }
709          Expr _vt_name (_v_deref__item2, 1, 1);
710          RF_CALL (Table::Bind, (rfpc::RFP_m_Trace, _vt_name, empty), /*void*/);
711          _ve_java_m_item = empty;
712          goto _block2;
713        }
714      _block2__branch2: {}
715        {
716          if (_vt_item.symbol_at (0))
717          {
718            goto _block2__branch3;
719          }
720          Expr _v_deref__item3 (_vt_item, 0);
721          uintptr_t _v_len9 = _v_deref__item3.get_len ();
722          uintptr_t _v_len10 = 2;
723          if ((_v_len9 < _v_len10))
724          {
725            goto _block2__branch3;
726          }
727          uintptr_t _v_len__body2 = (_v_len9 - _v_len10);
728          if (_v_deref__item3.symbol_at (1))
729          {
730            goto _block2__branch3;
731          }
732          Expr _v_deref__deref__item3 (_v_deref__item3, 1);
733          uintptr_t _v_len11 = _v_deref__deref__item3.get_len ();
734          uintptr_t _v_len12 = 0;
735          if ((_v_len11 < _v_len12))
736          {
737            goto _block2__branch3;
738          }
739          uintptr_t _v_len__cond = (_v_len11 - _v_len12);
740          if (!_c_27.term_eq (_v_deref__item3, 0))
741          {
742            goto _block2__branch3;
743          }
744          Expr _ve_body (_v_deref__item3, 2, _v_len__body2);
745          Expr _ve_cond (_v_deref__deref__item3, 0, _v_len__cond);
746          Expr _vs_acc;
747          RF_CALL (Box::Box, empty, _vs_acc);
748          Expr _ve_j_m_cond;
749          RF_CALL (Cond_m_To_m_Java, (_vs_acc, _ve_cond), _ve_j_m_cond);
750          Expr _ve_if_m_yes_m_assigns;
751          Expr _ve_if_m_not_m_assigns;
752          {
753            {
754              if ((_v_len__cond != 1))
755              {
756                goto _block5__branch1;
757              }
758              if (_ve_cond.symbol_at (0))
759              {
760                goto _block5__branch1;
761              }
762              Expr _v_deref__cond (_ve_cond, 0);
763              if ((_v_deref__cond.get_len () != 2))
764              {
765                goto _block5__branch1;
766              }
767              if (_v_deref__cond.symbol_at (1))
768              {
769                goto _block5__branch1;
770              }
771              Expr _v_deref__deref__cond (_v_deref__cond, 1);
772              uintptr_t _v_len13 = _v_deref__deref__cond.get_len ();
773              uintptr_t _v_len14 = 1;
774              if ((_v_len13 < _v_len14))
775              {
776                goto _block5__branch1;
777              }
778              uintptr_t _v_len___e__e_tmp_m_rfp__asail__javarf_m_123_m_30 = (_v_len13 - _v_len14);
779              if (!_c_29.term_eq (_v_deref__cond, 0))
780              {
781                goto _block5__branch1;
782              }
783              if (!_c_28.term_eq (_v_deref__deref__cond, 0))
784              {
785                goto _block5__branch1;
786              }
787              Expr _ve__e__e_tmp_m_rfp__asail__javarf_m_123_m_30 (_v_deref__deref__cond, 1, _v_len___e__e_tmp_m_rfp__asail__javarf_m_123_m_30);
788              RF_CALL (Box::_q_, Res_m_Assigns, _ve_if_m_not_m_assigns);
789              RF_CALL (Box::Store, (Res_m_Assigns, empty), /*void*/);
790              _ve_if_m_yes_m_assigns = empty;
791              goto _block5;
792            }
793          _block5__branch1: {}
794            RF_CALL (Box::_q_, Res_m_Assigns, _ve_if_m_yes_m_assigns);
795            RF_CALL (Box::Store, (Res_m_Assigns, empty), /*void*/);
796            _ve_if_m_not_m_assigns = empty;
797          }
798        _block5: {}
799          Expr _v__q_3;
800          RF_CALL (Box::_q_, _vs_acc, _v__q_3);
801          Expr _v_ASAIL_m_To_m_Java2;
802          RF_CALL (ASAIL_m_To_m_Java, _ve_body, _v_ASAIL_m_To_m_Java2);
803          _ve_java_m_item = (_v__q_3 + (_c_31 + _ve_j_m_cond + _c_30) () + (_c_25 + (_ve_if_m_yes_m_assigns + _v_ASAIL_m_To_m_Java2) () + _c_7) () + _ve_if_m_not_m_assigns);
804          goto _block2;
805        }
806      _block2__branch3: {}
807        {
808          if (_vt_item.symbol_at (0))
809          {
810            goto _block2__branch4;
811          }
812          Expr _v_deref__item4 (_vt_item, 0);
813          uintptr_t _v_len15 = _v_deref__item4.get_len ();
814          uintptr_t _v_len16 = 5;
815          if ((_v_len15 < _v_len16))
816          {
817            goto _block2__branch4;
818          }
819          uintptr_t _v_len__body3 = (_v_len15 - _v_len16);
820          if (_v_deref__item4.symbol_at (1))
821          {
822            goto _block2__branch4;
823          }
824          if (_v_deref__item4.symbol_at (2))
825          {
826            goto _block2__branch4;
827          }
828          if (_v_deref__item4.symbol_at (3))
829          {
830            goto _block2__branch4;
831          }
832          if (_v_deref__item4.symbol_at (4))
833          {
834            goto _block2__branch4;
835          }
836          Expr _v_deref__deref__item4 (_v_deref__item4, 1);
837          Expr _v_deref__deref__item42 (_v_deref__item4, 2);
838          Expr _v_deref__deref__item43 (_v_deref__item4, 3);
839          Expr _v_deref__deref__item44 (_v_deref__item4, 4);
840          uintptr_t _v_len17 = _v_deref__deref__item4.get_len ();
841          uintptr_t _v_len18 = 0;
842          if ((_v_len17 < _v_len18))
843          {
844            goto _block2__branch4;
845          }
846          uintptr_t _v_len__cont_m_label = (_v_len17 - _v_len18);
847          uintptr_t _v_len19 = _v_deref__deref__item42.get_len ();
848          uintptr_t _v_len20 = 0;
849          if ((_v_len19 < _v_len20))
850          {
851            goto _block2__branch4;
852          }
853          uintptr_t _v_len__break_m_label = (_v_len19 - _v_len20);
854          uintptr_t _v_len21 = _v_deref__deref__item44.get_len ();
855          uintptr_t _v_len22 = 0;
856          if ((_v_len21 < _v_len22))
857          {
858            goto _block2__branch4;
859          }
860          uintptr_t _v_len__step = (_v_len21 - _v_len22);
861          uintptr_t _v_len23 = _v_deref__deref__item43.get_len ();
862          uintptr_t _v_len24 = 0;
863          if ((_v_len23 < _v_len24))
864          {
865            goto _block2__branch4;
866          }
867          uintptr_t _v_len__cond2 = (_v_len23 - _v_len24);
868          if (!_c_32.term_eq (_v_deref__item4, 0))
869          {
870            goto _block2__branch4;
871          }
872          Expr _ve_body (_v_deref__item4, 5, _v_len__body3);
873          Expr _ve_cont_m_label (_v_deref__deref__item4, 0, _v_len__cont_m_label);
874          Expr _ve_break_m_label (_v_deref__deref__item42, 0, _v_len__break_m_label);
875          Expr _ve_cond (_v_deref__deref__item43, 0, _v_len__cond2);
876          Expr _ve_step (_v_deref__deref__item44, 0, _v_len__step);
877          Expr _ve_cont;
878          {
879            {
880              if ((_v_len__cont_m_label != 1))
881              {
882                goto _block6__branch1;
883              }
884              Expr _vt__e__e_tmp_m_rfp__asail__javarf_m_136_m_25 (_ve_cont_m_label, 0, 1);
885              Expr _v_Rfp2Java2;
886              RF_CALL (JavaMangle::Rfp2Java, (_c_33 + _ve_cont_m_label) (), _v_Rfp2Java2);
887              _ve_cont = (_v_Rfp2Java2 + _c_34);
888              goto _block6;
889            }
890          _block6__branch1: {}
891            _ve_cont = empty;
892          }
893        _block6: {}
894          Expr _ve_break;
895          {
896            {
897              if ((_v_len__break_m_label != 1))
898              {
899                goto _block7__branch1;
900              }
901              Expr _vt__e__e_tmp_m_rfp__asail__javarf_m_139_m_26 (_ve_break_m_label, 0, 1);
902              Expr _v_Rfp2Java3;
903              RF_CALL (JavaMangle::Rfp2Java, (_c_33 + _ve_break_m_label) (), _v_Rfp2Java3);
904              _ve_break = (_v_Rfp2Java3 + _c_34);
905              goto _block7;
906            }
907          _block7__branch1: {}
908            _ve_break = empty;
909          }
910        _block7: {}
911          Expr _vs_acc;
912          RF_CALL (Box::Box, empty, _vs_acc);
913          RF_CALL (Cond_m_To_m_Java, (_vs_acc, _ve_cond), _ve_cond);
914          Expr _ve_split_m_vars;
915          {
916            {
917              if ((_v_len__step != 1))
918              {
919                goto _block8__branch1;
920              }
921              if (_ve_step.symbol_at (0))
922              {
923                goto _block8__branch1;
924              }
925              Expr _v_deref__step (_ve_step, 0);
926              uintptr_t _v_len25 = _v_deref__step.get_len ();
927              uintptr_t _v_len26 = 1;
928              if ((_v_len25 < _v_len26))
929              {
930                goto _block8__branch1;
931              }
932              uintptr_t _v_len__var = (_v_len25 - _v_len26);
933              if (!_v_deref__step.symbol_at (0))
934              {
935                goto _block8__branch1;
936              }
937              Expr _vs_d (_v_deref__step, 0, 1);
938              Expr _ve_var (_v_deref__step, 1, _v_len__var);
939              {
940                {
941                  if (!_vs_d.term_eq (_c_35, 0))
942                  {
943                    goto _block9__branch1;
944                  }
945                  goto _block9;
946                }
947              _block9__branch1: {}
948                if (!_vs_d.term_eq (_c_36, 0))
949                {
950                  goto _block8__branch1;
951                }
952              }
953            _block9: {}
954              Expr _v_Lookup1;
955              if (!RF_CALL (Table::Lookup, (Iter_m_Vars, _ve_var), _v_Lookup1))
956              {
957                goto _block1__branch1;
958              }
959              uintptr_t _v_len27 = _v_Lookup1.get_len ();
960              uintptr_t _v_len28 = 2;
961              if ((_v_len27 < _v_len28))
962              {
963                goto _block1__branch1;
964              }
965              uintptr_t _v_len__new_m_var = (_v_len27 - _v_len28);
966              Expr _ve_new_m_var (_v_Lookup1, 0, _v_len__new_m_var);
967              Expr _vt_var1 (_v_Lookup1, _v_len__new_m_var, 1);
968              Expr _vt_var2 (_v_Lookup1, (_v_len__new_m_var + 1), 1);
969              Expr _v_Rfp2Java4;
970              RF_CALL (JavaMangle::Rfp2Java, _vt_var1, _v_Rfp2Java4);
971              Expr _v_Rfp2Java5;
972              RF_CALL (JavaMangle::Rfp2Java, _vt_var2, _v_Rfp2Java5);
973              _ve_split_m_vars = ((_c_39 + _v_Rfp2Java4 + _c_38 + _ve_new_m_var + _c_37) () + (_c_39 + _v_Rfp2Java5 + _c_38 + _ve_new_m_var + _c_40) ());
974              goto _block8;
975            }
976          _block8__branch1: {}
977            _ve_split_m_vars = empty;
978          }
979        _block8: {}
980          Expr _v__q_4;
981          RF_CALL (Box::_q_, _vs_acc, _v__q_4);
982          Expr _v_Step_m_To_m_Java1;
983          RF_CALL (Step_m_To_m_Java, _ve_step, _v_Step_m_To_m_Java1);
984          Expr _v__q_5;
985          RF_CALL (Box::_q_, Res_m_Assigns, _v__q_5);
986          RF_CALL (Box::Store, (Res_m_Assigns, empty), /*void*/);
987          Expr _v_ASAIL_m_To_m_Java3;
988          RF_CALL (ASAIL_m_To_m_Java, _ve_body, _v_ASAIL_m_To_m_Java3);
989          _ve_java_m_item = (_v__q_4 + (_ve_break + _ve_cont + _c_42 + _ve_cond + _c_41 + _v_Step_m_To_m_Java1 + _c_30) () + (_c_25 + (_ve_split_m_vars + _v__q_5 + _v_ASAIL_m_To_m_Java3) () + _c_7) ());
990          goto _block2;
991        }
992      _block2__branch4: {}
993        {
994          if (_vt_item.symbol_at (0))
995          {
996            goto _block2__branch5;
997          }
998          Expr _v_deref__item5 (_vt_item, 0);
999          uintptr_t _v_len29 = _v_deref__item5.get_len ();
1000          uintptr_t _v_len30 = 2;
1001          if ((_v_len29 < _v_len30))
1002          {
1003            goto _block2__branch5;
1004          }
1005          uintptr_t _v_len__body4 = (_v_len29 - _v_len30);
1006          if (_v_deref__item5.symbol_at (1))
1007          {
1008            goto _block2__branch5;
1009          }
1010          Expr _v_deref__deref__item5 (_v_deref__item5, 1);
1011          uintptr_t _v_len31 = _v_deref__deref__item5.get_len ();
1012          uintptr_t _v_len32 = 0;
1013          if ((_v_len31 < _v_len32))
1014          {
1015            goto _block2__branch5;
1016          }
1017          uintptr_t _v_len__label = (_v_len31 - _v_len32);
1018          if (!_c_33.term_eq (_v_deref__item5, 0))
1019          {
1020            goto _block2__branch5;
1021          }
1022          Expr _ve_body (_v_deref__item5, 2, _v_len__body4);
1023          Expr _ve_label (_v_deref__deref__item5, 0, _v_len__label);
1024          Expr _v_Rfp2Java6;
1025          RF_CALL (JavaMangle::Rfp2Java, (_c_33 + _ve_label) (), _v_Rfp2Java6);
1026          Expr _v_ASAIL_m_To_m_Java4;
1027          RF_CALL (ASAIL_m_To_m_Java, _ve_body, _v_ASAIL_m_To_m_Java4);
1028          _ve_java_m_item = (_v_Rfp2Java6 + _c_43 + _v_ASAIL_m_To_m_Java4 () + _c_7) ();
1029          goto _block2;
1030        }
1031      _block2__branch5: {}
1032        {
1033          if (_vt_item.symbol_at (0))
1034          {
1035            goto _block2__branch6;
1036          }
1037          Expr _v_deref__item6 (_vt_item, 0);
1038          uintptr_t _v_len33 = _v_deref__item6.get_len ();
1039          uintptr_t _v_len34 = 1;
1040          if ((_v_len33 < _v_len34))
1041          {
1042            goto _block2__branch6;
1043          }
1044          uintptr_t _v_len__body5 = (_v_len33 - _v_len34);
1045          if (!_c_44.term_eq (_v_deref__item6, 0))
1046          {
1047            goto _block2__branch6;
1048          }
1049          Expr _ve_body (_v_deref__item6, 1, _v_len__body5);
1050          Expr _v__q_6;
1051          RF_CALL (Box::_q_, Module_m_Name, _v__q_6);
1052          Expr _v__q_7;
1053          RF_CALL (Box::_q_, Func_m_Name, _v__q_7);
1054          Expr _v_ASAIL_m_To_m_Java5;
1055          RF_CALL (ASAIL_m_To_m_Java, _ve_body, _v_ASAIL_m_To_m_Java5);
1056          _ve_java_m_item = (_c_49 + (_c_25 + ((_c_48 + (_c_47 + _v__q_6 + _c_46 + _v__q_7 + _c_45) ()) () + _v_ASAIL_m_To_m_Java5) () + _c_7) ());
1057          goto _block2;
1058        }
1059      _block2__branch6: {}
1060        {
1061          if (_vt_item.symbol_at (0))
1062          {
1063            goto _block2__branch7;
1064          }
1065          Expr _v_deref__item7 (_vt_item, 0);
1066          uintptr_t _v_len35 = _v_deref__item7.get_len ();
1067          uintptr_t _v_len36 = 1;
1068          if ((_v_len35 < _v_len36))
1069          {
1070            goto _block2__branch7;
1071          }
1072          uintptr_t _v_len__body6 = (_v_len35 - _v_len36);
1073          if (!_c_50.term_eq (_v_deref__item7, 0))
1074          {
1075            goto _block2__branch7;
1076          }
1077          Expr _ve_body (_v_deref__item7, 1, _v_len__body6);
1078          Expr _v_ASAIL_m_To_m_Java6;
1079          RF_CALL (ASAIL_m_To_m_Java, _ve_body, _v_ASAIL_m_To_m_Java6);
1080          _ve_java_m_item = (_c_52 + (_c_51 + _v_ASAIL_m_To_m_Java6 ()) () + _c_7) ();
1081          goto _block2;
1082        }
1083      _block2__branch7: {}
1084        {
1085          if (!_vt_item.term_eq (_c_53, 0))
1086          {
1087            goto _block2__branch8;
1088          }
1089          _ve_java_m_item = _c_54;
1090          goto _block2;
1091        }
1092      _block2__branch8: {}
1093        {
1094          if (!_vt_item.term_eq (_c_55, 0))
1095          {
1096            goto _block2__branch9;
1097          }
1098          Expr _v__q_8;
1099          RF_CALL (Box::_q_, Module_m_Name, _v__q_8);
1100          Expr _v__q_9;
1101          RF_CALL (Box::_q_, Func_m_Name, _v__q_9);
1102          _ve_java_m_item = (_c_47 + _v__q_8 + _c_46 + _v__q_9 + _c_56) ();
1103          goto _block2;
1104        }
1105      _block2__branch9: {}
1106        {
1107          if (_vt_item.symbol_at (0))
1108          {
1109            goto _block2__branch10;
1110          }
1111          Expr _v_deref__item8 (_vt_item, 0);
1112          if ((_v_deref__item8.get_len () != 5))
1113          {
1114            goto _block2__branch10;
1115          }
1116          if (_v_deref__item8.symbol_at (2))
1117          {
1118            goto _block2__branch10;
1119          }
1120          Expr _v_deref__deref__item8 (_v_deref__item8, 2);
1121          uintptr_t _v_len37 = _v_deref__deref__item8.get_len ();
1122          uintptr_t _v_len38 = 0;
1123          if ((_v_len37 < _v_len38))
1124          {
1125            goto _block2__branch10;
1126          }
1127          uintptr_t _v_len__min = (_v_len37 - _v_len38);
1128          if (!_c_57.term_eq (_v_deref__item8, 0))
1129          {
1130            goto _block2__branch10;
1131          }
1132          Expr _vt_name (_v_deref__item8, 1, 1);
1133          Expr _vt_var1 (_v_deref__item8, 3, 1);
1134          Expr _vt_var2 (_v_deref__item8, 4, 1);
1135          Expr _ve_min (_v_deref__deref__item8, 0, _v_len__min);
1136          Expr _ve_a;
1137          Expr _ve_n;
1138          RF_CALL (Expr_m_Ref_m_To_m_Java, _vt_name, (_ve_a, _ve_n));
1139          Expr _v_Free_m_Index1;
1140          RF_CALL (Free_m_Index, /*void*/, _v_Free_m_Index1);
1141          Expr _ve_new_m_var ((_c_58 + _v_Free_m_Index1));
1142          RF_CALL (Table::Bind, (Iter_m_Vars, _vt_name, (_ve_new_m_var + _vt_var1 + _vt_var2)), /*void*/);
1143          Expr _vs_acc;
1144          RF_CALL (Box::Box, empty, _vs_acc);
1145          RF_CALL (Expr_m_Int_m_To_m_Java, (_vs_acc, _ve_min), _ve_min);
1146          Expr _v__q_10;
1147          RF_CALL (Box::_q_, _vs_acc, _v__q_10);
1148          _ve_java_m_item = (_ve_a + _v__q_10 + (_c_61 + _ve_new_m_var + _c_38 + _ve_n + _c_60 + _ve_min + _c_59) ());
1149          goto _block2;
1150        }
1151      _block2__branch10: {}
1152        {
1153          if (_vt_item.symbol_at (0))
1154          {
1155            goto _block2__branch11;
1156          }
1157          Expr _v_deref__item9 (_vt_item, 0);
1158          if ((_v_deref__item9.get_len () != 5))
1159          {
1160            goto _block2__branch11;
1161          }
1162          if (_v_deref__item9.symbol_at (2))
1163          {
1164            goto _block2__branch11;
1165          }
1166          Expr _v_deref__deref__item9 (_v_deref__item9, 2);
1167          uintptr_t _v_len39 = _v_deref__deref__item9.get_len ();
1168          uintptr_t _v_len40 = 0;
1169          if ((_v_len39 < _v_len40))
1170          {
1171            goto _block2__branch11;
1172          }
1173          uintptr_t _v_len__min2 = (_v_len39 - _v_len40);
1174          if (!_c_62.term_eq (_v_deref__item9, 0))
1175          {
1176            goto _block2__branch11;
1177          }
1178          Expr _vt_name (_v_deref__item9, 1, 1);
1179          Expr _vt_var1 (_v_deref__item9, 3, 1);
1180          Expr _vt_var2 (_v_deref__item9, 4, 1);
1181          Expr _ve_min (_v_deref__deref__item9, 0, _v_len__min2);
1182          Expr _ve_a;
1183          Expr _ve_n;
1184          RF_CALL (Expr_m_Ref_m_To_m_Java, _vt_name, (_ve_a, _ve_n));
1185          Expr _v_Free_m_Index2;
1186          RF_CALL (Free_m_Index, /*void*/, _v_Free_m_Index2);
1187          Expr _ve_new_m_var ((_c_58 + _v_Free_m_Index2));
1188          RF_CALL (Table::Bind, (Iter_m_Vars, _vt_name, (_ve_new_m_var + _vt_var1 + _vt_var2)), /*void*/);
1189          Expr _vs_acc;
1190          RF_CALL (Box::Box, empty, _vs_acc);
1191          RF_CALL (Expr_m_Int_m_To_m_Java, (_vs_acc, _ve_min), _ve_min);
1192          Expr _v__q_11;
1193          RF_CALL (Box::_q_, _vs_acc, _v__q_11);
1194          _ve_java_m_item = (_ve_a + _v__q_11 + (_c_61 + _ve_new_m_var + _c_38 + _ve_n + _c_63 + _ve_min + _c_59) ());
1195          goto _block2;
1196        }
1197      _block2__branch11: {}
1198        {
1199          if (_vt_item.symbol_at (0))
1200          {
1201            goto _block2__branch12;
1202          }
1203          Expr _v_deref__item10 (_vt_item, 0);
1204          uintptr_t _v_len41 = _v_deref__item10.get_len ();
1205          uintptr_t _v_len42 = 2;
1206          if ((_v_len41 < _v_len42))
1207          {
1208            goto _block2__branch12;
1209          }
1210          uintptr_t _v_len__expr = (_v_len41 - _v_len42);
1211          if (!_c_64.term_eq (_v_deref__item10, 0))
1212          {
1213            goto _block2__branch12;
1214          }
1215          Expr _vt_var (_v_deref__item10, 1, 1);
1216          Expr _ve_expr (_v_deref__item10, 2, _v_len__expr);
1217          Expr _ve_a;
1218          Expr _ve_j_m_expr;
1219          RF_CALL (Expr_m_To_m_Java, (empty, _ve_expr), (_ve_a, _ve_j_m_expr));
1220          {
1221            {
1222              Expr _v__q_12;
1223              RF_CALL (Box::_q_, Ress, _v__q_12);
1224              if ((_v__q_12.get_len () < 1))
1225              {
1226                goto _block10__branch1;
1227              }
1228              RF_lsplit (_v__q_12, 0, _ve__e__e_tmp_m_rfp__asail__javarf_m_192_m_22, _v_lsplit___q_12);
1229              for ( ; ; RF_iter(_v__q_12)++)
1230              {
1231                {
1232                  if (!RF_iter(_v__q_12))
1233                  {
1234                    goto _block10__branch1;
1235                  }
1236                  uintptr_t _v_len43 = _v_lsplit___q_12.get_len ();
1237                  uintptr_t _v_len44 = 1;
1238                  if ((_v_len43 < _v_len44))
1239                  {
1240                    goto _block10__branch1;
1241                  }
1242                  uintptr_t _v_len___e__e_tmp_m_rfp__asail__javarf_m_192_m_30 = (_v_len43 - _v_len44);
1243                  if (!_vt_var.term_eq (_v_lsplit___q_12, 0))
1244                  {
1245                    goto _continue1;
1246                  }
1247                  Expr _ve__e__e_tmp_m_rfp__asail__javarf_m_192_m_30 (_v_lsplit___q_12, 1, _v_len___e__e_tmp_m_rfp__asail__javarf_m_192_m_30);
1248                  Expr _v_Rfp2Java7;
1249                  RF_CALL (JavaMangle::Rfp2Java, _vt_var, _v_Rfp2Java7);
1250                  _ve_java_m_item = (_ve_a + (_v_Rfp2Java7 + _c_65 + _ve_j_m_expr + _c_59) ());
1251                  goto _exit1;
1252                }
1253            _continue1: {}
1254              }
1255            _exit1: {}
1256              goto _block10;
1257            }
1258          _block10__branch1: {}
1259            {
1260              Expr _v_Lookup2;
1261              if (!RF_CALL (Table::Lookup, (Result, _vt_var), _v_Lookup2))
1262              {
1263                goto _block10__branch2;
1264              }
1265              _ve_java_m_item = (_ve_a + (_v_Lookup2 + _c_65 + _ve_j_m_expr + _c_59) ());
1266              goto _block10;
1267            }
1268          _block10__branch2: {}
1269            Expr _v_Rfp2Java8;
1270            RF_CALL (JavaMangle::Rfp2Java, _vt_var, _v_Rfp2Java8);
1271            _ve_java_m_item = (_ve_a + (_v_Rfp2Java8 + _c_38 + _ve_j_m_expr + _c_66) ());
1272          }
1273        _block10: {}
1274          goto _block2;
1275        }
1276      _block2__branch12: {}
1277        {
1278          if (_vt_item.symbol_at (0))
1279          {
1280            goto _block2__branch13;
1281          }
1282          Expr _v_deref__item11 (_vt_item, 0);
1283          if ((_v_deref__item11.get_len () != 3))
1284          {
1285            goto _block2__branch13;
1286          }
1287          if (!_c_67.term_eq (_v_deref__item11, 0))
1288          {
1289            goto _block2__branch13;
1290          }
1291          if (!_v_deref__item11.symbol_at (1))
1292          {
1293            goto _block2__branch13;
1294          }
1295          Expr _vs_type (_v_deref__item11, 1, 1);
1296          Expr _vt_var (_v_deref__item11, 2, 1);
1297          Expr _ve_j_m_var;
1298          RF_CALL (JavaMangle::Rfp2Java, _vt_var, _ve_j_m_var);
1299          {
1300            {
1301              if (!_vs_type.term_eq (_c_19, 0))
1302              {
1303                goto _block11__branch1;
1304              }
1305              RF_CALL (Table::Bind, (Result, _vt_var, _ve_j_m_var), /*void*/);
1306              _ve_java_m_item = (_c_69 + _ve_j_m_var + _c_68) ();
1307              goto _block11;
1308            }
1309          _block11__branch1: {}
1310            RF_CALL (Table::Unbind, (Result, _vt_var), /*void*/);
1311            _ve_java_m_item = (_c_39 + _ve_j_m_var + _c_70) ();
1312          }
1313        _block11: {}
1314          goto _block2;
1315        }
1316      _block2__branch13: {}
1317        {
1318          if (_vt_item.symbol_at (0))
1319          {
1320            goto _block2__branch14;
1321          }
1322          Expr _v_deref__item12 (_vt_item, 0);
1323          uintptr_t _v_len45 = _v_deref__item12.get_len ();
1324          uintptr_t _v_len46 = 2;
1325          if ((_v_len45 < _v_len46))
1326          {
1327            goto _block2__branch14;
1328          }
1329          uintptr_t _v_len__expr2 = (_v_len45 - _v_len46);
1330          if (!_c_0.term_eq (_v_deref__item12, 0))
1331          {
1332            goto _block2__branch14;
1333          }
1334          Expr _vt_var (_v_deref__item12, 1, 1);
1335          Expr _ve_expr (_v_deref__item12, 2, _v_len__expr2);
1336          Expr _vs_acc;
1337          RF_CALL (Box::Box, empty, _vs_acc);
1338          RF_CALL (Expr_m_Int_m_To_m_Java, (_vs_acc, _ve_expr), _ve_expr);
1339          Expr _v__q_13;
1340          RF_CALL (Box::_q_, _vs_acc, _v__q_13);
1341          Expr _v_Rfp2Java9;
1342          RF_CALL (JavaMangle::Rfp2Java, _vt_var, _v_Rfp2Java9);
1343          _ve_java_m_item = (_v__q_13 + (_c_71 + _v_Rfp2Java9 + _c_38 + _ve_expr + _c_66) ());
1344          goto _block2;
1345        }
1346      _block2__branch14: {}
1347        {
1348          if (_vt_item.symbol_at (0))
1349          {
1350            goto _block2__branch15;
1351          }
1352          Expr _v_deref__item13 (_vt_item, 0);
1353          uintptr_t _v_len47 = _v_deref__item13.get_len ();
1354          uintptr_t _v_len48 = 2;
1355          if ((_v_len47 < _v_len48))
1356          {
1357            goto _block2__branch15;
1358          }
1359          uintptr_t _v_len__expr3 = (_v_len47 - _v_len48);
1360          if (!_c_72.term_eq (_v_deref__item13, 0))
1361          {
1362            goto _block2__branch15;
1363          }
1364          Expr _vt_var (_v_deref__item13, 1, 1);
1365          Expr _ve_expr (_v_deref__item13, 2, _v_len__expr3);
1366          RF_CALL (Table::Unbind, (Result, _vt_var), /*void*/);
1367          Expr _ve_a;
1368          Expr _ve_j_m_expr;
1369          RF_CALL (Expr_m_Ref_m_To_m_Java, _ve_expr, (_ve_a, _ve_j_m_expr));
1370          Expr _v_Rfp2Java10;
1371          RF_CALL (JavaMangle::Rfp2Java, _vt_var, _v_Rfp2Java10);
1372          _ve_java_m_item = (_ve_a + (_c_39 + _v_Rfp2Java10 + _c_38 + _ve_j_m_expr + _c_66) ());
1373          goto _block2;
1374        }
1375      _block2__branch15: {}
1376        {
1377          if (_vt_item.symbol_at (0))
1378          {
1379            goto _block2__branch16;
1380          }
1381          Expr _v_deref__item14 (_vt_item, 0);
1382          uintptr_t _v_len49 = _v_deref__item14.get_len ();
1383          uintptr_t _v_len50 = 3;
1384          if ((_v_len49 < _v_len50))
1385          {
1386            goto _block2__branch16;
1387          }
1388          uintptr_t _v_len__expr4 = (_v_len49 - _v_len50);
1389          if (_v_deref__item14.symbol_at ((_v_len__expr4 + 2)))
1390          {
1391            goto _block2__branch16;
1392          }
1393          Expr _v_deref__deref__item14 (_v_deref__item14, (_v_len__expr4 + 2));
1394          uintptr_t _v_len51 = _v_deref__deref__item14.get_len ();
1395          uintptr_t _v_len52 = 0;
1396          if ((_v_len51 < _v_len52))
1397          {
1398            goto _block2__branch16;
1399          }
1400          uintptr_t _v_len__pos = (_v_len51 - _v_len52);
1401          if (!_c_73.term_eq (_v_deref__item14, 0))
1402          {
1403            goto _block2__branch16;
1404          }
1405          Expr _vt_var (_v_deref__item14, 1, 1);
1406          Expr _ve_expr (_v_deref__item14, 2, _v_len__expr4);
1407          Expr _ve_pos (_v_deref__deref__item14, 0, _v_len__pos);
1408          RF_CALL (Table::Unbind, (Result, _vt_var), /*void*/);
1409          Expr _ve_a;
1410          Expr _ve_j_m_expr;
1411          RF_CALL (Expr_m_Ref_m_To_m_Java, _ve_expr, (_ve_a, _ve_j_m_expr));
1412          Expr _vs_acc;
1413          RF_CALL (Box::Box, empty, _vs_acc);
1414          RF_CALL (Expr_m_Int_m_To_m_Java, (_vs_acc, _ve_pos), _ve_pos);
1415          Expr _v__q_14;
1416          RF_CALL (Box::_q_, _vs_acc, _v__q_14);
1417          Expr _v_Rfp2Java11;
1418          RF_CALL (JavaMangle::Rfp2Java, _vt_var, _v_Rfp2Java11);
1419          _ve_java_m_item = (_ve_a + _v__q_14 + (_c_39 + _v_Rfp2Java11 + _c_75 + _ve_j_m_expr + _c_74 + _ve_pos + _c_59) ());
1420          goto _block2;
1421        }
1422      _block2__branch16: {}
1423        {
1424          if (_vt_item.symbol_at (0))
1425          {
1426            goto _block2__branch17;
1427          }
1428          Expr _v_deref__item15 (_vt_item, 0);
1429          uintptr_t _v_len53 = _v_deref__item15.get_len ();
1430          uintptr_t _v_len54 = 4;
1431          if ((_v_len53 < _v_len54))
1432          {
1433            goto _block2__branch17;
1434          }
1435          uintptr_t _v_len__expr5 = (_v_len53 - _v_len54);
1436          if (_v_deref__item15.symbol_at ((_v_len__expr5 + 2)))
1437          {
1438            goto _block2__branch17;
1439          }
1440          if (_v_deref__item15.symbol_at ((_v_len__expr5 + 3)))
1441          {
1442            goto _block2__branch17;
1443          }
1444          Expr _v_deref__deref__item15 (_v_deref__item15, (_v_len__expr5 + 2));
1445          Expr _v_deref__deref__item152 (_v_deref__item15, (_v_len__expr5 + 3));
1446          uintptr_t _v_len55 = _v_deref__deref__item152.get_len ();
1447          uintptr_t _v_len56 = 0;
1448          if ((_v_len55 < _v_len56))
1449          {
1450            goto _block2__branch17;
1451          }
1452          uintptr_t _v_len__len = (_v_len55 - _v_len56);
1453          uintptr_t _v_len57 = _v_deref__deref__item15.get_len ();
1454          uintptr_t _v_len58 = 0;
1455          if ((_v_len57 < _v_len58))
1456          {
1457            goto _block2__branch17;
1458          }
1459          uintptr_t _v_len__pos2 = (_v_len57 - _v_len58);
1460          if (!_c_76.term_eq (_v_deref__item15, 0))
1461          {
1462            goto _block2__branch17;
1463          }
1464          Expr _vt_var (_v_deref__item15, 1, 1);
1465          Expr _ve_expr (_v_deref__item15, 2, _v_len__expr5);
1466          Expr _ve_pos (_v_deref__deref__item15, 0, _v_len__pos2);
1467          Expr _ve_len (_v_deref__deref__item152, 0, _v_len__len);
1468          RF_CALL (Table::Unbind, (Result, _vt_var), /*void*/);
1469          Expr _ve_a;
1470          Expr _ve_j_m_expr;
1471          RF_CALL (Expr_m_Ref_m_To_m_Java, _ve_expr, (_ve_a, _ve_j_m_expr));
1472          Expr _vs_acc;
1473          RF_CALL (Box::Box, empty, _vs_acc);
1474          RF_CALL (Expr_m_Int_m_To_m_Java, (_vs_acc, _ve_pos), _ve_pos);
1475          RF_CALL (Expr_m_Int_m_To_m_Java, (_vs_acc, _ve_len), _ve_len);
1476          Expr _v__q_15;
1477          RF_CALL (Box::_q_, _vs_acc, _v__q_15);
1478          Expr _v_Rfp2Java12;
1479          RF_CALL (JavaMangle::Rfp2Java, _vt_var, _v_Rfp2Java12);
1480          _ve_java_m_item = (_ve_a + _v__q_15 + (_c_39 + _v_Rfp2Java12 + _c_78 + _ve_j_m_expr + _c_77 + _ve_pos + _c_77 + _ve_len + _c_59) ());
1481          goto _block2;
1482        }
1483      _block2__branch17: {}
1484        {
1485          if (_vt_item.symbol_at (0))
1486          {
1487            goto _block2__branch18;
1488          }
1489          Expr _v_deref__item16 (_vt_item, 0);
1490          if ((_v_deref__item16.get_len () != 2))
1491          {
1492            goto _block2__branch18;
1493          }
1494          if (!_c_79.term_eq (_v_deref__item16, 0))
1495          {
1496            goto _block2__branch18;
1497          }
1498          Expr _vt_var (_v_deref__item16, 1, 1);
1499          Expr _v_Var_m_To_m_Java1;
1500          RF_CALL (Var_m_To_m_Java, _vt_var, _v_Var_m_To_m_Java1);
1501          _ve_java_m_item = (_v_Var_m_To_m_Java1 + _c_80) ();
1502          goto _block2;
1503        }
1504      _block2__branch18: {}
1505        {
1506          if (_vt_item.symbol_at (0))
1507          {
1508            goto _block2__branch19;
1509          }
1510          Expr _v_deref__item17 (_vt_item, 0);
1511          if ((_v_deref__item17.get_len () != 2))
1512          {
1513            goto _block2__branch19;
1514          }
1515          if (!_c_81.term_eq (_v_deref__item17, 0))
1516          {
1517            goto _block2__branch19;
1518          }
1519          Expr _vt_label (_v_deref__item17, 1, 1);
1520          Expr _v_Rfp2Java13;
1521          RF_CALL (JavaMangle::Rfp2Java, (_c_33 + _vt_label) (), _v_Rfp2Java13);
1522          _ve_java_m_item = (_c_82 + _v_Rfp2Java13 + _c_66) ();
1523          goto _block2;
1524        }
1525      _block2__branch19: {}
1526        {
1527          if (_vt_item.symbol_at (0))
1528          {
1529            goto _block2__branch20;
1530          }
1531          Expr _v_deref__item18 (_vt_item, 0);
1532          if ((_v_deref__item18.get_len () != 2))
1533          {
1534            goto _block2__branch20;
1535          }
1536          if (!_c_83.term_eq (_v_deref__item18, 0))
1537          {
1538            goto _block2__branch20;
1539          }
1540          Expr _vt_label (_v_deref__item18, 1, 1);
1541          Expr _v_Rfp2Java14;
1542          RF_CALL (JavaMangle::Rfp2Java, (_c_33 + _vt_label) (), _v_Rfp2Java14);
1543          _ve_java_m_item = (_c_84 + _v_Rfp2Java14 + _c_66) ();
1544          goto _block2;
1545        }
1546      _block2__branch20: {}
1547        {
1548          if (_vt_item.symbol_at (0))
1549          {
1550            goto _block2__branch21;
1551          }
1552          Expr _v_deref__item19 (_vt_item, 0);
1553          uintptr_t _v_len59 = _v_deref__item19.get_len ();
1554          uintptr_t _v_len60 = 1;
1555          if ((_v_len59 < _v_len60))
1556          {
1557            goto _block2__branch21;
1558          }
1559          uintptr_t _v_len__expr6 = (_v_len59 - _v_len60);
1560          if (!_c_85.term_eq (_v_deref__item19, 0))
1561          {
1562            goto _block2__branch21;
1563          }
1564          Expr _ve_expr (_v_deref__item19, 1, _v_len__expr6);
1565          Expr _ve_a;
1566          Expr _ve_j_m_expr;
1567          RF_CALL (Expr_m_Ref_m_To_m_Java, _ve_expr, (_ve_a, _ve_j_m_expr));
1568          _ve_java_m_item = (_ve_a + (_c_86 + _ve_j_m_expr + _c_59) ());
1569          goto _block2;
1570        }
1571      _block2__branch21: {}
1572        {
1573          if (_vt_item.symbol_at (0))
1574          {
1575            goto _block2__branch22;
1576          }
1577          Expr _v_deref__item20 (_vt_item, 0);
1578          uintptr_t _v_len61 = _v_deref__item20.get_len ();
1579          uintptr_t _v_len62 = 4;
1580          if ((_v_len61 < _v_len62))
1581          {
1582            goto _block2__branch22;
1583          }
1584          uintptr_t _v_len__expr7 = (_v_len61 - _v_len62);
1585          if (_v_deref__item20.symbol_at (3))
1586          {
1587            goto _block2__branch22;
1588          }
1589          Expr _v_deref__deref__item20 (_v_deref__item20, 3);
1590          uintptr_t _v_len63 = _v_deref__deref__item20.get_len ();
1591          uintptr_t _v_len64 = 0;
1592          if ((_v_len63 < _v_len64))
1593          {
1594            goto _block2__branch22;
1595          }
1596          uintptr_t _v_len__comment = (_v_len63 - _v_len64);
1597          if (!_c_87.term_eq (_v_deref__item20, 0))
1598          {
1599            goto _block2__branch22;
1600          }
1601          if (!_v_deref__item20.symbol_at (1))
1602          {
1603            goto _block2__branch22;
1604          }
1605          Expr _vs_linkage (_v_deref__item20, 1, 1);
1606          Expr _vt_name (_v_deref__item20, 2, 1);
1607          Expr _ve_expr (_v_deref__item20, 4, _v_len__expr7);
1608          Expr _ve_comment (_v_deref__deref__item20, 0, _v_len__comment);
1609          Expr _ve_n;
1610          {
1611            {
1612              if (_vt_name.symbol_at (0))
1613              {
1614                goto _block12__branch1;
1615              }
1616              Expr _v_deref__name (_vt_name, 0);
1617              uintptr_t _v_len65 = _v_deref__name.get_len ();
1618              uintptr_t _v_len66 = 1;
1619              if ((_v_len65 < _v_len66))
1620              {
1621                goto _block12__branch1;
1622              }
1623              uintptr_t _v_len___e__e_tmp_m_rfp__asail__javarf_m_238_m_27 = (_v_len65 - _v_len66);
1624              if (!_c_88.term_eq (_v_deref__name, 0))
1625              {
1626                goto _block12__branch1;
1627              }
1628              Expr _ve__e__e_tmp_m_rfp__asail__javarf_m_238_m_27 (_v_deref__name, 1, _v_len___e__e_tmp_m_rfp__asail__javarf_m_238_m_27);
1629              RF_CALL (JavaMangle::Rfp2Java, _vt_name, _ve_n);
1630              goto _block12;
1631            }
1632          _block12__branch1: {}
1633            RF_CALL (Name_m_To_m_Java, _vt_name, _ve_n);
1634          }
1635        _block12: {}
1636          Expr _ve_a;
1637          Expr _ve_j_m_expr;
1638          RF_CALL (Const_m_Expr_m_To_m_Java, _ve_expr, (_ve_a, _ve_j_m_expr));
1639          Expr _v_Access_m_Mode2;
1640          RF_CALL (Access_m_Mode, _vt_name, _v_Access_m_Mode2);
1641          _ve_java_m_item = (_ve_a + (_c_24 + _v_Access_m_Mode2 + _c_89 + _ve_n + _c_38 + _ve_j_m_expr + _c_66) ());
1642          goto _block2;
1643        }
1644      _block2__branch22: {}
1645        {
1646          if (_vt_item.symbol_at (0))
1647          {
1648            goto _block2__branch23;
1649          }
1650          Expr _v_deref__item21 (_vt_item, 0);
1651          if ((_v_deref__item21.get_len () != 4))
1652          {
1653            goto _block2__branch23;
1654          }
1655          if (!_c_90.term_eq (_v_deref__item21, 0))
1656          {
1657            goto _block2__branch23;
1658          }
1659          if (!_v_deref__item21.symbol_at (1))
1660          {
1661            goto _block2__branch23;
1662          }
1663          if (!_v_deref__item21.symbol_at (2))
1664          {
1665            goto _block2__branch23;
1666          }
1667          Expr _vs_linkage (_v_deref__item21, 1, 1);
1668          Expr _vs_tag (_v_deref__item21, 2, 1);
1669          Expr _vt_name (_v_deref__item21, 3, 1);
1670          Expr _v_To_m_Chars1;
1671          RF_CALL (Convert::To_m_Chars, _vs_tag, _v_To_m_Chars1);
1672          uintptr_t _v_len67 = _v_To_m_Chars1.get_len ();
1673          uintptr_t _v_len68 = 1;
1674          if ((_v_len67 < _v_len68))
1675          {
1676            goto _block1__branch1;
1677          }
1678          uintptr_t _v_len__2 = (_v_len67 - _v_len68);
1679          if (!_v_To_m_Chars1.symbol_at (0))
1680          {
1681            goto _block1__branch1;
1682          }
1683          Expr _vs_1 (_v_To_m_Chars1, 0, 1);
1684          Expr _ve_2 (_v_To_m_Chars1, 1, _v_len__2);
1685          Expr _v_To_m_Lower1;
1686          RF_CALL (Convert::To_m_Lower, _ve_2, _v_To_m_Lower1);
1687          Expr _ve_class_m_name ((_c_91 + _vs_1 + _v_To_m_Lower1));
1688          RF_CALL (Table::Bind, (Inputs, (_c_92 + _ve_class_m_name), empty), /*void*/);
1689          Expr _ve_qualifiers;
1690          Expr _ve_n;
1691          RF_CALL (rfp__helper::RFP_m_Extract_m_Qualifiers, _vt_name, (_ve_qualifiers, _ve_n));
1692          Expr _v_Access_m_Mode3;
1693          RF_CALL (Access_m_Mode, _vt_name, _v_Access_m_Mode3);
1694          Expr _v_Name_m_To_m_Java2;
1695          RF_CALL (Name_m_To_m_Java, _vt_name, _v_Name_m_To_m_Java2);
1696          _ve_java_m_item = (_c_24 + _v_Access_m_Mode3 + _c_89 + _v_Name_m_To_m_Java2 + _c_95 + _ve_class_m_name + _c_94 + _ve_n + _c_93) ();
1697          goto _block2;
1698        }
1699      _block2__branch23: {}
1700        {
1701          if (_vt_item.symbol_at (0))
1702          {
1703            goto _block2__branch24;
1704          }
1705          Expr _v_deref__item22 (_vt_item, 0);
1706          if ((_v_deref__item22.get_len () != 2))
1707          {
1708            goto _block2__branch24;
1709          }
1710          if (!_c_96.term_eq (_v_deref__item22, 0))
1711          {
1712            goto _block2__branch24;
1713          }
1714          Expr _vt_name (_v_deref__item22, 1, 1);
1715          _ve_java_m_item = empty;
1716          goto _block2;
1717        }
1718      _block2__branch24: {}
1719        {
1720          if (_vt_item.symbol_at (0))
1721          {
1722            goto _block2__branch25;
1723          }
1724          Expr _v_deref__item23 (_vt_item, 0);
1725          if ((_v_deref__item23.get_len () != 2))
1726          {
1727            goto _block2__branch25;
1728          }
1729          if (!_c_97.term_eq (_v_deref__item23, 0))
1730          {
1731            goto _block2__branch25;
1732          }
1733          Expr _vt_name (_v_deref__item23, 1, 1);
1734          _ve_java_m_item = empty;
1735          goto _block2;
1736        }
1737      _block2__branch25: {}
1738        if (_vt_item.symbol_at (0))
1739        {
1740          RF_FUNC_ERROR (unexpected_fail);
1741        }
1742        Expr _v_deref__item24 (_vt_item, 0);
1743        if ((_v_deref__item24.get_len () != 4))
1744        {
1745          RF_FUNC_ERROR (unexpected_fail);
1746        }
1747        if (_v_deref__item24.symbol_at (2))
1748        {
1749          RF_FUNC_ERROR (unexpected_fail);
1750        }
1751        if (_v_deref__item24.symbol_at (3))
1752        {
1753          RF_FUNC_ERROR (unexpected_fail);
1754        }
1755        Expr _v_deref__deref__item24 (_v_deref__item24, 2);
1756        Expr _v_deref__deref__item242 (_v_deref__item24, 3);
1757        uintptr_t _v_len69 = _v_deref__deref__item242.get_len ();
1758        uintptr_t _v_len70 = 0;
1759        if ((_v_len69 < _v_len70))
1760        {
1761          RF_FUNC_ERROR (unexpected_fail);
1762        }
1763        uintptr_t _v_len__ress2 = (_v_len69 - _v_len70);
1764        uintptr_t _v_len71 = _v_deref__deref__item24.get_len ();
1765        uintptr_t _v_len72 = 0;
1766        if ((_v_len71 < _v_len72))
1767        {
1768          RF_FUNC_ERROR (unexpected_fail);
1769        }
1770        uintptr_t _v_len__args2 = (_v_len71 - _v_len72);
1771        if (!_v_deref__item24.symbol_at (0))
1772        {
1773          RF_FUNC_ERROR (unexpected_fail);
1774        }
1775        Expr _vs_call (_v_deref__item24, 0, 1);
1776        Expr _vt_name (_v_deref__item24, 1, 1);
1777        Expr _ve_args (_v_deref__deref__item24, 0, _v_len__args2);
1778        Expr _ve_ress (_v_deref__deref__item242, 0, _v_len__ress2);
1779        Expr _ve_decls;
1780        RF_CALL (Declare_m_Results, (_ve_ress, empty), (_ve_decls, _ve_ress));
1781        Expr _ve_arrays;
1782        RF_CALL (Expr_m_Args_m_To_m_Java, (_ve_args + _c_19 + _ve_ress), (_ve_arrays, _ve_args));
1783        Expr _v_Name_m_To_m_Java3;
1784        RF_CALL (Name_m_To_m_Java, _vt_name, _v_Name_m_To_m_Java3);
1785        Expr _ve_c ((_v_Name_m_To_m_Java3 + _c_22 + _ve_args + _c_30));
1786        {
1787          {
1788            if (!_vs_call.term_eq (_c_98, 0))
1789            {
1790              goto _block13__branch1;
1791            }
1792            _ve_java_m_item = (_ve_arrays + _ve_decls + (_c_100 + _ve_c + _c_99) ());
1793            goto _block13;
1794          }
1795        _block13__branch1: {}
1796          Expr _v__q_16;
1797          RF_CALL (Box::_q_, Res_m_Assigns, _v__q_16);
1798          RF_CALL (Box::Store, (Res_m_Assigns, empty), /*void*/);
1799          _ve_java_m_item = (_ve_arrays + _ve_decls + (_ve_c + _c_66) () + _v__q_16);
1800        }
1801      _block13: {}
1802      }
1803    _block2: {}
1804      {
1805        {
1806          if ((_ve_java_m_item.get_len () != 1))
1807          {
1808            goto _block14__branch1;
1809          }
1810          if (_ve_java_m_item.symbol_at (0))
1811          {
1812            goto _block14__branch1;
1813          }
1814          Expr _v_deref__java_m_item (_ve_java_m_item, 0);
1815          uintptr_t _v_len73 = _v_deref__java_m_item.get_len ();
1816          uintptr_t _v_len74 = 6;
1817          if ((_v_len73 < _v_len74))
1818          {
1819            goto _block14__branch1;
1820          }
1821          uintptr_t _v_len___e__e_tmp_m_rfp__asail__javarf_m_268_m_32 = (_v_len73 - _v_len74);
1822          if (!_c_84.eq (_v_deref__java_m_item, 0))
1823          {
1824            goto _block14__branch1;
1825          }
1826          Expr _ve__e__e_tmp_m_rfp__asail__javarf_m_268_m_32 (_v_deref__java_m_item, 6, _v_len___e__e_tmp_m_rfp__asail__javarf_m_268_m_32);
1827          _v_res1 = _ve_java_m_item;
1828          goto _block14;
1829        }
1830      _block14__branch1: {}
1831        Expr _v_ASAIL_m_To_m_Java7;
1832        RF_CALL (ASAIL_m_To_m_Java, _ve_rest, _v_ASAIL_m_To_m_Java7);
1833        _v_res1 = (_ve_java_m_item + _v_ASAIL_m_To_m_Java7);
1834      }
1835    _block14: {}
1836      goto _block1;
1837    }
1838  _block1__branch1: {}
1839    _v_res1 = empty;
1840  }
1841_block1: {}
1842RF_END
1843
1844RF_FUNC (Declare_m_Results, (RF_ARG _v_arg1, _v_arg2;;), (RF_RES _v_res1, _v_res2;;))
1845  {
1846    {
1847      uintptr_t _v_len1 = (_v_arg2.get_len () + 1);
1848      uintptr_t _v_len2 = 1;
1849      if ((_v_len1 < _v_len2))
1850      {
1851        goto _block1__branch1;
1852      }
1853      uintptr_t _v_len__ress = (_v_len1 - _v_len2);
1854      Expr _v_compose1 ((_v_arg1 () + _v_arg2));
1855      if (_v_compose1.symbol_at (0))
1856      {
1857        goto _block1__branch1;
1858      }
1859      Expr _v_deref__compose1 (_v_compose1, 0);
1860      uintptr_t _v_len3 = _v_deref__compose1.get_len ();
1861      uintptr_t _v_len4 = 1;
1862      if ((_v_len3 < _v_len4))
1863      {
1864        goto _block1__branch1;
1865      }
1866      uintptr_t _v_len__r = (_v_len3 - _v_len4);
1867      Expr _ve_ress (_v_compose1, 1, _v_len__ress);
1868      Expr _vt_var (_v_deref__compose1, 0, 1);
1869      Expr _ve_r (_v_deref__compose1, 1, _v_len__r);
1870      {
1871        {
1872          if (!RF_CALL (Table::In_m_Table_q_, (Result, _vt_var), /*void*/))
1873          {
1874            goto _block2__branch1;
1875          }
1876          Expr _v_Rfp2Java1;
1877          RF_CALL (JavaMangle::Rfp2Java, _vt_var, _v_Rfp2Java1);
1878          RF_TAILCALL (Declare_m_Results, (_ve_r, (_ve_ress + _v_Rfp2Java1 ())), (_v_res1, _v_res2));
1879          goto _block2;
1880        }
1881      _block2__branch1: {}
1882        {
1883          Expr _v__q_1;
1884          RF_CALL (Box::_q_, Ress, _v__q_1);
1885          if ((_v__q_1.get_len () < 1))
1886          {
1887            goto _block2__branch2;
1888          }
1889          RF_lsplit (_v__q_1, 0, _ve__e__e_tmp_m_rfp__asail__javarf_m_277_m_18, _v_lsplit___q_1);
1890          for ( ; ; RF_iter(_v__q_1)++)
1891          {
1892            {
1893              if (!RF_iter(_v__q_1))
1894              {
1895                goto _block2__branch2;
1896              }
1897              uintptr_t _v_len5 = _v_lsplit___q_1.get_len ();
1898              uintptr_t _v_len6 = 1;
1899              if ((_v_len5 < _v_len6))
1900              {
1901                goto _block2__branch2;
1902              }
1903              uintptr_t _v_len___e__e_tmp_m_rfp__asail__javarf_m_277_m_26 = (_v_len5 - _v_len6);
1904              if (!_vt_var.term_eq (_v_lsplit___q_1, 0))
1905              {
1906                goto _continue1;
1907              }
1908              Expr _ve__e__e_tmp_m_rfp__asail__javarf_m_277_m_26 (_v_lsplit___q_1, 1, _v_len___e__e_tmp_m_rfp__asail__javarf_m_277_m_26);
1909              Expr _v_Rfp2Java2;
1910              RF_CALL (JavaMangle::Rfp2Java, _vt_var, _v_Rfp2Java2);
1911              RF_TAILCALL (Declare_m_Results, (_ve_r, (_ve_ress + _v_Rfp2Java2 ())), (_v_res1, _v_res2));
1912              goto _exit1;
1913            }
1914        _continue1: {}
1915          }
1916        _exit1: {}
1917          goto _block2;
1918        }
1919      _block2__branch2: {}
1920        Expr _v_Free_m_Index1;
1921        RF_CALL (Free_m_Index, /*void*/, _v_Free_m_Index1);
1922        Expr _ve_new_m_var ((_c_58 + _v_Free_m_Index1));
1923        Expr _v_Rfp2Java3;
1924        RF_CALL (JavaMangle::Rfp2Java, _vt_var, _v_Rfp2Java3);
1925        RF_CALL (Box::Put, (Res_m_Assigns, (_v_Rfp2Java3 + _c_38 + _ve_new_m_var + _c_101) ()), /*void*/);
1926        Expr _v_Declare_m_Results1;
1927        RF_CALL (Declare_m_Results, (_ve_r, (_ve_ress + _ve_new_m_var ())), (_v_Declare_m_Results1, _v_res2));
1928        _v_res1 = ((_c_69 + _ve_new_m_var + _c_68) () + _v_Declare_m_Results1);
1929      }
1930    _block2: {}
1931      goto _block1;
1932    }
1933  _block1__branch1: {}
1934    uintptr_t _v_len7 = (_v_arg2.get_len () + 1);
1935    uintptr_t _v_len8 = 1;
1936    if ((_v_len7 < _v_len8))
1937    {
1938      RF_FUNC_ERROR (unexpected_fail);
1939    }
1940    uintptr_t _v_len__ress2 = (_v_len7 - _v_len8);
1941    Expr _v_compose2 ((_v_arg1 () + _v_arg2));
1942    if (!_c_11.term_eq (_v_compose2, 0))
1943    {
1944      RF_FUNC_ERROR (unexpected_fail);
1945    }
1946    Expr _ve_ress (_v_compose2, 1, _v_len__ress2);
1947    _v_res1 = empty;
1948    _v_res2 = _ve_ress;
1949  }
1950_block1: {}
1951RF_END
1952
1953RF_FUNC (Expr_m_To_m_Java, (RF_ARG _ve_init, _ve_expr_m_all;;), (RF_RES _v_res1, _v_res2;;))
1954  {
1955    {
1956      if ((_ve_expr_m_all.get_len () != 0))
1957      {
1958        goto _block1__branch1;
1959      }
1960      RF_TAILCALL (Expr_m_Ref_m_To_m_Java, _ve_init, (_v_res1, _v_res2));
1961      goto _block1;
1962    }
1963  _block1__branch1: {}
1964    {
1965      uintptr_t _v_len1 = _ve_expr_m_all.get_len ();
1966      uintptr_t _v_len2 = 1;
1967      if ((_v_len1 < _v_len2))
1968      {
1969        goto _block1__branch2;
1970      }
1971      uintptr_t _v_len__rest = (_v_len1 - _v_len2);
1972      if (_ve_expr_m_all.symbol_at (0))
1973      {
1974        goto _block1__branch2;
1975      }
1976      Expr _v_deref__expr_m_all (_ve_expr_m_all, 0);
1977      uintptr_t _v_len3 = _v_deref__expr_m_all.get_len ();
1978      uintptr_t _v_len4 = 1;
1979      if ((_v_len3 < _v_len4))
1980      {
1981        goto _block1__branch2;
1982      }
1983      uintptr_t _v_len__expr = (_v_len3 - _v_len4);
1984      if (!_c_102.term_eq (_v_deref__expr_m_all, 0))
1985      {
1986        goto _block1__branch2;
1987      }
1988      Expr _ve_rest (_ve_expr_m_all, 1, _v_len__rest);
1989      Expr _ve_expr (_v_deref__expr_m_all, 1, _v_len__expr);
1990      RF_TAILCALL (Expr_m_Ref_m_To_m_Java, (_ve_init + _ve_expr_m_all), (_v_res1, _v_res2));
1991      goto _block1;
1992    }
1993  _block1__branch2: {}
1994    {
1995      uintptr_t _v_len5 = _ve_expr_m_all.get_len ();
1996      uintptr_t _v_len6 = 1;
1997      if ((_v_len5 < _v_len6))
1998      {
1999        goto _block1__branch3;
2000      }
2001      uintptr_t _v_len__rest2 = (_v_len5 - _v_len6);
2002      if (_ve_expr_m_all.symbol_at (0))
2003      {
2004        goto _block1__branch3;
2005      }
2006      Expr _v_deref__expr_m_all2 (_ve_expr_m_all, 0);
2007      uintptr_t _v_len7 = _v_deref__expr_m_all2.get_len ();
2008      uintptr_t _v_len8 = 1;
2009      if ((_v_len7 < _v_len8))
2010      {
2011        goto _block1__branch3;
2012      }
2013      uintptr_t _v_len__expr2 = (_v_len7 - _v_len8);
2014      if (!_c_72.term_eq (_v_deref__expr_m_all2, 0))
2015      {
2016        goto _block1__branch3;
2017      }
2018      Expr _ve_rest (_ve_expr_m_all, 1, _v_len__rest2);
2019      Expr _ve_expr (_v_deref__expr_m_all2, 1, _v_len__expr2);
2020      RF_TAILCALL (Expr_m_Ref_m_To_m_Java, (_ve_init + _ve_expr_m_all), (_v_res1, _v_res2));
2021      goto _block1;
2022    }
2023  _block1__branch3: {}
2024    {
2025      uintptr_t _v_len9 = _ve_expr_m_all.get_len ();
2026      uintptr_t _v_len10 = 1;
2027      if ((_v_len9 < _v_len10))
2028      {
2029        goto _block1__branch4;
2030      }
2031      uintptr_t _v_len__rest3 = (_v_len9 - _v_len10);
2032      if (_ve_expr_m_all.symbol_at (0))
2033      {
2034        goto _block1__branch4;
2035      }
2036      Expr _v_deref__expr_m_all3 (_ve_expr_m_all, 0);
2037      uintptr_t _v_len11 = _v_deref__expr_m_all3.get_len ();
2038      uintptr_t _v_len12 = 1;
2039      if ((_v_len11 < _v_len12))
2040      {
2041        goto _block1__branch4;
2042      }
2043      uintptr_t _v_len__expr3 = (_v_len11 - _v_len12);
2044      if (!_c_73.term_eq (_v_deref__expr_m_all3, 0))
2045      {
2046        goto _block1__branch4;
2047      }
2048      Expr _ve_rest (_ve_expr_m_all, 1, _v_len__rest3);
2049      Expr _ve_expr (_v_deref__expr_m_all3, 1, _v_len__expr3);
2050      RF_TAILCALL (Expr_m_Ref_m_To_m_Java, (_ve_init + _ve_expr_m_all), (_v_res1, _v_res2));
2051      goto _block1;
2052    }
2053  _block1__branch4: {}
2054    {
2055      uintptr_t _v_len13 = _ve_expr_m_all.get_len ();
2056      uintptr_t _v_len14 = 1;
2057      if ((_v_len13 < _v_len14))
2058      {
2059        goto _block1__branch5;
2060      }
2061      uintptr_t _v_len__rest4 = (_v_len13 - _v_len14);
2062      if (_ve_expr_m_all.symbol_at (0))
2063      {
2064        goto _block1__branch5;
2065      }
2066      Expr _v_deref__expr_m_all4 (_ve_expr_m_all, 0);
2067      uintptr_t _v_len15 = _v_deref__expr_m_all4.get_len ();
2068      uintptr_t _v_len16 = 1;
2069      if ((_v_len15 < _v_len16))
2070      {
2071        goto _block1__branch5;
2072      }
2073      uintptr_t _v_len__expr4 = (_v_len15 - _v_len16);
2074      if (!_c_76.term_eq (_v_deref__expr_m_all4, 0))
2075      {
2076        goto _block1__branch5;
2077      }
2078      Expr _ve_rest (_ve_expr_m_all, 1, _v_len__rest4);
2079      Expr _ve_expr (_v_deref__expr_m_all4, 1, _v_len__expr4);
2080      RF_TAILCALL (Expr_m_Ref_m_To_m_Java, (_ve_init + _ve_expr_m_all), (_v_res1, _v_res2));
2081      goto _block1;
2082    }
2083  _block1__branch5: {}
2084    {
2085      uintptr_t _v_len17 = _ve_expr_m_all.get_len ();
2086      uintptr_t _v_len18 = 1;
2087      if ((_v_len17 < _v_len18))
2088      {
2089        goto _block1__branch6;
2090      }
2091      uintptr_t _v_len__rest5 = (_v_len17 - _v_len18);
2092      if (_ve_expr_m_all.symbol_at (0))
2093      {
2094        goto _block1__branch6;
2095      }
2096      Expr _v_deref__expr_m_all5 (_ve_expr_m_all, 0);
2097      uintptr_t _v_len19 = _v_deref__expr_m_all5.get_len ();
2098      uintptr_t _v_len20 = 1;
2099      if ((_v_len19 < _v_len20))
2100      {
2101        goto _block1__branch6;
2102      }
2103      uintptr_t _v_len__expr5 = (_v_len19 - _v_len20);
2104      if (!_c_103.term_eq (_v_deref__expr_m_all5, 0))
2105      {
2106        goto _block1__branch6;
2107      }
2108      Expr _ve_rest (_ve_expr_m_all, 1, _v_len__rest5);
2109      Expr _ve_expr (_v_deref__expr_m_all5, 1, _v_len__expr5);
2110      RF_CALL (Expr_m_Int_m_To_m_Java, (_c_104, (_ve_init + _ve_expr_m_all)), _v_res2);
2111      _v_res1 = empty;
2112      goto _block1;
2113    }
2114  _block1__branch6: {}
2115    {
2116      uintptr_t _v_len21 = _ve_expr_m_all.get_len ();
2117      uintptr_t _v_len22 = 1;
2118      if ((_v_len21 < _v_len22))
2119      {
2120        goto _block1__branch7;
2121      }
2122      uintptr_t _v_len__rest6 = (_v_len21 - _v_len22);
2123      if (_ve_expr_m_all.symbol_at (0))
2124      {
2125        goto _block1__branch7;
2126      }
2127      Expr _v_deref__expr_m_all6 (_ve_expr_m_all, 0);
2128      uintptr_t _v_len23 = _v_deref__expr_m_all6.get_len ();
2129      uintptr_t _v_len24 = 1;
2130      if ((_v_len23 < _v_len24))
2131      {
2132        goto _block1__branch7;
2133      }
2134      uintptr_t _v_len__args = (_v_len23 - _v_len24);
2135      if (!_c_105.term_eq (_v_deref__expr_m_all6, 0))
2136      {
2137        goto _block1__branch7;
2138      }
2139      Expr _ve_rest (_ve_expr_m_all, 1, _v_len__rest6);
2140      Expr _ve_args (_v_deref__expr_m_all6, 1, _v_len__args);
2141      RF_CALL (Expr_m_Int_m_To_m_Java, (_c_104, (_ve_init + _ve_expr_m_all)), _v_res2);
2142      _v_res1 = empty;
2143      goto _block1;
2144    }
2145  _block1__branch7: {}
2146    {
2147      uintptr_t _v_len25 = _ve_expr_m_all.get_len ();
2148      uintptr_t _v_len26 = 1;
2149      if ((_v_len25 < _v_len26))
2150      {
2151        goto _block1__branch8;
2152      }
2153      uintptr_t _v_len__rest7 = (_v_len25 - _v_len26);
2154      if (_ve_expr_m_all.symbol_at (0))
2155      {
2156        goto _block1__branch8;
2157      }
2158      Expr _v_deref__expr_m_all7 (_ve_expr_m_all, 0);
2159      uintptr_t _v_len27 = _v_deref__expr_m_all7.get_len ();
2160      uintptr_t _v_len28 = 1;
2161      if ((_v_len27 < _v_len28))
2162      {
2163        goto _block1__branch8;
2164      }
2165      uintptr_t _v_len__args2 = (_v_len27 - _v_len28);
2166      if (!_c_106.term_eq (_v_deref__expr_m_all7, 0))
2167      {
2168        goto _block1__branch8;
2169      }
2170      Expr _ve_rest (_ve_expr_m_all, 1, _v_len__rest7);
2171      Expr _ve_args (_v_deref__expr_m_all7, 1, _v_len__args2);
2172      RF_CALL (Expr_m_Int_m_To_m_Java, (_c_104, (_ve_init + _ve_expr_m_all)), _v_res2);
2173      _v_res1 = empty;
2174      goto _block1;
2175    }
2176  _block1__branch8: {}
2177    {
2178      uintptr_t _v_len29 = _ve_expr_m_all.get_len ();
2179      uintptr_t _v_len30 = 1;
2180      if ((_v_len29 < _v_len30))
2181      {
2182        goto _block1__branch9;
2183      }
2184      uintptr_t _v_len__rest8 = (_v_len29 - _v_len30);
2185      if (_ve_expr_m_all.symbol_at (0))
2186      {
2187        goto _block1__branch9;
2188      }
2189      Expr _v_deref__expr_m_all8 (_ve_expr_m_all, 0);
2190      uintptr_t _v_len31 = _v_deref__expr_m_all8.get_len ();
2191      uintptr_t _v_len32 = 2;
2192      if ((_v_len31 < _v_len32))
2193      {
2194        goto _block1__branch9;
2195      }
2196      uintptr_t _v_len__args3 = (_v_len31 - _v_len32);
2197      if (!_c_107.term_eq (_v_deref__expr_m_all8, 0))
2198      {
2199        goto _block1__branch9;
2200      }
2201      if (!_v_deref__expr_m_all8.symbol_at (1))
2202      {
2203        goto _block1__branch9;
2204      }
2205      Expr _ve_rest (_ve_expr_m_all, 1, _v_len__rest8);
2206      Expr _vs_op (_v_deref__expr_m_all8, 1, 1);
2207      Expr _ve_args (_v_deref__expr_m_all8, 2, _v_len__args3);
2208      RF_CALL (Expr_m_Int_m_To_m_Java, (_c_104, (_ve_init + _ve_expr_m_all)), _v_res2);
2209      _v_res1 = empty;
2210      goto _block1;
2211    }
2212  _block1__branch9: {}
2213    uintptr_t _v_len33 = _ve_expr_m_all.get_len ();
2214    uintptr_t _v_len34 = 1;
2215    if ((_v_len33 < _v_len34))
2216    {
2217      RF_FUNC_ERROR (unexpected_fail);
2218    }
2219    uintptr_t _v_len__rest9 = (_v_len33 - _v_len34);
2220    if (_ve_expr_m_all.symbol_at (0))
2221    {
2222      RF_FUNC_ERROR (unexpected_fail);
2223    }
2224    Expr _v_deref__expr_m_all9 (_ve_expr_m_all, 0);
2225    if ((_v_deref__expr_m_all9.get_len () != 2))
2226    {
2227      RF_FUNC_ERROR (unexpected_fail);
2228    }
2229    if (_v_deref__expr_m_all9.symbol_at (1))
2230    {
2231      RF_FUNC_ERROR (unexpected_fail);
2232    }
2233    Expr _v_deref__deref__expr_m_all9 (_v_deref__expr_m_all9, 1);
2234    uintptr_t _v_len35 = _v_deref__deref__expr_m_all9.get_len ();
2235    uintptr_t _v_len36 = 0;
2236    if ((_v_len35 < _v_len36))
2237    {
2238      RF_FUNC_ERROR (unexpected_fail);
2239    }
2240    uintptr_t _v_len__QualifiedName = (_v_len35 - _v_len36);
2241    if (!_v_deref__expr_m_all9.symbol_at (0))
2242    {
2243      RF_FUNC_ERROR (unexpected_fail);
2244    }
2245    Expr _ve_rest (_ve_expr_m_all, 1, _v_len__rest9);
2246    Expr _vs_var_m_tag (_v_deref__expr_m_all9, 0, 1);
2247    Expr _ve_QualifiedName (_v_deref__deref__expr_m_all9, 0, _v_len__QualifiedName);
2248    RF_TAILCALL (Expr_m_To_m_Java, ((_ve_init + (_vs_var_m_tag + _ve_QualifiedName ()) ()), _ve_rest), (_v_res1, _v_res2));
2249  }
2250_block1: {}
2251RF_END
2252
2253RF_FUNC (Expr_m_Ref_m_To_m_Java, (RF_ARG _v_arg1;;), (RF_RES _v_res1, _v_res2;;))
2254  {
2255    {
2256      if ((_v_arg1.get_len () != 0))
2257      {
2258        goto _block1__branch1;
2259      }
2260      _v_res1 = empty;
2261      _v_res2 = _c_108;
2262      goto _block1;
2263    }
2264  _block1__branch1: {}
2265    {
2266      if ((_v_arg1.get_len () != 1))
2267      {
2268        goto _block1__branch2;
2269      }
2270      Expr _vt_erm (_v_arg1, 0, 1);
2271      Expr _vs_acc;
2272      RF_CALL (Box::Box, empty, _vs_acc);
2273      Expr _ve_term;
2274      RF_CALL (Term_m_Ref_m_To_m_Java, (_vs_acc, _vt_erm), _ve_term);
2275      RF_CALL (Box::_q_, _vs_acc, _v_res1);
2276      _v_res2 = _ve_term;
2277      goto _block1;
2278    }
2279  _block1__branch2: {}
2280    {
2281      if ((_v_arg1.get_len () != 2))
2282      {
2283        goto _block1__branch3;
2284      }
2285      Expr _vt_1 (_v_arg1, 0, 1);
2286      Expr _vt_2 (_v_arg1, 1, 1);
2287      Expr _vs_acc;
2288      RF_CALL (Box::Box, empty, _vs_acc);
2289      Expr _ve_t1;
2290      RF_CALL (Term_m_Ref_m_To_m_Java, (_vs_acc, _vt_1), _ve_t1);
2291      Expr _ve_t2;
2292      RF_CALL (Term_m_Ref_m_To_m_Java, (_vs_acc, _vt_2), _ve_t2);
2293      RF_CALL (Box::_q_, _vs_acc, _v_res1);
2294      _v_res2 = (_c_109 + _ve_t1 + _c_77 + _ve_t2 + _c_30);
2295      goto _block1;
2296    }
2297  _block1__branch3: {}
2298    Expr _v_Free_m_Index1;
2299    RF_CALL (Free_m_Index, /*void*/, _v_Free_m_Index1);
2300    Expr _ve_new_m_var ((_c_58 + _v_Free_m_Index1));
2301    Expr _vs_acc;
2302    RF_CALL (Box::Box, empty, _vs_acc);
2303    Expr _v_Paren1;
2304    RF_CALL (List::Paren, _v_arg1, _v_Paren1);
2305    Expr _ve_arr_m_init;
2306    RF_CALL (Infix_m_To_m_Java, (_vs_acc, _c_110, _c_111, _v_Paren1), _ve_arr_m_init);
2307    Expr _v__q_1;
2308    RF_CALL (Box::_q_, _vs_acc, _v__q_1);
2309    _v_res1 = (_v__q_1 + (_c_114 + _ve_new_m_var + _c_113 + _ve_arr_m_init + _c_112) ());
2310    _v_res2 = (_c_115 + _ve_new_m_var + _c_30);
2311  }
2312_block1: {}
2313RF_END
2314
2315RF_FUNC (Term_m_Ref_m_To_m_Java, (RF_ARG _vs_acc, _vt_erm;;), (RF_RES _v_res1;;))
2316  {
2317    {
2318      if (_vt_erm.symbol_at (0))
2319      {
2320        goto _block1__branch1;
2321      }
2322      Expr _v_deref__erm (_vt_erm, 0);
2323      uintptr_t _v_len1 = _v_deref__erm.get_len ();
2324      uintptr_t _v_len2 = 1;
2325      if ((_v_len1 < _v_len2))
2326      {
2327        goto _block1__branch1;
2328      }
2329      uintptr_t _v_len__expr = (_v_len1 - _v_len2);
2330      if (!_c_102.term_eq (_v_deref__erm, 0))
2331      {
2332        goto _block1__branch1;
2333      }
2334      Expr _ve_expr (_v_deref__erm, 1, _v_len__expr);
2335      Expr _ve_a;
2336      Expr _ve_j_m_expr;
2337      RF_CALL (Expr_m_Ref_m_To_m_Java, _ve_expr, (_ve_a, _ve_j_m_expr));
2338      RF_CALL (Box::Put, (_vs_acc, _ve_a), /*void*/);
2339      _v_res1 = (_c_116 + _ve_j_m_expr + _c_30);
2340      goto _block1;
2341    }
2342  _block1__branch1: {}
2343    {
2344      if (_vt_erm.symbol_at (0))
2345      {
2346        goto _block1__branch2;
2347      }
2348      Expr _v_deref__erm2 (_vt_erm, 0);
2349      uintptr_t _v_len3 = _v_deref__erm2.get_len ();
2350      uintptr_t _v_len4 = 2;
2351      if ((_v_len3 < _v_len4))
2352      {
2353        goto _block1__branch2;
2354      }
2355      uintptr_t _v_len__expr2 = (_v_len3 - _v_len4);
2356      if (_v_deref__erm2.symbol_at ((_v_len__expr2 + 1)))
2357      {
2358        goto _block1__branch2;
2359      }
2360      Expr _v_deref__deref__erm2 (_v_deref__erm2, (_v_len__expr2 + 1));
2361      uintptr_t _v_len5 = _v_deref__deref__erm2.get_len ();
2362      uintptr_t _v_len6 = 0;
2363      if ((_v_len5 < _v_len6))
2364      {
2365        goto _block1__branch2;
2366      }
2367      uintptr_t _v_len__pos = (_v_len5 - _v_len6);
2368      if (!_c_73.term_eq (_v_deref__erm2, 0))
2369      {
2370        goto _block1__branch2;
2371      }
2372      Expr _ve_expr (_v_deref__erm2, 1, _v_len__expr2);
2373      Expr _ve_pos (_v_deref__deref__erm2, 0, _v_len__pos);
2374      Expr _ve_a;
2375      Expr _ve_j_m_expr;
2376      RF_CALL (Expr_m_Ref_m_To_m_Java, _ve_expr, (_ve_a, _ve_j_m_expr));
2377      RF_CALL (Box::Put, (_vs_acc, _ve_a), /*void*/);
2378      RF_CALL (Expr_m_Int_m_To_m_Java, (_vs_acc, _ve_pos), _ve_pos);
2379      _v_res1 = (_c_117 + _ve_j_m_expr + _c_74 + _ve_pos + _c_30);
2380      goto _block1;
2381    }
2382  _block1__branch2: {}
2383    {
2384      if (_vt_erm.symbol_at (0))
2385      {
2386        goto _block1__branch3;
2387      }
2388      Expr _v_deref__erm3 (_vt_erm, 0);
2389      uintptr_t _v_len7 = _v_deref__erm3.get_len ();
2390      uintptr_t _v_len8 = 3;
2391      if ((_v_len7 < _v_len8))
2392      {
2393        goto _block1__branch3;
2394      }
2395      uintptr_t _v_len__expr3 = (_v_len7 - _v_len8);
2396      if (_v_deref__erm3.symbol_at ((_v_len__expr3 + 1)))
2397      {
2398        goto _block1__branch3;
2399      }
2400      if (_v_deref__erm3.symbol_at ((_v_len__expr3 + 2)))
2401      {
2402        goto _block1__branch3;
2403      }
2404      Expr _v_deref__deref__erm3 (_v_deref__erm3, (_v_len__expr3 + 1));
2405      Expr _v_deref__deref__erm32 (_v_deref__erm3, (_v_len__expr3 + 2));
2406      uintptr_t _v_len9 = _v_deref__deref__erm32.get_len ();
2407      uintptr_t _v_len10 = 0;
2408      if ((_v_len9 < _v_len10))
2409      {
2410        goto _block1__branch3;
2411      }
2412      uintptr_t _v_len__len = (_v_len9 - _v_len10);
2413      uintptr_t _v_len11 = _v_deref__deref__erm3.get_len ();
2414      uintptr_t _v_len12 = 0;
2415      if ((_v_len11 < _v_len12))
2416      {
2417        goto _block1__branch3;
2418      }
2419      uintptr_t _v_len__pos2 = (_v_len11 - _v_len12);
2420      if (!_c_76.term_eq (_v_deref__erm3, 0))
2421      {
2422        goto _block1__branch3;
2423      }
2424      Expr _ve_expr (_v_deref__erm3, 1, _v_len__expr3);
2425      Expr _ve_pos (_v_deref__deref__erm3, 0, _v_len__pos2);
2426      Expr _ve_len (_v_deref__deref__erm32, 0, _v_len__len);
2427      Expr _ve_a;
2428      Expr _ve_j_m_expr;
2429      RF_CALL (Expr_m_Ref_m_To_m_Java, _ve_expr, (_ve_a, _ve_j_m_expr));
2430      RF_CALL (Box::Put, (_vs_acc, _ve_a), /*void*/);
2431      RF_CALL (Expr_m_Int_m_To_m_Java, (_vs_acc, _ve_pos), _ve_pos);
2432      RF_CALL (Expr_m_Int_m_To_m_Java, (_vs_acc, _ve_len), _ve_len);
2433      _v_res1 = (_c_109 + _ve_j_m_expr + _c_77 + _ve_pos + _c_77 + _ve_len + _c_30);
2434      goto _block1;
2435    }
2436  _block1__branch3: {}
2437    {
2438      if (_vt_erm.symbol_at (0))
2439      {
2440        goto _block1__branch4;
2441      }
2442      Expr _v_deref__erm4 (_vt_erm, 0);
2443      if ((_v_deref__erm4.get_len () != 2))
2444      {
2445        goto _block1__branch4;
2446      }
2447      if (!_c_118.term_eq (_v_deref__erm4, 0))
2448      {
2449        goto _block1__branch4;
2450      }
2451      Expr _vt_name (_v_deref__erm4, 1, 1);
2452      RF_TAILCALL (Name_m_To_m_Java, _vt_name, _v_res1);
2453      goto _block1;
2454    }
2455  _block1__branch4: {}
2456    {
2457      if (!_vt_erm.term_eq (_c_119, 0))
2458      {
2459        goto _block1__branch5;
2460      }
2461      _v_res1 = _c_120;
2462      goto _block1;
2463    }
2464  _block1__branch5: {}
2465    if (_vt_erm.symbol_at (0))
2466    {
2467      RF_FUNC_ERROR (unexpected_fail);
2468    }
2469    Expr _v_deref__erm5 (_vt_erm, 0);
2470    if ((_v_deref__erm5.get_len () != 2))
2471    {
2472      RF_FUNC_ERROR (unexpected_fail);
2473    }
2474    if (!_v_deref__erm5.symbol_at (0))
2475    {
2476      RF_FUNC_ERROR (unexpected_fail);
2477    }
2478    Expr _vs_var_m_tag (_v_deref__erm5, 0, 1);
2479    Expr _vt_name (_v_deref__erm5, 1, 1);
2480    RF_TAILCALL (Var_m_To_m_Java, (_vs_var_m_tag + _vt_name) (), _v_res1);
2481  }
2482_block1: {}
2483RF_END
2484
2485RF_FUNC (Expr_m_Int_m_To_m_Java, (RF_ARG _vs_acc, _ve_xpr;;), (RF_RES _v_res1;;))
2486  {
2487    {
2488      if ((_ve_xpr.get_len () != 1))
2489      {
2490        goto _block1__branch1;
2491      }
2492      if (!_ve_xpr.symbol_at (0))
2493      {
2494        goto _block1__branch1;
2495      }
2496      Expr _vs_ObjectSymbol (_ve_xpr, 0, 1);
2497      {
2498        {
2499          if (!RF_CALL (Class::Int_q_, _vs_ObjectSymbol, /*void*/))
2500          {
2501            goto _block2__branch1;
2502          }
2503          _v_res1 = _vs_ObjectSymbol;
2504          goto _block2;
2505        }
2506      _block2__branch1: {}
2507        RF_ERROR ((_c_121 + _vs_ObjectSymbol) ());
2508      }
2509    _block2: {}
2510      goto _block1;
2511    }
2512  _block1__branch1: {}
2513    {
2514      if ((_ve_xpr.get_len () != 1))
2515      {
2516        goto _block1__branch2;
2517      }
2518      if (_ve_xpr.symbol_at (0))
2519      {
2520        goto _block1__branch2;
2521      }
2522      Expr _v_deref__xpr (_ve_xpr, 0);
2523      uintptr_t _v_len1 = _v_deref__xpr.get_len ();
2524      uintptr_t _v_len2 = 1;
2525      if ((_v_len1 < _v_len2))
2526      {
2527        goto _block1__branch2;
2528      }
2529      uintptr_t _v_len__expr = (_v_len1 - _v_len2);
2530      if (!_c_103.term_eq (_v_deref__xpr, 0))
2531      {
2532        goto _block1__branch2;
2533      }
2534      Expr _ve_expr (_v_deref__xpr, 1, _v_len__expr);
2535      Expr _ve_a;
2536      Expr _ve_j_m_expr;
2537      RF_CALL (Expr_m_Ref_m_To_m_Java, _ve_expr, (_ve_a, _ve_j_m_expr));
2538      RF_CALL (Box::Put, (_vs_acc, _ve_a), /*void*/);
2539      _v_res1 = (_ve_j_m_expr + _c_122);
2540      goto _block1;
2541    }
2542  _block1__branch2: {}
2543    {
2544      if ((_ve_xpr.get_len () != 1))
2545      {
2546        goto _block1__branch3;
2547      }
2548      if (_ve_xpr.symbol_at (0))
2549      {
2550        goto _block1__branch3;
2551      }
2552      Expr _v_deref__xpr2 (_ve_xpr, 0);
2553      uintptr_t _v_len3 = _v_deref__xpr2.get_len ();
2554      uintptr_t _v_len4 = 1;
2555      if ((_v_len3 < _v_len4))
2556      {
2557        goto _block1__branch3;
2558      }
2559      uintptr_t _v_len__args = (_v_len3 - _v_len4);
2560      if (!_c_105.term_eq (_v_deref__xpr2, 0))
2561      {
2562        goto _block1__branch3;
2563      }
2564      Expr _ve_args (_v_deref__xpr2, 1, _v_len__args);
2565      Expr _v_Int_m_Args_m_To_m_Java1;
2566      RF_CALL (Int_m_Args_m_To_m_Java, (_vs_acc, _ve_args), _v_Int_m_Args_m_To_m_Java1);
2567      _v_res1 = (_c_123 + _v_Int_m_Args_m_To_m_Java1 + _c_30);
2568      goto _block1;
2569    }
2570  _block1__branch3: {}
2571    {
2572      if ((_ve_xpr.get_len () != 1))
2573      {
2574        goto _block1__branch4;
2575      }
2576      if (_ve_xpr.symbol_at (0))
2577      {
2578        goto _block1__branch4;
2579      }
2580      Expr _v_deref__xpr3 (_ve_xpr, 0);
2581      uintptr_t _v_len5 = _v_deref__xpr3.get_len ();
2582      uintptr_t _v_len6 = 1;
2583      if ((_v_len5 < _v_len6))
2584      {
2585        goto _block1__branch4;
2586      }
2587      uintptr_t _v_len__args2 = (_v_len5 - _v_len6);
2588      if (!_c_106.term_eq (_v_deref__xpr3, 0))
2589      {
2590        goto _block1__branch4;
2591      }
2592      Expr _ve_args (_v_deref__xpr3, 1, _v_len__args2);
2593      Expr _v_Int_m_Args_m_To_m_Java2;
2594      RF_CALL (Int_m_Args_m_To_m_Java, (_vs_acc, _ve_args), _v_Int_m_Args_m_To_m_Java2);
2595      _v_res1 = (_c_124 + _v_Int_m_Args_m_To_m_Java2 + _c_30);
2596      goto _block1;
2597    }
2598  _block1__branch4: {}
2599    {
2600      if ((_ve_xpr.get_len () != 1))
2601      {
2602        goto _block1__branch5;
2603      }
2604      if (_ve_xpr.symbol_at (0))
2605      {
2606        goto _block1__branch5;
2607      }
2608      Expr _v_deref__xpr4 (_ve_xpr, 0);
2609      uintptr_t _v_len7 = _v_deref__xpr4.get_len ();
2610      uintptr_t _v_len8 = 2;
2611      if ((_v_len7 < _v_len8))
2612      {
2613        goto _block1__branch5;
2614      }
2615      uintptr_t _v_len__args3 = (_v_len7 - _v_len8);
2616      if (!_c_107.term_eq (_v_deref__xpr4, 0))
2617      {
2618        goto _block1__branch5;
2619      }
2620      if (!_v_deref__xpr4.symbol_at (1))
2621      {
2622        goto _block1__branch5;
2623      }
2624      Expr _vs_op (_v_deref__xpr4, 1, 1);
2625      Expr _ve_args (_v_deref__xpr4, 2, _v_len__args3);
2626      Expr _v_Infix_m_To_m_Java1;
2627      RF_CALL (Infix_m_To_m_Java, (_vs_acc, _c_125, _vs_op, _ve_args), _v_Infix_m_To_m_Java1);
2628      _v_res1 = (_c_126 + _v_Infix_m_To_m_Java1 + _c_30);
2629      goto _block1;
2630    }
2631  _block1__branch5: {}
2632    {
2633      if ((_ve_xpr.get_len () != 1))
2634      {
2635        goto _block1__branch6;
2636      }
2637      if (_ve_xpr.symbol_at (0))
2638      {
2639        goto _block1__branch6;
2640      }
2641      Expr _v_deref__xpr5 (_ve_xpr, 0);
2642      if ((_v_deref__xpr5.get_len () != 2))
2643      {
2644        goto _block1__branch6;
2645      }
2646      if (!_v_deref__xpr5.symbol_at (0))
2647      {
2648        goto _block1__branch6;
2649      }
2650      Expr _vs_var_m_tag (_v_deref__xpr5, 0, 1);
2651      Expr _vt_name (_v_deref__xpr5, 1, 1);
2652      RF_TAILCALL (JavaMangle::Rfp2Java, (_vs_var_m_tag + _vt_name) (), _v_res1);
2653      goto _block1;
2654    }
2655  _block1__branch6: {}
2656    if (!_ve_xpr.eq (_ve_xpr, 0))
2657    {
2658      RF_FUNC_ERROR (unexpected_fail);
2659    }
2660    Expr _v_Paren1;
2661    RF_CALL (List::Paren, _ve_xpr, _v_Paren1);
2662    Expr _v_Infix_m_To_m_Java2;
2663    RF_CALL (Infix_m_To_m_Java, (_vs_acc, _c_125, _c_127, _v_Paren1), _v_Infix_m_To_m_Java2);
2664    _v_res1 = (_c_126 + _v_Infix_m_To_m_Java2 + _c_30);
2665  }
2666_block1: {}
2667RF_END
2668
2669RF_FUNC (Cond_m_To_m_Java, (RF_ARG _vs_acc, _ve_xpr;;), (RF_RES _v_res1;;))
2670  {
2671    {
2672      if ((_ve_xpr.get_len () != 0))
2673      {
2674        goto _block1__branch1;
2675      }
2676      _v_res1 = empty;
2677      goto _block1;
2678    }
2679  _block1__branch1: {}
2680    {
2681      if ((_ve_xpr.get_len () != 1))
2682      {
2683        goto _block1__branch2;
2684      }
2685      if (_ve_xpr.symbol_at (0))
2686      {
2687        goto _block1__branch2;
2688      }
2689      Expr _v_deref__xpr (_ve_xpr, 0);
2690      if ((_v_deref__xpr.get_len () != 4))
2691      {
2692        goto _block1__branch2;
2693      }
2694      if (_v_deref__xpr.symbol_at (2))
2695      {
2696        goto _block1__branch2;
2697      }
2698      if (_v_deref__xpr.symbol_at (3))
2699      {
2700        goto _block1__branch2;
2701      }
2702      Expr _v_deref__deref__xpr (_v_deref__xpr, 2);
2703      Expr _v_deref__deref__xpr2 (_v_deref__xpr, 3);
2704      uintptr_t _v_len1 = _v_deref__deref__xpr2.get_len ();
2705      uintptr_t _v_len2 = 0;
2706      if ((_v_len1 < _v_len2))
2707      {
2708        goto _block1__branch2;
2709      }
2710      uintptr_t _v_len__ress = (_v_len1 - _v_len2);
2711      uintptr_t _v_len3 = _v_deref__deref__xpr.get_len ();
2712      uintptr_t _v_len4 = 0;
2713      if ((_v_len3 < _v_len4))
2714      {
2715        goto _block1__branch2;
2716      }
2717      uintptr_t _v_len__args = (_v_len3 - _v_len4);
2718      if (!_c_28.term_eq (_v_deref__xpr, 0))
2719      {
2720        goto _block1__branch2;
2721      }
2722      Expr _vt_name (_v_deref__xpr, 1, 1);
2723      Expr _ve_args (_v_deref__deref__xpr, 0, _v_len__args);
2724      Expr _ve_ress (_v_deref__deref__xpr2, 0, _v_len__ress);
2725      Expr _ve_decls;
2726      RF_CALL (Declare_m_Results, (_ve_ress, empty), (_ve_decls, _ve_ress));
2727      Expr _ve_arrays;
2728      RF_CALL (Expr_m_Args_m_To_m_Java, (_ve_args + _c_19 + _ve_ress), (_ve_arrays, _ve_args));
2729      RF_CALL (Box::Put, (_vs_acc, (_ve_arrays + _ve_decls)), /*void*/);
2730      Expr _v_Name_m_To_m_Java1;
2731      RF_CALL (Name_m_To_m_Java, _vt_name, _v_Name_m_To_m_Java1);
2732      _v_res1 = (_v_Name_m_To_m_Java1 + _c_22 + _ve_args + _c_30);
2733      goto _block1;
2734    }
2735  _block1__branch2: {}
2736    {
2737      if ((_ve_xpr.get_len () != 1))
2738      {
2739        goto _block1__branch3;
2740      }
2741      if (_ve_xpr.symbol_at (0))
2742      {
2743        goto _block1__branch3;
2744      }
2745      Expr _v_deref__xpr2 (_ve_xpr, 0);
2746      uintptr_t _v_len5 = _v_deref__xpr2.get_len ();
2747      uintptr_t _v_len6 = 2;
2748      if ((_v_len5 < _v_len6))
2749      {
2750        goto _block1__branch3;
2751      }
2752      uintptr_t _v_len__expr = (_v_len5 - _v_len6);
2753      if (_v_deref__xpr2.symbol_at ((_v_len__expr + 1)))
2754      {
2755        goto _block1__branch3;
2756      }
2757      Expr _v_deref__deref__xpr22 (_v_deref__xpr2, (_v_len__expr + 1));
2758      uintptr_t _v_len7 = _v_deref__deref__xpr22.get_len ();
2759      uintptr_t _v_len8 = 0;
2760      if ((_v_len7 < _v_len8))
2761      {
2762        goto _block1__branch3;
2763      }
2764      uintptr_t _v_len__pos = (_v_len7 - _v_len8);
2765      if (!_c_128.term_eq (_v_deref__xpr2, 0))
2766      {
2767        goto _block1__branch3;
2768      }
2769      Expr _ve_expr (_v_deref__xpr2, 1, _v_len__expr);
2770      Expr _ve_pos (_v_deref__deref__xpr22, 0, _v_len__pos);
2771      Expr _ve_a;
2772      Expr _ve_j_m_expr;
2773      RF_CALL (Expr_m_Ref_m_To_m_Java, _ve_expr, (_ve_a, _ve_j_m_expr));
2774      RF_CALL (Box::Put, (_vs_acc, _ve_a), /*void*/);
2775      Expr _v_Expr_m_Int_m_To_m_Java1;
2776      RF_CALL (Expr_m_Int_m_To_m_Java, (_vs_acc, _ve_pos), _v_Expr_m_Int_m_To_m_Java1);
2777      _v_res1 = (_ve_j_m_expr + _c_129 + _v_Expr_m_Int_m_To_m_Java1 + _c_30);
2778      goto _block1;
2779    }
2780  _block1__branch3: {}
2781    {
2782      if ((_ve_xpr.get_len () != 1))
2783      {
2784        goto _block1__branch4;
2785      }
2786      if (_ve_xpr.symbol_at (0))
2787      {
2788        goto _block1__branch4;
2789      }
2790      Expr _v_deref__xpr3 (_ve_xpr, 0);
2791      uintptr_t _v_len9 = _v_deref__xpr3.get_len ();
2792      uintptr_t _v_len10 = 1;
2793      if ((_v_len9 < _v_len10))
2794      {
2795        goto _block1__branch4;
2796      }
2797      uintptr_t _v_len__expr2 = (_v_len9 - _v_len10);
2798      if (!_c_130.term_eq (_v_deref__xpr3, 0))
2799      {
2800        goto _block1__branch4;
2801      }
2802      Expr _ve_expr (_v_deref__xpr3, 1, _v_len__expr2);
2803      Expr _v_Lookup1;
2804      if (!RF_CALL (Table::Lookup, (Iter_m_Vars, _ve_expr), _v_Lookup1))
2805      {
2806        RF_FUNC_ERROR (unexpected_fail);
2807      }
2808      Expr _v_Middle1;
2809      if (!RF_CALL (Access::Middle, (_c_131, _c_132, _v_Lookup1), _v_Middle1))
2810      {
2811        RF_FUNC_ERROR (unexpected_fail);
2812      }
2813      _v_res1 = (_v_Middle1 + _c_133);
2814      goto _block1;
2815    }
2816  _block1__branch4: {}
2817    {
2818      if ((_ve_xpr.get_len () != 1))
2819      {
2820        goto _block1__branch5;
2821      }
2822      if (_ve_xpr.symbol_at (0))
2823      {
2824        goto _block1__branch5;
2825      }
2826      Expr _v_deref__xpr4 (_ve_xpr, 0);
2827      uintptr_t _v_len11 = _v_deref__xpr4.get_len ();
2828      uintptr_t _v_len12 = 3;
2829      if ((_v_len11 < _v_len12))
2830      {
2831        goto _block1__branch5;
2832      }
2833      uintptr_t _v_len__expr1 = (_v_len11 - _v_len12);
2834      if (_v_deref__xpr4.symbol_at ((_v_len__expr1 + 1)))
2835      {
2836        goto _block1__branch5;
2837      }
2838      if (_v_deref__xpr4.symbol_at ((_v_len__expr1 + 2)))
2839      {
2840        goto _block1__branch5;
2841      }
2842      Expr _v_deref__deref__xpr4 (_v_deref__xpr4, (_v_len__expr1 + 1));
2843      Expr _v_deref__deref__xpr42 (_v_deref__xpr4, (_v_len__expr1 + 2));
2844      uintptr_t _v_len13 = _v_deref__deref__xpr42.get_len ();
2845      uintptr_t _v_len14 = 0;
2846      if ((_v_len13 < _v_len14))
2847      {
2848        goto _block1__branch5;
2849      }
2850      uintptr_t _v_len__pos2 = (_v_len13 - _v_len14);
2851      uintptr_t _v_len15 = _v_deref__deref__xpr4.get_len ();
2852      uintptr_t _v_len16 = 0;
2853      if ((_v_len15 < _v_len16))
2854      {
2855        goto _block1__branch5;
2856      }
2857      uintptr_t _v_len__expr22 = (_v_len15 - _v_len16);
2858      if (!_c_134.term_eq (_v_deref__xpr4, 0))
2859      {
2860        goto _block1__branch5;
2861      }
2862      Expr _ve_expr1 (_v_deref__xpr4, 1, _v_len__expr1);
2863      Expr _ve_expr2 (_v_deref__deref__xpr4, 0, _v_len__expr22);
2864      Expr _ve_pos (_v_deref__deref__xpr42, 0, _v_len__pos2);
2865      Expr _ve_a1;
2866      Expr _ve_j_m_expr1;
2867      RF_CALL (Expr_m_Ref_m_To_m_Java, _ve_expr1, (_ve_a1, _ve_j_m_expr1));
2868      Expr _ve_a2;
2869      Expr _ve_j_m_expr2;
2870      RF_CALL (Expr_m_Ref_m_To_m_Java, _ve_expr2, (_ve_a2, _ve_j_m_expr2));
2871      RF_CALL (Box::Put, (_vs_acc, (_ve_a1 + _ve_a2)), /*void*/);
2872      Expr _v_Expr_m_Int_m_To_m_Java2;
2873      RF_CALL (Expr_m_Int_m_To_m_Java, (_vs_acc, _ve_pos), _v_Expr_m_Int_m_To_m_Java2);
2874      _v_res1 = (_ve_j_m_expr1 + _c_135 + _ve_j_m_expr2 + _c_77 + _v_Expr_m_Int_m_To_m_Java2 + _c_30);
2875      goto _block1;
2876    }
2877  _block1__branch5: {}
2878    {
2879      if ((_ve_xpr.get_len () != 1))
2880      {
2881        goto _block1__branch6;
2882      }
2883      if (_ve_xpr.symbol_at (0))
2884      {
2885        goto _block1__branch6;
2886      }
2887      Expr _v_deref__xpr5 (_ve_xpr, 0);
2888      uintptr_t _v_len17 = _v_deref__xpr5.get_len ();
2889      uintptr_t _v_len18 = 3;
2890      if ((_v_len17 < _v_len18))
2891      {
2892        goto _block1__branch6;
2893      }
2894      uintptr_t _v_len__expr12 = (_v_len17 - _v_len18);
2895      if (_v_deref__xpr5.symbol_at ((_v_len__expr12 + 1)))
2896      {
2897        goto _block1__branch6;
2898      }
2899      if (_v_deref__xpr5.symbol_at ((_v_len__expr12 + 2)))
2900      {
2901        goto _block1__branch6;
2902      }
2903      Expr _v_deref__deref__xpr5 (_v_deref__xpr5, (_v_len__expr12 + 1));
2904      Expr _v_deref__deref__xpr52 (_v_deref__xpr5, (_v_len__expr12 + 2));
2905      uintptr_t _v_len19 = _v_deref__deref__xpr52.get_len ();
2906      uintptr_t _v_len20 = 0;
2907      if ((_v_len19 < _v_len20))
2908      {
2909        goto _block1__branch6;
2910      }
2911      uintptr_t _v_len__pos3 = (_v_len19 - _v_len20);
2912      uintptr_t _v_len21 = _v_deref__deref__xpr5.get_len ();
2913      uintptr_t _v_len22 = 0;
2914      if ((_v_len21 < _v_len22))
2915      {
2916        goto _block1__branch6;
2917      }
2918      uintptr_t _v_len__expr23 = (_v_len21 - _v_len22);
2919      if (!_c_136.term_eq (_v_deref__xpr5, 0))
2920      {
2921        goto _block1__branch6;
2922      }
2923      Expr _ve_expr1 (_v_deref__xpr5, 1, _v_len__expr12);
2924      Expr _ve_expr2 (_v_deref__deref__xpr5, 0, _v_len__expr23);
2925      Expr _ve_pos (_v_deref__deref__xpr52, 0, _v_len__pos3);
2926      Expr _ve_a1;
2927      Expr _ve_j_m_expr1;
2928      RF_CALL (Expr_m_Ref_m_To_m_Java, _ve_expr1, (_ve_a1, _ve_j_m_expr1));
2929      Expr _ve_a2;
2930      Expr _ve_j_m_expr2;
2931      RF_CALL (Expr_m_Ref_m_To_m_Java, _ve_expr2, (_ve_a2, _ve_j_m_expr2));
2932      RF_CALL (Box::Put, (_vs_acc, (_ve_a1 + _ve_a2)), /*void*/);
2933      Expr _v_Expr_m_Int_m_To_m_Java3;
2934      RF_CALL (Expr_m_Int_m_To_m_Java, (_vs_acc, _ve_pos), _v_Expr_m_Int_m_To_m_Java3);
2935      _v_res1 = (_ve_j_m_expr1 + _c_135 + _ve_j_m_expr2 + _c_77 + _v_Expr_m_Int_m_To_m_Java3 + _c_30);
2936      goto _block1;
2937    }
2938  _block1__branch6: {}
2939    {
2940      if ((_ve_xpr.get_len () != 1))
2941      {
2942        goto _block1__branch7;
2943      }
2944      if (_ve_xpr.symbol_at (0))
2945      {
2946        goto _block1__branch7;
2947      }
2948      Expr _v_deref__xpr6 (_ve_xpr, 0);
2949      uintptr_t _v_len23 = _v_deref__xpr6.get_len ();
2950      uintptr_t _v_len24 = 1;
2951      if ((_v_len23 < _v_len24))
2952      {
2953        goto _block1__branch7;
2954      }
2955      uintptr_t _v_len__cond = (_v_len23 - _v_len24);
2956      if (!_c_29.term_eq (_v_deref__xpr6, 0))
2957      {
2958        goto _block1__branch7;
2959      }
2960      Expr _ve_cond (_v_deref__xpr6, 1, _v_len__cond);
2961      Expr _v_Cond_m_To_m_Java1;
2962      RF_CALL (Cond_m_To_m_Java, (_vs_acc, _ve_cond), _v_Cond_m_To_m_Java1);
2963      _v_res1 = (_c_137 + _v_Cond_m_To_m_Java1);
2964      goto _block1;
2965    }
2966  _block1__branch7: {}
2967    {
2968      if ((_ve_xpr.get_len () != 1))
2969      {
2970        goto _block1__branch8;
2971      }
2972      if (_ve_xpr.symbol_at (0))
2973      {
2974        goto _block1__branch8;
2975      }
2976      Expr _v_deref__xpr7 (_ve_xpr, 0);
2977      uintptr_t _v_len25 = _v_deref__xpr7.get_len ();
2978      uintptr_t _v_len26 = 2;
2979      if ((_v_len25 < _v_len26))
2980      {
2981        goto _block1__branch8;
2982      }
2983      uintptr_t _v_len__args2 = (_v_len25 - _v_len26);
2984      if (!_c_107.term_eq (_v_deref__xpr7, 0))
2985      {
2986        goto _block1__branch8;
2987      }
2988      if (!_v_deref__xpr7.symbol_at (1))
2989      {
2990        goto _block1__branch8;
2991      }
2992      Expr _vs_op (_v_deref__xpr7, 1, 1);
2993      Expr _ve_args (_v_deref__xpr7, 2, _v_len__args2);
2994      {
2995        {
2996          {
2997            {
2998              if (!_vs_op.term_eq (_c_127, 0))
2999              {
3000                goto _block3__branch1;
3001              }
3002              goto _block3;
3003            }
3004          _block3__branch1: {}
3005            {
3006              if (!_vs_op.term_eq (_c_138, 0))
3007              {
3008                goto _block3__branch2;
3009              }
3010              goto _block3;
3011            }
3012          _block3__branch2: {}
3013            {
3014              if (!_vs_op.term_eq (_c_139, 0))
3015              {
3016                goto _block3__branch3;
3017              }
3018              goto _block3;
3019            }
3020          _block3__branch3: {}
3021            {
3022              if (!_vs_op.term_eq (_c_140, 0))
3023              {
3024                goto _block3__branch4;
3025              }
3026              goto _block3;
3027            }
3028          _block3__branch4: {}
3029            if (!_vs_op.term_eq (_c_141, 0))
3030            {
3031              goto _block2__branch1;
3032            }
3033          }
3034        _block3: {}
3035          Expr _v_Infix_m_To_m_Java1;
3036          RF_CALL (Infix_m_To_m_Java, (_vs_acc, _c_125, _vs_op, _ve_args), _v_Infix_m_To_m_Java1);
3037          _v_res1 = (_v_Infix_m_To_m_Java1 + _c_142);
3038          goto _block2;
3039        }
3040      _block2__branch1: {}
3041        Expr _v_Op_m_Arg_m_To_m_Java1;
3042        RF_CALL (Op_m_Arg_m_To_m_Java, _vs_op, _v_Op_m_Arg_m_To_m_Java1);
3043        Expr _v_Infix_m_To_m_Java2;
3044        RF_CALL (Infix_m_To_m_Java, (_vs_acc, _v_Op_m_Arg_m_To_m_Java1, _vs_op, _ve_args), _v_Infix_m_To_m_Java2);
3045        _v_res1 = (_c_126 + _v_Infix_m_To_m_Java2 + _c_30);
3046      }
3047    _block2: {}
3048      goto _block1;
3049    }
3050  _block1__branch8: {}
3051    if (!_ve_xpr.eq (_ve_xpr, 0))
3052    {
3053      RF_FUNC_ERROR (unexpected_fail);
3054    }
3055    Expr _v_Paren1;
3056    RF_CALL (List::Paren, _ve_xpr, _v_Paren1);
3057    Expr _v_Infix_m_To_m_Java3;
3058    RF_CALL (Infix_m_To_m_Java, (_vs_acc, _c_143, _c_144, _v_Paren1), _v_Infix_m_To_m_Java3);
3059    _v_res1 = (_c_126 + _v_Infix_m_To_m_Java3 + _c_30);
3060  }
3061_block1: {}
3062RF_END
3063
3064RF_FUNC (Infix_m_To_m_Java, (RF_ARG _vs_acc, _vs_arg2java, _vs_op, _ve_args;;), (RF_RES _v_res1;;))
3065  {
3066    {
3067      uintptr_t _v_len1 = _ve_args.get_len ();
3068      uintptr_t _v_len2 = 1;
3069      if ((_v_len1 < _v_len2))
3070      {
3071        goto _block1__branch1;
3072      }
3073      uintptr_t _v_len__rest = (_v_len1 - _v_len2);
3074      if (_ve_args.symbol_at (0))
3075      {
3076        goto _block1__branch1;
3077      }
3078      Expr _v_deref__args (_ve_args, 0);
3079      uintptr_t _v_len3 = _v_deref__args.get_len ();
3080      uintptr_t _v_len4 = 0;
3081      if ((_v_len3 < _v_len4))
3082      {
3083        goto _block1__branch1;
3084      }
3085      uintptr_t _v_len__arg = (_v_len3 - _v_len4);
3086      Expr _ve_rest (_ve_args, 1, _v_len__rest);
3087      Expr _ve_arg (_v_deref__args, 0, _v_len__arg);
3088      if (!RF_CALL (Apply::Apply, (_vs_arg2java, (_vs_acc + _ve_arg)), _ve_arg))
3089      {
3090        RF_FUNC_ERROR (unexpected_fail);
3091      }
3092      RF_CALL (Infix_m_To_m_Java, (_vs_acc, _vs_arg2java, _vs_op, _ve_rest), _ve_rest);
3093      {
3094        {
3095          uintptr_t _v_len5 = _ve_rest.get_len ();
3096          uintptr_t _v_len6 = 0;
3097          if ((_v_len5 < (_v_len6 + 1)))
3098          {
3099            goto _block2__branch1;
3100          }
3101          uintptr_t _v_len___e__e_tmp_m_rfp__asail__javarf_m_409_m_28 = (_v_len5 - _v_len6);
3102          uintptr_t _v_len7 = _ve_arg.get_len ();
3103          uintptr_t _v_len8 = 0;
3104          if ((_v_len7 < (_v_len8 + 1)))
3105          {
3106            goto _block2__branch1;
3107          }
3108          uintptr_t _v_len___e__e_tmp_m_rfp__asail__javarf_m_409_m_16 = (_v_len7 - _v_len8);
3109          Expr _vv__e__e_tmp_m_rfp__asail__javarf_m_409_m_16 (_ve_arg, 0, _v_len___e__e_tmp_m_rfp__asail__javarf_m_409_m_16);
3110          Expr _vv__e__e_tmp_m_rfp__asail__javarf_m_409_m_28 (_ve_rest, 0, _v_len___e__e_tmp_m_rfp__asail__javarf_m_409_m_28);
3111          _v_res1 = (_ve_arg + _c_23 + _vs_op + _c_23 + _ve_rest);
3112          goto _block2;
3113        }
3114      _block2__branch1: {}
3115        _v_res1 = (_ve_arg + _ve_rest);
3116      }
3117    _block2: {}
3118      goto _block1;
3119    }
3120  _block1__branch1: {}
3121    _v_res1 = empty;
3122  }
3123_block1: {}
3124RF_END
3125
3126RF_FUNC (Op_m_Arg_m_To_m_Java, (RF_ARG _vs_op;;), (RF_RES _v_res1;;))
3127  {
3128    {
3129      {
3130        {
3131          if (!_vs_op.term_eq (_c_144, 0))
3132          {
3133            goto _block2__branch1;
3134          }
3135          goto _block2;
3136        }
3137      _block2__branch1: {}
3138        if (!_vs_op.term_eq (_c_145, 0))
3139        {
3140          goto _block1__branch1;
3141        }
3142      }
3143    _block2: {}
3144      _v_res1 = _c_143;
3145      goto _block1;
3146    }
3147  _block1__branch1: {}
3148    {
3149      {
3150        if (!_vs_op.term_eq (_c_146, 0))
3151        {
3152          goto _block3__branch1;
3153        }
3154        goto _block3;
3155      }
3156    _block3__branch1: {}
3157      {
3158        if (!_vs_op.term_eq (_c_147, 0))
3159        {
3160          goto _block3__branch2;
3161        }
3162        goto _block3;
3163      }
3164    _block3__branch2: {}
3165      {
3166        if (!_vs_op.term_eq (_c_148, 0))
3167        {
3168          goto _block3__branch3;
3169        }
3170        goto _block3;
3171      }
3172    _block3__branch3: {}
3173      {
3174        if (!_vs_op.term_eq (_c_149, 0))
3175        {
3176          goto _block3__branch4;
3177        }
3178        goto _block3;
3179      }
3180    _block3__branch4: {}
3181      {
3182        if (!_vs_op.term_eq (_c_150, 0))
3183        {
3184          goto _block3__branch5;
3185        }
3186        goto _block3;
3187      }
3188    _block3__branch5: {}
3189      {
3190        if (!_vs_op.term_eq (_c_151, 0))
3191        {
3192          goto _block3__branch6;
3193        }
3194        goto _block3;
3195      }
3196    _block3__branch6: {}
3197      {
3198        if (!_vs_op.term_eq (_c_127, 0))
3199        {
3200          goto _block3__branch7;
3201        }
3202        goto _block3;
3203      }
3204    _block3__branch7: {}
3205      {
3206        if (!_vs_op.term_eq (_c_138, 0))
3207        {
3208          goto _block3__branch8;
3209        }
3210        goto _block3;
3211      }
3212    _block3__branch8: {}
3213      {
3214        if (!_vs_op.term_eq (_c_139, 0))
3215        {
3216          goto _block3__branch9;
3217        }
3218        goto _block3;
3219      }
3220    _block3__branch9: {}
3221      {
3222        if (!_vs_op.term_eq (_c_140, 0))
3223        {
3224          goto _block3__branch10;
3225        }
3226        goto _block3;
3227      }
3228    _block3__branch10: {}
3229      if (!_vs_op.term_eq (_c_141, 0))
3230      {
3231        RF_FUNC_ERROR (unexpected_fail);
3232      }
3233    }
3234  _block3: {}
3235    _v_res1 = _c_125;
3236  }
3237_block1: {}
3238RF_END
3239
3240RF_FUNC (Step_m_To_m_Java, (RF_ARG _v_arg1;;), (RF_RES _v_res1;;))
3241  {
3242    {
3243      if ((_v_arg1.get_len () != 0))
3244      {
3245        goto _block1__branch1;
3246      }
3247      _v_res1 = empty;
3248      goto _block1;
3249    }
3250  _block1__branch1: {}
3251    {
3252      if ((_v_arg1.get_len () != 1))
3253      {
3254        goto _block1__branch2;
3255      }
3256      if (_v_arg1.symbol_at (0))
3257      {
3258        goto _block1__branch2;
3259      }
3260      Expr _v_deref__arg1 (_v_arg1, 0);
3261      uintptr_t _v_len1 = _v_deref__arg1.get_len ();
3262      uintptr_t _v_len2 = 1;
3263      if ((_v_len1 < _v_len2))
3264      {
3265        goto _block1__branch2;
3266      }
3267      uintptr_t _v_len__expr = (_v_len1 - _v_len2);
3268      if (!_c_35.term_eq (_v_deref__arg1, 0))
3269      {
3270        goto _block1__branch2;
3271      }
3272      Expr _ve_expr (_v_deref__arg1, 1, _v_len__expr);
3273      Expr _v_Lookup1;
3274      if (!RF_CALL (Table::Lookup, (Iter_m_Vars, _ve_expr), _v_Lookup1))
3275      {
3276        RF_FUNC_ERROR (unexpected_fail);
3277      }
3278      Expr _v_Middle1;
3279      if (!RF_CALL (Access::Middle, (_c_131, _c_132, _v_Lookup1), _v_Middle1))
3280      {
3281        RF_FUNC_ERROR (unexpected_fail);
3282      }
3283      _v_res1 = (_v_Middle1 + _c_152);
3284      goto _block1;
3285    }
3286  _block1__branch2: {}
3287    if ((_v_arg1.get_len () != 1))
3288    {
3289      RF_FUNC_ERROR (unexpected_fail);
3290    }
3291    if (_v_arg1.symbol_at (0))
3292    {
3293      RF_FUNC_ERROR (unexpected_fail);
3294    }
3295    Expr _v_deref__arg12 (_v_arg1, 0);
3296    uintptr_t _v_len3 = _v_deref__arg12.get_len ();
3297    uintptr_t _v_len4 = 1;
3298    if ((_v_len3 < _v_len4))
3299    {
3300      RF_FUNC_ERROR (unexpected_fail);
3301    }
3302    uintptr_t _v_len__expr2 = (_v_len3 - _v_len4);
3303    if (!_c_36.term_eq (_v_deref__arg12, 0))
3304    {
3305      RF_FUNC_ERROR (unexpected_fail);
3306    }
3307    Expr _ve_expr (_v_deref__arg12, 1, _v_len__expr2);
3308    Expr _v_Lookup2;
3309    if (!RF_CALL (Table::Lookup, (Iter_m_Vars, _ve_expr), _v_Lookup2))
3310    {
3311      RF_FUNC_ERROR (unexpected_fail);
3312    }
3313    Expr _v_Middle2;
3314    if (!RF_CALL (Access::Middle, (_c_131, _c_132, _v_Lookup2), _v_Middle2))
3315    {
3316      RF_FUNC_ERROR (unexpected_fail);
3317    }
3318    _v_res1 = (_v_Middle2 + _c_153);
3319  }
3320_block1: {}
3321RF_END
3322
3323RF_FUNC (Const_m_Expr_m_To_m_Java, (RF_ARG _v_arg1;;), (RF_RES _v_res1, _v_res2;;))
3324  {
3325    {
3326      if ((_v_arg1.get_len () != 0))
3327      {
3328        goto _block1__branch1;
3329      }
3330      _v_res1 = empty;
3331      _v_res2 = _c_108;
3332      goto _block1;
3333    }
3334  _block1__branch1: {}
3335    {
3336      if ((_v_arg1.get_len () != 1))
3337      {
3338        goto _block1__branch2;
3339      }
3340      if (_v_arg1.symbol_at (0))
3341      {
3342        goto _block1__branch2;
3343      }
3344      Expr _v_deref__arg1 (_v_arg1, 0);
3345      if ((_v_deref__arg1.get_len () != 4))
3346      {
3347        goto _block1__branch2;
3348      }
3349      if (!_c_76.term_eq (_v_deref__arg1, 0))
3350      {
3351        goto _block1__branch2;
3352      }
3353      if (!_v_deref__arg1.symbol_at (2))
3354      {
3355        goto _block1__branch2;
3356      }
3357      if (!_v_deref__arg1.symbol_at (3))
3358      {
3359        goto _block1__branch2;
3360      }
3361      Expr _vt_name (_v_deref__arg1, 1, 1);
3362      Expr _vs_pos (_v_deref__arg1, 2, 1);
3363      Expr _vs_len (_v_deref__arg1, 3, 1);
3364      Expr _v_Rfp2Java1;
3365      RF_CALL (JavaMangle::Rfp2Java, _vt_name, _v_Rfp2Java1);
3366      _v_res1 = empty;
3367      _v_res2 = (_c_109 + _v_Rfp2Java1 + _c_77 + _vs_pos + _c_77 + _vs_len + _c_30);
3368      goto _block1;
3369    }
3370  _block1__branch2: {}
3371    Expr _v_Const_m_Expr_m_Aux1;
3372    Expr _v_Const_m_Expr_m_Aux2;
3373    RF_CALL (Const_m_Expr_m_Aux, (empty, _v_arg1), (_v_Const_m_Expr_m_Aux1, _v_Const_m_Expr_m_Aux2));
3374    {
3375      {
3376        if (((_v_Const_m_Expr_m_Aux2.get_len () + 1) != 2))
3377        {
3378          goto _block2__branch1;
3379        }
3380        Expr _v_compose1 ((_v_Const_m_Expr_m_Aux1 () + _v_Const_m_Expr_m_Aux2));
3381        if (_v_compose1.symbol_at (0))
3382        {
3383          goto _block2__branch1;
3384        }
3385        if (_v_compose1.symbol_at (1))
3386        {
3387          goto _block2__branch1;
3388        }
3389        Expr _v_deref__compose1 (_v_compose1, 0);
3390        Expr _v_deref__compose12 (_v_compose1, 1);
3391        uintptr_t _v_len1 = _v_deref__compose12.get_len ();
3392        uintptr_t _v_len2 = 0;
3393        if ((_v_len1 < _v_len2))
3394        {
3395          goto _block2__branch1;
3396        }
3397        uintptr_t _v_len__1 = (_v_len1 - _v_len2);
3398        uintptr_t _v_len3 = _v_deref__compose1.get_len ();
3399        uintptr_t _v_len4 = 0;
3400        if ((_v_len3 < _v_len4))
3401        {
3402          goto _block2__branch1;
3403        }
3404        uintptr_t _v_len__arrays = (_v_len3 - _v_len4);
3405        Expr _ve_arrays (_v_deref__compose1, 0, _v_len__arrays);
3406        Expr _ve_1 (_v_deref__compose12, 0, _v_len__1);
3407        _v_res1 = _ve_arrays;
3408        _v_res2 = _ve_1;
3409        goto _block2;
3410      }
3411    _block2__branch1: {}
3412      {
3413        if (((_v_Const_m_Expr_m_Aux2.get_len () + 1) != 3))
3414        {
3415          goto _block2__branch2;
3416        }
3417        Expr _v_compose2 ((_v_Const_m_Expr_m_Aux1 () + _v_Const_m_Expr_m_Aux2));
3418        if (_v_compose2.symbol_at (0))
3419        {
3420          goto _block2__branch2;
3421        }
3422        if (_v_compose2.symbol_at (1))
3423        {
3424          goto _block2__branch2;
3425        }
3426        if (_v_compose2.symbol_at (2))
3427        {
3428          goto _block2__branch2;
3429        }
3430        Expr _v_deref__compose2 (_v_compose2, 0);
3431        Expr _v_deref__compose22 (_v_compose2, 1);
3432        Expr _v_deref__compose23 (_v_compose2, 2);
3433        uintptr_t _v_len5 = _v_deref__compose2.get_len ();
3434        uintptr_t _v_len6 = 0;
3435        if ((_v_len5 < _v_len6))
3436        {
3437          goto _block2__branch2;
3438        }
3439        uintptr_t _v_len__arrays2 = (_v_len5 - _v_len6);
3440        uintptr_t _v_len7 = _v_deref__compose23.get_len ();
3441        uintptr_t _v_len8 = 0;
3442        if ((_v_len7 < _v_len8))
3443        {
3444          goto _block2__branch2;
3445        }
3446        uintptr_t _v_len__2 = (_v_len7 - _v_len8);
3447        uintptr_t _v_len9 = _v_deref__compose22.get_len ();
3448        uintptr_t _v_len10 = 0;
3449        if ((_v_len9 < _v_len10))
3450        {
3451          goto _block2__branch2;
3452        }
3453        uintptr_t _v_len__12 = (_v_len9 - _v_len10);
3454        Expr _ve_arrays (_v_deref__compose2, 0, _v_len__arrays2);
3455        Expr _ve_1 (_v_deref__compose22, 0, _v_len__12);
3456        Expr _ve_2 (_v_deref__compose23, 0, _v_len__2);
3457        _v_res1 = _ve_arrays;
3458        _v_res2 = (_c_109 + _ve_1 + _c_77 + _ve_2 + _c_30);
3459        goto _block2;
3460      }
3461    _block2__branch2: {}
3462      uintptr_t _v_len11 = (_v_Const_m_Expr_m_Aux2.get_len () + 1);
3463      uintptr_t _v_len12 = 1;
3464      if ((_v_len11 < _v_len12))
3465      {
3466        RF_FUNC_ERROR (unexpected_fail);
3467      }
3468      uintptr_t _v_len__concat = (_v_len11 - _v_len12);
3469      Expr _v_compose3 ((_v_Const_m_Expr_m_Aux1 () + _v_Const_m_Expr_m_Aux2));
3470      if (_v_compose3.symbol_at (0))
3471      {
3472        RF_FUNC_ERROR (unexpected_fail);
3473      }
3474      Expr _v_deref__compose3 (_v_compose3, 0);
3475      uintptr_t _v_len13 = _v_deref__compose3.get_len ();
3476      uintptr_t _v_len14 = 0;
3477      if ((_v_len13 < _v_len14))
3478      {
3479        RF_FUNC_ERROR (unexpected_fail);
3480      }
3481      uintptr_t _v_len__arrays3 = (_v_len13 - _v_len14);
3482      Expr _ve_concat (_v_compose3, 1, _v_len__concat);
3483      Expr _ve_arrays (_v_deref__compose3, 0, _v_len__arrays3);
3484      Expr _v_Free_m_Index1;
3485      RF_CALL (Free_m_Index, /*void*/, _v_Free_m_Index1);
3486      Expr _ve_new_m_var ((_c_58 + _v_Free_m_Index1));
3487      Expr _v_Intersperse1;
3488      RF_CALL (List::Intersperse, (_c_77, _ve_concat), _v_Intersperse1);
3489      Expr _v_Concat1;
3490      RF_CALL (List::Concat, _v_Intersperse1, _v_Concat1);
3491      _v_res1 = (_ve_arrays + (_c_154 + _ve_new_m_var + _c_113 + _v_Concat1 + _c_112) ());
3492      _v_res2 = (_c_115 + _ve_new_m_var + _c_30);
3493    }
3494  _block2: {}
3495  }
3496_block1: {}
3497RF_END
3498
3499RF_FUNC (Const_m_Expr_m_Aux, (RF_ARG _ve_accum, _ve_expr;;), (RF_RES _v_res1, _v_res2;;))
3500  {
3501    {
3502      uintptr_t _v_len1 = _ve_expr.get_len ();
3503      uintptr_t _v_len2 = 1;
3504      if ((_v_len1 < _v_len2))
3505      {
3506        goto _block1__branch1;
3507      }
3508      uintptr_t _v_len__rest = (_v_len1 - _v_len2);
3509      if (!_ve_expr.symbol_at (0))
3510      {
3511        goto _block1__branch1;
3512      }
3513      Expr _vs_sym (_ve_expr, 0, 1);
3514      Expr _ve_rest (_ve_expr, 1, _v_len__rest);
3515      if (!RF_CALL (Class::Char_q_, _vs_sym, /*void*/))
3516      {
3517        goto _block1__branch1;
3518      }
3519      Expr _v_Symbol_m_To_m_Java1;
3520      RF_CALL (Symbol_m_To_m_Java, _vs_sym, _v_Symbol_m_To_m_Java1);
3521      RF_TAILCALL (Const_m_Expr_m_Aux, ((_ve_accum + _v_Symbol_m_To_m_Java1), _ve_rest), (_v_res1, _v_res2));
3522      goto _block1;
3523    }
3524  _block1__branch1: {}
3525    {
3526      uintptr_t _v_len3 = _ve_accum.get_len ();
3527      uintptr_t _v_len4 = 0;
3528      if ((_v_len3 < (_v_len4 + 1)))
3529      {
3530        goto _block1__branch2;
3531      }
3532      uintptr_t _v_len___e__e_tmp_m_rfp__asail__javarf_m_450_m_14 = (_v_len3 - _v_len4);
3533      Expr _vv__e__e_tmp_m_rfp__asail__javarf_m_450_m_14 (_ve_accum, 0, _v_len___e__e_tmp_m_rfp__asail__javarf_m_450_m_14);
3534      Expr _ve_arrays;
3535      Expr _ve_j_m_expr;
3536      RF_CALL (Const_m_Expr_m_Aux, (empty, _ve_expr), (_ve_arrays, _ve_j_m_expr));
3537      _v_res1 = _ve_arrays;
3538      _v_res2 = ((_c_156 + _ve_accum + _c_155) () + _ve_j_m_expr);
3539      goto _block1;
3540    }
3541  _block1__branch2: {}
3542    {
3543      uintptr_t _v_len5 = _ve_expr.get_len ();
3544      uintptr_t _v_len6 = 1;
3545      if ((_v_len5 < _v_len6))
3546      {
3547        goto _block1__branch3;
3548      }
3549      uintptr_t _v_len__rest2 = (_v_len5 - _v_len6);
3550      Expr _vt_item (_ve_expr, 0, 1);
3551      Expr _ve_rest (_ve_expr, 1, _v_len__rest2);
3552      Expr _ve_arrays;
3553      Expr _ve_java_m_item;
3554      {
3555        {
3556          if (_vt_item.symbol_at (0))
3557          {
3558            goto _block2__branch1;
3559          }
3560          Expr _v_deref__item (_vt_item, 0);
3561          uintptr_t _v_len7 = _v_deref__item.get_len ();
3562          uintptr_t _v_len8 = 1;
3563          if ((_v_len7 < _v_len8))
3564          {
3565            goto _block2__branch1;
3566          }
3567          uintptr_t _v_len__paren_m_expr = (_v_len7 - _v_len8);
3568          if (!_c_102.term_eq (_v_deref__item, 0))
3569          {
3570            goto _block2__branch1;
3571          }
3572          Expr _ve_paren_m_expr (_v_deref__item, 1, _v_len__paren_m_expr);
3573          Expr _v_arrays__1;
3574          Expr _ve_j_m_expr;
3575          RF_CALL (Const_m_Expr_m_To_m_Java, _ve_paren_m_expr, (_v_arrays__1, _ve_j_m_expr));
3576          _ve_arrays = _v_arrays__1;
3577          _ve_java_m_item = (_c_109 + _ve_j_m_expr + _c_30) ();
3578          goto _block2;
3579        }
3580      _block2__branch1: {}
3581        {
3582          if (_vt_item.symbol_at (0))
3583          {
3584            goto _block2__branch2;
3585          }
3586          Expr _v_deref__item2 (_vt_item, 0);
3587          if ((_v_deref__item2.get_len () != 2))
3588          {
3589            goto _block2__branch2;
3590          }
3591          if (!_c_118.term_eq (_v_deref__item2, 0))
3592          {
3593            goto _block2__branch2;
3594          }
3595          Expr _vt_name (_v_deref__item2, 1, 1);
3596          Expr _v_Name_m_To_m_Java1;
3597          RF_CALL (Name_m_To_m_Java, _vt_name, _v_Name_m_To_m_Java1);
3598          _ve_arrays = empty;
3599          _ve_java_m_item = _v_Name_m_To_m_Java1 ();
3600          goto _block2;
3601        }
3602      _block2__branch2: {}
3603        {
3604          if (_vt_item.symbol_at (0))
3605          {
3606            goto _block2__branch3;
3607          }
3608          Expr _v_deref__item3 (_vt_item, 0);
3609          uintptr_t _v_len9 = _v_deref__item3.get_len ();
3610          uintptr_t _v_len10 = 1;
3611          if ((_v_len9 < _v_len10))
3612          {
3613            goto _block2__branch3;
3614          }
3615          uintptr_t _v_len___e__e_tmp_m_rfp__asail__javarf_m_459_m_14 = (_v_len9 - _v_len10);
3616          if (!_c_88.term_eq (_v_deref__item3, 0))
3617          {
3618            goto _block2__branch3;
3619          }
3620          Expr _ve__e__e_tmp_m_rfp__asail__javarf_m_459_m_14 (_v_deref__item3, 1, _v_len___e__e_tmp_m_rfp__asail__javarf_m_459_m_14);
3621          Expr _v_Rfp2Java1;
3622          RF_CALL (JavaMangle::Rfp2Java, _vt_item, _v_Rfp2Java1);
3623          _ve_arrays = empty;
3624          _ve_java_m_item = _v_Rfp2Java1 ();
3625          goto _block2;
3626        }
3627      _block2__branch3: {}
3628        {
3629          if (_vt_item.symbol_at (0))
3630          {
3631            goto _block2__branch4;
3632          }
3633          Expr _v_deref__item4 (_vt_item, 0);
3634          if ((_v_deref__item4.get_len () != 2))
3635          {
3636            goto _block2__branch4;
3637          }
3638          if (!_c_16.term_eq (_v_deref__item4, 0))
3639          {
3640            goto _block2__branch4;
3641          }
3642          Expr _vt_name (_v_deref__item4, 1, 1);
3643          Expr _v_Name_m_To_m_Java2;
3644          RF_CALL (Name_m_To_m_Java, _vt_name, _v_Name_m_To_m_Java2);
3645          _ve_arrays = empty;
3646          _ve_java_m_item = (_c_161 + (_c_159 + (_c_158 + _v_Name_m_To_m_Java2 + _c_157) () + _c_7) () + _c_160) ();
3647          goto _block2;
3648        }
3649      _block2__branch4: {}
3650        {
3651          if (_vt_item.symbol_at (0))
3652          {
3653            goto _block2__branch5;
3654          }
3655          Expr _v_deref__item5 (_vt_item, 0);
3656          if ((_v_deref__item5.get_len () != 2))
3657          {
3658            goto _block2__branch5;
3659          }
3660          if (!_c_14.term_eq (_v_deref__item5, 0))
3661          {
3662            goto _block2__branch5;
3663          }
3664          Expr _vt_name (_v_deref__item5, 1, 1);
3665          Expr _v_Name_m_To_m_Java3;
3666          RF_CALL (Name_m_To_m_Java, _vt_name, _v_Name_m_To_m_Java3);
3667          _ve_arrays = empty;
3668          _ve_java_m_item = (_c_161 + (_c_159 + ((_v_Name_m_To_m_Java3 + _c_157) () + _c_18) () + _c_7) () + _c_160) ();
3669          goto _block2;
3670        }
3671      _block2__branch5: {}
3672        if (!_vt_item.symbol_at (0))
3673        {
3674          RF_FUNC_ERROR (unexpected_fail);
3675        }
3676        Expr _vs_sym (_vt_item, 0, 1);
3677        {
3678          {
3679            if (!RF_CALL (Class::Int_q_, _vs_sym, /*void*/))
3680            {
3681              goto _block3__branch1;
3682            }
3683            {
3684              {
3685                Expr _v__q_1;
3686                RF_CALL (Box::_q_, Int, _v__q_1);
3687                if ((_v__q_1.get_len () != 1))
3688                {
3689                  goto _block4__branch1;
3690                }
3691                if (!_c_1.term_eq (_v__q_1, 0))
3692                {
3693                  goto _block4__branch1;
3694                }
3695                RF_CALL (Table::Bind, (Inputs, _c_162, empty), /*void*/);
3696                goto _block4;
3697              }
3698            _block4__branch1: {}
3699            }
3700          _block4: {}
3701            Expr _v__q_2;
3702            RF_CALL (Box::_q_, Int, _v__q_2);
3703            _ve_arrays = empty;
3704            _ve_java_m_item = (_c_164 + _v__q_2 + _c_94 + _vs_sym + _c_163) ();
3705            goto _block3;
3706          }
3707        _block3__branch1: {}
3708          if (!RF_CALL (Class::Word_q_, _vs_sym, /*void*/))
3709          {
3710            RF_FUNC_ERROR (unexpected_fail);
3711          }
3712          Expr _v_Symbol_m_To_m_Java2;
3713          RF_CALL (Symbol_m_To_m_Java, _vs_sym, _v_Symbol_m_To_m_Java2);
3714          _ve_arrays = empty;
3715          _ve_java_m_item = (_c_165 + _v_Symbol_m_To_m_Java2 + _c_163) ();
3716        }
3717      _block3: {}
3718      }
3719    _block2: {}
3720      Expr _ve_new_m_arrays;
3721      Expr _ve_java_m_rest;
3722      RF_CALL (Const_m_Expr_m_Aux, (empty, _ve_rest), (_ve_new_m_arrays, _ve_java_m_rest));
3723      _v_res1 = (_ve_arrays + _ve_new_m_arrays);
3724      _v_res2 = (_ve_java_m_item + _ve_java_m_rest);
3725      goto _block1;
3726    }
3727  _block1__branch3: {}
3728    _v_res1 = empty;
3729    _v_res2 = empty;
3730  }
3731_block1: {}
3732RF_END
3733
3734RF_FUNC (Symbol_m_To_m_Java, (RF_ARG _vs_ObjectSymbol;;), (RF_RES _v_res1;;))
3735  Expr _ve_symbol;
3736  RF_CALL (Convert::To_m_Chars, _vs_ObjectSymbol, _ve_symbol);
3737  Expr _ve_java_m_symbol (empty);
3738  for ( ; ; )
3739  {
3740    {
3741      if ((_ve_symbol.get_len () != 0))
3742      {
3743        goto _iter1;
3744      }
3745      _v_res1 = _ve_java_m_symbol;
3746      goto _exit__iter1;
3747    }
3748  _iter1: {}
3749    uintptr_t _v_len1 = _ve_symbol.get_len ();
3750    uintptr_t _v_len2 = 1;
3751    if ((_v_len1 < _v_len2))
3752    {
3753      RF_FUNC_ERROR (unexpected_fail);
3754    }
3755    uintptr_t _v_len__rest = (_v_len1 - _v_len2);
3756    if (!_ve_symbol.symbol_at (0))
3757    {
3758      RF_FUNC_ERROR (unexpected_fail);
3759    }
3760    Expr _vs_char (_ve_symbol, 0, 1);
3761    Expr _ve_rest (_ve_symbol, 1, _v_len__rest);
3762    Expr _ve_java_m_char;
3763    {
3764      {
3765        if (!_vs_char.term_eq (_c_166, 0))
3766        {
3767          goto _block3__branch1;
3768        }
3769        _ve_java_m_char = _c_167;
3770        goto _block3;
3771      }
3772    _block3__branch1: {}
3773      {
3774        if (!_vs_char.term_eq (_c_168, 0))
3775        {
3776          goto _block3__branch2;
3777        }
3778        _ve_java_m_char = _c_169;
3779        goto _block3;
3780      }
3781    _block3__branch2: {}
3782      {
3783        if (!_vs_char.term_eq (_c_170, 0))
3784        {
3785          goto _block3__branch3;
3786        }
3787        _ve_java_m_char = _c_171;
3788        goto _block3;
3789      }
3790    _block3__branch3: {}
3791      {
3792        if (!_vs_char.term_eq (_c_172, 0))
3793        {
3794          goto _block3__branch4;
3795        }
3796        _ve_java_m_char = _c_173;
3797        goto _block3;
3798      }
3799    _block3__branch4: {}
3800      {
3801        if (!_vs_char.term_eq (_c_174, 0))
3802        {
3803          goto _block3__branch5;
3804        }
3805        _ve_java_m_char = _c_175;
3806        goto _block3;
3807      }
3808    _block3__branch5: {}
3809      if (!_vs_char.symbol_at (0))
3810      {
3811        RF_FUNC_ERROR (unexpected_fail);
3812      }
3813      Expr _vs__e__e_tmp_m_rfp__asail__javarf_m_498_m_8 (_vs_char, 0, 1);
3814      _ve_java_m_char = _vs_char;
3815    }
3816  _block3: {}
3817    _ve_symbol = _ve_rest;
3818    _ve_java_m_symbol = (_ve_java_m_symbol + _ve_java_m_char);
3819  }
3820_exit__iter1: {}
3821RF_END
3822
3823RF_FUNC (Int_m_Args_m_To_m_Java, (RF_ARG _vs_acc, _ve_args;;), (RF_RES _v_res1;;))
3824  Expr _v_args__1 (_ve_args);
3825  Expr _ve_java_m_args (empty);
3826  for ( ; ; )
3827  {
3828    {
3829      if ((_v_args__1.get_len () != 0))
3830      {
3831        goto _iter1;
3832      }
3833      _v_res1 = _ve_java_m_args;
3834      goto _exit__iter1;
3835    }
3836  _iter1: {}
3837    uintptr_t _v_len1 = _v_args__1.get_len ();
3838    uintptr_t _v_len2 = 1;
3839    if ((_v_len1 < _v_len2))
3840    {
3841      RF_FUNC_ERROR (unexpected_fail);
3842    }
3843    uintptr_t _v_len__rest = (_v_len1 - _v_len2);
3844    if (_v_args__1.symbol_at (0))
3845    {
3846      RF_FUNC_ERROR (unexpected_fail);
3847    }
3848    Expr _v_deref__args__1 (_v_args__1, 0);
3849    uintptr_t _v_len3 = _v_deref__args__1.get_len ();
3850    uintptr_t _v_len4 = 0;
3851    if ((_v_len3 < _v_len4))
3852    {
3853      RF_FUNC_ERROR (unexpected_fail);
3854    }
3855    uintptr_t _v_len__arg = (_v_len3 - _v_len4);
3856    Expr _ve_rest (_v_args__1, 1, _v_len__rest);
3857    Expr _ve_arg (_v_deref__args__1, 0, _v_len__arg);
3858    Expr _ve_comma;
3859    {
3860      {
3861        uintptr_t _v_len5 = _v_len__rest;
3862        uintptr_t _v_len6 = 0;
3863        if ((_v_len5 < (_v_len6 + 1)))
3864        {
3865          goto _block2__branch1;
3866        }
3867        uintptr_t _v_len___e__e_tmp_m_rfp__asail__javarf_m_510_m_19 = (_v_len5 - _v_len6);
3868        Expr _vv__e__e_tmp_m_rfp__asail__javarf_m_510_m_19 (_ve_rest, 0, _v_len___e__e_tmp_m_rfp__asail__javarf_m_510_m_19);
3869        _ve_comma = _c_77;
3870        goto _block2;
3871      }
3872    _block2__branch1: {}
3873      _ve_comma = empty;
3874    }
3875  _block2: {}
3876    Expr _v_Expr_m_Int_m_To_m_Java1;
3877    RF_CALL (Expr_m_Int_m_To_m_Java, (_vs_acc, _ve_arg), _v_Expr_m_Int_m_To_m_Java1);
3878    _v_args__1 = _ve_rest;
3879    _ve_java_m_args = (_ve_java_m_args + _v_Expr_m_Int_m_To_m_Java1 + _ve_comma);
3880  }
3881_exit__iter1: {}
3882RF_END
3883
3884RF_FUNC (Var_m_Args_m_To_m_Java, (RF_ARG _ve_args;;), (RF_RES _v_res1;;))
3885  Expr _v_args__1 (_ve_args);
3886  Expr _ve_type (empty);
3887  Expr _ve_java_m_args (empty);
3888  for ( ; ; )
3889  {
3890    {
3891      if ((_v_args__1.get_len () != 0))
3892      {
3893        goto _iter1;
3894      }
3895      _v_res1 = _ve_java_m_args;
3896      goto _exit__iter1;
3897    }
3898  _iter1: {}
3899    {
3900      {
3901        uintptr_t _v_len1 = _v_args__1.get_len ();
3902        uintptr_t _v_len2 = 1;
3903        if ((_v_len1 < _v_len2))
3904        {
3905          goto _block1__branch1;
3906        }
3907        uintptr_t _v_len__rest = (_v_len1 - _v_len2);
3908        if (!_v_args__1.symbol_at (0))
3909        {
3910          goto _block1__branch1;
3911        }
3912        Expr _vs_t (_v_args__1, 0, 1);
3913        Expr _ve_rest (_v_args__1, 1, _v_len__rest);
3914        _v_args__1 = _ve_rest;
3915        _ve_type = _vs_t;
3916        goto _block1;
3917      }
3918    _block1__branch1: {}
3919      uintptr_t _v_len3 = _v_args__1.get_len ();
3920      uintptr_t _v_len4 = 1;
3921      if ((_v_len3 < _v_len4))
3922      {
3923        RF_FUNC_ERROR (unexpected_fail);
3924      }
3925      uintptr_t _v_len__rest2 = (_v_len3 - _v_len4);
3926      Expr _vt_arg (_v_args__1, 0, 1);
3927      Expr _ve_rest (_v_args__1, 1, _v_len__rest2);
3928      Expr _ve_comma;
3929      {
3930        {
3931          if ((_v_len__rest2 < 1))
3932          {
3933            goto _block2__branch1;
3934          }
3935          RF_lsplit (_ve_rest, 0, _ve__e__e_tmp_m_rfp__asail__javarf_m_524_m_19, _v_lsplit__rest);
3936          for ( ; ; RF_iter(_ve_rest)++)
3937          {
3938            {
3939              if (!RF_iter(_ve_rest))
3940              {
3941                goto _block2__branch1;
3942              }
3943              uintptr_t _v_len5 = _v_lsplit__rest.get_len ();
3944              uintptr_t _v_len6 = 1;
3945              if ((_v_len5 < _v_len6))
3946              {
3947                goto _block2__branch1;
3948              }
3949              uintptr_t _v_len___e__e_tmp_m_rfp__asail__javarf_m_524_m_25 = (_v_len5 - _v_len6);
3950              if (_v_lsplit__rest.symbol_at (0))
3951              {
3952                goto _continue1;
3953              }
3954              Expr _v_deref__lsplit__rest (_v_lsplit__rest, 0);
3955              uintptr_t _v_len7 = _v_deref__lsplit__rest.get_len ();
3956              uintptr_t _v_len8 = 0;
3957              if ((_v_len7 < _v_len8))
3958              {
3959                goto _continue1;
3960              }
3961              uintptr_t _v_len___e__e_tmp_m_rfp__asail__javarf_m_524_m_22 = (_v_len7 - _v_len8);
3962              Expr _ve__e__e_tmp_m_rfp__asail__javarf_m_524_m_25 (_v_lsplit__rest, 1, _v_len___e__e_tmp_m_rfp__asail__javarf_m_524_m_25);
3963              Expr _ve__e__e_tmp_m_rfp__asail__javarf_m_524_m_22 (_v_deref__lsplit__rest, 0, _v_len___e__e_tmp_m_rfp__asail__javarf_m_524_m_22);
3964              _ve_comma = _c_77;
3965              goto _exit1;
3966            }
3967        _continue1: {}
3968          }
3969        _exit1: {}
3970          goto _block2;
3971        }
3972      _block2__branch1: {}
3973        _ve_comma = empty;
3974      }
3975    _block2: {}
3976      Expr _v_Rfp2Java1;
3977      RF_CALL (JavaMangle::Rfp2Java, _vt_arg, _v_Rfp2Java1);
3978      _v_args__1 = _ve_rest;
3979      _ve_java_m_args = (_ve_java_m_args + _ve_type + _c_23 + _v_Rfp2Java1 + _ve_comma);
3980    }
3981  _block1: {}
3982  }
3983_exit__iter1: {}
3984RF_END
3985
3986RF_FUNC (Expr_m_Args_m_To_m_Java, (RF_ARG _ve_args;;), (RF_RES _v_res1, _v_res2;;))
3987  Expr _v_args__1 (_ve_args);
3988  Expr _ve_type (empty);
3989  Expr _ve_java_m_args (empty);
3990  Expr _ve_arrays (empty);
3991  for ( ; ; )
3992  {
3993    {
3994      if ((_v_args__1.get_len () != 0))
3995      {
3996        goto _iter1;
3997      }
3998      _v_res1 = _ve_arrays;
3999      _v_res2 = _ve_java_m_args;
4000      goto _exit__iter1;
4001    }
4002  _iter1: {}
4003    {
4004      {
4005        uintptr_t _v_len1 = _v_args__1.get_len ();
4006        uintptr_t _v_len2 = 1;
4007        if ((_v_len1 < _v_len2))
4008        {
4009          goto _block1__branch1;
4010        }
4011        uintptr_t _v_len__rest = (_v_len1 - _v_len2);
4012        if (!_v_args__1.symbol_at (0))
4013        {
4014          goto _block1__branch1;
4015        }
4016        Expr _vs_t (_v_args__1, 0, 1);
4017        Expr _ve_rest (_v_args__1, 1, _v_len__rest);
4018        _v_args__1 = _ve_rest;
4019        _ve_type = _vs_t;
4020        goto _block1;
4021      }
4022    _block1__branch1: {}
4023      uintptr_t _v_len3 = _v_args__1.get_len ();
4024      uintptr_t _v_len4 = 1;
4025      if ((_v_len3 < _v_len4))
4026      {
4027        RF_FUNC_ERROR (unexpected_fail);
4028      }
4029      uintptr_t _v_len__rest2 = (_v_len3 - _v_len4);
4030      if (_v_args__1.symbol_at (0))
4031      {
4032        RF_FUNC_ERROR (unexpected_fail);
4033      }
4034      Expr _v_deref__args__1 (_v_args__1, 0);
4035      uintptr_t _v_len5 = _v_deref__args__1.get_len ();
4036      uintptr_t _v_len6 = 0;
4037      if ((_v_len5 < _v_len6))
4038      {
4039        RF_FUNC_ERROR (unexpected_fail);
4040      }
4041      uintptr_t _v_len__arg = (_v_len5 - _v_len6);
4042      Expr _ve_rest (_v_args__1, 1, _v_len__rest2);
4043      Expr _ve_arg (_v_deref__args__1, 0, _v_len__arg);
4044      Expr _ve_comma;
4045      {
4046        {
4047          if ((_v_len__rest2 < 1))
4048          {
4049            goto _block2__branch1;
4050          }
4051          RF_lsplit (_ve_rest, 0, _ve__e__e_tmp_m_rfp__asail__javarf_m_538_m_19, _v_lsplit__rest);
4052          for ( ; ; RF_iter(_ve_rest)++)
4053          {
4054            {
4055              if (!RF_iter(_ve_rest))
4056              {
4057                goto _block2__branch1;
4058              }
4059              uintptr_t _v_len7 = _v_lsplit__rest.get_len ();
4060              uintptr_t _v_len8 = 1;
4061              if ((_v_len7 < _v_len8))
4062              {
4063                goto _block2__branch1;
4064              }
4065              uintptr_t _v_len___e__e_tmp_m_rfp__asail__javarf_m_538_m_25 = (_v_len7 - _v_len8);
4066              if (_v_lsplit__rest.symbol_at (0))
4067              {
4068                goto _continue1;
4069              }
4070              Expr _v_deref__lsplit__rest (_v_lsplit__rest, 0);
4071              uintptr_t _v_len9 = _v_deref__lsplit__rest.get_len ();
4072              uintptr_t _v_len10 = 0;
4073              if ((_v_len9 < _v_len10))
4074              {
4075                goto _continue1;
4076              }
4077              uintptr_t _v_len___e__e_tmp_m_rfp__asail__javarf_m_538_m_22 = (_v_len9 - _v_len10);
4078              Expr _ve__e__e_tmp_m_rfp__asail__javarf_m_538_m_25 (_v_lsplit__rest, 1, _v_len___e__e_tmp_m_rfp__asail__javarf_m_538_m_25);
4079              Expr _ve__e__e_tmp_m_rfp__asail__javarf_m_538_m_22 (_v_deref__lsplit__rest, 0, _v_len___e__e_tmp_m_rfp__asail__javarf_m_538_m_22);
4080              _ve_comma = _c_77;
4081              goto _exit1;
4082            }
4083        _continue1: {}
4084          }
4085        _exit1: {}
4086          goto _block2;
4087        }
4088      _block2__branch1: {}
4089        _ve_comma = empty;
4090      }
4091    _block2: {}
4092      {
4093        {
4094          if ((_ve_type.get_len () != 0))
4095          {
4096            goto _block3__branch1;
4097          }
4098          Expr _ve_a;
4099          Expr _ve_j_m_arg;
4100          RF_CALL (Expr_m_Ref_m_To_m_Java, _ve_arg, (_ve_a, _ve_j_m_arg));
4101          _v_args__1 = _ve_rest;
4102          _ve_java_m_args = (_ve_java_m_args + _ve_j_m_arg + _ve_comma);
4103          _ve_arrays = (_ve_arrays + _ve_a);
4104          goto _block3;
4105        }
4106      _block3__branch1: {}
4107        _v_args__1 = _ve_rest;
4108        _ve_java_m_args = (_ve_java_m_args + _ve_arg + _ve_comma);
4109      }
4110    _block3: {}
4111    }
4112  _block1: {}
4113  }
4114_exit__iter1: {}
4115RF_END
4116
4117RF_FUNC (Name_m_To_m_Java, (RF_ARG _vt_obj_m_name;;), (RF_RES _v_res1;;))
4118  Expr _ve_qualifiers;
4119  Expr _ve_name;
4120  RF_CALL (rfp__helper::RFP_m_Extract_m_Qualifiers, _vt_obj_m_name, (_ve_qualifiers, _ve_name));
4121  Expr _ve_namespace;
4122  RF_CALL (Box::_q_, Current_m_Namespace, _ve_namespace);
4123  {
4124    {
4125      uintptr_t _v_len1 = _ve_qualifiers.get_len ();
4126      uintptr_t _v_len2 = _ve_namespace.get_len ();
4127      if ((_v_len1 < _v_len2))
4128      {
4129        goto _block1__branch1;
4130      }
4131      uintptr_t _v_len__cont = (_v_len1 - _v_len2);
4132      if (!_ve_namespace.eq (_ve_qualifiers, 0))
4133      {
4134        goto _block1__branch1;
4135      }
4136      Expr _ve_cont (_ve_qualifiers, _ve_namespace.get_len (), _v_len__cont);
4137      RF_TAILCALL (JavaMangle::Rfp2Java, (_ve_cont + _ve_name), _v_res1);
4138      goto _block1;
4139    }
4140  _block1__branch1: {}
4141    RF_CALL (Table::Bind, (Inputs, _ve_qualifiers, empty), /*void*/);
4142    RF_TAILCALL (JavaMangle::Rfp2Java, (_ve_qualifiers + _ve_name) (), _v_res1);
4143  }
4144_block1: {}
4145RF_END
4146
4147RF_FUNC (Var_m_To_m_Java, (RF_ARG _vt_var;;), (RF_RES _v_res1;;))
4148  {
4149    {
4150      Expr _v_Lookup1;
4151      if (!RF_CALL (Table::Lookup, (Result, _vt_var), _v_Lookup1))
4152      {
4153        goto _block1__branch1;
4154      }
4155      _v_res1 = (_v_Lookup1 + _c_176);
4156      goto _block1;
4157    }
4158  _block1__branch1: {}
4159    RF_TAILCALL (JavaMangle::Rfp2Java, _vt_var, _v_res1);
4160  }
4161_block1: {}
4162RF_END
4163
4164RF_FUNC (Access_m_Mode, (RF_ARG _vt_name;;), (RF_RES _v_res1;;))
4165  {
4166    {
4167      Expr _v__q_1;
4168      RF_CALL (Box::_q_, Exports, _v__q_1);
4169      if ((_v__q_1.get_len () < 1))
4170      {
4171        goto _block1__branch1;
4172      }
4173      RF_lsplit (_v__q_1, 0, _ve__e__e_tmp_m_rfp__asail__javarf_m_566_m_19, _v_lsplit___q_1);
4174      for ( ; ; RF_iter(_v__q_1)++)
4175      {
4176        {
4177          if (!RF_iter(_v__q_1))
4178          {
4179            goto _block1__branch1;
4180          }
4181          uintptr_t _v_len1 = _v_lsplit___q_1.get_len ();
4182          uintptr_t _v_len2 = 1;
4183          if ((_v_len1 < _v_len2))
4184          {
4185            goto _block1__branch1;
4186          }
4187          uintptr_t _v_len___e__e_tmp_m_rfp__asail__javarf_m_566_m_28 = (_v_len1 - _v_len2);
4188          if (!_vt_name.term_eq (_v_lsplit___q_1, 0))
4189          {
4190            goto _continue1;
4191          }
4192          Expr _ve__e__e_tmp_m_rfp__asail__javarf_m_566_m_28 (_v_lsplit___q_1, 1, _v_len___e__e_tmp_m_rfp__asail__javarf_m_566_m_28);
4193          _v_res1 = _c_177;
4194          goto _exit1;
4195        }
4196    _continue1: {}
4197      }
4198    _exit1: {}
4199      goto _block1;
4200    }
4201  _block1__branch1: {}
4202    _v_res1 = _c_178;
4203  }
4204_block1: {}
4205RF_END
4206
4207RF_FUNC (Free_m_Index, RF_VOID, (RF_RES _v_res1;;))
4208  Expr _v__q_1;
4209  RF_CALL (Box::_q_, Free_m_Idx, _v__q_1);
4210  Expr _vs_idx;
4211  {
4212    {
4213      if ((_v__q_1.get_len () != 0))
4214      {
4215        goto _block1__branch1;
4216      }
4217      _vs_idx = _c_179;
4218      goto _block1;
4219    }
4220  _block1__branch1: {}
4221    if ((_v__q_1.get_len () != 1))
4222    {
4223      RF_FUNC_ERROR (unexpected_fail);
4224    }
4225    if (!_v__q_1.symbol_at (0))
4226    {
4227      RF_FUNC_ERROR (unexpected_fail);
4228    }
4229    Expr _v_idx__1 (_v__q_1, 0, 1);
4230    RF_CALL (Arithm::_p_, (_v_idx__1, _c_179), _vs_idx);
4231  }
4232_block1: {}
4233  RF_CALL (Box::Store, (Free_m_Idx, _vs_idx), /*void*/);
4234  _v_res1 = _vs_idx;
4235RF_END
4236
4237RF_FUNC (Cond_m_To_m_Java__0, (RF_ARG _v_arg1;;), (RF_RES _v_res1;;))
4238  uintptr_t _v_len1 = _v_arg1.get_len ();
4239  uintptr_t _v_len2 = 1;
4240  if (((_v_len1 < (_v_len2 + (0 * 1)))))
4241  {
4242    RF_ERROR (_c_180);
4243  }
4244  if (((_v_len1 - _v_len2) % 1))
4245  {
4246    RF_ERROR (_c_180);
4247  }
4248  uintptr_t _v_len__stub1 = ((_v_len1 - _v_len2) / 1);
4249  if (!_v_arg1.symbol_at (0))
4250  {
4251    RF_ERROR (_c_180);
4252  }
4253  Expr _v_stub2 (_v_arg1, 0, 1);
4254  Expr _v_stub1 (_v_arg1, (0 + 1), _v_len__stub1);
4255  RF_TAILCALL (Cond_m_To_m_Java, (_v_stub2, _v_stub1), _v_res1);
4256RF_END
4257
4258RF_FUNC (Term_m_Ref_m_To_m_Java__0, (RF_ARG _v_arg1;;), (RF_RES _v_res1;;))
4259  if ((_v_arg1.get_len () != (1 + 1)))
4260  {
4261    RF_ERROR (_c_180);
4262  }
4263  if (!_v_arg1.symbol_at (0))
4264  {
4265    RF_ERROR (_c_180);
4266  }
4267  Expr _v_stub1 (_v_arg1, 0, 1);
4268  Expr _v_stub2 (_v_arg1, (0 + 1), 1);
4269  RF_TAILCALL (Term_m_Ref_m_To_m_Java, (_v_stub1, _v_stub2), _v_res1);
4270RF_END
4271
4272RF_FUNC (Expr_m_Int_m_To_m_Java__0, (RF_ARG _v_arg1;;), (RF_RES _v_res1;;))
4273  uintptr_t _v_len1 = _v_arg1.get_len ();
4274  uintptr_t _v_len2 = 1;
4275  if (((_v_len1 < (_v_len2 + (0 * 1)))))
4276  {
4277    RF_ERROR (_c_180);
4278  }
4279  if (((_v_len1 - _v_len2) % 1))
4280  {
4281    RF_ERROR (_c_180);
4282  }
4283  uintptr_t _v_len__stub1 = ((_v_len1 - _v_len2) / 1);
4284  if (!_v_arg1.symbol_at (0))
4285  {
4286    RF_ERROR (_c_180);
4287  }
4288  Expr _v_stub2 (_v_arg1, 0, 1);
4289  Expr _v_stub1 (_v_arg1, (0 + 1), _v_len__stub1);
4290  RF_TAILCALL (Expr_m_Int_m_To_m_Java, (_v_stub2, _v_stub1), _v_res1);
4291RF_END
4292
4293}
4294
4295namespace rfp__asail__java
4296{
4297
4298static void init_ ()
4299{
4300  Int = Expr::create_sym< rftype::NamedObject<rftype::BoxContents> >(L"Int");
4301  Exports = Expr::create_sym< rftype::NamedObject<rftype::BoxContents> >(L"Exports");
4302  Inputs = new rftype::StaticObject<rftype::Table>(L"Inputs");
4303  Module_m_Name = Expr::create_sym< rftype::NamedObject<rftype::BoxContents> >(L"Module-Name");
4304  Entry = Expr::create_sym< rftype::NamedObject<rftype::BoxContents> >(L"Entry");
4305  Entry_m_Name = Expr::create_sym< rftype::NamedObject<rftype::BoxContents> >(L"Entry-Name");
4306  Current_m_Namespace = Expr::create_sym< rftype::NamedObject<rftype::BoxContents> >(L"Current-Namespace");
4307  Func_m_Name = Expr::create_sym< rftype::NamedObject<rftype::BoxContents> >(L"Func-Name");
4308  Ress = Expr::create_sym< rftype::NamedObject<rftype::BoxContents> >(L"Ress");
4309  Result = new rftype::StaticObject<rftype::Table>(L"Result");
4310  Res_m_Assigns = Expr::create_sym< rftype::NamedObject<rftype::BoxContents> >(L"Res-Assigns");
4311  Iter_m_Vars = new rftype::StaticObject<rftype::Table>(L"Iter-Vars");
4312  Free_m_Idx = Expr::create_sym< rftype::NamedObject<rftype::BoxContents> >(L"Free-Idx");
4313  _c_0 = Expr::create<Word>("INT");
4314  _c_1 = Expr::create<Word>("BigInteger");
4315  _c_2 = Expr::create<Word>("Main");
4316  _c_5 = Char::create_expr (L"RefalRuntime.setArgs (\"");
4317  _c_3 = Expr (_c_5, 12, 1);
4318  _c_4 = Char::create_expr (L"\", args);");
4319  _c_6 = Char::create_expr (L" (new Result ());");
4320  _c_181 = Char::create_expr (L"System.out.println (\"$error: \" + e);");
4321  _c_182 = Char::create_expr (L"catch (RefalException e) {") + (_c_181) () + Char::create_expr (L"}");
4322  _c_7 = Expr (_c_182, 27, 1);
4323  _c_8 = Char::create_expr (L"try {");
4324  _c_9 = (_c_182) ();
4325  _c_10 = Char::create_expr (L"public static void main (java.lang.String[] args) {");
4326  _c_11 = (empty) ();
4327  _c_12 = Char::create_expr (L"\n{");
4328  _c_13 = Char::create_expr (L"public class ");
4329  _c_14 = Expr::create<Word>("FUNC");
4330  _c_15 = Expr (_c_10, 14, 4);
4331  _c_16 = Expr::create<Word>("FUNC?");
4332  _c_159 = Char::create_expr (L"public boolean eval (Expr arg, Result res) throws RefalException {");
4333  _c_17 = Expr (_c_159, 7, 7);
4334  _c_183 = Char::create_expr (L"return true;");
4335  _c_18 = (_c_183) ();
4336  _c_19 = Expr::create<Word>("Result");
4337  _c_20 = Expr::create<Word>("Expr");
4338  _c_21 = Expr (_c_159, 41, 23);
4339  _c_22 = Expr (_c_6, 0, 2);
4340  _c_23 = Expr (_c_22, 0, 1);
4341  _c_24 = Expr (_c_10, 7, 7);
4342  _c_25 = Expr (_c_12, 1, 1);
4343  _c_26 = Expr::create<Word>("TRACE");
4344  _c_27 = Expr::create<Word>("IF");
4345  _c_28 = Expr::create<Word>("CALL");
4346  _c_29 = Expr::create<Word>("NOT");
4347  _c_30 = Expr (_c_21, 0, 1);
4348  _c_48 = Char::create_expr (L"if (false)");
4349  _c_31 = Expr (_c_48, 0, 4);
4350  _c_32 = Expr::create<Word>("FOR");
4351  _c_33 = Expr::create<Word>("LABEL");
4352  _c_34 = Expr (_c_181, 27, 2);
4353  _c_35 = Expr::create<Word>("INC-ITER");
4354  _c_36 = Expr::create<Word>("DEC-ITER");
4355  _c_37 = Char::create_expr (L".getLeft();");
4356  _c_184 = Char::create_expr (L"Expr err = error.getExpr ();");
4357  _c_38 = Expr (_c_184, 8, 3);
4358  _c_39 = Expr (_c_184, 0, 5);
4359  _c_40 = Char::create_expr (L".getRight();");
4360  _c_42 = Char::create_expr (L"for ( ; ");
4361  _c_41 = Expr (_c_42, 6, 2);
4362  _c_43 = Char::create_expr (L": {");
4363  _c_44 = Expr::create<Word>("TRY");
4364  _c_45 = Char::create_expr (L"\", \"This is for avoiding 'Unreachable code' errors\");");
4365  _c_46 = Expr (_c_45, 0, 4);
4366  _c_47 = Char::create_expr (L"throw new RefalException (\"");
4367  _c_49 = (Expr (_c_8, 0, 3)) ();
4368  _c_50 = Expr::create<Word>("CATCH-ERROR");
4369  _c_51 = (_c_184) ();
4370  _c_52 = Char::create_expr (L"catch (RefalException error) {");
4371  _c_53 = Expr::create<Word>("RETFAIL");
4372  _c_185 = Char::create_expr (L"return false;");
4373  _c_99 = Char::create_expr (L") {") + (_c_185) () + Char::create_expr (L"}");
4374  _c_54 = Expr (_c_99, 3, 1);
4375  _c_55 = Expr::create<Word>("FATAL");
4376  _c_56 = Char::create_expr (L"\", \"Unexpected fail\");");
4377  _c_57 = Expr::create<Word>("LSPLIT");
4378  _c_58 = Char::create_expr (L"_va_");
4379  _c_59 = Expr (_c_37, 9, 2);
4380  _c_60 = Char::create_expr (L".leftSplit(");
4381  _c_61 = Char::create_expr (L"Expr.SplitIterator ");
4382  _c_62 = Expr::create<Word>("RSPLIT");
4383  _c_63 = Char::create_expr (L".rightSplit(");
4384  _c_64 = Expr::create<Word>("ASSIGN");
4385  _c_65 = Char::create_expr (L".assign (");
4386  _c_66 = Expr (_c_59, 1, 1);
4387  _c_67 = Expr::create<Word>("DECL");
4388  _c_68 = Char::create_expr (L" = new Result ();");
4389  _c_69 = Expr (_c_68, 7, 7);
4390  _c_70 = Char::create_expr (L" = Expr.empty;");
4391  _c_71 = Char::create_expr (L"int ");
4392  _c_72 = Expr::create<Word>("EXPR");
4393  _c_73 = Expr::create<Word>("DEREF");
4394  _c_74 = Char::create_expr (L".at (");
4395  _c_75 = Char::create_expr (L" = (Expr) ");
4396  _c_76 = Expr::create<Word>("SUBEXPR");
4397  _c_77 = Expr (_c_46, 1, 2);
4398  _c_95 = Char::create_expr (L" = new Expr (new ");
4399  _c_78 = Expr (_c_95, 0, 13);
4400  _c_79 = Expr::create<Word>("DROP");
4401  _c_80 = Char::create_expr (L".drop ();");
4402  _c_81 = Expr::create<Word>("CONTINUE");
4403  _c_82 = Char::create_expr (L"continue ");
4404  _c_83 = Expr::create<Word>("BREAK");
4405  _c_84 = Char::create_expr (L"break ");
4406  _c_85 = Expr::create<Word>("ERROR");
4407  _c_86 = Expr (_c_47, 0, 26);
4408  _c_87 = Expr::create<Word>("CONSTEXPR");
4409  _c_88 = Expr::create<Word>("STATIC");
4410  _c_89 = Char::create_expr (L" final Expr ");
4411  _c_90 = Expr::create<Word>("OBJ");
4412  _c_91 = Char::create_expr (L"Named");
4413  _c_92 = Char::create_expr (L"org.refal.plus.library.");
4414  _c_93 = Char::create_expr (L"\"));");
4415  _c_94 = Expr (_c_47, 24, 3);
4416  _c_96 = Expr::create<Word>("DECL-OBJ");
4417  _c_97 = Expr::create<Word>("DECL-FUNC");
4418  _c_98 = Expr::create<Word>("TAILCALL?");
4419  _c_100 = Char::create_expr (L"if (!");
4420  _c_101 = Expr (_c_184, 16, 12);
4421  _c_102 = Expr::create<Word>("PAREN");
4422  _c_103 = Expr::create<Word>("LENGTH");
4423  _c_104 = Expr::create<Word>("XXX");
4424  _c_105 = Expr::create<Word>("MAX");
4425  _c_106 = Expr::create<Word>("MIN");
4426  _c_107 = Expr::create<Word>("INFIX");
4427  _c_108 = Expr (_c_70, 3, 10);
4428  _c_109 = Expr (_c_78, 3, 10);
4429  _c_110 = Expr::create_sym<Func> (Term_m_Ref_m_To_m_Java__0);
4430  _c_111 = Expr::create<Word>(",");
4431  _c_112 = Char::create_expr (L" };");
4432  _c_113 = Char::create_expr (L" = { ");
4433  _c_154 = Char::create_expr (L"static private final Expr[] ");
4434  _c_114 = Expr (_c_154, 21, 7);
4435  _c_115 = Char::create_expr (L"Expr.concat (");
4436  _c_116 = Char::create_expr (L"new Expr(");
4437  _c_117 = Expr (_c_75, 3, 7);
4438  _c_118 = Expr::create<Word>("REF");
4439  _c_119 = Expr::create<Word>("ERROR-EXPR");
4440  _c_120 = Expr (_c_52, 22, 3);
4441  _c_121 = Expr::create<Word>("Illegal int-symbol: ");
4442  _c_122 = Char::create_expr (L".getLen ()");
4443  _c_123 = Char::create_expr (L"java.lang.Math.max (");
4444  _c_124 = Char::create_expr (L"java.lang.Math.min (");
4445  _c_125 = Expr::create_sym<Func> (Expr_m_Int_m_To_m_Java__0);
4446  _c_126 = Expr (_c_22, 1, 1);
4447  _c_127 = Expr::create<Word>("+");
4448  _c_128 = Expr::create<Word>("SYMBOL?");
4449  _c_129 = Char::create_expr (L".symbolAt (");
4450  _c_130 = Expr::create<Word>("CHECK-ITER");
4451  _c_131 = Expr::create<Integer>("0");
4452  _c_132 = Expr::create<Integer>("2");
4453  _c_133 = Char::create_expr (L".isValid ()");
4454  _c_134 = Expr::create<Word>("EQ");
4455  _c_135 = Char::create_expr (L".eq (");
4456  _c_136 = Expr::create<Word>("TERM-EQ");
4457  _c_137 = Expr (_c_100, 4, 1);
4458  _c_138 = Expr::create<Word>("-");
4459  _c_139 = Expr::create<Word>("%");
4460  _c_140 = Expr::create<Word>("*");
4461  _c_141 = Expr::create<Word>("/");
4462  _c_142 = Char::create_expr (L" != 0");
4463  _c_143 = Expr::create_sym<Func> (Cond_m_To_m_Java__0);
4464  _c_144 = Expr::create<Word>("&&");
4465  _c_145 = Expr::create<Word>("||");
4466  _c_146 = Expr::create<Word>("<");
4467  _c_147 = Expr::create<Word>(">");
4468  _c_148 = Expr::create<Word>("<=");
4469  _c_149 = Expr::create<Word>(">=");
4470  _c_150 = Expr::create<Word>("==");
4471  _c_151 = Expr::create<Word>("!=");
4472  _c_152 = Char::create_expr (L".next ()");
4473  _c_153 = Char::create_expr (L".prev ()");
4474  _c_155 = Expr (_c_93, 0, 2);
4475  _c_156 = Char::create_expr (L"Expr.fromSequence (\"");
4476  _c_157 = Char::create_expr (L" (arg, res);");
4477  _c_158 = Expr (_c_183, 0, 7);
4478  _c_160 = Char::create_expr (L"})");
4479  _c_161 = Char::create_expr (L"new Expr (new Func () {");
4480  _c_162 = Char::create_expr (L"java.math.BigInteger");
4481  _c_163 = Expr (_c_93, 0, 3);
4482  _c_164 = Expr (_c_95, 3, 14);
4483  _c_165 = Char::create_expr (L"new Expr (new Word (\"");
4484  _c_167 = Char::create_expr (L"\\\\");
4485  _c_166 = Expr (_c_167, 0, 1);
4486  _c_168 = Expr (_c_12, 0, 1);
4487  _c_169 = Char::create_expr (L"\\n");
4488  _c_170 = Char::create_expr (L"\t");
4489  _c_171 = Char::create_expr (L"\\t");
4490  _c_172 = Char::create_expr (L"\r");
4491  _c_173 = Char::create_expr (L"\\r");
4492  _c_174 = Expr (_c_155, 0, 1);
4493  _c_175 = Char::create_expr (L"\\\"");
4494  _c_176 = Expr (_c_101, 0, 11);
4495  _c_177 = Expr (_c_10, 0, 6);
4496  _c_178 = Expr (_c_154, 7, 7);
4497  _c_179 = Expr::create<Integer>("1");
4498  _c_180 = Expr::create<Word>("Apply") + Expr::create<Word>("Apply") + Expr::create<Word>("Unexpected fail");
4499}
4500
4501static AtStart init_registrator_ (&init_);
4502
4503}
4504
4505}
Note: See TracBrowser for help on using the repository browser.