Changeset 2642


Ignore:
Timestamp:
Apr 5, 2007, 9:14:49 PM (14 years ago)
Author:
orlov
Message:
  • Fresh-generated compiler sources in Java (new syntax).
Location:
to-imperative/branches/new-syntax/java/org/refal/plus/compiler
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • to-imperative/branches/new-syntax/java/org/refal/plus/compiler/rfp_asail_cpp.java

    r2609 r2642  
    2929    }
    3030  });
    31   static  final Expr _c_177 = Expr.fromSequence ("static AtStart init_registrator_ (&init_);");
    32   static  final Expr _c_6 = new Expr (_c_177, 40, 2);
     31  static  final Expr _c_180 = Expr.fromSequence ("static AtStart init_registrator_ (&init_);");
     32  static  final Expr _c_6 = new Expr (_c_180, 40, 2);
    3333  static  final Expr _c_7 = Expr.fromSequence ("rfrt::Entry rf_entry (");
    34   static  final Expr _c_40 = Expr.fromSequence (": {}");
    35   static  final Expr _c_8 = new Expr (_c_40, 3, 1);
     34  static  final Expr _c_43 = Expr.fromSequence (": {}");
     35  static  final Expr _c_8 = new Expr (_c_43, 3, 1);
    3636  static  final Expr _c_9 = Expr.fromSequence ("static void init_ () {");
    37   static  final Expr _c_10 = new Expr (_c_177);
    38   static  final Expr _c_11 = new Expr (new Word ("DECL-OBJ"));
    39   static  final Expr _c_12 = new Expr (_c_177, 41, 1);
    40   static  final Expr _c_13 = Expr.fromSequence (" = ");
    41   static  final Expr _c_178 = Expr.fromSequence ("#include <rf_core.hh>");
    42   static  final Expr _c_179 = Expr.fromSequence ("using namespace rfrt;");
    43   static  final Expr _c_14 = new Expr (new Expr (_c_178), new Expr (_c_179));
    44   static  final Expr _c_65 = new Expr (new Expr (new Word ("CONSTEXPR")), new Expr (new Word ("IMPORT")));
    45   static  final Expr _c_15 = new Expr (_c_65, 1, 1);
    46   static  final Expr _c_16 = new Expr (new Word ("FUNC"));
    47   static  final Expr _c_17 = new Expr (new Word ("FUNC?"));
     37  static  final Expr _c_10 = new Expr (_c_180);
     38  static  final Expr _c_11 = new Expr (new Word ("STATIC"));
     39  static  final Expr _c_12 = new Expr (new Word ("DECL-OBJ"));
     40  static  final Expr _c_13 = new Expr (_c_180, 41, 1);
     41  static  final Expr _c_14 = Expr.fromSequence (" = ");
     42  static  final Expr _c_181 = Expr.fromSequence ("#include <rf_core.hh>");
     43  static  final Expr _c_182 = Expr.fromSequence ("using namespace rfrt;");
     44  static  final Expr _c_15 = new Expr (new Expr (_c_181), new Expr (_c_182));
     45  static  final Expr _c_16 = new Expr (new Word ("UNDEF"));
     46  static  final Expr _c_68 = new Expr (new Expr (new Word ("CONSTEXPR")), new Expr (new Word ("IMPORT")));
     47  static  final Expr _c_17 = new Expr (_c_68, 1, 1);
     48  static  final Expr _c_18 = new Expr (new Word ("FUNC"));
     49  static  final Expr _c_19 = new Expr (new Word ("FUNC?"));
    4850  static private final Expr[] _va_1 = { new Expr (new Word ("org")), new Expr (new Word ("refal")), new Expr (new Word ("plus")), new Expr (new Word ("wrappers")) };
    49   static  final Expr _c_18 = Expr.concat (_va_1);
    50   static  final Expr _c_19 = new Expr (_c_7, 14, 1);
    51   static  final Expr _c_20 = new Expr (new Word ("Not available"));
    52   static  final Expr _c_21 = new Expr (new Word ("ERROR"));
    53   static  final Expr _c_67 = new Expr (new Expr (new Word ("CONSTEXPR")), new Expr (new Word ("LOCAL")));
    54   static  final Expr _c_22 = new Expr (_c_67, 1, 1);
    55   static  final Expr _c_23 = new Expr (new Word ("TRACEALL"));
    56   static  final Expr _c_24 = new Expr (_c_178, 17, 1);
    57   static  final Expr _c_25 = Expr.fromSequence ("RF_ARG ");
    58   static  final Expr _c_156 = new Expr (new Expr (Expr.empty), new Expr (new Word ("Vars")));
    59   static  final Expr _c_26 = new Expr (_c_156, 1, 1);
    60   static  final Expr _c_27 = Expr.fromSequence ("RF_RES ");
    61   static  final Expr _c_28 = Expr.fromSequence ("RF_END");
    62   static  final Expr _c_29 = new Expr (_c_6, 0, 1);
    63   static  final Expr _c_167 = Expr.fromSequence (" <<<\\n\", rfrt::stack->get_depth());");
    64   static  final Expr _c_30 = new Expr (_c_167, 7, 2);
    65   static  final Expr _c_31 = Expr.fromSequence ("RF_FUNC (");
    66   static  final Expr _c_32 = new Expr (new Word ("TRACE"));
    67   static  final Expr _c_33 = new Expr (new Word ("IF-INT-CMP"));
    68   static  final Expr _c_34 = new Expr (_c_30, 1, 1);
    69   static  final Expr _c_84 = Expr.fromSequence ("if (RF_CALL (");
    70   static  final Expr _c_35 = new Expr (_c_84, 0, 4);
    71   static  final Expr _c_36 = new Expr (_c_9, 21, 1);
    72   static  final Expr _c_37 = new Expr (new Word ("IF"));
    73   static  final Expr _c_38 = new Expr (new Word ("FOR"));
    74   static  final Expr _c_39 = new Expr (new Word ("LABEL"));
    75   static  final Expr _c_41 = Expr.fromSequence ("for ( ; ; ");
    76   static  final Expr _c_42 = new Expr (new Word ("TRY"));
    77   static  final Expr _c_43 = new Expr (Expr.fromSequence ("RF_TRAP"));
    78   static  final Expr _c_44 = new Expr (new Word ("CATCH-ERROR"));
    79   static  final Expr _c_45 = new Expr (Expr.fromSequence ("RF_CLEANUP;"));
    80   static  final Expr _c_46 = new Expr (Expr.fromSequence ("RF_WITH"));
    81   static  final Expr _c_47 = new Expr (new Word ("RETFAIL"));
    82   static  final Expr _c_180 = Expr.fromSequence ("else RF_RETFAIL;");
    83   static  final Expr _c_48 = new Expr (new Expr (_c_180, 5, 11));
    84   static  final Expr _c_49 = new Expr (new Word ("FATAL"));
    85   static  final Expr _c_50 = new Expr (Expr.fromSequence ("RF_FUNC_ERROR (unexpected_fail);"));
    86   static  final Expr _c_51 = new Expr (new Word ("LSPLIT"));
    87   static  final Expr _c_52 = Expr.fromSequence ("RF_lsplit (");
    88   static  final Expr _c_53 = new Expr (new Word ("RSPLIT"));
    89   static  final Expr _c_54 = Expr.fromSequence ("RF_rsplit (");
    90   static  final Expr _c_55 = new Expr (new Word ("ASSIGN"));
    91   static  final Expr _c_56 = new Expr (new Word ("DECL"));
    92   static  final Expr _c_57 = Expr.fromSequence ("int ");
    93   static  final Expr _c_77 = Expr.fromSequence ("extern Expr ");
    94   static  final Expr _c_58 = new Expr (_c_77, 7, 5);
    95   static  final Expr _c_59 = new Expr (new Word ("DROP"));
    96   static  final Expr _c_60 = Expr.fromSequence (".drop ();");
    97   static  final Expr _c_61 = new Expr (new Word ("CONTINUE"));
    98   static  final Expr _c_62 = Expr.fromSequence ("goto ");
    99   static  final Expr _c_63 = new Expr (new Word ("BREAK"));
    100   static  final Expr _c_64 = Expr.fromSequence ("RF_ERROR (");
    101   static  final Expr _c_66 = new Expr (_c_156, 0, 1);
    102   static  final Expr _c_68 = new Expr (_c_67, 0, 1);
    103   static  final Expr _c_69 = new Expr (_c_177, 0, 7);
    104   static  final Expr _c_70 = new Expr (new Word ("STATIC"));
    105   static  final Expr _c_71 = new Expr (new Word ("OBJ"));
    106   static  final Expr _c_72 = new Expr (new Word ("BOX"));
    107   static  final Expr _c_170 = Expr.fromSequence ("printf(\"  : \");");
    108   static  final Expr _c_73 = new Expr (_c_170, 12, 2);
    109   static  final Expr _c_74 = Expr.fromSequence ("Expr::create_sym< rftype::NamedObject<rftype::BoxContents> >(L\"");
    110   static  final Expr _c_75 = new Expr (_c_74, 59, 4);
    111   static  final Expr _c_76 = Expr.fromSequence ("new rftype::StaticObject<rftype::");
    112   static  final Expr _c_78 = new Expr (new Word ("DECL-FUNC"));
    113   static  final Expr _c_79 = Expr.fromSequence ("RF_DECL (");
    114   static  final Expr _c_80 = new Expr (new Word ("EXTERN"));
    115   static  final Expr _c_81 = new Expr (new Word ("CALL"));
    116   static  final Expr _c_82 = new Expr (new Word ("Exprs"));
    117   static  final Expr _c_83 = new Expr (_c_167, 32, 2);
    118   static  final Expr _c_85 = new Expr (Expr.fromSequence ("return true;"));
    119   static  final Expr _c_86 = new Expr (_c_180);
    120   static  final Expr _c_87 = new Expr (new Word ("TAILCALL?"));
    121   static  final Expr _c_88 = new Expr (new Word ("TAILCALL"));
    122   static  final Expr _c_89 = new Expr (_c_35, 2, 2);
    123   static  final Expr _c_90 = new Expr (_c_28, 0, 3);
    124   static  final Expr _c_91 = Expr.fromSequence ("empty");
    125   static  final Expr _c_92 = new Expr (new Func () {
     51  static  final Expr _c_20 = Expr.concat (_va_1);
     52  static  final Expr _c_21 = new Expr (_c_7, 14, 1);
     53  static  final Expr _c_22 = new Expr (new Word ("Not available"));
     54  static  final Expr _c_23 = new Expr (new Word ("ERROR"));
     55  static  final Expr _c_70 = new Expr (new Expr (new Word ("CONSTEXPR")), new Expr (new Word ("LOCAL")));
     56  static  final Expr _c_24 = new Expr (_c_70, 1, 1);
     57  static  final Expr _c_25 = new Expr (new Word ("TRACEALL"));
     58  static  final Expr _c_26 = new Expr (_c_181, 17, 1);
     59  static  final Expr _c_27 = new Expr (new Word ("DECL-FUNC"));
     60  static  final Expr _c_28 = Expr.fromSequence ("RF_ARG ");
     61  static  final Expr _c_159 = new Expr (new Expr (Expr.empty), new Expr (new Word ("Vars")));
     62  static  final Expr _c_29 = new Expr (_c_159, 1, 1);
     63  static  final Expr _c_30 = Expr.fromSequence ("RF_RES ");
     64  static  final Expr _c_31 = Expr.fromSequence ("RF_END");
     65  static  final Expr _c_32 = new Expr (_c_6, 0, 1);
     66  static  final Expr _c_169 = Expr.fromSequence (" <<<\\n\", rfrt::stack->get_depth());");
     67  static  final Expr _c_33 = new Expr (_c_169, 7, 2);
     68  static  final Expr _c_34 = Expr.fromSequence ("RF_FUNC (");
     69  static  final Expr _c_35 = new Expr (new Word ("TRACE"));
     70  static  final Expr _c_36 = new Expr (new Word ("IF-INT-CMP"));
     71  static  final Expr _c_37 = new Expr (_c_33, 1, 1);
     72  static  final Expr _c_87 = Expr.fromSequence ("if (RF_CALL (");
     73  static  final Expr _c_38 = new Expr (_c_87, 0, 4);
     74  static  final Expr _c_39 = new Expr (_c_9, 21, 1);
     75  static  final Expr _c_40 = new Expr (new Word ("IF"));
     76  static  final Expr _c_41 = new Expr (new Word ("FOR"));
     77  static  final Expr _c_42 = new Expr (new Word ("LABEL"));
     78  static  final Expr _c_44 = Expr.fromSequence ("for ( ; ; ");
     79  static  final Expr _c_45 = new Expr (new Word ("TRY"));
     80  static  final Expr _c_46 = new Expr (Expr.fromSequence ("RF_TRAP"));
     81  static  final Expr _c_47 = new Expr (new Word ("CATCH-ERROR"));
     82  static  final Expr _c_48 = new Expr (Expr.fromSequence ("RF_CLEANUP;"));
     83  static  final Expr _c_49 = new Expr (Expr.fromSequence ("RF_WITH"));
     84  static  final Expr _c_50 = new Expr (new Word ("RETFAIL"));
     85  static  final Expr _c_183 = Expr.fromSequence ("else RF_RETFAIL;");
     86  static  final Expr _c_51 = new Expr (new Expr (_c_183, 5, 11));
     87  static  final Expr _c_52 = new Expr (new Word ("FATAL"));
     88  static  final Expr _c_53 = new Expr (Expr.fromSequence ("RF_FUNC_ERROR (unexpected_fail);"));
     89  static  final Expr _c_54 = new Expr (new Word ("LSPLIT"));
     90  static  final Expr _c_55 = Expr.fromSequence ("RF_lsplit (");
     91  static  final Expr _c_56 = new Expr (new Word ("RSPLIT"));
     92  static  final Expr _c_57 = Expr.fromSequence ("RF_rsplit (");
     93  static  final Expr _c_58 = new Expr (new Word ("ASSIGN"));
     94  static  final Expr _c_59 = new Expr (new Word ("DECL"));
     95  static  final Expr _c_60 = Expr.fromSequence ("int ");
     96  static  final Expr _c_81 = Expr.fromSequence ("extern Expr ");
     97  static  final Expr _c_61 = new Expr (_c_81, 7, 5);
     98  static  final Expr _c_62 = new Expr (new Word ("DROP"));
     99  static  final Expr _c_63 = Expr.fromSequence (".drop ();");
     100  static  final Expr _c_64 = new Expr (new Word ("CONTINUE"));
     101  static  final Expr _c_65 = Expr.fromSequence ("goto ");
     102  static  final Expr _c_66 = new Expr (new Word ("BREAK"));
     103  static  final Expr _c_67 = Expr.fromSequence ("RF_ERROR (");
     104  static  final Expr _c_69 = new Expr (_c_159, 0, 1);
     105  static  final Expr _c_71 = new Expr (_c_70, 0, 1);
     106  static  final Expr _c_72 = new Expr (_c_180, 0, 7);
     107  static  final Expr _c_73 = new Expr (new Func () {
     108    public boolean eval (Expr arg, Result res) throws RefalException {
     109      org.refal.plus.library.CppMangle.Rfp2Cpp (arg, res);
     110      return true;
     111    }
     112  });
     113  static  final Expr _c_74 = new Expr (new Func () {
     114    public boolean eval (Expr arg, Result res) throws RefalException {
     115      return Name_To_CPP_0 (arg, res);
     116    }
     117  });
     118  static  final Expr _c_75 = new Expr (new Word ("OBJ"));
     119  static  final Expr _c_76 = new Expr (new Word ("BOX"));
     120  static  final Expr _c_172 = Expr.fromSequence ("printf(\"  : \");");
     121  static  final Expr _c_77 = new Expr (_c_172, 12, 2);
     122  static  final Expr _c_78 = Expr.fromSequence ("Expr::create_sym< rftype::NamedObject<rftype::BoxContents> >(L\"");
     123  static  final Expr _c_79 = new Expr (_c_78, 59, 4);
     124  static  final Expr _c_80 = Expr.fromSequence ("new rftype::StaticObject<rftype::");
     125  static  final Expr _c_82 = Expr.fromSequence ("RF_DECL (");
     126  static  final Expr _c_83 = new Expr (new Word ("EXTERN"));
     127  static  final Expr _c_84 = new Expr (new Word ("CALL"));
     128  static  final Expr _c_85 = new Expr (new Word ("Exprs"));
     129  static  final Expr _c_86 = new Expr (_c_169, 32, 2);
     130  static  final Expr _c_88 = new Expr (Expr.fromSequence ("return true;"));
     131  static  final Expr _c_89 = new Expr (_c_183);
     132  static  final Expr _c_90 = new Expr (new Word ("TAILCALL?"));
     133  static  final Expr _c_91 = new Expr (new Word ("TAILCALL"));
     134  static  final Expr _c_92 = new Expr (_c_38, 2, 2);
     135  static  final Expr _c_93 = new Expr (_c_31, 0, 3);
     136  static  final Expr _c_94 = Expr.fromSequence ("empty");
     137  static  final Expr _c_95 = new Expr (new Func () {
    126138    public boolean eval (Expr arg, Result res) throws RefalException {
    127139      Term_Ref_To_CPP (arg, res);
     
    129141    }
    130142  });
    131   static  final Expr _c_93 = new Expr (new Word ("+"));
    132   static  final Expr _c_94 = new Expr (_c_89, 1, 1);
    133   static  final Expr _c_95 = new Expr (new Word ("PAREN"));
    134   static  final Expr _c_96 = new Expr (_c_60, 5, 3);
    135   static  final Expr _c_97 = new Expr (new Word ("DEREF"));
    136   static  final Expr _c_98 = Expr.fromSequence ("Expr (");
    137   static  final Expr _c_99 = new Expr (new Word ("SUBEXPR"));
    138   static  final Expr _c_100 = new Expr (new Word ("REF"));
    139   static  final Expr _c_101 = new Expr (new Word ("ERROR-EXPR"));
    140   static  final Expr _c_102 = Expr.fromSequence ("err");
    141   static  final Expr _c_103 = new Expr (_c_7, 4, 2);
    142   static  final Expr _c_144 = Expr.fromSequence (" + Expr::create<rftype::Word>(\"");
    143   static  final Expr _c_106 = new Expr (_c_144, 3, 28);
    144   static  final Expr _c_104 = new Expr (_c_106, 25, 3);
    145   static  final Expr _c_105 = new Expr (_c_106, 0, 13);
    146   static  final Expr _c_107 = new Expr (new Word ("Illegal type int-symbol: "));
    147   static  final Expr _c_108 = new Expr (new Word ("LENGTH"));
    148   static  final Expr _c_109 = Expr.fromSequence (".get_len ()");
    149   static  final Expr _c_110 = new Expr (new Word ("MAX"));
    150   static  final Expr _c_111 = new Expr (new Word ("Ints"));
    151   static  final Expr _c_112 = Expr.fromSequence ("pxx_max (");
    152   static  final Expr _c_113 = new Expr (new Word ("MIN"));
    153   static  final Expr _c_114 = Expr.fromSequence ("pxx_min (");
    154   static  final Expr _c_115 = new Expr (new Word ("INFIX"));
    155   static  final Expr _c_116 = new Expr (new Func () {
     143  static  final Expr _c_96 = new Expr (new Word ("+"));
     144  static  final Expr _c_97 = new Expr (_c_92, 1, 1);
     145  static  final Expr _c_98 = new Expr (new Word ("PAREN"));
     146  static  final Expr _c_99 = new Expr (_c_63, 5, 3);
     147  static  final Expr _c_100 = new Expr (new Word ("DEREF"));
     148  static  final Expr _c_101 = Expr.fromSequence ("Expr (");
     149  static  final Expr _c_102 = new Expr (new Word ("SUBEXPR"));
     150  static  final Expr _c_103 = new Expr (new Word ("REF"));
     151  static  final Expr _c_104 = new Expr (new Word ("ERROR-EXPR"));
     152  static  final Expr _c_105 = Expr.fromSequence ("err");
     153  static  final Expr _c_106 = new Expr (_c_7, 4, 2);
     154  static  final Expr _c_147 = Expr.fromSequence (" + Expr::create<rftype::Word>(\"");
     155  static  final Expr _c_109 = new Expr (_c_147, 3, 28);
     156  static  final Expr _c_107 = new Expr (_c_109, 25, 3);
     157  static  final Expr _c_108 = new Expr (_c_109, 0, 13);
     158  static  final Expr _c_110 = new Expr (new Word ("Illegal type int-symbol: "));
     159  static  final Expr _c_111 = new Expr (new Word ("LENGTH"));
     160  static  final Expr _c_112 = Expr.fromSequence (".get_len ()");
     161  static  final Expr _c_113 = new Expr (new Word ("MAX"));
     162  static  final Expr _c_114 = new Expr (new Word ("Ints"));
     163  static  final Expr _c_115 = Expr.fromSequence ("pxx_max (");
     164  static  final Expr _c_116 = new Expr (new Word ("MIN"));
     165  static  final Expr _c_117 = Expr.fromSequence ("pxx_min (");
     166  static  final Expr _c_118 = new Expr (new Word ("INFIX"));
     167  static  final Expr _c_119 = new Expr (new Func () {
    156168    public boolean eval (Expr arg, Result res) throws RefalException {
    157169      Expr_Int_To_CPP (arg, res);
     
    159171    }
    160172  });
    161   static  final Expr _c_117 = new Expr (new Word ("CALL-FAILS"));
    162   static  final Expr _c_118 = Expr.fromSequence ("!RF_CALL (");
    163   static  final Expr _c_119 = new Expr (new Word ("SYMBOL?"));
    164   static  final Expr _c_120 = Expr.fromSequence (".symbol_at (");
    165   static  final Expr _c_121 = new Expr (new Word ("FLAT-SUBEXPR?"));
    166   static  final Expr _c_122 = Expr.fromSequence (".flat_at (");
    167   static  final Expr _c_123 = new Expr (new Word ("ITER-FAILS"));
    168   static  final Expr _c_124 = Expr.fromSequence ("!RF_iter(");
    169   static  final Expr _c_125 = new Expr (new Word ("EQ"));
    170   static  final Expr _c_126 = Expr.fromSequence (".eq (");
    171   static  final Expr _c_127 = new Expr (new Word ("TERM-EQ"));
    172   static  final Expr _c_128 = Expr.fromSequence (".term_eq (");
    173   static  final Expr _c_129 = new Expr (new Word ("NOT"));
    174   static  final Expr _c_130 = new Expr (_c_124, 0, 1);
    175   static  final Expr _c_131 = new Expr (new Word ("INC-ITER"));
    176   static  final Expr _c_132 = Expr.fromSequence (")++");
    177   static  final Expr _c_133 = new Expr (_c_124, 1, 8);
    178   static  final Expr _c_134 = new Expr (new Word ("DEC-ITER"));
    179   static  final Expr _c_135 = Expr.fromSequence (")--");
    180   static  final Expr _c_138 = Expr.fromSequence (" + rftype::Char::create_expr (\"");
    181   static  final Expr _c_136 = new Expr (_c_138, 0, 3);
    182   static  final Expr _c_137 = new Expr (new java.math.BigInteger ("127"));
    183   static  final Expr _c_139 = Expr.fromSequence (" + rftype::Char::create_expr (L\"");
    184   static  final Expr _c_140 = Expr.fromSequence (") ()");
    185   static  final Expr _c_141 = Expr.fromSequence (" + (");
    186   static  final Expr _c_142 = Expr.fromSequence (" + Expr::create_sym<rftype::Func> (");
    187   static  final Expr _c_143 = new Expr (_c_144, 0, 16);
    188   static  final Expr _c_146 = Expr.fromSequence ("\\\\");
    189   static  final Expr _c_145 = new Expr (_c_146, 0, 1);
    190   static  final Expr _c_147 = Expr.fromSequence ("\n");
    191   static  final Expr _c_148 = new Expr (_c_167, 4, 2);
    192   static  final Expr _c_149 = Expr.fromSequence ("\t");
    193   static  final Expr _c_150 = Expr.fromSequence ("\\t");
    194   static  final Expr _c_151 = Expr.fromSequence ("\r");
    195   static  final Expr _c_152 = Expr.fromSequence ("\\r");
    196   static  final Expr _c_153 = new Expr (_c_73, 0, 1);
    197   static  final Expr _c_154 = Expr.fromSequence ("\\\"");
    198   static  final Expr _c_155 = Expr.fromSequence ("RF_VOID");
    199   static  final Expr _c_157 = Expr.fromSequence ("/*void*/");
    200   static  final Expr _c_158 = Expr.fromSequence (";;)");
    201   static  final Expr _c_159 = new Expr (_c_18, 1, 2);
    202   static  final Expr _c_160 = new Expr (_c_159, 0, 1);
    203   static  final Expr _c_161 = new Expr (new Func () {
    204     public boolean eval (Expr arg, Result res) throws RefalException {
    205       org.refal.plus.library.CppMangle.Rfp2Cpp (arg, res);
    206       return true;
    207     }
    208   });
    209   static  final Expr _c_162 = new Expr (_c_40, 1, 2);
    210   static  final Expr _c_163 = new Expr (_c_179, 6, 10);
    211   static  final Expr _c_164 = new Expr (_c_8);
    212   static  final Expr _c_165 = new Expr (new Func () {
     173  static  final Expr _c_120 = new Expr (new Word ("CALL-FAILS"));
     174  static  final Expr _c_121 = Expr.fromSequence ("!RF_CALL (");
     175  static  final Expr _c_122 = new Expr (new Word ("SYMBOL?"));
     176  static  final Expr _c_123 = Expr.fromSequence (".symbol_at (");
     177  static  final Expr _c_124 = new Expr (new Word ("FLAT-SUBEXPR?"));
     178  static  final Expr _c_125 = Expr.fromSequence (".flat_at (");
     179  static  final Expr _c_126 = new Expr (new Word ("ITER-FAILS"));
     180  static  final Expr _c_127 = Expr.fromSequence ("!RF_iter(");
     181  static  final Expr _c_128 = new Expr (new Word ("EQ"));
     182  static  final Expr _c_129 = Expr.fromSequence (".eq (");
     183  static  final Expr _c_130 = new Expr (new Word ("TERM-EQ"));
     184  static  final Expr _c_131 = Expr.fromSequence (".term_eq (");
     185  static  final Expr _c_132 = new Expr (new Word ("NOT"));
     186  static  final Expr _c_133 = new Expr (_c_127, 0, 1);
     187  static  final Expr _c_134 = new Expr (new Word ("INC-ITER"));
     188  static  final Expr _c_135 = Expr.fromSequence (")++");
     189  static  final Expr _c_136 = new Expr (_c_127, 1, 8);
     190  static  final Expr _c_137 = new Expr (new Word ("DEC-ITER"));
     191  static  final Expr _c_138 = Expr.fromSequence (")--");
     192  static  final Expr _c_141 = Expr.fromSequence (" + rftype::Char::create_expr (\"");
     193  static  final Expr _c_139 = new Expr (_c_141, 0, 3);
     194  static  final Expr _c_140 = new Expr (new java.math.BigInteger ("127"));
     195  static  final Expr _c_142 = Expr.fromSequence (" + rftype::Char::create_expr (L\"");
     196  static  final Expr _c_143 = Expr.fromSequence (") ()");
     197  static  final Expr _c_144 = Expr.fromSequence (" + (");
     198  static  final Expr _c_145 = Expr.fromSequence (" + Expr::create_sym<rftype::Func> (");
     199  static  final Expr _c_146 = new Expr (_c_147, 0, 16);
     200  static  final Expr _c_149 = Expr.fromSequence ("\\\\");
     201  static  final Expr _c_148 = new Expr (_c_149, 0, 1);
     202  static  final Expr _c_150 = Expr.fromSequence ("\n");
     203  static  final Expr _c_151 = new Expr (_c_169, 4, 2);
     204  static  final Expr _c_152 = Expr.fromSequence ("\t");
     205  static  final Expr _c_153 = Expr.fromSequence ("\\t");
     206  static  final Expr _c_154 = Expr.fromSequence ("\r");
     207  static  final Expr _c_155 = Expr.fromSequence ("\\r");
     208  static  final Expr _c_156 = new Expr (_c_77, 0, 1);
     209  static  final Expr _c_157 = Expr.fromSequence ("\\\"");
     210  static  final Expr _c_158 = Expr.fromSequence ("RF_VOID");
     211  static  final Expr _c_160 = Expr.fromSequence ("/*void*/");
     212  static  final Expr _c_161 = Expr.fromSequence (";;)");
     213  static  final Expr _c_162 = new Expr (_c_20, 1, 2);
     214  static  final Expr _c_163 = new Expr (_c_162, 0, 1);
     215  static  final Expr _c_164 = new Expr (_c_43, 1, 2);
     216  static  final Expr _c_165 = new Expr (_c_182, 6, 10);
     217  static  final Expr _c_166 = new Expr (_c_8);
     218  static  final Expr _c_167 = new Expr (new Func () {
    213219    public boolean eval (Expr arg, Result res) throws RefalException {
    214220      Open_Namespace (arg, res);
     
    216222    }
    217223  });
    218   static  final Expr _c_166 = new Expr (new java.math.BigInteger ("1"));
    219   static  final Expr _c_168 = Expr.fromSequence ("printf (\"+ %5u: enter >>> ");
    220   static  final Expr _c_169 = Expr.fromSequence ("printf(\"%2d: \", ");
    221   static  final Expr _c_174 = Expr.fromSequence (").to_Expr().writeln(stdout);");
    222   static  final Expr _c_171 = new Expr (_c_174, 10, 18);
    223   static  final Expr _c_172 = Expr.fromSequence ("printf (\"           argument \"); ");
    224   static  final Expr _c_173 = Expr.fromSequence ("printf (\"- %5u: exit  >>> ");
    225   static  final Expr _c_175 = Expr.fromSequence ("printf (\"           result   \"); ");
    226   static  final Expr _c_176 = Expr.fromSequence ("printf (\"- %5u: fail  >>> ");
     224  static  final Expr _c_168 = new Expr (new java.math.BigInteger ("1"));
     225  static  final Expr _c_170 = Expr.fromSequence ("printf (\"+ %5u: enter >>> ");
     226  static  final Expr _c_171 = Expr.fromSequence ("printf(\"%2d: \", ");
     227  static  final Expr _c_176 = Expr.fromSequence (").to_Expr().writeln(stdout);");
     228  static  final Expr _c_173 = new Expr (_c_176, 10, 18);
     229  static  final Expr _c_174 = Expr.fromSequence ("printf (\"           argument \"); ");
     230  static  final Expr _c_175 = Expr.fromSequence ("printf (\"- %5u: exit  >>> ");
     231  static  final Expr _c_177 = Expr.fromSequence ("printf (\"           result   \"); ");
     232  static  final Expr _c_178 = Expr.fromSequence ("printf (\"- %5u: fail  >>> ");
     233  static private final Expr[] _va_2 = { new Expr (new Word ("Apply")), new Expr (new Word ("Apply")), new Expr (new Word ("Unexpected fail")) };
     234  static  final Expr _c_179 = Expr.concat (_va_2);
    227235
    228236  static public void RFP_ASAIL_To_CPP (Expr _gt_arg1, Result _v_res1) throws RefalException
     
    337345          break _block3__branch1;
    338346        }
    339         Expr[] _va_2 = { _ve_imp.getExpr () , _ge_auxcall6.getExpr () , _vv_cpp };
    340         _vv_cpp = Expr.concat (_va_2);
     347        Expr[] _va_3 = { _ve_imp.getExpr () , _ge_auxcall6.getExpr () , _vv_cpp };
     348        _vv_cpp = Expr.concat (_va_3);
    341349        org.refal.plus.library.Box.Store (Current_Namespace, Expr.empty);
    342350        Expr _ve_entry = Expr.empty;
     
    357365            Expr _vv_name = Expr.empty;
    358366            _vv_name = new Expr (_v_Get1.getExpr (), 0, _v_len__name);
    359             Expr[] _va_3 = { _c_7 , _vv_name , _c_6 };
    360             _ve_entry = new Expr(Expr.concat (_va_3));
     367            Expr[] _va_4 = { _c_7 , _vv_name , _c_6 };
     368            _ve_entry = new Expr(Expr.concat (_va_4));
    361369            break _block4;
    362370          }
     
    384392            Result _ve_nc = new Result ();
    385393            Namespace_Control (_ge_auxcall7.getExpr (), _ve_nc);
    386             Result _ve_c__exprs = new Result ();
    387             org.refal.plus.library.Box.Get (Const_Exprs, _ve_c__exprs);
    388394            Expr _ve_init__consts = Expr.empty;
    389395            _ve_init__consts = Expr.empty;
     396            Expr _ve_c__exprs = Expr.empty;
     397            _ve_c__exprs = _vv_c__exprs;
    390398            _exit__iter1: for ( ; ; )
    391399            {
    392400              _iter1: {
    393                 if (_ve_c__exprs.getExpr ().getLen () != 0)
     401                if (_ve_c__exprs.getLen () != 0)
    394402                {
    395403                  break _iter1;
    396404                }
    397                 Result _ge_auxcall9 = new Result ();
    398                 org.refal.plus.library.Box.Get (Current_Namespace, _ge_auxcall9);
     405                Result _ge_auxcall8 = new Result ();
     406                org.refal.plus.library.Box.Get (Current_Namespace, _ge_auxcall8);
    399407                Result _v_Map2 = new Result ();
    400                 if (!org.refal.plus.library.List.Map (_c_5, Expr.empty, _ge_auxcall9.getExpr (), _v_Map2))
     408                if (!org.refal.plus.library.List.Map (_c_5, Expr.empty, _ge_auxcall8.getExpr (), _v_Map2))
    401409                {
    402410                  break _block3__branch1;
    403411                }
    404                 Expr[] _va_5 = { _c_9 , new Expr(_ve_init__consts) , _c_8 };
    405                 Expr[] _va_4 = { _ve_nc.getExpr () , new Expr(Expr.concat (_va_5)) , _c_10 , _v_Map2.getExpr () };
    406                 _ve_init = Expr.concat (_va_4);
     412                Expr[] _va_6 = { _c_9 , new Expr(_ve_init__consts) , _c_8 };
     413                Expr[] _va_5 = { _ve_nc.getExpr () , new Expr(Expr.concat (_va_6)) , _c_10 , _v_Map2.getExpr () };
     414                _ve_init = Expr.concat (_va_5);
    407415                break _exit__iter1;
    408416              }
    409417              int _v_len11;
    410               _v_len11 = _ve_c__exprs.getExpr ().getLen ();
     418              _v_len11 = _ve_c__exprs.getLen ();
    411419              int _v_len12;
    412420              _v_len12 = 1;
     
    417425              int _v_len__rest;
    418426              _v_len__rest = (_v_len11 - _v_len12);
    419               if (_ve_c__exprs.getExpr ().symbolAt (0))
     427              if (_ve_c__exprs.symbolAt (0))
    420428              {
    421429                throw new RefalException ("org.refal.plus.compiler.rfp_asail_cpp", "RFP_ASAIL_To_CPP", "Unexpected fail");
    422430              }
    423431              Expr _v_deref__c__exprs = Expr.empty;
    424               _v_deref__c__exprs = (Expr) _ve_c__exprs.getExpr ().at (0);
     432              _v_deref__c__exprs = (Expr) _ve_c__exprs.at (0);
    425433              if (_v_deref__c__exprs.getLen () != 2)
    426434              {
     
    444452              _v_len__value = (_v_len13 - _v_len14);
    445453              Expr _ve_rest = Expr.empty;
    446               _ve_rest = new Expr (_ve_c__exprs.getExpr (), (0 + 1), _v_len__rest);
     454              _ve_rest = new Expr (_ve_c__exprs, (0 + 1), _v_len__rest);
    447455              Expr _vt_name = Expr.empty;
    448456              _vt_name = new Expr (_v_deref__c__exprs, 0, 1);
    449457              Expr _ve_value = Expr.empty;
    450458              _ve_value = new Expr (_v_deref__deref__c__exprs, 0, _v_len__value);
    451               Result _ge_auxcall8 = new Result ();
    452               Name_To_CPP (_c_11, _vt_name, _ge_auxcall8);
    453               Expr[] _va_6 = { _ge_auxcall8.getExpr () , _c_13 , _ve_value , _c_12 };
    454               _ve_init__consts = new Expr (_ve_init__consts, new Expr(Expr.concat (_va_6)));
    455               _ve_c__exprs.assign (_ve_rest);
     459              Expr _ge_name__8 = Expr.empty;
     460              _block7: {
     461                _block7__branch1: {
     462                  if (_vt_name.symbolAt (0))
     463                  {
     464                    break _block7__branch1;
     465                  }
     466                  Expr _v_deref__name = Expr.empty;
     467                  _v_deref__name = (Expr) _vt_name.at (0);
     468                  int _v_len15;
     469                  _v_len15 = _v_deref__name.getLen ();
     470                  int _v_len16;
     471                  _v_len16 = 1;
     472                  if (_v_len15 < _v_len16)
     473                  {
     474                    break _block7__branch1;
     475                  }
     476                  int _v_len___dollar_tmp_m_101_m_35;
     477                  _v_len___dollar_tmp_m_101_m_35 = (_v_len15 - _v_len16);
     478                  if (!_c_11.termEq (_v_deref__name, 0))
     479                  {
     480                    break _block7__branch1;
     481                  }
     482                  Expr _ve__dollar_tmp_m_101_m_35 = Expr.empty;
     483                  _ve__dollar_tmp_m_101_m_35 = new Expr (_v_deref__name, (0 + 1), _v_len___dollar_tmp_m_101_m_35);
     484                  Result _va_7 = new Result ();
     485                  org.refal.plus.library.CppMangle.Rfp2Cpp (_vt_name, _va_7);
     486                  _ge_name__8 = _va_7.getExpr ();
     487                  break _block7;
     488                }
     489                Result _va_8 = new Result ();
     490                Name_To_CPP (_c_12, _vt_name, _va_8);
     491                _ge_name__8 = _va_8.getExpr ();
     492              }
     493              Expr[] _va_9 = { _ge_name__8 , _c_14 , _ve_value , _c_13 };
     494              _ve_init__consts = new Expr (_ve_init__consts, new Expr(Expr.concat (_va_9)));
     495              _ve_c__exprs = _ve_rest;
    456496            }
    457497            break _block5;
     
    460500        }
    461501        org.refal.plus.library.Box.Store (Current_Namespace, Expr.empty);
     502        Result _ge_auxcall9 = new Result ();
     503        org.refal.plus.library.Table.Domain (Decls, _ge_auxcall9);
    462504        Result _ge_auxcall10 = new Result ();
    463         org.refal.plus.library.Table.Domain (Decls, _ge_auxcall10);
     505        org.refal.plus.library.Table.Domain (Locals, _ge_auxcall10);
    464506        Result _ge_auxcall11 = new Result ();
    465         org.refal.plus.library.Table.Domain (Locals, _ge_auxcall11);
     507        org.refal.plus.library.List.Sub (_ge_auxcall9.getExpr (), _ge_auxcall10.getExpr (), _ge_auxcall11);
    466508        Result _ge_auxcall12 = new Result ();
    467         org.refal.plus.library.List.Sub (_ge_auxcall10.getExpr (), _ge_auxcall11.getExpr (), _ge_auxcall12);
     509        ASAIL_To_CPP (_ge_auxcall11.getExpr (), _ge_auxcall12);
    468510        Result _ge_auxcall13 = new Result ();
    469         ASAIL_To_CPP (_ge_auxcall12.getExpr (), _ge_auxcall13);
     511        org.refal.plus.library.Box.Get (Current_Namespace, _ge_auxcall13);
    470512        Result _ge_auxcall14 = new Result ();
    471         org.refal.plus.library.Box.Get (Current_Namespace, _ge_auxcall14);
    472         Result _ge_auxcall15 = new Result ();
    473         if (!org.refal.plus.library.List.Map (_c_5, Expr.empty, _ge_auxcall14.getExpr (), _ge_auxcall15))
     513        if (!org.refal.plus.library.List.Map (_c_5, Expr.empty, _ge_auxcall13.getExpr (), _ge_auxcall14))
    474514        {
    475515          break _block3__branch1;
    476516        }
    477         Expr[] _va_7 = { _c_14 , _ge_auxcall13.getExpr () , _ge_auxcall15.getExpr () , _vv_cpp , _ve_init , _ve_entry };
    478         _v_res1.assign (Expr.concat (_va_7));
     517        Expr[] _va_10 = { _c_15 , _ge_auxcall12.getExpr () , _ge_auxcall14.getExpr () , _vv_cpp , _ve_init , _ve_entry };
     518        _v_res1.assign (Expr.concat (_va_10));
    479519        break _block3;
    480520      }
     
    513553            _v_len3 = _v_deref__item.getLen ();
    514554            int _v_len4;
    515             _v_len4 = 5;
     555            _v_len4 = 2;
    516556            if (_v_len3 < _v_len4)
    517557            {
    518558              break _block2__branch1;
    519559            }
    520             int _v_len__body;
    521             _v_len__body = (_v_len3 - _v_len4);
    522             if (_v_deref__item.symbolAt ((0 + 1 + 1)))
     560            int _v_len___dollar_tmp_m_122_m_19;
     561            _v_len___dollar_tmp_m_122_m_19 = (_v_len3 - _v_len4);
     562            if (!_v_deref__item.symbolAt (0))
    523563            {
    524564              break _block2__branch1;
    525565            }
    526             Expr _v_deref__deref__item = Expr.empty;
    527             _v_deref__deref__item = (Expr) _v_deref__item.at ((0 + 1 + 1));
    528             int _v_len5;
    529             _v_len5 = _v_deref__deref__item.getLen ();
    530             int _v_len6;
    531             _v_len6 = 0;
    532             if (_v_len5 < _v_len6)
    533             {
    534               break _block2__branch1;
    535             }
    536             int _v_len__name;
    537             _v_len__name = (_v_len5 - _v_len6);
    538             if (!_v_deref__item.symbolAt (0))
    539             {
    540               break _block2__branch1;
    541             }
    542             if (!_c_15.termEq (_v_deref__item, (0 + 1)))
     566            if (!_c_16.termEq (_v_deref__item, (0 + 1)))
    543567            {
    544568              break _block2__branch1;
     
    546570            Expr _vs_tag = Expr.empty;
    547571            _vs_tag = new Expr (_v_deref__item, 0, 1);
     572            Expr _ve__dollar_tmp_m_122_m_19 = Expr.empty;
     573            _ve__dollar_tmp_m_122_m_19 = new Expr (_v_deref__item, (0 + 1 + 1), _v_len___dollar_tmp_m_122_m_19);
     574            _ve_cpp__item = Expr.empty;
     575            break _block2;
     576          }
     577          _block2__branch2: {
     578            if (_vt_item.symbolAt (0))
     579            {
     580              break _block2__branch2;
     581            }
     582            Expr _v_deref__item2 = Expr.empty;
     583            _v_deref__item2 = (Expr) _vt_item.at (0);
     584            int _v_len5;
     585            _v_len5 = _v_deref__item2.getLen ();
     586            int _v_len6;
     587            _v_len6 = 5;
     588            if (_v_len5 < _v_len6)
     589            {
     590              break _block2__branch2;
     591            }
     592            int _v_len__body;
     593            _v_len__body = (_v_len5 - _v_len6);
     594            if (_v_deref__item2.symbolAt ((0 + 1 + 1)))
     595            {
     596              break _block2__branch2;
     597            }
     598            Expr _v_deref__deref__item2 = Expr.empty;
     599            _v_deref__deref__item2 = (Expr) _v_deref__item2.at ((0 + 1 + 1));
     600            int _v_len7;
     601            _v_len7 = _v_deref__deref__item2.getLen ();
     602            int _v_len8;
     603            _v_len8 = 0;
     604            if (_v_len7 < _v_len8)
     605            {
     606              break _block2__branch2;
     607            }
     608            int _v_len__name;
     609            _v_len__name = (_v_len7 - _v_len8);
     610            if (!_v_deref__item2.symbolAt (0))
     611            {
     612              break _block2__branch2;
     613            }
     614            if (!_c_17.termEq (_v_deref__item2, (0 + 1)))
     615            {
     616              break _block2__branch2;
     617            }
     618            Expr _vs_tag = Expr.empty;
     619            _vs_tag = new Expr (_v_deref__item2, 0, 1);
    548620            Expr _vt_args = Expr.empty;
    549             _vt_args = new Expr (_v_deref__item, (0 + 1 + 1 + 1), 1);
     621            _vt_args = new Expr (_v_deref__item2, (0 + 1 + 1 + 1), 1);
    550622            Expr _vt_ress = Expr.empty;
    551             _vt_ress = new Expr (_v_deref__item, (0 + 1 + 1 + 1 + 1), 1);
     623            _vt_ress = new Expr (_v_deref__item2, (0 + 1 + 1 + 1 + 1), 1);
    552624            Expr _ve_body = Expr.empty;
    553             _ve_body = new Expr (_v_deref__item, (0 + 1 + 1 + 1 + 1 + 1), _v_len__body);
     625            _ve_body = new Expr (_v_deref__item2, (0 + 1 + 1 + 1 + 1 + 1), _v_len__body);
    554626            Expr _ve_name = Expr.empty;
    555             _ve_name = new Expr (_v_deref__deref__item, 0, _v_len__name);
     627            _ve_name = new Expr (_v_deref__deref__item2, 0, _v_len__name);
    556628            _block3: {
    557629              _block3__branch1: {
    558                 if (!_vs_tag.termEq (_c_16, 0))
     630                if (!_vs_tag.termEq (_c_18, 0))
    559631                {
    560632                  break _block3__branch1;
     
    562634                break _block3;
    563635              }
    564               if (!_vs_tag.termEq (_c_17, 0))
     636              if (!_vs_tag.termEq (_c_19, 0))
    565637              {
    566                 break _block2__branch1;
     638                break _block2__branch2;
    567639              }
    568640            }
    569             int _v_len7;
    570             _v_len7 = _v_len__name;
    571             int _v_len8;
    572             _v_len8 = 4;
    573             if (_v_len7 < _v_len8)
    574             {
    575               break _block2__branch1;
     641            int _v_len9;
     642            _v_len9 = _v_len__name;
     643            int _v_len10;
     644            _v_len10 = 4;
     645            if (_v_len9 < _v_len10)
     646            {
     647              break _block2__branch2;
    576648            }
    577649            int _v_len__n;
    578             _v_len__n = (_v_len7 - _v_len8);
    579             if (!_c_18.eq (_ve_name, 0))
    580             {
    581               break _block2__branch1;
     650            _v_len__n = (_v_len9 - _v_len10);
     651            if (!_c_20.eq (_ve_name, 0))
     652            {
     653              break _block2__branch2;
    582654            }
    583655            Expr _ve_n = Expr.empty;
    584656            _ve_n = new Expr (_ve_name, (0 + 1 + 1 + 1 + 1), _v_len__n);
    585657            Result _ge_auxcall1 = new Result ();
    586             org.refal.plus.library.List.Intersperse (_c_19, _ve_n, _ge_auxcall1);
     658            org.refal.plus.library.List.Intersperse (_c_21, _ve_n, _ge_auxcall1);
    587659            Result _gs_auxcall2 = new Result ();
    588660            org.refal.plus.library.Convert.ToWord (_ge_auxcall1.getExpr (), _gs_auxcall2);
    589             Expr[] _va_9 = { _c_21 , _ve_n , _c_20 };
    590             Expr[] _va_8 = { _vs_tag , _c_22 , new Expr(_gs_auxcall2.getExpr ()) , _vt_args , _vt_ress , new Expr(Expr.concat (_va_9)) };
    591             org.refal.plus.library.Table.Bind (Unavailable_Imports, _ve_name, Expr.concat (_va_8));
     661            Expr[] _va_12 = { _c_23 , _ve_n , _c_22 };
     662            Expr[] _va_11 = { _vs_tag , _c_24 , new Expr(_gs_auxcall2.getExpr ()) , _vt_args , _vt_ress , new Expr(Expr.concat (_va_12)) };
     663            org.refal.plus.library.Table.Bind (Unavailable_Imports, _ve_name, Expr.concat (_va_11));
    592664            _ve_cpp__item = Expr.empty;
    593665            break _block2;
    594666          }
    595           _block2__branch2: {
     667          _block2__branch3: {
    596668            if (_vt_item.symbolAt (0))
    597669            {
    598               break _block2__branch2;
    599             }
    600             Expr _v_deref__item2 = Expr.empty;
    601             _v_deref__item2 = (Expr) _vt_item.at (0);
    602             int _v_len9;
    603             _v_len9 = _v_deref__item2.getLen ();
    604             int _v_len10;
    605             _v_len10 = 5;
    606             if (_v_len9 < _v_len10)
    607             {
    608               break _block2__branch2;
     670              break _block2__branch3;
     671            }
     672            Expr _v_deref__item3 = Expr.empty;
     673            _v_deref__item3 = (Expr) _vt_item.at (0);
     674            int _v_len11;
     675            _v_len11 = _v_deref__item3.getLen ();
     676            int _v_len12;
     677            _v_len12 = 5;
     678            if (_v_len11 < _v_len12)
     679            {
     680              break _block2__branch3;
    609681            }
    610682            int _v_len__body2;
    611             _v_len__body2 = (_v_len9 - _v_len10);
    612             if (_v_deref__item2.symbolAt ((0 + 1 + 1 + 1)))
    613             {
    614               break _block2__branch2;
    615             }
    616             if (_v_deref__item2.symbolAt ((0 + 1 + 1 + 1 + 1)))
    617             {
    618               break _block2__branch2;
    619             }
    620             Expr _v_deref__deref__item2 = Expr.empty;
    621             _v_deref__deref__item2 = (Expr) _v_deref__item2.at ((0 + 1 + 1 + 1));
    622             Expr _v_deref__deref__item22 = Expr.empty;
    623             _v_deref__deref__item22 = (Expr) _v_deref__item2.at ((0 + 1 + 1 + 1 + 1));
    624             int _v_len11;
    625             _v_len11 = _v_deref__deref__item22.getLen ();
    626             int _v_len12;
    627             _v_len12 = 0;
    628             if (_v_len11 < _v_len12)
    629             {
    630               break _block2__branch2;
    631             }
    632             int _v_len__ress;
    633             _v_len__ress = (_v_len11 - _v_len12);
     683            _v_len__body2 = (_v_len11 - _v_len12);
     684            if (_v_deref__item3.symbolAt ((0 + 1 + 1 + 1)))
     685            {
     686              break _block2__branch3;
     687            }
     688            if (_v_deref__item3.symbolAt ((0 + 1 + 1 + 1 + 1)))
     689            {
     690              break _block2__branch3;
     691            }
     692            Expr _v_deref__deref__item3 = Expr.empty;
     693            _v_deref__deref__item3 = (Expr) _v_deref__item3.at ((0 + 1 + 1 + 1));
     694            Expr _v_deref__deref__item32 = Expr.empty;
     695            _v_deref__deref__item32 = (Expr) _v_deref__item3.at ((0 + 1 + 1 + 1 + 1));
    634696            int _v_len13;
    635             _v_len13 = _v_deref__deref__item2.getLen ();
     697            _v_len13 = _v_deref__deref__item32.getLen ();
    636698            int _v_len14;
    637699            _v_len14 = 0;
    638700            if (_v_len13 < _v_len14)
    639701            {
    640               break _block2__branch2;
     702              break _block2__branch3;
     703            }
     704            int _v_len__ress;
     705            _v_len__ress = (_v_len13 - _v_len14);
     706            int _v_len15;
     707            _v_len15 = _v_deref__deref__item3.getLen ();
     708            int _v_len16;
     709            _v_len16 = 0;
     710            if (_v_len15 < _v_len16)
     711            {
     712              break _block2__branch3;
    641713            }
    642714            int _v_len__args;
    643             _v_len__args = (_v_len13 - _v_len14);
    644             if (!_v_deref__item2.symbolAt (0))
    645             {
    646               break _block2__branch2;
    647             }
    648             if (!_v_deref__item2.symbolAt ((0 + 1)))
    649             {
    650               break _block2__branch2;
     715            _v_len__args = (_v_len15 - _v_len16);
     716            if (!_v_deref__item3.symbolAt (0))
     717            {
     718              break _block2__branch3;
     719            }
     720            if (!_v_deref__item3.symbolAt ((0 + 1)))
     721            {
     722              break _block2__branch3;
    651723            }
    652724            Expr _vs_tag = Expr.empty;
    653             _vs_tag = new Expr (_v_deref__item2, 0, 1);
     725            _vs_tag = new Expr (_v_deref__item3, 0, 1);
    654726            Expr _vs_linkage = Expr.empty;
    655             _vs_linkage = new Expr (_v_deref__item2, (0 + 1), 1);
     727            _vs_linkage = new Expr (_v_deref__item3, (0 + 1), 1);
    656728            Expr _vt_name = Expr.empty;
    657             _vt_name = new Expr (_v_deref__item2, (0 + 1 + 1), 1);
     729            _vt_name = new Expr (_v_deref__item3, (0 + 1 + 1), 1);
    658730            Expr _ve_body = Expr.empty;
    659             _ve_body = new Expr (_v_deref__item2, (0 + 1 + 1 + 1 + 1 + 1), _v_len__body2);
     731            _ve_body = new Expr (_v_deref__item3, (0 + 1 + 1 + 1 + 1 + 1), _v_len__body2);
    660732            Expr _ve_args = Expr.empty;
    661             _ve_args = new Expr (_v_deref__deref__item2, 0, _v_len__args);
     733            _ve_args = new Expr (_v_deref__deref__item3, 0, _v_len__args);
    662734            Expr _ve_ress = Expr.empty;
    663             _ve_ress = new Expr (_v_deref__deref__item22, 0, _v_len__ress);
     735            _ve_ress = new Expr (_v_deref__deref__item32, 0, _v_len__ress);
    664736            _block4: {
    665737              _block4__branch1: {
    666                 if (!_vs_tag.termEq (_c_16, 0))
     738                if (!_vs_tag.termEq (_c_18, 0))
    667739                {
    668740                  break _block4__branch1;
     
    670742                break _block4;
    671743              }
    672               if (!_vs_tag.termEq (_c_17, 0))
     744              if (!_vs_tag.termEq (_c_19, 0))
    673745              {
    674                 break _block2__branch2;
     746                break _block2__branch3;
    675747              }
    676748            }
     
    684756                  break _block5__branch1;
    685757                }
    686                 Expr.SplitIterator _va_10 = _v_Get1.getExpr ().leftSplit(0);
    687                 _exit1: _continue1: for ( ; ; _va_10.next ())
     758                Expr.SplitIterator _va_13 = _v_Get1.getExpr ().leftSplit(0);
     759                _exit1: _continue1: for ( ; ; _va_13.next ())
    688760                {
    689                   Expr _ve__dollar_tmp_m_127_m_25 = _va_10.getLeft();
    690                   Expr _v_lsplit__Get1 = _va_10.getRight();
    691                   if (!_va_10.isValid ())
     761                  Expr _ve__dollar_tmp_m_132_m_25 = _va_13.getLeft();
     762                  Expr _v_lsplit__Get1 = _va_13.getRight();
     763                  if (!_va_13.isValid ())
    692764                  {
    693765                    break _block5__branch1;
    694766                  }
    695                   int _v_len15;
    696                   _v_len15 = _v_lsplit__Get1.getLen ();
    697                   int _v_len16;
    698                   _v_len16 = 1;
    699                   if (_v_len15 < _v_len16)
     767                  int _v_len17;
     768                  _v_len17 = _v_lsplit__Get1.getLen ();
     769                  int _v_len18;
     770                  _v_len18 = 1;
     771                  if (_v_len17 < _v_len18)
    700772                  {
    701773                    break _block5__branch1;
    702774                  }
    703                   int _v_len___dollar_tmp_m_127_m_34;
    704                   _v_len___dollar_tmp_m_127_m_34 = (_v_len15 - _v_len16);
     775                  int _v_len___dollar_tmp_m_132_m_34;
     776                  _v_len___dollar_tmp_m_132_m_34 = (_v_len17 - _v_len18);
    705777                  if (!_vt_name.termEq (_v_lsplit__Get1, 0))
    706778                  {
    707779                    continue _continue1;
    708780                  }
    709                   Expr _ve__dollar_tmp_m_127_m_34 = Expr.empty;
    710                   _ve__dollar_tmp_m_127_m_34 = new Expr (_v_lsplit__Get1, (0 + 1), _v_len___dollar_tmp_m_127_m_34);
     781                  Expr _ve__dollar_tmp_m_132_m_34 = Expr.empty;
     782                  _ve__dollar_tmp_m_132_m_34 = new Expr (_v_lsplit__Get1, (0 + 1), _v_len___dollar_tmp_m_132_m_34);
    711783                  Result _ge_auxcall3 = new Result ();
    712784                  org.refal.plus.library.List.Concat (_vt_name, _ge_auxcall3);
     
    725797                _block7: {
    726798                  _block7__branch1: {
    727                     if (!org.refal.plus.library.Table.IsInTable (rfp_helper.RFP_Options, _c_23))
     799                    if (!org.refal.plus.library.Table.IsInTable (rfp_helper.RFP_Options, _c_25))
    728800                    {
    729801                      break _block7__branch1;
     
    739811                org.refal.plus.library.List.Concat (_vt_name, _ge_auxcall5);
    740812                Result _ge_name__6 = new Result ();
    741                 org.refal.plus.library.List.Intersperse (_c_24, _ge_auxcall5.getExpr (), _ge_name__6);
     813                org.refal.plus.library.List.Intersperse (_c_26, _ge_auxcall5.getExpr (), _ge_name__6);
    742814                org.refal.plus.library.Box.Store (Current_Trace, new Expr (_ge_name__6.getExpr (), new Expr(_ve_ress)));
    743815                Result _ge_auxcall6 = new Result ();
     
    754826            }
    755827            Result _ve_qualifiers = new Result ();
    756             Result _ge_name__5 = new Result ();
    757             Extract_Qualifiers (_vt_name, _ve_qualifiers, _ge_name__5);
     828            Result _ve__dollar_tmp_m_144_m_54 = new Result ();
     829            Extract_Qualifiers (_vt_name, _ve_qualifiers, _ve__dollar_tmp_m_144_m_54);
    758830            Result _ge_auxcall8 = new Result ();
    759831            Namespace_Control (_ve_qualifiers.getExpr (), _ge_auxcall8);
    760832            Result _ge_auxcall9 = new Result ();
    761             org.refal.plus.library.CppMangle.Rfp2Cpp (_ge_name__5.getExpr (), _ge_auxcall9);
     833            Name_To_CPP (_c_27, _vt_name, _ge_auxcall9);
    762834            Result _ge_auxcall10 = new Result ();
    763             Args_To_CPP (_c_25, _c_26, _ve_args, _ge_auxcall10);
     835            Args_To_CPP (_c_28, _c_29, _ve_args, _ge_auxcall10);
    764836            Result _ge_auxcall11 = new Result ();
    765             Args_To_CPP (_c_27, _c_26, _ve_ress, _ge_auxcall11);
     837            Args_To_CPP (_c_30, _c_29, _ve_ress, _ge_auxcall11);
    766838            Result _ge_auxcall12 = new Result ();
    767839            ASAIL_To_CPP (_ve_body, _ge_auxcall12);
    768             Expr[] _va_12 = { _ve_trace__enter , _ge_auxcall12.getExpr () , _ve_trace__exit };
    769             Expr[] _va_11 = { _c_31 , _ge_auxcall9.getExpr () , _c_30 , _ge_auxcall10.getExpr () , _c_30 , _ge_auxcall11.getExpr () , _c_29 , new Expr(Expr.concat (_va_12)) , _c_28 };
    770             _ve_cpp__item = new Expr (_ge_auxcall8.getExpr (), new Expr(Expr.concat (_va_11)));
     840            Expr[] _va_15 = { _ve_trace__enter , _ge_auxcall12.getExpr () , _ve_trace__exit };
     841            Expr[] _va_14 = { _c_34 , _ge_auxcall9.getExpr () , _c_33 , _ge_auxcall10.getExpr () , _c_33 , _ge_auxcall11.getExpr () , _c_32 , new Expr(Expr.concat (_va_15)) , _c_31 };
     842            _ve_cpp__item = new Expr (_ge_auxcall8.getExpr (), new Expr(Expr.concat (_va_14)));
    771843            break _block2;
    772844          }
    773           _block2__branch3: {
     845          _block2__branch4: {
    774846            if (_vt_item.symbolAt (0))
    775847            {
    776               break _block2__branch3;
    777             }
    778             Expr _v_deref__item3 = Expr.empty;
    779             _v_deref__item3 = (Expr) _vt_item.at (0);
    780             if (_v_deref__item3.getLen () != 2)
    781             {
    782               break _block2__branch3;
    783             }
    784             if (!_c_32.termEq (_v_deref__item3, 0))
    785             {
    786               break _block2__branch3;
     848              break _block2__branch4;
     849            }
     850            Expr _v_deref__item4 = Expr.empty;
     851            _v_deref__item4 = (Expr) _vt_item.at (0);
     852            if (_v_deref__item4.getLen () != 2)
     853            {
     854              break _block2__branch4;
     855            }
     856            if (!_c_35.termEq (_v_deref__item4, 0))
     857            {
     858              break _block2__branch4;
    787859            }
    788860            Expr _vt_name = Expr.empty;
    789             _vt_name = new Expr (_v_deref__item3, (0 + 1), 1);
     861            _vt_name = new Expr (_v_deref__item4, (0 + 1), 1);
    790862            org.refal.plus.library.Table.Bind (rfpc.RFP_Trace, _vt_name, Expr.empty);
    791863            _ve_cpp__item = Expr.empty;
    792864            break _block2;
    793865          }
    794           _block2__branch4: {
     866          _block2__branch5: {
    795867            if (_vt_item.symbolAt (0))
    796868            {
    797               break _block2__branch4;
    798             }
    799             Expr _v_deref__item4 = Expr.empty;
    800             _v_deref__item4 = (Expr) _vt_item.at (0);
    801             int _v_len17;
    802             _v_len17 = _v_deref__item4.getLen ();
    803             int _v_len18;
    804             _v_len18 = 4;
    805             if (_v_len17 < _v_len18)
    806             {
    807               break _block2__branch4;
     869              break _block2__branch5;
     870            }
     871            Expr _v_deref__item5 = Expr.empty;
     872            _v_deref__item5 = (Expr) _vt_item.at (0);
     873            int _v_len19;
     874            _v_len19 = _v_deref__item5.getLen ();
     875            int _v_len20;
     876            _v_len20 = 4;
     877            if (_v_len19 < _v_len20)
     878            {
     879              break _block2__branch5;
    808880            }
    809881            int _v_len__body3;
    810             _v_len__body3 = (_v_len17 - _v_len18);
    811             if (_v_deref__item4.symbolAt ((0 + 1 + 1)))
    812             {
    813               break _block2__branch4;
    814             }
    815             if (_v_deref__item4.symbolAt ((0 + 1 + 1 + 1)))
    816             {
    817               break _block2__branch4;
    818             }
    819             Expr _v_deref__deref__item4 = Expr.empty;
    820             _v_deref__deref__item4 = (Expr) _v_deref__item4.at ((0 + 1 + 1));
    821             Expr _v_deref__deref__item42 = Expr.empty;
    822             _v_deref__deref__item42 = (Expr) _v_deref__item4.at ((0 + 1 + 1 + 1));
    823             int _v_len19;
    824             _v_len19 = _v_deref__deref__item42.getLen ();
    825             int _v_len20;
    826             _v_len20 = 0;
    827             if (_v_len19 < _v_len20)
    828             {
    829               break _block2__branch4;
    830             }
    831             int _v_len__arg2;
    832             _v_len__arg2 = (_v_len19 - _v_len20);
     882            _v_len__body3 = (_v_len19 - _v_len20);
     883            if (_v_deref__item5.symbolAt ((0 + 1 + 1)))
     884            {
     885              break _block2__branch5;
     886            }
     887            if (_v_deref__item5.symbolAt ((0 + 1 + 1 + 1)))
     888            {
     889              break _block2__branch5;
     890            }
     891            Expr _v_deref__deref__item5 = Expr.empty;
     892            _v_deref__deref__item5 = (Expr) _v_deref__item5.at ((0 + 1 + 1));
     893            Expr _v_deref__deref__item52 = Expr.empty;
     894            _v_deref__deref__item52 = (Expr) _v_deref__item5.at ((0 + 1 + 1 + 1));
    833895            int _v_len21;
    834             _v_len21 = _v_deref__deref__item4.getLen ();
     896            _v_len21 = _v_deref__deref__item52.getLen ();
    835897            int _v_len22;
    836898            _v_len22 = 0;
    837899            if (_v_len21 < _v_len22)
    838900            {
    839               break _block2__branch4;
     901              break _block2__branch5;
     902            }
     903            int _v_len__arg2;
     904            _v_len__arg2 = (_v_len21 - _v_len22);
     905            int _v_len23;
     906            _v_len23 = _v_deref__deref__item5.getLen ();
     907            int _v_len24;
     908            _v_len24 = 0;
     909            if (_v_len23 < _v_len24)
     910            {
     911              break _block2__branch5;
    840912            }
    841913            int _v_len__arg1;
    842             _v_len__arg1 = (_v_len21 - _v_len22);
    843             if (!_c_33.termEq (_v_deref__item4, 0))
    844             {
    845               break _block2__branch4;
    846             }
    847             if (!_v_deref__item4.symbolAt ((0 + 1)))
    848             {
    849               break _block2__branch4;
     914            _v_len__arg1 = (_v_len23 - _v_len24);
     915            if (!_c_36.termEq (_v_deref__item5, 0))
     916            {
     917              break _block2__branch5;
     918            }
     919            if (!_v_deref__item5.symbolAt ((0 + 1)))
     920            {
     921              break _block2__branch5;
    850922            }
    851923            Expr _vs_op = Expr.empty;
    852             _vs_op = new Expr (_v_deref__item4, (0 + 1), 1);
     924            _vs_op = new Expr (_v_deref__item5, (0 + 1), 1);
    853925            Expr _ve_body = Expr.empty;
    854             _ve_body = new Expr (_v_deref__item4, (0 + 1 + 1 + 1 + 1), _v_len__body3);
     926            _ve_body = new Expr (_v_deref__item5, (0 + 1 + 1 + 1 + 1), _v_len__body3);
    855927            Expr _ve_arg1 = Expr.empty;
    856             _ve_arg1 = new Expr (_v_deref__deref__item4, 0, _v_len__arg1);
     928            _ve_arg1 = new Expr (_v_deref__deref__item5, 0, _v_len__arg1);
    857929            Expr _ve_arg2 = Expr.empty;
    858             _ve_arg2 = new Expr (_v_deref__deref__item42, 0, _v_len__arg2);
     930            _ve_arg2 = new Expr (_v_deref__deref__item52, 0, _v_len__arg2);
    859931            Result _ge_auxcall13 = new Result ();
    860932            Expr_Int_To_CPP (_ve_arg1, _ge_auxcall13);
     
    863935            Result _ge_auxcall15 = new Result ();
    864936            ASAIL_To_CPP (_ve_body, _ge_auxcall15);
    865             Expr[] _va_13 = { _c_35 , _ge_auxcall13.getExpr () , _c_34 , _vs_op , _c_34 , _ge_auxcall14.getExpr () , _c_29 };
    866             Expr[] _va_14 = { _c_36 , new Expr(_ge_auxcall15.getExpr ()) , _c_8 };
    867             _ve_cpp__item = new Expr (new Expr(Expr.concat (_va_13)), new Expr(Expr.concat (_va_14)));
    868             break _block2;
    869           }
    870           _block2__branch5: {
    871             if (_vt_item.symbolAt (0))
    872             {
    873               break _block2__branch5;
    874             }
    875             Expr _v_deref__item5 = Expr.empty;
    876             _v_deref__item5 = (Expr) _vt_item.at (0);
    877             int _v_len23;
    878             _v_len23 = _v_deref__item5.getLen ();
    879             int _v_len24;
    880             _v_len24 = 2;
    881             if (_v_len23 < _v_len24)
    882             {
    883               break _block2__branch5;
    884             }
    885             int _v_len__body4;
    886             _v_len__body4 = (_v_len23 - _v_len24);
    887             if (!_c_37.termEq (_v_deref__item5, 0))
    888             {
    889               break _block2__branch5;
    890             }
    891             Expr _vt_cond = Expr.empty;
    892             _vt_cond = new Expr (_v_deref__item5, (0 + 1), 1);
    893             Expr _ve_body = Expr.empty;
    894             _ve_body = new Expr (_v_deref__item5, (0 + 1 + 1), _v_len__body4);
    895             Result _ge_auxcall16 = new Result ();
    896             Cond_To_CPP (_vt_cond, _ge_auxcall16);
    897             Result _ge_auxcall17 = new Result ();
    898             ASAIL_To_CPP (_ve_body, _ge_auxcall17);
    899             Expr[] _va_15 = { _c_35 , _ge_auxcall16.getExpr () , _c_29 };
    900             Expr[] _va_16 = { _c_36 , new Expr(_ge_auxcall17.getExpr ()) , _c_8 };
    901             _ve_cpp__item = new Expr (new Expr(Expr.concat (_va_15)), new Expr(Expr.concat (_va_16)));
     937            Expr[] _va_16 = { _c_38 , _ge_auxcall13.getExpr () , _c_37 , _vs_op , _c_37 , _ge_auxcall14.getExpr () , _c_32 };
     938            Expr[] _va_17 = { _c_39 , new Expr(_ge_auxcall15.getExpr ()) , _c_8 };
     939            _ve_cpp__item = new Expr (new Expr(Expr.concat (_va_16)), new Expr(Expr.concat (_va_17)));
    902940            break _block2;
    903941          }
     
    912950            _v_len25 = _v_deref__item6.getLen ();
    913951            int _v_len26;
    914             _v_len26 = 5;
     952            _v_len26 = 2;
    915953            if (_v_len25 < _v_len26)
    916954            {
    917955              break _block2__branch6;
    918956            }
     957            int _v_len__body4;
     958            _v_len__body4 = (_v_len25 - _v_len26);
     959            if (!_c_40.termEq (_v_deref__item6, 0))
     960            {
     961              break _block2__branch6;
     962            }
     963            Expr _vt_cond = Expr.empty;
     964            _vt_cond = new Expr (_v_deref__item6, (0 + 1), 1);
     965            Expr _ve_body = Expr.empty;
     966            _ve_body = new Expr (_v_deref__item6, (0 + 1 + 1), _v_len__body4);
     967            Result _ge_auxcall16 = new Result ();
     968            Cond_To_CPP (_vt_cond, _ge_auxcall16);
     969            Result _ge_auxcall17 = new Result ();
     970            ASAIL_To_CPP (_ve_body, _ge_auxcall17);
     971            Expr[] _va_18 = { _c_38 , _ge_auxcall16.getExpr () , _c_32 };
     972            Expr[] _va_19 = { _c_39 , new Expr(_ge_auxcall17.getExpr ()) , _c_8 };
     973            _ve_cpp__item = new Expr (new Expr(Expr.concat (_va_18)), new Expr(Expr.concat (_va_19)));
     974            break _block2;
     975          }
     976          _block2__branch7: {
     977            if (_vt_item.symbolAt (0))
     978            {
     979              break _block2__branch7;
     980            }
     981            Expr _v_deref__item7 = Expr.empty;
     982            _v_deref__item7 = (Expr) _vt_item.at (0);
     983            int _v_len27;
     984            _v_len27 = _v_deref__item7.getLen ();
     985            int _v_len28;
     986            _v_len28 = 5;
     987            if (_v_len27 < _v_len28)
     988            {
     989              break _block2__branch7;
     990            }
    919991            int _v_len__body5;
    920             _v_len__body5 = (_v_len25 - _v_len26);
    921             if (_v_deref__item6.symbolAt ((0 + 1)))
    922             {
    923               break _block2__branch6;
    924             }
    925             if (_v_deref__item6.symbolAt ((0 + 1 + 1)))
    926             {
    927               break _block2__branch6;
    928             }
    929             if (_v_deref__item6.symbolAt ((0 + 1 + 1 + 1)))
    930             {
    931               break _block2__branch6;
    932             }
    933             if (_v_deref__item6.symbolAt ((0 + 1 + 1 + 1 + 1)))
    934             {
    935               break _block2__branch6;
    936             }
    937             Expr _v_deref__deref__item6 = Expr.empty;
    938             _v_deref__deref__item6 = (Expr) _v_deref__item6.at ((0 + 1));
    939             Expr _v_deref__deref__item62 = Expr.empty;
    940             _v_deref__deref__item62 = (Expr) _v_deref__item6.at ((0 + 1 + 1));
    941             Expr _v_deref__deref__item63 = Expr.empty;
    942             _v_deref__deref__item63 = (Expr) _v_deref__item6.at ((0 + 1 + 1 + 1));
    943             Expr _v_deref__deref__item64 = Expr.empty;
    944             _v_deref__deref__item64 = (Expr) _v_deref__item6.at ((0 + 1 + 1 + 1 + 1));
    945             int _v_len27;
    946             _v_len27 = _v_deref__deref__item6.getLen ();
    947             int _v_len28;
    948             _v_len28 = 0;
    949             if (_v_len27 < _v_len28)
    950             {
    951               break _block2__branch6;
    952             }
    953             int _v_len__cont__label;
    954             _v_len__cont__label = (_v_len27 - _v_len28);
     992            _v_len__body5 = (_v_len27 - _v_len28);
     993            if (_v_deref__item7.symbolAt ((0 + 1)))
     994            {
     995              break _block2__branch7;
     996            }
     997            if (_v_deref__item7.symbolAt ((0 + 1 + 1)))
     998            {
     999              break _block2__branch7;
     1000            }
     1001            if (_v_deref__item7.symbolAt ((0 + 1 + 1 + 1)))
     1002            {
     1003              break _block2__branch7;
     1004            }
     1005            if (_v_deref__item7.symbolAt ((0 + 1 + 1 + 1 + 1)))
     1006            {
     1007              break _block2__branch7;
     1008            }
     1009            Expr _v_deref__deref__item7 = Expr.empty;
     1010            _v_deref__deref__item7 = (Expr) _v_deref__item7.at ((0 + 1));
     1011            Expr _v_deref__deref__item72 = Expr.empty;
     1012            _v_deref__deref__item72 = (Expr) _v_deref__item7.at ((0 + 1 + 1));
     1013            Expr _v_deref__deref__item73 = Expr.empty;
     1014            _v_deref__deref__item73 = (Expr) _v_deref__item7.at ((0 + 1 + 1 + 1));
     1015            Expr _v_deref__deref__item74 = Expr.empty;
     1016            _v_deref__deref__item74 = (Expr) _v_deref__item7.at ((0 + 1 + 1 + 1 + 1));
    9551017            int _v_len29;
    956             _v_len29 = _v_deref__deref__item62.getLen ();
     1018            _v_len29 = _v_deref__deref__item7.getLen ();
    9571019            int _v_len30;
    9581020            _v_len30 = 0;
    9591021            if (_v_len29 < _v_len30)
    9601022            {
    961               break _block2__branch6;
    962             }
    963             int _v_len__break__label;
    964             _v_len__break__label = (_v_len29 - _v_len30);
     1023              break _block2__branch7;
     1024            }
     1025            int _v_len__cont__label;
     1026            _v_len__cont__label = (_v_len29 - _v_len30);
    9651027            int _v_len31;
    966             _v_len31 = _v_deref__deref__item64.getLen ();
     1028            _v_len31 = _v_deref__deref__item72.getLen ();
    9671029            int _v_len32;
    9681030            _v_len32 = 0;
    9691031            if (_v_len31 < _v_len32)
    9701032            {
    971               break _block2__branch6;
    972             }
    973             int _v_len__step;
    974             _v_len__step = (_v_len31 - _v_len32);
     1033              break _block2__branch7;
     1034            }
     1035            int _v_len__break__label;
     1036            _v_len__break__label = (_v_len31 - _v_len32);
    9751037            int _v_len33;
    976             _v_len33 = _v_deref__deref__item63.getLen ();
     1038            _v_len33 = _v_deref__deref__item74.getLen ();
    9771039            int _v_len34;
    9781040            _v_len34 = 0;
    9791041            if (_v_len33 < _v_len34)
    9801042            {
    981               break _block2__branch6;
     1043              break _block2__branch7;
     1044            }
     1045            int _v_len__step;
     1046            _v_len__step = (_v_len33 - _v_len34);
     1047            int _v_len35;
     1048            _v_len35 = _v_deref__deref__item73.getLen ();
     1049            int _v_len36;
     1050            _v_len36 = 0;
     1051            if (_v_len35 < _v_len36)
     1052            {
     1053              break _block2__branch7;
    9821054            }
    9831055            int _v_len__cond;
    984             _v_len__cond = (_v_len33 - _v_len34);
    985             if (!_c_38.termEq (_v_deref__item6, 0))
    986             {
    987               break _block2__branch6;
     1056            _v_len__cond = (_v_len35 - _v_len36);
     1057            if (!_c_41.termEq (_v_deref__item7, 0))
     1058            {
     1059              break _block2__branch7;
    9881060            }
    9891061            Expr _ve_body = Expr.empty;
    990             _ve_body = new Expr (_v_deref__item6, (0 + 1 + 1 + 1 + 1 + 1), _v_len__body5);
     1062            _ve_body = new Expr (_v_deref__item7, (0 + 1 + 1 + 1 + 1 + 1), _v_len__body5);
    9911063            Expr _ve_cont__label = Expr.empty;
    992             _ve_cont__label = new Expr (_v_deref__deref__item6, 0, _v_len__cont__label);
     1064            _ve_cont__label = new Expr (_v_deref__deref__item7, 0, _v_len__cont__label);
    9931065            Expr _ve_break__label = Expr.empty;
    994             _ve_break__label = new Expr (_v_deref__deref__item62, 0, _v_len__break__label);
     1066            _ve_break__label = new Expr (_v_deref__deref__item72, 0, _v_len__break__label);
    9951067            Expr _ve_cond = Expr.empty;
    996             _ve_cond = new Expr (_v_deref__deref__item63, 0, _v_len__cond);
     1068            _ve_cond = new Expr (_v_deref__deref__item73, 0, _v_len__cond);
    9971069            Expr _ve_step = Expr.empty;
    998             _ve_step = new Expr (_v_deref__deref__item64, 0, _v_len__step);
     1070            _ve_step = new Expr (_v_deref__deref__item74, 0, _v_len__step);
    9991071            Expr _ge_body__5 = Expr.empty;
    10001072            _block8: {
     
    10041076                  break _block8__branch1;
    10051077                }
    1006                 Expr _vt__dollar_tmp_m_156_m_25 = Expr.empty;
    1007                 _vt__dollar_tmp_m_156_m_25 = new Expr (_ve_cont__label, 0, 1);
     1078                Expr _vt__dollar_tmp_m_161_m_25 = Expr.empty;
     1079                _vt__dollar_tmp_m_161_m_25 = new Expr (_ve_cont__label, 0, 1);
    10081080                Result _ge_auxcall18 = new Result ();
    10091081                ASAIL_To_CPP (_ve_body, _ge_auxcall18);
    10101082                Result _ge_auxcall19 = new Result ();
    1011                 org.refal.plus.library.CppMangle.Rfp2Cpp (new Expr(new Expr (_c_39, _ve_cont__label)), _ge_auxcall19);
    1012                 Expr[] _va_18 = { _c_36 , new Expr(_ge_auxcall18.getExpr ()) , _c_8 };
    1013                 Expr[] _va_19 = { _c_39 , _ge_auxcall19.getExpr () , _c_40 };
    1014                 Expr[] _va_17 = { _c_36 , new Expr(Expr.concat (_va_18)) , new Expr(Expr.concat (_va_19)) , _c_8 };
    1015                 _ge_body__5 = new Expr(Expr.concat (_va_17));
     1083                org.refal.plus.library.CppMangle.Rfp2Cpp (new Expr(new Expr (_c_42, _ve_cont__label)), _ge_auxcall19);
     1084                Expr[] _va_21 = { _c_39 , new Expr(_ge_auxcall18.getExpr ()) , _c_8 };
     1085                Expr[] _va_22 = { _c_42 , _ge_auxcall19.getExpr () , _c_43 };
     1086                Expr[] _va_20 = { _c_39 , new Expr(Expr.concat (_va_21)) , new Expr(Expr.concat (_va_22)) , _c_8 };
     1087                _ge_body__5 = new Expr(Expr.concat (_va_20));
    10161088                break _block8;
    10171089              }
    10181090              Result _ge_auxcall20 = new Result ();
    10191091              ASAIL_To_CPP (_ve_body, _ge_auxcall20);
    1020               Expr[] _va_20 = { _c_36 , new Expr(_ge_auxcall20.getExpr ()) , _c_8 };
    1021               _ge_body__5 = new Expr(Expr.concat (_va_20));
     1092              Expr[] _va_23 = { _c_39 , new Expr(_ge_auxcall20.getExpr ()) , _c_8 };
     1093              _ge_body__5 = new Expr(Expr.concat (_va_23));
    10221094            }
    10231095            Expr _ve_break = Expr.empty;
     
    10281100                  break _block9__branch1;
    10291101                }
    1030                 Expr _vt__dollar_tmp_m_164_m_26 = Expr.empty;
    1031                 _vt__dollar_tmp_m_164_m_26 = new Expr (_ve_break__label, 0, 1);
     1102                Expr _vt__dollar_tmp_m_169_m_26 = Expr.empty;
     1103                _vt__dollar_tmp_m_169_m_26 = new Expr (_ve_break__label, 0, 1);
    10321104                Result _ge_auxcall21 = new Result ();
    1033                 org.refal.plus.library.CppMangle.Rfp2Cpp (new Expr(new Expr (_c_39, _ve_break__label)), _ge_auxcall21);
    1034                 Expr[] _va_21 = { _c_39 , _ge_auxcall21.getExpr () , _c_40 };
    1035                 _ve_break = new Expr(Expr.concat (_va_21));
     1105                org.refal.plus.library.CppMangle.Rfp2Cpp (new Expr(new Expr (_c_42, _ve_break__label)), _ge_auxcall21);
     1106                Expr[] _va_24 = { _c_42 , _ge_auxcall21.getExpr () , _c_43 };
     1107                _ve_break = new Expr(Expr.concat (_va_24));
    10361108                break _block9;
    10371109              }
     
    10401112            Result _ge_auxcall22 = new Result ();
    10411113            Step_To_CPP (_ve_step, _ge_auxcall22);
    1042             Expr[] _va_23 = { _c_41 , _ge_auxcall22.getExpr () , _c_29 };
    1043             Expr[] _va_22 = { new Expr(Expr.concat (_va_23)) , _ge_body__5 , _ve_break };
    1044             _ve_cpp__item = Expr.concat (_va_22);
     1114            Expr[] _va_26 = { _c_44 , _ge_auxcall22.getExpr () , _c_32 };
     1115            Expr[] _va_25 = { new Expr(Expr.concat (_va_26)) , _ge_body__5 , _ve_break };
     1116            _ve_cpp__item = Expr.concat (_va_25);
    10451117            break _block2;
    10461118          }
    1047           _block2__branch7: {
     1119          _block2__branch8: {
    10481120            if (_vt_item.symbolAt (0))
    10491121            {
    1050               break _block2__branch7;
    1051             }
    1052             Expr _v_deref__item7 = Expr.empty;
    1053             _v_deref__item7 = (Expr) _vt_item.at (0);
    1054             int _v_len35;
    1055             _v_len35 = _v_deref__item7.getLen ();
    1056             int _v_len36;
    1057             _v_len36 = 2;
    1058             if (_v_len35 < _v_len36)
    1059             {
    1060               break _block2__branch7;
     1122              break _block2__branch8;
     1123            }
     1124            Expr _v_deref__item8 = Expr.empty;
     1125            _v_deref__item8 = (Expr) _vt_item.at (0);
     1126            int _v_len37;
     1127            _v_len37 = _v_deref__item8.getLen ();
     1128            int _v_len38;
     1129            _v_len38 = 2;
     1130            if (_v_len37 < _v_len38)
     1131            {
     1132              break _block2__branch8;
    10611133            }
    10621134            int _v_len__body6;
    1063             _v_len__body6 = (_v_len35 - _v_len36);
    1064             if (_v_deref__item7.symbolAt ((0 + 1)))
    1065             {
    1066               break _block2__branch7;
    1067             }
    1068             Expr _v_deref__deref__item7 = Expr.empty;
    1069             _v_deref__deref__item7 = (Expr) _v_deref__item7.at ((0 + 1));
    1070             int _v_len37;
    1071             _v_len37 = _v_deref__deref__item7.getLen ();
    1072             int _v_len38;
    1073             _v_len38 = 0;
    1074             if (_v_len37 < _v_len38)
    1075             {
    1076               break _block2__branch7;
     1135            _v_len__body6 = (_v_len37 - _v_len38);
     1136            if (_v_deref__item8.symbolAt ((0 + 1)))
     1137            {
     1138              break _block2__branch8;
     1139            }
     1140            Expr _v_deref__deref__item8 = Expr.empty;
     1141            _v_deref__deref__item8 = (Expr) _v_deref__item8.at ((0 + 1));
     1142            int _v_len39;
     1143            _v_len39 = _v_deref__deref__item8.getLen ();
     1144            int _v_len40;
     1145            _v_len40 = 0;
     1146            if (_v_len39 < _v_len40)
     1147            {
     1148              break _block2__branch8;
    10771149            }
    10781150            int _v_len__label;
    1079             _v_len__label = (_v_len37 - _v_len38);
    1080             if (!_c_39.termEq (_v_deref__item7, 0))
    1081             {
    1082               break _block2__branch7;
     1151            _v_len__label = (_v_len39 - _v_len40);
     1152            if (!_c_42.termEq (_v_deref__item8, 0))
     1153            {
     1154              break _block2__branch8;
    10831155            }
    10841156            Expr _ve_body = Expr.empty;
    1085             _ve_body = new Expr (_v_deref__item7, (0 + 1 + 1), _v_len__body6);
     1157            _ve_body = new Expr (_v_deref__item8, (0 + 1 + 1), _v_len__body6);
    10861158            Expr _ve_label = Expr.empty;
    1087             _ve_label = new Expr (_v_deref__deref__item7, 0, _v_len__label);
     1159            _ve_label = new Expr (_v_deref__deref__item8, 0, _v_len__label);
    10881160            Result _ge_auxcall23 = new Result ();
    10891161            ASAIL_To_CPP (_ve_body, _ge_auxcall23);
    10901162            Result _ge_auxcall24 = new Result ();
    1091             org.refal.plus.library.CppMangle.Rfp2Cpp (new Expr(new Expr (_c_39, _ve_label)), _ge_auxcall24);
    1092             Expr[] _va_24 = { _c_36 , new Expr(_ge_auxcall23.getExpr ()) , _c_8 };
    1093             Expr[] _va_25 = { _c_39 , _ge_auxcall24.getExpr () , _c_40 };
    1094             _ve_cpp__item = new Expr (new Expr(Expr.concat (_va_24)), new Expr(Expr.concat (_va_25)));
    1095             break _block2;
    1096           }
    1097           _block2__branch8: {
    1098             if (_vt_item.symbolAt (0))
    1099             {
    1100               break _block2__branch8;
    1101             }
    1102             Expr _v_deref__item8 = Expr.empty;
    1103             _v_deref__item8 = (Expr) _vt_item.at (0);
    1104             int _v_len39;
    1105             _v_len39 = _v_deref__item8.getLen ();
    1106             int _v_len40;
    1107             _v_len40 = 1;
    1108             if (_v_len39 < _v_len40)
    1109             {
    1110               break _block2__branch8;
    1111             }
    1112             int _v_len__body7;
    1113             _v_len__body7 = (_v_len39 - _v_len40);
    1114             if (!_c_42.termEq (_v_deref__item8, 0))
    1115             {
    1116               break _block2__branch8;
    1117             }
    1118             Expr _ve_body = Expr.empty;
    1119             _ve_body = new Expr (_v_deref__item8, (0 + 1), _v_len__body7);
    1120             Result _ge_auxcall25 = new Result ();
    1121             ASAIL_To_CPP (_ve_body, _ge_auxcall25);
    1122             Expr[] _va_26 = { _c_36 , new Expr(_ge_auxcall25.getExpr ()) , _c_8 };
    1123             _ve_cpp__item = new Expr (_c_43, new Expr(Expr.concat (_va_26)));
     1163            org.refal.plus.library.CppMangle.Rfp2Cpp (new Expr(new Expr (_c_42, _ve_label)), _ge_auxcall24);
     1164            Expr[] _va_27 = { _c_39 , new Expr(_ge_auxcall23.getExpr ()) , _c_8 };
     1165            Expr[] _va_28 = { _c_42 , _ge_auxcall24.getExpr () , _c_43 };
     1166            _ve_cpp__item = new Expr (new Expr(Expr.concat (_va_27)), new Expr(Expr.concat (_va_28)));
    11241167            break _block2;
    11251168          }
     
    11391182              break _block2__branch9;
    11401183            }
     1184            int _v_len__body7;
     1185            _v_len__body7 = (_v_len41 - _v_len42);
     1186            if (!_c_45.termEq (_v_deref__item9, 0))
     1187            {
     1188              break _block2__branch9;
     1189            }
     1190            Expr _ve_body = Expr.empty;
     1191            _ve_body = new Expr (_v_deref__item9, (0 + 1), _v_len__body7);
     1192            Result _ge_auxcall25 = new Result ();
     1193            ASAIL_To_CPP (_ve_body, _ge_auxcall25);
     1194            Expr[] _va_29 = { _c_39 , new Expr(_ge_auxcall25.getExpr ()) , _c_8 };
     1195            _ve_cpp__item = new Expr (_c_46, new Expr(Expr.concat (_va_29)));
     1196            break _block2;
     1197          }
     1198          _block2__branch10: {
     1199            if (_vt_item.symbolAt (0))
     1200            {
     1201              break _block2__branch10;
     1202            }
     1203            Expr _v_deref__item10 = Expr.empty;
     1204            _v_deref__item10 = (Expr) _vt_item.at (0);
     1205            int _v_len43;
     1206            _v_len43 = _v_deref__item10.getLen ();
     1207            int _v_len44;
     1208            _v_len44 = 1;
     1209            if (_v_len43 < _v_len44)
     1210            {
     1211              break _block2__branch10;
     1212            }
    11411213            int _v_len__body8;
    1142             _v_len__body8 = (_v_len41 - _v_len42);
    1143             if (!_c_44.termEq (_v_deref__item9, 0))
    1144             {
    1145               break _block2__branch9;
     1214            _v_len__body8 = (_v_len43 - _v_len44);
     1215            if (!_c_47.termEq (_v_deref__item10, 0))
     1216            {
     1217              break _block2__branch10;
    11461218            }
    11471219            Expr _ve_body = Expr.empty;
    1148             _ve_body = new Expr (_v_deref__item9, (0 + 1), _v_len__body8);
     1220            _ve_body = new Expr (_v_deref__item10, (0 + 1), _v_len__body8);
    11491221            Result _ge_auxcall26 = new Result ();
    11501222            ASAIL_To_CPP (_ve_body, _ge_auxcall26);
    1151             Expr[] _va_27 = { _c_36 , new Expr(new Expr (_c_45, _ge_auxcall26.getExpr ())) , _c_8 };
    1152             _ve_cpp__item = new Expr (_c_46, new Expr(Expr.concat (_va_27)));
     1223            Expr[] _va_30 = { _c_39 , new Expr(new Expr (_c_48, _ge_auxcall26.getExpr ())) , _c_8 };
     1224            _ve_cpp__item = new Expr (_c_49, new Expr(Expr.concat (_va_30)));
    11531225            break _block2;
    11541226          }
    1155           _block2__branch10: {
    1156             if (!_vt_item.termEq (_c_47, 0))
    1157             {
    1158               break _block2__branch10;
     1227          _block2__branch11: {
     1228            if (!_vt_item.termEq (_c_50, 0))
     1229            {
     1230              break _block2__branch11;
    11591231            }
    11601232            Expr _ve_trace__exit = Expr.empty;
     
    11631235                Result _v_Get2 = new Result ();
    11641236                org.refal.plus.library.Box.Get (Current_Trace, _v_Get2);
    1165                 int _v_len43;
    1166                 _v_len43 = _v_Get2.getExpr ().getLen ();
    1167                 int _v_len44;
    1168                 _v_len44 = 1;
    1169                 if (_v_len43 < _v_len44)
     1237                int _v_len45;
     1238                _v_len45 = _v_Get2.getExpr ().getLen ();
     1239                int _v_len46;
     1240                _v_len46 = 1;
     1241                if (_v_len45 < _v_len46)
    11701242                {
    11711243                  break _block10__branch1;
    11721244                }
    11731245                int _v_len__name2;
    1174                 _v_len__name2 = (_v_len43 - _v_len44);
     1246                _v_len__name2 = (_v_len45 - _v_len46);
    11751247                if (_v_Get2.getExpr ().symbolAt ((0 + _v_len__name2)))
    11761248                {
     
    11791251                Expr _v_deref__Get2 = Expr.empty;
    11801252                _v_deref__Get2 = (Expr) _v_Get2.getExpr ().at ((0 + _v_len__name2));
    1181                 int _v_len45;
    1182                 _v_len45 = _v_deref__Get2.getLen ();
    1183                 int _v_len46;
    1184                 _v_len46 = 0;
    1185                 if (_v_len45 < _v_len46)
     1253                int _v_len47;
     1254                _v_len47 = _v_deref__Get2.getLen ();
     1255                int _v_len48;
     1256                _v_len48 = 0;
     1257                if (_v_len47 < _v_len48)
    11861258                {
    11871259                  break _block10__branch1;
    11881260                }
    11891261                int _v_len__ress2;
    1190                 _v_len__ress2 = (_v_len45 - _v_len46);
     1262                _v_len__ress2 = (_v_len47 - _v_len48);
    11911263                Expr _ve_name = Expr.empty;
    11921264                _ve_name = new Expr (_v_Get2.getExpr (), 0, _v_len__name2);
    11931265                Expr _ve_ress = Expr.empty;
    11941266                _ve_ress = new Expr (_v_deref__Get2, 0, _v_len__ress2);
    1195                 Result _va_28 = new Result ();
    1196                 Trace_Fail (_ve_name, _va_28);
    1197                 _ve_trace__exit = _va_28.getExpr ();
     1267                Result _va_31 = new Result ();
     1268                Trace_Fail (_ve_name, _va_31);
     1269                _ve_trace__exit = _va_31.getExpr ();
    11981270                break _block10;
    11991271              }
    12001272              _ve_trace__exit = Expr.empty;
    12011273            }
    1202             _ve_cpp__item = new Expr (_ve_trace__exit, _c_48);
     1274            _ve_cpp__item = new Expr (_ve_trace__exit, _c_51);
    12031275            break _block2;
    12041276          }
    1205           _block2__branch11: {
    1206             if (!_vt_item.termEq (_c_49, 0))
    1207             {
    1208               break _block2__branch11;
    1209             }
    1210             _ve_cpp__item = _c_50;
     1277          _block2__branch12: {
     1278            if (!_vt_item.termEq (_c_52, 0))
     1279            {
     1280              break _block2__branch12;
     1281            }
     1282            _ve_cpp__item = _c_53;
    12111283            break _block2;
    12121284          }
    1213           _block2__branch12: {
     1285          _block2__branch13: {
    12141286            if (_vt_item.symbolAt (0))
    12151287            {
    1216               break _block2__branch12;
    1217             }
    1218             Expr _v_deref__item10 = Expr.empty;
    1219             _v_deref__item10 = (Expr) _vt_item.at (0);
    1220             int _v_len47;
    1221             _v_len47 = _v_deref__item10.getLen ();
    1222             int _v_len48;
    1223             _v_len48 = 4;
    1224             if (_v_len47 < _v_len48)
    1225             {
    1226               break _block2__branch12;
     1288              break _block2__branch13;
     1289            }
     1290            Expr _v_deref__item11 = Expr.empty;
     1291            _v_deref__item11 = (Expr) _vt_item.at (0);
     1292            int _v_len49;
     1293            _v_len49 = _v_deref__item11.getLen ();
     1294            int _v_len50;
     1295            _v_len50 = 4;
     1296            if (_v_len49 < _v_len50)
     1297            {
     1298              break _block2__branch13;
    12271299            }
    12281300            int _v_len__expr;
    1229             _v_len__expr = (_v_len47 - _v_len48);
    1230             if (_v_deref__item10.symbolAt ((0 + 1 + _v_len__expr)))
    1231             {
    1232               break _block2__branch12;
    1233             }
    1234             Expr _v_deref__deref__item10 = Expr.empty;
    1235             _v_deref__deref__item10 = (Expr) _v_deref__item10.at ((0 + 1 + _v_len__expr));
    1236             int _v_len49;
    1237             _v_len49 = _v_deref__deref__item10.getLen ();
    1238             int _v_len50;
    1239             _v_len50 = 0;
    1240             if (_v_len49 < _v_len50)
    1241             {
    1242               break _block2__branch12;
     1301            _v_len__expr = (_v_len49 - _v_len50);
     1302            if (_v_deref__item11.symbolAt ((0 + 1 + _v_len__expr)))
     1303            {
     1304              break _block2__branch13;
     1305            }
     1306            Expr _v_deref__deref__item11 = Expr.empty;
     1307            _v_deref__deref__item11 = (Expr) _v_deref__item11.at ((0 + 1 + _v_len__expr));
     1308            int _v_len51;
     1309            _v_len51 = _v_deref__deref__item11.getLen ();
     1310            int _v_len52;
     1311            _v_len52 = 0;
     1312            if (_v_len51 < _v_len52)
     1313            {
     1314              break _block2__branch13;
    12431315            }
    12441316            int _v_len__min;
    1245             _v_len__min = (_v_len49 - _v_len50);
    1246             if (!_c_51.termEq (_v_deref__item10, 0))
    1247             {
    1248               break _block2__branch12;
     1317            _v_len__min = (_v_len51 - _v_len52);
     1318            if (!_c_54.termEq (_v_deref__item11, 0))
     1319            {
     1320              break _block2__branch13;
    12491321            }
    12501322            Expr _ve_expr = Expr.empty;
    1251             _ve_expr = new Expr (_v_deref__item10, (0 + 1), _v_len__expr);
     1323            _ve_expr = new Expr (_v_deref__item11, (0 + 1), _v_len__expr);
    12521324            Expr _vt_var1 = Expr.empty;
    1253             _vt_var1 = new Expr (_v_deref__item10, (0 + 1 + _v_len__expr + 1), 1);
     1325            _vt_var1 = new Expr (_v_deref__item11, (0 + 1 + _v_len__expr + 1), 1);
    12541326            Expr _vt_var2 = Expr.empty;
    1255             _vt_var2 = new Expr (_v_deref__item10, (0 + 1 + _v_len__expr + 1 + 1), 1);
     1327            _vt_var2 = new Expr (_v_deref__item11, (0 + 1 + _v_len__expr + 1 + 1), 1);
    12561328            Expr _ve_min = Expr.empty;
    1257             _ve_min = new Expr (_v_deref__deref__item10, 0, _v_len__min);
     1329            _ve_min = new Expr (_v_deref__deref__item11, 0, _v_len__min);
    12581330            Result _ge_auxcall27 = new Result ();
    12591331            Expr_Ref_To_CPP (_ve_expr, _ge_auxcall27);
     
    12641336            Result _ge_auxcall30 = new Result ();
    12651337            org.refal.plus.library.CppMangle.Rfp2Cpp (_vt_var2, _ge_auxcall30);
    1266             Expr[] _va_29 = { _c_52 , _ge_auxcall27.getExpr () , _c_30 , _ge_auxcall28.getExpr () , _c_30 , _ge_auxcall29.getExpr () , _c_30 , _ge_auxcall30.getExpr () , _c_6 };
    1267             _ve_cpp__item = new Expr(Expr.concat (_va_29));
     1338            Expr[] _va_32 = { _c_55 , _ge_auxcall27.getExpr () , _c_33 , _ge_auxcall28.getExpr () , _c_33 , _ge_auxcall29.getExpr () , _c_33 , _ge_auxcall30.getExpr () , _c_6 };
     1339            _ve_cpp__item = new Expr(Expr.concat (_va_32));
    12681340            break _block2;
    12691341          }
    1270           _block2__branch13: {
     1342          _block2__branch14: {
    12711343            if (_vt_item.symbolAt (0))
    12721344            {
    1273               break _block2__branch13;
    1274             }
    1275             Expr _v_deref__item11 = Expr.empty;
    1276             _v_deref__item11 = (Expr) _vt_item.at (0);
    1277             int _v_len51;
    1278             _v_len51 = _v_deref__item11.getLen ();
    1279             int _v_len52;
    1280             _v_len52 = 4;
    1281             if (_v_len51 < _v_len52)
    1282             {
    1283               break _block2__branch13;
     1345              break _block2__branch14;
     1346            }
     1347            Expr _v_deref__item12 = Expr.empty;
     1348            _v_deref__item12 = (Expr) _vt_item.at (0);
     1349            int _v_len53;
     1350            _v_len53 = _v_deref__item12.getLen ();
     1351            int _v_len54;
     1352            _v_len54 = 4;
     1353            if (_v_len53 < _v_len54)
     1354            {
     1355              break _block2__branch14;
    12841356            }
    12851357            int _v_len__expr2;
    1286             _v_len__expr2 = (_v_len51 - _v_len52);
    1287             if (_v_deref__item11.symbolAt ((0 + 1 + _v_len__expr2)))
    1288             {
    1289               break _block2__branch13;
    1290             }
    1291             Expr _v_deref__deref__item11 = Expr.empty;
    1292             _v_deref__deref__item11 = (Expr) _v_deref__item11.at ((0 + 1 + _v_len__expr2));
    1293             int _v_len53;
    1294             _v_len53 = _v_deref__deref__item11.getLen ();
    1295             int _v_len54;
    1296             _v_len54 = 0;
    1297             if (_v_len53 < _v_len54)
    1298             {
    1299               break _block2__branch13;
     1358            _v_len__expr2 = (_v_len53 - _v_len54);
     1359            if (_v_deref__item12.symbolAt ((0 + 1 + _v_len__expr2)))
     1360            {
     1361              break _block2__branch14;
     1362            }
     1363            Expr _v_deref__deref__item12 = Expr.empty;
     1364            _v_deref__deref__item12 = (Expr) _v_deref__item12.at ((0 + 1 + _v_len__expr2));
     1365            int _v_len55;
     1366            _v_len55 = _v_deref__deref__item12.getLen ();
     1367            int _v_len56;
     1368            _v_len56 = 0;
     1369            if (_v_len55 < _v_len56)
     1370            {
     1371              break _block2__branch14;
    13001372            }
    13011373            int _v_len__min2;
    1302             _v_len__min2 = (_v_len53 - _v_len54);
    1303             if (!_c_53.termEq (_v_deref__item11, 0))
    1304             {
    1305               break _block2__branch13;
     1374            _v_len__min2 = (_v_len55 - _v_len56);
     1375            if (!_c_56.termEq (_v_deref__item12, 0))
     1376            {
     1377              break _block2__branch14;
    13061378            }
    13071379            Expr _ve_expr = Expr.empty;
    1308             _ve_expr = new Expr (_v_deref__item11, (0 + 1), _v_len__expr2);
     1380            _ve_expr = new Expr (_v_deref__item12, (0 + 1), _v_len__expr2);
    13091381            Expr _vt_var1 = Expr.empty;
    1310             _vt_var1 = new Expr (_v_deref__item11, (0 + 1 + _v_len__expr2 + 1), 1);
     1382            _vt_var1 = new Expr (_v_deref__item12, (0 + 1 + _v_len__expr2 + 1), 1);
    13111383            Expr _vt_var2 = Expr.empty;
    1312             _vt_var2 = new Expr (_v_deref__item11, (0 + 1 + _v_len__expr2 + 1 + 1), 1);
     1384            _vt_var2 = new Expr (_v_deref__item12, (0 + 1 + _v_len__expr2 + 1 + 1), 1);
    13131385            Expr _ve_min = Expr.empty;
    1314             _ve_min = new Expr (_v_deref__deref__item11, 0, _v_len__min2);
     1386            _ve_min = new Expr (_v_deref__deref__item12, 0, _v_len__min2);
    13151387            Result _ge_auxcall31 = new Result ();
    13161388            Expr_Ref_To_CPP (_ve_expr, _ge_auxcall31);
     
    13211393            Result _ge_auxcall34 = new Result ();
    13221394            org.refal.plus.library.CppMangle.Rfp2Cpp (_vt_var2, _ge_auxcall34);
    1323             Expr[] _va_30 = { _c_54 , _ge_auxcall31.getExpr () , _c_30 , _ge_auxcall32.getExpr () , _c_30 , _ge_auxcall33.getExpr () , _c_30 , _ge_auxcall34.getExpr () , _c_6 };
    1324             _ve_cpp__item = new Expr(Expr.concat (_va_30));
     1395            Expr[] _va_33 = { _c_57 , _ge_auxcall31.getExpr () , _c_33 , _ge_auxcall32.getExpr () , _c_33 , _ge_auxcall33.getExpr () , _c_33 , _ge_auxcall34.getExpr () , _c_6 };
     1396            _ve_cpp__item = new Expr(Expr.concat (_va_33));
    13251397            break _block2;
    13261398          }
    1327           _block2__branch14: {
     1399          _block2__branch15: {
    13281400            if (_vt_item.symbolAt (0))
    13291401            {
    1330               break _block2__branch14;
    1331             }
    1332             Expr _v_deref__item12 = Expr.empty;
    1333             _v_deref__item12 = (Expr) _vt_item.at (0);
    1334             int _v_len55;
    1335             _v_len55 = _v_deref__item12.getLen ();
    1336             int _v_len56;
    1337             _v_len56 = 2;
    1338             if (_v_len55 < _v_len56)
    1339             {
    1340               break _block2__branch14;
     1402              break _block2__branch15;
     1403            }
     1404            Expr _v_deref__item13 = Expr.empty;
     1405            _v_deref__item13 = (Expr) _vt_item.at (0);
     1406            int _v_len57;
     1407            _v_len57 = _v_deref__item13.getLen ();
     1408            int _v_len58;
     1409            _v_len58 = 2;
     1410            if (_v_len57 < _v_len58)
     1411            {
     1412              break _block2__branch15;
    13411413            }
    13421414            int _v_len__expr3;
    1343             _v_len__expr3 = (_v_len55 - _v_len56);
    1344             if (!_c_55.termEq (_v_deref__item12, 0))
    1345             {
    1346               break _block2__branch14;
     1415            _v_len__expr3 = (_v_len57 - _v_len58);
     1416            if (!_c_58.termEq (_v_deref__item13, 0))
     1417            {
     1418              break _block2__branch15;
    13471419            }
    13481420            Expr _vt_var = Expr.empty;
    1349             _vt_var = new Expr (_v_deref__item12, (0 + 1), 1);
     1421            _vt_var = new Expr (_v_deref__item13, (0 + 1), 1);
    13501422            Expr _ve_expr = Expr.empty;
    1351             _ve_expr = new Expr (_v_deref__item12, (0 + 1 + 1), _v_len__expr3);
     1423            _ve_expr = new Expr (_v_deref__item13, (0 + 1 + 1), _v_len__expr3);
    13521424            if (_vt_var.symbolAt (0))
    13531425            {
    1354               break _block2__branch14;
     1426              break _block2__branch15;
    13551427            }
    13561428            Expr _v_deref__var = Expr.empty;
    13571429            _v_deref__var = (Expr) _vt_var.at (0);
    1358             int _v_len57;
    1359             _v_len57 = _v_deref__var.getLen ();
    1360             int _v_len58;
    1361             _v_len58 = 1;
    1362             if (_v_len57 < _v_len58)
    1363             {
    1364               break _block2__branch14;
    1365             }
    1366             int _v_len___dollar_tmp_m_190_m_42;
    1367             _v_len___dollar_tmp_m_190_m_42 = (_v_len57 - _v_len58);
     1430            int _v_len59;
     1431            _v_len59 = _v_deref__var.getLen ();
     1432            int _v_len60;
     1433            _v_len60 = 1;
     1434            if (_v_len59 < _v_len60)
     1435            {
     1436              break _block2__branch15;
     1437            }
     1438            int _v_len___dollar_tmp_m_195_m_42;
     1439            _v_len___dollar_tmp_m_195_m_42 = (_v_len59 - _v_len60);
    13681440            if (!_c_1.termEq (_v_deref__var, 0))
    13691441            {
    1370               break _block2__branch14;
    1371             }
    1372             Expr _ve__dollar_tmp_m_190_m_42 = Expr.empty;
    1373             _ve__dollar_tmp_m_190_m_42 = new Expr (_v_deref__var, (0 + 1), _v_len___dollar_tmp_m_190_m_42);
     1442              break _block2__branch15;
     1443            }
     1444            Expr _ve__dollar_tmp_m_195_m_42 = Expr.empty;
     1445            _ve__dollar_tmp_m_195_m_42 = new Expr (_v_deref__var, (0 + 1), _v_len___dollar_tmp_m_195_m_42);
    13741446            Result _ge_auxcall35 = new Result ();
    13751447            org.refal.plus.library.CppMangle.Rfp2Cpp (_vt_var, _ge_auxcall35);
    13761448            Result _ge_auxcall36 = new Result ();
    13771449            Expr_Int_To_CPP (_ve_expr, _ge_auxcall36);
    1378             Expr[] _va_31 = { _ge_auxcall35.getExpr () , _c_13 , _ge_auxcall36.getExpr () , _c_12 };
    1379             _ve_cpp__item = new Expr(Expr.concat (_va_31));
     1450            Expr[] _va_34 = { _ge_auxcall35.getExpr () , _c_14 , _ge_auxcall36.getExpr () , _c_13 };
     1451            _ve_cpp__item = new Expr(Expr.concat (_va_34));
    13801452            break _block2;
    13811453          }
    1382           _block2__branch15: {
     1454          _block2__branch16: {
    13831455            if (_vt_item.symbolAt (0))
    13841456            {
    1385               break _block2__branch15;
    1386             }
    1387             Expr _v_deref__item13 = Expr.empty;
    1388             _v_deref__item13 = (Expr) _vt_item.at (0);
    1389             int _v_len59;
    1390             _v_len59 = _v_deref__item13.getLen ();
    1391             int _v_len60;
    1392             _v_len60 = 2;
    1393             if (_v_len59 < _v_len60)
    1394             {
    1395               break _block2__branch15;
     1457              break _block2__branch16;
     1458            }
     1459            Expr _v_deref__item14 = Expr.empty;
     1460            _v_deref__item14 = (Expr) _vt_item.at (0);
     1461            int _v_len61;
     1462            _v_len61 = _v_deref__item14.getLen ();
     1463            int _v_len62;
     1464            _v_len62 = 2;
     1465            if (_v_len61 < _v_len62)
     1466            {
     1467              break _block2__branch16;
    13961468            }
    13971469            int _v_len__expr4;
    1398             _v_len__expr4 = (_v_len59 - _v_len60);
    1399             if (!_c_55.termEq (_v_deref__item13, 0))
    1400             {
    1401               break _block2__branch15;
     1470            _v_len__expr4 = (_v_len61 - _v_len62);
     1471            if (!_c_58.termEq (_v_deref__item14, 0))
     1472            {
     1473              break _block2__branch16;
    14021474            }
    14031475            Expr _vt_var = Expr.empty;
    1404             _vt_var = new Expr (_v_deref__item13, (0 + 1), 1);
     1476            _vt_var = new Expr (_v_deref__item14, (0 + 1), 1);
    14051477            Expr _ve_expr = Expr.empty;
    1406             _ve_expr = new Expr (_v_deref__item13, (0 + 1 + 1), _v_len__expr4);
     1478            _ve_expr = new Expr (_v_deref__item14, (0 + 1 + 1), _v_len__expr4);
    14071479            Result _ge_auxcall37 = new Result ();
    14081480            org.refal.plus.library.CppMangle.Rfp2Cpp (_vt_var, _ge_auxcall37);
    14091481            Result _ge_auxcall38 = new Result ();
    14101482            Expr_Ref_To_CPP (_ve_expr, _ge_auxcall38);
    1411             Expr[] _va_32 = { _ge_auxcall37.getExpr () , _c_13 , _ge_auxcall38.getExpr () , _c_12 };
    1412             _ve_cpp__item = new Expr(Expr.concat (_va_32));
     1483            Expr[] _va_35 = { _ge_auxcall37.getExpr () , _c_14 , _ge_auxcall38.getExpr () , _c_13 };
     1484            _ve_cpp__item = new Expr(Expr.concat (_va_35));
    14131485            break _block2;
    14141486          }
    1415           _block2__branch16: {
     1487          _block2__branch17: {
    14161488            if (_vt_item.symbolAt (0))
    14171489            {
    1418               break _block2__branch16;
    1419             }
    1420             Expr _v_deref__item14 = Expr.empty;
    1421             _v_deref__item14 = (Expr) _vt_item.at (0);
    1422             if (_v_deref__item14.getLen () != 2)
    1423             {
    1424               break _block2__branch16;
    1425             }
    1426             if (!_c_56.termEq (_v_deref__item14, 0))
    1427             {
    1428               break _block2__branch16;
     1490              break _block2__branch17;
     1491            }
     1492            Expr _v_deref__item15 = Expr.empty;
     1493            _v_deref__item15 = (Expr) _vt_item.at (0);
     1494            if (_v_deref__item15.getLen () != 2)
     1495            {
     1496              break _block2__branch17;
     1497            }
     1498            if (!_c_59.termEq (_v_deref__item15, 0))
     1499            {
     1500              break _block2__branch17;
    14291501            }
    14301502            Expr _vt_var = Expr.empty;
    1431             _vt_var = new Expr (_v_deref__item14, (0 + 1), 1);
     1503            _vt_var = new Expr (_v_deref__item15, (0 + 1), 1);
    14321504            if (_vt_var.symbolAt (0))
    14331505            {
    1434               break _block2__branch16;
     1506              break _block2__branch17;
    14351507            }
    14361508            Expr _v_deref__var2 = Expr.empty;
    14371509            _v_deref__var2 = (Expr) _vt_var.at (0);
    1438             int _v_len61;
    1439             _v_len61 = _v_deref__var2.getLen ();
    1440             int _v_len62;
    1441             _v_len62 = 1;
    1442             if (_v_len61 < _v_len62)
    1443             {
    1444               break _block2__branch16;
    1445             }
    1446             int _v_len___dollar_tmp_m_194_m_33;
    1447             _v_len___dollar_tmp_m_194_m_33 = (_v_len61 - _v_len62);
     1510            int _v_len63;
     1511            _v_len63 = _v_deref__var2.getLen ();
     1512            int _v_len64;
     1513            _v_len64 = 1;
     1514            if (_v_len63 < _v_len64)
     1515            {
     1516              break _block2__branch17;
     1517            }
     1518            int _v_len___dollar_tmp_m_199_m_33;
     1519            _v_len___dollar_tmp_m_199_m_33 = (_v_len63 - _v_len64);
    14481520            if (!_c_1.termEq (_v_deref__var2, 0))
    14491521            {
    1450               break _block2__branch16;
    1451             }
    1452             Expr _ve__dollar_tmp_m_194_m_33 = Expr.empty;
    1453             _ve__dollar_tmp_m_194_m_33 = new Expr (_v_deref__var2, (0 + 1), _v_len___dollar_tmp_m_194_m_33);
     1522              break _block2__branch17;
     1523            }
     1524            Expr _ve__dollar_tmp_m_199_m_33 = Expr.empty;
     1525            _ve__dollar_tmp_m_199_m_33 = new Expr (_v_deref__var2, (0 + 1), _v_len___dollar_tmp_m_199_m_33);
    14541526            Result _ge_auxcall39 = new Result ();
    14551527            org.refal.plus.library.CppMangle.Rfp2Cpp (_vt_var, _ge_auxcall39);
    1456             Expr[] _va_33 = { _c_57 , _ge_auxcall39.getExpr () , _c_12 };
    1457             _ve_cpp__item = new Expr(Expr.concat (_va_33));
     1528            Expr[] _va_36 = { _c_60 , _ge_auxcall39.getExpr () , _c_13 };
     1529            _ve_cpp__item = new Expr(Expr.concat (_va_36));
    14581530            break _block2;
    14591531          }
    1460           _block2__branch17: {
     1532          _block2__branch18: {
    14611533            if (_vt_item.symbolAt (0))
    14621534            {
    1463               break _block2__branch17;
    1464             }
    1465             Expr _v_deref__item15 = Expr.empty;
    1466             _v_deref__item15 = (Expr) _vt_item.at (0);
    1467             if (_v_deref__item15.getLen () != 3)
    1468             {
    1469               break _block2__branch17;
    1470             }
    1471             if (!_c_56.termEq (_v_deref__item15, 0))
    1472             {
    1473               break _block2__branch17;
    1474             }
    1475             if (!_v_deref__item15.symbolAt ((0 + 1)))
    1476             {
    1477               break _block2__branch17;
     1535              break _block2__branch18;
     1536            }
     1537            Expr _v_deref__item16 = Expr.empty;
     1538            _v_deref__item16 = (Expr) _vt_item.at (0);
     1539            if (_v_deref__item16.getLen () != 3)
     1540            {
     1541              break _block2__branch18;
     1542            }
     1543            if (!_c_59.termEq (_v_deref__item16, 0))
     1544            {
     1545              break _block2__branch18;
     1546            }
     1547            if (!_v_deref__item16.symbolAt ((0 + 1)))
     1548            {
     1549              break _block2__branch18;
    14781550            }
    14791551            Expr _vs_type = Expr.empty;
    1480             _vs_type = new Expr (_v_deref__item15, (0 + 1), 1);
     1552            _vs_type = new Expr (_v_deref__item16, (0 + 1), 1);
    14811553            Expr _vt_var = Expr.empty;
    1482             _vt_var = new Expr (_v_deref__item15, (0 + 1 + 1), 1);
     1554            _vt_var = new Expr (_v_deref__item16, (0 + 1 + 1), 1);
    14831555            Result _ge_auxcall40 = new Result ();
    14841556            org.refal.plus.library.CppMangle.Rfp2Cpp (_vt_var, _ge_auxcall40);
    1485             Expr[] _va_34 = { _c_58 , _ge_auxcall40.getExpr () , _c_12 };
    1486             _ve_cpp__item = new Expr(Expr.concat (_va_34));
    1487             break _block2;
    1488           }
    1489           _block2__branch18: {
    1490             if (_vt_item.symbolAt (0))
    1491             {
    1492               break _block2__branch18;
    1493             }
    1494             Expr _v_deref__item16 = Expr.empty;
    1495             _v_deref__item16 = (Expr) _vt_item.at (0);
    1496             if (_v_deref__item16.getLen () != 2)
    1497             {
    1498               break _block2__branch18;
    1499             }
    1500             if (!_c_59.termEq (_v_deref__item16, 0))
    1501             {
    1502               break _block2__branch18;
    1503             }
    1504             Expr _vt_var = Expr.empty;
    1505             _vt_var = new Expr (_v_deref__item16, (0 + 1), 1);
    1506             Result _ge_auxcall41 = new Result ();
    1507             org.refal.plus.library.CppMangle.Rfp2Cpp (_vt_var, _ge_auxcall41);
    1508             _ve_cpp__item = new Expr(new Expr (_ge_auxcall41.getExpr (), _c_60));
     1557            Expr[] _va_37 = { _c_61 , _ge_auxcall40.getExpr () , _c_13 };
     1558            _ve_cpp__item = new Expr(Expr.concat (_va_37));
    15091559            break _block2;
    15101560          }
     
    15201570              break _block2__branch19;
    15211571            }
    1522             if (!_c_61.termEq (_v_deref__item17, 0))
     1572            if (!_c_62.termEq (_v_deref__item17, 0))
    15231573            {
    15241574              break _block2__branch19;
    15251575            }
    1526             Expr _vt_label = Expr.empty;
    1527             _vt_label = new Expr (_v_deref__item17, (0 + 1), 1);
    1528             Result _ge_auxcall42 = new Result ();
    1529             org.refal.plus.library.CppMangle.Rfp2Cpp (new Expr(new Expr (_c_39, _vt_label)), _ge_auxcall42);
    1530             Expr[] _va_35 = { _c_62 , _ge_auxcall42.getExpr () , _c_12 };
    1531             _ve_cpp__item = new Expr(Expr.concat (_va_35));
     1576            Expr _vt_var = Expr.empty;
     1577            _vt_var = new Expr (_v_deref__item17, (0 + 1), 1);
     1578            Result _ge_auxcall41 = new Result ();
     1579            org.refal.plus.library.CppMangle.Rfp2Cpp (_vt_var, _ge_auxcall41);
     1580            _ve_cpp__item = new Expr(new Expr (_ge_auxcall41.getExpr (), _c_63));
    15321581            break _block2;
    15331582          }
     
    15431592              break _block2__branch20;
    15441593            }
    1545             if (!_c_63.termEq (_v_deref__item18, 0))
     1594            if (!_c_64.termEq (_v_deref__item18, 0))
    15461595            {
    15471596              break _block2__branch20;
     
    15491598            Expr _vt_label = Expr.empty;
    15501599            _vt_label = new Expr (_v_deref__item18, (0 + 1), 1);
    1551             Result _ge_auxcall43 = new Result ();
    1552             org.refal.plus.library.CppMangle.Rfp2Cpp (new Expr(new Expr (_c_39, _vt_label)), _ge_auxcall43);
    1553             Expr[] _va_36 = { _c_62 , _ge_auxcall43.getExpr () , _c_12 };
    1554             _ve_cpp__item = new Expr(Expr.concat (_va_36));
     1600            Result _ge_auxcall42 = new Result ();
     1601            org.refal.plus.library.CppMangle.Rfp2Cpp (new Expr(new Expr (_c_42, _vt_label)), _ge_auxcall42);
     1602            Expr[] _va_38 = { _c_65 , _ge_auxcall42.getExpr () , _c_13 };
     1603            _ve_cpp__item = new Expr(Expr.concat (_va_38));
    15551604            break _block2;
    15561605          }
     
    15621611            Expr _v_deref__item19 = Expr.empty;
    15631612            _v_deref__item19 = (Expr) _vt_item.at (0);
    1564             int _v_len63;
    1565             _v_len63 = _v_deref__item19.getLen ();
    1566             int _v_len64;
    1567             _v_len64 = 1;
    1568             if (_v_len63 < _v_len64)
     1613            if (_v_deref__item19.getLen () != 2)
    15691614            {
    15701615              break _block2__branch21;
    15711616            }
    1572             int _v_len__expr5;
    1573             _v_len__expr5 = (_v_len63 - _v_len64);
    1574             if (!_c_21.termEq (_v_deref__item19, 0))
     1617            if (!_c_66.termEq (_v_deref__item19, 0))
    15751618            {
    15761619              break _block2__branch21;
    15771620            }
    1578             Expr _ve_expr = Expr.empty;
    1579             _ve_expr = new Expr (_v_deref__item19, (0 + 1), _v_len__expr5);
    1580             Result _ge_auxcall44 = new Result ();
    1581             Expr_Ref_To_CPP (_ve_expr, _ge_auxcall44);
    1582             Expr[] _va_37 = { _c_64 , _ge_auxcall44.getExpr () , _c_6 };
    1583             _ve_cpp__item = new Expr(Expr.concat (_va_37));
     1621            Expr _vt_label = Expr.empty;
     1622            _vt_label = new Expr (_v_deref__item19, (0 + 1), 1);
     1623            Result _ge_auxcall43 = new Result ();
     1624            org.refal.plus.library.CppMangle.Rfp2Cpp (new Expr(new Expr (_c_42, _vt_label)), _ge_auxcall43);
     1625            Expr[] _va_39 = { _c_65 , _ge_auxcall43.getExpr () , _c_13 };
     1626            _ve_cpp__item = new Expr(Expr.concat (_va_39));
    15841627            break _block2;
    15851628          }
     
    15941637            _v_len65 = _v_deref__item20.getLen ();
    15951638            int _v_len66;
    1596             _v_len66 = 4;
     1639            _v_len66 = 1;
    15971640            if (_v_len65 < _v_len66)
    15981641            {
    15991642              break _block2__branch22;
    16001643            }
     1644            int _v_len__expr5;
     1645            _v_len__expr5 = (_v_len65 - _v_len66);
     1646            if (!_c_23.termEq (_v_deref__item20, 0))
     1647            {
     1648              break _block2__branch22;
     1649            }
     1650            Expr _ve_expr = Expr.empty;
     1651            _ve_expr = new Expr (_v_deref__item20, (0 + 1), _v_len__expr5);
     1652            Result _ge_auxcall44 = new Result ();
     1653            Expr_Ref_To_CPP (_ve_expr, _ge_auxcall44);
     1654            Expr[] _va_40 = { _c_67 , _ge_auxcall44.getExpr () , _c_6 };
     1655            _ve_cpp__item = new Expr(Expr.concat (_va_40));
     1656            break _block2;
     1657          }
     1658          _block2__branch23: {
     1659            if (_vt_item.symbolAt (0))
     1660            {
     1661              break _block2__branch23;
     1662            }
     1663            Expr _v_deref__item21 = Expr.empty;
     1664            _v_deref__item21 = (Expr) _vt_item.at (0);
     1665            int _v_len67;
     1666            _v_len67 = _v_deref__item21.getLen ();
     1667            int _v_len68;
     1668            _v_len68 = 4;
     1669            if (_v_len67 < _v_len68)
     1670            {
     1671              break _block2__branch23;
     1672            }
    16011673            int _v_len__expr6;
    1602             _v_len__expr6 = (_v_len65 - _v_len66);
    1603             if (_v_deref__item20.symbolAt ((0 + 1 + 1)))
    1604             {
    1605               break _block2__branch22;
    1606             }
    1607             if (_v_deref__item20.symbolAt ((0 + 1 + 1 + 1)))
    1608             {
    1609               break _block2__branch22;
    1610             }
    1611             Expr _v_deref__deref__item20 = Expr.empty;
    1612             _v_deref__deref__item20 = (Expr) _v_deref__item20.at ((0 + 1 + 1));
    1613             Expr _v_deref__deref__item202 = Expr.empty;
    1614             _v_deref__deref__item202 = (Expr) _v_deref__item20.at ((0 + 1 + 1 + 1));
    1615             int _v_len67;
    1616             _v_len67 = _v_deref__deref__item202.getLen ();
    1617             int _v_len68;
    1618             _v_len68 = 0;
    1619             if (_v_len67 < _v_len68)
    1620             {
    1621               break _block2__branch22;
    1622             }
    1623             int _v_len__comment;
    1624             _v_len__comment = (_v_len67 - _v_len68);
     1674            _v_len__expr6 = (_v_len67 - _v_len68);
     1675            if (_v_deref__item21.symbolAt ((0 + 1 + 1)))
     1676            {
     1677              break _block2__branch23;
     1678            }
     1679            if (_v_deref__item21.symbolAt ((0 + 1 + 1 + 1)))
     1680            {
     1681              break _block2__branch23;
     1682            }
     1683            Expr _v_deref__deref__item21 = Expr.empty;
     1684            _v_deref__deref__item21 = (Expr) _v_deref__item21.at ((0 + 1 + 1));
     1685            Expr _v_deref__deref__item212 = Expr.empty;
     1686            _v_deref__deref__item212 = (Expr) _v_deref__item21.at ((0 + 1 + 1 + 1));
    16251687            int _v_len69;
    1626             _v_len69 = _v_deref__deref__item20.getLen ();
     1688            _v_len69 = _v_deref__deref__item212.getLen ();
    16271689            int _v_len70;
    16281690            _v_len70 = 0;
    16291691            if (_v_len69 < _v_len70)
    16301692            {
    1631               break _block2__branch22;
     1693              break _block2__branch23;
     1694            }
     1695            int _v_len__comment;
     1696            _v_len__comment = (_v_len69 - _v_len70);
     1697            int _v_len71;
     1698            _v_len71 = _v_deref__deref__item21.getLen ();
     1699            int _v_len72;
     1700            _v_len72 = 0;
     1701            if (_v_len71 < _v_len72)
     1702            {
     1703              break _block2__branch23;
    16321704            }
    16331705            int _v_len__name3;
    1634             _v_len__name3 = (_v_len69 - _v_len70);
    1635             if (!_c_65.eq (_v_deref__item20, 0))
    1636             {
    1637               break _block2__branch22;
     1706            _v_len__name3 = (_v_len71 - _v_len72);
     1707            if (!_c_68.eq (_v_deref__item21, 0))
     1708            {
     1709              break _block2__branch23;
    16381710            }
    16391711            Expr _ve_expr = Expr.empty;
    1640             _ve_expr = new Expr (_v_deref__item20, (0 + 1 + 1 + 1 + 1), _v_len__expr6);
     1712            _ve_expr = new Expr (_v_deref__item21, (0 + 1 + 1 + 1 + 1), _v_len__expr6);
    16411713            Expr _ve_name = Expr.empty;
    1642             _ve_name = new Expr (_v_deref__deref__item20, 0, _v_len__name3);
     1714            _ve_name = new Expr (_v_deref__deref__item21, 0, _v_len__name3);
    16431715            Expr _ve_comment = Expr.empty;
    1644             _ve_comment = new Expr (_v_deref__deref__item202, 0, _v_len__comment);
    1645             int _v_len71;
    1646             _v_len71 = _v_len__name3;
    1647             int _v_len72;
    1648             _v_len72 = 4;
    1649             if (_v_len71 < _v_len72)
     1716            _ve_comment = new Expr (_v_deref__deref__item212, 0, _v_len__comment);
     1717            int _v_len73;
     1718            _v_len73 = _v_len__name3;
     1719            int _v_len74;
     1720            _v_len74 = 4;
     1721            if (_v_len73 < _v_len74)
    16501722            {
    16511723              break _block1__branch1;
    16521724            }
    16531725            int _v_len__n2;
    1654             _v_len__n2 = (_v_len71 - _v_len72);
    1655             if (!_c_18.eq (_ve_name, 0))
     1726            _v_len__n2 = (_v_len73 - _v_len74);
     1727            if (!_c_20.eq (_ve_name, 0))
    16561728            {
    16571729              break _block1__branch1;
     
    16601732            _ve_n = new Expr (_ve_name, (0 + 1 + 1 + 1 + 1), _v_len__n2);
    16611733            Result _ge_auxcall45 = new Result ();
    1662             org.refal.plus.library.List.Intersperse (_c_19, _ve_n, _ge_auxcall45);
     1734            org.refal.plus.library.List.Intersperse (_c_21, _ve_n, _ge_auxcall45);
    16631735            Result _gs_auxcall46 = new Result ();
    16641736            org.refal.plus.library.Convert.ToWord (_ge_auxcall45.getExpr (), _gs_auxcall46);
    1665             Expr[] _va_38 = { _c_67 , new Expr(_gs_auxcall46.getExpr ()) , _c_66 , _ve_expr };
    1666             org.refal.plus.library.Table.Bind (Unavailable_Imports, _ve_name, Expr.concat (_va_38));
     1737            Expr[] _va_41 = { _c_70 , new Expr(_gs_auxcall46.getExpr ()) , _c_69 , _ve_expr };
     1738            org.refal.plus.library.Table.Bind (Unavailable_Imports, _ve_name, Expr.concat (_va_41));
    16671739            _ve_cpp__item = Expr.empty;
    16681740            break _block2;
    16691741          }
    1670           _block2__branch23: {
     1742          _block2__branch24: {
    16711743            if (_vt_item.symbolAt (0))
    16721744            {
    1673               break _block2__branch23;
    1674             }
    1675             Expr _v_deref__item21 = Expr.empty;
    1676             _v_deref__item21 = (Expr) _vt_item.at (0);
    1677             int _v_len73;
    1678             _v_len73 = _v_deref__item21.getLen ();
    1679             int _v_len74;
    1680             _v_len74 = 4;
    1681             if (_v_len73 < _v_len74)
    1682             {
    1683               break _block2__branch23;
     1745              break _block2__branch24;
     1746            }
     1747            Expr _v_deref__item22 = Expr.empty;
     1748            _v_deref__item22 = (Expr) _vt_item.at (0);
     1749            int _v_len75;
     1750            _v_len75 = _v_deref__item22.getLen ();
     1751            int _v_len76;
     1752            _v_len76 = 4;
     1753            if (_v_len75 < _v_len76)
     1754            {
     1755              break _block2__branch24;
    16841756            }
    16851757            int _v_len__expr7;
    1686             _v_len__expr7 = (_v_len73 - _v_len74);
    1687             if (_v_deref__item21.symbolAt ((0 + 1 + 1 + 1)))
    1688             {
    1689               break _block2__branch23;
    1690             }
    1691             Expr _v_deref__deref__item21 = Expr.empty;
    1692             _v_deref__deref__item21 = (Expr) _v_deref__item21.at ((0 + 1 + 1 + 1));
    1693             int _v_len75;
    1694             _v_len75 = _v_deref__deref__item21.getLen ();
    1695             int _v_len76;
    1696             _v_len76 = 0;
    1697             if (_v_len75 < _v_len76)
    1698             {
    1699               break _block2__branch23;
     1758            _v_len__expr7 = (_v_len75 - _v_len76);
     1759            if (_v_deref__item22.symbolAt ((0 + 1 + 1 + 1)))
     1760            {
     1761              break _block2__branch24;
     1762            }
     1763            Expr _v_deref__deref__item22 = Expr.empty;
     1764            _v_deref__deref__item22 = (Expr) _v_deref__item22.at ((0 + 1 + 1 + 1));
     1765            int _v_len77;
     1766            _v_len77 = _v_deref__deref__item22.getLen ();
     1767            int _v_len78;
     1768            _v_len78 = 0;
     1769            if (_v_len77 < _v_len78)
     1770            {
     1771              break _block2__branch24;
    17001772            }
    17011773            int _v_len__comment2;
    1702             _v_len__comment2 = (_v_len75 - _v_len76);
    1703             if (!_c_68.termEq (_v_deref__item21, 0))
    1704             {
    1705               break _block2__branch23;
    1706             }
    1707             if (!_v_deref__item21.symbolAt ((0 + 1)))
    1708             {
    1709               break _block2__branch23;
     1774            _v_len__comment2 = (_v_len77 - _v_len78);
     1775            if (!_c_71.termEq (_v_deref__item22, 0))
     1776            {
     1777              break _block2__branch24;
     1778            }
     1779            if (!_v_deref__item22.symbolAt ((0 + 1)))
     1780            {
     1781              break _block2__branch24;
    17101782            }
    17111783            Expr _vs_linkage = Expr.empty;
    1712             _vs_linkage = new Expr (_v_deref__item21, (0 + 1), 1);
     1784            _vs_linkage = new Expr (_v_deref__item22, (0 + 1), 1);
    17131785            Expr _vt_name = Expr.empty;
    1714             _vt_name = new Expr (_v_deref__item21, (0 + 1 + 1), 1);
     1786            _vt_name = new Expr (_v_deref__item22, (0 + 1 + 1), 1);
    17151787            Expr _ve_expr = Expr.empty;
    1716             _ve_expr = new Expr (_v_deref__item21, (0 + 1 + 1 + 1 + 1), _v_len__expr7);
     1788            _ve_expr = new Expr (_v_deref__item22, (0 + 1 + 1 + 1 + 1), _v_len__expr7);
    17171789            Expr _ve_comment = Expr.empty;
    1718             _ve_comment = new Expr (_v_deref__deref__item21, 0, _v_len__comment2);
     1790            _ve_comment = new Expr (_v_deref__deref__item22, 0, _v_len__comment2);
    17191791            Expr _ge_linkage__5 = Expr.empty;
    17201792            _block11: {
    17211793              _block11__branch1: {
    1722                 if (!_vs_linkage.termEq (_c_22, 0))
     1794                if (!_vs_linkage.termEq (_c_24, 0))
    17231795                {
    17241796                  break _block11__branch1;
    17251797                }
    1726                 _ge_linkage__5 = _c_69;
     1798                _ge_linkage__5 = _c_72;
    17271799                break _block11;
    17281800              }
     
    17301802            }
    17311803            Expr _ve_qualifiers = Expr.empty;
    1732             Expr _ve_n = Expr.empty;
    1733             Expr _gt_name__6 = Expr.empty;
     1804            Expr _ve__dollar_tmp_m_220_m_28 = Expr.empty;
     1805            Expr _vs_name__producer = Expr.empty;
     1806            Expr _ve_name__arg = Expr.empty;
    17341807            _block12: {
    17351808              _block12__branch1: {
     
    17401813                Expr _v_deref__name = Expr.empty;
    17411814                _v_deref__name = (Expr) _vt_name.at (0);
    1742                 int _v_len77;
    1743                 _v_len77 = _v_deref__name.getLen ();
    1744                 int _v_len78;
    1745                 _v_len78 = 1;
    1746                 if (_v_len77 < _v_len78)
     1815                int _v_len79;
     1816                _v_len79 = _v_deref__name.getLen ();
     1817                int _v_len80;
     1818                _v_len80 = 1;
     1819                if (_v_len79 < _v_len80)
    17471820                {
    17481821                  break _block12__branch1;
    17491822                }
    1750                 int _v_len___dollar_tmp_m_213_m_27;
    1751                 _v_len___dollar_tmp_m_213_m_27 = (_v_len77 - _v_len78);
    1752                 if (!_c_70.termEq (_v_deref__name, 0))
     1823                int _v_len___dollar_tmp_m_218_m_27;
     1824                _v_len___dollar_tmp_m_218_m_27 = (_v_len79 - _v_len80);
     1825                if (!_c_11.termEq (_v_deref__name, 0))
    17531826                {
    17541827                  break _block12__branch1;
    17551828                }
    1756                 Expr _ve__dollar_tmp_m_213_m_27 = Expr.empty;
    1757                 _ve__dollar_tmp_m_213_m_27 = new Expr (_v_deref__name, (0 + 1), _v_len___dollar_tmp_m_213_m_27);
     1829                Expr _ve__dollar_tmp_m_218_m_27 = Expr.empty;
     1830                _ve__dollar_tmp_m_218_m_27 = new Expr (_v_deref__name, (0 + 1), _v_len___dollar_tmp_m_218_m_27);
    17581831                Result _ge_auxcall47 = new Result ();
    17591832                org.refal.plus.library.Box.Get (Module_Name, _ge_auxcall47);
    17601833                _ve_qualifiers = _ge_auxcall47.getExpr ();
    1761                 _ve_n = _vt_name;
    1762                 _gt_name__6 = new Expr(_vt_name);
     1834                _ve__dollar_tmp_m_220_m_28 = Expr.empty;
     1835                _vs_name__producer = _c_73;
     1836                _ve_name__arg = _vt_name;
    17631837                break _block12;
    17641838              }
     
    17671841              Extract_Qualifiers (_vt_name, _ge_auxcall48, _ge_auxcall49);
    17681842              _ve_qualifiers = _ge_auxcall48.getExpr ();
    1769               _ve_n = _ge_auxcall49.getExpr ();
    1770               _gt_name__6 = _vt_name;
    1771             }
    1772             org.refal.plus.library.Table.Bind (Locals, new Expr (_c_11, _gt_name__6), Expr.empty);
     1843              _ve__dollar_tmp_m_220_m_28 = _ge_auxcall49.getExpr ();
     1844              _vs_name__producer = _c_74;
     1845              _ve_name__arg = new Expr (_c_12, _vt_name);
     1846            }
     1847            org.refal.plus.library.Table.Bind (Locals, new Expr (_c_12, _vt_name), Expr.empty);
    17731848            Result _ge_auxcall50 = new Result ();
    17741849            Const_Expr_To_CPP (_ve_expr, _ge_auxcall50);
    1775             org.refal.plus.library.Box.Put (Const_Exprs, new Expr(new Expr (_gt_name__6, new Expr(_ge_auxcall50.getExpr ()))));
     1850            org.refal.plus.library.Box.Put (Const_Exprs, new Expr(new Expr (_vt_name, new Expr(_ge_auxcall50.getExpr ()))));
    17761851            Result _ge_auxcall51 = new Result ();
    17771852            Namespace_Control (_ve_qualifiers, _ge_auxcall51);
    17781853            Result _ge_auxcall52 = new Result ();
    1779             org.refal.plus.library.CppMangle.Rfp2Cpp (_ve_n, _ge_auxcall52);
    1780             Expr[] _va_39 = { _ge_linkage__5 , _c_58 , _ge_auxcall52.getExpr () , _c_12 };
    1781             _ve_cpp__item = new Expr (_ge_auxcall51.getExpr (), new Expr(Expr.concat (_va_39)));
     1854            if (!org.refal.plus.library.Apply.Apply (_vs_name__producer, _ve_name__arg, _ge_auxcall52))
     1855            {
     1856              break _block1__branch1;
     1857            }
     1858            Expr[] _va_42 = { _ge_linkage__5 , _c_61 , _ge_auxcall52.getExpr () , _c_13 };
     1859            _ve_cpp__item = new Expr (_ge_auxcall51.getExpr (), new Expr(Expr.concat (_va_42)));
    17821860            break _block2;
    17831861          }
    1784           _block2__branch24: {
     1862          _block2__branch25: {
    17851863            if (_vt_item.symbolAt (0))
    17861864            {
    1787               break _block2__branch24;
    1788             }
    1789             Expr _v_deref__item22 = Expr.empty;
    1790             _v_deref__item22 = (Expr) _vt_item.at (0);
    1791             if (_v_deref__item22.getLen () != 4)
    1792             {
    1793               break _block2__branch24;
    1794             }
    1795             if (!_c_71.termEq (_v_deref__item22, 0))
    1796             {
    1797               break _block2__branch24;
    1798             }
    1799             if (!_v_deref__item22.symbolAt ((0 + 1)))
    1800             {
    1801               break _block2__branch24;
    1802             }
    1803             if (!_v_deref__item22.symbolAt ((0 + 1 + 1)))
    1804             {
    1805               break _block2__branch24;
     1865              break _block2__branch25;
     1866            }
     1867            Expr _v_deref__item23 = Expr.empty;
     1868            _v_deref__item23 = (Expr) _vt_item.at (0);
     1869            if (_v_deref__item23.getLen () != 4)
     1870            {
     1871              break _block2__branch25;
     1872            }
     1873            if (!_c_75.termEq (_v_deref__item23, 0))
     1874            {
     1875              break _block2__branch25;
     1876            }
     1877            if (!_v_deref__item23.symbolAt ((0 + 1)))
     1878            {
     1879              break _block2__branch25;
     1880            }
     1881            if (!_v_deref__item23.symbolAt ((0 + 1 + 1)))
     1882            {
     1883              break _block2__branch25;
    18061884            }
    18071885            Expr _vs_linkage = Expr.empty;
    1808             _vs_linkage = new Expr (_v_deref__item22, (0 + 1), 1);
     1886            _vs_linkage = new Expr (_v_deref__item23, (0 + 1), 1);
    18091887            Expr _vs_tag = Expr.empty;
    1810             _vs_tag = new Expr (_v_deref__item22, (0 + 1 + 1), 1);
     1888            _vs_tag = new Expr (_v_deref__item23, (0 + 1 + 1), 1);
    18111889            Expr _vt_name = Expr.empty;
    1812             _vt_name = new Expr (_v_deref__item22, (0 + 1 + 1 + 1), 1);
    1813             org.refal.plus.library.Table.Bind (Locals, new Expr (_c_11, _vt_name), Expr.empty);
     1890            _vt_name = new Expr (_v_deref__item23, (0 + 1 + 1 + 1), 1);
     1891            org.refal.plus.library.Table.Bind (Locals, new Expr (_c_12, _vt_name), Expr.empty);
    18141892            Expr _ge_linkage__5 = Expr.empty;
    18151893            _block13: {
    18161894              _block13__branch1: {
    1817                 if (!_vs_linkage.termEq (_c_22, 0))
     1895                if (!_vs_linkage.termEq (_c_24, 0))
    18181896                {
    18191897                  break _block13__branch1;
    18201898                }
    1821                 _ge_linkage__5 = _c_69;
     1899                _ge_linkage__5 = _c_72;
    18221900                break _block13;
    18231901              }
     
    18261904            Result _v_ToChars1 = new Result ();
    18271905            org.refal.plus.library.Convert.ToChars (_vs_tag, _v_ToChars1);
    1828             int _v_len79;
    1829             _v_len79 = _v_ToChars1.getExpr ().getLen ();
    1830             int _v_len80;
    1831             _v_len80 = 1;
    1832             if (_v_len79 < _v_len80)
     1906            int _v_len81;
     1907            _v_len81 = _v_ToChars1.getExpr ().getLen ();
     1908            int _v_len82;
     1909            _v_len82 = 1;
     1910            if (_v_len81 < _v_len82)
    18331911            {
    18341912              break _block1__branch1;
    18351913            }
    18361914            int _v_len__2;
    1837             _v_len__2 = (_v_len79 - _v_len80);
     1915            _v_len__2 = (_v_len81 - _v_len82);
    18381916            if (!_v_ToChars1.getExpr ().symbolAt (0))
    18391917            {
     
    18491927            _block14: {
    18501928              _block14__branch1: {
    1851                 if (!_vs_tag.termEq (_c_72, 0))
     1929                if (!_vs_tag.termEq (_c_76, 0))
    18521930                {
    18531931                  break _block14__branch1;
    18541932                }
    1855                 Expr[] _va_40 = { _c_74 , _ve_n.getExpr () , _c_73 };
    1856                 org.refal.plus.library.Box.Put (Const_Exprs, new Expr(new Expr (_vt_name, new Expr(Expr.concat (_va_40)))));
     1933                Expr[] _va_43 = { _c_78 , _ve_n.getExpr () , _c_77 };
     1934                org.refal.plus.library.Box.Put (Const_Exprs, new Expr(new Expr (_vt_name, new Expr(Expr.concat (_va_43)))));
    18571935                break _block14;
    18581936              }
    18591937              Result _ge_auxcall53 = new Result ();
    18601938              org.refal.plus.library.Convert.ToLower (_ve_2, _ge_auxcall53);
    1861               Expr[] _va_41 = { _c_76 , _vs_1 , _ge_auxcall53.getExpr () , _c_75 , _ve_n.getExpr () , _c_73 };
    1862               org.refal.plus.library.Box.Put (Const_Exprs, new Expr(new Expr (_vt_name, new Expr(Expr.concat (_va_41)))));
     1939              Expr[] _va_44 = { _c_80 , _vs_1 , _ge_auxcall53.getExpr () , _c_79 , _ve_n.getExpr () , _c_77 };
     1940              org.refal.plus.library.Box.Put (Const_Exprs, new Expr(new Expr (_vt_name, new Expr(Expr.concat (_va_44)))));
    18631941            }
    18641942            Result _ge_auxcall54 = new Result ();
    18651943            Namespace_Control (_ve_qualifiers.getExpr (), _ge_auxcall54);
    18661944            Result _ge_auxcall55 = new Result ();
    1867             org.refal.plus.library.CppMangle.Rfp2Cpp (_ve_n.getExpr (), _ge_auxcall55);
    1868             Expr[] _va_42 = { _ge_linkage__5 , _c_58 , _ge_auxcall55.getExpr () , _c_12 };
    1869             _ve_cpp__item = new Expr (_ge_auxcall54.getExpr (), new Expr(Expr.concat (_va_42)));
     1945            Name_To_CPP (_c_12, _vt_name, _ge_auxcall55);
     1946            Expr[] _va_45 = { _ge_linkage__5 , _c_61 , _ge_auxcall55.getExpr () , _c_13 };
     1947            _ve_cpp__item = new Expr (_ge_auxcall54.getExpr (), new Expr(Expr.concat (_va_45)));
    18701948            break _block2;
    18711949          }
    1872           _block2__branch25: {
     1950          _block2__branch26: {
    18731951            if (_vt_item.symbolAt (0))
    18741952            {
    1875               break _block2__branch25;
    1876             }
    1877             Expr _v_deref__item23 = Expr.empty;
    1878             _v_deref__item23 = (Expr) _vt_item.at (0);
    1879             if (_v_deref__item23.getLen () != 2)
    1880             {
    1881               break _block2__branch25;
    1882             }
    1883             if (!_c_11.termEq (_v_deref__item23, 0))
    1884             {
    1885               break _block2__branch25;
     1953              break _block2__branch26;
     1954            }
     1955            Expr _v_deref__item24 = Expr.empty;
     1956            _v_deref__item24 = (Expr) _vt_item.at (0);
     1957            if (_v_deref__item24.getLen () != 2)
     1958            {
     1959              break _block2__branch26;
     1960            }
     1961            if (!_c_12.termEq (_v_deref__item24, 0))
     1962            {
     1963              break _block2__branch26;
    18861964            }
    18871965            Expr _vt_name = Expr.empty;
    1888             _vt_name = new Expr (_v_deref__item23, (0 + 1), 1);
     1966            _vt_name = new Expr (_v_deref__item24, (0 + 1), 1);
    18891967            Result _ve_qualifiers = new Result ();
    1890             Result _ve_name = new Result ();
    1891             Extract_Qualifiers (_vt_name, _ve_qualifiers, _ve_name);
     1968            Result _ve__dollar_tmp_m_245_m_54 = new Result ();
     1969            Extract_Qualifiers (_vt_name, _ve_qualifiers, _ve__dollar_tmp_m_245_m_54);
    18921970            Result _ge_auxcall56 = new Result ();
    18931971            Namespace_Control (_ve_qualifiers.getExpr (), _ge_auxcall56);
    18941972            Result _ge_auxcall57 = new Result ();
    1895             org.refal.plus.library.CppMangle.Rfp2Cpp (_ve_name.getExpr (), _ge_auxcall57);
    1896             Expr[] _va_43 = { _c_77 , _ge_auxcall57.getExpr () , _c_12 };
    1897             _ve_cpp__item = new Expr (_ge_auxcall56.getExpr (), new Expr(Expr.concat (_va_43)));
     1973            Name_To_CPP (_c_12, _vt_name, _ge_auxcall57);
     1974            Expr[] _va_46 = { _c_81 , _ge_auxcall57.getExpr () , _c_13 };
     1975            _ve_cpp__item = new Expr (_ge_auxcall56.getExpr (), new Expr(Expr.concat (_va_46)));
    18981976            break _block2;
    18991977          }
    1900           _block2__branch26: {
     1978          _block2__branch27: {
    19011979            if (_vt_item.symbolAt (0))
    19021980            {
    1903               break _block2__branch26;
    1904             }
    1905             Expr _v_deref__item24 = Expr.empty;
    1906             _v_deref__item24 = (Expr) _vt_item.at (0);
    1907             if (_v_deref__item24.getLen () != 2)
    1908             {
    1909               break _block2__branch26;
    1910             }
    1911             if (!_c_78.termEq (_v_deref__item24, 0))
    1912             {
    1913               break _block2__branch26;
     1981              break _block2__branch27;
     1982            }
     1983            Expr _v_deref__item25 = Expr.empty;
     1984            _v_deref__item25 = (Expr) _vt_item.at (0);
     1985            if (_v_deref__item25.getLen () != 2)
     1986            {
     1987              break _block2__branch27;
     1988            }
     1989            if (!_c_27.termEq (_v_deref__item25, 0))
     1990            {
     1991              break _block2__branch27;
    19141992            }
    19151993            Expr _vt_name = Expr.empty;
    1916             _vt_name = new Expr (_v_deref__item24, (0 + 1), 1);
     1994            _vt_name = new Expr (_v_deref__item25, (0 + 1), 1);
    19171995            Result _ve_qualifiers = new Result ();
    1918             Result _ve_name = new Result ();
    1919             Extract_Qualifiers (_vt_name, _ve_qualifiers, _ve_name);
     1996            Result _ve__dollar_tmp_m_249_m_54 = new Result ();
     1997            Extract_Qualifiers (_vt_name, _ve_qualifiers, _ve__dollar_tmp_m_249_m_54);
    19201998            Result _ge_auxcall58 = new Result ();
    19211999            Namespace_Control (_ve_qualifiers.getExpr (), _ge_auxcall58);
    19222000            Result _ge_auxcall59 = new Result ();
    1923             org.refal.plus.library.CppMangle.Rfp2Cpp (_ve_name.getExpr (), _ge_auxcall59);
    1924             Expr[] _va_44 = { _c_79 , _ge_auxcall59.getExpr () , _c_6 };
    1925             _ve_cpp__item = new Expr (_ge_auxcall58.getExpr (), new Expr(Expr.concat (_va_44)));
     2001            Name_To_CPP (_c_27, _vt_name, _ge_auxcall59);
     2002            Expr[] _va_47 = { _c_82 , _ge_auxcall59.getExpr () , _c_6 };
     2003            _ve_cpp__item = new Expr (_ge_auxcall58.getExpr (), new Expr(Expr.concat (_va_47)));
    19262004            break _block2;
    19272005          }
    1928           _block2__branch27: {
     2006          _block2__branch28: {
    19292007            if (_vt_item.symbolAt (0))
    19302008            {
    1931               break _block2__branch27;
    1932             }
    1933             Expr _v_deref__item25 = Expr.empty;
    1934             _v_deref__item25 = (Expr) _vt_item.at (0);
    1935             if (_v_deref__item25.getLen () != 2)
    1936             {
    1937               break _block2__branch27;
    1938             }
    1939             if (!_c_80.termEq (_v_deref__item25, 0))
    1940             {
    1941               break _block2__branch27;
     2009              break _block2__branch28;
     2010            }
     2011            Expr _v_deref__item26 = Expr.empty;
     2012            _v_deref__item26 = (Expr) _vt_item.at (0);
     2013            if (_v_deref__item26.getLen () != 2)
     2014            {
     2015              break _block2__branch28;
     2016            }
     2017            if (!_c_83.termEq (_v_deref__item26, 0))
     2018            {
     2019              break _block2__branch28;
    19422020            }
    19432021            Expr _vt_name = Expr.empty;
    1944             _vt_name = new Expr (_v_deref__item25, (0 + 1), 1);
     2022            _vt_name = new Expr (_v_deref__item26, (0 + 1), 1);
    19452023            org.refal.plus.library.Table.Bind (Externs, _vt_name, Expr.empty);
    19462024            Result _ve_qualifiers = new Result ();
    1947             Result _ve_name = new Result ();
    1948             Extract_Qualifiers (_vt_name, _ve_qualifiers, _ve_name);
     2025            Result _ve__dollar_tmp_m_254_m_54 = new Result ();
     2026            Extract_Qualifiers (_vt_name, _ve_qualifiers, _ve__dollar_tmp_m_254_m_54);
    19492027            Result _ge_auxcall60 = new Result ();
    19502028            Namespace_Control (_ve_qualifiers.getExpr (), _ge_auxcall60);
    19512029            Result _ge_auxcall61 = new Result ();
    1952             org.refal.plus.library.CppMangle.Rfp2Cpp (_ve_name.getExpr (), _ge_auxcall61);
    1953             Expr[] _va_45 = { _c_79 , _ge_auxcall61.getExpr () , _c_6 };
    1954             _ve_cpp__item = new Expr (_ge_auxcall60.getExpr (), new Expr(Expr.concat (_va_45)));
     2030            Name_To_CPP (_c_27, _vt_name, _ge_auxcall61);
     2031            Expr[] _va_48 = { _c_82 , _ge_auxcall61.getExpr () , _c_6 };
     2032            _ve_cpp__item = new Expr (_ge_auxcall60.getExpr (), new Expr(Expr.concat (_va_48)));
    19552033            break _block2;
    19562034          }
     
    19592037            throw new RefalException ("org.refal.plus.compiler.rfp_asail_cpp", "ASAIL_To_CPP", "Unexpected fail");
    19602038          }
    1961           Expr _v_deref__item26 = Expr.empty;
    1962           _v_deref__item26 = (Expr) _vt_item.at (0);
    1963           if (_v_deref__item26.getLen () != 4)
     2039          Expr _v_deref__item27 = Expr.empty;
     2040          _v_deref__item27 = (Expr) _vt_item.at (0);
     2041          if (_v_deref__item27.getLen () != 4)
    19642042          {
    19652043            throw new RefalException ("org.refal.plus.compiler.rfp_asail_cpp", "ASAIL_To_CPP", "Unexpected fail");
    19662044          }
    1967           if (_v_deref__item26.symbolAt ((0 + 1 + 1)))
     2045          if (_v_deref__item27.symbolAt ((0 + 1 + 1)))
    19682046          {
    19692047            throw new RefalException ("org.refal.plus.compiler.rfp_asail_cpp", "ASAIL_To_CPP", "Unexpected fail");
    19702048          }
    1971           if (_v_deref__item26.symbolAt ((0 + 1 + 1 + 1)))
     2049          if (_v_deref__item27.symbolAt ((0 + 1 + 1 + 1)))
    19722050          {
    19732051            throw new RefalException ("org.refal.plus.compiler.rfp_asail_cpp", "ASAIL_To_CPP", "Unexpected fail");
    19742052          }
    1975           Expr _v_deref__deref__item26 = Expr.empty;
    1976           _v_deref__deref__item26 = (Expr) _v_deref__item26.at ((0 + 1 + 1));
    1977           Expr _v_deref__deref__item262 = Expr.empty;
    1978           _v_deref__deref__item262 = (Expr) _v_deref__item26.at ((0 + 1 + 1 + 1));
    1979           int _v_len81;
    1980           _v_len81 = _v_deref__deref__item262.getLen ();
    1981           int _v_len82;
    1982           _v_len82 = 0;
    1983           if (_v_len81 < _v_len82)
    1984           {
    1985             throw new RefalException ("org.refal.plus.compiler.rfp_asail_cpp", "ASAIL_To_CPP", "Unexpected fail");
    1986           }
    1987           int _v_len__ress3;
    1988           _v_len__ress3 = (_v_len81 - _v_len82);
     2053          Expr _v_deref__deref__item27 = Expr.empty;
     2054          _v_deref__deref__item27 = (Expr) _v_deref__item27.at ((0 + 1 + 1));
     2055          Expr _v_deref__deref__item272 = Expr.empty;
     2056          _v_deref__deref__item272 = (Expr) _v_deref__item27.at ((0 + 1 + 1 + 1));
    19892057          int _v_len83;
    1990           _v_len83 = _v_deref__deref__item26.getLen ();
     2058          _v_len83 = _v_deref__deref__item272.getLen ();
    19912059          int _v_len84;
    19922060          _v_len84 = 0;
     
    19952063            throw new RefalException ("org.refal.plus.compiler.rfp_asail_cpp", "ASAIL_To_CPP", "Unexpected fail");
    19962064          }
    1997           int _v_len__exprs;
    1998           _v_len__exprs = (_v_len83 - _v_len84);
    1999           if (!_v_deref__item26.symbolAt (0))
     2065          int _v_len__ress3;
     2066          _v_len__ress3 = (_v_len83 - _v_len84);
     2067          int _v_len85;
     2068          _v_len85 = _v_deref__deref__item27.getLen ();
     2069          int _v_len86;
     2070          _v_len86 = 0;
     2071          if (_v_len85 < _v_len86)
    20002072          {
    20012073            throw new RefalException ("org.refal.plus.compiler.rfp_asail_cpp", "ASAIL_To_CPP", "Unexpected fail");
    20022074          }
     2075          int _v_len__exprs;
     2076          _v_len__exprs = (_v_len85 - _v_len86);
     2077          if (!_v_deref__item27.symbolAt (0))
     2078          {
     2079            throw new RefalException ("org.refal.plus.compiler.rfp_asail_cpp", "ASAIL_To_CPP", "Unexpected fail");
     2080          }
    20032081          Expr _vs_call = Expr.empty;
    2004           _vs_call = new Expr (_v_deref__item26, 0, 1);
     2082          _vs_call = new Expr (_v_deref__item27, 0, 1);
    20052083          Expr _vt_name = Expr.empty;
    2006           _vt_name = new Expr (_v_deref__item26, (0 + 1), 1);
     2084          _vt_name = new Expr (_v_deref__item27, (0 + 1), 1);
    20072085          Expr _ve_exprs = Expr.empty;
    2008           _ve_exprs = new Expr (_v_deref__deref__item26, 0, _v_len__exprs);
     2086          _ve_exprs = new Expr (_v_deref__deref__item27, 0, _v_len__exprs);
    20092087          Expr _ve_ress = Expr.empty;
    2010           _ve_ress = new Expr (_v_deref__deref__item262, 0, _v_len__ress3);
     2088          _ve_ress = new Expr (_v_deref__deref__item272, 0, _v_len__ress3);
    20112089          _block15: {
    20122090            _block15__branch1: {
    20132091              _negation1: {
    2014                 if (!_vs_call.termEq (_c_81, 0))
     2092                if (!_vs_call.termEq (_c_84, 0))
    20152093                {
    20162094                  break _negation1;
     
    20202098              Result _v_Get3 = new Result ();
    20212099              org.refal.plus.library.Box.Get (Current_Trace, _v_Get3);
    2022               int _v_len85;
    2023               _v_len85 = _v_Get3.getExpr ().getLen ();
    2024               int _v_len86;
    2025               _v_len86 = 1;
    2026               if (_v_len85 < _v_len86)
     2100              int _v_len87;
     2101              _v_len87 = _v_Get3.getExpr ().getLen ();
     2102              int _v_len88;
     2103              _v_len88 = 1;
     2104              if (_v_len87 < _v_len88)
    20272105              {
    20282106                break _block15__branch1;
    20292107              }
    20302108              int _v_len__full__name;
    2031               _v_len__full__name = (_v_len85 - _v_len86);
     2109              _v_len__full__name = (_v_len87 - _v_len88);
    20322110              if (_v_Get3.getExpr ().symbolAt ((0 + _v_len__full__name)))
    20332111              {
     
    20472125              _ve_full__name = new Expr (_v_Get3.getExpr (), 0, _v_len__full__name);
    20482126              Result _ge_auxcall62 = new Result ();
    2049               Name_To_CPP (_c_78, _vt_name, _ge_auxcall62);
     2127              Name_To_CPP (_c_27, _vt_name, _ge_auxcall62);
    20502128              Result _ge_auxcall63 = new Result ();
    2051               Args_To_CPP (Expr.empty, _c_82, _ve_exprs, _ge_auxcall63);
     2129              Args_To_CPP (Expr.empty, _c_85, _ve_exprs, _ge_auxcall63);
    20522130              Result _ge_auxcall64 = new Result ();
    2053               Args_To_CPP (Expr.empty, _c_26, _ve_ress, _ge_auxcall64);
     2131              Args_To_CPP (Expr.empty, _c_29, _ve_ress, _ge_auxcall64);
    20542132              Result _ge_auxcall65 = new Result ();
    20552133              Trace_Exit (_ve_full__name, _ve_ress, _ge_auxcall65);
    2056               Expr[] _va_47 = { _c_84 , _ge_auxcall62.getExpr () , _c_30 , _ge_auxcall63.getExpr () , _c_30 , _ge_auxcall64.getExpr () , _c_83 };
    2057               Expr[] _va_48 = { _c_36 , new Expr(new Expr (_ge_auxcall65.getExpr (), _c_85)) , _c_8 };
    2058               Expr[] _va_46 = { new Expr(Expr.concat (_va_47)) , new Expr(Expr.concat (_va_48)) , _c_86 };
    2059               _ve_cpp__item = Expr.concat (_va_46);
     2134              Expr[] _va_50 = { _c_87 , _ge_auxcall62.getExpr () , _c_33 , _ge_auxcall63.getExpr () , _c_33 , _ge_auxcall64.getExpr () , _c_86 };
     2135              Expr[] _va_51 = { _c_39 , new Expr(new Expr (_ge_auxcall65.getExpr (), _c_88)) , _c_8 };
     2136              Expr[] _va_49 = { new Expr(Expr.concat (_va_50)) , new Expr(Expr.concat (_va_51)) , _c_89 };
     2137              _ve_cpp__item = Expr.concat (_va_49);
    20602138              break _block15;
    20612139            }
     
    20632141            _block17: {
    20642142              _block17__branch1: {
    2065                 if (!_vs_call.termEq (_c_87, 0))
     2143                if (!_vs_call.termEq (_c_90, 0))
    20662144                {
    20672145                  break _block17__branch1;
    20682146                }
    2069                 _gs_call__7 = _c_88;
     2147                _gs_call__7 = _c_91;
    20702148                break _block17;
    20712149              }
     
    20732151            }
    20742152            Result _ge_auxcall66 = new Result ();
    2075             Name_To_CPP (_c_78, _vt_name, _ge_auxcall66);
     2153            Name_To_CPP (_c_27, _vt_name, _ge_auxcall66);
    20762154            Result _ge_auxcall67 = new Result ();
    2077             Args_To_CPP (Expr.empty, _c_82, _ve_exprs, _ge_auxcall67);
     2155            Args_To_CPP (Expr.empty, _c_85, _ve_exprs, _ge_auxcall67);
    20782156            Result _ge_auxcall68 = new Result ();
    2079             Args_To_CPP (Expr.empty, _c_26, _ve_ress, _ge_auxcall68);
    2080             Expr[] _va_49 = { _c_90 , _gs_call__7 , _c_89 , _ge_auxcall66.getExpr () , _c_30 , _ge_auxcall67.getExpr () , _c_30 , _ge_auxcall68.getExpr () , _c_6 };
    2081             _ve_cpp__item = new Expr(Expr.concat (_va_49));
     2157            Args_To_CPP (Expr.empty, _c_29, _ve_ress, _ge_auxcall68);
     2158            Expr[] _va_52 = { _c_93 , _gs_call__7 , _c_92 , _ge_auxcall66.getExpr () , _c_33 , _ge_auxcall67.getExpr () , _c_33 , _ge_auxcall68.getExpr () , _c_6 };
     2159            _ve_cpp__item = new Expr(Expr.concat (_va_52));
    20822160          }
    20832161        }
     
    20992177          break _block1__branch1;
    21002178        }
    2101         _v_res1.assign (_c_91);
     2179        _v_res1.assign (_c_94);
    21022180        break _block1;
    21032181      }
     
    21152193      org.refal.plus.library.List.Paren (_ge_arg1, _ge_auxcall1);
    21162194      Result _ge_auxcall2 = new Result ();
    2117       Infix_To_CPP (_c_92, _c_93, _ge_auxcall1.getExpr (), _ge_auxcall2);
    2118       Expr[] _va_50 = { _c_94 , _ge_auxcall2.getExpr () , _c_29 };
    2119       _v_res1.assign (Expr.concat (_va_50));
     2195      Infix_To_CPP (_c_95, _c_96, _ge_auxcall1.getExpr (), _ge_auxcall2);
     2196      Expr[] _va_53 = { _c_97 , _ge_auxcall2.getExpr () , _c_32 };
     2197      _v_res1.assign (Expr.concat (_va_53));
    21202198    }
    21212199  }
     
    21452223        int _v_len__expr;
    21462224        _v_len__expr = (_v_len1 - _v_len2);
    2147         if (!_c_95.termEq (_v_deref__arg1, 0))
     2225        if (!_c_98.termEq (_v_deref__arg1, 0))
    21482226        {
    21492227          break _block1__branch1;
     
    21532231        Result _ge_auxcall1 = new Result ();
    21542232        Expr_Ref_To_CPP (_ve_expr, _ge_auxcall1);
    2155         _v_res1.assign (new Expr (_ge_auxcall1.getExpr (), _c_96));
     2233        _v_res1.assign (new Expr (_ge_auxcall1.getExpr (), _c_99));
    21562234        break _block1;
    21572235      }
     
    21932271        int _v_len__pos;
    21942272        _v_len__pos = (_v_len5 - _v_len6);
    2195         if (!_c_97.termEq (_v_deref__arg12, 0))
     2273        if (!_c_100.termEq (_v_deref__arg12, 0))
    21962274        {
    21972275          break _block1__branch2;
     
    22052283        Result _ge_auxcall3 = new Result ();
    22062284        Expr_Int_To_CPP (_ve_pos, _ge_auxcall3);
    2207         Expr[] _va_51 = { _c_98 , _ge_auxcall2.getExpr () , _c_30 , _ge_auxcall3.getExpr () , _c_29 };
    2208         _v_res1.assign (Expr.concat (_va_51));
     2285        Expr[] _va_54 = { _c_101 , _ge_auxcall2.getExpr () , _c_33 , _ge_auxcall3.getExpr () , _c_32 };
     2286        _v_res1.assign (Expr.concat (_va_54));
    22092287        break _block1;
    22102288      }
     
    22622340        int _v_len__pos2;
    22632341        _v_len__pos2 = (_v_len11 - _v_len12);
    2264         if (!_c_99.termEq (_v_deref__arg13, 0))
     2342        if (!_c_102.termEq (_v_deref__arg13, 0))
    22652343        {
    22662344          break _block1__branch3;
     
    22782356        Result _ge_auxcall6 = new Result ();
    22792357        Expr_Int_To_CPP (_ve_len, _ge_auxcall6);
    2280         Expr[] _va_52 = { _c_98 , _ge_auxcall4.getExpr () , _c_30 , _ge_auxcall5.getExpr () , _c_30 , _ge_auxcall6.getExpr () , _c_29 };
    2281         _v_res1.assign (Expr.concat (_va_52));
     2358        Expr[] _va_55 = { _c_101 , _ge_auxcall4.getExpr () , _c_33 , _ge_auxcall5.getExpr () , _c_33 , _ge_auxcall6.getExpr () , _c_32 };
     2359        _v_res1.assign (Expr.concat (_va_55));
    22822360        break _block1;
    22832361      }
     
    22972375          break _block1__branch4;
    22982376        }
    2299         if (!_c_100.termEq (_v_deref__arg14, 0))
     2377        if (!_c_103.termEq (_v_deref__arg14, 0))
    23002378        {
    23012379          break _block1__branch4;
     
    23032381        Expr _vt_name = Expr.empty;
    23042382        _vt_name = new Expr (_v_deref__arg14, (0 + 1), 1);
    2305         Name_To_CPP (_c_11, _vt_name, _v_res1);
     2383        Name_To_CPP (_c_12, _vt_name, _v_res1);
    23062384        break _block1;
    23072385      }
     
    23112389          break _block1__branch5;
    23122390        }
    2313         if (!_c_101.termEq (_ge_arg1, 0))
     2391        if (!_c_104.termEq (_ge_arg1, 0))
    23142392        {
    23152393          break _block1__branch5;
    23162394        }
    2317         _v_res1.assign (_c_102);
     2395        _v_res1.assign (_c_105);
    23182396        break _block1;
    23192397      }
     
    23332411          break _block1__branch6;
    23342412        }
    2335         if (!_c_70.termEq (_v_deref__arg15, 0))
     2413        if (!_c_11.termEq (_v_deref__arg15, 0))
    23362414        {
    23372415          break _block1__branch6;
     
    23592437          Result _ge_auxcall7 = new Result ();
    23602438          org.refal.plus.library.Box.Get (Module_Name, _ge_auxcall7);
    2361           _ve_prefix = new Expr (_ge_auxcall7.getExpr (), _c_103);
     2439          _ve_prefix = new Expr (_ge_auxcall7.getExpr (), _c_106);
    23622440        }
    23632441        Result _v_Rfp2Cpp1 = new Result ();
    2364         org.refal.plus.library.CppMangle.Rfp2Cpp (new Expr(new Expr (_c_70, _vt_name)), _v_Rfp2Cpp1);
     2442        org.refal.plus.library.CppMangle.Rfp2Cpp (new Expr(new Expr (_c_11, _vt_name)), _v_Rfp2Cpp1);
    23652443        _v_res1.assign (new Expr (_ve_prefix, _v_Rfp2Cpp1.getExpr ()));
    23662444        break _block1;
     
    23972475        Expr _vt_name = Expr.empty;
    23982476        _vt_name = new Expr (_v_deref__arg16, (0 + 1 + _v_len__ns), 1);
    2399         Expr[] _va_53 = { _vs_var__tag , _ve_ns , _vt_name };
    2400         org.refal.plus.library.CppMangle.Rfp2Cpp (new Expr(Expr.concat (_va_53)), _v_res1);
     2477        Expr[] _va_56 = { _vs_var__tag , _ve_ns , _vt_name };
     2478        org.refal.plus.library.CppMangle.Rfp2Cpp (new Expr(Expr.concat (_va_56)), _v_res1);
    24012479        break _block1;
    24022480      }
     
    24192497          Result _ge_auxcall8 = new Result ();
    24202498          org.refal.plus.library.Box.Get (Int, _ge_auxcall8);
    2421           Expr[] _va_54 = { _c_105 , _ge_auxcall8.getExpr () , _c_104 , _vs_sym , _c_73 };
    2422           _v_res1.assign (Expr.concat (_va_54));
     2499          Expr[] _va_57 = { _c_108 , _ge_auxcall8.getExpr () , _c_107 , _vs_sym , _c_77 };
     2500          _v_res1.assign (Expr.concat (_va_57));
    24232501          break _block3;
    24242502        }
     
    24292507        Result _ge_auxcall9 = new Result ();
    24302508        Symbol_To_CPP (_vs_sym, _ge_auxcall9);
    2431         Expr[] _va_55 = { _c_106 , _ge_auxcall9.getExpr () , _c_73 };
    2432         _v_res1.assign (Expr.concat (_va_55));
     2509        Expr[] _va_58 = { _c_109 , _ge_auxcall9.getExpr () , _c_77 };
     2510        _v_res1.assign (Expr.concat (_va_58));
    24332511      }
    24342512    }
     
    24662544            break _block2;
    24672545          }
    2468           throw new RefalException (new Expr(new Expr (_c_107, _vs_ObjectSymbol)));
     2546          throw new RefalException (new Expr(new Expr (_c_110, _vs_ObjectSymbol)));
    24692547        }
    24702548        break _block1;
     
    24912569        int _v_len__expr;
    24922570        _v_len__expr = (_v_len1 - _v_len2);
    2493         if (!_c_108.termEq (_v_deref__arg1, 0))
     2571        if (!_c_111.termEq (_v_deref__arg1, 0))
    24942572        {
    24952573          break _block1__branch3;
     
    24992577        Result _ge_auxcall1 = new Result ();
    25002578        Expr_Ref_To_CPP (_ve_expr, _ge_auxcall1);
    2501         _v_res1.assign (new Expr (_ge_auxcall1.getExpr (), _c_109));
     2579        _v_res1.assign (new Expr (_ge_auxcall1.getExpr (), _c_112));
    25022580        break _block1;
    25032581      }
     
    25232601        int _v_len__args;
    25242602        _v_len__args = (_v_len3 - _v_len4);
    2525         if (!_c_110.termEq (_v_deref__arg12, 0))
     2603        if (!_c_113.termEq (_v_deref__arg12, 0))
    25262604        {
    25272605          break _block1__branch4;
     
    25302608        _ve_args = new Expr (_v_deref__arg12, (0 + 1), _v_len__args);
    25312609        Result _ge_auxcall2 = new Result ();
    2532         Args_To_CPP (Expr.empty, _c_111, _ve_args, _ge_auxcall2);
    2533         Expr[] _va_56 = { _c_112 , _ge_auxcall2.getExpr () , _c_29 };
    2534         _v_res1.assign (Expr.concat (_va_56));
     2610        Args_To_CPP (Expr.empty, _c_114, _ve_args, _ge_auxcall2);
     2611        Expr[] _va_59 = { _c_115 , _ge_auxcall2.getExpr () , _c_32 };
     2612        _v_res1.assign (Expr.concat (_va_59));
    25352613        break _block1;
    25362614      }
     
    25562634        int _v_len__args2;
    25572635        _v_len__args2 = (_v_len5 - _v_len6);
    2558         if (!_c_113.termEq (_v_deref__arg13, 0))
     2636        if (!_c_116.termEq (_v_deref__arg13, 0))
    25592637        {
    25602638          break _block1__branch5;
     
    25632641        _ve_args = new Expr (_v_deref__arg13, (0 + 1), _v_len__args2);
    25642642        Result _ge_auxcall3 = new Result ();
    2565         Args_To_CPP (Expr.empty, _c_111, _ve_args, _ge_auxcall3);
    2566         Expr[] _va_57 = { _c_114 , _ge_auxcall3.getExpr () , _c_29 };
    2567         _v_res1.assign (Expr.concat (_va_57));
     2643        Args_To_CPP (Expr.empty, _c_114, _ve_args, _ge_auxcall3);
     2644        Expr[] _va_60 = { _c_117 , _ge_auxcall3.getExpr () , _c_32 };
     2645        _v_res1.assign (Expr.concat (_va_60));
    25682646        break _block1;
    25692647      }
     
    25892667        int _v_len__args3;
    25902668        _v_len__args3 = (_v_len7 - _v_len8);
    2591         if (!_c_115.termEq (_v_deref__arg14, 0))
     2669        if (!_c_118.termEq (_v_deref__arg14, 0))
    25922670        {
    25932671          break _block1__branch6;
     
    26022680        _ve_args = new Expr (_v_deref__arg14, (0 + 1 + 1), _v_len__args3);
    26032681        Result _ge_auxcall4 = new Result ();
    2604         Infix_To_CPP (_c_116, _vs_op, _ve_args, _ge_auxcall4);
    2605         Expr[] _va_58 = { _c_94 , _ge_auxcall4.getExpr () , _c_29 };
    2606         _v_res1.assign (Expr.concat (_va_58));
     2682        Infix_To_CPP (_c_119, _vs_op, _ve_args, _ge_auxcall4);
     2683        Expr[] _va_61 = { _c_97 , _ge_auxcall4.getExpr () , _c_32 };
     2684        _v_res1.assign (Expr.concat (_va_61));
    26072685        break _block1;
    26082686      }
     
    26222700          break _block1__branch7;
    26232701        }
    2624         if (!_c_100.termEq (_v_deref__arg15, 0))
     2702        if (!_c_103.termEq (_v_deref__arg15, 0))
    26252703        {
    26262704          break _block1__branch7;
     
    26282706        Expr _vt_name = Expr.empty;
    26292707        _vt_name = new Expr (_v_deref__arg15, (0 + 1), 1);
    2630         Name_To_CPP (_c_11, _vt_name, _v_res1);
     2708        Name_To_CPP (_c_12, _vt_name, _v_res1);
    26312709        break _block1;
    26322710      }
     
    26602738      org.refal.plus.library.List.Paren (_ge_arg1, _ge_auxcall5);
    26612739      Result _ge_auxcall6 = new Result ();
    2662       Infix_To_CPP (_c_116, _c_93, _ge_auxcall5.getExpr (), _ge_auxcall6);
    2663       Expr[] _va_59 = { _c_94 , _ge_auxcall6.getExpr () , _c_29 };
    2664       _v_res1.assign (Expr.concat (_va_59));
     2740      Infix_To_CPP (_c_119, _c_96, _ge_auxcall5.getExpr (), _ge_auxcall6);
     2741      Expr[] _va_62 = { _c_97 , _ge_auxcall6.getExpr () , _c_32 };
     2742      _v_res1.assign (Expr.concat (_va_62));
    26652743    }
    26662744  }
     
    27222800        int _v_len__exprs;
    27232801        _v_len__exprs = (_v_len3 - _v_len4);
    2724         if (!_c_117.termEq (_v_deref__arg1, 0))
     2802        if (!_c_120.termEq (_v_deref__arg1, 0))
    27252803        {
    27262804          break _block1__branch1;
    27272805        }
    2728         if (!_c_81.termEq (_v_deref__deref__arg1, 0))
     2806        if (!_c_84.termEq (_v_deref__deref__arg1, 0))
    27292807        {
    27302808          break _block1__branch1;
     
    27372815        _ve_ress = new Expr (_v_deref__deref__deref__arg12, 0, _v_len__ress);
    27382816        Result _ge_auxcall1 = new Result ();
    2739         Name_To_CPP (_c_78, _vt_name, _ge_auxcall1);
     2817        Name_To_CPP (_c_27, _vt_name, _ge_auxcall1);
    27402818        Result _ge_auxcall2 = new Result ();
    2741         Args_To_CPP (Expr.empty, _c_82, _ve_exprs, _ge_auxcall2);
     2819        Args_To_CPP (Expr.empty, _c_85, _ve_exprs, _ge_auxcall2);
    27422820        Result _ge_auxcall3 = new Result ();
    2743         Args_To_CPP (Expr.empty, _c_26, _ve_ress, _ge_auxcall3);
    2744         Expr[] _va_60 = { _c_118 , _ge_auxcall1.getExpr () , _c_30 , _ge_auxcall2.getExpr () , _c_30 , _ge_auxcall3.getExpr () , _c_29 };
    2745         _v_res1.assign (Expr.concat (_va_60));
     2821        Args_To_CPP (Expr.empty, _c_29, _ve_ress, _ge_auxcall3);
     2822        Expr[] _va_63 = { _c_121 , _ge_auxcall1.getExpr () , _c_33 , _ge_auxcall2.getExpr () , _c_33 , _ge_auxcall3.getExpr () , _c_32 };
     2823        _v_res1.assign (Expr.concat (_va_63));
    27462824        break _block1;
    27472825      }
     
    27792857        int _v_len__pos;
    27802858        _v_len__pos = (_v_len7 - _v_len8);
    2781         if (!_c_119.termEq (_v_deref__arg12, 0))
     2859        if (!_c_122.termEq (_v_deref__arg12, 0))
    27822860        {
    27832861          break _block1__branch2;
     
    27912869        Result _ge_auxcall5 = new Result ();
    27922870        Expr_Int_To_CPP (_ve_pos, _ge_auxcall5);
    2793         Expr[] _va_61 = { _ge_auxcall4.getExpr () , _c_120 , _ge_auxcall5.getExpr () , _c_29 };
    2794         _v_res1.assign (Expr.concat (_va_61));
     2871        Expr[] _va_64 = { _ge_auxcall4.getExpr () , _c_123 , _ge_auxcall5.getExpr () , _c_32 };
     2872        _v_res1.assign (Expr.concat (_va_64));
    27952873        break _block1;
    27962874      }
     
    28442922        int _v_len__pos2;
    28452923        _v_len__pos2 = (_v_len13 - _v_len14);
    2846         if (!_c_121.termEq (_v_deref__arg13, 0))
     2924        if (!_c_124.termEq (_v_deref__arg13, 0))
    28472925        {
    28482926          break _block1__branch3;
     
    28602938        Result _ge_auxcall8 = new Result ();
    28612939        Expr_Int_To_CPP (_ve_len, _ge_auxcall8);
    2862         Expr[] _va_62 = { _ge_auxcall6.getExpr () , _c_122 , _ge_auxcall7.getExpr () , _c_30 , _ge_auxcall8.getExpr () , _c_29 };
    2863         _v_res1.assign (Expr.concat (_va_62));
     2940        Expr[] _va_65 = { _ge_auxcall6.getExpr () , _c_125 , _ge_auxcall7.getExpr () , _c_33 , _ge_auxcall8.getExpr () , _c_32 };
     2941        _v_res1.assign (Expr.concat (_va_65));
    28642942        break _block1;
    28652943      }
     
    28812959        int _v_len__expr3;
    28822960        _v_len__expr3 = (_v_len15 - _v_len16);
    2883         if (!_c_123.termEq (_v_deref__arg14, 0))
     2961        if (!_c_126.termEq (_v_deref__arg14, 0))
    28842962        {
    28852963          break _block1__branch4;
     
    28892967        Result _ge_auxcall9 = new Result ();
    28902968        Expr_Ref_To_CPP (_ve_expr, _ge_auxcall9);
    2891         Expr[] _va_63 = { _c_124 , _ge_auxcall9.getExpr () , _c_29 };
    2892         _v_res1.assign (Expr.concat (_va_63));
     2969        Expr[] _va_66 = { _c_127 , _ge_auxcall9.getExpr () , _c_32 };
     2970        _v_res1.assign (Expr.concat (_va_66));
    28932971        break _block1;
    28942972      }
     
    29423020        int _v_len__expr22;
    29433021        _v_len__expr22 = (_v_len21 - _v_len22);
    2944         if (!_c_125.termEq (_v_deref__arg15, 0))
     3022        if (!_c_128.termEq (_v_deref__arg15, 0))
    29453023        {
    29463024          break _block1__branch5;
     
    29583036        Result _ge_auxcall12 = new Result ();
    29593037        Expr_Int_To_CPP (_ve_pos, _ge_auxcall12);
    2960         Expr[] _va_64 = { _ge_auxcall10.getExpr () , _c_126 , _ge_auxcall11.getExpr () , _c_30 , _ge_auxcall12.getExpr () , _c_29 };
    2961         _v_res1.assign (Expr.concat (_va_64));
     3038        Expr[] _va_67 = { _ge_auxcall10.getExpr () , _c_129 , _ge_auxcall11.getExpr () , _c_33 , _ge_auxcall12.getExpr () , _c_32 };
     3039        _v_res1.assign (Expr.concat (_va_67));
    29623040        break _block1;
    29633041      }
     
    30113089        int _v_len__expr23;
    30123090        _v_len__expr23 = (_v_len27 - _v_len28);
    3013         if (!_c_127.termEq (_v_deref__arg16, 0))
     3091        if (!_c_130.termEq (_v_deref__arg16, 0))
    30143092        {
    30153093          break _block1__branch6;
     
    30273105        Result _ge_auxcall15 = new Result ();
    30283106        Expr_Int_To_CPP (_ve_pos, _ge_auxcall15);
    3029         Expr[] _va_65 = { _ge_auxcall13.getExpr () , _c_128 , _ge_auxcall14.getExpr () , _c_30 , _ge_auxcall15.getExpr () , _c_29 };
    3030         _v_res1.assign (Expr.concat (_va_65));
     3107        Expr[] _va_68 = { _ge_auxcall13.getExpr () , _c_131 , _ge_auxcall14.getExpr () , _c_33 , _ge_auxcall15.getExpr () , _c_32 };
     3108        _v_res1.assign (Expr.concat (_va_68));
    30313109        break _block1;
    30323110      }
     
    30413119        throw new RefalException ("org.refal.plus.compiler.rfp_asail_cpp", "Cond_To_CPP", "Unexpected fail");
    30423120      }
    3043       if (!_c_129.termEq (_v_deref__arg17, 0))
     3121      if (!_c_132.termEq (_v_deref__arg17, 0))
    30443122      {
    30453123        throw new RefalException ("org.refal.plus.compiler.rfp_asail_cpp", "Cond_To_CPP", "Unexpected fail");
     
    30493127      Result _v_Cond__To__CPP1 = new Result ();
    30503128      Cond_To_CPP (_vt_cond, _v_Cond__To__CPP1);
    3051       _v_res1.assign (new Expr (_c_130, _v_Cond__To__CPP1.getExpr ()));
     3129      _v_res1.assign (new Expr (_c_133, _v_Cond__To__CPP1.getExpr ()));
    30523130    }
    30533131  }
     
    30873165        Expr _ve_arg = Expr.empty;
    30883166        _ve_arg = new Expr (_v_deref__args, 0, _v_len__arg);
    3089         Result _va_66 = new Result ();
    3090         if (!org.refal.plus.library.Apply.Apply (_vs_arg2cpp, _ve_arg, _va_66))
     3167        Result _va_69 = new Result ();
     3168        if (!org.refal.plus.library.Apply.Apply (_vs_arg2cpp, _ve_arg, _va_69))
    30913169        {
    30923170          throw new RefalException ("org.refal.plus.compiler.rfp_asail_cpp", "Infix_To_CPP", "Unexpected fail");
    30933171        }
    3094         _ve_arg = _va_66.getExpr ();
    3095         Result _va_67 = new Result ();
    3096         Infix_To_CPP (_vs_arg2cpp, _vs_op, _ve_rest, _va_67);
    3097         _ve_rest = _va_67.getExpr ();
     3172        _ve_arg = _va_69.getExpr ();
     3173        Result _va_70 = new Result ();
     3174        Infix_To_CPP (_vs_arg2cpp, _vs_op, _ve_rest, _va_70);
     3175        _ve_rest = _va_70.getExpr ();
    30983176        _block2: {
    30993177          _block2__branch1: {
     
    31063184              break _block2__branch1;
    31073185            }
    3108             int _v_len___dollar_tmp_m_356_m_28;
    3109             _v_len___dollar_tmp_m_356_m_28 = (_v_len5 - _v_len6);
     3186            int _v_len___dollar_tmp_m_361_m_28;
     3187            _v_len___dollar_tmp_m_361_m_28 = (_v_len5 - _v_len6);
    31103188            int _v_len7;
    31113189            _v_len7 = _ve_arg.getLen ();
     
    31163194              break _block2__branch1;
    31173195            }
    3118             int _v_len___dollar_tmp_m_356_m_16;
    3119             _v_len___dollar_tmp_m_356_m_16 = (_v_len7 - _v_len8);
    3120             Expr _vv__dollar_tmp_m_356_m_16 = Expr.empty;
    3121             _vv__dollar_tmp_m_356_m_16 = new Expr (_ve_arg, 0, _v_len___dollar_tmp_m_356_m_16);
    3122             Expr _vv__dollar_tmp_m_356_m_28 = Expr.empty;
    3123             _vv__dollar_tmp_m_356_m_28 = new Expr (_ve_rest, 0, _v_len___dollar_tmp_m_356_m_28);
    3124             Expr[] _va_68 = { _ve_arg , _c_34 , _vs_op , _c_34 , _ve_rest };
    3125             _v_res1.assign (Expr.concat (_va_68));
     3196            int _v_len___dollar_tmp_m_361_m_16;
     3197            _v_len___dollar_tmp_m_361_m_16 = (_v_len7 - _v_len8);
     3198            Expr _vv__dollar_tmp_m_361_m_16 = Expr.empty;
     3199            _vv__dollar_tmp_m_361_m_16 = new Expr (_ve_arg, 0, _v_len___dollar_tmp_m_361_m_16);
     3200            Expr _vv__dollar_tmp_m_361_m_28 = Expr.empty;
     3201            _vv__dollar_tmp_m_361_m_28 = new Expr (_ve_rest, 0, _v_len___dollar_tmp_m_361_m_28);
     3202            Expr[] _va_71 = { _ve_arg , _c_37 , _vs_op , _c_37 , _ve_rest };
     3203            _v_res1.assign (Expr.concat (_va_71));
    31263204            break _block2;
    31273205          }
     
    31663244        int _v_len__expr;
    31673245        _v_len__expr = (_v_len1 - _v_len2);
    3168         if (!_c_131.termEq (_v_deref__arg1, 0))
     3246        if (!_c_134.termEq (_v_deref__arg1, 0))
    31693247        {
    31703248          break _block1__branch2;
     
    31743252        Result _ge_auxcall1 = new Result ();
    31753253        Expr_Ref_To_CPP (_ve_expr, _ge_auxcall1);
    3176         Expr[] _va_69 = { _c_133 , _ge_auxcall1.getExpr () , _c_132 };
    3177         _v_res1.assign (Expr.concat (_va_69));
     3254        Expr[] _va_72 = { _c_136 , _ge_auxcall1.getExpr () , _c_135 };
     3255        _v_res1.assign (Expr.concat (_va_72));
    31783256        break _block1;
    31793257      }
     
    31983276      int _v_len__expr2;
    31993277      _v_len__expr2 = (_v_len3 - _v_len4);
    3200       if (!_c_134.termEq (_v_deref__arg12, 0))
     3278      if (!_c_137.termEq (_v_deref__arg12, 0))
    32013279      {
    32023280        throw new RefalException ("org.refal.plus.compiler.rfp_asail_cpp", "Step_To_CPP", "Unexpected fail");
     
    32063284      Result _ge_auxcall2 = new Result ();
    32073285      Expr_Ref_To_CPP (_ve_expr, _ge_auxcall2);
    3208       Expr[] _va_70 = { _c_133 , _ge_auxcall2.getExpr () , _c_135 };
    3209       _v_res1.assign (Expr.concat (_va_70));
     3286      Expr[] _va_73 = { _c_136 , _ge_auxcall2.getExpr () , _c_138 };
     3287      _v_res1.assign (Expr.concat (_va_73));
    32103288    }
    32113289  }
     
    32193297          break _block1__branch1;
    32203298        }
    3221         _v_res1.assign (_c_91);
     3299        _v_res1.assign (_c_94);
    32223300        break _block1;
    32233301      }
     
    32373315          break _block1__branch2;
    32383316        }
    3239         if (!_c_99.termEq (_v_deref__arg1, 0))
     3317        if (!_c_102.termEq (_v_deref__arg1, 0))
    32403318        {
    32413319          break _block1__branch2;
     
    32573335        Result _ge_auxcall1 = new Result ();
    32583336        org.refal.plus.library.CppMangle.Rfp2Cpp (_vt_name, _ge_auxcall1);
    3259         Expr[] _va_71 = { _c_98 , _ge_auxcall1.getExpr () , _c_30 , _vs_pos , _c_30 , _vs_len , _c_29 };
    3260         _v_res1.assign (Expr.concat (_va_71));
     3337        Expr[] _va_74 = { _c_101 , _ge_auxcall1.getExpr () , _c_33 , _vs_pos , _c_33 , _vs_len , _c_32 };
     3338        _v_res1.assign (Expr.concat (_va_74));
    32613339        break _block1;
    32623340      }
    32633341      Result _v_Const__Expr__Aux1 = new Result ();
    3264       Const_Expr_Aux (new Expr (_c_66, _ge_arg1), _v_Const__Expr__Aux1);
     3342      Const_Expr_Aux (new Expr (_c_69, _ge_arg1), _v_Const__Expr__Aux1);
    32653343      _block2: {
    32663344        _block2__branch1: {
     
    32753353          int _v_len__cpp__expr;
    32763354          _v_len__cpp__expr = (_v_len1 - _v_len2);
    3277           if (!_c_136.eq (_v_Const__Expr__Aux1.getExpr (), 0))
     3355          if (!_c_139.eq (_v_Const__Expr__Aux1.getExpr (), 0))
    32783356          {
    32793357            break _block2__branch1;
     
    33713449          break _block1__branch2;
    33723450        }
    3373         int _v_len___dollar_tmp_m_387_m_14;
    3374         _v_len___dollar_tmp_m_387_m_14 = (_v_len7 - _v_len8);
    3375         Expr _vv__dollar_tmp_m_387_m_14 = Expr.empty;
    3376         _vv__dollar_tmp_m_387_m_14 = new Expr (_ve_accum, 0, _v_len___dollar_tmp_m_387_m_14);
     3451        int _v_len___dollar_tmp_m_392_m_14;
     3452        _v_len___dollar_tmp_m_392_m_14 = (_v_len7 - _v_len8);
     3453        Expr _vv__dollar_tmp_m_392_m_14 = Expr.empty;
     3454        _vv__dollar_tmp_m_392_m_14 = new Expr (_ve_accum, 0, _v_len___dollar_tmp_m_392_m_14);
    33773455        _block2: {
    33783456          _block2__branch1: {
     
    33833461              break _block2__branch1;
    33843462            }
    3385             Expr.SplitIterator _va_72 = _v_CharsToBytes1.getExpr ().leftSplit(0);
    3386             _exit1: _continue1: for ( ; ; _va_72.next ())
    3387             {
    3388               Expr _ve__dollar_tmp_m_389_m_33 = _va_72.getLeft();
    3389               Expr _v_lsplit__CharsToBytes1 = _va_72.getRight();
    3390               if (!_va_72.isValid ())
     3463            Expr.SplitIterator _va_75 = _v_CharsToBytes1.getExpr ().leftSplit(0);
     3464            _exit1: _continue1: for ( ; ; _va_75.next ())
     3465            {
     3466              Expr _ve__dollar_tmp_m_394_m_33 = _va_75.getLeft();
     3467              Expr _v_lsplit__CharsToBytes1 = _va_75.getRight();
     3468              if (!_va_75.isValid ())
    33913469              {
    33923470                break _block2__branch1;
     
    34003478                break _block2__branch1;
    34013479              }
    3402               int _v_len___dollar_tmp_m_389_m_39;
    3403               _v_len___dollar_tmp_m_389_m_39 = (_v_len9 - _v_len10);
     3480              int _v_len___dollar_tmp_m_394_m_39;
     3481              _v_len___dollar_tmp_m_394_m_39 = (_v_len9 - _v_len10);
    34043482              if (!_v_lsplit__CharsToBytes1.symbolAt (0))
    34053483              {
     
    34083486              Expr _vs_c = Expr.empty;
    34093487              _vs_c = new Expr (_v_lsplit__CharsToBytes1, 0, 1);
    3410               Expr _ve__dollar_tmp_m_389_m_39 = Expr.empty;
    3411               _ve__dollar_tmp_m_389_m_39 = new Expr (_v_lsplit__CharsToBytes1, (0 + 1), _v_len___dollar_tmp_m_389_m_39);
    3412               if (!org.refal.plus.library.Compare.Gt (_vs_c, _c_137))
     3488              Expr _ve__dollar_tmp_m_394_m_39 = Expr.empty;
     3489              _ve__dollar_tmp_m_394_m_39 = new Expr (_v_lsplit__CharsToBytes1, (0 + 1), _v_len___dollar_tmp_m_394_m_39);
     3490              if (!org.refal.plus.library.Compare.Gt (_vs_c, _c_140))
    34133491              {
    34143492                continue _continue1;
    34153493              }
    34163494              Result _v_Const__Expr__Aux1 = new Result ();
    3417               Const_Expr_Aux (new Expr (_c_66, _ve_expr), _v_Const__Expr__Aux1);
    3418               Expr[] _va_73 = { _c_138 , _ve_accum , _c_73 , _v_Const__Expr__Aux1.getExpr () };
    3419               _v_res1.assign (Expr.concat (_va_73));
     3495              Const_Expr_Aux (new Expr (_c_69, _ve_expr), _v_Const__Expr__Aux1);
     3496              Expr[] _va_76 = { _c_141 , _ve_accum , _c_77 , _v_Const__Expr__Aux1.getExpr () };
     3497              _v_res1.assign (Expr.concat (_va_76));
    34203498              break _exit1;
    34213499            }
     
    34233501          }
    34243502          Result _v_Const__Expr__Aux2 = new Result ();
    3425           Const_Expr_Aux (new Expr (_c_66, _ve_expr), _v_Const__Expr__Aux2);
    3426           Expr[] _va_74 = { _c_139 , _ve_accum , _c_73 , _v_Const__Expr__Aux2.getExpr () };
    3427           _v_res1.assign (Expr.concat (_va_74));
     3503          Const_Expr_Aux (new Expr (_c_69, _ve_expr), _v_Const__Expr__Aux2);
     3504          Expr[] _va_77 = { _c_142 , _ve_accum , _c_77 , _v_Const__Expr__Aux2.getExpr () };
     3505          _v_res1.assign (Expr.concat (_va_77));
    34283506        }
    34293507        break _block1;
     
    34633541            int _v_len__paren__expr;
    34643542            _v_len__paren__expr = (_v_len13 - _v_len14);
    3465             if (!_c_95.termEq (_v_deref__item, 0))
     3543            if (!_c_98.termEq (_v_deref__item, 0))
    34663544            {
    34673545              break _block3__branch1;
     
    34713549            Result _ge_auxcall2 = new Result ();
    34723550            Const_Expr_To_CPP (_ve_paren__expr, _ge_auxcall2);
    3473             Expr[] _va_75 = { _c_141 , _ge_auxcall2.getExpr () , _c_140 };
    3474             _ve_cpp__item = Expr.concat (_va_75);
     3551            Expr[] _va_78 = { _c_144 , _ge_auxcall2.getExpr () , _c_143 };
     3552            _ve_cpp__item = Expr.concat (_va_78);
    34753553            break _block3;
    34763554          }
     
    34863564              break _block3__branch2;
    34873565            }
    3488             if (!_c_100.termEq (_v_deref__item2, 0))
     3566            if (!_c_103.termEq (_v_deref__item2, 0))
    34893567            {
    34903568              break _block3__branch2;
     
    34933571            _vt_name = new Expr (_v_deref__item2, (0 + 1), 1);
    34943572            Result _v_Name__To__CPP1 = new Result ();
    3495             Name_To_CPP (_c_11, _vt_name, _v_Name__To__CPP1);
    3496             _ve_cpp__item = new Expr (_c_136, _v_Name__To__CPP1.getExpr ());
     3573            Name_To_CPP (_c_12, _vt_name, _v_Name__To__CPP1);
     3574            _ve_cpp__item = new Expr (_c_139, _v_Name__To__CPP1.getExpr ());
    34973575            break _block3;
    34983576          }
     
    35123590              break _block3__branch3;
    35133591            }
    3514             int _v_len___dollar_tmp_m_401_m_14;
    3515             _v_len___dollar_tmp_m_401_m_14 = (_v_len15 - _v_len16);
    3516             if (!_c_70.termEq (_v_deref__item3, 0))
     3592            int _v_len___dollar_tmp_m_406_m_14;
     3593            _v_len___dollar_tmp_m_406_m_14 = (_v_len15 - _v_len16);
     3594            if (!_c_11.termEq (_v_deref__item3, 0))
    35173595            {
    35183596              break _block3__branch3;
    35193597            }
    3520             Expr _ve__dollar_tmp_m_401_m_14 = Expr.empty;
    3521             _ve__dollar_tmp_m_401_m_14 = new Expr (_v_deref__item3, (0 + 1), _v_len___dollar_tmp_m_401_m_14);
     3598            Expr _ve__dollar_tmp_m_406_m_14 = Expr.empty;
     3599            _ve__dollar_tmp_m_406_m_14 = new Expr (_v_deref__item3, (0 + 1), _v_len___dollar_tmp_m_406_m_14);
    35223600            Result _v_Rfp2Cpp1 = new Result ();
    35233601            org.refal.plus.library.CppMangle.Rfp2Cpp (_vt_item, _v_Rfp2Cpp1);
    3524             _ve_cpp__item = new Expr (_c_136, _v_Rfp2Cpp1.getExpr ());
     3602            _ve_cpp__item = new Expr (_c_139, _v_Rfp2Cpp1.getExpr ());
    35253603            break _block3;
    35263604          }
     
    35463624            _block4: {
    35473625              _block4__branch1: {
    3548                 if (!_vs_FUNC.termEq (_c_16, 0))
     3626                if (!_vs_FUNC.termEq (_c_18, 0))
    35493627                {
    35503628                  break _block4__branch1;
     
    35523630                break _block4;
    35533631              }
    3554               if (!_vs_FUNC.termEq (_c_17, 0))
     3632              if (!_vs_FUNC.termEq (_c_19, 0))
    35553633              {
    35563634                break _block3__branch4;
     
    35583636            }
    35593637            Result _ge_auxcall3 = new Result ();
    3560             Name_To_CPP (_c_78, _vt_name, _ge_auxcall3);
    3561             Expr[] _va_76 = { _c_142 , _ge_auxcall3.getExpr () , _c_29 };
    3562             _ve_cpp__item = Expr.concat (_va_76);
     3638            Name_To_CPP (_c_27, _vt_name, _ge_auxcall3);
     3639            Expr[] _va_79 = { _c_145 , _ge_auxcall3.getExpr () , _c_32 };
     3640            _ve_cpp__item = Expr.concat (_va_79);
    35633641            break _block3;
    35643642          }
     
    35773655              Result _ge_auxcall4 = new Result ();
    35783656              org.refal.plus.library.Box.Get (Int, _ge_auxcall4);
    3579               Expr[] _va_77 = { _c_143 , _ge_auxcall4.getExpr () , _c_104 , _vs_sym , _c_73 };
    3580               _ve_cpp__item = Expr.concat (_va_77);
     3657              Expr[] _va_80 = { _c_146 , _ge_auxcall4.getExpr () , _c_107 , _vs_sym , _c_77 };
     3658              _ve_cpp__item = Expr.concat (_va_80);
    35813659              break _block5;
    35823660            }
     
    35873665            Result _ge_auxcall5 = new Result ();
    35883666            Symbol_To_CPP (_vs_sym, _ge_auxcall5);
    3589             Expr[] _va_78 = { _c_144 , _ge_auxcall5.getExpr () , _c_73 };
    3590             _ve_cpp__item = Expr.concat (_va_78);
     3667            Expr[] _va_81 = { _c_147 , _ge_auxcall5.getExpr () , _c_77 };
     3668            _ve_cpp__item = Expr.concat (_va_81);
    35913669          }
    35923670        }
    35933671        Result _v_Const__Expr__Aux3 = new Result ();
    3594         Const_Expr_Aux (new Expr (_c_66, _ve_rest), _v_Const__Expr__Aux3);
     3672        Const_Expr_Aux (new Expr (_c_69, _ve_rest), _v_Const__Expr__Aux3);
    35953673        _v_res1.assign (new Expr (_ve_cpp__item, _v_Const__Expr__Aux3.getExpr ()));
    35963674        break _block1;
     
    36393717      _block3: {
    36403718        _block3__branch1: {
    3641           if (!_vs_char.termEq (_c_145, 0))
     3719          if (!_vs_char.termEq (_c_148, 0))
    36423720          {
    36433721            break _block3__branch1;
    36443722          }
    3645           _ve_cpp__char = _c_146;
     3723          _ve_cpp__char = _c_149;
    36463724          break _block3;
    36473725        }
    36483726        _block3__branch2: {
    3649           if (!_vs_char.termEq (_c_147, 0))
     3727          if (!_vs_char.termEq (_c_150, 0))
    36503728          {
    36513729            break _block3__branch2;
    36523730          }
    3653           _ve_cpp__char = _c_148;
     3731          _ve_cpp__char = _c_151;
    36543732          break _block3;
    36553733        }
    36563734        _block3__branch3: {
    3657           if (!_vs_char.termEq (_c_149, 0))
     3735          if (!_vs_char.termEq (_c_152, 0))
    36583736          {
    36593737            break _block3__branch3;
    36603738          }
    3661           _ve_cpp__char = _c_150;
     3739          _ve_cpp__char = _c_153;
    36623740          break _block3;
    36633741        }
    36643742        _block3__branch4: {
    3665           if (!_vs_char.termEq (_c_151, 0))
     3743          if (!_vs_char.termEq (_c_154, 0))
    36663744          {
    36673745            break _block3__branch4;
    36683746          }
    3669           _ve_cpp__char = _c_152;
     3747          _ve_cpp__char = _c_155;
    36703748          break _block3;
    36713749        }
    36723750        _block3__branch5: {
    3673           if (!_vs_char.termEq (_c_153, 0))
     3751          if (!_vs_char.termEq (_c_156, 0))
    36743752          {
    36753753            break _block3__branch5;
    36763754          }
    3677           _ve_cpp__char = _c_154;
     3755          _ve_cpp__char = _c_157;
    36783756          break _block3;
    36793757        }
     
    36823760          throw new RefalException ("org.refal.plus.compiler.rfp_asail_cpp", "Symbol_To_CPP", "Unexpected fail");
    36833761        }
    3684         Expr _vs__dollar_tmp_m_428_m_8 = Expr.empty;
    3685         _vs__dollar_tmp_m_428_m_8 = new Expr (_vs_char, 0, 1);
     3762        Expr _vs__dollar_tmp_m_433_m_8 = Expr.empty;
     3763        _vs__dollar_tmp_m_433_m_8 = new Expr (_vs_char, 0, 1);
    36863764        _ve_cpp__char = _vs_char;
    36873765      }
     
    37003778        }
    37013779        Expr _v_compose1 = Expr.empty;
    3702         Expr[] _va_79 = { new Expr(_ge_arg1) , _gs_arg2 , _ge_arg3 };
    3703         _v_compose1 = Expr.concat (_va_79);
     3780        Expr[] _va_82 = { new Expr(_ge_arg1) , _gs_arg2 , _ge_arg3 };
     3781        _v_compose1 = Expr.concat (_va_82);
    37043782        if (_v_compose1.symbolAt (0))
    37053783        {
     
    37183796        int _v_len__prefix;
    37193797        _v_len__prefix = (_v_len1 - _v_len2);
    3720         if (!_c_26.termEq (_v_compose1, (0 + 1)))
     3798        if (!_c_29.termEq (_v_compose1, (0 + 1)))
    37213799        {
    37223800          break _block1__branch1;
     
    37243802        Expr _vv_prefix = Expr.empty;
    37253803        _vv_prefix = new Expr (_v_deref__compose1, 0, _v_len__prefix);
    3726         _v_res1.assign (_c_155);
     3804        _v_res1.assign (_c_158);
    37273805        break _block1;
    37283806      }
     
    37333811        }
    37343812        Expr _v_compose2 = Expr.empty;
    3735         Expr[] _va_80 = { new Expr(_ge_arg1) , _gs_arg2 , _ge_arg3 };
    3736         _v_compose2 = Expr.concat (_va_80);
    3737         if (!_c_156.eq (_v_compose2, 0))
     3813        Expr[] _va_83 = { new Expr(_ge_arg1) , _gs_arg2 , _ge_arg3 };
     3814        _v_compose2 = Expr.concat (_va_83);
     3815        if (!_c_159.eq (_v_compose2, 0))
    37383816        {
    37393817          break _block1__branch2;
    37403818        }
    3741         _v_res1.assign (_c_157);
     3819        _v_res1.assign (_c_160);
    37423820        break _block1;
    37433821      }
     
    37483826        }
    37493827        Expr _v_compose3 = Expr.empty;
    3750         Expr[] _va_81 = { new Expr(_ge_arg1) , _gs_arg2 , _ge_arg3 };
    3751         _v_compose3 = Expr.concat (_va_81);
     3828        Expr[] _va_84 = { new Expr(_ge_arg1) , _gs_arg2 , _ge_arg3 };
     3829        _v_compose3 = Expr.concat (_va_84);
    37523830        if (_v_compose3.symbolAt ((0 + 1 + 1)))
    37533831        {
     
    37663844        int _v_len__arg;
    37673845        _v_len__arg = (_v_len3 - _v_len4);
    3768         if (!_c_156.eq (_v_compose3, 0))
     3846        if (!_c_159.eq (_v_compose3, 0))
    37693847        {
    37703848          break _block1__branch3;
     
    37813859        }
    37823860        Expr _v_compose4 = Expr.empty;
    3783         Expr[] _va_82 = { new Expr(_ge_arg1) , _gs_arg2 , _ge_arg3 };
    3784         _v_compose4 = Expr.concat (_va_82);
     3861        Expr[] _va_85 = { new Expr(_ge_arg1) , _gs_arg2 , _ge_arg3 };
     3862        _v_compose4 = Expr.concat (_va_85);
    37853863        if (_v_compose4.symbolAt (0))
    37863864        {
     
    37993877        int _v_len__prefix2;
    38003878        _v_len__prefix2 = (_v_len5 - _v_len6);
    3801         if (!_c_82.termEq (_v_compose4, (0 + 1)))
     3879        if (!_c_85.termEq (_v_compose4, (0 + 1)))
    38023880        {
    38033881          break _block1__branch4;
     
    38053883        Expr _ve_prefix = Expr.empty;
    38063884        _ve_prefix = new Expr (_v_deref__compose4, 0, _v_len__prefix2);
    3807         _v_res1.assign (_c_157);
     3885        _v_res1.assign (_c_160);
    38083886        break _block1;
    38093887      }
     
    38143892        }
    38153893        Expr _v_compose5 = Expr.empty;
    3816         Expr[] _va_83 = { new Expr(_ge_arg1) , _gs_arg2 , _ge_arg3 };
    3817         _v_compose5 = Expr.concat (_va_83);
     3894        Expr[] _va_86 = { new Expr(_ge_arg1) , _gs_arg2 , _ge_arg3 };
     3895        _v_compose5 = Expr.concat (_va_86);
    38183896        if (_v_compose5.symbolAt (0))
    38193897        {
     
    38483926        int _v_len__prefix3;
    38493927        _v_len__prefix3 = (_v_len9 - _v_len10);
    3850         if (!_c_82.termEq (_v_compose5, (0 + 1)))
     3928        if (!_c_85.termEq (_v_compose5, (0 + 1)))
    38513929        {
    38523930          break _block1__branch5;
     
    38743952              Expr _v_compose6 = Expr.empty;
    38753953              _v_compose6 = new Expr (new Expr(_ge_arg1), _gs_arg2);
    3876               if (!_c_82.termEq (_v_compose6, (0 + 1)))
     3954              if (!_c_85.termEq (_v_compose6, (0 + 1)))
    38773955              {
    38783956                break _block2__branch1;
    38793957              }
    3880               Expr _vt__dollar_tmp_m_459_m_8 = Expr.empty;
    3881               _vt__dollar_tmp_m_459_m_8 = new Expr (_v_compose6, 0, 1);
    3882               Expr[] _va_84 = { _c_94 , _ve_cpp__args , _c_29 };
    3883               _v_res1.assign (Expr.concat (_va_84));
     3958              Expr _vt__dollar_tmp_m_464_m_8 = Expr.empty;
     3959              _vt__dollar_tmp_m_464_m_8 = new Expr (_v_compose6, 0, 1);
     3960              Expr[] _va_87 = { _c_97 , _ve_cpp__args , _c_32 };
     3961              _v_res1.assign (Expr.concat (_va_87));
    38843962              break _block2;
    38853963            }
     
    38873965              Expr _v_compose7 = Expr.empty;
    38883966              _v_compose7 = new Expr (new Expr(_ge_arg1), _gs_arg2);
    3889               if (!_c_156.eq (_v_compose7, 0))
     3967              if (!_c_159.eq (_v_compose7, 0))
    38903968              {
    38913969                break _block2__branch2;
    38923970              }
    3893               Expr[] _va_85 = { _c_94 , _ve_cpp__args , _c_29 };
    3894               _v_res1.assign (Expr.concat (_va_85));
     3971              Expr[] _va_88 = { _c_97 , _ve_cpp__args , _c_32 };
     3972              _v_res1.assign (Expr.concat (_va_88));
    38953973              break _block2;
    38963974            }
     
    39123990                break _block2__branch3;
    39133991              }
    3914               int _v_len___dollar_tmp_m_461_m_9;
    3915               _v_len___dollar_tmp_m_461_m_9 = (_v_len11 - _v_len12);
    3916               if (!_c_26.termEq (_v_compose8, (0 + 1)))
     3992              int _v_len___dollar_tmp_m_466_m_9;
     3993              _v_len___dollar_tmp_m_466_m_9 = (_v_len11 - _v_len12);
     3994              if (!_c_29.termEq (_v_compose8, (0 + 1)))
    39173995              {
    39183996                break _block2__branch3;
    39193997              }
    3920               Expr _vv__dollar_tmp_m_461_m_9 = Expr.empty;
    3921               _vv__dollar_tmp_m_461_m_9 = new Expr (_v_deref__compose8, 0, _v_len___dollar_tmp_m_461_m_9);
    3922               Expr[] _va_86 = { _c_94 , _ge_arg1 , _ve_cpp__args , _c_158 };
    3923               _v_res1.assign (Expr.concat (_va_86));
     3998              Expr _vv__dollar_tmp_m_466_m_9 = Expr.empty;
     3999              _vv__dollar_tmp_m_466_m_9 = new Expr (_v_deref__compose8, 0, _v_len___dollar_tmp_m_466_m_9);
     4000              Expr[] _va_89 = { _c_97 , _ge_arg1 , _ve_cpp__args , _c_161 };
     4001              _v_res1.assign (Expr.concat (_va_89));
    39244002              break _block2;
    39254003            }
     
    39324010              throw new RefalException ("org.refal.plus.compiler.rfp_asail_cpp", "Args_To_CPP", "Unexpected fail");
    39334011            }
    3934             int _v_len___dollar_tmp_m_462_m_8;
    3935             _v_len___dollar_tmp_m_462_m_8 = (_v_len13 - _v_len14);
     4012            int _v_len___dollar_tmp_m_467_m_8;
     4013            _v_len___dollar_tmp_m_467_m_8 = (_v_len13 - _v_len14);
    39364014            Expr _v_compose9 = Expr.empty;
    39374015            _v_compose9 = new Expr (new Expr(_ge_arg1), _gs_arg2);
    3938             Expr _ve__dollar_tmp_m_462_m_8 = Expr.empty;
    3939             _ve__dollar_tmp_m_462_m_8 = new Expr (_v_compose9, 0, _v_len___dollar_tmp_m_462_m_8);
     4016            Expr _ve__dollar_tmp_m_467_m_8 = Expr.empty;
     4017            _ve__dollar_tmp_m_467_m_8 = new Expr (_v_compose9, 0, _v_len___dollar_tmp_m_467_m_8);
    39404018            _v_res1.assign (new Expr (_ge_arg1, _ve_cpp__args));
    39414019          }
     
    39834061              break _block4__branch1;
    39844062            }
    3985             int _v_len___dollar_tmp_m_448_m_21;
    3986             _v_len___dollar_tmp_m_448_m_21 = (_v_len19 - _v_len20);
    3987             Expr _vv__dollar_tmp_m_448_m_21 = Expr.empty;
    3988             _vv__dollar_tmp_m_448_m_21 = new Expr (_ve_rest, 0, _v_len___dollar_tmp_m_448_m_21);
    3989             _ve_comma = _c_30;
     4063            int _v_len___dollar_tmp_m_453_m_21;
     4064            _v_len___dollar_tmp_m_453_m_21 = (_v_len19 - _v_len20);
     4065            Expr _vv__dollar_tmp_m_453_m_21 = Expr.empty;
     4066            _vv__dollar_tmp_m_453_m_21 = new Expr (_ve_rest, 0, _v_len___dollar_tmp_m_453_m_21);
     4067            _ve_comma = _c_33;
    39904068            break _block4;
    39914069          }
     
    39944072        _block5: {
    39954073          _block5__branch1: {
    3996             if (!_gs_arg2.termEq (_c_26, 0))
     4074            if (!_gs_arg2.termEq (_c_29, 0))
    39974075            {
    39984076              break _block5__branch1;
     
    40014079            org.refal.plus.library.CppMangle.Rfp2Cpp (new Expr(_ve_arg), _ge_auxcall1);
    40024080            _ge_arg3__2 = _ve_rest;
    4003             Expr[] _va_87 = { _ve_cpp__args , _ge_auxcall1.getExpr () , _ve_comma };
    4004             _ve_cpp__args = Expr.concat (_va_87);
     4081            Expr[] _va_90 = { _ve_cpp__args , _ge_auxcall1.getExpr () , _ve_comma };
     4082            _ve_cpp__args = Expr.concat (_va_90);
    40054083            break _block5;
    40064084          }
    40074085          _block5__branch2: {
    4008             if (!_gs_arg2.termEq (_c_82, 0))
     4086            if (!_gs_arg2.termEq (_c_85, 0))
    40094087            {
    40104088              break _block5__branch2;
     
    40134091            Expr_Ref_To_CPP (_ve_arg, _ge_auxcall2);
    40144092            _ge_arg3__2 = _ve_rest;
    4015             Expr[] _va_88 = { _ve_cpp__args , _ge_auxcall2.getExpr () , _ve_comma };
    4016             _ve_cpp__args = Expr.concat (_va_88);
     4093            Expr[] _va_91 = { _ve_cpp__args , _ge_auxcall2.getExpr () , _ve_comma };
     4094            _ve_cpp__args = Expr.concat (_va_91);
    40174095            break _block5;
    40184096          }
    4019           if (!_gs_arg2.termEq (_c_111, 0))
     4097          if (!_gs_arg2.termEq (_c_114, 0))
    40204098          {
    40214099            throw new RefalException ("org.refal.plus.compiler.rfp_asail_cpp", "Args_To_CPP", "Unexpected fail");
     
    40244102          Expr_Int_To_CPP (_ve_arg, _ge_auxcall3);
    40254103          _ge_arg3__2 = _ve_rest;
    4026           Expr[] _va_89 = { _ve_cpp__args , _ge_auxcall3.getExpr () , _ve_comma };
    4027           _ve_cpp__args = Expr.concat (_va_89);
     4104          Expr[] _va_92 = { _ve_cpp__args , _ge_auxcall3.getExpr () , _ve_comma };
     4105          _ve_cpp__args = Expr.concat (_va_92);
    40284106        }
    40294107      }
     
    40714149        int _v_len__cont;
    40724150        _v_len__cont = (_v_len3 - _v_len4);
    4073         if (!_c_18.eq (_ve_name, 0))
     4151        if (!_c_20.eq (_ve_name, 0))
    40744152        {
    40754153          break _block1__branch1;
     
    40864164        org.refal.plus.library.Box.Get (Module_Name, _ge_auxcall2);
    40874165        Result _ge_auxcall3 = new Result ();
    4088         org.refal.plus.library.List.Intersperse (_c_19, _ve_cont, _ge_auxcall3);
     4166        org.refal.plus.library.List.Intersperse (_c_21, _ve_cont, _ge_auxcall3);
    40894167        Result _gs_auxcall4 = new Result ();
    40904168        org.refal.plus.library.Convert.ToWord (_ge_auxcall3.getExpr (), _gs_auxcall4);
     
    41034181        int _v_len__cont2;
    41044182        _v_len__cont2 = (_v_len5 - _v_len6);
    4105         if (!_c_159.eq (_ve_name, 0))
     4183        if (!_c_162.eq (_ve_name, 0))
    41064184        {
    41074185          break _block1__branch2;
     
    41094187        Expr _ve_cont = Expr.empty;
    41104188        _ve_cont = new Expr (_ve_name, (0 + 1 + 1), _v_len__cont2);
    4111         org.refal.plus.library.Table.Bind (Decls, new Expr (_vs_decl__type, new Expr(new Expr (_c_160, _ve_cont))), Expr.empty);
    4112         QName_To_Cpp (new Expr (_c_160, _ve_cont), _v_res1);
     4189        org.refal.plus.library.Table.Bind (Decls, new Expr (_vs_decl__type, new Expr(new Expr (_c_163, _ve_cont))), Expr.empty);
     4190        QName_To_Cpp (new Expr (_c_163, _ve_cont), _v_res1);
    41134191        break _block1;
    41144192      }
     
    41444222  static  void QName_To_Cpp (Expr _ve_name, Result _v_res1) throws RefalException
    41454223  {
    4146     Result _ge_auxcall1 = new Result ();
    4147     org.refal.plus.library.List.Paren (_ve_name, _ge_auxcall1);
    4148     Result _ge_auxcall2 = new Result ();
    4149     if (!org.refal.plus.library.List.MapIn (_c_161, Expr.empty, _ge_auxcall1.getExpr (), _ge_auxcall2))
    4150     {
    4151       throw new RefalException ("org.refal.plus.compiler.rfp_asail_cpp", "QName_To_Cpp", "Unexpected fail");
    4152     }
    4153     Result _ge_auxcall3 = new Result ();
    4154     org.refal.plus.library.List.Intersperse (_c_103, _ge_auxcall2.getExpr (), _ge_auxcall3);
    4155     org.refal.plus.library.List.Concat (_ge_auxcall3.getExpr (), _v_res1);
     4224    org.refal.plus.library.List.Intersperse (_c_106, _ve_name, _v_res1);
    41564225  }
    41574226
    41584227  static  void Open_Namespace (Expr _ve_name, Result _v_res1) throws RefalException
    41594228  {
    4160     Result _ge_auxcall1 = new Result ();
    4161     org.refal.plus.library.CppMangle.Rfp2Cpp (_ve_name, _ge_auxcall1);
    4162     Expr[] _va_90 = { _c_163 , _ge_auxcall1.getExpr () , _c_162 };
    4163     _v_res1.assign (new Expr(Expr.concat (_va_90)));
     4229    Expr[] _va_93 = { _c_165 , _ve_name , _c_164 };
     4230    _v_res1.assign (new Expr(Expr.concat (_va_93)));
    41644231  }
    41654232
    41664233  static  void Close_Namespace (Expr _ve_name, Result _v_res1) throws RefalException
    41674234  {
    4168     _v_res1.assign (_c_164);
     4235    _v_res1.assign (_c_166);
    41694236  }
    41704237
     
    41784245          break _block1__branch1;
    41794246        }
    4180         Result _va_91 = new Result ();
    4181         org.refal.plus.library.Box.Get (Module_Name, _va_91);
    4182         _ge_qualifiers__1 = _va_91.getExpr ();
     4247        Result _va_94 = new Result ();
     4248        org.refal.plus.library.Box.Get (Module_Name, _va_94);
     4249        _ge_qualifiers__1 = _va_94.getExpr ();
    41834250        break _block1;
    41844251      }
     
    41884255          break _block1__branch2;
    41894256        }
    4190         if (!_c_66.termEq (_ve_qualifiers, 0))
     4257        if (!_c_69.termEq (_ve_qualifiers, 0))
    41914258        {
    41924259          break _block1__branch2;
     
    42214288      org.refal.plus.library.Box.Store (Current_Namespace, _ge_qualifiers__1);
    42224289      Result _v_Map1 = new Result ();
    4223       if (!org.refal.plus.library.List.Map (_c_165, Expr.empty, _ge_qualifiers__1, _v_Map1))
     4290      if (!org.refal.plus.library.List.Map (_c_167, Expr.empty, _ge_qualifiers__1, _v_Map1))
    42244291      {
    42254292        throw new RefalException ("org.refal.plus.compiler.rfp_asail_cpp", "Namespace_Control", "Unexpected fail");
     
    42344301    _ge_args__0 = _ve_args;
    42354302    Expr _vs_n = Expr.empty;
    4236     _vs_n = _c_166;
     4303    _vs_n = _c_168;
    42374304    Expr _ve_pr__args = Expr.empty;
    42384305    _ve_pr__args = Expr.empty;
     
    42444311          break _iter1;
    42454312        }
    4246         Expr[] _va_92 = { _c_168 , _ve_name , _c_167 };
    4247         _v_res1.assign (new Expr (new Expr(Expr.concat (_va_92)), _ve_pr__args));
     4313        Expr[] _va_95 = { _c_170 , _ve_name , _c_169 };
     4314        _v_res1.assign (new Expr (new Expr(Expr.concat (_va_95)), _ve_pr__args));
    42484315        break _exit__iter1;
    42494316      }
     
    42754342                break _block3__branch1;
    42764343              }
    4277               int _v_len___dollar_tmp_m_505_m_22;
    4278               _v_len___dollar_tmp_m_505_m_22 = (_v_len3 - _v_len4);
    4279               Expr _vv__dollar_tmp_m_505_m_22 = Expr.empty;
    4280               _vv__dollar_tmp_m_505_m_22 = new Expr (_ve_rest, 0, _v_len___dollar_tmp_m_505_m_22);
     4344              int _v_len___dollar_tmp_m_510_m_22;
     4345              _v_len___dollar_tmp_m_510_m_22 = (_v_len3 - _v_len4);
     4346              Expr _vv__dollar_tmp_m_510_m_22 = Expr.empty;
     4347              _vv__dollar_tmp_m_510_m_22 = new Expr (_ve_rest, 0, _v_len___dollar_tmp_m_510_m_22);
    42814348              break _block3;
    42824349            }
    4283             if (!org.refal.plus.library.Compare.Gt (_vs_n, _c_166))
     4350            if (!org.refal.plus.library.Compare.Gt (_vs_n, _c_168))
    42844351            {
    42854352              break _block2__branch1;
    42864353            }
    42874354          }
    4288           Expr[] _va_93 = { _c_169 , _vs_n , _c_6 };
    4289           _ve_num = Expr.concat (_va_93);
     4355          Expr[] _va_96 = { _c_171 , _vs_n , _c_6 };
     4356          _ve_num = Expr.concat (_va_96);
    42904357          break _block2;
    42914358        }
    4292         _ve_num = _c_170;
     4359        _ve_num = _c_172;
    42934360      }
    42944361      Result _gs_auxcall1 = new Result ();
    4295       org.refal.plus.library.Arithm.Add (_vs_n, _c_166, _gs_auxcall1);
     4362      org.refal.plus.library.Arithm.Add (_vs_n, _c_168, _gs_auxcall1);
    42964363      Result _ge_auxcall2 = new Result ();
    42974364      org.refal.plus.library.CppMangle.Rfp2Cpp (_vt_arg, _ge_auxcall2);
    42984365      _ge_args__0 = _ve_rest;
    42994366      _vs_n = _gs_auxcall1.getExpr ();
    4300       Expr[] _va_94 = { _c_172 , _ve_num , _c_89 , _ge_auxcall2.getExpr () , _c_171 };
    4301       _ve_pr__args = new Expr (_ve_pr__args, new Expr(Expr.concat (_va_94)));
     4367      Expr[] _va_97 = { _c_174 , _ve_num , _c_92 , _ge_auxcall2.getExpr () , _c_173 };
     4368      _ve_pr__args = new Expr (_ve_pr__args, new Expr(Expr.concat (_va_97)));
    43024369    }
    43034370  }
     
    43084375    _ge_args__0 = _ve_args;
    43094376    Expr _vs_n = Expr.empty;
    4310     _vs_n = _c_166;
     4377    _vs_n = _c_168;
    43114378    Expr _ve_pr__args = Expr.empty;
    43124379    _ve_pr__args = Expr.empty;
     
    43184385          break _iter1;
    43194386        }
    4320         Expr[] _va_95 = { _c_173 , _ve_name , _c_167 };
    4321         _v_res1.assign (new Expr (new Expr(Expr.concat (_va_95)), _ve_pr__args));
     4387        Expr[] _va_98 = { _c_175 , _ve_name , _c_169 };
     4388        _v_res1.assign (new Expr (new Expr(Expr.concat (_va_98)), _ve_pr__args));
    43224389        break _exit__iter1;
    43234390      }
     
    43494416                break _block3__branch1;
    43504417              }
    4351               int _v_len___dollar_tmp_m_518_m_22;
    4352               _v_len___dollar_tmp_m_518_m_22 = (_v_len3 - _v_len4);
    4353               Expr _vv__dollar_tmp_m_518_m_22 = Expr.empty;
    4354               _vv__dollar_tmp_m_518_m_22 = new Expr (_ve_rest, 0, _v_len___dollar_tmp_m_518_m_22);
     4418              int _v_len___dollar_tmp_m_523_m_22;
     4419              _v_len___dollar_tmp_m_523_m_22 = (_v_len3 - _v_len4);
     4420              Expr _vv__dollar_tmp_m_523_m_22 = Expr.empty;
     4421              _vv__dollar_tmp_m_523_m_22 = new Expr (_ve_rest, 0, _v_len___dollar_tmp_m_523_m_22);
    43554422              break _block3;
    43564423            }
    4357             if (!org.refal.plus.library.Compare.Gt (_vs_n, _c_166))
     4424            if (!org.refal.plus.library.Compare.Gt (_vs_n, _c_168))
    43584425            {
    43594426              break _block2__branch1;
    43604427            }
    43614428          }
    4362           Expr[] _va_96 = { _c_169 , _vs_n , _c_6 };
    4363           _ve_num = Expr.concat (_va_96);
     4429          Expr[] _va_99 = { _c_171 , _vs_n , _c_6 };
     4430          _ve_num = Expr.concat (_va_99);
    43644431          break _block2;
    43654432        }
    4366         _ve_num = _c_170;
     4433        _ve_num = _c_172;
    43674434      }
    43684435      Result _gs_auxcall1 = new Result ();
    4369       org.refal.plus.library.Arithm.Add (_vs_n, _c_166, _gs_auxcall1);
     4436      org.refal.plus.library.Arithm.Add (_vs_n, _c_168, _gs_auxcall1);
    43704437      Result _ge_auxcall2 = new Result ();
    43714438      org.refal.plus.library.CppMangle.Rfp2Cpp (_vt_arg, _ge_auxcall2);
    43724439      _ge_args__0 = _ve_rest;
    43734440      _vs_n = _gs_auxcall1.getExpr ();
    4374       Expr[] _va_97 = { _c_175 , _ve_num , _c_89 , _ge_auxcall2.getExpr () , _c_174 };
    4375       _ve_pr__args = new Expr (_ve_pr__args, new Expr(Expr.concat (_va_97)));
     4441      Expr[] _va_100 = { _c_177 , _ve_num , _c_92 , _ge_auxcall2.getExpr () , _c_176 };
     4442      _ve_pr__args = new Expr (_ve_pr__args, new Expr(Expr.concat (_va_100)));
    43764443    }
    43774444  }
     
    43794446  static  void Trace_Fail (Expr _ve_name, Result _v_res1) throws RefalException
    43804447  {
    4381     Expr[] _va_98 = { _c_176 , _ve_name , _c_167 };
    4382     _v_res1.assign (new Expr(Expr.concat (_va_98)));
     4448    Expr[] _va_101 = { _c_178 , _ve_name , _c_169 };
     4449    _v_res1.assign (new Expr(Expr.concat (_va_101)));
    43834450  }
    43844451
     
    44094476        Expr _ve_n = Expr.empty;
    44104477        _ve_n = new Expr (_v_deref__name, 0, _v_len__n);
    4411         _v_res1.assign (_c_66);
     4478        _v_res1.assign (_c_69);
    44124479        _v_res2.assign (_ve_n);
    44134480        break _block1;
     
    44164483    }
    44174484  }
     4485
     4486  static  boolean Name_To_CPP_0 (Expr _ge_arg1, Result _v_res1) throws RefalException
     4487  {
     4488    if (_ge_arg1.getLen () != 2)
     4489    {
     4490      throw new RefalException (_c_179);
     4491    }
     4492    if (!_ge_arg1.symbolAt (0))
     4493    {
     4494      throw new RefalException (_c_179);
     4495    }
     4496    Expr _v_stub1 = Expr.empty;
     4497    _v_stub1 = new Expr (_ge_arg1, 0, 1);
     4498    Expr _v_stub2 = Expr.empty;
     4499    _v_stub2 = new Expr (_ge_arg1, (0 + 1), 1);
     4500    Name_To_CPP (_v_stub1, _v_stub2, _v_res1);
     4501    return true;
     4502  }
    44184503}
  • to-imperative/branches/new-syntax/java/org/refal/plus/compiler/rfp_asail_java.java

    r2609 r2642  
    3030  static  final Expr _c_3 = Expr.concat (_va_1);
    3131  static  final Expr _c_2 = new Expr (_c_3, 1, 2);
    32   static  final Expr _c_4 = new Expr (new Word ("IDENT-COMPATIBILITY"));
    33   static  final Expr _c_5 = new Expr (new Word ("MODULE"));
    34   static  final Expr _c_6 = new Expr (new Word ("INT"));
    35   static  final Expr _c_7 = new Expr (new Word ("BigInteger"));
    36   static  final Expr _c_8 = new Expr (new Word ("ENTRIES"));
    37   static  final Expr _c_9 = new Expr (new Word ("Main"));
    38   static  final Expr _c_14 = Expr.fromSequence ("RefalRuntime.setArgs (\"");
    39   static  final Expr _c_10 = new Expr (_c_14, 12, 1);
    40   static  final Expr _c_13 = Expr.fromSequence ("\", args);");
    41   static  final Expr _c_11 = new Expr (_c_13, 8, 1);
    42   static  final Expr _c_12 = Expr.fromSequence ("package ");
    43   static  final Expr _c_15 = Expr.fromSequence (" (new Result ());");
    44   static  final Expr _c_174 = Expr.fromSequence ("java.lang.System.out.println (\"$error: \" + e);");
    45   static private final Expr[] _va_2 = { Expr.fromSequence ("catch (RefalException e) {"), new Expr (new Expr (new Expr (_c_174), new Expr (Expr.fromSequence ("java.lang.System.exit (100);")))), Expr.fromSequence ("}") };
    46   static  final Expr _c_175 = Expr.concat (_va_2);
    47   static  final Expr _c_16 = new Expr (_c_175, 27, 1);
    48   static  final Expr _c_17 = Expr.fromSequence ("try {");
    49   static  final Expr _c_18 = new Expr (_c_175);
    50   static  final Expr _c_19 = Expr.fromSequence ("public static void main (java.lang.String[] args) {");
    51   static  final Expr _c_20 = new Expr (Expr.empty);
    52   static  final Expr _c_21 = new Expr (_c_17, 3, 2);
    53   static  final Expr _c_22 = Expr.fromSequence ("public class ");
    54   static  final Expr _c_23 = new Expr (Expr.fromSequence ("import org.refal.plus.*;"));
    55   static  final Expr _c_24 = new Expr (new Word ("IMPORT"));
    56   static  final Expr _c_25 = new Expr (new Word ("FUNC"));
    57   static  final Expr _c_26 = new Expr (_c_19, 14, 4);
    58   static  final Expr _c_27 = new Expr (new Word ("FUNC?"));
    59   static  final Expr _c_152 = Expr.fromSequence ("public boolean eval (Expr arg, Result res) throws RefalException {");
    60   static  final Expr _c_28 = new Expr (_c_152, 7, 7);
    61   static  final Expr _c_176 = Expr.fromSequence ("return true;");
    62   static  final Expr _c_29 = new Expr (_c_176);
    63   static  final Expr _c_30 = new Expr (new Word ("Result"));
    64   static  final Expr _c_31 = new Expr (new Word ("Expr"));
    65   static  final Expr _c_32 = new Expr (_c_152, 41, 23);
    66   static  final Expr _c_33 = new Expr (_c_15, 0, 2);
    67   static  final Expr _c_34 = new Expr (_c_33, 0, 1);
    68   static  final Expr _c_35 = new Expr (_c_19, 7, 7);
    69   static  final Expr _c_36 = new Expr (_c_21, 1, 1);
    70   static  final Expr _c_37 = new Expr (new Word ("TRACE"));
    71   static  final Expr _c_38 = new Expr (new Word ("IF-INT-CMP"));
    72   static  final Expr _c_39 = new Expr (_c_32, 0, 1);
    73   static  final Expr _c_58 = Expr.fromSequence ("if (false)");
    74   static  final Expr _c_40 = new Expr (_c_58, 0, 4);
    75   static  final Expr _c_41 = new Expr (new Word ("IF"));
    76   static  final Expr _c_42 = new Expr (new Word ("CALL-FAILS"));
    77   static  final Expr _c_43 = new Expr (new Word ("FOR"));
    78   static  final Expr _c_44 = new Expr (new Word ("LABEL"));
    79   static  final Expr _c_45 = new Expr (_c_174, 37, 2);
    80   static  final Expr _c_46 = new Expr (new Word ("INC-ITER"));
    81   static  final Expr _c_47 = new Expr (new Word ("DEC-ITER"));
    82   static  final Expr _c_48 = Expr.fromSequence (".getLeft();");
    83   static  final Expr _c_177 = Expr.fromSequence ("Expr err = error.getExpr ();");
    84   static  final Expr _c_49 = new Expr (_c_177, 8, 3);
    85   static  final Expr _c_50 = new Expr (_c_177, 0, 5);
    86   static  final Expr _c_51 = Expr.fromSequence (".getRight();");
    87   static  final Expr _c_52 = Expr.fromSequence ("for ( ; ; ");
    88   static  final Expr _c_53 = Expr.fromSequence (": {");
    89   static  final Expr _c_54 = new Expr (new Word ("TRY"));
    90   static  final Expr _c_55 = Expr.fromSequence ("\", \"This is for avoiding 'Unreachable code' errors\");");
    91   static  final Expr _c_56 = new Expr (_c_55, 0, 4);
    92   static  final Expr _c_57 = Expr.fromSequence ("throw new RefalException (\"");
    93   static  final Expr _c_59 = new Expr (new Expr (_c_17, 0, 3));
    94   static  final Expr _c_60 = new Expr (new Word ("CATCH-ERROR"));
    95   static  final Expr _c_61 = new Expr (_c_177);
    96   static  final Expr _c_62 = Expr.fromSequence ("catch (RefalException error) {");
    97   static  final Expr _c_63 = new Expr (new Word ("RETFAIL"));
    98   static  final Expr _c_178 = Expr.fromSequence ("return false;");
    99   static private final Expr[] _va_3 = { Expr.fromSequence (") {"), new Expr (_c_178), Expr.fromSequence ("}") };
    100   static  final Expr _c_100 = Expr.concat (_va_3);
    101   static  final Expr _c_64 = new Expr (_c_100, 3, 1);
    102   static  final Expr _c_65 = new Expr (new Word ("FATAL"));
    103   static  final Expr _c_66 = Expr.fromSequence ("\", \"Unexpected fail\");");
    104   static  final Expr _c_67 = new Expr (new Word ("LSPLIT"));
    105   static  final Expr _c_68 = Expr.fromSequence ("_va_");
    106   static  final Expr _c_69 = new Expr (_c_48, 9, 2);
    107   static  final Expr _c_70 = Expr.fromSequence (".leftSplit(");
    108   static  final Expr _c_71 = Expr.fromSequence ("Expr.SplitIterator ");
    109   static  final Expr _c_72 = new Expr (new Word ("RSPLIT"));
    110   static  final Expr _c_73 = Expr.fromSequence (".rightSplit(");
    111   static  final Expr _c_74 = new Expr (new Word ("DECL"));
    112   static  final Expr _c_75 = Expr.fromSequence ("int ");
    113   static  final Expr _c_76 = new Expr (new Word ("ASSIGN"));
    114   static  final Expr _c_77 = Expr.fromSequence (".assign (");
    115   static  final Expr _c_78 = Expr.fromSequence (" = new Result ();");
    116   static  final Expr _c_79 = new Expr (_c_78, 7, 7);
    117   static  final Expr _c_80 = Expr.fromSequence (" = Expr.empty;");
    118   static  final Expr _c_81 = new Expr (new Word ("DROP"));
    119   static  final Expr _c_82 = Expr.fromSequence (".drop ();");
    120   static  final Expr _c_83 = new Expr (new Word ("CONTINUE"));
    121   static  final Expr _c_84 = Expr.fromSequence ("continue ");
    122   static  final Expr _c_85 = new Expr (new Word ("BREAK"));
    123   static  final Expr _c_86 = Expr.fromSequence ("break ");
    124   static  final Expr _c_87 = new Expr (new Word ("ERROR"));
    125   static  final Expr _c_88 = new Expr (_c_57, 0, 26);
    126   static  final Expr _c_89 = new Expr (new Word ("CONSTEXPR"));
    127   static  final Expr _c_90 = new Expr (new Word ("STATIC"));
    128   static  final Expr _c_91 = Expr.fromSequence (" final Expr ");
    129   static  final Expr _c_92 = new Expr (new Word ("OBJ"));
    130   static  final Expr _c_93 = Expr.fromSequence ("Named");
    131   static  final Expr _c_94 = Expr.fromSequence ("\"));");
    132   static  final Expr _c_95 = new Expr (_c_57, 24, 3);
    133   static  final Expr _c_96 = Expr.fromSequence (" = new Expr (new org.refal.plus.library.");
    134   static  final Expr _c_97 = new Expr (new Word ("DECL-OBJ"));
    135   static  final Expr _c_98 = new Expr (new Word ("DECL-FUNC"));
    136   static  final Expr _c_99 = new Expr (new Word ("TAILCALL?"));
    137   static  final Expr _c_101 = Expr.fromSequence ("if (!");
    138   static  final Expr _c_102 = new Expr (_c_177, 16, 12);
    139   static  final Expr _c_103 = new Expr (_c_80, 3, 10);
    140   static  final Expr _c_104 = new Expr (_c_56, 1, 2);
    141   static  final Expr _c_105 = new Expr (_c_96, 3, 10);
    142   static  final Expr _c_106 = new Expr (new Func () {
     32  static  final Expr _c_4 = new Expr (new Word ("MODULE"));
     33  static  final Expr _c_5 = new Expr (new Word ("INT"));
     34  static  final Expr _c_6 = new Expr (new Word ("BigInteger"));
     35  static  final Expr _c_7 = new Expr (new Word ("ENTRIES"));
     36  static  final Expr _c_8 = new Expr (new Word ("Main"));
     37  static  final Expr _c_13 = Expr.fromSequence ("RefalRuntime.setArgs (\"");
     38  static  final Expr _c_9 = new Expr (_c_13, 12, 1);
     39  static  final Expr _c_12 = Expr.fromSequence ("\", args);");
     40  static  final Expr _c_10 = new Expr (_c_12, 8, 1);
     41  static  final Expr _c_11 = Expr.fromSequence ("package ");
     42  static  final Expr _c_14 = Expr.fromSequence (" (new Result ());");
     43  static  final Expr _c_173 = Expr.fromSequence ("java.lang.System.out.println (\"$error: \" + e);");
     44  static private final Expr[] _va_2 = { Expr.fromSequence ("catch (RefalException e) {"), new Expr (new Expr (new Expr (_c_173), new Expr (Expr.fromSequence ("java.lang.System.exit (100);")))), Expr.fromSequence ("}") };
     45  static  final Expr _c_174 = Expr.concat (_va_2);
     46  static  final Expr _c_15 = new Expr (_c_174, 27, 1);
     47  static  final Expr _c_16 = Expr.fromSequence ("try {");
     48  static  final Expr _c_17 = new Expr (_c_174);
     49  static  final Expr _c_18 = Expr.fromSequence ("public static void main (java.lang.String[] args) {");
     50  static  final Expr _c_19 = new Expr (Expr.empty);
     51  static  final Expr _c_20 = new Expr (_c_16, 3, 2);
     52  static  final Expr _c_21 = Expr.fromSequence ("public class ");
     53  static  final Expr _c_22 = new Expr (Expr.fromSequence ("import org.refal.plus.*;"));
     54  static  final Expr _c_23 = new Expr (new Word ("IMPORT"));
     55  static  final Expr _c_24 = new Expr (new Word ("FUNC"));
     56  static  final Expr _c_25 = new Expr (_c_18, 14, 4);
     57  static  final Expr _c_26 = new Expr (new Word ("FUNC?"));
     58  static  final Expr _c_151 = Expr.fromSequence ("public boolean eval (Expr arg, Result res) throws RefalException {");
     59  static  final Expr _c_27 = new Expr (_c_151, 7, 7);
     60  static  final Expr _c_175 = Expr.fromSequence ("return true;");
     61  static  final Expr _c_28 = new Expr (_c_175);
     62  static  final Expr _c_29 = new Expr (new Word ("Result"));
     63  static  final Expr _c_30 = new Expr (new Word ("Expr"));
     64  static  final Expr _c_31 = new Expr (_c_151, 41, 23);
     65  static  final Expr _c_32 = new Expr (_c_14, 0, 2);
     66  static  final Expr _c_33 = new Expr (_c_32, 0, 1);
     67  static  final Expr _c_34 = new Expr (_c_18, 7, 7);
     68  static  final Expr _c_35 = new Expr (_c_20, 1, 1);
     69  static  final Expr _c_36 = new Expr (new Word ("TRACE"));
     70  static  final Expr _c_37 = new Expr (new Word ("IF-INT-CMP"));
     71  static  final Expr _c_38 = new Expr (_c_31, 0, 1);
     72  static  final Expr _c_57 = Expr.fromSequence ("if (false)");
     73  static  final Expr _c_39 = new Expr (_c_57, 0, 4);
     74  static  final Expr _c_40 = new Expr (new Word ("IF"));
     75  static  final Expr _c_41 = new Expr (new Word ("CALL-FAILS"));
     76  static  final Expr _c_42 = new Expr (new Word ("FOR"));
     77  static  final Expr _c_43 = new Expr (new Word ("LABEL"));
     78  static  final Expr _c_44 = new Expr (_c_173, 37, 2);
     79  static  final Expr _c_45 = new Expr (new Word ("INC-ITER"));
     80  static  final Expr _c_46 = new Expr (new Word ("DEC-ITER"));
     81  static  final Expr _c_47 = Expr.fromSequence (".getLeft();");
     82  static  final Expr _c_176 = Expr.fromSequence ("Expr err = error.getExpr ();");
     83  static  final Expr _c_48 = new Expr (_c_176, 8, 3);
     84  static  final Expr _c_49 = new Expr (_c_176, 0, 5);
     85  static  final Expr _c_50 = Expr.fromSequence (".getRight();");
     86  static  final Expr _c_51 = Expr.fromSequence ("for ( ; ; ");
     87  static  final Expr _c_52 = Expr.fromSequence (": {");
     88  static  final Expr _c_53 = new Expr (new Word ("TRY"));
     89  static  final Expr _c_54 = Expr.fromSequence ("\", \"This is for avoiding 'Unreachable code' errors\");");
     90  static  final Expr _c_55 = new Expr (_c_54, 0, 4);
     91  static  final Expr _c_56 = Expr.fromSequence ("throw new RefalException (\"");
     92  static  final Expr _c_58 = new Expr (new Expr (_c_16, 0, 3));
     93  static  final Expr _c_59 = new Expr (new Word ("CATCH-ERROR"));
     94  static  final Expr _c_60 = new Expr (_c_176);
     95  static  final Expr _c_61 = Expr.fromSequence ("catch (RefalException error) {");
     96  static  final Expr _c_62 = new Expr (new Word ("RETFAIL"));
     97  static  final Expr _c_177 = Expr.fromSequence ("return false;");
     98  static private final Expr[] _va_3 = { Expr.fromSequence (") {"), new Expr (_c_177), Expr.fromSequence ("}") };
     99  static  final Expr _c_99 = Expr.concat (_va_3);
     100  static  final Expr _c_63 = new Expr (_c_99, 3, 1);
     101  static  final Expr _c_64 = new Expr (new Word ("FATAL"));
     102  static  final Expr _c_65 = Expr.fromSequence ("\", \"Unexpected fail\");");
     103  static  final Expr _c_66 = new Expr (new Word ("LSPLIT"));
     104  static  final Expr _c_67 = Expr.fromSequence ("_va_");
     105  static  final Expr _c_68 = new Expr (_c_47, 9, 2);
     106  static  final Expr _c_69 = Expr.fromSequence (".leftSplit(");
     107  static  final Expr _c_70 = Expr.fromSequence ("Expr.SplitIterator ");
     108  static  final Expr _c_71 = new Expr (new Word ("RSPLIT"));
     109  static  final Expr _c_72 = Expr.fromSequence (".rightSplit(");
     110  static  final Expr _c_73 = new Expr (new Word ("DECL"));
     111  static  final Expr _c_74 = Expr.fromSequence ("int ");
     112  static  final Expr _c_75 = new Expr (new Word ("ASSIGN"));
     113  static  final Expr _c_76 = Expr.fromSequence (".assign (");
     114  static  final Expr _c_77 = Expr.fromSequence (" = new Result ();");
     115  static  final Expr _c_78 = new Expr (_c_77, 7, 7);
     116  static  final Expr _c_79 = Expr.fromSequence (" = Expr.empty;");
     117  static  final Expr _c_80 = new Expr (new Word ("DROP"));
     118  static  final Expr _c_81 = Expr.fromSequence (".drop ();");
     119  static  final Expr _c_82 = new Expr (new Word ("CONTINUE"));
     120  static  final Expr _c_83 = Expr.fromSequence ("continue ");
     121  static  final Expr _c_84 = new Expr (new Word ("BREAK"));
     122  static  final Expr _c_85 = Expr.fromSequence ("break ");
     123  static  final Expr _c_86 = new Expr (new Word ("ERROR"));
     124  static  final Expr _c_87 = new Expr (_c_56, 0, 26);
     125  static  final Expr _c_88 = new Expr (new Word ("CONSTEXPR"));
     126  static  final Expr _c_89 = new Expr (new Word ("STATIC"));
     127  static  final Expr _c_90 = Expr.fromSequence (" final Expr ");
     128  static  final Expr _c_91 = new Expr (new Word ("OBJ"));
     129  static  final Expr _c_92 = Expr.fromSequence ("Named");
     130  static  final Expr _c_93 = Expr.fromSequence ("\"));");
     131  static  final Expr _c_94 = new Expr (_c_56, 24, 3);
     132  static  final Expr _c_95 = Expr.fromSequence (" = new Expr (new org.refal.plus.library.");
     133  static  final Expr _c_96 = new Expr (new Word ("DECL-OBJ"));
     134  static  final Expr _c_97 = new Expr (new Word ("DECL-FUNC"));
     135  static  final Expr _c_98 = new Expr (new Word ("TAILCALL?"));
     136  static  final Expr _c_100 = Expr.fromSequence ("if (!");
     137  static  final Expr _c_101 = new Expr (_c_176, 16, 12);
     138  static  final Expr _c_102 = new Expr (_c_79, 3, 10);
     139  static  final Expr _c_103 = new Expr (_c_55, 1, 2);
     140  static  final Expr _c_104 = new Expr (_c_95, 3, 10);
     141  static  final Expr _c_105 = new Expr (new Func () {
    143142    public boolean eval (Expr arg, Result res) throws RefalException {
    144143      return Term_Ref_To_Java_0 (arg, res);
    145144    }
    146145  });
    147   static  final Expr _c_107 = new Expr (new Word (","));
    148   static  final Expr _c_108 = Expr.fromSequence (" };");
    149   static  final Expr _c_109 = Expr.fromSequence (" = { ");
    150   static  final Expr _c_147 = Expr.fromSequence ("static private final Expr[] ");
    151   static  final Expr _c_110 = new Expr (_c_147, 21, 7);
    152   static  final Expr _c_111 = Expr.fromSequence ("Expr.concat (");
    153   static  final Expr _c_112 = new Expr (new Word ("PAREN"));
    154   static  final Expr _c_113 = Expr.fromSequence ("new Expr(");
    155   static  final Expr _c_114 = new Expr (new Word ("DEREF"));
    156   static  final Expr _c_115 = Expr.fromSequence (".at (");
    157   static  final Expr _c_116 = Expr.fromSequence ("(Expr) ");
    158   static  final Expr _c_117 = new Expr (new Word ("SUBEXPR"));
    159   static  final Expr _c_118 = new Expr (new Word ("REF"));
    160   static  final Expr _c_119 = new Expr (new Word ("ERROR-EXPR"));
    161   static  final Expr _c_120 = new Expr (_c_177, 5, 3);
    162   static  final Expr _c_121 = new Expr (new Word ("Illegal int-symbol: "));
    163   static  final Expr _c_122 = new Expr (new Word ("LENGTH"));
    164   static  final Expr _c_123 = Expr.fromSequence (".getLen ()");
    165   static  final Expr _c_124 = new Expr (new Word ("MAX"));
    166   static  final Expr _c_125 = Expr.fromSequence ("java.lang.Math.max (");
    167   static  final Expr _c_126 = new Expr (new Word ("MIN"));
    168   static  final Expr _c_127 = Expr.fromSequence ("java.lang.Math.min (");
    169   static  final Expr _c_128 = new Expr (new Word ("INFIX"));
    170   static  final Expr _c_129 = new Expr (new Func () {
     146  static  final Expr _c_106 = new Expr (new Word (","));
     147  static  final Expr _c_107 = Expr.fromSequence (" };");
     148  static  final Expr _c_108 = Expr.fromSequence (" = { ");
     149  static  final Expr _c_146 = Expr.fromSequence ("static private final Expr[] ");
     150  static  final Expr _c_109 = new Expr (_c_146, 21, 7);
     151  static  final Expr _c_110 = Expr.fromSequence ("Expr.concat (");
     152  static  final Expr _c_111 = new Expr (new Word ("PAREN"));
     153  static  final Expr _c_112 = Expr.fromSequence ("new Expr(");
     154  static  final Expr _c_113 = new Expr (new Word ("DEREF"));
     155  static  final Expr _c_114 = Expr.fromSequence (".at (");
     156  static  final Expr _c_115 = Expr.fromSequence ("(Expr) ");
     157  static  final Expr _c_116 = new Expr (new Word ("SUBEXPR"));
     158  static  final Expr _c_117 = new Expr (new Word ("REF"));
     159  static  final Expr _c_118 = new Expr (new Word ("ERROR-EXPR"));
     160  static  final Expr _c_119 = new Expr (_c_176, 5, 3);
     161  static  final Expr _c_120 = new Expr (new Word ("Illegal int-symbol: "));
     162  static  final Expr _c_121 = new Expr (new Word ("LENGTH"));
     163  static  final Expr _c_122 = Expr.fromSequence (".getLen ()");
     164  static  final Expr _c_123 = new Expr (new Word ("MAX"));
     165  static  final Expr _c_124 = Expr.fromSequence ("java.lang.Math.max (");
     166  static  final Expr _c_125 = new Expr (new Word ("MIN"));
     167  static  final Expr _c_126 = Expr.fromSequence ("java.lang.Math.min (");
     168  static  final Expr _c_127 = new Expr (new Word ("INFIX"));
     169  static  final Expr _c_128 = new Expr (new Func () {
    171170    public boolean eval (Expr arg, Result res) throws RefalException {
    172171      return Expr_Int_To_Java_0 (arg, res);
    173172    }
    174173  });
    175   static  final Expr _c_130 = new Expr (_c_33, 1, 1);
    176   static  final Expr _c_131 = new Expr (new Word ("+"));
    177   static  final Expr _c_132 = new Expr (new Word ("CALL"));
    178   static  final Expr _c_133 = new Expr (_c_101, 4, 1);
    179   static  final Expr _c_134 = new Expr (new Word ("ITER-FAILS"));
    180   static  final Expr _c_135 = new Expr (new java.math.BigInteger ("0"));
    181   static  final Expr _c_136 = new Expr (new java.math.BigInteger ("2"));
    182   static  final Expr _c_137 = Expr.fromSequence (".isValid ()");
    183   static  final Expr _c_138 = new Expr (new Word ("SYMBOL?"));
    184   static  final Expr _c_139 = Expr.fromSequence (".symbolAt (");
    185   static  final Expr _c_140 = new Expr (new Word ("EQ"));
    186   static  final Expr _c_141 = Expr.fromSequence (".eq (");
    187   static  final Expr _c_142 = new Expr (new Word ("TERM-EQ"));
    188   static  final Expr _c_143 = Expr.fromSequence (".termEq (");
    189   static  final Expr _c_144 = new Expr (new Word ("NOT"));
    190   static  final Expr _c_145 = Expr.fromSequence (".next ()");
    191   static  final Expr _c_146 = Expr.fromSequence (".prev ()");
    192   static  final Expr _c_148 = new Expr (_c_94, 0, 2);
    193   static  final Expr _c_149 = Expr.fromSequence ("Expr.fromSequence (\"");
    194   static  final Expr _c_150 = Expr.fromSequence (" (arg, res);");
    195   static  final Expr _c_151 = new Expr (_c_176, 0, 7);
    196   static  final Expr _c_153 = Expr.fromSequence ("})");
    197   static  final Expr _c_154 = Expr.fromSequence ("new Expr (new Func () {");
    198   static  final Expr _c_155 = Expr.fromSequence ("java.math.BigInteger");
    199   static  final Expr _c_156 = new Expr (_c_94, 0, 3);
    200   static  final Expr _c_157 = new Expr (_c_154, 0, 14);
    201   static  final Expr _c_158 = Expr.fromSequence ("new Expr (new Word (\"");
    202   static  final Expr _c_160 = Expr.fromSequence ("\\\\");
    203   static  final Expr _c_159 = new Expr (_c_160, 0, 1);
    204   static  final Expr _c_161 = Expr.fromSequence ("\n");
    205   static  final Expr _c_162 = Expr.fromSequence ("\\n");
    206   static  final Expr _c_163 = Expr.fromSequence ("\t");
    207   static  final Expr _c_164 = Expr.fromSequence ("\\t");
    208   static  final Expr _c_165 = Expr.fromSequence ("\r");
    209   static  final Expr _c_166 = Expr.fromSequence ("\\r");
    210   static  final Expr _c_167 = new Expr (_c_148, 0, 1);
    211   static  final Expr _c_168 = Expr.fromSequence ("\\\"");
    212   static  final Expr _c_169 = new Expr (_c_102, 0, 11);
    213   static  final Expr _c_170 = new Expr (new Word ("EXPORT"));
    214   static  final Expr _c_171 = new Expr (_c_152, 0, 6);
    215   static  final Expr _c_172 = new Expr (new java.math.BigInteger ("1"));
     174  static  final Expr _c_129 = new Expr (_c_32, 1, 1);
     175  static  final Expr _c_130 = new Expr (new Word ("+"));
     176  static  final Expr _c_131 = new Expr (new Word ("CALL"));
     177  static  final Expr _c_132 = new Expr (_c_100, 4, 1);
     178  static  final Expr _c_133 = new Expr (new Word ("ITER-FAILS"));
     179  static  final Expr _c_134 = new Expr (new java.math.BigInteger ("0"));
     180  static  final Expr _c_135 = new Expr (new java.math.BigInteger ("2"));
     181  static  final Expr _c_136 = Expr.fromSequence (".isValid ()");
     182  static  final Expr _c_137 = new Expr (new Word ("SYMBOL?"));
     183  static  final Expr _c_138 = Expr.fromSequence (".symbolAt (");
     184  static  final Expr _c_139 = new Expr (new Word ("EQ"));
     185  static  final Expr _c_140 = Expr.fromSequence (".eq (");
     186  static  final Expr _c_141 = new Expr (new Word ("TERM-EQ"));
     187  static  final Expr _c_142 = Expr.fromSequence (".termEq (");
     188  static  final Expr _c_143 = new Expr (new Word ("NOT"));
     189  static  final Expr _c_144 = Expr.fromSequence (".next ()");
     190  static  final Expr _c_145 = Expr.fromSequence (".prev ()");
     191  static  final Expr _c_147 = new Expr (_c_93, 0, 2);
     192  static  final Expr _c_148 = Expr.fromSequence ("Expr.fromSequence (\"");
     193  static  final Expr _c_149 = Expr.fromSequence (" (arg, res);");
     194  static  final Expr _c_150 = new Expr (_c_175, 0, 7);
     195  static  final Expr _c_152 = Expr.fromSequence ("})");
     196  static  final Expr _c_153 = Expr.fromSequence ("new Expr (new Func () {");
     197  static  final Expr _c_154 = Expr.fromSequence ("java.math.BigInteger");
     198  static  final Expr _c_155 = new Expr (_c_93, 0, 3);
     199  static  final Expr _c_156 = new Expr (_c_153, 0, 14);
     200  static  final Expr _c_157 = Expr.fromSequence ("new Expr (new Word (\"");
     201  static  final Expr _c_159 = Expr.fromSequence ("\\\\");
     202  static  final Expr _c_158 = new Expr (_c_159, 0, 1);
     203  static  final Expr _c_160 = Expr.fromSequence ("\n");
     204  static  final Expr _c_161 = Expr.fromSequence ("\\n");
     205  static  final Expr _c_162 = Expr.fromSequence ("\t");
     206  static  final Expr _c_163 = Expr.fromSequence ("\\t");
     207  static  final Expr _c_164 = Expr.fromSequence ("\r");
     208  static  final Expr _c_165 = Expr.fromSequence ("\\r");
     209  static  final Expr _c_166 = new Expr (_c_147, 0, 1);
     210  static  final Expr _c_167 = Expr.fromSequence ("\\\"");
     211  static  final Expr _c_168 = new Expr (_c_101, 0, 11);
     212  static  final Expr _c_169 = new Expr (new Word ("EXPORT"));
     213  static  final Expr _c_170 = new Expr (_c_151, 0, 6);
     214  static  final Expr _c_171 = new Expr (new java.math.BigInteger ("1"));
    216215  static private final Expr[] _va_4 = { new Expr (new Word ("Apply")), new Expr (new Word ("Apply")), new Expr (new Word ("Unexpected fail")) };
    217   static  final Expr _c_173 = Expr.concat (_va_4);
     216  static  final Expr _c_172 = Expr.concat (_va_4);
    218217
    219218  static  void GetJavaName (Expr _ve_name, Result _v_res1) throws RefalException
     
    236235  static  void GetJavaModuleName (Expr _ve_moduleName, Result _v_res1) throws RefalException
    237236  {
    238     Expr _ge_moduleName__1 = Expr.empty;
    239237    _block1: {
    240238      _block1__branch1: {
     
    255253        Expr _ve_tail = Expr.empty;
    256254        _ve_tail = new Expr (_ve_moduleName, (0 + 1 + 1), _v_len__tail);
    257         _ge_moduleName__1 = new Expr (_c_3, _ve_tail);
     255        _v_res1.assign (new Expr (_c_3, _ve_tail));
    258256        break _block1;
    259257      }
    260       _ge_moduleName__1 = _ve_moduleName;
    261     }
    262     _block2: {
    263       _block2__branch1: {
    264         if (!org.refal.plus.library.Table.IsInTable (rfp_helper.RFP_Options, _c_4))
    265         {
    266           break _block2__branch1;
    267         }
    268         _v_res1.assign (_ge_moduleName__1);
    269         break _block2;
    270       }
    271       GetJavaName (_ge_moduleName__1, _v_res1);
     258      _v_res1.assign (_ve_moduleName);
    272259    }
    273260  }
     
    307294    int _v_len__moduleName;
    308295    _v_len__moduleName = (_v_len3 - _v_len4);
    309     if (!_c_5.termEq (_v_deref__arg1, 0))
     296    if (!_c_4.termEq (_v_deref__arg1, 0))
    310297    {
    311298      throw new RefalException ("org.refal.plus.compiler.rfp_asail_java", "RFP_ASAIL_To_Java", "Unexpected fail");
     
    320307      _block1__branch1: {
    321308        Result _ge_auxcall1 = new Result ();
    322         if (!org.refal.plus.library.Table.Lookup (rfp_helper.RFP_Options, _c_6, _ge_auxcall1))
     309        if (!org.refal.plus.library.Table.Lookup (rfp_helper.RFP_Options, _c_5, _ge_auxcall1))
    323310        {
    324311          break _block1__branch1;
     
    327314        break _block1;
    328315      }
    329       org.refal.plus.library.Box.Store (Int, _c_7);
     316      org.refal.plus.library.Box.Store (Int, _c_6);
    330317    }
    331318    org.refal.plus.library.Box.Store (Current_Namespace, _ve_moduleName);
     
    333320      _block2__branch1: {
    334321        Result _ge_auxcall2 = new Result ();
    335         if (!org.refal.plus.library.Table.Lookup (rfp_helper.RFP_Options, _c_8, _ge_auxcall2))
     322        if (!org.refal.plus.library.Table.Lookup (rfp_helper.RFP_Options, _c_7, _ge_auxcall2))
    336323        {
    337324          break _block2__branch1;
     
    340327        break _block2;
    341328      }
    342       org.refal.plus.library.Box.Store (Entry, new Expr(new Expr (_ve_moduleName, _c_9)));
     329      org.refal.plus.library.Box.Store (Entry, new Expr(new Expr (_ve_moduleName, _c_8)));
    343330    }
    344331    org.refal.plus.library.Box.Store (Entry_Name, Expr.empty);
    345332    Result _ge_auxcall3 = new Result ();
    346     org.refal.plus.library.List.Intersperse (_c_10, _ve_moduleName, _ge_auxcall3);
     333    org.refal.plus.library.List.Intersperse (_c_9, _ve_moduleName, _ge_auxcall3);
    347334    Result _vs_refal__mod__name = new Result ();
    348335    org.refal.plus.library.Convert.ToWord (_ge_auxcall3.getExpr (), _vs_refal__mod__name);
     
    396383              break _block4__branch1;
    397384            }
    398             int _v_len___dollar_tmp_m_96_m_22;
    399             _v_len___dollar_tmp_m_96_m_22 = (_v_len9 - _v_len10);
    400             Expr _vv__dollar_tmp_m_96_m_22 = Expr.empty;
    401             _vv__dollar_tmp_m_96_m_22 = new Expr (_ve_package, 0, _v_len___dollar_tmp_m_96_m_22);
     385            int _v_len___dollar_tmp_m_92_m_22;
     386            _v_len___dollar_tmp_m_92_m_22 = (_v_len9 - _v_len10);
     387            Expr _vv__dollar_tmp_m_92_m_22 = Expr.empty;
     388            _vv__dollar_tmp_m_92_m_22 = new Expr (_ve_package, 0, _v_len___dollar_tmp_m_92_m_22);
    402389            Result _ge_auxcall4 = new Result ();
    403             org.refal.plus.library.List.Intersperse (_c_10, _ve_package, _ge_auxcall4);
    404             Expr[] _va_5 = { _c_12 , _ge_auxcall4.getExpr () , _c_11 };
     390            org.refal.plus.library.List.Intersperse (_c_9, _ve_package, _ge_auxcall4);
     391            Expr[] _va_5 = { _c_11 , _ge_auxcall4.getExpr () , _c_10 };
    405392            _ge_package__3 = new Expr(Expr.concat (_va_5));
    406393            break _block4;
     
    413400            Result _v_Get1 = new Result ();
    414401            org.refal.plus.library.Box.Get (Entry_Name, _v_Get1);
     402            if (_v_Get1.getExpr ().getLen () != 1)
     403            {
     404              break _block5__branch1;
     405            }
     406            if (_v_Get1.getExpr ().symbolAt (0))
     407            {
     408              break _block5__branch1;
     409            }
     410            Expr _v_deref__Get1 = Expr.empty;
     411            _v_deref__Get1 = (Expr) _v_Get1.getExpr ().at (0);
    415412            int _v_len11;
    416             _v_len11 = _v_Get1.getExpr ().getLen ();
     413            _v_len11 = _v_deref__Get1.getLen ();
    417414            int _v_len12;
    418             _v_len12 = 0;
    419             if (_v_len11 < (_v_len12 + 1))
     415            _v_len12 = 1;
     416            if (_v_len11 < _v_len12)
    420417            {
    421418              break _block5__branch1;
    422419            }
    423             int _v_len__name;
    424             _v_len__name = (_v_len11 - _v_len12);
    425             Expr _vv_name = Expr.empty;
    426             _vv_name = new Expr (_v_Get1.getExpr (), 0, _v_len__name);
    427             Expr[] _va_8 = { _c_14 , _vs_refal__mod__name.getExpr () , _c_13 };
    428             Expr[] _va_9 = { _c_17 , new Expr(new Expr (_vv_name, _c_15)) , _c_16 };
    429             Expr[] _va_7 = { new Expr(Expr.concat (_va_8)) , new Expr(Expr.concat (_va_9)) , _c_18 };
    430             Expr[] _va_6 = { _c_19 , new Expr(Expr.concat (_va_7)) , _c_16 };
    431             _ve_entry = new Expr (_c_20, new Expr(Expr.concat (_va_6)));
     420            int _v_len___dollar_tmp_m_95_m_31;
     421            _v_len___dollar_tmp_m_95_m_31 = (_v_len11 - _v_len12);
     422            if (!_v_deref__Get1.symbolAt ((0 + _v_len___dollar_tmp_m_95_m_31)))
     423            {
     424              break _block5__branch1;
     425            }
     426            Expr _ve__dollar_tmp_m_95_m_31 = Expr.empty;
     427            _ve__dollar_tmp_m_95_m_31 = new Expr (_v_deref__Get1, 0, _v_len___dollar_tmp_m_95_m_31);
     428            Expr _vs_name = Expr.empty;
     429            _vs_name = new Expr (_v_deref__Get1, (0 + _v_len___dollar_tmp_m_95_m_31), 1);
     430            Expr[] _va_8 = { _c_13 , _vs_refal__mod__name.getExpr () , _c_12 };
     431            Expr[] _va_9 = { _c_16 , new Expr(new Expr (_vs_name, _c_14)) , _c_15 };
     432            Expr[] _va_7 = { new Expr(Expr.concat (_va_8)) , new Expr(Expr.concat (_va_9)) , _c_17 };
     433            Expr[] _va_6 = { _c_18 , new Expr(Expr.concat (_va_7)) , _c_15 };
     434            _ve_entry = new Expr (_c_19, new Expr(Expr.concat (_va_6)));
    432435            break _block5;
    433436          }
    434437          _ve_entry = Expr.empty;
    435438        }
    436         Expr[] _va_11 = { _c_22 , _vs_class , _c_21 , new Expr(new Expr (_gv_java__2, _ve_entry)) , _c_16 };
    437         Expr[] _va_10 = { _ge_package__3 , _c_23 , new Expr(Expr.concat (_va_11)) };
     439        Expr[] _va_11 = { _c_21 , _vs_class , _c_20 , new Expr(new Expr (_gv_java__2, _ve_entry)) , _c_15 };
     440        Expr[] _va_10 = { _ge_package__3 , _c_22 , new Expr(Expr.concat (_va_11)) };
    438441        _ve_java = Expr.concat (_va_10);
    439442        break _block3;
     
    480483              break _block2__branch1;
    481484            }
    482             int _v_len___dollar_tmp_m_116_m_20;
    483             _v_len___dollar_tmp_m_116_m_20 = (_v_len3 - _v_len4);
     485            int _v_len___dollar_tmp_m_112_m_20;
     486            _v_len___dollar_tmp_m_112_m_20 = (_v_len3 - _v_len4);
    484487            if (!_v_deref__item.symbolAt (0))
    485488            {
    486489              break _block2__branch1;
    487490            }
    488             if (!_c_24.termEq (_v_deref__item, (0 + 1)))
     491            if (!_c_23.termEq (_v_deref__item, (0 + 1)))
    489492            {
    490493              break _block2__branch1;
     
    492495            Expr _vs_tag = Expr.empty;
    493496            _vs_tag = new Expr (_v_deref__item, 0, 1);
    494             Expr _ve__dollar_tmp_m_116_m_20 = Expr.empty;
    495             _ve__dollar_tmp_m_116_m_20 = new Expr (_v_deref__item, (0 + 1 + 1), _v_len___dollar_tmp_m_116_m_20);
     497            Expr _ve__dollar_tmp_m_112_m_20 = Expr.empty;
     498            _ve__dollar_tmp_m_112_m_20 = new Expr (_v_deref__item, (0 + 1 + 1), _v_len___dollar_tmp_m_112_m_20);
    496499            _ve_java__item = Expr.empty;
    497500            break _block2;
     
    570573            _block3: {
    571574              _block3__branch1: {
    572                 if (!_vs_tag.termEq (_c_25, 0))
     575                if (!_vs_tag.termEq (_c_24, 0))
    573576                {
    574577                  break _block3__branch1;
    575578                }
    576                 _ve_return__type = _c_26;
     579                _ve_return__type = _c_25;
    577580                _ve_return = Expr.empty;
    578581                break _block3;
    579582              }
    580               if (!_vs_tag.termEq (_c_27, 0))
     583              if (!_vs_tag.termEq (_c_26, 0))
    581584              {
    582585                break _block2__branch2;
    583586              }
    584               _ve_return__type = _c_28;
    585               _ve_return = _c_29;
     587              _ve_return__type = _c_27;
     588              _ve_return = _c_28;
    586589            }
    587590            org.refal.plus.library.Box.Store (Ress, _ve_ress);
     
    598601                _exit1: _continue1: for ( ; ; _va_12.next ())
    599602                {
    600                   Expr _ve__dollar_tmp_m_124_m_25 = _va_12.getLeft();
     603                  Expr _ve__dollar_tmp_m_120_m_25 = _va_12.getLeft();
    601604                  Expr _v_lsplit__Get1 = _va_12.getRight();
    602605                  if (!_va_12.isValid ())
     
    612615                    break _block4__branch1;
    613616                  }
    614                   int _v_len___dollar_tmp_m_124_m_34;
    615                   _v_len___dollar_tmp_m_124_m_34 = (_v_len11 - _v_len12);
     617                  int _v_len___dollar_tmp_m_120_m_34;
     618                  _v_len___dollar_tmp_m_120_m_34 = (_v_len11 - _v_len12);
    616619                  if (!_vt_name.termEq (_v_lsplit__Get1, 0))
    617620                  {
    618621                    continue _continue1;
    619622                  }
    620                   Expr _ve__dollar_tmp_m_124_m_34 = Expr.empty;
    621                   _ve__dollar_tmp_m_124_m_34 = new Expr (_v_lsplit__Get1, (0 + 1), _v_len___dollar_tmp_m_124_m_34);
    622                   Result _ge_auxcall1 = new Result ();
    623                   org.refal.plus.library.JavaMangle.Rfp2Java (_vt_name, _ge_auxcall1);
    624                   org.refal.plus.library.Box.Store (Entry_Name, _ge_auxcall1.getExpr ());
     623                  Expr _ve__dollar_tmp_m_120_m_34 = Expr.empty;
     624                  _ve__dollar_tmp_m_120_m_34 = new Expr (_v_lsplit__Get1, (0 + 1), _v_len___dollar_tmp_m_120_m_34);
     625                  org.refal.plus.library.Box.Store (Entry_Name, _vt_name);
    625626                  break _exit1;
    626627                }
     
    628629              }
    629630            }
     631            Result _ge_auxcall1 = new Result ();
     632            Name_To_Java (_vt_name, _ge_auxcall1);
     633            org.refal.plus.library.Box.Store (Func_Name, _ge_auxcall1.getExpr ());
    630634            Result _ge_auxcall2 = new Result ();
    631             Name_To_Java (_vt_name, _ge_auxcall2);
    632             org.refal.plus.library.Box.Store (Func_Name, _ge_auxcall2.getExpr ());
     635            Access_Mode (_vs_linkage, _ge_auxcall2);
    633636            Result _ge_auxcall3 = new Result ();
    634             Access_Mode (_vs_linkage, _ge_auxcall3);
     637            org.refal.plus.library.Box.Get (Func_Name, _ge_auxcall3);
    635638            Result _ge_auxcall4 = new Result ();
    636             org.refal.plus.library.Box.Get (Func_Name, _ge_auxcall4);
     639            Expr[] _va_13 = { _c_30 , _ve_args , _c_29 , _ve_ress };
     640            Var_Args_To_Java (Expr.concat (_va_13), _ge_auxcall4);
    637641            Result _ge_auxcall5 = new Result ();
    638             Expr[] _va_13 = { _c_31 , _ve_args , _c_30 , _ve_ress };
    639             Var_Args_To_Java (Expr.concat (_va_13), _ge_auxcall5);
    640             Result _ge_auxcall6 = new Result ();
    641             ASAIL_To_Java (_ve_body, _ge_auxcall6);
    642             Expr[] _va_15 = { _c_35 , _ge_auxcall3.getExpr () , _c_34 , _ve_return__type , _c_34 , _ge_auxcall4.getExpr () , _c_33 , _ge_auxcall5.getExpr () , _c_32 };
    643             Expr[] _va_16 = { _c_36 , new Expr(new Expr (_ge_auxcall6.getExpr (), _ve_return)) , _c_16 };
    644             Expr[] _va_14 = { _c_20 , new Expr(Expr.concat (_va_15)) , new Expr(Expr.concat (_va_16)) };
     642            ASAIL_To_Java (_ve_body, _ge_auxcall5);
     643            Expr[] _va_15 = { _c_34 , _ge_auxcall2.getExpr () , _c_33 , _ve_return__type , _c_33 , _ge_auxcall3.getExpr () , _c_32 , _ge_auxcall4.getExpr () , _c_31 };
     644            Expr[] _va_16 = { _c_35 , new Expr(new Expr (_ge_auxcall5.getExpr (), _ve_return)) , _c_15 };
     645            Expr[] _va_14 = { _c_19 , new Expr(Expr.concat (_va_15)) , new Expr(Expr.concat (_va_16)) };
    645646            _ve_java__item = Expr.concat (_va_14);
    646647            break _block2;
     
    657658              break _block2__branch3;
    658659            }
    659             if (!_c_37.termEq (_v_deref__item3, 0))
     660            if (!_c_36.termEq (_v_deref__item3, 0))
    660661            {
    661662              break _block2__branch3;
     
    716717            int _v_len__arg1;
    717718            _v_len__arg1 = (_v_len17 - _v_len18);
    718             if (!_c_38.termEq (_v_deref__item4, 0))
     719            if (!_c_37.termEq (_v_deref__item4, 0))
    719720            {
    720721              break _block2__branch4;
     
    734735            Result _vs_acc = new Result ();
    735736            org.refal.plus.library.Box.Box (Expr.empty, _vs_acc);
    736             Result _ge_auxcall7 = new Result ();
    737             Expr_Int_To_Java (_vs_acc.getExpr (), _ve_arg1, _ge_auxcall7);
     737            Result _ge_auxcall6 = new Result ();
     738            Expr_Int_To_Java (_vs_acc.getExpr (), _ve_arg1, _ge_auxcall6);
    738739            Result _v_Expr__Int__To__Java1 = new Result ();
    739740            Expr_Int_To_Java (_vs_acc.getExpr (), _ve_arg2, _v_Expr__Int__To__Java1);
    740741            Expr _ve_cond = Expr.empty;
    741             Expr[] _va_17 = { _ge_auxcall7.getExpr () , _c_34 , _vs_op , _c_34 , _v_Expr__Int__To__Java1.getExpr () };
     742            Expr[] _va_17 = { _ge_auxcall6.getExpr () , _c_33 , _vs_op , _c_33 , _v_Expr__Int__To__Java1.getExpr () };
    742743            _ve_cond = Expr.concat (_va_17);
     744            Result _ge_auxcall7 = new Result ();
     745            org.refal.plus.library.Box.Get (_vs_acc.getExpr (), _ge_auxcall7);
    743746            Result _ge_auxcall8 = new Result ();
    744             org.refal.plus.library.Box.Get (_vs_acc.getExpr (), _ge_auxcall8);
    745             Result _ge_auxcall9 = new Result ();
    746             ASAIL_To_Java (_ve_body, _ge_auxcall9);
    747             Expr[] _va_19 = { _c_40 , _ve_cond , _c_39 };
    748             Expr[] _va_20 = { _c_36 , new Expr(_ge_auxcall9.getExpr ()) , _c_16 };
    749             Expr[] _va_18 = { _ge_auxcall8.getExpr () , new Expr(Expr.concat (_va_19)) , new Expr(Expr.concat (_va_20)) };
     747            ASAIL_To_Java (_ve_body, _ge_auxcall8);
     748            Expr[] _va_19 = { _c_39 , _ve_cond , _c_38 };
     749            Expr[] _va_20 = { _c_35 , new Expr(_ge_auxcall8.getExpr ()) , _c_15 };
     750            Expr[] _va_18 = { _ge_auxcall7.getExpr () , new Expr(Expr.concat (_va_19)) , new Expr(Expr.concat (_va_20)) };
    750751            _ve_java__item = Expr.concat (_va_18);
    751752            break _block2;
     
    768769            int _v_len__body3;
    769770            _v_len__body3 = (_v_len19 - _v_len20);
    770             if (!_c_41.termEq (_v_deref__item5, 0))
     771            if (!_c_40.termEq (_v_deref__item5, 0))
    771772            {
    772773              break _block2__branch5;
     
    798799                  break _block5__branch1;
    799800                }
    800                 int _v_len___dollar_tmp_m_142_m_33;
    801                 _v_len___dollar_tmp_m_142_m_33 = (_v_len21 - _v_len22);
    802                 if (!_c_42.termEq (_v_deref__cond, 0))
     801                int _v_len___dollar_tmp_m_138_m_33;
     802                _v_len___dollar_tmp_m_138_m_33 = (_v_len21 - _v_len22);
     803                if (!_c_41.termEq (_v_deref__cond, 0))
    803804                {
    804805                  break _block5__branch1;
    805806                }
    806                 Expr _ve__dollar_tmp_m_142_m_33 = Expr.empty;
    807                 _ve__dollar_tmp_m_142_m_33 = new Expr (_v_deref__cond, (0 + 1), _v_len___dollar_tmp_m_142_m_33);
    808                 Result _ge_auxcall10 = new Result ();
    809                 org.refal.plus.library.Box.Get (Res_Assigns, _ge_auxcall10);
     807                Expr _ve__dollar_tmp_m_138_m_33 = Expr.empty;
     808                _ve__dollar_tmp_m_138_m_33 = new Expr (_v_deref__cond, (0 + 1), _v_len___dollar_tmp_m_138_m_33);
     809                Result _ge_auxcall9 = new Result ();
     810                org.refal.plus.library.Box.Get (Res_Assigns, _ge_auxcall9);
    810811                org.refal.plus.library.Box.Store (Res_Assigns, Expr.empty);
    811812                _ve_if__yes__assigns = Expr.empty;
    812                 _ve_if__not__assigns = _ge_auxcall10.getExpr ();
     813                _ve_if__not__assigns = _ge_auxcall9.getExpr ();
    813814                break _block5;
    814815              }
    815               Result _ge_auxcall11 = new Result ();
    816               org.refal.plus.library.Box.Get (Res_Assigns, _ge_auxcall11);