package catala
Low-level language for tax code specification
Install
Dune Dependency
Authors
Maintainers
Sources
0.3.0.tar.gz
md5=4a2c5495f30d8fc2e3bf977df6e602f9
sha512=8dcc404b6068b9dbd76982ade60d8fba1950fdd0a8a626db17429120483367dce1f51997e96d7b8ee5308f305c3bcbb897ef85336f25e9ef3681f4cb9237f56a
doc/catala.dcalc/Dcalc/Ast/index.html
Module Dcalc.Ast
Source
Abstract syntax tree for the default calculus
Abstract syntax tree
Source
type typ =
| TLit of typ_lit
| TTuple of typ Utils.Pos.marked list * StructName.t option
| TEnum of typ Utils.Pos.marked list * EnumName.t
| TArrow of typ Utils.Pos.marked * typ Utils.Pos.marked
| TArray of typ Utils.Pos.marked
| TAny
Source
type lit =
| LBool of bool
| LEmptyError
| LInt of Runtime.integer
| LRat of Runtime.decimal
| LMoney of Runtime.money
| LUnit
| LDate of date
| LDuration of duration
Source
type unop =
| Not
| Minus of op_kind
| ErrorOnEmpty
| Log of log_entry * Utils.Uid.MarkedString.info list
| Length
| IntToRat
| GetDay
| GetMonth
| GetYear
Source
type expr =
| EVar of expr Bindlib.var Utils.Pos.marked
| ETuple of expr Utils.Pos.marked list * StructName.t option
(*The
*)MarkedString.info
is the former struct field name| ETupleAccess of expr Utils.Pos.marked * int * StructName.t option * typ Utils.Pos.marked list
(*The
*)MarkedString.info
is the former struct field name| EInj of expr Utils.Pos.marked * int * EnumName.t * typ Utils.Pos.marked list
(*The
*)MarkedString.info
is the former enum case name| EMatch of expr Utils.Pos.marked * expr Utils.Pos.marked list * EnumName.t
(*The
*)MarkedString.info
is the former enum case name| EArray of expr Utils.Pos.marked list
| ELit of lit
| EAbs of Utils.Pos.t * (expr, expr Utils.Pos.marked) Bindlib.mbinder * typ Utils.Pos.marked list
| EApp of expr Utils.Pos.marked * expr Utils.Pos.marked list
| EAssert of expr Utils.Pos.marked
| EOp of 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
The expressions use the Bindlib library, based on higher-order abstract syntax
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
Source
val make_multiple_let_in :
Var.t array ->
typ Utils.Pos.marked list ->
expr Utils.Pos.marked list Bindlib.box ->
expr Utils.Pos.marked Bindlib.box ->
expr Utils.Pos.marked Bindlib.box
Source
type program = {
decl_ctx : decl_ctx;
scopes : (ScopeName.t * Var.t * expr Utils.Pos.marked) list;
}
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page