diff backendutils.rhope @ 13:23dd9c766699

C backend close to being useable
author mpavone@
date Tue, 26 May 2009 23:49:46 +0000
parents 31f8182f3433
children ea991f95ae1f
line wrap: on
line diff
--- a/backendutils.rhope	Mon May 25 23:34:36 2009 -0400
+++ b/backendutils.rhope	Tue May 26 23:49:46 2009 +0000
@@ -13,3 +13,65 @@
 		]Replace["<","_LT_"]
 		]Replace["<","_GT_"]
 }
+
+Blueprint AddRef
+{
+	Value
+}
+
+AddRef[value:out]
+{
+	out <- [Build["AddRef"]]Value <<[value]
+}
+
+Make Op@AddRef[addref,func:out]
+{
+	out <- [["add_ref("]Append[ [[addref]Value >>]Make Op[func] ]]Append[")"]
+}
+
+Make Op@String[string,func:out]
+{
+	out <- [func]Resolve[string]
+}
+
+Make Op@Whole Number[num,func:out]
+{
+	out <- num
+}
+
+Make Op@Real Number[num,func:out]
+{
+	out <- num
+}
+
+Blueprint Constant
+{
+	Var
+}
+
+Constant[var:out]
+{
+	out <- [Build["Constant"]]Var <<[var]
+}
+
+Make Op@Constant[const,func:out]
+{
+	out <- [const]Var >>
+}
+
+Blueprint Result
+{
+	Output Num
+}
+
+Result[num:out]
+{
+	out <- [Build["Result"]]Output Num <<[num]
+}
+
+Make Op@Result[result,func:out]
+{
+	out <- [func]Result Reference[[result]Output Num>>]
+}
+
+