comparison backendutils.rhope @ 75:0083b2f7b3c7

Partially working implementation of List. Modified build scripts to allow use of other compilers. Fixed some bugs involving method implementations on different types returning different numbers of outputs. Added Fold to the 'builtins' in the comipler.
author Mike Pavone <pavone@retrodev.com>
date Tue, 06 Jul 2010 07:52:59 -0400
parents a844c623c7df
children c25d75c2440b
comparison
equal deleted inserted replaced
74:a844c623c7df 75:0083b2f7b3c7
1 1
2 Escape Rhope Name NU[name:escaped] 2 Escape Rhope Name NU[name:escaped]
3 { 3 {
4 escaped <- [[[[[[[[[[[[[[[name]Replace["_","UN_"] 4 escaped <- [[[[[[[[[[[[[[[[[[[[name]Replace["_","UN_"]
5 ]Replace["@","AT_"] 5 ]Replace["@","AT_"]
6 ]Replace[" ","SP_"] 6 ]Replace[" ","SP_"]
7 ]Replace[":","CN_"] 7 ]Replace[":","CN_"]
8 ]Replace["?","QN_"] 8 ]Replace["?","QN_"]
9 ]Replace["+","PL_"] 9 ]Replace["+","PL_"]
14 ]Replace[">","GT_"] 14 ]Replace[">","GT_"]
15 ]Replace["(","LP_"] 15 ]Replace["(","LP_"]
16 ]Replace[")","RP_"] 16 ]Replace[")","RP_"]
17 ]Replace["!","NT_"] 17 ]Replace["!","NT_"]
18 ]Replace["=","EQ_"] 18 ]Replace["=","EQ_"]
19 ]Replace["'","PR_"]
20 ]Replace["\"","DP_"]
21 ]Replace["\t","TB_"]
22 ]Replace[",", "CM_"]
23 ]Replace[".", "PD_"]
19 } 24 }
20 25
21 Escape Rhope Name[name:escaped] 26 Escape Rhope Name[name:escaped]
22 { 27 {
23 escaped <- Escape Rhope Name NU[[name]Replace["_","__"]] 28 escaped <- Escape Rhope Name NU[[name]Replace["_","__"]]
129 { 134 {
130 out <- [func]Result Reference[[result]Output Num>>] 135 out <- [func]Result Reference[[result]Output Num>>]
131 } 136 }
132 137
133 Strip Addref@Result[op:out] 138 Strip Addref@Result[op:out]
139 {
140 out <- op
141 }
142
143 Blueprint Check Result
144 {
145 Output Num
146 }
147
148 Check Result[num:out]
149 {
150 out <- [Build["Check Result"]]Output Num <<[num]
151 }
152
153 Make Op@Check Result[result,func:out]
154 {
155 out <- [func]Checked Result Reference[[result]Output Num>>]
156 }
157
158 Strip Addref@Check Result[op:out]
134 { 159 {
135 out <- op 160 out <- op
136 } 161 }
137 162
138 Make Condition[op:out] 163 Make Condition[op:out]