source: to-imperative/trunk/library/Stream/Stream.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: 20.2 KB
Line 
1#include <rf_core.hh>
2#include <refal/Access.hh>
3#include "Stream.hh"
4#include <refal/Box.hh>
5#include <refal/Compare.hh>
6#include <refal/StdIO.hh>
7#include <refal/Error.hh>
8#include <refal/Class.hh>
9#include <refal/Apply.hh>
10
11namespace refal
12{
13
14using namespace rfrt;
15
16namespace Stream
17{
18
19RF_DECL (Read_m_Expr);
20
21static Expr StdIStream_m_Box;
22
23}
24
25namespace Stream
26{
27
28RF_DECL (Prim_m_Read__0);
29RF_DECL (Read_m_Expr__0);
30
31static Expr _c_0;
32
33static Expr _c_1;
34
35static Expr _c_2;
36
37static Expr _c_3;
38
39static Expr _c_4;
40
41static Expr _c_5;
42
43static Expr _c_6;
44
45static Expr _c_7;
46
47static Expr _c_8;
48
49static Expr _c_9;
50
51static Expr _c_10;
52
53static Expr _c_11;
54
55static Expr _c_12;
56
57static Expr _c_13;
58
59static Expr _c_14;
60
61static Expr _c_15;
62
63static Expr _c_16;
64
65static Expr _c_17;
66
67static Expr _c_18;
68
69static Expr _c_19;
70
71RF_FUNC (Stream, (RF_ARG _vs_func, _ve_args;;), (RF_RES _v_res1;;))
72  {
73    {
74      {
75        if (!RF_CALL (Class::Func_q_, _vs_func, /*void*/))
76        {
77          goto _negation1;
78        }
79        goto _block1__branch1;
80      }
81    _negation1: {}
82      RF_CALL (Error::Lib_m_Error, (_c_0, _c_1), /*void*/);
83      RF_ERROR (Word::create_expr ("Stream") + Word::create_expr ("Stream") + unexpected_fail);
84      goto _block1;
85    }
86  _block1__branch1: {}
87    RF_TAILCALL (Box::Box, (_c_2 + (_vs_func + _ve_args) ()), _v_res1);
88  }
89_block1: {}
90RF_END
91
92RF_FUNC (Read_m_Expr, (RF_ARG _vs_box;;), (RF_RES _v_res1;;))
93  Expr _v__q_1;
94  RF_CALL (Box::_q_, _vs_box, _v__q_1);
95  uintptr_t _v_len1 = _v__q_1.get_len ();
96  uintptr_t _v_len2 = 0;
97  if ((_v_len1 < (_v_len2 + 1)))
98  {
99    RF_RETFAIL;
100  }
101  uintptr_t _v_len__expr = (_v_len1 - _v_len2);
102  Expr _vv_expr (_v__q_1, 0, _v_len__expr);
103  RF_CALL (Box::Store, (_vs_box, empty), /*void*/);
104  _v_res1 = _vv_expr;
105RF_END
106
107RF_FUNC (Expr_m_Open, (RF_ARG _ve_xpr;;), (RF_RES _v_res1;;))
108  Expr _vs_box;
109  RF_CALL (Box::Box, _ve_xpr, _vs_box);
110  RF_TAILCALL (Stream, (_c_3, _vs_box), _v_res1);
111RF_END
112
113RF_FUNC (File_m_Open, (RF_ARG _ve_filename;;), (RF_RES _v_res1;;))
114  Expr _vs_channel;
115  RF_CALL (StdIO::Channel, /*void*/, _vs_channel);
116  if (!RF_CALL (StdIO::Prim_m_Open_m_File, (_vs_channel, _ve_filename, _c_4), /*void*/))
117  {
118    RF_ERROR (Word::create_expr ("Stream") + Word::create_expr ("File-Open") + unexpected_fail);
119  }
120  RF_TAILCALL (Stream, (_c_5, (_vs_channel + StdIO::Read_m_Chunk_m_Size)), _v_res1);
121RF_END
122
123RF_FUNC (File_m_Close, (RF_ARG _vs_tream;;), RF_VOID)
124  {
125    {
126      Expr _v__q_1;
127      RF_CALL (Box::_q_, _vs_tream, _v__q_1);
128      if ((_v__q_1.get_len () != 2))
129      {
130        goto _block1__branch1;
131      }
132      if (_v__q_1.symbol_at (0))
133      {
134        goto _block1__branch1;
135      }
136      if (_v__q_1.symbol_at (1))
137      {
138        goto _block1__branch1;
139      }
140      Expr _v_deref___q_1 (_v__q_1, 0);
141      Expr _v_deref___q_12 (_v__q_1, 1);
142      uintptr_t _v_len1 = _v_deref___q_12.get_len ();
143      uintptr_t _v_len2 = 1;
144      if ((_v_len1 < _v_len2))
145      {
146        goto _block1__branch1;
147      }
148      uintptr_t _v_len__args = (_v_len1 - _v_len2);
149      uintptr_t _v_len3 = _v_deref___q_1.get_len ();
150      uintptr_t _v_len4 = 0;
151      if ((_v_len3 < _v_len4))
152      {
153        goto _block1__branch1;
154      }
155      uintptr_t _v_len__buf = (_v_len3 - _v_len4);
156      if (!_v_deref___q_12.symbol_at (0))
157      {
158        goto _block1__branch1;
159      }
160      Expr _ve_buf (_v_deref___q_1, 0, _v_len__buf);
161      Expr _vs_func (_v_deref___q_12, 0, 1);
162      Expr _ve_args (_v_deref___q_12, 1, _v_len__args);
163      {
164        {
165          uintptr_t _v_len5 = _v_len__args;
166          uintptr_t _v_len6 = 1;
167          if ((_v_len5 < _v_len6))
168          {
169            goto _block2__branch1;
170          }
171          uintptr_t _v_len__rest = (_v_len5 - _v_len6);
172          if (!_ve_args.symbol_at (0))
173          {
174            goto _block2__branch1;
175          }
176          Expr _vs_ch (_ve_args, 0, 1);
177          Expr _ve_rest (_ve_args, 1, _v_len__rest);
178          if (!RF_CALL (Class::Channel_q_, _vs_ch, /*void*/))
179          {
180            goto _block2__branch1;
181          }
182          RF_TAILCALL (StdIO::Prim_m_Close_m_Channel, _vs_ch, /*void*/);
183          goto _block2;
184        }
185      _block2__branch1: {}
186        RF_CALL (Error::Lib_m_Error, (_c_6, _c_7), /*void*/);
187        RF_ERROR (Word::create_expr ("Stream") + Word::create_expr ("File-Close") + unexpected_fail);
188      }
189    _block2: {}
190      goto _block1;
191    }
192  _block1__branch1: {}
193    RF_CALL (Error::Lib_m_Error, (_c_6, _c_8), /*void*/);
194    RF_ERROR (Word::create_expr ("Stream") + Word::create_expr ("File-Close") + unexpected_fail);
195  }
196_block1: {}
197RF_END
198
199RF_FUNC (StdIStream, RF_VOID, (RF_RES _v_res1;;))
200  {
201    {
202      Expr _v__q_1;
203      RF_CALL (Box::_q_, StdIStream_m_Box, _v__q_1);
204      if ((_v__q_1.get_len () != 1))
205      {
206        goto _block1__branch1;
207      }
208      if (!_v__q_1.symbol_at (0))
209      {
210        goto _block1__branch1;
211      }
212      Expr _vs_tream (_v__q_1, 0, 1);
213      _v_res1 = _vs_tream;
214      goto _block1;
215    }
216  _block1__branch1: {}
217    Expr _vs_tream;
218    RF_CALL (Stream, (_c_5, _c_9), _vs_tream);
219    RF_CALL (Box::Store, (StdIStream_m_Box, _vs_tream), /*void*/);
220    _v_res1 = _vs_tream;
221  }
222_block1: {}
223RF_END
224
225RF_FUNC (Getc, (RF_ARG _vs_tream;;), (RF_RES _v_res1;;))
226  Expr _v_Gets1;
227  if (!RF_CALL (Gets, (_vs_tream, _c_10), _v_Gets1))
228  {
229    RF_RETFAIL;
230  }
231  if ((_v_Gets1.get_len () != 1))
232  {
233    RF_RETFAIL;
234  }
235  Expr _vt_erm (_v_Gets1, 0, 1);
236  _v_res1 = _vt_erm;
237RF_END
238
239RF_FUNC (Gets, (RF_ARG _vs_tream, _vs_n;;), (RF_RES _v_res1;;))
240  {
241    {
242      Expr _v__q_1;
243      RF_CALL (Box::_q_, _vs_tream, _v__q_1);
244      if ((_v__q_1.get_len () != 2))
245      {
246        goto _block1__branch1;
247      }
248      if (_v__q_1.symbol_at (0))
249      {
250        goto _block1__branch1;
251      }
252      if (_v__q_1.symbol_at (1))
253      {
254        goto _block1__branch1;
255      }
256      Expr _v_deref___q_1 (_v__q_1, 0);
257      Expr _v_deref___q_12 (_v__q_1, 1);
258      uintptr_t _v_len1 = _v_deref___q_12.get_len ();
259      uintptr_t _v_len2 = 1;
260      if ((_v_len1 < _v_len2))
261      {
262        goto _block1__branch1;
263      }
264      uintptr_t _v_len__args = (_v_len1 - _v_len2);
265      uintptr_t _v_len3 = _v_deref___q_1.get_len ();
266      uintptr_t _v_len4 = 0;
267      if ((_v_len3 < _v_len4))
268      {
269        goto _block1__branch1;
270      }
271      uintptr_t _v_len__buf = (_v_len3 - _v_len4);
272      if (!_v_deref___q_12.symbol_at (0))
273      {
274        goto _block1__branch1;
275      }
276      Expr _ve_buf (_v_deref___q_1, 0, _v_len__buf);
277      Expr _vs_func (_v_deref___q_12, 0, 1);
278      Expr _ve_args (_v_deref___q_12, 1, _v_len__args);
279      for ( ; ; )
280      {
281        {
282          Expr _v_Length1;
283          RF_CALL (Access::Length, _ve_buf, _v_Length1);
284          if (!RF_CALL (Compare::_gt__eq_, (_v_Length1, _vs_n), /*void*/))
285          {
286            goto _iter1;
287          }
288          Expr _v_Middle1;
289          if (!RF_CALL (Access::Middle, (_vs_n, _c_11, _ve_buf), _v_Middle1))
290          {
291            RF_RETFAIL;
292          }
293          RF_CALL (Box::Store, (_vs_tream, (_v_Middle1 () + (_vs_func + _ve_args) ())), /*void*/);
294          RF_TAILCALL (Access::Left, (_c_11, _vs_n, _ve_buf), _v_res1);
295          goto _exit__iter1;
296        }
297      _iter1: {}
298        {
299          {
300            Expr _v_Apply1;
301            if (!RF_CALL (Apply::Apply, (_vs_func, _ve_args), _v_Apply1))
302            {
303              goto _block2__branch1;
304            }
305            _ve_buf = (_ve_buf + _v_Apply1);
306            goto _block2;
307          }
308        _block2__branch1: {}
309          RF_CALL (Box::Store, (_vs_tream, (_ve_buf () + (_vs_func + _ve_args) ())), /*void*/);
310          RF_RETFAIL;
311        }
312      _block2: {}
313      }
314    _exit__iter1: {}
315      goto _block1;
316    }
317  _block1__branch1: {}
318    RF_CALL (Error::Lib_m_Error, (_c_12, _c_8), /*void*/);
319    RF_RETFAIL;
320  }
321_block1: {}
322RF_END
323
324RF_FUNC (Ungets, (RF_ARG _vs_tream, _ve_xpr;;), RF_VOID)
325  {
326    {
327      Expr _v__q_1;
328      RF_CALL (Box::_q_, _vs_tream, _v__q_1);
329      if ((_v__q_1.get_len () != 2))
330      {
331        goto _block1__branch1;
332      }
333      if (_v__q_1.symbol_at (0))
334      {
335        goto _block1__branch1;
336      }
337      if (_v__q_1.symbol_at (1))
338      {
339        goto _block1__branch1;
340      }
341      Expr _v_deref___q_1 (_v__q_1, 0);
342      Expr _v_deref___q_12 (_v__q_1, 1);
343      uintptr_t _v_len1 = _v_deref___q_12.get_len ();
344      uintptr_t _v_len2 = 1;
345      if ((_v_len1 < _v_len2))
346      {
347        goto _block1__branch1;
348      }
349      uintptr_t _v_len__args = (_v_len1 - _v_len2);
350      uintptr_t _v_len3 = _v_deref___q_1.get_len ();
351      uintptr_t _v_len4 = 0;
352      if ((_v_len3 < _v_len4))
353      {
354        goto _block1__branch1;
355      }
356      uintptr_t _v_len__buf = (_v_len3 - _v_len4);
357      if (!_v_deref___q_12.symbol_at (0))
358      {
359        goto _block1__branch1;
360      }
361      Expr _ve_buf (_v_deref___q_1, 0, _v_len__buf);
362      Expr _vs_func (_v_deref___q_12, 0, 1);
363      Expr _ve_args (_v_deref___q_12, 1, _v_len__args);
364      RF_TAILCALL (Box::Store, (_vs_tream, ((_ve_xpr + _ve_buf) () + (_vs_func + _ve_args) ())), /*void*/);
365      goto _block1;
366    }
367  _block1__branch1: {}
368    RF_CALL (Error::Lib_m_Error, (_c_13, _c_8), /*void*/);
369    RF_ERROR (Word::create_expr ("Stream") + Word::create_expr ("Ungets") + unexpected_fail);
370  }
371_block1: {}
372RF_END
373
374RF_FUNC (Get_m_Delim, (RF_ARG _vs_tream, _vt_delim;;), (RF_RES _v_res1;;))
375  {
376    {
377      Expr _v__q_1;
378      RF_CALL (Box::_q_, _vs_tream, _v__q_1);
379      if ((_v__q_1.get_len () != 2))
380      {
381        goto _block1__branch1;
382      }
383      if (_v__q_1.symbol_at (0))
384      {
385        goto _block1__branch1;
386      }
387      if (_v__q_1.symbol_at (1))
388      {
389        goto _block1__branch1;
390      }
391      Expr _v_deref___q_1 (_v__q_1, 0);
392      Expr _v_deref___q_12 (_v__q_1, 1);
393      uintptr_t _v_len1 = _v_deref___q_12.get_len ();
394      uintptr_t _v_len2 = 1;
395      if ((_v_len1 < _v_len2))
396      {
397        goto _block1__branch1;
398      }
399      uintptr_t _v_len__args = (_v_len1 - _v_len2);
400      uintptr_t _v_len3 = _v_deref___q_1.get_len ();
401      uintptr_t _v_len4 = 0;
402      if ((_v_len3 < _v_len4))
403      {
404        goto _block1__branch1;
405      }
406      uintptr_t _v_len__buf = (_v_len3 - _v_len4);
407      if (!_v_deref___q_12.symbol_at (0))
408      {
409        goto _block1__branch1;
410      }
411      Expr _ve_buf (_v_deref___q_1, 0, _v_len__buf);
412      Expr _vs_func (_v_deref___q_12, 0, 1);
413      Expr _ve_args (_v_deref___q_12, 1, _v_len__args);
414      Expr _ve_str (empty);
415      Expr _ve_stop_q_ (empty);
416      for ( ; ; )
417      {
418        {
419          if ((_ve_stop_q_.get_len () != 1))
420          {
421            goto _iter1;
422          }
423          if (!_c_14.term_eq (_ve_stop_q_, 0))
424          {
425            goto _iter1;
426          }
427          RF_CALL (Box::Store, (_vs_tream, (_ve_buf () + (_vs_func + _ve_args) ())), /*void*/);
428          _v_res1 = _ve_str;
429          goto _exit__iter1;
430        }
431      _iter1: {}
432        {
433          {
434            if ((_ve_buf.get_len () < 1))
435            {
436              goto _block2__branch1;
437            }
438            RF_lsplit (_ve_buf, 0, _ve_1, _v_lsplit__buf);
439            for ( ; ; RF_iter(_ve_buf)++)
440            {
441              {
442                if (!RF_iter(_ve_buf))
443                {
444                  goto _block2__branch1;
445                }
446                uintptr_t _v_len5 = _v_lsplit__buf.get_len ();
447                uintptr_t _v_len6 = 1;
448                if ((_v_len5 < _v_len6))
449                {
450                  goto _block2__branch1;
451                }
452                uintptr_t _v_len__2 = (_v_len5 - _v_len6);
453                if (!_vt_delim.term_eq (_v_lsplit__buf, 0))
454                {
455                  goto _continue1;
456                }
457                Expr _ve_2 (_v_lsplit__buf, 1, _v_len__2);
458                _ve_str = (_ve_str + _ve_1 + _vt_delim);
459                _ve_buf = _ve_2;
460                _ve_stop_q_ = _c_14;
461                goto _exit1;
462              }
463          _continue1: {}
464            }
465          _exit1: {}
466            goto _block2;
467          }
468        _block2__branch1: {}
469          {
470            Expr _v_Apply1;
471            if (!RF_CALL (Apply::Apply, (_vs_func, _ve_args), _v_Apply1))
472            {
473              goto _block2__branch2;
474            }
475            _ve_str = (_ve_str + _ve_buf);
476            _ve_buf = _v_Apply1;
477            _ve_stop_q_ = empty;
478            goto _block2;
479          }
480        _block2__branch2: {}
481          _ve_str = (_ve_str + _ve_buf);
482          _ve_buf = empty;
483          _ve_stop_q_ = _c_14;
484        }
485      _block2: {}
486      }
487    _exit__iter1: {}
488      goto _block1;
489    }
490  _block1__branch1: {}
491    RF_CALL (Error::Lib_m_Error, (_c_15, _c_8), /*void*/);
492    RF_ERROR (Word::create_expr ("Stream") + Word::create_expr ("Get-Delim") + unexpected_fail);
493  }
494_block1: {}
495RF_END
496
497RF_FUNC (Get_m_Line, (RF_ARG _vs_tream;;), (RF_RES _v_res1;;))
498  RF_TAILCALL (Get_m_Delim, (_vs_tream, _c_16), _v_res1);
499RF_END
500
501RF_FUNC (Get_m_While, (RF_ARG _vs_tream, _vs_pred;;), (RF_RES _v_res1;;))
502  {
503    {
504      Expr _v__q_1;
505      RF_CALL (Box::_q_, _vs_tream, _v__q_1);
506      if ((_v__q_1.get_len () != 2))
507      {
508        goto _block1__branch1;
509      }
510      if (_v__q_1.symbol_at (0))
511      {
512        goto _block1__branch1;
513      }
514      if (_v__q_1.symbol_at (1))
515      {
516        goto _block1__branch1;
517      }
518      Expr _v_deref___q_1 (_v__q_1, 0);
519      Expr _v_deref___q_12 (_v__q_1, 1);
520      uintptr_t _v_len1 = _v_deref___q_12.get_len ();
521      uintptr_t _v_len2 = 1;
522      if ((_v_len1 < _v_len2))
523      {
524        goto _block1__branch1;
525      }
526      uintptr_t _v_len__args = (_v_len1 - _v_len2);
527      uintptr_t _v_len3 = _v_deref___q_1.get_len ();
528      uintptr_t _v_len4 = 0;
529      if ((_v_len3 < _v_len4))
530      {
531        goto _block1__branch1;
532      }
533      uintptr_t _v_len__buf = (_v_len3 - _v_len4);
534      if (!_v_deref___q_12.symbol_at (0))
535      {
536        goto _block1__branch1;
537      }
538      Expr _ve_buf (_v_deref___q_1, 0, _v_len__buf);
539      Expr _vs_func (_v_deref___q_12, 0, 1);
540      Expr _ve_args (_v_deref___q_12, 1, _v_len__args);
541      Expr _ve_str (empty);
542      Expr _ve_stop_q_ (empty);
543      for ( ; ; )
544      {
545        {
546          if ((_ve_stop_q_.get_len () != 1))
547          {
548            goto _iter1;
549          }
550          if (!_c_14.term_eq (_ve_stop_q_, 0))
551          {
552            goto _iter1;
553          }
554          RF_CALL (Box::Store, (_vs_tream, (_ve_buf () + (_vs_func + _ve_args) ())), /*void*/);
555          _v_res1 = _ve_str;
556          goto _exit__iter1;
557        }
558      _iter1: {}
559        {
560          {
561            uintptr_t _v_len5 = _ve_buf.get_len ();
562            uintptr_t _v_len6 = 1;
563            if ((_v_len5 < _v_len6))
564            {
565              goto _block2__branch1;
566            }
567            uintptr_t _v_len__2 = (_v_len5 - _v_len6);
568            Expr _vt_1 (_ve_buf, 0, 1);
569            Expr _ve_2 (_ve_buf, 1, _v_len__2);
570            {
571              {
572                Expr _v_Apply1;
573                if (!RF_CALL (Apply::Apply, (_vs_pred, _vt_1), _v_Apply1))
574                {
575                  goto _block3__branch1;
576                }
577                uintptr_t _v_len7 = _v_Apply1.get_len ();
578                uintptr_t _v_len8 = 0;
579                if ((_v_len7 < _v_len8))
580                {
581                  goto _block3__branch1;
582                }
583                uintptr_t _v_len___e__e_tmp_m_Streamrf_m_117_m_30 = (_v_len7 - _v_len8);
584                Expr _ve__e__e_tmp_m_Streamrf_m_117_m_30 (_v_Apply1, 0, _v_len___e__e_tmp_m_Streamrf_m_117_m_30);
585                _ve_str = (_ve_str + _vt_1);
586                _ve_buf = _ve_2;
587                _ve_stop_q_ = empty;
588                goto _block3;
589              }
590            _block3__branch1: {}
591              _ve_stop_q_ = _c_14;
592            }
593          _block3: {}
594            goto _block2;
595          }
596        _block2__branch1: {}
597          {
598            if (!RF_CALL (Apply::Apply, (_vs_func, _ve_args), _ve_buf))
599            {
600              goto _block2__branch2;
601            }
602            _ve_stop_q_ = empty;
603            goto _block2;
604          }
605        _block2__branch2: {}
606          _ve_stop_q_ = _c_14;
607        }
608      _block2: {}
609      }
610    _exit__iter1: {}
611      goto _block1;
612    }
613  _block1__branch1: {}
614    RF_CALL (Error::Lib_m_Error, (_c_17, _c_8), /*void*/);
615    RF_ERROR (Word::create_expr ("Stream") + Word::create_expr ("Get-While") + unexpected_fail);
616  }
617_block1: {}
618RF_END
619
620RF_FUNC (End_m_of_m_Stream_q_, (RF_ARG _vs_tream;;), RF_VOID)
621  {
622    {
623      Expr _v__q_1;
624      RF_CALL (Box::_q_, _vs_tream, _v__q_1);
625      if ((_v__q_1.get_len () != 2))
626      {
627        goto _block1__branch1;
628      }
629      if (_v__q_1.symbol_at (0))
630      {
631        goto _block1__branch1;
632      }
633      if (_v__q_1.symbol_at (1))
634      {
635        goto _block1__branch1;
636      }
637      Expr _v_deref___q_1 (_v__q_1, 0);
638      Expr _v_deref___q_12 (_v__q_1, 1);
639      uintptr_t _v_len1 = _v_deref___q_12.get_len ();
640      uintptr_t _v_len2 = 1;
641      if ((_v_len1 < _v_len2))
642      {
643        goto _block1__branch1;
644      }
645      uintptr_t _v_len__args = (_v_len1 - _v_len2);
646      uintptr_t _v_len3 = _v_deref___q_1.get_len ();
647      uintptr_t _v_len4 = 0;
648      if ((_v_len3 < _v_len4))
649      {
650        goto _block1__branch1;
651      }
652      uintptr_t _v_len__buf = (_v_len3 - _v_len4);
653      if (!_v_deref___q_12.symbol_at (0))
654      {
655        goto _block1__branch1;
656      }
657      Expr _ve_buf (_v_deref___q_1, 0, _v_len__buf);
658      Expr _vs_func (_v_deref___q_12, 0, 1);
659      Expr _ve_args (_v_deref___q_12, 1, _v_len__args);
660      {
661        {
662          Expr _v_buf__1 (_ve_buf);
663          for ( ; ; )
664          {
665            {
666              uintptr_t _v_len5 = _v_buf__1.get_len ();
667              uintptr_t _v_len6 = 0;
668              if ((_v_len5 < (_v_len6 + 1)))
669              {
670                goto _iter1;
671              }
672              uintptr_t _v_len___e__e_tmp_m_Streamrf_m_138_m_18 = (_v_len5 - _v_len6);
673              Expr _vv__e__e_tmp_m_Streamrf_m_138_m_18 (_v_buf__1, 0, _v_len___e__e_tmp_m_Streamrf_m_138_m_18);
674              RF_CALL (Box::Store, (_vs_tream, (_v_buf__1 () + (_vs_func + _ve_args) ())), /*void*/);
675              RF_RETFAIL;
676              goto _exit__iter1;
677            }
678          _iter1: {}
679            if (!RF_CALL (Apply::Apply, (_vs_func, _ve_args), _v_buf__1))
680            {
681              goto _block2__branch1;
682            }
683          }
684        _exit__iter1: {}
685          goto _block2;
686        }
687      _block2__branch1: {}
688      }
689    _block2: {}
690      goto _block1;
691    }
692  _block1__branch1: {}
693    RF_CALL (Error::Lib_m_Error, (_c_18, _c_8), /*void*/);
694    RF_RETFAIL;
695  }
696_block1: {}
697RF_END
698
699RF_FUNC (Prim_m_Read__0, (RF_ARG _v_arg1;;), (RF_RES _v_res1;;))
700  if ((_v_arg1.get_len () != 2))
701  {
702    RF_ERROR (_c_19);
703  }
704  if (!_v_arg1.symbol_at (0))
705  {
706    RF_ERROR (_c_19);
707  }
708  if (!_v_arg1.symbol_at (1))
709  {
710    RF_ERROR (_c_19);
711  }
712  Expr _v_stub1 (_v_arg1, 0, 1);
713  Expr _v_stub2 (_v_arg1, 1, 1);
714  RF_TAILCALL (StdIO::Prim_m_Read, (_v_stub1, _v_stub2), _v_res1);
715RF_END
716
717RF_FUNC (Read_m_Expr__0, (RF_ARG _v_arg1;;), (RF_RES _v_res1;;))
718  if ((_v_arg1.get_len () != 1))
719  {
720    RF_ERROR (_c_19);
721  }
722  if (!_v_arg1.symbol_at (0))
723  {
724    RF_ERROR (_c_19);
725  }
726  Expr _v_stub1 (_v_arg1, 0, 1);
727  if (!RF_CALL (Read_m_Expr, _v_stub1, _v_res1))
728  {
729    RF_RETFAIL;
730  }
731RF_END
732
733}
734
735namespace StdIO
736{
737
738extern AtStart init_StdIn ;
739
740}
741
742namespace Stream
743{
744
745static void init_ ()
746{
747  StdIO::init_StdIn.invoke();
748  StdIStream_m_Box = Expr::create_sym<BoxContents> ();
749  _c_0 = Word::create_expr ("Stream") + Word::create_expr ("Stream");
750  _c_1 = Word::create_expr ("Arg 1 is not a Function");
751  _c_2 = (empty) ();
752  _c_3 = Expr::create_sym<Func> (Read_m_Expr__0);
753  _c_4 = Word::create_expr ("R");
754  _c_5 = Expr::create_sym<Func> (Prim_m_Read__0);
755  _c_6 = Word::create_expr ("Stream") + Word::create_expr ("File-Close");
756  _c_7 = Word::create_expr ("Arg 1 is not a Streamed File");
757  _c_8 = Word::create_expr ("Arg 1 is not a Stream");
758  _c_9 = StdIO::StdIn + Integer::create_expr ("1");
759  _c_10 = Expr (_c_9, 1, 1);
760  _c_11 = Integer::create_expr ("0");
761  _c_12 = Word::create_expr ("Stream") + Word::create_expr ("Gets");
762  _c_13 = Word::create_expr ("Stream") + Word::create_expr ("Ungets");
763  _c_14 = Word::create_expr ("Stop");
764  _c_15 = Word::create_expr ("Stream") + Word::create_expr ("Get-Delim");
765  _c_16 = Char::create_expr ("\n");
766  _c_17 = Word::create_expr ("Stream") + Word::create_expr ("Get-While");
767  _c_18 = Word::create_expr ("Stream") + Word::create_expr ("End-of-Stream?");
768  _c_19 = Word::create_expr ("Apply") + Word::create_expr ("Apply") + Word::create_expr ("Unexpected fail");
769}
770
771static AtStart init_registrator_ (&init_);
772
773}
774
775}
Note: See TracBrowser for help on using the repository browser.