annotate backendutils.rhope @ 18:ea991f95ae1f

C backend working well enough to generate Fib test
author Mike Pavone <pavone@retrodev.com>
date Wed, 27 May 2009 04:49:32 -0400
parents 23dd9c766699
children e9272f7ebd26
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
12
31f8182f3433 Finished fib test and did some small work on the c backend
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
1
31f8182f3433 Finished fib test and did some small work on the c backend
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
2 Escape Rhope Name[name:escaped]
31f8182f3433 Finished fib test and did some small work on the c backend
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
3 {
31f8182f3433 Finished fib test and did some small work on the c backend
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
4 escaped <- [[[[[[[[[[[name]Replace["_","__"]
31f8182f3433 Finished fib test and did some small work on the c backend
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
5 ]Replace["@","_AT_"]
31f8182f3433 Finished fib test and did some small work on the c backend
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
6 ]Replace[" ","_SP_"]
31f8182f3433 Finished fib test and did some small work on the c backend
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
7 ]Replace[":","_CN_"]
31f8182f3433 Finished fib test and did some small work on the c backend
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
8 ]Replace["?","_QN_"]
31f8182f3433 Finished fib test and did some small work on the c backend
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
9 ]Replace["+","_PL_"]
31f8182f3433 Finished fib test and did some small work on the c backend
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
10 ]Replace["-","_MN_"]
31f8182f3433 Finished fib test and did some small work on the c backend
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
11 ]Replace["*","_TM_"]
31f8182f3433 Finished fib test and did some small work on the c backend
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
12 ]Replace["/","_DV_"]
31f8182f3433 Finished fib test and did some small work on the c backend
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
13 ]Replace["<","_LT_"]
31f8182f3433 Finished fib test and did some small work on the c backend
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
14 ]Replace["<","_GT_"]
31f8182f3433 Finished fib test and did some small work on the c backend
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
15 }
13
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
16
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
17 Blueprint AddRef
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
18 {
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
19 Value
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
20 }
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
21
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
22 AddRef[value:out]
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
23 {
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
24 out <- [Build["AddRef"]]Value <<[value]
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
25 }
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
26
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
27 Make Op@AddRef[addref,func:out]
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
28 {
18
ea991f95ae1f C backend working well enough to generate Fib test
Mike Pavone <pavone@retrodev.com>
parents: 13
diff changeset
29 //TODO: Make me work with other backends
13
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
30 out <- [["add_ref("]Append[ [[addref]Value >>]Make Op[func] ]]Append[")"]
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
31 }
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
32
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
33 Make Op@String[string,func:out]
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
34 {
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
35 out <- [func]Resolve[string]
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
36 }
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
37
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
38 Make Op@Whole Number[num,func:out]
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
39 {
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
40 out <- num
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
41 }
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
42
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
43 Make Op@Real Number[num,func:out]
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
44 {
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
45 out <- num
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
46 }
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
47
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
48 Blueprint Constant
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
49 {
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
50 Var
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
51 }
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
52
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
53 Constant[var:out]
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
54 {
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
55 out <- [Build["Constant"]]Var <<[var]
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
56 }
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
57
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
58 Make Op@Constant[const,func:out]
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
59 {
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
60 out <- [const]Var >>
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
61 }
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
62
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
63 Blueprint Result
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
64 {
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
65 Output Num
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
66 }
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
67
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
68 Result[num:out]
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
69 {
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
70 out <- [Build["Result"]]Output Num <<[num]
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
71 }
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
72
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
73 Make Op@Result[result,func:out]
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
74 {
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
75 out <- [func]Result Reference[[result]Output Num>>]
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
76 }
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
77
18
ea991f95ae1f C backend working well enough to generate Fib test
Mike Pavone <pavone@retrodev.com>
parents: 13
diff changeset
78 Blueprint NotCond
ea991f95ae1f C backend working well enough to generate Fib test
Mike Pavone <pavone@retrodev.com>
parents: 13
diff changeset
79 {
ea991f95ae1f C backend working well enough to generate Fib test
Mike Pavone <pavone@retrodev.com>
parents: 13
diff changeset
80 Condition
ea991f95ae1f C backend working well enough to generate Fib test
Mike Pavone <pavone@retrodev.com>
parents: 13
diff changeset
81 }
13
23dd9c766699 C backend close to being useable
mpavone@
parents: 12
diff changeset
82
18
ea991f95ae1f C backend working well enough to generate Fib test
Mike Pavone <pavone@retrodev.com>
parents: 13
diff changeset
83 NotCond[cond:out]
ea991f95ae1f C backend working well enough to generate Fib test
Mike Pavone <pavone@retrodev.com>
parents: 13
diff changeset
84 {
ea991f95ae1f C backend working well enough to generate Fib test
Mike Pavone <pavone@retrodev.com>
parents: 13
diff changeset
85 out <- [Build["NotCond"]]Condition <<[cond]
ea991f95ae1f C backend working well enough to generate Fib test
Mike Pavone <pavone@retrodev.com>
parents: 13
diff changeset
86 }
ea991f95ae1f C backend working well enough to generate Fib test
Mike Pavone <pavone@retrodev.com>
parents: 13
diff changeset
87
ea991f95ae1f C backend working well enough to generate Fib test
Mike Pavone <pavone@retrodev.com>
parents: 13
diff changeset
88 Make Op@NotCond[cond,func:out]
ea991f95ae1f C backend working well enough to generate Fib test
Mike Pavone <pavone@retrodev.com>
parents: 13
diff changeset
89 {
ea991f95ae1f C backend working well enough to generate Fib test
Mike Pavone <pavone@retrodev.com>
parents: 13
diff changeset
90 out <- ["!"]Append[[[cond]Condition >>]Make Op[func]]
ea991f95ae1f C backend working well enough to generate Fib test
Mike Pavone <pavone@retrodev.com>
parents: 13
diff changeset
91 }