package catala
Compiler and library for the literate programming language for tax code specification
Install
Dune Dependency
Authors
Maintainers
Sources
0.7.0.tar.gz
md5=6dbbc2f50c23693f26ab6f048e78172f
sha512=a5701e14932d8a866e2aa3731f76df85ff2a68b4fa943fd510c535913573274d66eaec1ae6fcae17f20b475876048a9ab196ef6d8c23d4ea6b90b986aa0a6daa
doc/catala.lcalc/Lcalc/Ast/index.html
Module Lcalc.Ast
Source
Abstract syntax tree for the lambda calculus
Abstract syntax tree
The expressions use the Bindlib library, based on higher-order abstract syntax
Source
type lit =
| LBool of bool
| LInt of Runtime.integer
| LRat of Runtime.decimal
| LMoney of Runtime.money
| LUnit
| LDate of Runtime.date
| LDuration of Runtime.duration
Source
and 'm expr =
| EVar of 'm expr Bindlib.var
| ETuple of 'm marked_expr list * Dcalc.Ast.StructName.t option
(*The
*)MarkedString.info
is the former struct field name| ETupleAccess of 'm marked_expr * int * Dcalc.Ast.StructName.t option * Dcalc.Ast.typ Utils.Marked.pos list
(*The
*)MarkedString.info
is the former struct field name| EInj of 'm marked_expr * int * Dcalc.Ast.EnumName.t * Dcalc.Ast.typ Utils.Marked.pos list
(*The
*)MarkedString.info
is the former enum case name| EMatch of 'm marked_expr * 'm marked_expr list * Dcalc.Ast.EnumName.t
(*The
*)MarkedString.info
is the former enum case name| EArray of 'm marked_expr list
| ELit of lit
| EAbs of ('m expr, 'm marked_expr) Bindlib.mbinder * Dcalc.Ast.typ Utils.Marked.pos list
| EApp of 'm marked_expr * 'm marked_expr list
| EAssert of 'm marked_expr
| EOp of Dcalc.Ast.operator
| EIfThenElse of 'm marked_expr * 'm marked_expr * 'm marked_expr
| ERaise of except
| ECatch of 'm marked_expr * except * 'm marked_expr
Variable helpers
Program traversal
Source
val map_expr :
'a ->
f:('a -> 'm1 marked_expr -> 'm2 marked_expr Bindlib.box) ->
('m1 expr, 'm2 mark) Utils.Marked.t ->
'm2 marked_expr Bindlib.box
See Dcalc.Ast.map_expr
Source
val map_expr_top_down :
f:('m1 marked_expr -> ('m1 expr, 'm2 mark) Utils.Marked.t) ->
'm1 marked_expr ->
'm2 marked_expr Bindlib.box
See Dcalc.Ast.map_expr_top_down
Source
val map_expr_marks :
f:('m1 mark -> 'm2 mark) ->
'm1 marked_expr ->
'm2 marked_expr Bindlib.box
See Dcalc.Ast.map_expr_marks
Boxed constructors
Source
val etuple :
'm marked_expr Bindlib.box list ->
Dcalc.Ast.StructName.t option ->
'm mark ->
'm marked_expr Bindlib.box
Source
val etupleaccess :
'm marked_expr Bindlib.box ->
int ->
Dcalc.Ast.StructName.t option ->
Dcalc.Ast.typ Utils.Marked.pos list ->
'm mark ->
'm marked_expr Bindlib.box
Source
val einj :
'm marked_expr Bindlib.box ->
int ->
Dcalc.Ast.EnumName.t ->
Dcalc.Ast.typ Utils.Marked.pos list ->
'm mark ->
'm marked_expr Bindlib.box
Source
val ematch :
'm marked_expr Bindlib.box ->
'm marked_expr Bindlib.box list ->
Dcalc.Ast.EnumName.t ->
'm mark ->
'm marked_expr Bindlib.box
Source
val eabs :
('m expr, 'm marked_expr) Bindlib.mbinder Bindlib.box ->
Dcalc.Ast.typ Utils.Marked.pos list ->
'm mark ->
'm marked_expr Bindlib.box
Source
val eapp :
'm marked_expr Bindlib.box ->
'm marked_expr Bindlib.box list ->
'm mark ->
'm marked_expr Bindlib.box
Source
val eifthenelse :
'm marked_expr Bindlib.box ->
'm marked_expr Bindlib.box ->
'm marked_expr Bindlib.box ->
'm mark ->
'm marked_expr Bindlib.box
Source
val ecatch :
'm marked_expr Bindlib.box ->
except ->
'm marked_expr Bindlib.box ->
'm mark ->
'm marked_expr Bindlib.box
Language terms construction
Source
val make_abs :
'm vars ->
'm marked_expr Bindlib.box ->
Dcalc.Ast.typ Utils.Marked.pos list ->
'm mark ->
'm marked_expr Bindlib.box
Source
val make_app :
'm marked_expr Bindlib.box ->
'm marked_expr Bindlib.box list ->
'm mark ->
'm marked_expr Bindlib.box
Source
val make_let_in :
'm var ->
Dcalc.Ast.typ Utils.Marked.pos ->
'm marked_expr Bindlib.box ->
'm marked_expr Bindlib.box ->
Utils.Pos.t ->
'm marked_expr Bindlib.box
Source
val make_multiple_let_in :
'm vars ->
Dcalc.Ast.typ Utils.Marked.pos list ->
'm marked_expr Bindlib.box list ->
'm marked_expr Bindlib.box ->
Utils.Pos.t ->
'm marked_expr Bindlib.box
Source
val make_matchopt_with_abs_arms :
'm marked_expr Bindlib.box ->
'm marked_expr Bindlib.box ->
'm marked_expr Bindlib.box ->
'm marked_expr Bindlib.box
Source
val make_matchopt :
'm mark ->
'm var ->
Dcalc.Ast.typ Utils.Marked.pos ->
'm marked_expr Bindlib.box ->
'm marked_expr Bindlib.box ->
'm marked_expr Bindlib.box ->
'm marked_expr Bindlib.box
e' = make_matchopt'' pos v e e_none e_some
Builds the term corresponding to match e with | None -> fun () -> e_none |Some -> fun v -> e_some
.
Special symbols
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page