source: to-imperative/trunk/library/JavaMangle/JavaMangle.cc @ 2046

Last change on this file since 2046 was 2046, checked in by orlov, 14 years ago
  • ASAIL variables now are (s.tag e.ns (e.name)), where e.ns is arbitrary namespace introduced by ASAIL-processors.
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 32.6 KB
Line 
1#include <rf_core.hh>
2#include <refal/Apply.hh>
3#include <refal/Convert.hh>
4#include <refal/Class.hh>
5#include "java_specific.hh"
6#include <refal/List.hh>
7
8namespace refal
9{
10
11using namespace rfrt;
12
13namespace JavaMangle
14{
15
16static Expr Conv_m_Table;
17
18RF_DECL (Rfp2Java);
19
20RF_DECL (Qualifier2Java);
21
22RF_DECL (Chars2Java);
23
24RF_DECL (A_m_Char2Java);
25
26RF_DECL (Char_m_To_m_Unicode);
27
28RF_DECL (Java2Rfp);
29
30RF_DECL (Qualifiers2Rfp);
31
32RF_DECL (Chars2Rfp);
33
34RF_DECL (Codes2Rfp);
35
36RF_DECL (Reserved_m_Word_q___0);
37
38static Expr _c_0;
39
40static Expr _c_32;
41
42static Expr _c_4;
43
44static Expr _c_2;
45
46static Expr _c_1;
47
48static Expr _c_3;
49
50static Expr _c_5;
51
52static Expr _c_33;
53
54static Expr _c_6;
55
56static Expr _c_7;
57
58static Expr _c_34;
59
60static Expr _c_8;
61
62static Expr _c_9;
63
64static Expr _c_35;
65
66static Expr _c_10;
67
68static Expr _c_11;
69
70static Expr _c_12;
71
72static Expr _c_13;
73
74static Expr _c_14;
75
76static Expr _c_15;
77
78static Expr _c_16;
79
80static Expr _c_17;
81
82static Expr _c_18;
83
84static Expr _c_19;
85
86static Expr _c_20;
87
88static Expr _c_21;
89
90static Expr _c_22;
91
92static Expr _c_23;
93
94static Expr _c_24;
95
96static Expr _c_25;
97
98static Expr _c_26;
99
100static Expr _c_27;
101
102static Expr _c_28;
103
104static Expr _c_29;
105
106static Expr _c_30;
107
108static Expr _c_31;
109
110static Expr _c_36;
111
112static Expr _c_37;
113
114RF_FUNC (Rfp2Java, (RF_ARG _ve_rfp_m_obj;;), (RF_RES _v_res1;;))
115  Expr _ve_ident;
116  {
117    {
118      Expr _ve_prefix;
119      Expr _ve_name;
120      {
121        {
122          if ((_ve_rfp_m_obj.get_len () != 1))
123          {
124            goto _block2__branch1;
125          }
126          if (_ve_rfp_m_obj.symbol_at (0))
127          {
128            goto _block2__branch1;
129          }
130          Expr _v_deref__rfp_m_obj (_ve_rfp_m_obj, 0);
131          uintptr_t _v_len1 = _v_deref__rfp_m_obj.get_len ();
132          uintptr_t _v_len2 = 2;
133          if ((_v_len1 < _v_len2))
134          {
135            goto _block2__branch1;
136          }
137          uintptr_t _v_len__ns = (_v_len1 - _v_len2);
138          if (_v_deref__rfp_m_obj.symbol_at ((_v_len__ns + 1)))
139          {
140            goto _block2__branch1;
141          }
142          Expr _v_deref__deref__rfp_m_obj (_v_deref__rfp_m_obj, (_v_len__ns + 1));
143          uintptr_t _v_len3 = _v_deref__deref__rfp_m_obj.get_len ();
144          uintptr_t _v_len4 = 0;
145          if ((_v_len3 < _v_len4))
146          {
147            goto _block2__branch1;
148          }
149          uintptr_t _v_len__name__1 = (_v_len3 - _v_len4);
150          if (!_c_0.term_eq (_v_deref__rfp_m_obj, 0))
151          {
152            goto _block2__branch1;
153          }
154          Expr _ve_ns (_v_deref__rfp_m_obj, 1, _v_len__ns);
155          Expr _v_name__1 (_v_deref__deref__rfp_m_obj, 0, _v_len__name__1);
156          _ve_prefix = (_c_2 + _ve_ns + _c_1);
157          _ve_name = _v_name__1;
158          goto _block2;
159        }
160      _block2__branch1: {}
161        {
162          if ((_ve_rfp_m_obj.get_len () != 1))
163          {
164            goto _block2__branch2;
165          }
166          if (_ve_rfp_m_obj.symbol_at (0))
167          {
168            goto _block2__branch2;
169          }
170          Expr _v_deref__rfp_m_obj2 (_ve_rfp_m_obj, 0);
171          uintptr_t _v_len5 = _v_deref__rfp_m_obj2.get_len ();
172          uintptr_t _v_len6 = 2;
173          if ((_v_len5 < _v_len6))
174          {
175            goto _block2__branch2;
176          }
177          uintptr_t _v_len__ns2 = (_v_len5 - _v_len6);
178          if (_v_deref__rfp_m_obj2.symbol_at ((_v_len__ns2 + 1)))
179          {
180            goto _block2__branch2;
181          }
182          Expr _v_deref__deref__rfp_m_obj2 (_v_deref__rfp_m_obj2, (_v_len__ns2 + 1));
183          uintptr_t _v_len7 = _v_deref__deref__rfp_m_obj2.get_len ();
184          uintptr_t _v_len8 = 0;
185          if ((_v_len7 < _v_len8))
186          {
187            goto _block2__branch2;
188          }
189          uintptr_t _v_len__name__12 = (_v_len7 - _v_len8);
190          if (!_c_3.term_eq (_v_deref__rfp_m_obj2, 0))
191          {
192            goto _block2__branch2;
193          }
194          Expr _ve_ns (_v_deref__rfp_m_obj2, 1, _v_len__ns2);
195          Expr _v_name__1 (_v_deref__deref__rfp_m_obj2, 0, _v_len__name__12);
196          _ve_prefix = (_c_4 + _ve_ns + _c_1);
197          _ve_name = _v_name__1;
198          goto _block2;
199        }
200      _block2__branch2: {}
201        {
202          if ((_ve_rfp_m_obj.get_len () != 1))
203          {
204            goto _block2__branch3;
205          }
206          if (_ve_rfp_m_obj.symbol_at (0))
207          {
208            goto _block2__branch3;
209          }
210          Expr _v_deref__rfp_m_obj3 (_ve_rfp_m_obj, 0);
211          uintptr_t _v_len9 = _v_deref__rfp_m_obj3.get_len ();
212          uintptr_t _v_len10 = 2;
213          if ((_v_len9 < _v_len10))
214          {
215            goto _block2__branch3;
216          }
217          uintptr_t _v_len__ns3 = (_v_len9 - _v_len10);
218          if (_v_deref__rfp_m_obj3.symbol_at ((_v_len__ns3 + 1)))
219          {
220            goto _block2__branch3;
221          }
222          Expr _v_deref__deref__rfp_m_obj3 (_v_deref__rfp_m_obj3, (_v_len__ns3 + 1));
223          uintptr_t _v_len11 = _v_deref__deref__rfp_m_obj3.get_len ();
224          uintptr_t _v_len12 = 0;
225          if ((_v_len11 < _v_len12))
226          {
227            goto _block2__branch3;
228          }
229          uintptr_t _v_len__name__13 = (_v_len11 - _v_len12);
230          if (!_c_5.term_eq (_v_deref__rfp_m_obj3, 0))
231          {
232            goto _block2__branch3;
233          }
234          Expr _ve_ns (_v_deref__rfp_m_obj3, 1, _v_len__ns3);
235          Expr _v_name__1 (_v_deref__deref__rfp_m_obj3, 0, _v_len__name__13);
236          _ve_prefix = (_c_6 + _ve_ns + _c_1);
237          _ve_name = _v_name__1;
238          goto _block2;
239        }
240      _block2__branch3: {}
241        {
242          if ((_ve_rfp_m_obj.get_len () != 1))
243          {
244            goto _block2__branch4;
245          }
246          if (_ve_rfp_m_obj.symbol_at (0))
247          {
248            goto _block2__branch4;
249          }
250          Expr _v_deref__rfp_m_obj4 (_ve_rfp_m_obj, 0);
251          uintptr_t _v_len13 = _v_deref__rfp_m_obj4.get_len ();
252          uintptr_t _v_len14 = 2;
253          if ((_v_len13 < _v_len14))
254          {
255            goto _block2__branch4;
256          }
257          uintptr_t _v_len__ns4 = (_v_len13 - _v_len14);
258          if (_v_deref__rfp_m_obj4.symbol_at ((_v_len__ns4 + 1)))
259          {
260            goto _block2__branch4;
261          }
262          Expr _v_deref__deref__rfp_m_obj4 (_v_deref__rfp_m_obj4, (_v_len__ns4 + 1));
263          uintptr_t _v_len15 = _v_deref__deref__rfp_m_obj4.get_len ();
264          uintptr_t _v_len16 = 0;
265          if ((_v_len15 < _v_len16))
266          {
267            goto _block2__branch4;
268          }
269          uintptr_t _v_len__name__14 = (_v_len15 - _v_len16);
270          if (!_c_7.term_eq (_v_deref__rfp_m_obj4, 0))
271          {
272            goto _block2__branch4;
273          }
274          Expr _ve_ns (_v_deref__rfp_m_obj4, 1, _v_len__ns4);
275          Expr _v_name__1 (_v_deref__deref__rfp_m_obj4, 0, _v_len__name__14);
276          _ve_prefix = (_c_8 + _ve_ns + _c_1);
277          _ve_name = _v_name__1;
278          goto _block2;
279        }
280      _block2__branch4: {}
281        {
282          if ((_ve_rfp_m_obj.get_len () != 1))
283          {
284            goto _block2__branch5;
285          }
286          if (_ve_rfp_m_obj.symbol_at (0))
287          {
288            goto _block2__branch5;
289          }
290          Expr _v_deref__rfp_m_obj5 (_ve_rfp_m_obj, 0);
291          uintptr_t _v_len17 = _v_deref__rfp_m_obj5.get_len ();
292          uintptr_t _v_len18 = 2;
293          if ((_v_len17 < _v_len18))
294          {
295            goto _block2__branch5;
296          }
297          uintptr_t _v_len__ns5 = (_v_len17 - _v_len18);
298          if (_v_deref__rfp_m_obj5.symbol_at ((_v_len__ns5 + 1)))
299          {
300            goto _block2__branch5;
301          }
302          Expr _v_deref__deref__rfp_m_obj5 (_v_deref__rfp_m_obj5, (_v_len__ns5 + 1));
303          uintptr_t _v_len19 = _v_deref__deref__rfp_m_obj5.get_len ();
304          uintptr_t _v_len20 = 0;
305          if ((_v_len19 < _v_len20))
306          {
307            goto _block2__branch5;
308          }
309          uintptr_t _v_len__name__15 = (_v_len19 - _v_len20);
310          if (!_c_9.term_eq (_v_deref__rfp_m_obj5, 0))
311          {
312            goto _block2__branch5;
313          }
314          Expr _ve_ns (_v_deref__rfp_m_obj5, 1, _v_len__ns5);
315          Expr _v_name__1 (_v_deref__deref__rfp_m_obj5, 0, _v_len__name__15);
316          _ve_prefix = (_c_10 + _ve_ns + _c_1);
317          _ve_name = _v_name__1;
318          goto _block2;
319        }
320      _block2__branch5: {}
321        {
322          if ((_ve_rfp_m_obj.get_len () != 1))
323          {
324            goto _block2__branch6;
325          }
326          if (_ve_rfp_m_obj.symbol_at (0))
327          {
328            goto _block2__branch6;
329          }
330          Expr _v_deref__rfp_m_obj6 (_ve_rfp_m_obj, 0);
331          if ((_v_deref__rfp_m_obj6.get_len () != 2))
332          {
333            goto _block2__branch6;
334          }
335          if (_v_deref__rfp_m_obj6.symbol_at (1))
336          {
337            goto _block2__branch6;
338          }
339          Expr _v_deref__deref__rfp_m_obj6 (_v_deref__rfp_m_obj6, 1);
340          uintptr_t _v_len21 = _v_deref__deref__rfp_m_obj6.get_len ();
341          uintptr_t _v_len22 = 0;
342          if ((_v_len21 < _v_len22))
343          {
344            goto _block2__branch6;
345          }
346          uintptr_t _v_len__name__16 = (_v_len21 - _v_len22);
347          if (!_c_11.term_eq (_v_deref__rfp_m_obj6, 0))
348          {
349            goto _block2__branch6;
350          }
351          Expr _v_name__1 (_v_deref__deref__rfp_m_obj6, 0, _v_len__name__16);
352          _ve_prefix = _c_12;
353          _ve_name = _v_name__1;
354          goto _block2;
355        }
356      _block2__branch6: {}
357        if ((_ve_rfp_m_obj.get_len () != 1))
358        {
359          goto _block1__branch1;
360        }
361        if (_ve_rfp_m_obj.symbol_at (0))
362        {
363          goto _block1__branch1;
364        }
365        Expr _v_deref__rfp_m_obj7 (_ve_rfp_m_obj, 0);
366        if ((_v_deref__rfp_m_obj7.get_len () != 2))
367        {
368          goto _block1__branch1;
369        }
370        if (_v_deref__rfp_m_obj7.symbol_at (1))
371        {
372          goto _block1__branch1;
373        }
374        Expr _v_deref__deref__rfp_m_obj7 (_v_deref__rfp_m_obj7, 1);
375        uintptr_t _v_len23 = _v_deref__deref__rfp_m_obj7.get_len ();
376        uintptr_t _v_len24 = 0;
377        if ((_v_len23 < _v_len24))
378        {
379          goto _block1__branch1;
380        }
381        uintptr_t _v_len__name__17 = (_v_len23 - _v_len24);
382        if (!_c_13.term_eq (_v_deref__rfp_m_obj7, 0))
383        {
384          goto _block1__branch1;
385        }
386        Expr _v_name__1 (_v_deref__deref__rfp_m_obj7, 0, _v_len__name__17);
387        _ve_prefix = _c_1;
388        _ve_name = _v_name__1;
389      }
390    _block2: {}
391      Expr _v_Chars2Java1;
392      RF_CALL (Chars2Java, _ve_name, _v_Chars2Java1);
393      _ve_ident = (_ve_prefix + _v_Chars2Java1);
394      goto _block1;
395    }
396  _block1__branch1: {}
397    {
398      Expr _v_auxblock1;
399      {
400        {
401          if ((_ve_rfp_m_obj.get_len () != 1))
402          {
403            goto _block3__branch1;
404          }
405          if (_ve_rfp_m_obj.symbol_at (0))
406          {
407            goto _block3__branch1;
408          }
409          Expr _v_deref__rfp_m_obj8 (_ve_rfp_m_obj, 0);
410          uintptr_t _v_len25 = _v_deref__rfp_m_obj8.get_len ();
411          uintptr_t _v_len26 = 1;
412          if ((_v_len25 < _v_len26))
413          {
414            goto _block3__branch1;
415          }
416          uintptr_t _v_len__names = (_v_len25 - _v_len26);
417          if (!_c_14.term_eq (_v_deref__rfp_m_obj8, 0))
418          {
419            goto _block3__branch1;
420          }
421          Expr _ve_names (_v_deref__rfp_m_obj8, 1, _v_len__names);
422          _v_auxblock1 = _ve_names;
423          goto _block3;
424        }
425      _block3__branch1: {}
426        {
427          if ((_ve_rfp_m_obj.get_len () != 1))
428          {
429            goto _block3__branch2;
430          }
431          if (_ve_rfp_m_obj.symbol_at (0))
432          {
433            goto _block3__branch2;
434          }
435          Expr _v_deref__rfp_m_obj9 (_ve_rfp_m_obj, 0);
436          uintptr_t _v_len27 = _v_deref__rfp_m_obj9.get_len ();
437          uintptr_t _v_len28 = 0;
438          if ((_v_len27 < _v_len28))
439          {
440            goto _block3__branch2;
441          }
442          uintptr_t _v_len__names2 = (_v_len27 - _v_len28);
443          Expr _ve_names (_v_deref__rfp_m_obj9, 0, _v_len__names2);
444          _v_auxblock1 = _ve_names;
445          goto _block3;
446        }
447      _block3__branch2: {}
448        uintptr_t _v_len29 = _ve_rfp_m_obj.get_len ();
449        uintptr_t _v_len30 = 0;
450        if ((_v_len29 < _v_len30))
451        {
452          RF_FUNC_ERROR (unexpected_fail);
453        }
454        uintptr_t _v_len__names3 = (_v_len29 - _v_len30);
455        Expr _ve_names (_ve_rfp_m_obj, 0, _v_len__names3);
456        _v_auxblock1 = _ve_names;
457      }
458    _block3: {}
459      uintptr_t _v_len31 = _v_auxblock1.get_len ();
460      uintptr_t _v_len32 = 1;
461      if ((_v_len31 < _v_len32))
462      {
463        goto _block1__branch2;
464      }
465      uintptr_t _v_len__qualifiers = (_v_len31 - _v_len32);
466      if (!_v_auxblock1.symbol_at (_v_len__qualifiers))
467      {
468        goto _block1__branch2;
469      }
470      Expr _ve_qualifiers (_v_auxblock1, 0, _v_len__qualifiers);
471      Expr _vs_name (_v_auxblock1, _v_len__qualifiers, 1);
472      Expr _v_Map1;
473      RF_CALL (List::Map, (_c_15, empty, _ve_qualifiers), _v_Map1);
474      Expr _v_Chars2Java2;
475      RF_CALL (Chars2Java, _vs_name, _v_Chars2Java2);
476      _ve_ident = (_v_Map1 + _v_Chars2Java2);
477      goto _block1;
478    }
479  _block1__branch2: {}
480    _ve_ident = empty;
481  }
482_block1: {}
483  {
484    {
485      Expr _v_Apply1;
486      if (!RF_CALL (Apply::Apply, (_c_16, _ve_ident), _v_Apply1))
487      {
488        goto _block4__branch1;
489      }
490      uintptr_t _v_len33 = _v_Apply1.get_len ();
491      uintptr_t _v_len34 = 0;
492      if ((_v_len33 < _v_len34))
493      {
494        goto _block4__branch1;
495      }
496      uintptr_t _v_len___e__e_tmp_m__s__s_JavaMangle_s_refal_s_JavaManglerf_m_78_m_40 = (_v_len33 - _v_len34);
497      Expr _ve__e__e_tmp_m__s__s_JavaMangle_s_refal_s_JavaManglerf_m_78_m_40 (_v_Apply1, 0, _v_len___e__e_tmp_m__s__s_JavaMangle_s_refal_s_JavaManglerf_m_78_m_40);
498      _v_res1 = (_c_17 + _ve_ident);
499      goto _block4;
500    }
501  _block4__branch1: {}
502    _v_res1 = _ve_ident;
503  }
504_block4: {}
505RF_END
506
507RF_FUNC (Qualifier2Java, (RF_ARG _v_arg1;;), (RF_RES _v_res1;;))
508  if ((_v_arg1.get_len () != 1))
509  {
510    RF_FUNC_ERROR (unexpected_fail);
511  }
512  if (!_v_arg1.symbol_at (0))
513  {
514    RF_FUNC_ERROR (unexpected_fail);
515  }
516  Expr _vs_qualifier (_v_arg1, 0, 1);
517  Expr _v_Chars2Java1;
518  RF_CALL (Chars2Java, _vs_qualifier, _v_Chars2Java1);
519  _v_res1 = (_v_Chars2Java1 + java__specific::Namespace_m_Delimeter);
520RF_END
521
522RF_FUNC (Chars2Java, (RF_ARG _ve_name;;), (RF_RES _v_res1;;))
523  Expr _v_To_m_Chars1;
524  RF_CALL (Convert::To_m_Chars, _ve_name, _v_To_m_Chars1);
525  RF_TAILCALL (List::Map, (_c_18, empty, _v_To_m_Chars1), _v_res1);
526RF_END
527
528RF_FUNC (A_m_Char2Java, (RF_ARG _v_arg1;;), (RF_RES _v_res1;;))
529  if ((_v_arg1.get_len () != 1))
530  {
531    RF_FUNC_ERROR (unexpected_fail);
532  }
533  if (!_v_arg1.symbol_at (0))
534  {
535    RF_FUNC_ERROR (unexpected_fail);
536  }
537  Expr _vs_char (_v_arg1, 0, 1);
538  {
539    {
540      if (!RF_CALL (Class::Digit_q_, _vs_char, /*void*/))
541      {
542        goto _block1__branch1;
543      }
544      _v_res1 = _vs_char;
545      goto _block1;
546    }
547  _block1__branch1: {}
548    {
549      if (!RF_CALL (Class::Letter_q_, _vs_char, /*void*/))
550      {
551        goto _block1__branch2;
552      }
553      {
554        RF_lsplit (_c_19, 0, _ve__e__e_tmp_m__s__s_JavaMangle_s_refal_s_JavaManglerf_m_88_m_34, _v_lsplit__19);
555        for ( ; ; RF_iter(_c_19)++)
556        {
557          {
558            if (!RF_iter(_c_19))
559            {
560              goto _negation1;
561            }
562            uintptr_t _v_len1 = _v_lsplit__19.get_len ();
563            uintptr_t _v_len2 = 1;
564            if ((_v_len1 < _v_len2))
565            {
566              goto _negation1;
567            }
568            uintptr_t _v_len___e__e_tmp_m__s__s_JavaMangle_s_refal_s_JavaManglerf_m_88_m_43 = (_v_len1 - _v_len2);
569            if (!_vs_char.term_eq (_v_lsplit__19, 0))
570            {
571              goto _continue1;
572            }
573            Expr _ve__e__e_tmp_m__s__s_JavaMangle_s_refal_s_JavaManglerf_m_88_m_43 (_v_lsplit__19, 1, _v_len___e__e_tmp_m__s__s_JavaMangle_s_refal_s_JavaManglerf_m_88_m_43);
574            goto _exit1;
575          }
576      _continue1: {}
577        }
578      _exit1: {}
579        goto _block1__branch2;
580      }
581    _negation1: {}
582      _v_res1 = _vs_char;
583      goto _block1;
584    }
585  _block1__branch2: {}
586    {
587      RF_lsplit (Conv_m_Table, 0, _ve__e__e_tmp_m__s__s_JavaMangle_s_refal_s_JavaManglerf_m_89_m_18, _v_lsplit__Conv_m_Table);
588      for ( ; ; RF_iter(Conv_m_Table)++)
589      {
590        {
591          if (!RF_iter(Conv_m_Table))
592          {
593            goto _block1__branch3;
594          }
595          uintptr_t _v_len3 = _v_lsplit__Conv_m_Table.get_len ();
596          uintptr_t _v_len4 = 1;
597          if ((_v_len3 < _v_len4))
598          {
599            goto _block1__branch3;
600          }
601          uintptr_t _v_len___e__e_tmp_m__s__s_JavaMangle_s_refal_s_JavaManglerf_m_89_m_36 = (_v_len3 - _v_len4);
602          if (_v_lsplit__Conv_m_Table.symbol_at (0))
603          {
604            goto _continue2;
605          }
606          Expr _v_deref__lsplit__Conv_m_Table (_v_lsplit__Conv_m_Table, 0);
607          uintptr_t _v_len5 = _v_deref__lsplit__Conv_m_Table.get_len ();
608          uintptr_t _v_len6 = 1;
609          if ((_v_len5 < _v_len6))
610          {
611            goto _continue2;
612          }
613          uintptr_t _v_len__code = (_v_len5 - _v_len6);
614          if (!_vs_char.term_eq (_v_deref__lsplit__Conv_m_Table, 0))
615          {
616            goto _continue2;
617          }
618          Expr _ve__e__e_tmp_m__s__s_JavaMangle_s_refal_s_JavaManglerf_m_89_m_36 (_v_lsplit__Conv_m_Table, 1, _v_len___e__e_tmp_m__s__s_JavaMangle_s_refal_s_JavaManglerf_m_89_m_36);
619          Expr _ve_code (_v_deref__lsplit__Conv_m_Table, 1, _v_len__code);
620          _v_res1 = (_c_1 + _ve_code + _c_1);
621          goto _exit2;
622        }
623    _continue2: {}
624      }
625    _exit2: {}
626      goto _block1;
627    }
628  _block1__branch3: {}
629    Expr _v_Char_m_To_m_Unicode1;
630    RF_CALL (Char_m_To_m_Unicode, _vs_char, _v_Char_m_To_m_Unicode1);
631    _v_res1 = (_c_1 + _v_Char_m_To_m_Unicode1 + _c_1);
632  }
633_block1: {}
634RF_END
635
636RF_FUNC (Char_m_To_m_Unicode, (RF_ARG _v_arg1;;), (RF_RES _v_res1;;))
637  {
638    {
639      if (!_v_arg1.term_eq (_c_20, 0))
640      {
641        goto _block1__branch1;
642      }
643      _v_res1 = _c_21;
644      goto _block1;
645    }
646  _block1__branch1: {}
647    {
648      if (!_v_arg1.term_eq (_c_22, 0))
649      {
650        goto _block1__branch2;
651      }
652      _v_res1 = _c_23;
653      goto _block1;
654    }
655  _block1__branch2: {}
656    {
657      if (!_v_arg1.term_eq (_c_24, 0))
658      {
659        goto _block1__branch3;
660      }
661      _v_res1 = _c_25;
662      goto _block1;
663    }
664  _block1__branch3: {}
665    {
666      if (!_v_arg1.term_eq (_c_26, 0))
667      {
668        goto _block1__branch4;
669      }
670      _v_res1 = _c_27;
671      goto _block1;
672    }
673  _block1__branch4: {}
674    {
675      if (!_v_arg1.term_eq (_c_28, 0))
676      {
677        goto _block1__branch5;
678      }
679      _v_res1 = _c_29;
680      goto _block1;
681    }
682  _block1__branch5: {}
683    if (!_v_arg1.term_eq (_c_30, 0))
684    {
685      RF_FUNC_ERROR (unexpected_fail);
686    }
687    _v_res1 = _c_31;
688  }
689_block1: {}
690RF_END
691
692RF_FUNC (Java2Rfp, (RF_ARG _ve_ident;;), (RF_RES _v_res1;;))
693  Expr _v_To_m_Chars1;
694  RF_CALL (Convert::To_m_Chars, _ve_ident, _v_To_m_Chars1);
695  Expr _v_auxblock1;
696  {
697    {
698      uintptr_t _v_len1 = _v_To_m_Chars1.get_len ();
699      uintptr_t _v_len2 = (1 + 1 + 1);
700      if (((_v_len1 < (_v_len2 + (0 * 1)))))
701      {
702        goto _block1__branch1;
703      }
704      if (((_v_len1 - _v_len2) % 1))
705      {
706        goto _block1__branch1;
707      }
708      uintptr_t _v_len__name = ((_v_len1 - _v_len2) / 1);
709      if (!_c_17.eq (_v_To_m_Chars1, 0))
710      {
711        goto _block1__branch1;
712      }
713      Expr _ve_name (_v_To_m_Chars1, (0 + 1 + 1 + 1), _v_len__name);
714      _v_auxblock1 = _ve_name;
715      goto _block1;
716    }
717  _block1__branch1: {}
718    uintptr_t _v_len3 = _v_To_m_Chars1.get_len ();
719    uintptr_t _v_len4 = 0;
720    if (((_v_len3 < (_v_len4 + (0 * 1)))))
721    {
722      RF_FUNC_ERROR (unexpected_fail);
723    }
724    if (((_v_len3 - _v_len4) % 1))
725    {
726      RF_FUNC_ERROR (unexpected_fail);
727    }
728    uintptr_t _v_len__name2 = ((_v_len3 - _v_len4) / 1);
729    Expr _ve_name (_v_To_m_Chars1, 0, _v_len__name2);
730    _v_auxblock1 = _ve_name;
731  }
732_block1: {}
733  {
734    {
735      uintptr_t _v_len5 = _v_auxblock1.get_len ();
736      uintptr_t _v_len6 = (1 + 1 + 1 + 1);
737      if (((_v_len5 < (_v_len6 + (0 * 1)))))
738      {
739        goto _block2__branch1;
740      }
741      if (((_v_len5 - _v_len6) % 1))
742      {
743        goto _block2__branch1;
744      }
745      uintptr_t _v_len__name3 = ((_v_len5 - _v_len6) / 1);
746      if (!_c_32.eq (_v_auxblock1, 0))
747      {
748        goto _block2__branch1;
749      }
750      Expr _ve_name (_v_auxblock1, (0 + 1 + 1 + 1 + 1), _v_len__name3);
751      Expr _v_Chars2Rfp1;
752      if (!RF_CALL (Chars2Rfp, _ve_name, _v_Chars2Rfp1))
753      {
754        RF_RETFAIL;
755      }
756      _v_res1 = (_c_3 + _v_Chars2Rfp1 ()) ();
757      goto _block2;
758    }
759  _block2__branch1: {}
760    {
761      uintptr_t _v_len7 = _v_auxblock1.get_len ();
762      uintptr_t _v_len8 = (1 + 1 + 1 + 1);
763      if (((_v_len7 < (_v_len8 + (0 * 1)))))
764      {
765        goto _block2__branch2;
766      }
767      if (((_v_len7 - _v_len8) % 1))
768      {
769        goto _block2__branch2;
770      }
771      uintptr_t _v_len__name4 = ((_v_len7 - _v_len8) / 1);
772      if (!_c_33.eq (_v_auxblock1, 0))
773      {
774        goto _block2__branch2;
775      }
776      Expr _ve_name (_v_auxblock1, (0 + 1 + 1 + 1 + 1), _v_len__name4);
777      Expr _v_Chars2Rfp2;
778      if (!RF_CALL (Chars2Rfp, _ve_name, _v_Chars2Rfp2))
779      {
780        RF_RETFAIL;
781      }
782      _v_res1 = (_c_5 + _v_Chars2Rfp2 ()) ();
783      goto _block2;
784    }
785  _block2__branch2: {}
786    {
787      uintptr_t _v_len9 = _v_auxblock1.get_len ();
788      uintptr_t _v_len10 = (1 + 1 + 1 + 1);
789      if (((_v_len9 < (_v_len10 + (0 * 1)))))
790      {
791        goto _block2__branch3;
792      }
793      if (((_v_len9 - _v_len10) % 1))
794      {
795        goto _block2__branch3;
796      }
797      uintptr_t _v_len__name5 = ((_v_len9 - _v_len10) / 1);
798      if (!_c_34.eq (_v_auxblock1, 0))
799      {
800        goto _block2__branch3;
801      }
802      Expr _ve_name (_v_auxblock1, (0 + 1 + 1 + 1 + 1), _v_len__name5);
803      Expr _v_Chars2Rfp3;
804      if (!RF_CALL (Chars2Rfp, _ve_name, _v_Chars2Rfp3))
805      {
806        RF_RETFAIL;
807      }
808      _v_res1 = (_c_7 + _v_Chars2Rfp3 ()) ();
809      goto _block2;
810    }
811  _block2__branch3: {}
812    {
813      uintptr_t _v_len11 = _v_auxblock1.get_len ();
814      uintptr_t _v_len12 = (1 + 1 + 1 + 1);
815      if (((_v_len11 < (_v_len12 + (0 * 1)))))
816      {
817        goto _block2__branch4;
818      }
819      if (((_v_len11 - _v_len12) % 1))
820      {
821        goto _block2__branch4;
822      }
823      uintptr_t _v_len__name6 = ((_v_len11 - _v_len12) / 1);
824      if (!_c_35.eq (_v_auxblock1, 0))
825      {
826        goto _block2__branch4;
827      }
828      Expr _ve_name (_v_auxblock1, (0 + 1 + 1 + 1 + 1), _v_len__name6);
829      Expr _v_Chars2Rfp4;
830      if (!RF_CALL (Chars2Rfp, _ve_name, _v_Chars2Rfp4))
831      {
832        RF_RETFAIL;
833      }
834      _v_res1 = (_c_9 + _v_Chars2Rfp4 ()) ();
835      goto _block2;
836    }
837  _block2__branch4: {}
838    uintptr_t _v_len13 = _v_auxblock1.get_len ();
839    uintptr_t _v_len14 = 0;
840    if (((_v_len13 < (_v_len14 + (0 * 1)))))
841    {
842      RF_RETFAIL;
843    }
844    if (((_v_len13 - _v_len14) % 1))
845    {
846      RF_RETFAIL;
847    }
848    uintptr_t _v_len__name7 = ((_v_len13 - _v_len14) / 1);
849    Expr _ve_name (_v_auxblock1, 0, _v_len__name7);
850    RF_TAILCALL (Qualifiers2Rfp, _ve_name, _v_res1);
851  }
852_block2: {}
853RF_END
854
855RF_FUNC (Qualifiers2Rfp, (RF_ARG _v_arg1;;), (RF_RES _v_res1;;))
856  {
857    {
858      if (((_v_arg1.get_len () < (1 + 1 + 0 + 0))))
859      {
860        goto _block1__branch1;
861      }
862      RF_lsplit (_v_arg1, 0, _ve_qualifier, _v_lsplit__arg1);
863      for ( ; ; RF_iter(_v_arg1)++)
864      {
865        {
866          if (!RF_iter(_v_arg1))
867          {
868            goto _block1__branch1;
869          }
870          uintptr_t _v_len1 = _v_lsplit__arg1.get_len ();
871          uintptr_t _v_len2 = (1 + 1);
872          if (((_v_len1 < (_v_len2 + (0 * 1)))))
873          {
874            goto _block1__branch1;
875          }
876          if (((_v_len1 - _v_len2) % 1))
877          {
878            goto _continue1;
879          }
880          uintptr_t _v_len__rest = ((_v_len1 - _v_len2) / 1);
881          if (!java__specific::Namespace_m_Delimeter.eq (_v_lsplit__arg1, 0))
882          {
883            goto _continue1;
884          }
885          Expr _ve_rest (_v_lsplit__arg1, (0 + 1 + 1), _v_len__rest);
886          Expr _v_Chars2Rfp1;
887          if (!RF_CALL (Chars2Rfp, _ve_qualifier, _v_Chars2Rfp1))
888          {
889            RF_RETFAIL;
890          }
891          Expr _v_Qualifiers2Rfp1;
892          if (!RF_CALL (Qualifiers2Rfp, _ve_rest, _v_Qualifiers2Rfp1))
893          {
894            RF_RETFAIL;
895          }
896          _v_res1 = (_v_Chars2Rfp1 + _v_Qualifiers2Rfp1);
897          goto _exit1;
898        }
899    _continue1: {}
900      }
901    _exit1: {}
902      goto _block1;
903    }
904  _block1__branch1: {}
905    if (!RF_CALL (Chars2Rfp, _v_arg1, _v_res1))
906    {
907      RF_RETFAIL;
908    }
909  }
910_block1: {}
911RF_END
912
913RF_FUNC (Chars2Rfp, (RF_ARG _ve_name;;), (RF_RES _v_res1;;))
914  Expr _v_Codes2Rfp1;
915  if (!RF_CALL (Codes2Rfp, _ve_name, _v_Codes2Rfp1))
916  {
917    RF_RETFAIL;
918  }
919  RF_TAILCALL (Convert::To_m_Word, _v_Codes2Rfp1, _v_res1);
920RF_END
921
922RF_FUNC (Codes2Rfp, (RF_ARG _v_arg1;;), (RF_RES _v_res1;;))
923  {
924    {
925      if (((_v_arg1.get_len () < (1 + 1 + 0 + 0))))
926      {
927        goto _block1__branch1;
928      }
929      if (!_c_1.term_eq (_v_arg1, 0))
930      {
931        goto _block1__branch1;
932      }
933      Expr _v_subexpr__arg1 (_v_arg1, (0 + 1), (_v_arg1.get_len () - (0 + 1 + 0)));
934      RF_lsplit (_v_subexpr__arg1, 0, _ve_code, _v_lsplit__arg1);
935      for ( ; ; RF_iter(_v_subexpr__arg1)++)
936      {
937        {
938          if (!RF_iter(_v_subexpr__arg1))
939          {
940            goto _block1__branch1;
941          }
942          uintptr_t _v_len1 = _v_lsplit__arg1.get_len ();
943          uintptr_t _v_len2 = 1;
944          if (((_v_len1 < (_v_len2 + (0 * 1)))))
945          {
946            goto _block1__branch1;
947          }
948          if (((_v_len1 - _v_len2) % 1))
949          {
950            goto _continue1;
951          }
952          uintptr_t _v_len__rest = ((_v_len1 - _v_len2) / 1);
953          if (!_c_1.term_eq (_v_lsplit__arg1, 0))
954          {
955            goto _continue1;
956          }
957          Expr _ve_rest (_v_lsplit__arg1, (0 + 1), _v_len__rest);
958          if ((((1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1) < (1 + 0 + 0))))
959          {
960            RF_RETFAIL;
961          }
962          RF_lsplit (Conv_m_Table, 0, _ve__e__e_tmp_m__s__s_JavaMangle_s_refal_s_JavaManglerf_m_132_m_20, _v_lsplit__Conv_m_Table);
963          for ( ; ; RF_iter(Conv_m_Table)++)
964          {
965            {
966              if (!RF_iter(Conv_m_Table))
967              {
968                RF_RETFAIL;
969              }
970              uintptr_t _v_len3 = _v_lsplit__Conv_m_Table.get_len ();
971              uintptr_t _v_len4 = 1;
972              if (((_v_len3 < (_v_len4 + (0 * 1)))))
973              {
974                RF_RETFAIL;
975              }
976              if (((_v_len3 - _v_len4) % 1))
977              {
978                goto _continue2;
979              }
980              uintptr_t _v_len___e__e_tmp_m__s__s_JavaMangle_s_refal_s_JavaManglerf_m_132_m_38 = ((_v_len3 - _v_len4) / 1);
981              if (_v_lsplit__Conv_m_Table.symbol_at (0))
982              {
983                goto _continue2;
984              }
985              Expr _v_deref__lsplit__Conv_m_Table (_v_lsplit__Conv_m_Table, 0);
986              if ((_v_deref__lsplit__Conv_m_Table.get_len () != (1 + _ve_code.get_len ())))
987              {
988                goto _continue2;
989              }
990              if (!_v_deref__lsplit__Conv_m_Table.symbol_at (0))
991              {
992                goto _continue2;
993              }
994              if (!_ve_code.eq (_v_deref__lsplit__Conv_m_Table, (0 + 1)))
995              {
996                goto _continue2;
997              }
998              Expr _ve__e__e_tmp_m__s__s_JavaMangle_s_refal_s_JavaManglerf_m_132_m_38 (_v_lsplit__Conv_m_Table, (0 + 1), _v_len___e__e_tmp_m__s__s_JavaMangle_s_refal_s_JavaManglerf_m_132_m_38);
999              Expr _vs_char (_v_deref__lsplit__Conv_m_Table, 0, 1);
1000              Expr _v_Codes2Rfp1;
1001              if (!RF_CALL (Codes2Rfp, _ve_rest, _v_Codes2Rfp1))
1002              {
1003                RF_RETFAIL;
1004              }
1005              _v_res1 = (_vs_char + _v_Codes2Rfp1);
1006              goto _exit2;
1007            }
1008        _continue2: {}
1009          }
1010        _exit2: {}
1011          goto _exit1;
1012        }
1013    _continue1: {}
1014      }
1015    _exit1: {}
1016      goto _block1;
1017    }
1018  _block1__branch1: {}
1019    {
1020      uintptr_t _v_len5 = _v_arg1.get_len ();
1021      uintptr_t _v_len6 = 1;
1022      if (((_v_len5 < (_v_len6 + (0 * 1)))))
1023      {
1024        goto _block1__branch2;
1025      }
1026      if (((_v_len5 - _v_len6) % 1))
1027      {
1028        goto _block1__branch2;
1029      }
1030      uintptr_t _v_len__rest2 = ((_v_len5 - _v_len6) / 1);
1031      if (!_v_arg1.symbol_at (0))
1032      {
1033        goto _block1__branch2;
1034      }
1035      Expr _vs_char (_v_arg1, 0, 1);
1036      Expr _ve_rest (_v_arg1, (0 + 1), _v_len__rest2);
1037      {
1038        {
1039          if (!RF_CALL (Class::Digit_q_, _vs_char, /*void*/))
1040          {
1041            goto _block2__branch1;
1042          }
1043          goto _block2;
1044        }
1045      _block2__branch1: {}
1046        if (!RF_CALL (Class::Letter_q_, _vs_char, /*void*/))
1047        {
1048          RF_RETFAIL;
1049        }
1050        {
1051          {
1052            if ((1 != 1))
1053            {
1054              goto _negation1;
1055            }
1056            if (!_vs_char.term_eq (_c_36, 0))
1057            {
1058              goto _negation1;
1059            }
1060          }
1061        _block3: {}
1062          RF_RETFAIL;
1063        }
1064      _negation1: {}
1065      }
1066    _block2: {}
1067      Expr _v_Codes2Rfp2;
1068      if (!RF_CALL (Codes2Rfp, _ve_rest, _v_Codes2Rfp2))
1069      {
1070        RF_RETFAIL;
1071      }
1072      _v_res1 = (_vs_char + _v_Codes2Rfp2);
1073      goto _block1;
1074    }
1075  _block1__branch2: {}
1076    if ((_v_arg1.get_len () != 0))
1077    {
1078      RF_FUNC_ERROR (unexpected_fail);
1079    }
1080    _v_res1 = empty;
1081  }
1082_block1: {}
1083RF_END
1084
1085RF_FUNC (Reserved_m_Word_q___0, (RF_ARG _v_arg1;;), (RF_RES _v_res1;;))
1086  uintptr_t _v_len1 = _v_arg1.get_len ();
1087  uintptr_t _v_len2 = 0;
1088  if (((_v_len1 < (_v_len2 + (0 * 1)))))
1089  {
1090    RF_ERROR (_c_37);
1091  }
1092  if (((_v_len1 - _v_len2) % 1))
1093  {
1094    RF_ERROR (_c_37);
1095  }
1096  uintptr_t _v_len__stub1 = ((_v_len1 - _v_len2) / 1);
1097  Expr _v_stub1 (_v_arg1, 0, _v_len__stub1);
1098  if (!RF_CALL (java__specific::Reserved_m_Word_q_, _v_stub1, /*void*/))
1099  {
1100    RF_RETFAIL;
1101  }
1102  _v_res1 = empty;
1103RF_END
1104
1105}
1106
1107namespace JavaMangle
1108{
1109
1110static void init_ ()
1111{
1112  Conv_m_Table = (Char::create_expr (L"!e")) () + (Char::create_expr (L"?q")) () + (Char::create_expr (L"_")) () + (Char::create_expr (L"-m")) () + (Char::create_expr (L"+p")) () + (Char::create_expr (L"<lt")) () + (Char::create_expr (L">gt")) () + (Char::create_expr (L"=eq")) () + (Char::create_expr (L"*a")) () + (Char::create_expr (L"/s")) () + (Char::create_expr (L" sp")) () + (Char::create_expr (L"\\bs")) () + (Char::create_expr (L"|bar")) () + (Char::create_expr (L"~tilde")) () + (Char::create_expr (L"@at")) () + (Char::create_expr (L"#num")) () + (Char::create_expr (L"$dollar")) () + (Char::create_expr (L"%percnt")) () + (Char::create_expr (L"^circ")) () + (Char::create_expr (L"&amp")) () + (Char::create_expr (L"(lpar")) () + (Char::create_expr (L")rpar")) () + (Char::create_expr (L"[lsqb")) () + (Char::create_expr (L"]rsqb")) () + (Char::create_expr (L"{lcub")) () + (Char::create_expr (L"}rcub")) () + (Char::create_expr (L"`grave")) () + (Char::create_expr (L"'apos")) () + (Char::create_expr (L"\"quot")) () + (Char::create_expr (L",comma")) () + (Char::create_expr (L".period")) () + (Char::create_expr (L":colon")) () + (Char::create_expr (L";semi")) ();
1113  _c_0 = Expr::create<Word>("VAR");
1114  _c_32 = Char::create_expr (L"_ve_");
1115  _c_4 = Expr (_c_32, 0, 3);
1116  _c_2 = Expr (_c_4, 0, 2);
1117  _c_1 = Expr (_c_2, 0, 1);
1118  _c_3 = Expr::create<Word>("EVAR");
1119  _c_5 = Expr::create<Word>("VVAR");
1120  _c_33 = Char::create_expr (L"_vv_");
1121  _c_6 = Expr (_c_33, 0, 3);
1122  _c_7 = Expr::create<Word>("TVAR");
1123  _c_34 = Char::create_expr (L"_vt_");
1124  _c_8 = Expr (_c_34, 0, 3);
1125  _c_9 = Expr::create<Word>("SVAR");
1126  _c_35 = Char::create_expr (L"_vs_");
1127  _c_10 = Expr (_c_35, 0, 3);
1128  _c_11 = Expr::create<Word>("STATIC");
1129  _c_12 = Char::create_expr (L"_c_");
1130  _c_13 = Expr::create<Word>("LABEL");
1131  _c_14 = Expr::create<Word>("OBJ");
1132  _c_15 = Expr::create_sym<Func> (Qualifier2Java);
1133  _c_16 = Expr::create_sym<Func> (Reserved_m_Word_q___0);
1134  _c_17 = Char::create_expr (L"_r_");
1135  _c_18 = Expr::create_sym<Func> (A_m_Char2Java);
1136  _c_19 = Char::create_expr (L"?!");
1137  _c_20 = Char::create_expr (L"b");
1138  _c_21 = Char::create_expr (L"08");
1139  _c_22 = Char::create_expr (L"\t");
1140  _c_23 = Char::create_expr (L"09");
1141  _c_24 = Char::create_expr (L"\n");
1142  _c_25 = Char::create_expr (L"0A");
1143  _c_26 = Expr (_c_2, 1, 1);
1144  _c_27 = Char::create_expr (L"0B");
1145  _c_28 = Char::create_expr (L"f");
1146  _c_29 = Char::create_expr (L"0C");
1147  _c_30 = Char::create_expr (L"\r");
1148  _c_31 = Char::create_expr (L"0D");
1149  _c_36 = Expr (_c_19, 0, 1);
1150  _c_37 = Expr::create<Word>("Apply") + Expr::create<Word>("Apply") + Expr::create<Word>("Unexpected fail");
1151}
1152
1153static AtStart init_registrator_ (&init_);
1154
1155}
1156
1157}
Note: See TracBrowser for help on using the repository browser.