summaryrefslogtreecommitdiff
path: root/cparser/Env.mli
diff options
context:
space:
mode:
Diffstat (limited to 'cparser/Env.mli')
-rw-r--r--cparser/Env.mli11
1 files changed, 9 insertions, 2 deletions
diff --git a/cparser/Env.mli b/cparser/Env.mli
index 01f95ca..b650f0f 100644
--- a/cparser/Env.mli
+++ b/cparser/Env.mli
@@ -36,6 +36,11 @@ type ident_info = II_ident of C.storage * C.typ | II_enum of int64
type typedef_info = C.typ
+type enum_info = {
+ ei_members: C.enumerator list; (* list of all members *)
+ ei_attr: C.attributes (* attributes, if any *)
+}
+
type t
val empty : t
@@ -44,28 +49,30 @@ val new_scope : t -> t
val in_current_scope : t -> C.ident -> bool
val lookup_ident : t -> string -> C.ident * ident_info
-val lookup_tag : t -> string -> C.ident * composite_info
val lookup_struct : t -> string -> C.ident * composite_info
val lookup_union : t -> string -> C.ident * composite_info
val lookup_composite : t -> string -> (C.ident * composite_info) option
val lookup_typedef : t -> string -> C.ident * typedef_info
+val lookup_enum : t -> string -> C.ident * enum_info
val ident_is_bound : t -> string -> bool
val find_ident : t -> C.ident -> ident_info
-val find_tag : t -> C.ident -> composite_info
val find_struct : t -> C.ident -> composite_info
val find_union : t -> C.ident -> composite_info
val find_member : C.field list -> string -> C.field
val find_struct_member : t -> C.ident * string -> C.field
val find_union_member : t -> C.ident * string -> C.field
val find_typedef : t -> C.ident -> typedef_info
+val find_enum : t -> C.ident -> enum_info
val enter_ident : t -> string -> C.storage -> C.typ -> C.ident * t
val enter_composite : t -> string -> composite_info -> C.ident * t
val enter_enum_item : t -> string -> int64 -> C.ident * t
val enter_typedef : t -> string -> typedef_info -> C.ident * t
+val enter_enum : t -> string -> enum_info -> C.ident * t
val add_ident : t -> C.ident -> C.storage -> C.typ -> t
val add_composite : t -> C.ident -> composite_info -> t
val add_typedef : t -> C.ident -> typedef_info -> t
+val add_enum : t -> C.ident -> enum_info -> t