diff options
Diffstat (limited to 'src/interp/i-eval.boot')
-rw-r--r-- | src/interp/i-eval.boot | 23 |
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 |