Mercurial > repos > rhope
comparison backendutils.rhope @ 30:914ad38f9b59
Compiler now works for some simple programs
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Mon, 28 Sep 2009 19:42:33 -0400 |
parents | e9272f7ebd26 |
children | 3498713c3dc9 |
comparison
equal
deleted
inserted
replaced
29:3cc5e4a42344 | 30:914ad38f9b59 |
---|---|
45 out <- num | 45 out <- num |
46 } | 46 } |
47 | 47 |
48 Blueprint Constant | 48 Blueprint Constant |
49 { | 49 { |
50 Var | 50 Value |
51 } | 51 } |
52 | 52 |
53 Constant[var:out] | 53 Constant[var:out] |
54 { | 54 { |
55 out <- [Build["Constant"]]Var <<[var] | 55 out <- [Build["Constant"]]Value <<[var] |
56 } | 56 } |
57 | 57 |
58 Make Op@Constant[const,func:out] | 58 Make Op@Constant[const,func:out] |
59 { | 59 { |
60 out <- [const]Var >> | 60 out <- [func]Lookup Constant[[const]Value >>] |
61 } | 61 } |
62 | 62 |
63 Blueprint Result | 63 Blueprint Result |
64 { | 64 { |
65 Output Num | 65 Output Num |
103 | 103 |
104 Make Op@NotCond[cond,func:out] | 104 Make Op@NotCond[cond,func:out] |
105 { | 105 { |
106 out <- ["!"]Append[[[cond]Condition >>]Make Op[func]] | 106 out <- ["!"]Append[[[cond]Condition >>]Make Op[func]] |
107 } | 107 } |
108 | |
109 Blueprint OrCond | |
110 { | |
111 Condition1 | |
112 Condition2 | |
113 } | |
114 | |
115 OrCond[cond1,cond2:out] | |
116 { | |
117 out <- [[Build["OrCond"]]Condition1 <<[cond1]]Condition2 <<[cond2] | |
118 } | |
119 | |
120 Make Op@OrCond[cond,func:out] | |
121 { | |
122 out <- ["("]Append[[[[cond]Condition1 >>]Append[" || "]]Append[[[cond]Condition2 >>]Append[")"]]] | |
123 } | |
124 | |
125 Blueprint AndCond | |
126 { | |
127 Condition1 | |
128 Condition2 | |
129 } | |
130 | |
131 AndCond[cond1,cond2:out] | |
132 { | |
133 out <- [[Build["AndCond"]]Condition1 <<[cond1]]Condition2 <<[cond2] | |
134 } | |
135 | |
136 Make Op@AndCond[cond,func:out] | |
137 { | |
138 out <- ["("]Append[[[[cond]Condition1 >>]Append[" && "]]Append[[[cond]Condition2 >>]Append[")"]]] | |
139 } |