diff options
| author | Gabriel Kerneis | 2014-02-07 18:13:16 +0000 |
|---|---|---|
| committer | Gabriel Kerneis | 2014-02-07 18:13:16 +0000 |
| commit | 54005e457eb069330219dbe2cbd0a903ffbdb517 (patch) | |
| tree | 701d09b2986e6c23e1d5a1b17c98ae0766bafc40 /src | |
| parent | dcbc80a3419a828da8cdb6250ecb52f52a72a28b (diff) | |
Fix a few stupid bugs
Diffstat (limited to 'src')
| -rw-r--r-- | src/lem_interp/interp_lib.lem | 10 | ||||
| -rw-r--r-- | src/type_internal.ml | 2 |
2 files changed, 7 insertions, 5 deletions
diff --git a/src/lem_interp/interp_lib.lem b/src/lem_interp/interp_lib.lem index f6485666..158b9fa5 100644 --- a/src/lem_interp/interp_lib.lem +++ b/src/lem_interp/interp_lib.lem @@ -20,16 +20,18 @@ let neq = compose neg eq ;; let add (V_tuple [V_lit(L_num x); V_lit(L_num y)]) = V_lit(L_num (x+y)) ;; let rec vec_concat (V_tuple args) = match args with - | [V_vector 0 true l; V_vector 0 true l'] -> V_vector 0 true (l ++ l') + | [V_vector n d l; V_vector n' d' l'] -> + (* XXX d = d' ? droping n' ? *) + V_vector n d (l ++ l') | [V_lit l; x] -> vec_concat (V_tuple [litV_to_vec l; x]) | [x; V_lit l] -> vec_concat (V_tuple [x; litV_to_vec l]) - end;; + end ;; let function_map = [ ("add", add); ("add_infix", add); - ("=", eq); - (":", vec_concat); + ("eq", eq); + ("vec_concat", vec_concat); ("is_one", is_one); ] ;; diff --git a/src/type_internal.ml b/src/type_internal.ml index b1baa982..6c0b3e9d 100644 --- a/src/type_internal.ml +++ b/src/type_internal.ml @@ -455,7 +455,7 @@ let rec type_coerce l d_env t1 e t2 = [TA_nexp b2;TA_nexp r2;] -> let cs = [Eq(l,b1,{nexp=N2n{nexp=Nadd(b2,{nexp=Nneg r2})}}); Eq(l,r1,b1)] in - (t2,cs,E_aux(E_app((Id_aux(Id "to_num_dec",l)),[e]),(l,Some(([],t2),Emp,cs,pure_e)))) + (t2,cs,E_aux(E_app((Id_aux(Id "to_vec_dec",l)),[e]),(l,Some(([],t2),Emp,cs,pure_e)))) | [TA_nexp b1;TA_nexp r1;TA_ord {order = Ovar o};TA_typ {t=Tid "bit"}],_ -> eq_error l "Cannot convert an enum to a vector without an order" | [TA_nexp b1;TA_nexp r1;TA_ord o;TA_typ t],_ -> |
