package p4spectec
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
P4-SpecTec: A mechanization toolchain for the P4 Programming Language
Install
dune-project
Dependency
Authors
Maintainers
Sources
v0.1.2.tar.gz
md5=1a3bc0a385fe1ecf403c019f49aa6de6
sha512=5d20b5821f33e2a3a5419b208606f27c01511994c2b3b1e1cdf4c077056dfd0aa81682af0720e1060ee2bfb0341918fcc4c53159820205a2bc32b725e5c1a714
doc/p4spectec.pass/Pass/Elaborate/Elab/index.html
Module Elaborate.Elab
module Mixfix = Domain.Mixfixmodule F = Formatval valid_tid : Lang.El.id -> boolval elab_iter : Lang.El.iter -> Lang.Il.iterval as_text_typ : Ctx.t -> Lang.Il.typ -> unit Attempt.attemptval as_iter_typ :
Ctx.t ->
Lang.Il.typ ->
(Lang.Il.typ * Lang.Il.iter) Attempt.attemptval as_tuple_typ : Ctx.t -> Lang.Il.typ -> Lang.Il.typ list Attempt.attemptval as_list_typ : Ctx.t -> Lang.Il.typ -> Lang.Il.typ Attempt.attemptval as_struct_typ :
Ctx.t ->
Lang.Il.typ ->
Lang.Il.typfield list Attempt.attemptval elab_plaintyp : Ctx.t -> Lang.El.plaintyp -> Lang.Il.typval elab_plaintyp' : Ctx.t -> Lang.El.plaintyp' -> Lang.Il.typ'val elab_nottyp : Ctx.t -> Lang.El.typ -> Lang.Il.nottypval elab_deftyp :
Ctx.t ->
Lang.El.id ->
Lang.El.tparam list ->
Lang.El.deftyp ->
Runtime.Type.Typdef.t * Lang.Il.deftypval elab_deftyp_plain :
Ctx.t ->
Lang.El.tparam list ->
Lang.El.plaintyp ->
Runtime.Type.Typdef.t * Lang.Il.deftypval elab_typfield : Ctx.t -> Lang.El.typfield -> Lang.Il.typfieldval elab_deftyp_struct :
Ctx.t ->
Util.Source.region ->
Lang.El.tparam list ->
Lang.El.typfield list ->
Runtime.Type.Typdef.t * Lang.Il.deftypval elab_typcase_plain : Ctx.t -> Lang.Il.typ -> Lang.Il.typcase listval elab_typcase :
Ctx.t ->
Lang.Il.typorigin ->
Lang.El.typcase ->
Lang.Il.typcase listval elab_deftyp_variant :
Ctx.t ->
Util.Source.region ->
Lang.El.id ->
Lang.El.tparam list ->
Lang.El.typcase list ->
Runtime.Type.Typdef.t * Lang.Il.deftypval fail_infer : Util.Source.region -> string -> 'a Attempt.attemptval infer_exp :
Ctx.t ->
Lang.El.exp ->
(Ctx.t * Lang.Il.exp * Lang.Il.typ) Attempt.attemptval infer_exp' :
Ctx.t ->
Util.Source.region ->
Lang.El.exp' ->
(Ctx.t * Lang.Il.exp' * Lang.Il.typ') Attempt.attemptval infer_exps :
Ctx.t ->
Lang.El.exp list ->
(Ctx.t * Lang.Il.exp list * Lang.Il.typ list) Attempt.attemptval infer_bool_exp :
Ctx.t ->
bool ->
(Ctx.t * Lang.Il.exp' * Lang.Il.typ') Attempt.attemptval infer_num_exp :
Ctx.t ->
Lang.Xl.Num.t ->
(Ctx.t * Lang.Il.exp' * Lang.Il.typ') Attempt.attemptval infer_text_exp :
Ctx.t ->
Lang.El.text ->
(Ctx.t * Lang.Il.exp' * Lang.Il.typ') Attempt.attemptval infer_var_exp :
Ctx.t ->
Lang.El.id ->
(Ctx.t * Lang.Il.exp' * Lang.Il.typ') Attempt.attemptval infer_unop :
Ctx.t ->
Util.Source.region ->
Lang.El.unop ->
Lang.Il.typ ->
Lang.Il.exp ->
(Lang.Il.optyp * Lang.Il.exp * Lang.Il.typ') Attempt.attemptval infer_unop_exp :
Ctx.t ->
Util.Source.region ->
Lang.El.unop ->
Lang.El.exp ->
(Ctx.t * Lang.Il.exp' * Lang.Il.typ') Attempt.attemptval infer_binop :
Ctx.t ->
Util.Source.region ->
Lang.El.binop ->
Lang.Il.typ ->
Lang.Il.exp ->
Lang.Il.typ ->
Lang.Il.exp ->
(Lang.Il.optyp * Lang.Il.exp * Lang.Il.exp * Lang.Il.typ') Attempt.attemptval infer_binop_exp :
Ctx.t ->
Util.Source.region ->
Lang.El.binop ->
Lang.El.exp ->
Lang.El.exp ->
(Ctx.t * Lang.Il.exp' * Lang.Il.typ') Attempt.attemptval infer_cmpop_exp_bool :
Ctx.t ->
Lang.Xl.Bool.cmpop ->
Lang.El.exp ->
Lang.El.exp ->
(Ctx.t * Lang.Il.exp' * Lang.Il.typ') Attempt.attemptval infer_cmpop_num :
Ctx.t ->
Util.Source.region ->
Lang.Xl.Num.cmpop ->
Lang.Il.typ ->
Lang.Il.exp ->
Lang.Il.typ ->
Lang.Il.exp ->
(Lang.Il.optyp * Lang.Il.exp * Lang.Il.exp) Attempt.attemptval infer_cmpop_exp_num :
Ctx.t ->
Util.Source.region ->
Lang.Xl.Num.cmpop ->
Lang.El.exp ->
Lang.El.exp ->
(Ctx.t * Lang.Il.exp' * Lang.Il.typ') Attempt.attemptval infer_cmpop_exp :
Ctx.t ->
Util.Source.region ->
Lang.El.cmpop ->
Lang.El.exp ->
Lang.El.exp ->
(Ctx.t * Lang.Il.exp' * Lang.Il.typ') Attempt.attemptval infer_arith_exp :
Ctx.t ->
Lang.El.exp ->
(Ctx.t * Lang.Il.exp' * Lang.Il.typ') Attempt.attemptval infer_list_exp :
Ctx.t ->
Util.Source.region ->
Lang.El.exp list ->
(Ctx.t * Lang.Il.exp' * Lang.Il.typ') Attempt.attemptval infer_cons_exp :
Ctx.t ->
Lang.El.exp ->
Lang.El.exp ->
(Ctx.t * Lang.Il.exp' * Lang.Il.typ') Attempt.attemptval infer_cat_exp :
Ctx.t ->
Lang.El.exp ->
Lang.El.exp ->
(Ctx.t * Lang.Il.exp' * Lang.Il.typ') Attempt.attemptval infer_idx_exp :
Ctx.t ->
Lang.El.exp ->
Lang.El.exp ->
(Ctx.t * Lang.Il.exp' * Lang.Il.typ') Attempt.attemptval infer_slice_exp :
Ctx.t ->
Lang.El.exp ->
Lang.El.exp ->
Lang.El.exp ->
(Ctx.t * Lang.Il.exp' * Lang.Il.typ') Attempt.attemptval infer_mem_exp :
Ctx.t ->
Lang.El.exp ->
Lang.El.exp ->
(Ctx.t * Lang.Il.exp' * Lang.Il.typ') Attempt.attemptval infer_dot_exp :
Ctx.t ->
Lang.El.exp ->
Lang.El.atom ->
(Ctx.t * Lang.Il.exp' * Lang.Il.typ') Attempt.attemptval infer_upd_exp :
Ctx.t ->
Lang.El.exp ->
Lang.El.path ->
Lang.El.exp ->
(Ctx.t * Lang.Il.exp' * Lang.Il.typ') Attempt.attemptval infer_len_exp :
Ctx.t ->
Lang.El.exp ->
(Ctx.t * Lang.Il.exp' * Lang.Il.typ') Attempt.attemptval infer_paren_exp :
Ctx.t ->
Lang.El.exp ->
(Ctx.t * Lang.Il.exp' * Lang.Il.typ') Attempt.attemptval infer_tuple_exp :
Ctx.t ->
Lang.El.exp list ->
(Ctx.t * Lang.Il.exp' * Lang.Il.typ') Attempt.attemptval infer_call_exp :
Ctx.t ->
Util.Source.region ->
Lang.El.id ->
Lang.El.targ list ->
Lang.El.arg list ->
(Ctx.t * Lang.Il.exp' * Lang.Il.typ') Attempt.attemptval infer_iter_exp :
Ctx.t ->
Lang.El.exp ->
Lang.El.iter ->
(Ctx.t * Lang.Il.exp' * Lang.Il.typ') Attempt.attemptval infer_sub_exp :
Ctx.t ->
Lang.El.exp ->
Lang.El.plaintyp ->
(Ctx.t * Lang.Il.exp' * Lang.Il.typ') Attempt.attemptval elab_exp :
Ctx.t ->
Lang.Il.typ ->
Lang.El.exp ->
(Ctx.t * Lang.Il.exp) Attempt.attemptval elab_exp' :
Ctx.t ->
Lang.Il.typ ->
Lang.El.exp ->
(Ctx.t * Lang.Il.exp) Attempt.attemptval elab_exps :
Ctx.t ->
Lang.Il.typ list ->
Lang.El.exp list ->
(Ctx.t * Lang.Il.exp list) Attempt.attemptval elab_exp_iter :
Ctx.t ->
Lang.Il.typ ->
Lang.Il.typ ->
Lang.Il.iter ->
Lang.El.exp ->
(Ctx.t * Lang.Il.exp) Attempt.attemptval fail_cast :
Util.Source.region ->
Lang.Il.typ ->
Lang.Il.typ ->
Lang.Il.exp Attempt.attemptval cast_exp :
Ctx.t ->
Lang.Il.typ ->
Lang.Il.typ ->
Lang.Il.exp ->
Lang.Il.exp Attempt.attemptval elab_exp_normal :
Ctx.t ->
Lang.Il.typ ->
Lang.El.exp ->
(Ctx.t * Lang.Il.exp) Attempt.attemptval elab_exp_wildcard :
Ctx.t ->
Util.Source.region ->
Lang.Il.typ ->
(Ctx.t * Lang.Il.exp) Attempt.attemptval fail_elab_plain :
Util.Source.region ->
string ->
(Ctx.t * Lang.Il.exp') Attempt.attemptval elab_exp_plain :
Ctx.t ->
Lang.Il.typ ->
Lang.El.exp ->
(Ctx.t * Lang.Il.exp) Attempt.attemptval elab_exp_plain' :
Ctx.t ->
Util.Source.region ->
Lang.Il.typ ->
Lang.El.exp' ->
(Ctx.t * Lang.Il.exp') Attempt.attemptval elab_eps_exp :
Ctx.t ->
Lang.Il.typ ->
(Ctx.t * Lang.Il.exp') Attempt.attemptval elab_list_exp_elementwise :
Ctx.t ->
Lang.Il.typ ->
Lang.El.exp list ->
(Ctx.t * Lang.Il.exp list) Attempt.attemptval elab_list_exp :
Ctx.t ->
Lang.Il.typ ->
Lang.El.exp list ->
(Ctx.t * Lang.Il.exp') Attempt.attemptval elab_cons_exp :
Ctx.t ->
Lang.Il.typ ->
Lang.El.exp ->
Lang.El.exp ->
(Ctx.t * Lang.Il.exp') Attempt.attemptval elab_cat_exp :
Ctx.t ->
Lang.Il.typ ->
Lang.El.exp ->
Lang.El.exp ->
(Ctx.t * Lang.Il.exp') Attempt.attemptval elab_tuple_exp :
Ctx.t ->
Lang.Il.typ ->
Lang.El.exp list ->
(Ctx.t * Lang.Il.exp') Attempt.attemptval elab_paren_exp :
Ctx.t ->
Lang.Il.typ ->
Lang.El.exp ->
(Ctx.t * Lang.Il.exp') Attempt.attemptval elab_iter_exp :
Ctx.t ->
Lang.Il.typ ->
Lang.El.exp ->
Lang.El.iter ->
(Ctx.t * Lang.Il.exp') Attempt.attemptval fail_elab_not :
Util.Source.region ->
string ->
(Ctx.t * Lang.Il.notexp) Attempt.attemptval elab_exp_not :
Ctx.t ->
Lang.Il.nottyp ->
Lang.El.exp ->
(Ctx.t * Lang.Il.notexp) Attempt.attemptval fail_elab_struct :
Util.Source.region ->
string ->
(Ctx.t * (Lang.Il.atom * Lang.Il.exp) list) Attempt.attemptval elab_expfields :
Ctx.t ->
Util.Source.region ->
Lang.Il.typfield list ->
(Lang.El.atom * Lang.El.exp) list ->
(Ctx.t * (Lang.Il.atom * Lang.Il.exp) list) Attempt.attemptval elab_exp_struct :
Ctx.t ->
Lang.Il.typ ->
Lang.Il.typfield list ->
Lang.El.exp ->
(Ctx.t * Lang.Il.exp) Attempt.attemptval elab_exp_struct' :
Ctx.t ->
Lang.Il.typfield list ->
Lang.El.exp ->
(Ctx.t * (Lang.Il.atom * Lang.Il.exp) list) Attempt.attemptval fail_elab_variant :
Util.Source.region ->
string ->
(Ctx.t * Lang.Il.exp) Attempt.attemptval elab_exp_variant :
Ctx.t ->
Lang.Il.typ ->
Lang.Il.typcase list ->
Lang.El.exp ->
(Ctx.t * Lang.Il.exp) Attempt.attemptval elab_path :
Ctx.t ->
Lang.Il.typ ->
Lang.El.path ->
(Ctx.t * Lang.Il.path * Lang.Il.typ) Attempt.attemptval elab_path' :
Ctx.t ->
Lang.Il.typ ->
Lang.El.path' ->
(Ctx.t * Lang.Il.path' * Lang.Il.typ') Attempt.attemptval elab_root_path :
Ctx.t ->
Lang.Il.typ ->
(Ctx.t * Lang.Il.path' * Lang.Il.typ') Attempt.attemptval elab_idx_path :
Ctx.t ->
Lang.Il.typ ->
Lang.El.path ->
Lang.El.exp ->
(Ctx.t * Lang.Il.path' * Lang.Il.typ') Attempt.attemptval elab_slice_path :
Ctx.t ->
Lang.Il.typ ->
Lang.El.path ->
Lang.El.exp ->
Lang.El.exp ->
(Ctx.t * Lang.Il.path' * Lang.Il.typ') Attempt.attemptval elab_dot_path :
Ctx.t ->
Lang.Il.typ ->
Lang.El.path ->
Lang.El.atom ->
(Ctx.t * Lang.Il.path' * Lang.Il.typ') Attempt.attemptval elab_param : Ctx.t -> Lang.El.param -> Lang.Il.paramval elab_arg :
?as_def:??? ->
Ctx.t ->
Lang.Il.param ->
Lang.El.arg ->
Ctx.t * Lang.Il.argval elab_args :
?as_def:??? ->
Util.Source.region ->
Ctx.t ->
Lang.Il.param list ->
Lang.El.arg list ->
Ctx.t * Lang.Il.arg listtype prem_internal = prem_internal' Util.Source.phraseval internalize_prem : Lang.Il.prem -> prem_internalval externalize_prem : prem_internal -> Lang.Il.prem optionval is_else_prem_internal : prem_internal -> boolval check_prems_internal : Util.Source.region -> prem_internal list -> unitval elab_prem : Ctx.t -> Lang.El.prem -> Ctx.t * prem_internalval elab_prem' : Ctx.t -> Lang.El.prem' -> Ctx.t * prem_internal'val elab_prems : Ctx.t -> Lang.El.prem list -> Ctx.t * prem_internal listval elab_var_prem : Ctx.t -> Lang.El.id -> Lang.El.plaintyp -> Ctx.tval elab_rule_prem :
Ctx.t ->
Lang.El.id ->
Lang.El.exp ->
Ctx.t * Lang.Il.prem'val elab_rule_not_prem :
Ctx.t ->
Lang.El.id ->
Lang.El.exp ->
Ctx.t * Lang.Il.prem'val elab_if_prem : Ctx.t -> Lang.El.exp -> Ctx.t * Lang.Il.prem'val elab_iter_prem :
Ctx.t ->
Lang.El.prem ->
Lang.El.iter ->
Ctx.t * Lang.Il.prem'val elab_debug_prem : Ctx.t -> Lang.El.exp -> Ctx.t * Lang.Il.prem'val is_else_rule_internal : rule_internal -> boolval elab_rule :
Ctx.t ->
Util.Source.region ->
Lang.El.id ->
Lang.Il.nottyp ->
Lang.El.exp ->
Lang.El.prem list ->
rule_internalval elab_rulegroup :
Ctx.t ->
Util.Source.region ->
Lang.El.id ->
Lang.El.id ->
Lang.El.rule list ->
rulegroup_internalval elab_clause :
Ctx.t ->
Util.Source.region ->
Lang.El.id ->
Lang.El.tparam list ->
Lang.El.arg list ->
Lang.El.exp ->
Lang.El.prem list ->
clause_internalval elab_def : Ctx.t -> Lang.El.def -> Ctx.t * Lang.Il.def optionval elab_defs : Ctx.t -> Lang.El.def list -> Ctx.t * Lang.Il.def listval elab_extern_syn_def :
Ctx.t ->
Util.Source.region ->
Lang.El.id ->
Lang.El.hint list ->
Ctx.t * Lang.Il.defval elab_syn_def : Ctx.t -> (Lang.El.id * Lang.El.tparam list) list -> Ctx.tval elab_typ_def :
Ctx.t ->
Lang.El.id ->
Lang.El.tparam list ->
Lang.El.deftyp ->
Lang.El.hint list ->
Ctx.t * Lang.Il.defval elab_var_def :
Ctx.t ->
Lang.El.id ->
Lang.El.plaintyp ->
Lang.El.hint list ->
Ctx.t * Lang.Il.defval fetch_rel_input_hint :
Util.Source.region ->
Lang.Il.nottyp ->
Lang.El.hint list ->
Lang.Hints.Input.tval elab_extern_rel_def :
Ctx.t ->
Util.Source.region ->
Lang.El.id ->
Lang.El.nottyp ->
Lang.El.hint list ->
Ctx.t * Lang.Il.defval elab_rel_def :
Ctx.t ->
Util.Source.region ->
Lang.El.id ->
Lang.El.nottyp ->
Lang.El.hint list ->
Ctx.t * Lang.Il.defval elab_rulegroup_def :
Ctx.t ->
Util.Source.region ->
Lang.El.id ->
Lang.El.id ->
Lang.El.rule list ->
Ctx.tval elab_extern_dec_def :
Ctx.t ->
Util.Source.region ->
Lang.El.id ->
Lang.El.tparam list ->
Lang.El.param list ->
Lang.El.plaintyp ->
Lang.El.hint list ->
Ctx.t * Lang.Il.defval elab_builtin_dec_def :
Ctx.t ->
Util.Source.region ->
Lang.El.id ->
Lang.El.tparam list ->
Lang.El.param list ->
Lang.El.plaintyp ->
Lang.El.hint list ->
Ctx.t * Lang.Il.defval elab_table_dec_def :
Ctx.t ->
Util.Source.region ->
Lang.El.id ->
Lang.El.param list ->
Lang.El.plaintyp ->
Lang.El.hint list ->
Ctx.t * Lang.Il.defval elab_func_dec_def :
Ctx.t ->
Util.Source.region ->
Lang.El.id ->
Lang.El.tparam list ->
Lang.El.param list ->
Lang.El.plaintyp ->
Lang.El.hint list ->
Ctx.t * Lang.Il.defval elab_tablerow :
Ctx.t ->
Util.Source.region ->
Lang.El.id ->
Lang.Il.param list ->
Lang.Il.typ ->
Lang.El.tablerow ->
Lang.Il.tablerowval elab_tablerows :
Ctx.t ->
Util.Source.region ->
Lang.El.id ->
Lang.Il.param list ->
Lang.Il.typ ->
Lang.El.tablerow list ->
Lang.Il.tablerow listval elab_table_def_def :
Ctx.t ->
Util.Source.region ->
Lang.El.id ->
Lang.El.tablerow list ->
Ctx.tval elab_func_def :
Ctx.t ->
Util.Source.region ->
Lang.El.id ->
Lang.El.tparam list ->
Lang.El.arg list ->
Lang.El.exp ->
Lang.El.prem list ->
Ctx.tval populate_typs : Ctx.t -> unitval populate_rule : Ctx.t -> Lang.Il.def -> Lang.Il.defval populate_rules : Ctx.t -> Lang.Il.spec -> Lang.Il.specval populate_clause : Ctx.t -> Lang.Il.def -> Lang.Il.defval populate_clauses : Ctx.t -> Lang.Il.spec -> Lang.Il.specval elab_spec : Lang.El.spec -> Lang.Il.spec sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>