package catala
Compiler and library for the literate programming language for tax code specification
Install
Dune Dependency
Authors
Maintainers
Sources
0.5.0.tar.gz
md5=41b0317af37925b16ae7aedfddbcc8b4
sha512=f02c4e4c7d8ca92c4c2100d1dfc31c56218a8fae3760135335c9cdd10d9edbeb6eb5e407b430c095f579ce2226c3fe4c314788af5aa35c37d04e4dee5f459cb8
doc/catala.scopelang/Scopelang/Ast/index.html
Module Scopelang.Ast
Source
Abstract syntax tree of the scope language
Identifiers
Source
type location =
| ScopeVar of ScopeVar.t Utils.Pos.marked
| SubScopeVar of ScopeName.t * SubScopeName.t Utils.Pos.marked * ScopeVar.t Utils.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 Utils.Pos.marked * typ Utils.Pos.marked
| TArray of typ
| TAny
Source
type expr =
| ELocation of location
| EVar of expr Bindlib.var Utils.Pos.marked
| EStruct of StructName.t * expr Utils.Pos.marked StructFieldMap.t
| EStructAccess of expr Utils.Pos.marked * StructFieldName.t * StructName.t
| EEnumInj of expr Utils.Pos.marked * EnumConstructor.t * EnumName.t
| EMatch of expr Utils.Pos.marked * EnumName.t * expr Utils.Pos.marked EnumConstructorMap.t
| ELit of Dcalc.Ast.lit
| EAbs of (expr, expr Utils.Pos.marked) Bindlib.mbinder Utils.Pos.marked * typ Utils.Pos.marked list
| EApp of expr Utils.Pos.marked * expr Utils.Pos.marked list
| EOp of Dcalc.Ast.operator
| EDefault of expr Utils.Pos.marked list * expr Utils.Pos.marked * expr Utils.Pos.marked
| EIfThenElse of expr Utils.Pos.marked * expr Utils.Pos.marked * expr Utils.Pos.marked
| EArray of expr Utils.Pos.marked list
| ErrorOnEmpty of expr Utils.Pos.marked
The expressions use the Bindlib library, based on higher-order abstract syntax
Source
type rule =
| Definition of location Utils.Pos.marked * typ Utils.Pos.marked * expr Utils.Pos.marked
| Assertion of expr Utils.Pos.marked
| Call of ScopeName.t * SubScopeName.t
Source
type scope_decl = {
scope_decl_name : ScopeName.t;
scope_sig : typ Utils.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 Utils.Pos.marked Bindlib.box ->
Utils.Pos.t ->
typ Utils.Pos.marked list ->
Utils.Pos.t ->
expr Utils.Pos.marked Bindlib.box
Source
val make_app :
expr Utils.Pos.marked Bindlib.box ->
expr Utils.Pos.marked Bindlib.box list ->
Utils.Pos.t ->
expr Utils.Pos.marked Bindlib.box
Source
val make_let_in :
Var.t ->
typ Utils.Pos.marked ->
expr Utils.Pos.marked Bindlib.box ->
expr Utils.Pos.marked Bindlib.box ->
expr Utils.Pos.marked Bindlib.box
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page