Mercurial > repos > rhope
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 } |