From 712f3cbae6bfd3c6f6cc40d44f438aa0affcd371 Mon Sep 17 00:00:00 2001 From: xleroy Date: Tue, 18 Dec 2012 07:54:35 +0000 Subject: Support for inline assembly (asm statements). cparser: add primitive support for enum types. bitfield emulation: for bitfields with enum type, choose signed/unsigned as appropriate git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@2074 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e --- cparser/Env.mli | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'cparser/Env.mli') diff --git a/cparser/Env.mli b/cparser/Env.mli index 01f95ca9..b650f0f8 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 -- cgit