package libsail
Module Libsail.AstSource
Source
type 'a def_annot = {doc_comment : string option;attrs : (l * string * attribute_data option) list;visibility : visibility;loc : l;env : 'a;
}Source
and n_constraint_aux = | NC_equal of typ_arg * typ_arg| NC_not_equal of typ_arg * typ_arg| NC_ge of nexp * nexp| NC_gt of nexp * nexp| NC_le of nexp * nexp| NC_lt of nexp * nexp| NC_set of nexp * Nat_big_num.num list| NC_or of n_constraint * n_constraint| NC_and of n_constraint * n_constraint| NC_app of id * typ_arg list| NC_id of id| NC_var of kid| NC_true| NC_false
Source
type 'a pat_aux = | P_lit of lit| P_wild| P_or of 'a pat * 'a pat| P_not of 'a pat| P_as of 'a pat * id| P_typ of typ * 'a pat| P_id of id| P_var of 'a pat * typ_pat| P_app of id * 'a pat list| P_vector of 'a pat list| P_vector_concat of 'a pat list| P_vector_subrange of id * Nat_big_num.num * Nat_big_num.num| P_tuple of 'a pat list| P_list of 'a pat list| P_cons of 'a pat * 'a pat| P_string_append of 'a pat list| P_struct of (id * 'a pat) list * field_pat_wildcard
Source
and 'a exp_aux = | E_block of 'a exp list| E_id of id| E_lit of lit| E_typ of typ * 'a exp| E_app of id * 'a exp list| E_app_infix of 'a exp * id * 'a exp| E_tuple of 'a exp list| E_if of 'a exp * 'a exp * 'a exp| E_loop of loop * 'a internal_loop_measure * 'a exp * 'a exp| E_for of id * 'a exp * 'a exp * 'a exp * order * 'a exp| E_vector of 'a exp list| E_vector_access of 'a exp * 'a exp| E_vector_subrange of 'a exp * 'a exp * 'a exp| E_vector_update of 'a exp * 'a exp * 'a exp| E_vector_update_subrange of 'a exp * 'a exp * 'a exp * 'a exp| E_vector_append of 'a exp * 'a exp| E_list of 'a exp list| E_cons of 'a exp * 'a exp| E_struct of 'a fexp list| E_struct_update of 'a exp * 'a fexp list| E_field of 'a exp * id| E_match of 'a exp * 'a pexp list| E_let of 'a letbind * 'a exp| E_assign of 'a lexp * 'a exp| E_sizeof of nexp| E_return of 'a exp| E_exit of 'a exp| E_ref of id| E_throw of 'a exp| E_try of 'a exp * 'a pexp list| E_assert of 'a exp * 'a exp| E_var of 'a lexp * 'a exp * 'a exp| E_internal_plet of 'a pat * 'a exp * 'a exp| E_internal_return of 'a exp| E_internal_value of Value.value| E_internal_assume of n_constraint * 'a exp| E_constraint of n_constraint
Source
type 'a mpat_aux = | MP_lit of lit| MP_id of id| MP_app of id * 'a mpat list| MP_vector of 'a mpat list| MP_vector_concat of 'a mpat list| MP_vector_subrange of id * Nat_big_num.num * Nat_big_num.num| MP_tuple of 'a mpat list| MP_list of 'a mpat list| MP_cons of 'a mpat * 'a mpat| MP_string_append of 'a mpat list| MP_typ of 'a mpat * typ| MP_as of 'a mpat * id| MP_struct of (id * 'a mpat) list
Source
type index_range_aux = | BF_single of nexp| BF_range of nexp * nexp| BF_concat of index_range * index_range
Source
type 'a scattered_def_aux = | SD_function of 'a rec_opt * tannot_opt * id| SD_funcl of 'a funcl| SD_variant of id * typquant| SD_unioncl of id * type_union| SD_internal_unioncl_record of id * id * typquant * (typ * id) list| SD_mapping of id * tannot_opt| SD_mapcl of id * 'a mapcl| SD_enum of id| SD_enumcl of id * id| SD_end of id
Source
type ('a, 'b) def_aux = | DEF_type of 'a type_def| DEF_constraint of n_constraint| DEF_fundef of 'a fundef| DEF_mapdef of 'a mapdef| DEF_impl of 'a funcl| DEF_let of 'a letbind| DEF_val of 'a val_spec| DEF_outcome of outcome_spec * ('a, 'b) def list| DEF_instantiation of 'a instantiation_spec * subst list| DEF_fixity of prec * Nat_big_num.num * id| DEF_overload of id * id list| DEF_default of default_spec| DEF_scattered of 'a scattered_def| DEF_measure of id * 'a pat * 'a exp| DEF_loop_measures of id * 'a loop_measure list| DEF_register of 'a dec_spec| DEF_internal_mutrec of 'a fundef list| DEF_pragma of string * string * l