package catala

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
module D = Dcalc.Ast
module L = Lcalc.Ast
module FuncName : sig ... end
module VarName : sig ... end
val dead_value : VarName.t
val handle_default : FuncName.t
val handle_default_opt : FuncName.t
type stmt =
  1. | SInnerFuncDef of VarName.t Catala_utils.Marked.pos * func
  2. | SLocalDecl of VarName.t Catala_utils.Marked.pos * Shared_ast.typ
  3. | SLocalDef of VarName.t Catala_utils.Marked.pos * expr
  4. | STryExcept of block * Shared_ast.except * block
  5. | SRaise of Shared_ast.except
  6. | SIfThenElse of expr * block * block
  7. | SSwitch of expr * Shared_ast.EnumName.t * (block * VarName.t) list
    (*

    Each block corresponds to one case of the enum

    *)
  8. | SReturn of naked_expr
  9. | SAssert of naked_expr
and block = stmt Catala_utils.Marked.pos list
and func = {
  1. func_params : (VarName.t Catala_utils.Marked.pos * Shared_ast.typ) list;
  2. func_body : block;
}
type scope_body = {
  1. scope_body_name : Shared_ast.ScopeName.t;
  2. scope_body_var : FuncName.t;
  3. scope_body_func : func;
}
type code_item =
  1. | SVar of {
    1. var : VarName.t;
    2. expr : expr;
    }
  2. | SFunc of {
    1. var : FuncName.t;
    2. func : func;
    }
  3. | SScope of scope_body
type program = {
  1. decl_ctx : Shared_ast.decl_ctx;
  2. code_items : code_item list;
}