source: to-imperative/trunk/bootstrap/compiler/rfp_asail2asail.cc @ 1894

Last change on this file since 1894 was 1894, checked in by orlov, 15 years ago
  • Fresh-generated compiler sources.
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 18.6 KB
Line 
1#include <rf_core.hh>
2#include <refal/Arithm.hh>
3#include <refal/StdIO.hh>
4#include <refal/List.hh>
5
6namespace refal
7{
8
9using namespace rfrt;
10
11namespace rfp__asail2asail
12{
13
14RF_DECL (Simplify_m_ASAIL);
15
16RF_DECL (Simplify_m_Infix);
17
18RF_DECL (Simplify_m_Arithm);
19
20RF_DECL (Eval_sp__a_);
21
22RF_DECL (Eval_sp__p_);
23
24RF_DECL (Eval_sp__s_);
25
26RF_DECL (Eval_sp__percnt_);
27
28RF_DECL (Eval_sp__m_);
29
30RF_DECL (Simplify_m_Infix__0);
31
32static Expr _c_0;
33
34static Expr _c_1;
35
36static Expr _c_2;
37
38static Expr _c_3;
39
40static Expr _c_4;
41
42static Expr _c_17;
43
44static Expr _c_5;
45
46static Expr _c_6;
47
48static Expr _c_7;
49
50static Expr _c_8;
51
52static Expr _c_9;
53
54static Expr _c_10;
55
56static Expr _c_11;
57
58static Expr _c_12;
59
60static Expr _c_13;
61
62static Expr _c_14;
63
64static Expr _c_15;
65
66static Expr _c_16;
67
68static Expr _c_18;
69
70RF_FUNC (Simplify_m_ASAIL, (RF_ARG _v_arg1;;), (RF_RES _v_res1;;))
71  {
72    {
73      uintptr_t _v_len1 = _v_arg1.get_len ();
74      uintptr_t _v_len2 = 1;
75      if ((_v_len1 < _v_len2))
76      {
77        goto _block1__branch1;
78      }
79      uintptr_t _v_len__rest = (_v_len1 - _v_len2);
80      Expr _vt_first (_v_arg1, 0, 1);
81      Expr _ve_rest (_v_arg1, 1, _v_len__rest);
82      Expr _ve_first;
83      {
84        {
85          if (_vt_first.symbol_at (0))
86          {
87            goto _block2__branch1;
88          }
89          Expr _v_deref__first (_vt_first, 0);
90          uintptr_t _v_len3 = _v_deref__first.get_len ();
91          uintptr_t _v_len4 = 2;
92          if ((_v_len3 < _v_len4))
93          {
94            goto _block2__branch1;
95          }
96          uintptr_t _v_len__body = (_v_len3 - _v_len4);
97          if (_v_deref__first.symbol_at (1))
98          {
99            goto _block2__branch1;
100          }
101          Expr _v_deref__deref__first (_v_deref__first, 1);
102          uintptr_t _v_len5 = _v_deref__deref__first.get_len ();
103          uintptr_t _v_len6 = 0;
104          if ((_v_len5 < _v_len6))
105          {
106            goto _block2__branch1;
107          }
108          uintptr_t _v_len__cond = (_v_len5 - _v_len6);
109          if (!_c_0.term_eq (_v_deref__first, 0))
110          {
111            goto _block2__branch1;
112          }
113          Expr _ve_body (_v_deref__first, 2, _v_len__body);
114          Expr _ve_cond (_v_deref__deref__first, 0, _v_len__cond);
115          Expr _v_Map1;
116          RF_CALL (List::Map, (_c_1, empty, _ve_cond), _v_Map1);
117          {
118            {
119              if ((_v_Map1.get_len () != 1))
120              {
121                goto _block3__branch1;
122              }
123              if (!_c_2.term_eq (_v_Map1, 0))
124              {
125                goto _block3__branch1;
126              }
127              _ve_first = empty;
128              goto _block3;
129            }
130          _block3__branch1: {}
131            {
132              if ((_v_Map1.get_len () != 1))
133              {
134                goto _block3__branch2;
135              }
136              if (!_c_3.term_eq (_v_Map1, 0))
137              {
138                goto _block3__branch2;
139              }
140              RF_CALL (Simplify_m_ASAIL, _ve_body, _ve_first);
141              goto _block3;
142            }
143          _block3__branch2: {}
144            uintptr_t _v_len7 = _v_Map1.get_len ();
145            uintptr_t _v_len8 = 0;
146            if ((_v_len7 < _v_len8))
147            {
148              RF_FUNC_ERROR (unexpected_fail);
149            }
150            uintptr_t _v_len__c = (_v_len7 - _v_len8);
151            Expr _ve_c (_v_Map1, 0, _v_len__c);
152            Expr _v_Simplify_m_ASAIL1;
153            RF_CALL (Simplify_m_ASAIL, _ve_body, _v_Simplify_m_ASAIL1);
154            _ve_first = (_c_0 + _ve_c () + _v_Simplify_m_ASAIL1) ();
155          }
156        _block3: {}
157          goto _block2;
158        }
159      _block2__branch1: {}
160        {
161          if (_vt_first.symbol_at (0))
162          {
163            goto _block2__branch2;
164          }
165          Expr _v_deref__first2 (_vt_first, 0);
166          uintptr_t _v_len9 = _v_deref__first2.get_len ();
167          uintptr_t _v_len10 = 2;
168          if ((_v_len9 < _v_len10))
169          {
170            goto _block2__branch2;
171          }
172          uintptr_t _v_len__expr = (_v_len9 - _v_len10);
173          if (!_c_4.term_eq (_v_deref__first2, 0))
174          {
175            goto _block2__branch2;
176          }
177          Expr _vt_var (_v_deref__first2, 1, 1);
178          Expr _ve_expr (_v_deref__first2, 2, _v_len__expr);
179          Expr _v_Simplify_m_Arithm1;
180          RF_CALL (Simplify_m_Arithm, _ve_expr (), _v_Simplify_m_Arithm1);
181          _ve_first = (_c_4 + _vt_var + _v_Simplify_m_Arithm1) ();
182          goto _block2;
183        }
184      _block2__branch2: {}
185        {
186          if (_vt_first.symbol_at (0))
187          {
188            goto _block2__branch3;
189          }
190          Expr _v_deref__first3 (_vt_first, 0);
191          uintptr_t _v_len11 = _v_deref__first3.get_len ();
192          uintptr_t _v_len12 = 0;
193          if ((_v_len11 < _v_len12))
194          {
195            goto _block2__branch3;
196          }
197          uintptr_t _v_len__1 = (_v_len11 - _v_len12);
198          Expr _ve_1 (_v_deref__first3, 0, _v_len__1);
199          Expr _v_Simplify_m_ASAIL2;
200          RF_CALL (Simplify_m_ASAIL, _ve_1, _v_Simplify_m_ASAIL2);
201          _ve_first = _v_Simplify_m_ASAIL2 ();
202          goto _block2;
203        }
204      _block2__branch3: {}
205        if (!_vt_first.symbol_at (0))
206        {
207          RF_FUNC_ERROR (unexpected_fail);
208        }
209        Expr _vs_1 (_vt_first, 0, 1);
210        _ve_first = _vs_1;
211      }
212    _block2: {}
213      Expr _v_Simplify_m_ASAIL3;
214      RF_CALL (Simplify_m_ASAIL, _ve_rest, _v_Simplify_m_ASAIL3);
215      _v_res1 = (_ve_first + _v_Simplify_m_ASAIL3);
216      goto _block1;
217    }
218  _block1__branch1: {}
219    if ((_v_arg1.get_len () != 0))
220    {
221      RF_FUNC_ERROR (unexpected_fail);
222    }
223    _v_res1 = empty;
224  }
225_block1: {}
226RF_END
227
228RF_FUNC (Simplify_m_Infix, (RF_ARG _v_arg1;;), (RF_RES _v_res1;;))
229  {
230    {
231      if (_v_arg1.symbol_at (0))
232      {
233        goto _block1__branch1;
234      }
235      Expr _v_deref__arg1 (_v_arg1, 0);
236      uintptr_t _v_len1 = _v_deref__arg1.get_len ();
237      uintptr_t _v_len2 = 2;
238      if ((_v_len1 < _v_len2))
239      {
240        goto _block1__branch1;
241      }
242      uintptr_t _v_len__args = (_v_len1 - _v_len2);
243      if (!_c_5.term_eq (_v_deref__arg1, 0))
244      {
245        goto _block1__branch1;
246      }
247      if (!_v_deref__arg1.symbol_at (1))
248      {
249        goto _block1__branch1;
250      }
251      Expr _vs_op (_v_deref__arg1, 1, 1);
252      Expr _ve_args (_v_deref__arg1, 2, _v_len__args);
253      Expr _v_auxblock1;
254      {
255        {
256          if (!_vs_op.term_eq (_c_6, 0))
257          {
258            goto _block2__branch1;
259          }
260          Expr _v_Map1;
261          RF_CALL (List::Map, (_c_7, empty, _ve_args), _v_Map1);
262          RF_CALL (List::Foldr1, (_c_8, empty, _v_Map1), _v_auxblock1);
263          goto _block2;
264        }
265      _block2__branch1: {}
266        {
267          if (!_vs_op.term_eq (_c_9, 0))
268          {
269            goto _block2__branch2;
270          }
271          Expr _v_Map2;
272          RF_CALL (List::Map, (_c_7, empty, _ve_args), _v_Map2);
273          RF_CALL (List::Foldr1, (_c_10, empty, _v_Map2), _v_auxblock1);
274          goto _block2;
275        }
276      _block2__branch2: {}
277        {
278          if (!_vs_op.term_eq (_c_11, 0))
279          {
280            goto _block2__branch3;
281          }
282          Expr _v_Map3;
283          RF_CALL (List::Map, (_c_7, empty, _ve_args), _v_Map3);
284          RF_CALL (List::Foldr1, (_c_12, empty, _v_Map3), _v_auxblock1);
285          goto _block2;
286        }
287      _block2__branch3: {}
288        {
289          if (!_vs_op.term_eq (_c_13, 0))
290          {
291            goto _block2__branch4;
292          }
293          Expr _v_Map4;
294          RF_CALL (List::Map, (_c_7, empty, _ve_args), _v_Map4);
295          RF_CALL (List::Foldr1, (_c_14, empty, _v_Map4), _v_auxblock1);
296          goto _block2;
297        }
298      _block2__branch4: {}
299        {
300          if (!_vs_op.term_eq (_c_15, 0))
301          {
302            goto _block2__branch5;
303          }
304          Expr _v_Map5;
305          RF_CALL (List::Map, (_c_7, empty, _ve_args), _v_Map5);
306          RF_CALL (List::Foldr1, (_c_16, empty, _v_Map5), _v_auxblock1);
307          goto _block2;
308        }
309      _block2__branch5: {}
310        if (!_vs_op.symbol_at (0))
311        {
312          RF_FUNC_ERROR (unexpected_fail);
313        }
314        Expr _vs__e__e_tmp_m_rfp__asail2asailrf_m_36_m_6 (_vs_op, 0, 1);
315        RF_CALL (List::Map, (_c_7, empty, _ve_args), _v_auxblock1);
316      }
317    _block2: {}
318      {
319        {
320          if ((_v_auxblock1.get_len () != 1))
321          {
322            goto _block3__branch1;
323          }
324          Expr _vt_1 (_v_auxblock1, 0, 1);
325          _v_res1 = _vt_1;
326          goto _block3;
327        }
328      _block3__branch1: {}
329        uintptr_t _v_len3 = _v_auxblock1.get_len ();
330        uintptr_t _v_len4 = 0;
331        if ((_v_len3 < _v_len4))
332        {
333          RF_FUNC_ERROR (unexpected_fail);
334        }
335        uintptr_t _v_len__1 = (_v_len3 - _v_len4);
336        Expr _ve_1 (_v_auxblock1, 0, _v_len__1);
337        Expr _v_Paren1;
338        RF_CALL (List::Paren, _ve_1, _v_Paren1);
339        _v_res1 = (_c_5 + _vs_op + _v_Paren1) ();
340      }
341    _block3: {}
342      goto _block1;
343    }
344  _block1__branch1: {}
345    {
346      if (_v_arg1.symbol_at (0))
347      {
348        goto _block1__branch2;
349      }
350      Expr _v_deref__arg12 (_v_arg1, 0);
351      uintptr_t _v_len5 = _v_deref__arg12.get_len ();
352      uintptr_t _v_len6 = 0;
353      if ((_v_len5 < _v_len6))
354      {
355        goto _block1__branch2;
356      }
357      uintptr_t _v_len__12 = (_v_len5 - _v_len6);
358      Expr _ve_1 (_v_deref__arg12, 0, _v_len__12);
359      Expr _v_Map6;
360      RF_CALL (List::Map, (_c_1, empty, _ve_1), _v_Map6);
361      _v_res1 = _v_Map6 ();
362      goto _block1;
363    }
364  _block1__branch2: {}
365    if (!_v_arg1.symbol_at (0))
366    {
367      RF_FUNC_ERROR (unexpected_fail);
368    }
369    Expr _vs_1 (_v_arg1, 0, 1);
370    _v_res1 = _vs_1;
371  }
372_block1: {}
373RF_END
374
375RF_FUNC (Simplify_m_Arithm, (RF_ARG _v_arg1;;), (RF_RES _v_res1;;))
376  if ((_v_arg1.get_len () != 1))
377  {
378    RF_FUNC_ERROR (unexpected_fail);
379  }
380  if (_v_arg1.symbol_at (0))
381  {
382    RF_FUNC_ERROR (unexpected_fail);
383  }
384  Expr _v_deref__arg1 (_v_arg1, 0);
385  uintptr_t _v_len1 = _v_deref__arg1.get_len ();
386  uintptr_t _v_len2 = 0;
387  if ((_v_len1 < _v_len2))
388  {
389    RF_FUNC_ERROR (unexpected_fail);
390  }
391  uintptr_t _v_len__args = (_v_len1 - _v_len2);
392  Expr _ve_args (_v_deref__arg1, 0, _v_len__args);
393  Expr _v_Map1;
394  RF_CALL (List::Map, (_c_1, empty, _ve_args), _v_Map1);
395  Expr _v_Foldr11;
396  RF_CALL (List::Foldr1, (_c_14, empty, _v_Map1), _v_Foldr11);
397  {
398    {
399      if ((_v_Foldr11.get_len () != 1))
400      {
401        goto _block1__branch1;
402      }
403      Expr _vt_1 (_v_Foldr11, 0, 1);
404      _v_res1 = _vt_1;
405      goto _block1;
406    }
407  _block1__branch1: {}
408    uintptr_t _v_len3 = _v_Foldr11.get_len ();
409    uintptr_t _v_len4 = 0;
410    if ((_v_len3 < _v_len4))
411    {
412      RF_FUNC_ERROR (unexpected_fail);
413    }
414    uintptr_t _v_len__1 = (_v_len3 - _v_len4);
415    Expr _ve_1 (_v_Foldr11, 0, _v_len__1);
416    Expr _v_Paren1;
417    RF_CALL (List::Paren, _ve_1, _v_Paren1);
418    _v_res1 = (_c_17 + _v_Paren1) ();
419  }
420_block1: {}
421RF_END
422
423RF_FUNC (Eval_sp__a_, (RF_ARG _v_arg1;;), (RF_RES _v_res1;;))
424  {
425    {
426      uintptr_t _v_len1 = _v_arg1.get_len ();
427      uintptr_t _v_len2 = 1;
428      if ((_v_len1 < _v_len2))
429      {
430        goto _block1__branch1;
431      }
432      uintptr_t _v_len___e__e_tmp_m_rfp__asail2asailrf_m_52_m_7 = (_v_len1 - _v_len2);
433      if (!_c_2.term_eq (_v_arg1, 0))
434      {
435        goto _block1__branch1;
436      }
437      Expr _ve__e__e_tmp_m_rfp__asail2asailrf_m_52_m_7 (_v_arg1, 1, _v_len___e__e_tmp_m_rfp__asail2asailrf_m_52_m_7);
438      _v_res1 = _c_2;
439      goto _block1;
440    }
441  _block1__branch1: {}
442    {
443      uintptr_t _v_len3 = _v_arg1.get_len ();
444      uintptr_t _v_len4 = 1;
445      if ((_v_len3 < _v_len4))
446      {
447        goto _block1__branch2;
448      }
449      uintptr_t _v_len___e__e_tmp_m_rfp__asail2asailrf_m_53_m_4 = (_v_len3 - _v_len4);
450      if (!_c_2.term_eq (_v_arg1, _v_len___e__e_tmp_m_rfp__asail2asailrf_m_53_m_4))
451      {
452        goto _block1__branch2;
453      }
454      Expr _ve__e__e_tmp_m_rfp__asail2asailrf_m_53_m_4 (_v_arg1, 0, _v_len___e__e_tmp_m_rfp__asail2asailrf_m_53_m_4);
455      _v_res1 = _c_2;
456      goto _block1;
457    }
458  _block1__branch2: {}
459    {
460      uintptr_t _v_len5 = _v_arg1.get_len ();
461      uintptr_t _v_len6 = 1;
462      if ((_v_len5 < _v_len6))
463      {
464        goto _block1__branch3;
465      }
466      uintptr_t _v_len__2 = (_v_len5 - _v_len6);
467      if (!_c_3.term_eq (_v_arg1, 0))
468      {
469        goto _block1__branch3;
470      }
471      Expr _ve_2 (_v_arg1, 1, _v_len__2);
472      _v_res1 = _ve_2;
473      goto _block1;
474    }
475  _block1__branch3: {}
476    {
477      uintptr_t _v_len7 = _v_arg1.get_len ();
478      uintptr_t _v_len8 = 1;
479      if ((_v_len7 < _v_len8))
480      {
481        goto _block1__branch4;
482      }
483      uintptr_t _v_len__1 = (_v_len7 - _v_len8);
484      if (!_c_3.term_eq (_v_arg1, _v_len__1))
485      {
486        goto _block1__branch4;
487      }
488      Expr _ve_1 (_v_arg1, 0, _v_len__1);
489      _v_res1 = _ve_1;
490      goto _block1;
491    }
492  _block1__branch4: {}
493    {
494      uintptr_t _v_len9 = _v_arg1.get_len ();
495      uintptr_t _v_len10 = 2;
496      if ((_v_len9 < _v_len10))
497      {
498        goto _block1__branch5;
499      }
500      uintptr_t _v_len__22 = (_v_len9 - _v_len10);
501      if (!_v_arg1.symbol_at (0))
502      {
503        goto _block1__branch5;
504      }
505      if (!_v_arg1.symbol_at ((_v_len__22 + 1)))
506      {
507        goto _block1__branch5;
508      }
509      Expr _vs_1 (_v_arg1, 0, 1);
510      Expr _ve_2 (_v_arg1, 1, _v_len__22);
511      Expr _vs_3 (_v_arg1, (_v_len__22 + 1), 1);
512      Expr _v__a_1;
513      RF_CALL (Arithm::_a_, (_vs_1, _vs_3), _v__a_1);
514      _v_res1 = (_ve_2 + _v__a_1);
515      goto _block1;
516    }
517  _block1__branch5: {}
518    {
519      uintptr_t _v_len11 = _v_arg1.get_len ();
520      uintptr_t _v_len12 = 1;
521      if ((_v_len11 < _v_len12))
522      {
523        goto _block1__branch6;
524      }
525      uintptr_t _v_len__23 = (_v_len11 - _v_len12);
526      if (!_v_arg1.symbol_at (0))
527      {
528        goto _block1__branch6;
529      }
530      Expr _vs_1 (_v_arg1, 0, 1);
531      Expr _ve_2 (_v_arg1, 1, _v_len__23);
532      _v_res1 = (_ve_2 + _vs_1);
533      goto _block1;
534    }
535  _block1__branch6: {}
536    _v_res1 = _v_arg1;
537  }
538_block1: {}
539RF_END
540
541RF_FUNC (Eval_sp__p_, (RF_ARG _v_arg1;;), (RF_RES _v_res1;;))
542  {
543    {
544      uintptr_t _v_len1 = _v_arg1.get_len ();
545      uintptr_t _v_len2 = 1;
546      if ((_v_len1 < _v_len2))
547      {
548        goto _block1__branch1;
549      }
550      uintptr_t _v_len__2 = (_v_len1 - _v_len2);
551      if (!_c_2.term_eq (_v_arg1, 0))
552      {
553        goto _block1__branch1;
554      }
555      Expr _ve_2 (_v_arg1, 1, _v_len__2);
556      _v_res1 = _ve_2;
557      goto _block1;
558    }
559  _block1__branch1: {}
560    {
561      uintptr_t _v_len3 = _v_arg1.get_len ();
562      uintptr_t _v_len4 = 1;
563      if ((_v_len3 < _v_len4))
564      {
565        goto _block1__branch2;
566      }
567      uintptr_t _v_len__1 = (_v_len3 - _v_len4);
568      if (!_c_2.term_eq (_v_arg1, _v_len__1))
569      {
570        goto _block1__branch2;
571      }
572      Expr _ve_1 (_v_arg1, 0, _v_len__1);
573      _v_res1 = _ve_1;
574      goto _block1;
575    }
576  _block1__branch2: {}
577    {
578      uintptr_t _v_len5 = _v_arg1.get_len ();
579      uintptr_t _v_len6 = 2;
580      if ((_v_len5 < _v_len6))
581      {
582        goto _block1__branch3;
583      }
584      uintptr_t _v_len__22 = (_v_len5 - _v_len6);
585      if (!_v_arg1.symbol_at (0))
586      {
587        goto _block1__branch3;
588      }
589      if (!_v_arg1.symbol_at ((_v_len__22 + 1)))
590      {
591        goto _block1__branch3;
592      }
593      Expr _vs_1 (_v_arg1, 0, 1);
594      Expr _ve_2 (_v_arg1, 1, _v_len__22);
595      Expr _vs_3 (_v_arg1, (_v_len__22 + 1), 1);
596      Expr _v__p_1;
597      RF_CALL (Arithm::_p_, (_vs_1, _vs_3), _v__p_1);
598      _v_res1 = (_ve_2 + _v__p_1);
599      goto _block1;
600    }
601  _block1__branch3: {}
602    {
603      uintptr_t _v_len7 = _v_arg1.get_len ();
604      uintptr_t _v_len8 = 1;
605      if ((_v_len7 < _v_len8))
606      {
607        goto _block1__branch4;
608      }
609      uintptr_t _v_len__23 = (_v_len7 - _v_len8);
610      if (!_v_arg1.symbol_at (0))
611      {
612        goto _block1__branch4;
613      }
614      Expr _vs_1 (_v_arg1, 0, 1);
615      Expr _ve_2 (_v_arg1, 1, _v_len__23);
616      _v_res1 = (_ve_2 + _vs_1);
617      goto _block1;
618    }
619  _block1__branch4: {}
620    _v_res1 = _v_arg1;
621  }
622_block1: {}
623RF_END
624
625RF_FUNC (Eval_sp__s_, (RF_ARG _v_arg1;;), (RF_RES _v_res1;;))
626  {
627    {
628      uintptr_t _v_len1 = _v_arg1.get_len ();
629      uintptr_t _v_len2 = 1;
630      if ((_v_len1 < _v_len2))
631      {
632        goto _block1__branch1;
633      }
634      uintptr_t _v_len__1 = (_v_len1 - _v_len2);
635      if (!_c_3.term_eq (_v_arg1, _v_len__1))
636      {
637        goto _block1__branch1;
638      }
639      Expr _ve_1 (_v_arg1, 0, _v_len__1);
640      _v_res1 = _ve_1;
641      goto _block1;
642    }
643  _block1__branch1: {}
644    _v_res1 = _v_arg1;
645  }
646_block1: {}
647RF_END
648
649RF_FUNC (Eval_sp__percnt_, (RF_ARG _v_arg1;;), (RF_RES _v_res1;;))
650  {
651    {
652      uintptr_t _v_len1 = _v_arg1.get_len ();
653      uintptr_t _v_len2 = 1;
654      if ((_v_len1 < _v_len2))
655      {
656        goto _block1__branch1;
657      }
658      uintptr_t _v_len__1 = (_v_len1 - _v_len2);
659      if (!_c_3.term_eq (_v_arg1, _v_len__1))
660      {
661        goto _block1__branch1;
662      }
663      Expr _ve_1 (_v_arg1, 0, _v_len__1);
664      _v_res1 = _c_2;
665      goto _block1;
666    }
667  _block1__branch1: {}
668    _v_res1 = _v_arg1;
669  }
670_block1: {}
671RF_END
672
673RF_FUNC (Eval_sp__m_, (RF_ARG _v_arg1;;), (RF_RES _v_res1;;))
674  {
675    {
676      uintptr_t _v_len1 = _v_arg1.get_len ();
677      uintptr_t _v_len2 = 1;
678      if ((_v_len1 < _v_len2))
679      {
680        goto _block1__branch1;
681      }
682      uintptr_t _v_len__1 = (_v_len1 - _v_len2);
683      if (!_c_2.term_eq (_v_arg1, _v_len__1))
684      {
685        goto _block1__branch1;
686      }
687      Expr _ve_1 (_v_arg1, 0, _v_len__1);
688      _v_res1 = _ve_1;
689      goto _block1;
690    }
691  _block1__branch1: {}
692    _v_res1 = _v_arg1;
693  }
694_block1: {}
695RF_END
696
697RF_FUNC (Simplify_m_Infix__0, (RF_ARG _v_arg1;;), (RF_RES _v_res1;;))
698  if ((_v_arg1.get_len () != 1))
699  {
700    RF_ERROR (_c_18);
701  }
702  Expr _v_stub1 (_v_arg1, 0, 1);
703  RF_CALL (Simplify_m_Infix, _v_stub1, _v_res1);
704RF_END
705
706}
707
708namespace rfp__asail2asail
709{
710
711static void init_ ()
712{
713  _c_0 = Expr::create<Word>("IF");
714  _c_1 = Expr::create_sym<Func> (Simplify_m_Infix__0);
715  _c_2 = Expr::create<Integer>("0");
716  _c_3 = Expr::create<Integer>("1");
717  _c_4 = Expr::create<Word>("INT");
718  _c_17 = Expr::create<Word>("INFIX") + Expr::create<Word>("+");
719  _c_5 = Expr (_c_17, 0, 1);
720  _c_6 = Expr::create<Word>("*");
721  _c_7 = Expr::create_sym<Func> (Simplify_m_Arithm);
722  _c_8 = Expr::create_sym<Func> (Eval_sp__a_);
723  _c_9 = Expr::create<Word>("/");
724  _c_10 = Expr::create_sym<Func> (Eval_sp__s_);
725  _c_11 = Expr::create<Word>("%");
726  _c_12 = Expr::create_sym<Func> (Eval_sp__percnt_);
727  _c_13 = Expr (_c_17, 1, 1);
728  _c_14 = Expr::create_sym<Func> (Eval_sp__p_);
729  _c_15 = Expr::create<Word>("-");
730  _c_16 = Expr::create_sym<Func> (Eval_sp__m_);
731  _c_18 = Expr::create<Word>("Apply") + Expr::create<Word>("Apply") + Expr::create<Word>("Unexpected fail");
732}
733
734static AtStart init_registrator_ (&init_);
735
736}
737
738}
Note: See TracBrowser for help on using the repository browser.