package catala
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page
Low-level language for tax code specification
Install
dune-project
Dependency
Authors
Maintainers
Sources
0.2.0.tar.gz
md5=4c6f725ef4d21c5ff91f60d74b454ef7
sha512=98806e03daa6f33740b80a0f78a37320fb70ebea8cb927ea8fed022673459189c32e2389ccba0fa25d93f754b0fa0128a5ee28e1bb9abefa330deb4be8cc7d95
doc/catala.scopelang/Scopelang/Ast/index.html
Module Scopelang.AstSource
Abstract syntax tree of the scope language
Identifiers
Source
type location = | ScopeVar of ScopeVar.t Pos.marked| SubScopeVar of ScopeName.t * SubScopeName.t Pos.marked * ScopeVar.t Pos.marked
Abstract syntax tree
Source
type typ = | TLit of Dcalc.Ast.typ_lit| TStruct of StructName.t| TEnum of EnumName.t| TArrow of typ Pos.marked * typ Pos.marked
Source
type expr = | ELocation of location| EVar of expr Bindlib.var Pos.marked| EStruct of StructName.t * expr Pos.marked StructFieldMap.t| EStructAccess of expr Pos.marked * StructFieldName.t * StructName.t| EEnumInj of expr Pos.marked * EnumConstructor.t * EnumName.t| EMatch of expr Pos.marked * EnumName.t * expr Pos.marked EnumConstructorMap.t| ELit of Dcalc.Ast.lit| EAbs of Pos.t * (expr, expr Pos.marked) Bindlib.mbinder * typ Pos.marked list| EApp of expr Pos.marked * expr Pos.marked list| EOp of Dcalc.Ast.operator| EDefault of expr Pos.marked list * expr Pos.marked * expr Pos.marked| EIfThenElse of expr Pos.marked * expr Pos.marked * expr Pos.marked
The expressions use the Bindlib library, based on higher-order abstract syntax
Source
type rule = | Definition of location Pos.marked * typ Pos.marked * expr Pos.marked| Assertion of expr Pos.marked| Call of ScopeName.t * SubScopeName.t
Source
type scope_decl = {scope_decl_name : ScopeName.t;scope_sig : typ Pos.marked ScopeVarMap.t;scope_decl_rules : rule list;
}Source
type program = {program_scopes : scope_decl ScopeMap.t;program_enums : enum_ctx;program_structs : struct_ctx;
}Variable helpers
Source
val make_abs :
vars ->
expr Pos.marked Bindlib.box ->
Pos.t ->
typ Pos.marked list ->
Pos.t ->
expr Pos.marked Bindlib.boxSource
val make_app :
expr Pos.marked Bindlib.box ->
expr Pos.marked Bindlib.box list ->
Pos.t ->
expr Pos.marked Bindlib.box sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page