diff options
Diffstat (limited to 'src/lem_interp/instruction_extractor.lem')
| -rw-r--r-- | src/lem_interp/instruction_extractor.lem | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/lem_interp/instruction_extractor.lem b/src/lem_interp/instruction_extractor.lem index 2b37bfb4..b49646ea 100644 --- a/src/lem_interp/instruction_extractor.lem +++ b/src/lem_interp/instruction_extractor.lem @@ -52,20 +52,21 @@ open import Interp_ast open import Interp_utilities open import Pervasives -type instr_param_typ = +type instr_param_typ = | IBit | IBitvector of maybe nat | IRange of maybe nat | IEnum of string * nat | IOther -type instruction_form = +type instruction_form = | Instr_form of string * list (string * instr_param_typ) * list base_effect -| Skipped +| Skipped val extract_instructions : string -> defs tannot -> list instruction_form let rec extract_ityp t tag = match (t,tag) with +(* AA: Hack | (T_abbrev _ t,_) -> extract_ityp t tag | (T_id "bit",_) -> IBit | (T_id "bool",_) -> IBit @@ -82,6 +83,7 @@ let rec extract_ityp t tag = match (t,tag) with IEnum i (natFromInteger max) | (T_id i,Tag_enum max) -> IEnum i (natFromInteger max) +*) | _ -> IOther end @@ -133,7 +135,10 @@ let rec extract_patt_parm (P_aux p (_,tannot)) = let rec extract_from_execute fcls = match fcls with | [] -> [] | FCL_aux (FCL_Funcl _ (P_aux (P_app (Id_aux (Id i) _) parms) _) _) (_,Just(_,_,_,Effect_aux(Effect_set efs) _,_))::fcls -> - (Instr_form i (List.map extract_patt_parm parms) efs)::extract_from_execute fcls + (Instr_form i (List.map extract_patt_parm parms) efs)::extract_from_execute fcls + | _ :: fcls -> + (* AA: Find out what breaks this *) + extract_from_execute fcls end let rec extract_effects instrs execute = |
