Parsing.AstSourceAbstract syntax tree for C stubs. It is similar to the CST except:
type stub = {stub_name : string;stub_params : var list;stub_locals : local Mopsa_utils.Location.with_range list;stub_assigns : assigns Mopsa_utils.Location.with_range list;stub_body : section list;stub_range : Mopsa_utils.Location.range;}*****************
and leaf = | S_local of local Mopsa_utils.Location.with_range| S_assumes of assumes Mopsa_utils.Location.with_range| S_requires of requires Mopsa_utils.Location.with_range| S_assigns of assigns Mopsa_utils.Location.with_range| S_ensures of ensures Mopsa_utils.Location.with_range| S_free of free Mopsa_utils.Location.with_range| S_message of message Mopsa_utils.Location.with_rangeand case = {case_label : string;case_body : leaf list;case_locals : local Mopsa_utils.Location.with_range list;case_assigns : assigns Mopsa_utils.Location.with_range list;case_range : Mopsa_utils.Location.range;}**********************
and local_value = | L_new of resource| L_call of Mopsa_c_parser.C_AST.func Mopsa_utils.Location.with_range
* expr Mopsa_utils.Location.with_range listand assigns = {assign_target : expr Mopsa_utils.Location.with_range;assign_offset : interval list;}*=*=*=*=*=*=*=*
and expr_kind = | E_top of Mopsa_c_parser.C_AST.type_qual| E_int of Z.t| E_float of float| E_string of string| E_char of int| E_invalid| E_var of var| E_unop of unop * expr Mopsa_utils.Location.with_range| E_binop of binop
* expr Mopsa_utils.Location.with_range
* expr Mopsa_utils.Location.with_range| E_addr_of of expr Mopsa_utils.Location.with_range| E_deref of expr Mopsa_utils.Location.with_range| E_cast of Mopsa_c_parser.C_AST.type_qual
* bool
* expr Mopsa_utils.Location.with_range| E_subscript of expr Mopsa_utils.Location.with_range
* expr Mopsa_utils.Location.with_range| E_member of expr Mopsa_utils.Location.with_range * int * string| E_arrow of expr Mopsa_utils.Location.with_range * int * string| E_conditional of expr Mopsa_utils.Location.with_range
* expr Mopsa_utils.Location.with_range
* expr Mopsa_utils.Location.with_range| E_builtin_call of builtin * expr Mopsa_utils.Location.with_range list| E_raise of string| E_returnand interval = {itv_lb : expr Mopsa_utils.Location.with_range;lower bound
*)itv_open_lb : bool;open lower bound
*)itv_ub : expr Mopsa_utils.Location.with_range;upper bound
*)itv_open_ub : bool;open upper bound
*)}************
and formula = | F_expr of expr Mopsa_utils.Location.with_range| F_bool of bool| F_binop of log_binop
* formula Mopsa_utils.Location.with_range
* formula Mopsa_utils.Location.with_range| F_not of formula Mopsa_utils.Location.with_range| F_forall of var * set * formula Mopsa_utils.Location.with_range| F_exists of var * set * formula Mopsa_utils.Location.with_range| F_in of expr Mopsa_utils.Location.with_range * set| F_otherwise of formula Mopsa_utils.Location.with_range
* expr Mopsa_utils.Location.with_range| F_if of formula Mopsa_utils.Location.with_range
* formula Mopsa_utils.Location.with_range
* formula Mopsa_utils.Location.with_range*********************
*******************
val pp_list :
(Stdlib.Format.formatter -> 'a -> unit) ->
(unit, Stdlib.Format.formatter, unit) Stdlib.format ->
Stdlib.Format.formatter ->
'a list ->
unitval pp_requires :
Stdlib.Format.formatter ->
formula Mopsa_utils.Location.with_range Mopsa_utils.Location.with_range ->
unitval pp_ensures :
Stdlib.Format.formatter ->
formula Mopsa_utils.Location.with_range Mopsa_utils.Location.with_range ->
unitval pp_free :
Stdlib.Format.formatter ->
expr Mopsa_utils.Location.with_range Mopsa_utils.Location.with_range ->
unit