source: to-imperative/trunk/library/Debug/Debug.cc @ 2045

Last change on this file since 2045 was 2045, checked in by orlov, 14 years ago
  • Improved format of messages for a user.
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 36.7 KB
Line 
1#include <rf_core.hh>
2#include <refal/Arithm.hh>
3#include <refal/Apply.hh>
4#include <refal/Compare.hh>
5#include <refal/Convert.hh>
6#include <refal/Box.hh>
7#include <refal/RF_Stack.hh>
8#include <refal/Static.hh>
9#include <refal/Table.hh>
10#include <refal/StdIO.hh>
11#include <refal/List.hh>
12
13namespace refal
14{
15
16using namespace rfrt;
17
18namespace Debug
19{
20
21static Expr Break_m_Funcs;
22
23static Expr Breakpoints;
24
25static Expr Ops;
26
27static Expr Break_m_Depth;
28
29static Expr Break_q_;
30
31static Expr Last_m_Depth;
32
33RF_DECL (Stop_q_);
34
35RF_DECL (Debug);
36
37RF_DECL (Cont);
38
39RF_DECL (Run);
40
41RF_DECL (Step);
42
43RF_DECL (Next);
44
45RF_DECL (Var);
46
47RF_DECL (Set_m_Break);
48
49RF_DECL (Clear_m_Break);
50
51RF_DECL (Set_m_Func);
52
53RF_DECL (Clear_m_Func);
54
55RF_DECL (Init);
56
57RF_DECL (Clear_m_Break__0);
58
59RF_DECL (Cont__0);
60
61RF_DECL (Clear_m_Func__0);
62
63RF_DECL (Run__0);
64
65RF_DECL (Set_m_Func__0);
66
67RF_DECL (Set_m_Break__0);
68
69RF_DECL (Var__0);
70
71RF_DECL (Step__0);
72
73RF_DECL (Next__0);
74
75static Expr _c_0;
76
77static Expr _c_1;
78
79static Expr _c_2;
80
81static Expr _c_3;
82
83static Expr _c_4;
84
85static Expr _c_5;
86
87static Expr _c_6;
88
89static Expr _c_7;
90
91static Expr _c_8;
92
93static Expr _c_9;
94
95static Expr _c_10;
96
97static Expr _c_11;
98
99static Expr _c_12;
100
101static Expr _c_13;
102
103static Expr _c_14;
104
105static Expr _c_15;
106
107static Expr _c_16;
108
109static Expr _c_17;
110
111static Expr _c_18;
112
113static Expr _c_19;
114
115static Expr _c_20;
116
117static Expr _c_21;
118
119static Expr _c_22;
120
121static Expr _c_23;
122
123static Expr _c_24;
124
125static Expr _c_25;
126
127static Expr _c_26;
128
129static Expr _c_27;
130
131static Expr _c_28;
132
133static Expr _c_29;
134
135static Expr _c_30;
136
137static Expr _c_31;
138
139static Expr _c_32;
140
141static Expr _c_33;
142
143static Expr _c_34;
144
145static Expr _c_35;
146
147static Expr _c_36;
148
149static Expr _c_37;
150
151static Expr _c_38;
152
153static Expr _c_39;
154
155static Expr _c_40;
156
157RF_FUNC (Stop_q_, (RF_ARG _ve_point;;), RF_VOID)
158  {
159    {
160      Expr _v__q_1;
161      RF_CALL (Box::_q_, Break_q_, _v__q_1);
162      {
163        {
164          if ((_v__q_1.get_len () != 1))
165          {
166            goto _block2__branch1;
167          }
168          if (!_c_0.term_eq (_v__q_1, 0))
169          {
170            goto _block2__branch1;
171          }
172          goto _block2;
173        }
174      _block2__branch1: {}
175        if ((_v__q_1.get_len () != 1))
176        {
177          goto _block1__branch1;
178        }
179        if (!_c_1.term_eq (_v__q_1, 0))
180        {
181          goto _block1__branch1;
182        }
183        RF_RETFAIL;
184      }
185    _block2: {}
186      goto _block1;
187    }
188  _block1__branch1: {}
189    {
190      Expr _v_Depth1;
191      RF_CALL (RF__Stack::Depth, /*void*/, _v_Depth1);
192      Expr _v__q_2;
193      RF_CALL (Box::_q_, Break_m_Depth, _v__q_2);
194      if (!RF_CALL (Compare::_lt__eq_, (_v_Depth1, _v__q_2), /*void*/))
195      {
196        goto _block1__branch2;
197      }
198      goto _block1;
199    }
200  _block1__branch2: {}
201    {
202      if (!RF_CALL (Table::In_m_Table_q_, (Breakpoints, _ve_point), /*void*/))
203      {
204        goto _block1__branch3;
205      }
206      goto _block1;
207    }
208  _block1__branch3: {}
209    {
210      Expr _v_Depth2;
211      RF_CALL (RF__Stack::Depth, /*void*/, _v_Depth2);
212      Expr _v__m_1;
213      RF_CALL (Arithm::_m_, (_v_Depth2, _c_2), _v__m_1);
214      Expr _v_Func1;
215      if (!RF_CALL (RF__Stack::Func, _v__m_1, _v_Func1))
216      {
217        goto _block1__branch4;
218      }
219      Expr _v_Name1;
220      if (!RF_CALL (Static::Name, _v_Func1, _v_Name1))
221      {
222        goto _block1__branch4;
223      }
224      if (!RF_CALL (Table::In_m_Table_q_, (Break_m_Funcs, _v_Name1), /*void*/))
225      {
226        goto _block1__branch4;
227      }
228      Expr _v_Depth3;
229      RF_CALL (RF__Stack::Depth, /*void*/, _v_Depth3);
230      Expr _v__q_3;
231      RF_CALL (Box::_q_, Last_m_Depth, _v__q_3);
232      if (!RF_CALL (Compare::_gt_, (_v_Depth3, _v__q_3), /*void*/))
233      {
234        goto _block1__branch4;
235      }
236      goto _block1;
237    }
238  _block1__branch4: {}
239    Expr _v_Depth4;
240    RF_CALL (RF__Stack::Depth, /*void*/, _v_Depth4);
241    RF_CALL (Box::Store, (Last_m_Depth, _v_Depth4), /*void*/);
242    RF_RETFAIL;
243  }
244_block1: {}
245  RF_CALL (Box::Store, (Break_q_, empty), /*void*/);
246  RF_CALL (Box::Store, (Break_m_Depth, _c_3), /*void*/);
247  Expr _v_Depth5;
248  RF_CALL (RF__Stack::Depth, /*void*/, _v_Depth5);
249  RF_CALL (Box::Store, (Last_m_Depth, _v_Depth5), /*void*/);
250  RF_CALL (StdIO::Print, _c_4, /*void*/);
251  Expr _v_RF__Stack1;
252  if (!RF_CALL (RF__Stack::RF__Stack, (_c_5, _c_2), _v_RF__Stack1))
253  {
254    RF_RETFAIL;
255  }
256  RF_CALL (StdIO::WriteLN, (_ve_point + _v_RF__Stack1), /*void*/);
257RF_END
258
259RF_FUNC (Debug, (RF_ARG _ve_nv;;), RF_VOID)
260  {
261    for ( ; ; )
262    {
263      {
264        {
265          Expr _v_Read_m_Line1;
266          if (!RF_CALL (StdIO::Read_m_Line, /*void*/, _v_Read_m_Line1))
267          {
268            goto _block2__branch1;
269          }
270          uintptr_t _v_len1 = _v_Read_m_Line1.get_len ();
271          uintptr_t _v_len2 = 1;
272          if ((_v_len1 < _v_len2))
273          {
274            goto _block2__branch1;
275          }
276          uintptr_t _v_len__2 = (_v_len1 - _v_len2);
277          if (!_v_Read_m_Line1.symbol_at (0))
278          {
279            goto _block2__branch1;
280          }
281          Expr _vs_1 (_v_Read_m_Line1, 0, 1);
282          Expr _ve_2 (_v_Read_m_Line1, 1, _v_len__2);
283          Expr _v_Lookup1;
284          if (!RF_CALL (Table::Lookup, (Ops, _vs_1), _v_Lookup1))
285          {
286            goto _block2__branch1;
287          }
288          if ((_v_Lookup1.get_len () != 1))
289          {
290            goto _block2__branch1;
291          }
292          if (!_v_Lookup1.symbol_at (0))
293          {
294            goto _block2__branch1;
295          }
296          Expr _vs_op (_v_Lookup1, 0, 1);
297          Expr _v_Apply1;
298          if (!RF_CALL (Apply::Apply, (_vs_op, (_ve_2 + _ve_nv ())), _v_Apply1))
299          {
300            goto _block1__branch1;
301          }
302          uintptr_t _v_len3 = _v_Apply1.get_len ();
303          uintptr_t _v_len4 = 0;
304          if ((_v_len3 < _v_len4))
305          {
306            goto _block1__branch1;
307          }
308          uintptr_t _v_len___e__e_tmp_m_Debugrf_m_29_m_32 = (_v_len3 - _v_len4);
309          Expr _ve__e__e_tmp_m_Debugrf_m_29_m_32 (_v_Apply1, 0, _v_len___e__e_tmp_m_Debugrf_m_29_m_32);
310          goto _block2;
311        }
312      _block2__branch1: {}
313        {
314          Expr _v_Entries1;
315          RF_CALL (Table::Entries, Ops, _v_Entries1);
316          if ((_v_Entries1.get_len () < 1))
317          {
318            goto _block2__branch2;
319          }
320          RF_lsplit (_v_Entries1, 0, _ve__e__e_tmp_m_Debugrf_m_30_m_23, _v_lsplit__Entries1);
321          for ( ; ; RF_iter(_v_Entries1)++)
322          {
323            {
324              if (!RF_iter(_v_Entries1))
325              {
326                goto _block2__branch2;
327              }
328              uintptr_t _v_len5 = _v_lsplit__Entries1.get_len ();
329              uintptr_t _v_len6 = 1;
330              if ((_v_len5 < _v_len6))
331              {
332                goto _block2__branch2;
333              }
334              uintptr_t _v_len___e__e_tmp_m_Debugrf_m_30_m_42 = (_v_len5 - _v_len6);
335              if (_v_lsplit__Entries1.symbol_at (0))
336              {
337                goto _continue1;
338              }
339              Expr _v_deref__lsplit__Entries1 (_v_lsplit__Entries1, 0);
340              if ((_v_deref__lsplit__Entries1.get_len () != 2))
341              {
342                goto _continue1;
343              }
344              if (_v_deref__lsplit__Entries1.symbol_at (0))
345              {
346                goto _continue1;
347              }
348              if (_v_deref__lsplit__Entries1.symbol_at (1))
349              {
350                goto _continue1;
351              }
352              Expr _v_deref__deref__lsplit__Entries1 (_v_deref__lsplit__Entries1, 0);
353              Expr _v_deref__deref__lsplit__Entries12 (_v_deref__lsplit__Entries1, 1);
354              if ((_v_deref__deref__lsplit__Entries12.get_len () != 1))
355              {
356                goto _continue1;
357              }
358              uintptr_t _v_len7 = _v_deref__deref__lsplit__Entries1.get_len ();
359              uintptr_t _v_len8 = 0;
360              if ((_v_len7 < _v_len8))
361              {
362                goto _continue1;
363              }
364              uintptr_t _v_len__key = (_v_len7 - _v_len8);
365              if (!_v_deref__deref__lsplit__Entries12.symbol_at (0))
366              {
367                goto _continue1;
368              }
369              Expr _ve__e__e_tmp_m_Debugrf_m_30_m_42 (_v_lsplit__Entries1, 1, _v_len___e__e_tmp_m_Debugrf_m_30_m_42);
370              Expr _ve_key (_v_deref__deref__lsplit__Entries1, 0, _v_len__key);
371              Expr _vs_op (_v_deref__deref__lsplit__Entries12, 0, 1);
372              RF_CALL (StdIO::Print, _ve_key, /*void*/);
373              Expr _v_Apply2;
374              if (!RF_CALL (Apply::Apply, (_vs_op, _c_6), _v_Apply2))
375              {
376                goto _continue1;
377              }
378              uintptr_t _v_len9 = _v_Apply2.get_len ();
379              uintptr_t _v_len10 = 0;
380              if ((_v_len9 < _v_len10))
381              {
382                goto _continue1;
383              }
384              uintptr_t _v_len___e__e_tmp_m_Debugrf_m_31_m_45 = (_v_len9 - _v_len10);
385              Expr _ve__e__e_tmp_m_Debugrf_m_31_m_45 (_v_Apply2, 0, _v_len___e__e_tmp_m_Debugrf_m_31_m_45);
386              goto _continue1;
387            }
388        _continue1: {}
389          }
390        }
391      _block2__branch2: {}
392      }
393    _block2: {}
394    }
395  }
396_block1__branch1: {}
397RF_END
398
399RF_FUNC (Cont, (RF_ARG _ve_arg, _ve_nv;;), RF_VOID)
400  {
401    {
402      if ((_ve_arg.get_len () != 1))
403      {
404        goto _block1__branch1;
405      }
406      if (!_c_7.term_eq (_ve_arg, 0))
407      {
408        goto _block1__branch1;
409      }
410      RF_TAILCALL (StdIO::PrintLN, _c_8, /*void*/);
411      goto _block1;
412    }
413  _block1__branch1: {}
414    uintptr_t _v_len1 = _ve_arg.get_len ();
415    uintptr_t _v_len2 = 0;
416    if (((_v_len1 < (_v_len2 + (0 * 1)))))
417    {
418      RF_FUNC_ERROR (unexpected_fail);
419    }
420    if (((_v_len1 - _v_len2) % 1))
421    {
422      RF_FUNC_ERROR (unexpected_fail);
423    }
424    uintptr_t _v_len___e__e_tmp_m_Debugrf_m_42_m_6 = ((_v_len1 - _v_len2) / 1);
425    Expr _ve__e__e_tmp_m_Debugrf_m_42_m_6 (_ve_arg, 0, _v_len___e__e_tmp_m_Debugrf_m_42_m_6);
426    RF_RETFAIL;
427  }
428_block1: {}
429RF_END
430
431RF_FUNC (Run, (RF_ARG _ve_arg, _ve_nv;;), RF_VOID)
432  {
433    {
434      if ((_ve_arg.get_len () != 1))
435      {
436        goto _block1__branch1;
437      }
438      if (!_c_7.term_eq (_ve_arg, 0))
439      {
440        goto _block1__branch1;
441      }
442      RF_TAILCALL (StdIO::PrintLN, _c_9, /*void*/);
443      goto _block1;
444    }
445  _block1__branch1: {}
446    uintptr_t _v_len1 = _ve_arg.get_len ();
447    uintptr_t _v_len2 = 0;
448    if (((_v_len1 < (_v_len2 + (0 * 1)))))
449    {
450      RF_FUNC_ERROR (unexpected_fail);
451    }
452    if (((_v_len1 - _v_len2) % 1))
453    {
454      RF_FUNC_ERROR (unexpected_fail);
455    }
456    uintptr_t _v_len___e__e_tmp_m_Debugrf_m_50_m_6 = ((_v_len1 - _v_len2) / 1);
457    Expr _ve__e__e_tmp_m_Debugrf_m_50_m_6 (_ve_arg, 0, _v_len___e__e_tmp_m_Debugrf_m_50_m_6);
458    RF_CALL (Box::Store, (Break_q_, _c_1), /*void*/);
459    RF_RETFAIL;
460  }
461_block1: {}
462RF_END
463
464RF_FUNC (Step, (RF_ARG _ve_arg, _ve_nv;;), RF_VOID)
465  {
466    {
467      if ((_ve_arg.get_len () != 1))
468      {
469        goto _block1__branch1;
470      }
471      if (!_c_7.term_eq (_ve_arg, 0))
472      {
473        goto _block1__branch1;
474      }
475      RF_TAILCALL (StdIO::PrintLN, _c_10, /*void*/);
476      goto _block1;
477    }
478  _block1__branch1: {}
479    uintptr_t _v_len1 = _ve_arg.get_len ();
480    uintptr_t _v_len2 = 0;
481    if (((_v_len1 < (_v_len2 + (0 * 1)))))
482    {
483      RF_FUNC_ERROR (unexpected_fail);
484    }
485    if (((_v_len1 - _v_len2) % 1))
486    {
487      RF_FUNC_ERROR (unexpected_fail);
488    }
489    uintptr_t _v_len___e__e_tmp_m_Debugrf_m_60_m_6 = ((_v_len1 - _v_len2) / 1);
490    Expr _ve__e__e_tmp_m_Debugrf_m_60_m_6 (_ve_arg, 0, _v_len___e__e_tmp_m_Debugrf_m_60_m_6);
491    RF_CALL (Box::Store, (Break_q_, _c_0), /*void*/);
492    RF_RETFAIL;
493  }
494_block1: {}
495RF_END
496
497RF_FUNC (Next, (RF_ARG _ve_arg, _ve_nv;;), RF_VOID)
498  {
499    {
500      if ((_ve_arg.get_len () != 1))
501      {
502        goto _block1__branch1;
503      }
504      if (!_c_7.term_eq (_ve_arg, 0))
505      {
506        goto _block1__branch1;
507      }
508      RF_TAILCALL (StdIO::PrintLN, _c_11, /*void*/);
509      goto _block1;
510    }
511  _block1__branch1: {}
512    uintptr_t _v_len1 = _ve_arg.get_len ();
513    uintptr_t _v_len2 = 0;
514    if (((_v_len1 < (_v_len2 + (0 * 1)))))
515    {
516      RF_FUNC_ERROR (unexpected_fail);
517    }
518    if (((_v_len1 - _v_len2) % 1))
519    {
520      RF_FUNC_ERROR (unexpected_fail);
521    }
522    uintptr_t _v_len___e__e_tmp_m_Debugrf_m_70_m_6 = ((_v_len1 - _v_len2) / 1);
523    Expr _ve__e__e_tmp_m_Debugrf_m_70_m_6 (_ve_arg, 0, _v_len___e__e_tmp_m_Debugrf_m_70_m_6);
524    Expr _v_Depth1;
525    RF_CALL (RF__Stack::Depth, /*void*/, _v_Depth1);
526    Expr _v__m_1;
527    RF_CALL (Arithm::_m_, (_v_Depth1, _c_5), _v__m_1);
528    RF_CALL (Box::Store, (Break_m_Depth, _v__m_1), /*void*/);
529    RF_RETFAIL;
530  }
531_block1: {}
532RF_END
533
534RF_FUNC (Var, (RF_ARG _ve_arg, _ve_nv;;), RF_VOID)
535  {
536    {
537      if ((_ve_arg.get_len () != 1))
538      {
539        goto _block1__branch1;
540      }
541      if (!_c_7.term_eq (_ve_arg, 0))
542      {
543        goto _block1__branch1;
544      }
545      RF_TAILCALL (StdIO::PrintLN, _c_12, /*void*/);
546      goto _block1;
547    }
548  _block1__branch1: {}
549    {
550      uintptr_t _v_len1 = _ve_arg.get_len ();
551      uintptr_t _v_len2 = 0;
552      if ((_v_len1 < (_v_len2 + 1)))
553      {
554        goto _block1__branch2;
555      }
556      uintptr_t _v_len__name = (_v_len1 - _v_len2);
557      Expr _vv_name (_ve_arg, 0, _v_len__name);
558      {
559        {
560          if ((_ve_nv.get_len () < 1))
561          {
562            goto _block2__branch1;
563          }
564          RF_lsplit (_ve_nv, 0, _ve__e__e_tmp_m_Debugrf_m_81_m_14, _v_lsplit__nv);
565          for ( ; ; RF_iter(_ve_nv)++)
566          {
567            {
568              if (!RF_iter(_ve_nv))
569              {
570                goto _block2__branch1;
571              }
572              uintptr_t _v_len3 = _v_lsplit__nv.get_len ();
573              uintptr_t _v_len4 = 1;
574              if ((_v_len3 < _v_len4))
575              {
576                goto _block2__branch1;
577              }
578              uintptr_t _v_len___e__e_tmp_m_Debugrf_m_81_m_35 = (_v_len3 - _v_len4);
579              if (_v_lsplit__nv.symbol_at (0))
580              {
581                goto _continue1;
582              }
583              Expr _v_deref__lsplit__nv (_v_lsplit__nv, 0);
584              if ((_v_deref__lsplit__nv.get_len () != (_v_len__name + 1)))
585              {
586                goto _continue1;
587              }
588              if (_v_deref__lsplit__nv.symbol_at (_v_len__name))
589              {
590                goto _continue1;
591              }
592              Expr _v_deref__deref__lsplit__nv (_v_deref__lsplit__nv, _v_len__name);
593              uintptr_t _v_len5 = _v_deref__deref__lsplit__nv.get_len ();
594              uintptr_t _v_len6 = 0;
595              if ((_v_len5 < _v_len6))
596              {
597                goto _continue1;
598              }
599              uintptr_t _v_len__value = (_v_len5 - _v_len6);
600              if (!_vv_name.eq (_v_deref__lsplit__nv, 0))
601              {
602                goto _continue1;
603              }
604              Expr _ve__e__e_tmp_m_Debugrf_m_81_m_35 (_v_lsplit__nv, 1, _v_len___e__e_tmp_m_Debugrf_m_81_m_35);
605              Expr _ve_value (_v_deref__deref__lsplit__nv, 0, _v_len__value);
606              RF_TAILCALL (StdIO::WriteLN, _ve_value, /*void*/);
607              goto _exit1;
608            }
609        _continue1: {}
610          }
611        _exit1: {}
612          goto _block2;
613        }
614      _block2__branch1: {}
615        RF_TAILCALL (StdIO::PrintLN, (_c_13 + _vv_name), /*void*/);
616      }
617    _block2: {}
618      goto _block1;
619    }
620  _block1__branch2: {}
621    if ((_ve_arg.get_len () != 0))
622    {
623      RF_FUNC_ERROR (unexpected_fail);
624    }
625    {
626      if ((_ve_nv.get_len () < 1))
627      {
628        goto _block3__branch1;
629      }
630      RF_lsplit (_ve_nv, 0, _ve__e__e_tmp_m_Debugrf_m_85_m_14, _v_lsplit__nv2);
631      for ( ; ; RF_iter(_ve_nv)++)
632      {
633        {
634          if (!RF_iter(_ve_nv))
635          {
636            goto _block3__branch1;
637          }
638          uintptr_t _v_len7 = _v_lsplit__nv2.get_len ();
639          uintptr_t _v_len8 = 1;
640          if ((_v_len7 < _v_len8))
641          {
642            goto _block3__branch1;
643          }
644          uintptr_t _v_len___e__e_tmp_m_Debugrf_m_85_m_35 = (_v_len7 - _v_len8);
645          if (_v_lsplit__nv2.symbol_at (0))
646          {
647            goto _continue2;
648          }
649          Expr _v_deref__lsplit__nv2 (_v_lsplit__nv2, 0);
650          uintptr_t _v_len9 = _v_deref__lsplit__nv2.get_len ();
651          uintptr_t _v_len10 = 1;
652          if ((_v_len9 < _v_len10))
653          {
654            goto _continue2;
655          }
656          uintptr_t _v_len__name2 = (_v_len9 - _v_len10);
657          if (_v_deref__lsplit__nv2.symbol_at (_v_len__name2))
658          {
659            goto _continue2;
660          }
661          Expr _v_deref__deref__lsplit__nv2 (_v_deref__lsplit__nv2, _v_len__name2);
662          uintptr_t _v_len11 = _v_deref__deref__lsplit__nv2.get_len ();
663          uintptr_t _v_len12 = 0;
664          if ((_v_len11 < _v_len12))
665          {
666            goto _continue2;
667          }
668          uintptr_t _v_len__value2 = (_v_len11 - _v_len12);
669          Expr _ve__e__e_tmp_m_Debugrf_m_85_m_35 (_v_lsplit__nv2, 1, _v_len___e__e_tmp_m_Debugrf_m_85_m_35);
670          Expr _ve_name (_v_deref__lsplit__nv2, 0, _v_len__name2);
671          Expr _ve_value (_v_deref__deref__lsplit__nv2, 0, _v_len__value2);
672          RF_CALL (StdIO::Print, (_c_15 + _ve_name + _c_14), /*void*/);
673          RF_CALL (StdIO::WriteLN, _ve_value, /*void*/);
674          goto _continue2;
675        }
676    _continue2: {}
677      }
678    }
679  _block3__branch1: {}
680  }
681_block1: {}
682RF_END
683
684RF_FUNC (Set_m_Break, (RF_ARG _ve_arg, _ve_nv;;), RF_VOID)
685  {
686    {
687      if ((_ve_arg.get_len () != 1))
688      {
689        goto _block1__branch1;
690      }
691      if (!_c_7.term_eq (_ve_arg, 0))
692      {
693        goto _block1__branch1;
694      }
695      RF_TAILCALL (StdIO::PrintLN, _c_16, /*void*/);
696      goto _block1;
697    }
698  _block1__branch1: {}
699    {
700      if ((_ve_arg.get_len () < 2))
701      {
702        goto _block1__branch2;
703      }
704      RF_rsplit (_ve_arg, 0, _v_rsplit__arg, _ve_column);
705      for ( ; ; RF_iter(_ve_arg)--)
706      {
707        {
708          if (!RF_iter(_ve_arg))
709          {
710            goto _block1__branch2;
711          }
712          if ((_v_rsplit__arg.get_len () < 2))
713          {
714            goto _block1__branch2;
715          }
716          if (!_c_17.term_eq (_v_rsplit__arg, (_v_rsplit__arg.get_len () - 1)))
717          {
718            goto _continue1;
719          }
720          Expr _v_subexpr__rsplit__arg (_v_rsplit__arg, 0, (_v_rsplit__arg.get_len () - 1));
721          RF_rsplit (_v_subexpr__rsplit__arg, 0, _v_rsplit__rsplit__arg, _ve_line);
722          for ( ; ; RF_iter(_v_subexpr__rsplit__arg)--)
723          {
724            {
725              if (!RF_iter(_v_subexpr__rsplit__arg))
726              {
727                goto _continue1;
728              }
729              uintptr_t _v_len1 = _v_rsplit__rsplit__arg.get_len ();
730              uintptr_t _v_len2 = 1;
731              if ((_v_len1 < _v_len2))
732              {
733                goto _continue1;
734              }
735              uintptr_t _v_len__fname = (_v_len1 - _v_len2);
736              if (!_c_17.term_eq (_v_rsplit__rsplit__arg, _v_len__fname))
737              {
738                goto _continue2;
739              }
740              Expr _ve_fname (_v_rsplit__rsplit__arg, 0, _v_len__fname);
741              Expr _v_To_m_Int1;
742              if (!RF_CALL (Convert::To_m_Int, _ve_line, _v_To_m_Int1))
743              {
744                goto _continue2;
745              }
746              Expr _v_To_m_Int2;
747              if (!RF_CALL (Convert::To_m_Int, _ve_column, _v_To_m_Int2))
748              {
749                goto _continue2;
750              }
751              RF_CALL (Table::Bind, (Breakpoints, (_ve_fname + _v_To_m_Int1 + _v_To_m_Int2), empty), /*void*/);
752              goto _continue2;
753            }
754        _continue2: {}
755          }
756        }
757    _continue1: {}
758      }
759    }
760  _block1__branch2: {}
761    uintptr_t _v_len3 = _ve_arg.get_len ();
762    uintptr_t _v_len4 = 0;
763    if ((_v_len3 < _v_len4))
764    {
765      RF_FUNC_ERROR (unexpected_fail);
766    }
767    uintptr_t _v_len___e__e_tmp_m_Debugrf_m_99_m_6 = (_v_len3 - _v_len4);
768    Expr _ve__e__e_tmp_m_Debugrf_m_99_m_6 (_ve_arg, 0, _v_len___e__e_tmp_m_Debugrf_m_99_m_6);
769    RF_CALL (StdIO::Print, _c_18, /*void*/);
770    Expr _v_Domain1;
771    RF_CALL (Table::Domain, Breakpoints, _v_Domain1);
772    RF_CALL (StdIO::WriteLN, _v_Domain1, /*void*/);
773  }
774_block1: {}
775RF_END
776
777RF_FUNC (Clear_m_Break, (RF_ARG _ve_arg, _ve_nv;;), RF_VOID)
778  {
779    {
780      if ((_ve_arg.get_len () != 1))
781      {
782        goto _block1__branch1;
783      }
784      if (!_c_7.term_eq (_ve_arg, 0))
785      {
786        goto _block1__branch1;
787      }
788      RF_TAILCALL (StdIO::PrintLN, _c_19, /*void*/);
789      goto _block1;
790    }
791  _block1__branch1: {}
792    {
793      if ((_ve_arg.get_len () < 2))
794      {
795        goto _block1__branch2;
796      }
797      RF_rsplit (_ve_arg, 0, _v_rsplit__arg, _ve_column);
798      for ( ; ; RF_iter(_ve_arg)--)
799      {
800        {
801          if (!RF_iter(_ve_arg))
802          {
803            goto _block1__branch2;
804          }
805          if ((_v_rsplit__arg.get_len () < 2))
806          {
807            goto _block1__branch2;
808          }
809          if (!_c_17.term_eq (_v_rsplit__arg, (_v_rsplit__arg.get_len () - 1)))
810          {
811            goto _continue1;
812          }
813          Expr _v_subexpr__rsplit__arg (_v_rsplit__arg, 0, (_v_rsplit__arg.get_len () - 1));
814          RF_rsplit (_v_subexpr__rsplit__arg, 0, _v_rsplit__rsplit__arg, _ve_line);
815          for ( ; ; RF_iter(_v_subexpr__rsplit__arg)--)
816          {
817            {
818              if (!RF_iter(_v_subexpr__rsplit__arg))
819              {
820                goto _continue1;
821              }
822              uintptr_t _v_len1 = _v_rsplit__rsplit__arg.get_len ();
823              uintptr_t _v_len2 = 1;
824              if ((_v_len1 < _v_len2))
825              {
826                goto _continue1;
827              }
828              uintptr_t _v_len__fname = (_v_len1 - _v_len2);
829              if (!_c_17.term_eq (_v_rsplit__rsplit__arg, _v_len__fname))
830              {
831                goto _continue2;
832              }
833              Expr _ve_fname (_v_rsplit__rsplit__arg, 0, _v_len__fname);
834              Expr _v_To_m_Int1;
835              if (!RF_CALL (Convert::To_m_Int, _ve_line, _v_To_m_Int1))
836              {
837                goto _continue2;
838              }
839              Expr _v_To_m_Int2;
840              if (!RF_CALL (Convert::To_m_Int, _ve_column, _v_To_m_Int2))
841              {
842                goto _continue2;
843              }
844              RF_CALL (Table::Unbind, (Breakpoints, (_ve_fname + _v_To_m_Int1 + _v_To_m_Int2)), /*void*/);
845              goto _continue2;
846            }
847        _continue2: {}
848          }
849        }
850    _continue1: {}
851      }
852    }
853  _block1__branch2: {}
854    uintptr_t _v_len3 = _ve_arg.get_len ();
855    uintptr_t _v_len4 = 0;
856    if ((_v_len3 < _v_len4))
857    {
858      RF_FUNC_ERROR (unexpected_fail);
859    }
860    uintptr_t _v_len___e__e_tmp_m_Debugrf_m_110_m_6 = (_v_len3 - _v_len4);
861    Expr _ve__e__e_tmp_m_Debugrf_m_110_m_6 (_ve_arg, 0, _v_len___e__e_tmp_m_Debugrf_m_110_m_6);
862    RF_CALL (StdIO::Print, _c_18, /*void*/);
863    Expr _v_Domain1;
864    RF_CALL (Table::Domain, Breakpoints, _v_Domain1);
865    RF_CALL (StdIO::WriteLN, _v_Domain1, /*void*/);
866  }
867_block1: {}
868RF_END
869
870RF_FUNC (Set_m_Func, (RF_ARG _ve_arg, _ve_nv;;), RF_VOID)
871  {
872    {
873      if ((_ve_arg.get_len () != 1))
874      {
875        goto _block1__branch1;
876      }
877      if (!_c_7.term_eq (_ve_arg, 0))
878      {
879        goto _block1__branch1;
880      }
881      RF_TAILCALL (StdIO::PrintLN, _c_20, /*void*/);
882      goto _block1;
883    }
884  _block1__branch1: {}
885    {
886      uintptr_t _v_len1 = _ve_arg.get_len ();
887      uintptr_t _v_len2 = 0;
888      if ((_v_len1 < (_v_len2 + 1)))
889      {
890        goto _block1__branch2;
891      }
892      uintptr_t _v_len__fname = (_v_len1 - _v_len2);
893      Expr _vv_fname (_ve_arg, 0, _v_len__fname);
894      Expr _v_To_m_Word1;
895      RF_CALL (Convert::To_m_Word, _vv_fname, _v_To_m_Word1);
896      RF_CALL (Table::Bind, (Break_m_Funcs, _v_To_m_Word1, empty), /*void*/);
897    }
898  _block1__branch2: {}
899    uintptr_t _v_len3 = _ve_arg.get_len ();
900    uintptr_t _v_len4 = 0;
901    if ((_v_len3 < _v_len4))
902    {
903      RF_FUNC_ERROR (unexpected_fail);
904    }
905    uintptr_t _v_len___e__e_tmp_m_Debugrf_m_121_m_6 = (_v_len3 - _v_len4);
906    Expr _ve__e__e_tmp_m_Debugrf_m_121_m_6 (_ve_arg, 0, _v_len___e__e_tmp_m_Debugrf_m_121_m_6);
907    RF_CALL (StdIO::Print, _c_21, /*void*/);
908    Expr _v_Domain1;
909    RF_CALL (Table::Domain, Break_m_Funcs, _v_Domain1);
910    Expr _v_Concat1;
911    RF_CALL (List::Concat, _v_Domain1, _v_Concat1);
912    RF_CALL (StdIO::WriteLN, _v_Concat1, /*void*/);
913  }
914_block1: {}
915RF_END
916
917RF_FUNC (Clear_m_Func, (RF_ARG _ve_arg, _ve_nv;;), RF_VOID)
918  {
919    {
920      if ((_ve_arg.get_len () != 1))
921      {
922        goto _block1__branch1;
923      }
924      if (!_c_7.term_eq (_ve_arg, 0))
925      {
926        goto _block1__branch1;
927      }
928      RF_TAILCALL (StdIO::PrintLN, _c_22, /*void*/);
929      goto _block1;
930    }
931  _block1__branch1: {}
932    {
933      uintptr_t _v_len1 = _ve_arg.get_len ();
934      uintptr_t _v_len2 = 0;
935      if ((_v_len1 < (_v_len2 + 1)))
936      {
937        goto _block1__branch2;
938      }
939      uintptr_t _v_len__fname = (_v_len1 - _v_len2);
940      Expr _vv_fname (_ve_arg, 0, _v_len__fname);
941      Expr _v_To_m_Word1;
942      RF_CALL (Convert::To_m_Word, _vv_fname, _v_To_m_Word1);
943      RF_CALL (Table::Unbind, (Break_m_Funcs, _v_To_m_Word1), /*void*/);
944    }
945  _block1__branch2: {}
946    uintptr_t _v_len3 = _ve_arg.get_len ();
947    uintptr_t _v_len4 = 0;
948    if ((_v_len3 < _v_len4))
949    {
950      RF_FUNC_ERROR (unexpected_fail);
951    }
952    uintptr_t _v_len___e__e_tmp_m_Debugrf_m_133_m_6 = (_v_len3 - _v_len4);
953    Expr _ve__e__e_tmp_m_Debugrf_m_133_m_6 (_ve_arg, 0, _v_len___e__e_tmp_m_Debugrf_m_133_m_6);
954    RF_CALL (StdIO::Print, _c_21, /*void*/);
955    Expr _v_Domain1;
956    RF_CALL (Table::Domain, Break_m_Funcs, _v_Domain1);
957    Expr _v_Concat1;
958    RF_CALL (List::Concat, _v_Domain1, _v_Concat1);
959    RF_CALL (StdIO::WriteLN, _v_Concat1, /*void*/);
960  }
961_block1: {}
962RF_END
963
964RF_FUNC (Init, RF_VOID, RF_VOID)
965  RF_CALL (Box::Store, (Break_m_Depth, _c_3), /*void*/);
966  RF_CALL (Table::Bind, (Ops, _c_23, _c_24), /*void*/);
967  RF_CALL (Table::Bind, (Ops, _c_25, _c_26), /*void*/);
968  RF_CALL (Table::Bind, (Ops, _c_27, _c_28), /*void*/);
969  RF_CALL (Table::Bind, (Ops, _c_29, _c_30), /*void*/);
970  RF_CALL (Table::Bind, (Ops, _c_15, _c_31), /*void*/);
971  RF_CALL (Table::Bind, (Ops, _c_32, _c_33), /*void*/);
972  RF_CALL (Table::Bind, (Ops, _c_34, _c_35), /*void*/);
973  RF_CALL (Table::Bind, (Ops, _c_36, _c_37), /*void*/);
974  RF_TAILCALL (Table::Bind, (Ops, _c_38, _c_39), /*void*/);
975RF_END
976
977RF_FUNC (Clear_m_Break__0, (RF_ARG _v_arg1;;), (RF_RES _v_res1;;))
978  uintptr_t _v_len1 = _v_arg1.get_len ();
979  uintptr_t _v_len2 = 1;
980  if (((_v_len1 < (_v_len2 + (0 * 1)))))
981  {
982    RF_ERROR (_c_40);
983  }
984  if (((_v_len1 - _v_len2) % 1))
985  {
986    RF_ERROR (_c_40);
987  }
988  uintptr_t _v_len__stub1 = ((_v_len1 - _v_len2) / 1);
989  if (_v_arg1.symbol_at ((0 + _v_len__stub1)))
990  {
991    RF_ERROR (_c_40);
992  }
993  Expr _v_deref__arg1 (_v_arg1, (0 + _v_len__stub1));
994  uintptr_t _v_len3 = _v_deref__arg1.get_len ();
995  uintptr_t _v_len4 = 0;
996  if (((_v_len3 < (_v_len4 + (0 * 1)))))
997  {
998    RF_ERROR (_c_40);
999  }
1000  if (((_v_len3 - _v_len4) % 1))
1001  {
1002    RF_ERROR (_c_40);
1003  }
1004  uintptr_t _v_len__stub2 = ((_v_len3 - _v_len4) / 1);
1005  Expr _v_stub1 (_v_arg1, 0, _v_len__stub1);
1006  Expr _v_stub2 (_v_deref__arg1, 0, _v_len__stub2);
1007  RF_CALL (Clear_m_Break, (_v_stub1, _v_stub2), /*void*/);
1008  _v_res1 = empty;
1009RF_END
1010
1011RF_FUNC (Cont__0, (RF_ARG _v_arg1;;), (RF_RES _v_res1;;))
1012  uintptr_t _v_len1 = _v_arg1.get_len ();
1013  uintptr_t _v_len2 = 1;
1014  if (((_v_len1 < (_v_len2 + (0 * 1)))))
1015  {
1016    RF_ERROR (_c_40);
1017  }
1018  if (((_v_len1 - _v_len2) % 1))
1019  {
1020    RF_ERROR (_c_40);
1021  }
1022  uintptr_t _v_len__stub1 = ((_v_len1 - _v_len2) / 1);
1023  if (_v_arg1.symbol_at ((0 + _v_len__stub1)))
1024  {
1025    RF_ERROR (_c_40);
1026  }
1027  Expr _v_deref__arg1 (_v_arg1, (0 + _v_len__stub1));
1028  uintptr_t _v_len3 = _v_deref__arg1.get_len ();
1029  uintptr_t _v_len4 = 0;
1030  if (((_v_len3 < (_v_len4 + (0 * 1)))))
1031  {
1032    RF_ERROR (_c_40);
1033  }
1034  if (((_v_len3 - _v_len4) % 1))
1035  {
1036    RF_ERROR (_c_40);
1037  }
1038  uintptr_t _v_len__stub2 = ((_v_len3 - _v_len4) / 1);
1039  Expr _v_stub1 (_v_arg1, 0, _v_len__stub1);
1040  Expr _v_stub2 (_v_deref__arg1, 0, _v_len__stub2);
1041  if (!RF_CALL (Cont, (_v_stub1, _v_stub2), /*void*/))
1042  {
1043    RF_RETFAIL;
1044  }
1045  _v_res1 = empty;
1046RF_END
1047
1048RF_FUNC (Clear_m_Func__0, (RF_ARG _v_arg1;;), (RF_RES _v_res1;;))
1049  uintptr_t _v_len1 = _v_arg1.get_len ();
1050  uintptr_t _v_len2 = 1;
1051  if (((_v_len1 < (_v_len2 + (0 * 1)))))
1052  {
1053    RF_ERROR (_c_40);
1054  }
1055  if (((_v_len1 - _v_len2) % 1))
1056  {
1057    RF_ERROR (_c_40);
1058  }
1059  uintptr_t _v_len__stub1 = ((_v_len1 - _v_len2) / 1);
1060  if (_v_arg1.symbol_at ((0 + _v_len__stub1)))
1061  {
1062    RF_ERROR (_c_40);
1063  }
1064  Expr _v_deref__arg1 (_v_arg1, (0 + _v_len__stub1));
1065  uintptr_t _v_len3 = _v_deref__arg1.get_len ();
1066  uintptr_t _v_len4 = 0;
1067  if (((_v_len3 < (_v_len4 + (0 * 1)))))
1068  {
1069    RF_ERROR (_c_40);
1070  }
1071  if (((_v_len3 - _v_len4) % 1))
1072  {
1073    RF_ERROR (_c_40);
1074  }
1075  uintptr_t _v_len__stub2 = ((_v_len3 - _v_len4) / 1);
1076  Expr _v_stub1 (_v_arg1, 0, _v_len__stub1);
1077  Expr _v_stub2 (_v_deref__arg1, 0, _v_len__stub2);
1078  RF_CALL (Clear_m_Func, (_v_stub1, _v_stub2), /*void*/);
1079  _v_res1 = empty;
1080RF_END
1081
1082RF_FUNC (Run__0, (RF_ARG _v_arg1;;), (RF_RES _v_res1;;))
1083  uintptr_t _v_len1 = _v_arg1.get_len ();
1084  uintptr_t _v_len2 = 1;
1085  if (((_v_len1 < (_v_len2 + (0 * 1)))))
1086  {
1087    RF_ERROR (_c_40);
1088  }
1089  if (((_v_len1 - _v_len2) % 1))
1090  {
1091    RF_ERROR (_c_40);
1092  }
1093  uintptr_t _v_len__stub1 = ((_v_len1 - _v_len2) / 1);
1094  if (_v_arg1.symbol_at ((0 + _v_len__stub1)))
1095  {
1096    RF_ERROR (_c_40);
1097  }
1098  Expr _v_deref__arg1 (_v_arg1, (0 + _v_len__stub1));
1099  uintptr_t _v_len3 = _v_deref__arg1.get_len ();
1100  uintptr_t _v_len4 = 0;
1101  if (((_v_len3 < (_v_len4 + (0 * 1)))))
1102  {
1103    RF_ERROR (_c_40);
1104  }
1105  if (((_v_len3 - _v_len4) % 1))
1106  {
1107    RF_ERROR (_c_40);
1108  }
1109  uintptr_t _v_len__stub2 = ((_v_len3 - _v_len4) / 1);
1110  Expr _v_stub1 (_v_arg1, 0, _v_len__stub1);
1111  Expr _v_stub2 (_v_deref__arg1, 0, _v_len__stub2);
1112  if (!RF_CALL (Run, (_v_stub1, _v_stub2), /*void*/))
1113  {
1114    RF_RETFAIL;
1115  }
1116  _v_res1 = empty;
1117RF_END
1118
1119RF_FUNC (Set_m_Func__0, (RF_ARG _v_arg1;;), (RF_RES _v_res1;;))
1120  uintptr_t _v_len1 = _v_arg1.get_len ();
1121  uintptr_t _v_len2 = 1;
1122  if (((_v_len1 < (_v_len2 + (0 * 1)))))
1123  {
1124    RF_ERROR (_c_40);
1125  }
1126  if (((_v_len1 - _v_len2) % 1))
1127  {
1128    RF_ERROR (_c_40);
1129  }
1130  uintptr_t _v_len__stub1 = ((_v_len1 - _v_len2) / 1);
1131  if (_v_arg1.symbol_at ((0 + _v_len__stub1)))
1132  {
1133    RF_ERROR (_c_40);
1134  }
1135  Expr _v_deref__arg1 (_v_arg1, (0 + _v_len__stub1));
1136  uintptr_t _v_len3 = _v_deref__arg1.get_len ();
1137  uintptr_t _v_len4 = 0;
1138  if (((_v_len3 < (_v_len4 + (0 * 1)))))
1139  {
1140    RF_ERROR (_c_40);
1141  }
1142  if (((_v_len3 - _v_len4) % 1))
1143  {
1144    RF_ERROR (_c_40);
1145  }
1146  uintptr_t _v_len__stub2 = ((_v_len3 - _v_len4) / 1);
1147  Expr _v_stub1 (_v_arg1, 0, _v_len__stub1);
1148  Expr _v_stub2 (_v_deref__arg1, 0, _v_len__stub2);
1149  RF_CALL (Set_m_Func, (_v_stub1, _v_stub2), /*void*/);
1150  _v_res1 = empty;
1151RF_END
1152
1153RF_FUNC (Set_m_Break__0, (RF_ARG _v_arg1;;), (RF_RES _v_res1;;))
1154  uintptr_t _v_len1 = _v_arg1.get_len ();
1155  uintptr_t _v_len2 = 1;
1156  if (((_v_len1 < (_v_len2 + (0 * 1)))))
1157  {
1158    RF_ERROR (_c_40);
1159  }
1160  if (((_v_len1 - _v_len2) % 1))
1161  {
1162    RF_ERROR (_c_40);
1163  }
1164  uintptr_t _v_len__stub1 = ((_v_len1 - _v_len2) / 1);
1165  if (_v_arg1.symbol_at ((0 + _v_len__stub1)))
1166  {
1167    RF_ERROR (_c_40);
1168  }
1169  Expr _v_deref__arg1 (_v_arg1, (0 + _v_len__stub1));
1170  uintptr_t _v_len3 = _v_deref__arg1.get_len ();
1171  uintptr_t _v_len4 = 0;
1172  if (((_v_len3 < (_v_len4 + (0 * 1)))))
1173  {
1174    RF_ERROR (_c_40);
1175  }
1176  if (((_v_len3 - _v_len4) % 1))
1177  {
1178    RF_ERROR (_c_40);
1179  }
1180  uintptr_t _v_len__stub2 = ((_v_len3 - _v_len4) / 1);
1181  Expr _v_stub1 (_v_arg1, 0, _v_len__stub1);
1182  Expr _v_stub2 (_v_deref__arg1, 0, _v_len__stub2);
1183  RF_CALL (Set_m_Break, (_v_stub1, _v_stub2), /*void*/);
1184  _v_res1 = empty;
1185RF_END
1186
1187RF_FUNC (Var__0, (RF_ARG _v_arg1;;), (RF_RES _v_res1;;))
1188  uintptr_t _v_len1 = _v_arg1.get_len ();
1189  uintptr_t _v_len2 = 1;
1190  if (((_v_len1 < (_v_len2 + (0 * 1)))))
1191  {
1192    RF_ERROR (_c_40);
1193  }
1194  if (((_v_len1 - _v_len2) % 1))
1195  {
1196    RF_ERROR (_c_40);
1197  }
1198  uintptr_t _v_len__stub1 = ((_v_len1 - _v_len2) / 1);
1199  if (_v_arg1.symbol_at ((0 + _v_len__stub1)))
1200  {
1201    RF_ERROR (_c_40);
1202  }
1203  Expr _v_deref__arg1 (_v_arg1, (0 + _v_len__stub1));
1204  uintptr_t _v_len3 = _v_deref__arg1.get_len ();
1205  uintptr_t _v_len4 = 0;
1206  if (((_v_len3 < (_v_len4 + (0 * 1)))))
1207  {
1208    RF_ERROR (_c_40);
1209  }
1210  if (((_v_len3 - _v_len4) % 1))
1211  {
1212    RF_ERROR (_c_40);
1213  }
1214  uintptr_t _v_len__stub2 = ((_v_len3 - _v_len4) / 1);
1215  Expr _v_stub1 (_v_arg1, 0, _v_len__stub1);
1216  Expr _v_stub2 (_v_deref__arg1, 0, _v_len__stub2);
1217  RF_CALL (Var, (_v_stub1, _v_stub2), /*void*/);
1218  _v_res1 = empty;
1219RF_END
1220
1221RF_FUNC (Step__0, (RF_ARG _v_arg1;;), (RF_RES _v_res1;;))
1222  uintptr_t _v_len1 = _v_arg1.get_len ();
1223  uintptr_t _v_len2 = 1;
1224  if (((_v_len1 < (_v_len2 + (0 * 1)))))
1225  {
1226    RF_ERROR (_c_40);
1227  }
1228  if (((_v_len1 - _v_len2) % 1))
1229  {
1230    RF_ERROR (_c_40);
1231  }
1232  uintptr_t _v_len__stub1 = ((_v_len1 - _v_len2) / 1);
1233  if (_v_arg1.symbol_at ((0 + _v_len__stub1)))
1234  {
1235    RF_ERROR (_c_40);
1236  }
1237  Expr _v_deref__arg1 (_v_arg1, (0 + _v_len__stub1));
1238  uintptr_t _v_len3 = _v_deref__arg1.get_len ();
1239  uintptr_t _v_len4 = 0;
1240  if (((_v_len3 < (_v_len4 + (0 * 1)))))
1241  {
1242    RF_ERROR (_c_40);
1243  }
1244  if (((_v_len3 - _v_len4) % 1))
1245  {
1246    RF_ERROR (_c_40);
1247  }
1248  uintptr_t _v_len__stub2 = ((_v_len3 - _v_len4) / 1);
1249  Expr _v_stub1 (_v_arg1, 0, _v_len__stub1);
1250  Expr _v_stub2 (_v_deref__arg1, 0, _v_len__stub2);
1251  if (!RF_CALL (Step, (_v_stub1, _v_stub2), /*void*/))
1252  {
1253    RF_RETFAIL;
1254  }
1255  _v_res1 = empty;
1256RF_END
1257
1258RF_FUNC (Next__0, (RF_ARG _v_arg1;;), (RF_RES _v_res1;;))
1259  uintptr_t _v_len1 = _v_arg1.get_len ();
1260  uintptr_t _v_len2 = 1;
1261  if (((_v_len1 < (_v_len2 + (0 * 1)))))
1262  {
1263    RF_ERROR (_c_40);
1264  }
1265  if (((_v_len1 - _v_len2) % 1))
1266  {
1267    RF_ERROR (_c_40);
1268  }
1269  uintptr_t _v_len__stub1 = ((_v_len1 - _v_len2) / 1);
1270  if (_v_arg1.symbol_at ((0 + _v_len__stub1)))
1271  {
1272    RF_ERROR (_c_40);
1273  }
1274  Expr _v_deref__arg1 (_v_arg1, (0 + _v_len__stub1));
1275  uintptr_t _v_len3 = _v_deref__arg1.get_len ();
1276  uintptr_t _v_len4 = 0;
1277  if (((_v_len3 < (_v_len4 + (0 * 1)))))
1278  {
1279    RF_ERROR (_c_40);
1280  }
1281  if (((_v_len3 - _v_len4) % 1))
1282  {
1283    RF_ERROR (_c_40);
1284  }
1285  uintptr_t _v_len__stub2 = ((_v_len3 - _v_len4) / 1);
1286  Expr _v_stub1 (_v_arg1, 0, _v_len__stub1);
1287  Expr _v_stub2 (_v_deref__arg1, 0, _v_len__stub2);
1288  if (!RF_CALL (Next, (_v_stub1, _v_stub2), /*void*/))
1289  {
1290    RF_RETFAIL;
1291  }
1292  _v_res1 = empty;
1293RF_END
1294
1295}
1296
1297namespace Debug
1298{
1299
1300static void init_ ()
1301{
1302  Break_m_Funcs = new rftype::StaticObject<rftype::Table>(L"Break-Funcs");
1303  Breakpoints = new rftype::StaticObject<rftype::Table>(L"Breakpoints");
1304  Ops = new rftype::StaticObject<rftype::Table>(L"Ops");
1305  Break_m_Depth = Expr::create_sym< rftype::NamedObject<rftype::BoxContents> >(L"Break-Depth");
1306  Break_q_ = Expr::create_sym< rftype::NamedObject<rftype::BoxContents> >(L"Break?");
1307  Last_m_Depth = Expr::create_sym< rftype::NamedObject<rftype::BoxContents> >(L"Last-Depth");
1308  _c_0 = Expr::create<Word>("ALL");
1309  _c_1 = Expr::create<Word>("NO");
1310  _c_2 = Expr::create<Integer>("1");
1311  _c_3 = Expr::create<Integer>("0");
1312  _c_4 = Expr::create<Word>("Stopped at ");
1313  _c_5 = Expr::create<Integer>("2");
1314  _c_6 = Expr::create<Word>("Help") + (empty) ();
1315  _c_7 = Expr (_c_6, 0, 1);
1316  _c_8 = Expr::create<Word>(" continues execution (stop at the next breakpoint)");
1317  _c_9 = Expr::create<Word>(" runs the program to the end without stopping");
1318  _c_10 = Expr::create<Word>(" does one step");
1319  _c_11 = Expr::create<Word>(" steps program, proceeding through function calls");
1320  _c_12 = Expr::create<Word>("[var-name | /*empty*/] prints value of `var-name` | all variables");
1321  _c_13 = Expr::create<Word>("No variable with name ");
1322  _c_14 = Char::create_expr (L" : ");
1323  _c_15 = Char::create_expr (L".");
1324  _c_16 = Expr::create<Word>("[file-name line column] sets breakpoint at specified position");
1325  _c_17 = Expr (_c_14, 0, 1);
1326  _c_18 = Expr::create<Word>("Breakpoints: ");
1327  _c_19 = Expr::create<Word>("[file-name line column] removes breakpoint from specified position");
1328  _c_20 = Expr::create<Word>("[func-name] sets breakpoint just after entering function `func-name`");
1329  _c_21 = Expr::create<Word>("Break at functions: ");
1330  _c_22 = Expr::create<Word>("[func-name] clears breakpoint at function `func-name`");
1331  _c_23 = Char::create_expr (L"c");
1332  _c_24 = Expr::create_sym<Func> (Cont__0);
1333  _c_25 = Char::create_expr (L"s");
1334  _c_26 = Expr::create_sym<Func> (Step__0);
1335  _c_27 = Char::create_expr (L"n");
1336  _c_28 = Expr::create_sym<Func> (Next__0);
1337  _c_29 = Char::create_expr (L"r");
1338  _c_30 = Expr::create_sym<Func> (Run__0);
1339  _c_31 = Expr::create_sym<Func> (Var__0);
1340  _c_32 = Char::create_expr (L"+");
1341  _c_33 = Expr::create_sym<Func> (Set_m_Break__0);
1342  _c_34 = Char::create_expr (L"-");
1343  _c_35 = Expr::create_sym<Func> (Clear_m_Break__0);
1344  _c_36 = Char::create_expr (L"&");
1345  _c_37 = Expr::create_sym<Func> (Set_m_Func__0);
1346  _c_38 = Char::create_expr (L"*");
1347  _c_39 = Expr::create_sym<Func> (Clear_m_Func__0);
1348  _c_40 = Expr::create<Word>("Apply") + Expr::create<Word>("Apply") + Expr::create<Word>("Unexpected fail");
1349  RF_CALL(Init, /*void*/, /*void*/);
1350  while (--rfrt::breakc >= 0)
1351  {
1352    RF_CALL(Table::Bind, (Break_m_Funcs,
1353          Expr::create<Word>(rfrt::breakv[rfrt::breakc]), empty), /*void*/);
1354  }
1355}
1356
1357static AtStart init_registrator_ (&init_);
1358
1359}
1360
1361}
Note: See TracBrowser for help on using the repository browser.