package libsail
Sail is a language for describing the instruction semantics of processors
Install
Dune Dependency
Authors
Maintainers
Sources
sail-0.18.tbz
sha256=fcdbda14f1ed59fa30e23da34abe02547416e3c2a83fbeee5606e100a5edcf35
sha512=0bbd72706cb4c1ddf13ea1c42004ec498aa9db8a301020f0dd3d8ac582d1bed8a48c7a825b8e3e6f629279f1f900384f6966608e1cd59e7b1217776413c7fa27
doc/libsail/Libsail/Parse_ast/index.html
Module Libsail.Parse_ast
Source
Source
type l =
| Unknown
| Unique of int * l
| Generated of l
| Hint of string * l * l
| Range of Lexing.position * Lexing.position
We put the attribute data type in it's own module, so other modules can import it unqualified. The parse AST and the main AST share this type, so modules that wouldn't normally import this module will want to use it.
Source
type atyp_aux =
| ATyp_id of id
| ATyp_var of kid
| ATyp_lit of lit
| ATyp_nset of Big_int.num list
| ATyp_in of atyp * atyp
| ATyp_times of atyp * atyp
| ATyp_sum of atyp * atyp
| ATyp_minus of atyp * atyp
| ATyp_exp of atyp
| ATyp_neg of atyp
| ATyp_infix of (atyp infix_token * Lexing.position * Lexing.position) list
| ATyp_inc
| ATyp_dec
| ATyp_set of id list
| ATyp_fn of atyp * atyp * atyp
| ATyp_bidir of atyp * atyp * atyp
| ATyp_wild
| ATyp_tuple of atyp list
| ATyp_app of id * atyp list
| ATyp_if of atyp * atyp * atyp
| ATyp_exist of kinded_id list * atyp * atyp
| ATyp_parens of atyp
Source
type pat_aux =
| P_lit of lit
| P_wild
| P_typ of atyp * pat
| P_id of id
| P_var of pat * atyp
| P_app of id * pat list
| P_vector of pat list
| P_vector_concat of pat list
| P_vector_subrange of id * Big_int.num * Big_int.num
| P_tuple of pat list
| P_list of pat list
| P_cons of pat * pat
| P_string_append of pat list
| P_struct of fpat list
| P_attribute of string * Attribute_data.attribute_data option * pat
Source
and exp_aux =
| E_block of exp list
| E_id of id
| E_ref of id
| E_deref of exp
| E_lit of lit
| E_typ of atyp * exp
| E_app of id * exp list
| E_app_infix of exp * id * exp
| E_infix of (exp infix_token * Lexing.position * Lexing.position) list
| E_tuple of exp list
| E_if of exp * exp * exp * if_loc
| E_loop of loop * measure * exp * exp
| E_for of id * exp * exp * exp * atyp * exp
| E_vector of exp list
| E_vector_access of exp * exp
| E_vector_subrange of exp * exp * exp
| E_vector_update of exp * exp * exp
| E_vector_update_subrange of exp * exp * exp * exp
| E_vector_append of exp * exp
| E_list of exp list
| E_cons of exp * exp
| E_struct of exp list
| E_struct_update of exp * exp list
| E_field of exp * id
| E_match of exp * pexp list
| E_let of letbind * exp
| E_assign of exp * exp
| E_sizeof of atyp
| E_constraint of atyp
| E_exit of exp
| E_throw of exp
| E_try of exp * pexp list
| E_return of exp
| E_assert of exp * exp
| E_var of exp * exp * exp
| E_attribute of string * Attribute_data.attribute_data option * exp
| E_internal_plet of pat * exp * exp
| E_internal_return of exp
| E_internal_assume of atyp * exp
Source
and type_union_aux =
| Tu_private of type_union
| Tu_attribute of string * Attribute_data.attribute_data option * type_union
| Tu_doc of string * type_union
| Tu_ty_id of atyp * id
| Tu_ty_anon_rec of (atyp * id) list * id
Source
type index_range_aux =
| BF_single of atyp
| BF_range of atyp * atyp
| BF_concat of index_range * index_range
Source
type mpat_aux =
| MP_lit of lit
| MP_id of id
| MP_app of id * mpat list
| MP_vector of mpat list
| MP_vector_concat of mpat list
| MP_vector_subrange of id * Big_int.num * Big_int.num
| MP_tuple of mpat list
| MP_list of mpat list
| MP_cons of mpat * mpat
| MP_string_append of mpat list
| MP_typ of mpat * atyp
| MP_as of mpat * id
| MP_struct of (id * mpat) list
Source
type scattered_def_aux =
| SD_function of rec_opt * tannot_opt * effect_opt * id
| SD_funcl of funcl
| SD_enum of id
| SD_enumcl of id * id
| SD_variant of id * typquant
| SD_unioncl of id * type_union
| SD_mapping of id * tannot_opt
| SD_mapcl of id * mapcl
| SD_end of id
Source
type def_aux =
| DEF_type of type_def
| DEF_constraint of atyp
| DEF_fundef of fundef
| DEF_mapdef of mapdef
| DEF_impl of funcl
| DEF_let of letbind
| DEF_overload of id * id list
| DEF_fixity of prec * Big_int.num * id
| DEF_val of val_spec
| DEF_outcome of outcome_spec * def list
| DEF_instantiation of id * subst list
| DEF_default of default_typing_spec
| DEF_scattered of scattered_def
| DEF_measure of id * pat * exp
| DEF_loop_measures of id * loop_measure list
| DEF_register of dec_spec
| DEF_pragma of string * string * int
| DEF_private of def
| DEF_attribute of string * Attribute_data.attribute_data option * def
| DEF_doc of string * def
| DEF_internal_mutrec of fundef list
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>