Home My Page Projects Code Snippets Project Openings diderot
Summary Activity Tracker Tasks SCM

SCM Repository

[diderot] Diff of /branches/vis15/src/compiler/typechecker/env.sml
ViewVC logotype

Diff of /branches/vis15/src/compiler/typechecker/env.sml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 3408, Wed Nov 11 20:26:18 2015 UTC revision 3409, Wed Nov 11 22:38:14 2015 UTC
# Line 51  Line 51 
51        = PrimFun of AST.var list                 (* possibly overloaded builtin function *)        = PrimFun of AST.var list                 (* possibly overloaded builtin function *)
52        | UserFun of AST.var                      (* user-defined function *)        | UserFun of AST.var                      (* user-defined function *)
53    
54      (* insert a global variable into the environment (includes constants and inputs) *)
55        val insertGlobal : t * context * Atom.atom * AST.var -> t
56    
57      (* insert a user function into the environment *)
58        val insertFunc : t * context * Atom.atom * AST.var -> t
59    
60    (* insert a local variable into the environment *)    (* insert a local variable into the environment *)
61      val insertLocal : t * context * Atom.atom * AST.var -> t      val insertLocal : t * context * Atom.atom * AST.var -> t
62    
# Line 138  Line 144 
144              | someVar => someVar              | someVar => someVar
145            (* end case *))            (* end case *))
146    
147      fun insertStrand (E{scope, bindings, gEnv, vEnv}, cxt, name, params) = (      fun insertGlobal (E{scope, bindings, gEnv, vEnv}, cxt, x, x') = let
148            GE.insertStrand(gEnv, name, params);            val loc = Error.location cxt
149              in
150    (*            setLoc(x', loc);*)
151                GE.insertVar (gEnv, x, x');
152            E{            E{
153                scope=scope,                scope=scope,
154                bindings = AtomMap.insert(bindings, name, Error.location cxt),                bindings = AtomMap.insert(bindings, x, loc),
155                gEnv = gEnv,                gEnv = gEnv,
156                vEnv = vEnv                vEnv = vEnv
157              })              }
158              end
159    
160      fun insertFunc (E{scope, bindings, gEnv, vEnv}, cxt, f, f') =  let      fun insertFunc (E{scope, bindings, gEnv, vEnv}, cxt, f, f') =  let
161            val loc = Error.location cxt            val loc = Error.location cxt
162            in            in
# Line 158  Line 169 
169                vEnv = vEnv                vEnv = vEnv
170              }              }
171            end            end
172      fun insertLocal (E{scope, bindings, gEnv, vEnv}, cxt, x, x') = let  
173            val loc = Error.location cxt      fun insertStrand (E{scope, bindings, gEnv, vEnv}, cxt, name, params) = (
174            in            GE.insertStrand(gEnv, name, params);
 (*            setLoc(x', loc);*)  
175              E{              E{
176                scope = scope,                scope = scope,
177                bindings = AtomMap.insert(bindings, x, loc),                bindings = AtomMap.insert(bindings, name, Error.location cxt),
178                gEnv = gEnv,                gEnv = gEnv,
179                vEnv = AMap.insert(vEnv, x, x')                vEnv = vEnv
180              }              })
181            end  
182      fun insertGlobal (E{scope, bindings, gEnv, vEnv}, cxt, x, x') = let      fun insertLocal (E{scope, bindings, gEnv, vEnv}, cxt, x, x') = let
183            val loc = Error.location cxt            val loc = Error.location cxt
184            in            in
185  (*            setLoc(x', loc);*)  (*            setLoc(x', loc);*)
             GE.insertVar (gEnv, x, x');  
186              E{              E{
187                scope = scope,                scope = scope,
188                bindings = AtomMap.insert(bindings, x, loc),                bindings = AtomMap.insert(bindings, x, loc),
189                gEnv = gEnv,                gEnv = gEnv,
190                vEnv = vEnv                vEnv = AMap.insert(vEnv, x, x')
191              }              }
192            end            end
193    

Legend:
Removed from v.3408  
changed lines
  Added in v.3409

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0