/[svn]/runtime/eval.ml
ViewVC logotype

Diff of /runtime/eval.ml

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

revision 331 by abate, Tue Jul 10 17:25:44 2007 UTC revision 332 by abate, Tue Jul 10 17:25:57 2007 UTC
# Line 100  Line 100 
100    let (bind, e) = rhs.(code) in    let (bind, e) = rhs.(code) in
101    let env =    let env =
102      List.fold_left (fun env (x,i) ->      List.fold_left (fun env (x,i) ->
103                    if (i = -1) then Env.add x arg env                    if (i == -1) then Env.add x arg env
104                    else Env.add x bindings.(i) env) env (IdMap.get bind) in                    else Env.add x bindings.(i) env) env (IdMap.get bind) in
105    eval env e    eval env e
106    
# Line 108  Line 108 
108    let v = eval env l.Typed.let_body in    let v = eval env l.Typed.let_body in
109    let (disp,bind) = Typed.dispatcher_let_decl l in    let (disp,bind) = Typed.dispatcher_let_decl l in
110    let (_,bindings) = run_dispatcher disp v in    let (_,bindings) = run_dispatcher disp v in
111    List.map (fun (x,i) -> (x, if (i = -1) then v else bindings.(i))) (IdMap.get bind)    List.map (fun (x,i) -> (x, if (i == -1) then v else bindings.(i))) (IdMap.get bind)
112    
113  and eval_map env brs = function  and eval_map env brs = function
114    | Pair (x,y) ->    | Pair (x,y) ->
# Line 233  Line 233 
233    
234  and eval_equal v1 v2 =  and eval_equal v1 v2 =
235    let c = Value.compare v1 v2 in    let c = Value.compare v1 v2 in
236    Value.vbool (Value.compare v1 v2 = 0)    Value.vbool (Value.compare v1 v2 == 0)
237    
238  and eval_lt v1 v2 =  and eval_lt v1 v2 =
239    let c = Value.compare v1 v2 in    let c = Value.compare v1 v2 in

Legend:
Removed from v.331  
changed lines
  Added in v.332

CVS Admin">CVS Admin
ViewVC Help
Powered by ViewVC 1.1.5