Mercurial > repos > rhope
annotate testc.rhope @ 16:e1c9f2cd99c8
Merged changes
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Tue, 26 May 2009 23:37:38 -0400 |
parents | 69dfca29565f |
children | ea991f95ae1f |
rev | line source |
---|---|
14
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
1 Import cbackend.rhope |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
2 |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
3 Main[] |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
4 { |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
5 base <- [[[[[[C Function["Fib",("n"),("out"),""] |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
6 ]Allocate Var["work1", "Any Type"] |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
7 ]Allocate Var["work2", "Any Type"] |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
8 ]Null["out"] |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
9 ]Method Call["<", [[()]Append[AddRef["n"]]]Append[AddRef[Constant["const_2"]]]] |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
10 ]Move[Result[0], "work1"] |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
11 ]Method Call["If", [()]Append["work1"]] |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
12 {Print["base done"] } |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
13 |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
14 stream1 <- [[[base]Instruction Stream |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
15 ]Release[Result[0]] |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
16 ]Move[AddRef[Constant["const_1"]], "out"] |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
17 {Print["stream1 done"]} |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
18 |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
19 stream2 <- [[[[[[base]Instruction Stream |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
20 ]Release[Result[0]] |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
21 ]Method Call["-", [[()]Append[AddRef["n"]]]Append[AddRef[Constant["const_1"]]]] |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
22 ]Move[Result[0], "work1"] |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
23 ]Method Call["-", [[()]Append[AddRef["n"]]]Append[AddRef[Constant["const_2"]]]] |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
24 ]Move[Result[0], "work2"] |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
25 {Print["stream2 done"]} |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
26 |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
27 func <- [[base |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
28 ]Do If[Result[0], stream1] |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
29 ]Do If[Result[1], stream2] |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
30 {Print["func done"] } |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
31 |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
32 Print[[func]Definitions] |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
33 { |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
34 Print[[func]Text] } |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
35 } |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
36 |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
37 Foo[] |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
38 { |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
39 } |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
40 |