aboutsummaryrefslogtreecommitdiff
path: root/src/interp/i-eval.boot
diff options
context:
space:
mode:
Diffstat (limited to 'src/interp/i-eval.boot')
-rw-r--r--src/interp/i-eval.boot23
1 files changed, 6 insertions, 17 deletions
diff --git a/src/interp/i-eval.boot b/src/interp/i-eval.boot
index e857253d..56e5fc33 100644
--- a/src/interp/i-eval.boot
+++ b/src/interp/i-eval.boot
@@ -49,12 +49,12 @@ evalDomain form ==
mkEvalable form ==
form is [op,:argl] =>
- op="QUOTE" => form
- op="WRAPPED" => mkEvalable devaluate argl
- op="Record" => mkEvalableRecord form
- op="Union" => mkEvalableUnion form
- op="Mapping"=> mkEvalableMapping form
- op="Enumeration" => form
+ op is "QUOTE" => form
+ op is ":" => [op,second form,mkEvalable third form]
+ op is "WRAPPED" => mkEvalable devaluate argl
+ op in '(Record Union Mapping) =>
+ [op,:[mkEvalable arg for arg in argl]]
+ op is 'Enumeration => form
-- a niladic constructor instantiation goes by itself
constructor? op and argl = nil => form
loadIfNecessary op
@@ -75,17 +75,6 @@ mkEvalable form ==
FBPIP form => BPINAME form
form
-mkEvalableMapping form ==
- [first form,:[mkEvalable d for d in rest form]]
-
-mkEvalableRecord form ==
- [first form,:[[":",n,mkEvalable d] for [":",n,d] in rest form]]
-
-mkEvalableUnion form ==
- isTaggedUnion form =>
- [first form,:[[":",n,mkEvalable d] for [":",n,d] in rest form]]
- [first form,:[mkEvalable d for d in rest form]]
-
evaluateType0 form ==
-- Takes a parsed, unabbreviated type and evaluates it, replacing
-- type valued variables with their values, and calling bottomUp