Module Mlang.Mpp_ast
type var
= string
type compute_name
= string
type callable
= string
type unop
=
|
Minus
type binop
=
|
And
|
Or
|
Gt
|
Gte
|
Lt
|
Lte
|
Eq
|
Neq
type expr
= expr_kind Pos.marked
and expr_kind
=
|
Constant of int
|
Variable of var
|
NbVarCategory of string Pos.marked list Pos.marked
|
ExistsAttrWith of string Pos.marked * float
|
ExistsAliases of string Pos.marked list
|
Unop of unop * expr
|
CallRules of string Pos.marked list Pos.marked * var Pos.marked list
|
CallChain of var Pos.marked list
|
CallVerifs of string Pos.marked list Pos.marked * expr
|
Call of callable Pos.marked * var Pos.marked list
|
Binop of expr * binop * expr
type stmt
= stmt_kind Pos.marked
and stmt_kind
=
|
Assign of var * expr
|
Conditional of expr * stmt list * stmt list
|
Delete of var
|
Expr of expr
|
Partition of string Pos.marked * float * stmt list
type compute
=
{
name : compute_name;
args : var list;
body : stmt list;
}
type program
= compute list