Perk.Ast
Abstract Syntax Tree of a Perk program.
val pp_annotated :
'a. (Ppx_deriving_runtime.Format.formatter ->
'a ->
Ppx_deriving_runtime.unit) ->
Ppx_deriving_runtime.Format.formatter ->
'a annotated ->
Ppx_deriving_runtime.unit
val show_annotated :
'a. (Ppx_deriving_runtime.Format.formatter ->
'a ->
Ppx_deriving_runtime.unit) ->
'a annotated ->
Ppx_deriving_runtime.string
val (@@) : 'a annotated -> Location.location
val ($) : 'a annotated -> 'a
val annotate : 'a -> Location.location -> 'a annotated
val annotate_2 : Location.location -> 'a -> 'a annotated
val annotate_code :
'a ->
(Stdlib.Lexing.position * Stdlib.Lexing.position) ->
string ->
'a annotated
val annotate_2_code :
string ->
(Stdlib.Lexing.position * Stdlib.Lexing.position) ->
'a ->
'a annotated
val annotate_dummy : 'a -> 'a annotated
val pp_perkident :
Ppx_deriving_runtime.Format.formatter ->
perkident ->
Ppx_deriving_runtime.unit
val show_perkident : perkident -> Ppx_deriving_runtime.string
val pp_perktype_attribute :
Ppx_deriving_runtime.Format.formatter ->
perktype_attribute ->
Ppx_deriving_runtime.unit
val show_perktype_attribute : perktype_attribute -> Ppx_deriving_runtime.string
val equal_perktype_attribute :
perktype_attribute ->
perktype_attribute ->
Ppx_deriving_runtime.bool
val pp_perktype_qualifier :
Ppx_deriving_runtime.Format.formatter ->
perktype_qualifier ->
Ppx_deriving_runtime.unit
val show_perktype_qualifier : perktype_qualifier -> Ppx_deriving_runtime.string
val equal_perktype_qualifier :
perktype_qualifier ->
perktype_qualifier ->
Ppx_deriving_runtime.bool
type perktype_partial =
| Basetype of string
| Funtype of perktype list * perktype
types of args, return type
*)| Lambdatype of perktype list * perktype * perkvardesc list
| Pointertype of perktype
| Arraytype of perktype * int option
| Structtype of string * perkdef list
| ArcheType of perkident * perkdecl list
| Modeltype of perkident
* perkident list
* (perktype_attribute list * perkdecl) list
* perktype list
* perkident list
| Optiontype of perktype
| Tupletype of perktype list
| ArchetypeSum of perktype list
| Vararg
| Infer
and perktype =
perktype_attribute list * perktype_partial * perktype_qualifier list
and perkdecl = perkvardesc
and perkfundef = perktype * perkident * perkvardesc list * command_a
and expr_t =
| Nothing of perktype
| Something of expr_a * perktype
| Bool of bool
| Int of int
| Float of float
| Char of char
| String of string
| Var of perkident
| Apply of expr_a * expr_a list * perktype option
| Binop of binop * expr_a * expr_a
| PreUnop of preunop * expr_a
| Lambda of perktype * perkvardesc list * command_a * perkvardesc list
| PostUnop of postunop * expr_a
| Parenthesised of expr_a
| Subscript of expr_a * expr_a
| TupleSubscript of expr_a * int
| Summon of perkident * expr_a list
| Make of perkident * (perkident * expr_a) list
| Access of expr_a * perkident * perktype option * perktype option
| Tuple of expr_a list * perktype option
| As of perkident * perktype list * perktype option
| Array of expr_a list
Cast ((from_type, to_type), expression)
*)| Cast of perktype * perktype * expr_a
| IfThenElseExpr of expr_a * expr_a * expr_a
and command_t =
| InlineCCmd of string
| DefCmd of perkdef * perktype option
| Block of command_a
| Assign of expr_a * expr_a * perktype option * perktype option
| Seq of command_a * command_a
| IfThenElse of expr_a * command_a * command_a
| Whiledo of expr_a * command_a
| Dowhile of expr_a * command_a
| For of command_a * expr_a * command_a * command_a
| Expr of expr_a
| Switch of expr_a * (expr_a * command_a) list
| Skip
| Banish of perkident
| Return of expr_a option
| Break
| Continue
and topleveldef_t =
| InlineC of string
| Import of string
| Open of string
| Extern of perkident * perktype
| Def of perkdef * perktype option
| Fundef of perkfundef
| Archetype of perkident * declorfun_a list
| Model of perkident * perkident list * deforfun_a list
| Struct of perkident * perkdef list
and deforfun_t =
| DefVar of perktype_attribute list * perkdef
| DefFun of perktype_attribute list * perkfundef
and topleveldef_a = topleveldef_t annotated
and deforfun_a = deforfun_t annotated
and declorfun_a = declorfun_t annotated
val pp_perktype_partial :
Ppx_deriving_runtime.Format.formatter ->
perktype_partial ->
Ppx_deriving_runtime.unit
val show_perktype_partial : perktype_partial -> Ppx_deriving_runtime.string
val pp_perktype :
Ppx_deriving_runtime.Format.formatter ->
perktype ->
Ppx_deriving_runtime.unit
val show_perktype : perktype -> Ppx_deriving_runtime.string
val pp_perkvardesc :
Ppx_deriving_runtime.Format.formatter ->
perkdecl ->
Ppx_deriving_runtime.unit
val show_perkvardesc : perkvardesc -> Ppx_deriving_runtime.string
val pp_perkdecl :
Ppx_deriving_runtime.Format.formatter ->
perkdecl ->
Ppx_deriving_runtime.unit
val show_perkdecl : perkdecl -> Ppx_deriving_runtime.string
val pp_binop :
Ppx_deriving_runtime.Format.formatter ->
binop ->
Ppx_deriving_runtime.unit
val show_binop : binop -> Ppx_deriving_runtime.string
val pp_preunop :
Ppx_deriving_runtime.Format.formatter ->
preunop ->
Ppx_deriving_runtime.unit
val show_preunop : preunop -> Ppx_deriving_runtime.string
val pp_postunop :
Ppx_deriving_runtime.Format.formatter ->
postunop ->
Ppx_deriving_runtime.unit
val show_postunop : postunop -> Ppx_deriving_runtime.string
val pp_perkdef :
Ppx_deriving_runtime.Format.formatter ->
perkdef ->
Ppx_deriving_runtime.unit
val show_perkdef : perkdef -> Ppx_deriving_runtime.string
val pp_perkfundef :
Ppx_deriving_runtime.Format.formatter ->
perkfundef ->
Ppx_deriving_runtime.unit
val show_perkfundef : perkfundef -> Ppx_deriving_runtime.string
val pp_expr_t :
Ppx_deriving_runtime.Format.formatter ->
expr_t ->
Ppx_deriving_runtime.unit
val show_expr_t : expr_t -> Ppx_deriving_runtime.string
val pp_command_t :
Ppx_deriving_runtime.Format.formatter ->
command_t ->
Ppx_deriving_runtime.unit
val show_command_t : command_t -> Ppx_deriving_runtime.string
val pp_topleveldef_t :
Ppx_deriving_runtime.Format.formatter ->
topleveldef_t ->
Ppx_deriving_runtime.unit
val show_topleveldef_t : topleveldef_t -> Ppx_deriving_runtime.string
val pp_deforfun_t :
Ppx_deriving_runtime.Format.formatter ->
deforfun_t ->
Ppx_deriving_runtime.unit
val show_deforfun_t : deforfun_t -> Ppx_deriving_runtime.string
val pp_declorfun_t :
Ppx_deriving_runtime.Format.formatter ->
declorfun_t ->
Ppx_deriving_runtime.unit
val show_declorfun_t : declorfun_t -> Ppx_deriving_runtime.string
val pp_expr_a :
Ppx_deriving_runtime.Format.formatter ->
expr_a ->
Ppx_deriving_runtime.unit
val show_expr_a : expr_a -> Ppx_deriving_runtime.string
val pp_command_a :
Ppx_deriving_runtime.Format.formatter ->
command_a ->
Ppx_deriving_runtime.unit
val show_command_a : command_a -> Ppx_deriving_runtime.string
val pp_topleveldef_a :
Ppx_deriving_runtime.Format.formatter ->
topleveldef_a ->
Ppx_deriving_runtime.unit
val show_topleveldef_a : topleveldef_a -> Ppx_deriving_runtime.string
val pp_deforfun_a :
Ppx_deriving_runtime.Format.formatter ->
deforfun_a ->
Ppx_deriving_runtime.unit
val show_deforfun_a : deforfun_a -> Ppx_deriving_runtime.string
val pp_declorfun_a :
Ppx_deriving_runtime.Format.formatter ->
declorfun_a ->
Ppx_deriving_runtime.unit
val show_declorfun_a : declorfun_a -> Ppx_deriving_runtime.string
val equal_perktype_partial :
perktype_partial ->
perktype_partial ->
Ppx_deriving_runtime.bool
val equal_perkvardesc : perkvardesc -> perkdecl -> Ppx_deriving_runtime.bool
val equal_perkfundef : perkfundef -> perkfundef -> Ppx_deriving_runtime.bool
val equal_topleveldef_t :
topleveldef_t ->
topleveldef_t ->
Ppx_deriving_runtime.bool
val equal_deforfun_t : deforfun_t -> deforfun_t -> Ppx_deriving_runtime.bool
val equal_declorfun_t : declorfun_t -> declorfun_t -> Ppx_deriving_runtime.bool
val equal_topleveldef_a :
topleveldef_a ->
topleveldef_a ->
Ppx_deriving_runtime.bool
val equal_deforfun_a : deforfun_a -> deforfun_a -> Ppx_deriving_runtime.bool
val equal_declorfun_a : declorfun_a -> declorfun_a -> Ppx_deriving_runtime.bool