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

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