package catala

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Module Scalc.AstSource

Sourcemodule D = Dcalc.Ast
Sourcemodule L = Lcalc.Ast
Sourcemodule FuncName : sig ... end
Sourcemodule VarName : sig ... end
Sourceval dead_value : VarName.t
Sourceval handle_default : FuncName.t
Sourceval handle_default_opt : FuncName.t
Sourcetype operator = < overloaded : Shared_ast.no ; monomorphic : Shared_ast.yes ; polymorphic : Shared_ast.yes ; resolved : Shared_ast.yes > Shared_ast.operator
Sourceand naked_expr =
  1. | EVar : VarName.t -> naked_expr
  2. | EFunc : FuncName.t -> naked_expr
  3. | EStruct : expr list * Shared_ast.StructName.t -> naked_expr
  4. | EStructFieldAccess : expr * Shared_ast.StructField.t * Shared_ast.StructName.t -> naked_expr
  5. | EInj : expr * Shared_ast.EnumConstructor.t * Shared_ast.EnumName.t -> naked_expr
  6. | EArray : expr list -> naked_expr
  7. | ELit : Shared_ast.lit -> naked_expr
  8. | EApp : expr * expr list -> naked_expr
  9. | EAppOp : operator * expr list -> naked_expr
Sourcetype stmt =
  1. | SInnerFuncDef of VarName.t Catala_utils.Mark.pos * func
  2. | SLocalDecl of VarName.t Catala_utils.Mark.pos * Shared_ast.typ
  3. | SLocalDef of VarName.t Catala_utils.Mark.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
Sourceand func = {
  1. func_params : (VarName.t Catala_utils.Mark.pos * Shared_ast.typ) list;
  2. func_body : block;
}
Sourcetype scope_body = {
  1. scope_body_name : Shared_ast.ScopeName.t;
  2. scope_body_var : FuncName.t;
  3. scope_body_func : func;
}
Sourcetype 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
Sourcetype program = {
  1. decl_ctx : Shared_ast.decl_ctx;
  2. code_items : code_item list;
}
OCaml

Innovation. Community. Security.