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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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