package catala
Compiler and library for the literate programming language for tax code specification
Install
dune-project
Dependency
Authors
Maintainers
Sources
1.0.0-alpha.tar.gz
md5=2615968670ac21b1d00386a9b04b3843
sha512=eff292fdd75012f26ce7b17020f5a8374eef37cd4dd6ba60338dfbe89fbcad3443d1b409e44c182b740da9f58dff7e76dcb8ddefe47f9b2b160666d1c6930143
doc/catala.scalc/Scalc/Ast/index.html
Module Scalc.Ast
Source
Source
and naked_expr =
| EVar of VarName.t
| EFunc of FuncName.t
| EStruct of {
fields : expr Shared_ast.StructField.Map.t;
name : Shared_ast.StructName.t;
}
| EStructFieldAccess of {
e1 : expr;
field : Shared_ast.StructField.t;
name : Shared_ast.StructName.t;
}
| ETuple of expr list
| ETupleAccess of {
e1 : expr;
index : int;
typ : Shared_ast.typ;
}
| EInj of {
e1 : expr;
cons : Shared_ast.EnumConstructor.t;
name : Shared_ast.EnumName.t;
expr_typ : Shared_ast.typ;
}
| EArray of expr list
| ELit of Shared_ast.lit
| EPosLit
| EApp of {
f : expr;
args : expr list;
typ : Shared_ast.typ;
poly : bool;
}
(*
*)typ
is the return type ;poly
indicates if the function return is polymorphic (in which case the return value might need a cast)| EAppOp of {
op : operator Catala_utils.Mark.pos;
args : expr list;
tys : Shared_ast.typ list;
}
| EExternal of {
modname : VarName.t Catala_utils.Mark.pos;
name : string Catala_utils.Mark.pos;
}
Source
type stmt =
| SInnerFuncDef of {
name : VarName.t Catala_utils.Mark.pos;
func : func;
}
| SLocalDecl of {
name : VarName.t Catala_utils.Mark.pos;
typ : Shared_ast.typ;
}
| SLocalInit of {
name : VarName.t Catala_utils.Mark.pos;
typ : Shared_ast.typ;
expr : expr;
}
| SLocalDef of {
name : VarName.t Catala_utils.Mark.pos;
typ : Shared_ast.typ;
expr : expr;
}
| SFatalError of {
pos_expr : expr;
error : Catala_runtime.error;
}
(*
*)pos_expr
here is the position reified into an expression| SIfThenElse of {
}
| SSwitch of {
switch_var : VarName.t;
switch_var_typ : Shared_ast.typ;
enum_name : Shared_ast.EnumName.t;
switch_cases : switch_case list;
}
| SReturn of expr
| SAssert of {
}
(*
*)pos_expr
here is the position reified into an expression| SSpecialOp of special_operator
Source
and switch_case = {
case_block : block;
payload_var_name : VarName.t;
payload_var_typ : Shared_ast.typ;
}
Source
and func = {
func_params : (VarName.t Catala_utils.Mark.pos * Shared_ast.typ) list;
func_body : block;
func_return_typ : Shared_ast.typ;
}
Source
type scope_body = {
scope_body_name : Shared_ast.ScopeName.t;
scope_body_var : FuncName.t;
scope_body_func : func;
scope_body_visibility : Shared_ast.visibility;
}
Source
type code_item =
| SVar of {
var : VarName.t;
expr : expr;
typ : Shared_ast.typ;
visibility : Shared_ast.visibility;
}
| SFunc of {
var : FuncName.t;
func : func;
visibility : Shared_ast.visibility;
}
| SScope of scope_body
Source
type program = {
ctx : ctx;
code_items : code_item list;
tests : code_item list * (Shared_ast.ScopeName.t * block) list;
(*The first element may contain lifted closures. It can be assumed to be empty when closure conversion is disabled.
*)module_name : (Shared_ast.ModuleName.t * Shared_ast.module_intf_id) option;
}
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>