diff options
| author | Alasdair Armstrong | 2018-01-05 17:26:07 +0000 |
|---|---|---|
| committer | Alasdair Armstrong | 2018-01-05 17:26:07 +0000 |
| commit | 2cf9dc9d40794912ce8af7d776326b271f52d942 (patch) | |
| tree | fc7472ff4292de363dcbc313b53d760c323e28c9 /src/pretty_print_lem_ast.ml | |
| parent | 8147deaf0bccdbb19d4c020583fc8a5c7b6197e8 (diff) | |
Added bitfield syntax to replicate register bits type
For example:
bitfield cr : vector(8, dec, bit) = {
CR0 : 7 .. 4,
LT : 7,
CR1 : 3 .. 2,
CR2 : 1,
CR3 : 0,
}
The difference this creates a newtype wrapper around the vector type,
then generates getters and setters for all the fields once, rather
than having to handle this construct separately in every backend.
Diffstat (limited to 'src/pretty_print_lem_ast.ml')
| -rw-r--r-- | src/pretty_print_lem_ast.ml | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/pretty_print_lem_ast.ml b/src/pretty_print_lem_ast.ml index 176fcd2e..d42cd2a5 100644 --- a/src/pretty_print_lem_ast.ml +++ b/src/pretty_print_lem_ast.ml @@ -526,11 +526,11 @@ let pp_lem_typdef ppf (TD_aux(td,(l,annot))) = let pp_id_semi ppf id = fprintf ppf "%a%a " pp_lem_id id kwd ";" in fprintf ppf "@[<0>(%a %a %a [%a] false)@]" kwd "TD_enum" pp_lem_id id pp_lem_namescm ns (list_pp pp_id_semi pp_lem_id) enums - | TD_register(id,n1,n2,rs) -> - let pp_rid ppf (r,id) = fprintf ppf "(%a, %a)%a " pp_lem_range r pp_lem_id id kwd ";" in + | TD_bitfield(id,typ,rs) -> + let pp_rid ppf (id, r) = fprintf ppf "(%a, %a)%a " pp_lem_range r pp_lem_id id kwd ";" in let pp_rids = (list_pp pp_rid pp_rid) in - fprintf ppf "@[<0>(%a %a %a %a [%a])@]" - kwd "TD_register" pp_lem_id id pp_lem_nexp n1 pp_lem_nexp n2 pp_rids rs + fprintf ppf "@[<0>(%a %a %a [%a])@]" + kwd "TD_bitfield" pp_lem_id id pp_lem_typ typ pp_rids rs in fprintf ppf "@[<0>(TD_aux %a (%a, %a))@]" print_td td pp_lem_l l pp_annot annot |
