Mercurial > repos > rhope
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 |
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 | 16 |
17 Blueprint AddRef | |
18 { | |
19 Value | |
20 } | |
21 | |
22 AddRef[value:out] | |
23 { | |
24 out <- [Build["AddRef"]]Value <<[value] | |
25 } | |
26 | |
27 Make Op@AddRef[addref,func:out] | |
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 | 30 out <- [["add_ref("]Append[ [[addref]Value >>]Make Op[func] ]]Append[")"] |
31 } | |
32 | |
33 Make Op@String[string,func:out] | |
34 { | |
35 out <- [func]Resolve[string] | |
36 } | |
37 | |
38 Make Op@Whole Number[num,func:out] | |
39 { | |
40 out <- num | |
41 } | |
42 | |
43 Make Op@Real Number[num,func:out] | |
44 { | |
45 out <- num | |
46 } | |
47 | |
48 Blueprint Constant | |
49 { | |
50 Var | |
51 } | |
52 | |
53 Constant[var:out] | |
54 { | |
55 out <- [Build["Constant"]]Var <<[var] | |
56 } | |
57 | |
58 Make Op@Constant[const,func:out] | |
59 { | |
60 out <- [const]Var >> | |
61 } | |
62 | |
63 Blueprint Result | |
64 { | |
65 Output Num | |
66 } | |
67 | |
68 Result[num:out] | |
69 { | |
70 out <- [Build["Result"]]Output Num <<[num] | |
71 } | |
72 | |
73 Make Op@Result[result,func:out] | |
74 { | |
75 out <- [func]Result Reference[[result]Output Num>>] | |
76 } | |
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 | 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 } |