diff options
Diffstat (limited to 'src/lem_interp')
| -rw-r--r-- | src/lem_interp/interp.lem | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/lem_interp/interp.lem b/src/lem_interp/interp.lem index 8e842730..64727503 100644 --- a/src/lem_interp/interp.lem +++ b/src/lem_interp/interp.lem @@ -122,7 +122,7 @@ val to_register_fields : defs tannot -> list (id * list (id * index_range)) let rec to_register_fields (Defs defs) = match defs with | [ ] -> [ ] - | (DEF_aux def (l,tannot))::defs -> + | def::defs -> match def with | DEF_type (TD_aux (TD_register id n1 n2 indexes) l') -> (id,List.map (fun (a,b) -> (b,a)) indexes)::(to_register_fields (Defs defs)) @@ -134,9 +134,9 @@ val to_registers : defs tannot -> env let rec to_registers (Defs defs) = match defs with | [ ] -> [ ] - | (DEF_aux def (l,tannot))::defs -> + | def::defs -> match def with - | DEF_reg_dec typ id -> (id, V_register(Reg id tannot)) :: (to_registers (Defs defs)) + | DEF_reg_dec (DEC_aux (DEC_reg typ id) (l,tannot)) -> (id, V_register(Reg id tannot)) :: (to_registers (Defs defs)) | _ -> to_registers (Defs defs) end end @@ -164,7 +164,7 @@ val to_data_constructors : defs tannot -> list (id * typ) let rec to_data_constructors (Defs defs) = match defs with | [] -> [] - | (DEF_aux def _) :: defs -> + | def :: defs -> match def with | DEF_type (TD_aux t _)-> match t with @@ -426,7 +426,7 @@ let get_funcls id (FD_aux (FD_function _ _ _ fcls) _) = let rec find_function (Defs defs) id = match defs with | [] -> Nothing - | (DEF_aux def _)::defs -> + | def::defs -> match def with | DEF_fundef f -> match get_funcls id f with | [] -> find_function (Defs defs) id @@ -1273,13 +1273,13 @@ let rec to_global_letbinds (Defs defs) t_level = let (Env defs' lets regs ctors subregs) = t_level in match defs with | [] -> ((Value (V_lit (L_aux L_unit Unknown)) Tag_empty, emem, []),t_level) - | (DEF_aux def (l,_))::defs -> + | def::defs -> match def with | DEF_val lbind -> match interp_letbind t_level [] emem lbind with | ((Value v tag,lm,le),_) -> to_global_letbinds (Defs defs) (Env defs' (lets++le) regs ctors subregs) | ((Action a s,lm,le),_) -> - ((Error l "Top level let may not access memory, registers or (for now) external functions", lm,le),t_level) + ((Error Unknown "Top level let may not access memory, registers or (for now) external functions", lm,le),t_level) | (e,_) -> (e,t_level) end | _ -> to_global_letbinds (Defs defs) t_level end |
