From e732d425320e635277d1e0021856924acc7c5b0c Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Thu, 23 Apr 2015 19:05:59 -0400 Subject: - Fused lux;local-envs & lux;global-envs as lux;envs. --- source/lux.lux | 40 ++++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 18 deletions(-) (limited to 'source/lux.lux') diff --git a/source/lux.lux b/source/lux.lux index 8816589e7..a005da3da 100644 --- a/source/lux.lux +++ b/source/lux.lux @@ -136,28 +136,33 @@ Text])]))) (export' Reader) +## (deftype HostState +## (& #writer (^ org.objectweb.asm.ClassWriter) +## #loader (^ java.net.URLClassLoader) +## #eval-ctor Int)) +(def' HostState + (:' Type + (#RecordT (#Cons [["lux;writer" (#DataT "org.objectweb.asm.ClassWriter")] + (#Cons [["lux;loader" (#DataT "java.lang.ClassLoader")] + (#Cons [["lux;eval-ctor" Int] + #Nil])])])))) + ## (deftype CompilerState ## (& #source (Maybe Reader) ## #modules (List Any) ## #module-aliases (List Any) -## #global-env (Maybe (Env Text Any)) -## #local-envs (List (Env Text Any)) +## #envs (List (Env Text Any)) ## #types (Bindings Int Type) -## #writer (^ org.objectweb.asm.ClassWriter) -## #loader (^ java.net.URLClassLoader) -## #eval-ctor Int)) +## #host HostState)) (def' CompilerState (:' Type - (#RecordT (#Cons [["lux;source" (#AppT [Maybe Reader])] - (#Cons [["lux;modules" (#AppT [List Any])] - (#Cons [["lux;module-aliases" (#AppT [List Any])] - (#Cons [["lux;global-env" (#AppT [Maybe (#AppT [(#AppT [Env Text]) Any])])] - (#Cons [["lux;local-envs" (#AppT [List (#AppT [(#AppT [Env Text]) Any])])] - (#Cons [["lux;types" (#AppT [(#AppT [Bindings Int]) Type])] - (#Cons [["lux;writer" (#DataT "org.objectweb.asm.ClassWriter")] - (#Cons [["lux;loader" (#DataT "java.lang.ClassLoader")] - (#Cons [["lux;eval-ctor" Int] - #Nil])])])])])])])])])))) + (#RecordT (#Cons [["lux;source" (#AppT [Maybe Reader])] + (#Cons [["lux;modules" (#AppT [List Any])] + (#Cons [["lux;module-aliases" (#AppT [List Any])] + (#Cons [["lux;envs" (#AppT [List (#AppT [(#AppT [Env Text]) Any])])] + (#Cons [["lux;types" (#AppT [(#AppT [Bindings Int]) Type])] + (#Cons [["lux;host" HostState] + #Nil])])])])])])))) (export' CompilerState) ## (deftype (Syntax' w) @@ -819,8 +824,7 @@ ## (& #source (Maybe Reader) ## #modules (List Any) ## #module-aliases (List Any) -## #global-env (Maybe (Env Text Any)) -## #local-envs (List (Env Text Any)) +## #envs (List (Env Text Any)) ## #types (Bindings Int Type) ## #writer (^ org.objectweb.asm.ClassWriter) ## #loader (^ java.net.URLClassLoader) @@ -839,7 +843,7 @@ ## (let [[module name] ident] ## (case' state ## {#source source #modules modules #module-aliases module-aliases -## #global-env global-env #local-envs local-envs #types types +## #envs envs #types types ## #writer writer #loader loader #eval-ctor eval-ctor} ## (when-let [bindings (get module modules) ## bound (get name bindings)] -- cgit v1.2.3