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

Diff of /runtime/run_dispatch.ml

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

revision 229 by abate, Tue Jul 10 17:17:01 2007 UTC revision 230 by abate, Tue Jul 10 17:17:06 2007 UTC
# Line 25  Line 25 
25      ) r in      ) r in
26    (code,ret)    (code,ret)
27    
28    let rec run_disp_basic v f =  function
29      | [(_,r)] -> make_result_basic v r
30      | (t,r)::rem -> if f t then make_result_basic v r else run_disp_basic v f rem
31      | _ ->
32          assert false
33    
34  let dummy_r = [||]  let dummy_r = [||]
35    
36  let rec run_dispatcher d v =  let rec run_dispatcher d v =
# Line 56  Line 62 
62        run_disp_kind actions (normalize v)        run_disp_kind actions (normalize v)
63    
64    
 and run_disp_basic v f =  function  
 (*  | [(_,r)] -> make_result_basic v r *)  
   | (t,r)::rem -> if f t then make_result_basic v r else run_disp_basic v f rem  
   | _ ->  
       assert false  
   
65    
66  and run_disp_prod v v1 v2 = function  and run_disp_prod v v1 v2 = function
67    | Impossible -> assert false    | Impossible -> assert false
# Line 81  Line 81 
81    
82  and run_disp_record other v fields = function  and run_disp_record other v fields = function
83    | None -> assert false    | None -> assert false
84    | Some (`Label (l,d)) ->    | Some (RecLabel (l,d)) ->
85        let rec aux other = function        let rec aux other = function
86          | (l1,_) :: rem when l1 < l -> aux true rem          | (l1,_) :: rem when l1 < l -> aux true rem
87          | (l1,vl) :: rem when l1 = l ->          | (l1,vl) :: rem when l1 = l ->
# Line 90  Line 90 
90              run_disp_record1 other Absent rem d              run_disp_record1 other Absent rem d
91        in        in
92        aux other fields        aux other fields
93    | Some (`Nolabel (some,none)) ->    | Some (RecNolabel (some,none)) ->
94        let r = if other then some else none in        let r = if other then some else none in
95        match r with        match r with
96          | Some r -> make_result_basic v r          | Some r -> make_result_basic v r

Legend:
Removed from v.229  
changed lines
  Added in v.230

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