source: to-imperative/trunk/samples/Syntax/assign2.cc @ 691

Last change on this file since 691 was 691, checked in by orlov, 18 years ago
  • Test for assignments of function results.
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 977 bytes
Line 
1#include <rf_core.hh>
2
3namespace refal
4{
5
6using namespace rfrt;
7
8namespace assign2
9{
10
11RF_DECL (F);
12
13RF_DECL (Main);
14
15}
16
17namespace assign2
18{
19
20RF_FUNC (F, (RF_ARG _v_arg1), (RF_RES _v_res1))
21  _v_res1 = empty;
22RF_END
23
24RF_FUNC (Main, (), (RF_RES _v_res1))
25  {
26    {
27      if (!RF_CALL (F, (empty), (_v_res1)))
28      {
29        goto block1__branch1;
30      }
31      goto block1;
32    }
33  block1__branch1: {}
34    {
35      Expr _ve_1;
36      if (!RF_CALL (F, (empty), (_ve_1)))
37      {
38        goto block1__branch2;
39      }
40      _v_res1 = empty;
41      goto block1;
42    }
43  block1__branch2: {}
44    {
45      Expr _ve_1;
46      if (!RF_CALL (F, (empty), (_ve_1)))
47      {
48        goto block1__branch3;
49      }
50      _v_res1 = _ve_1;
51      goto block1;
52    }
53  block1__branch3: {}
54    Expr _ve_1;
55    if (!RF_CALL (F, (empty), (_ve_1)))
56    {
57      error ("Unexpected fail");
58    }
59    Expr _ve_2 (_ve_1);
60    _v_res1 = _ve_2;
61  }
62block1: {}
63RF_END
64
65}
66
67rfrt::Entry rf_entry (assign2::Main);
68
69}
Note: See TracBrowser for help on using the repository browser.