Module Mlang.Mpp_ir
type scope
=
|
Input
|
Output
type scoped_var
=
|
Local of string
|
Mbased of Mir.Variable.t * scope
type mpp_compute_name
= string
type unop
=
|
Minus
type binop
= Mpp_ast.binop
type mpp_expr
= mpp_expr_kind Pos.marked
and mpp_expr_kind
=
|
Constant of int
|
Variable of scoped_var
|
Unop of unop * mpp_expr
|
Call of mpp_callable * scoped_var list
|
Binop of mpp_expr * binop * mpp_expr
and mpp_callable
=
|
Rules of Mlang.Mast.DomainId.t
|
Chain of Mast.chaining
|
Verifs of Mlang.Mast.DomainId.t * mpp_expr
|
NbVarCat of Mlang.Mir.CatVarSet.t
|
ExistsAttrWithVal of string Pos.marked * float
|
ExistsAliases of Pos.t Mlang.StrMap.t
|
MppFunction of mpp_compute_name
|
Present
|
Abs
|
Cast
type mpp_stmt
= mpp_stmt_kind Pos.marked
and mpp_stmt_kind
=
|
Assign of scoped_var * mpp_expr
|
Conditional of mpp_expr * mpp_stmt list * mpp_stmt list
|
Delete of scoped_var
|
Expr of mpp_expr
|
Partition of string Pos.marked * float * mpp_stmt list
type mpp_compute
=
{
name : mpp_compute_name;
args : scoped_var list;
body : mpp_stmt list;
}
type mpp_program
= mpp_compute list