package catala

  1. Overview
  2. Docs
Compiler and library for the literate programming language for tax code specification

Install

Dune Dependency

Authors

Maintainers

Sources

0.10.0.tar.gz
md5=5abd76e8c51a47670645e91b21b57fc5
sha512=9c6fbe50c0b5a60566e877eeddadca0a339e2ce35deb5c1beceb03bc40eb6af2d519313e71859d88645b53fad591d4fa5288c633b185c9d765603da0f5b7dd7b

doc/catala.scalc/Scalc/Ast/index.html

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
Sourceand naked_expr =
  1. | EVar of VarName.t
  2. | EFunc of FuncName.t
  3. | EStruct of {
    1. fields : expr Shared_ast.StructField.Map.t;
    2. name : Shared_ast.StructName.t;
    }
  4. | EStructFieldAccess of {
    1. e1 : expr;
    2. field : Shared_ast.StructField.t;
    3. name : Shared_ast.StructName.t;
    }
  5. | ETuple of expr list
  6. | ETupleAccess of {
    1. e1 : expr;
    2. index : int;
    }
  7. | EInj of {
    1. e1 : expr;
    2. cons : Shared_ast.EnumConstructor.t;
    3. name : Shared_ast.EnumName.t;
    4. expr_typ : Shared_ast.typ;
    }
  8. | EArray of expr list
  9. | ELit of Shared_ast.lit
  10. | EApp of {
    1. f : expr;
    2. args : expr list;
    }
  11. | EAppOp of {
    1. op : operator Catala_utils.Mark.pos;
    2. args : expr list;
    }
  12. | EExternal of {
    1. modname : VarName.t Catala_utils.Mark.pos;
    2. name : string Catala_utils.Mark.pos;
    }
Sourcetype stmt =
  1. | SInnerFuncDef of {
    1. name : VarName.t Catala_utils.Mark.pos;
    2. func : func;
    }
  2. | SLocalDecl of {
    1. name : VarName.t Catala_utils.Mark.pos;
    2. typ : Shared_ast.typ;
    }
  3. | SLocalInit of {
    1. name : VarName.t Catala_utils.Mark.pos;
    2. typ : Shared_ast.typ;
    3. expr : expr;
    }
  4. | SLocalDef of {
    1. name : VarName.t Catala_utils.Mark.pos;
    2. expr : expr;
    3. typ : Shared_ast.typ;
    }
  5. | STryWEmpty of {
    1. try_block : block;
    2. with_block : block;
    }
  6. | SRaiseEmpty
  7. | SFatalError of Shared_ast.Runtime.error
  8. | SIfThenElse of {
    1. if_expr : expr;
    2. then_block : block;
    3. else_block : block;
    }
  9. | SSwitch of {
    1. switch_expr : expr;
    2. switch_expr_typ : Shared_ast.typ;
    3. enum_name : Shared_ast.EnumName.t;
    4. switch_cases : switch_case list;
    }
  10. | SReturn of naked_expr
  11. | SAssert of naked_expr
  12. | SSpecialOp of special_operator
Sourceand special_operator =
  1. | OHandleDefaultOpt of {
    1. exceptions : expr list;
    2. just : expr;
    3. cons : block;
    4. return_typ : Shared_ast.typ;
    }
Sourceand switch_case = {
  1. case_block : block;
  2. payload_var_name : VarName.t;
  3. payload_var_typ : Shared_ast.typ;
}
Sourceand func = {
  1. func_params : (VarName.t Catala_utils.Mark.pos * Shared_ast.typ) list;
  2. func_body : block;
  3. func_return_typ : Shared_ast.typ;
}
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;
    3. typ : Shared_ast.typ;
    }
  2. | SFunc of {
    1. var : FuncName.t;
    2. func : func;
    }
  3. | SScope of scope_body
Sourcetype program = {
  1. ctx : ctx;
  2. code_items : code_item list;
  3. module_name : Shared_ast.ModuleName.t option;
}
OCaml

Innovation. Community. Security.