package catala

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
module D = Dcalc.Ast
module L = Lcalc.Ast
module TopLevelName : sig ... end
module LocalName : sig ... end
type stmt =
  1. | SInnerFuncDef of LocalName.t Utils.Pos.marked * func
  2. | SLocalDecl of LocalName.t Utils.Pos.marked * D.typ Utils.Pos.marked
  3. | SLocalDef of LocalName.t Utils.Pos.marked * expr Utils.Pos.marked
  4. | STryExcept of block * L.except * block
  5. | SRaise of L.except
  6. | SIfThenElse of expr Utils.Pos.marked * block * block
  7. | SSwitch of expr Utils.Pos.marked * D.EnumName.t * (block * LocalName.t) list
    (*

    Each block corresponds to one case of the enum

    *)
  8. | SReturn of expr
  9. | SAssert of expr
and block = stmt Utils.Pos.marked list
and func = {
  1. func_params : (LocalName.t Utils.Pos.marked * D.typ Utils.Pos.marked) list;
  2. func_body : block;
}
type scope_body = {
  1. scope_body_name : Dcalc.Ast.ScopeName.t;
  2. scope_body_var : TopLevelName.t;
  3. scope_body_func : func;
}
type program = {
  1. decl_ctx : D.decl_ctx;
  2. scopes : scope_body list;
}