comparison backendutils.rhope @ 37:640f541e9116

Added support for type declarations on user defined workers and added a few more methods to Int32 in the runtime for the C backend
author Mike Pavone <pavone@retrodev.com>
date Mon, 05 Oct 2009 23:12:43 -0400
parents 495dddadd058
children 7f05bbe82f24
comparison
equal deleted inserted replaced
36:495dddadd058 37:640f541e9116
121 out <- [[Build["OrCond"]]Condition1 <<[cond1]]Condition2 <<[cond2] 121 out <- [[Build["OrCond"]]Condition1 <<[cond1]]Condition2 <<[cond2]
122 } 122 }
123 123
124 Make Op@OrCond[cond,func:out] 124 Make Op@OrCond[cond,func:out]
125 { 125 {
126 out <- ["("]Append[[[[cond]Condition1 >>]Append[" || "]]Append[[[cond]Condition2 >>]Append[")"]]] 126 out <- ["("]Append[[[ [[cond]Condition1 >>]Make Op[func] ]Append[" || "]]Append[[ [[cond]Condition2 >>]Make Op[func] ]Append[")"]]]
127 } 127 }
128 128
129 Blueprint AndCond 129 Blueprint AndCond
130 { 130 {
131 Condition1 131 Condition1
137 out <- [[Build["AndCond"]]Condition1 <<[cond1]]Condition2 <<[cond2] 137 out <- [[Build["AndCond"]]Condition1 <<[cond1]]Condition2 <<[cond2]
138 } 138 }
139 139
140 Make Op@AndCond[cond,func:out] 140 Make Op@AndCond[cond,func:out]
141 { 141 {
142 out <- ["("]Append[[[[cond]Condition1 >>]Append[" && "]]Append[[[cond]Condition2 >>]Append[")"]]] 142 out <- ["("]Append[[[ [[cond]Condition1 >>]Make Op[func] ]Append[" && "]]Append[[ [[cond]Condition2 >>]Make Op[func] ]Append[")"]]]
143 } 143 }
144 144
145 Blueprint Field Ref 145 Blueprint Field Ref
146 { 146 {
147 Variable 147 Variable
155 155
156 Make Op@Field Ref[ref,func:out] 156 Make Op@Field Ref[ref,func:out]
157 { 157 {
158 out <- [func]Field Result[[ref]Variable >>,[ref]Field >>] 158 out <- [func]Field Result[[ref]Variable >>,[ref]Field >>]
159 } 159 }
160
161 Blueprint Type Instance
162 {
163 Name
164 Params
165 Variant
166 }
167
168 Type Instance[raw name:out]
169 {
170 If[[raw name]=[""]]
171 {
172 name <- "Any Type"
173 }{
174 name <- raw name
175 }
176 out <- [[[Build["Type Instance"]]Name <<[name]]Params <<[()]]Variant <<["Boxed"]
177 }
178
179 Set Variant[type,variant:out,invalid]
180 {
181 [("Boxed","Naked","Pointer","Raw Pointer")]Find[variant]
182 {
183 out <- [type]Variant <<[variant]
184 }{
185 invalid <- type
186 }
187 }