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 }