package p4spectec

  1. Overview
  2. Docs
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.lang/Lang/El/index.html

Module Lang.El

type num = Xl.Num.t
val num_to_yojson : num -> Yojson.Safe.t
type text = string
val text_to_yojson : text -> Yojson.Safe.t
and id' = string
val id_to_yojson : id -> Yojson.Safe.t
val id'_to_yojson : id' -> Yojson.Safe.t
val atom_to_yojson : atom -> Yojson.Safe.t
type iter =
  1. | Opt
  2. | List
and typ =
  1. | PlainT of plaintyp
  2. | NotationT of nottyp
and plaintyp' =
  1. | BoolT
  2. | NumT of Xl.Num.typ
  3. | TextT
  4. | VarT of id * targ list
  5. | ParenT of plaintyp
  6. | TupleT of plaintyp list
  7. | IterT of plaintyp * iter
and nottyp' =
  1. | AtomT of atom
  2. | SeqT of typ list
  3. | InfixT of typ * atom * typ
  4. | BrackT of atom * typ * atom
and deftyp' =
  1. | PlainTD of plaintyp
  2. | StructTD of typfield list
  3. | VariantTD of typcase list
and typfield = atom * plaintyp * hint list
and typcase = typ * hint list
and numop = [
  1. | `DecOp
  2. | `HexOp
]
and unop = [
  1. | Xl.Bool.unop
  2. | Xl.Num.unop
]
and binop = [
  1. | Xl.Bool.binop
  2. | Xl.Num.binop
]
and cmpop = [
  1. | Xl.Bool.cmpop
  2. | Xl.Num.cmpop
]
and exp' =
  1. | BoolE of bool
  2. | NumE of numop * num
  3. | TextE of text
  4. | VarE of id
  5. | UnE of unop * exp
  6. | BinE of exp * binop * exp
  7. | CmpE of exp * cmpop * exp
  8. | ArithE of exp
  9. | EpsE
  10. | ListE of exp list
  11. | ConsE of exp * exp
  12. | CatE of exp * exp
  13. | IdxE of exp * exp
  14. | SliceE of exp * exp * exp
  15. | LenE of exp
  16. | MemE of exp * exp
  17. | StrE of (atom * exp) list
  18. | DotE of exp * atom
  19. | UpdE of exp * path * exp
  20. | ParenE of exp
  21. | TupleE of exp list
  22. | CallE of id * targ list * arg list
  23. | IterE of exp * iter
  24. | SubE of exp * plaintyp
  25. | AtomE of atom
  26. | SeqE of exp list
  27. | InfixE of exp * atom * exp
  28. | BrackE of atom * exp * atom
  29. | HoleE of [ `Num of int | `Next | `Rest | `None ]
  30. | FuseE of exp * exp
  31. | UnparenE of exp
  32. | LatexE of string
and path' =
  1. | RootP
  2. | IdxP of path * exp
  3. | SliceP of path * exp * exp
  4. | DotP of path * atom
and param' =
  1. | ExpP of plaintyp
  2. | DefP of id * tparam list * param list * plaintyp
and tparam' = id'
and arg' =
  1. | ExpA of exp
  2. | DefA of id
and targ' = plaintyp'
and prem' =
  1. | VarPr of id * plaintyp
  2. | RulePr of id * exp
  3. | RuleNotPr of id * exp
  4. | IfPr of exp
  5. | ElsePr
  6. | IterPr of prem * iter
  7. | DebugPr of exp
and hint = {
  1. hintid : id;
  2. hintexp : exp;
}
and rule' = id * id * exp * prem list
and tablerow' = exp * exp
val iter_to_yojson : iter -> Yojson.Safe.t
val typ_to_yojson : typ -> Yojson.Safe.t
val plaintyp_to_yojson : plaintyp -> Yojson.Safe.t
val plaintyp'_to_yojson : plaintyp' -> Yojson.Safe.t
val nottyp_to_yojson : nottyp -> Yojson.Safe.t
val nottyp'_to_yojson : nottyp' -> Yojson.Safe.t
val deftyp_to_yojson : deftyp -> Yojson.Safe.t
val deftyp'_to_yojson : deftyp' -> Yojson.Safe.t
val typfield_to_yojson : typfield -> Yojson.Safe.t
val typcase_to_yojson : typcase -> Yojson.Safe.t
val numop_to_yojson : numop -> Yojson.Safe.t
val unop_to_yojson : unop -> Yojson.Safe.t
val binop_to_yojson : binop -> Yojson.Safe.t
val cmpop_to_yojson : cmpop -> Yojson.Safe.t
val exp_to_yojson : exp -> Yojson.Safe.t
val exp'_to_yojson : exp' -> Yojson.Safe.t
val path_to_yojson : path -> Yojson.Safe.t
val path'_to_yojson : path' -> Yojson.Safe.t
val param_to_yojson : param -> Yojson.Safe.t
val param'_to_yojson : param' -> Yojson.Safe.t
val tparam_to_yojson : tparam -> Yojson.Safe.t
val tparam'_to_yojson : tparam' -> Yojson.Safe.t
val arg_to_yojson : arg -> Yojson.Safe.t
val arg'_to_yojson : arg' -> Yojson.Safe.t
val targ_to_yojson : targ -> Yojson.Safe.t
val targ'_to_yojson : targ' -> Yojson.Safe.t
val prem_to_yojson : prem -> Yojson.Safe.t
val prem'_to_yojson : prem' -> Yojson.Safe.t
val hint_to_yojson : hint -> Yojson.Safe.t
val rule_to_yojson : rule -> Yojson.Safe.t
val rule'_to_yojson : rule' -> Yojson.Safe.t
val tablerow_to_yojson : tablerow -> Yojson.Safe.t
val tablerow'_to_yojson : tablerow' -> Yojson.Safe.t
and def' =
  1. | ExternSynD of id * hint list
  2. | SynD of (id * tparam list) list
  3. | TypD of id * tparam list * deftyp * hint list
  4. | VarD of id * plaintyp * hint list
  5. | ExternRelD of id * nottyp * hint list
  6. | RelD of id * nottyp * hint list
  7. | RuleGroupD of id * id * rule list
  8. | ExternDecD of id * tparam list * param list * plaintyp * hint list
  9. | BuiltinDecD of id * tparam list * param list * plaintyp * hint list
  10. | TableDecD of id * param list * plaintyp * hint list
  11. | FuncDecD of id * tparam list * param list * plaintyp * hint list
  12. | TableDefD of id * tablerow list
  13. | FuncDefD of id * tparam list * arg list * exp * prem list
  14. | SepD
type spec = def list
module Free : sig ... end
module Print : sig ... end
module Render : sig ... end