summaryrefslogtreecommitdiff
path: root/src/lem_interp
diff options
context:
space:
mode:
Diffstat (limited to 'src/lem_interp')
-rw-r--r--src/lem_interp/instruction_extractor.lem2
-rw-r--r--src/lem_interp/interp_inter_imp.lem1
2 files changed, 3 insertions, 0 deletions
diff --git a/src/lem_interp/instruction_extractor.lem b/src/lem_interp/instruction_extractor.lem
index f78e2d29..3507a5ee 100644
--- a/src/lem_interp/instruction_extractor.lem
+++ b/src/lem_interp/instruction_extractor.lem
@@ -30,6 +30,8 @@ let rec extract_ityp t tag = match (t,tag) with
| (T_app "range" _,_) -> IRange Nothing
| (T_app i (T_args []),Tag_enum max) ->
IEnum i (natFromInteger max)
+ | (T_id i,Tag_enum max) ->
+ IEnum i (natFromInteger max)
| _ -> IOther
end
diff --git a/src/lem_interp/interp_inter_imp.lem b/src/lem_interp/interp_inter_imp.lem
index aa802641..66bfd6b7 100644
--- a/src/lem_interp/interp_inter_imp.lem
+++ b/src/lem_interp/interp_inter_imp.lem
@@ -396,6 +396,7 @@ let instruction_to_istate (top_level:context) (((name, parms, _) as instr):instr
match typ with
| Bit -> match bits with | [b] -> b | _ -> Assert_extra.failwith "Expected a bitvector of length 1" end
| Range _ -> Interp_lib.to_num Interp_lib.Unsigned vec
+ | Enum _ _ -> Interp_lib.to_num Interp_lib.Unsigned vec
| _ -> vec
end
end in