package catala

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

Abstract syntax tree of the scope language

Identifiers

module LocationSet : Stdlib.Set.S with type elt = location Catala_utils.Mark.pos

Abstract syntax tree

val locations_used : 'm expr -> LocationSet.t
type 'm rule =
  1. | ScopeVarDefinition of {
    1. var : Shared_ast.ScopeVar.t Catala_utils.Mark.pos;
    2. typ : Shared_ast.typ;
    3. io : Desugared.Ast.io;
    4. e : 'm expr;
    }
  2. | SubScopeVarDefinition of {
    1. var : Shared_ast.ScopeVar.t Catala_utils.Mark.pos;
      (*

      Variable within the current scope

      *)
    2. var_within_origin_scope : Shared_ast.ScopeVar.t;
    3. typ : Shared_ast.typ;
    4. e : 'm expr;
    }
  3. | Assertion of 'm expr
type scope_var_ty = {
  1. svar_in_ty : Shared_ast.typ;
  2. svar_out_ty : Shared_ast.typ;
  3. svar_io : Desugared.Ast.io;
}
type 'm scope_decl = {
  1. scope_decl_name : Shared_ast.ScopeName.t;
  2. scope_sig : scope_var_ty Shared_ast.ScopeVar.Map.t;
  3. scope_decl_rules : 'm rule list;
  4. scope_options : Desugared.Ast.catala_option Catala_utils.Mark.pos list;
}
val type_program : 'm program -> Shared_ast.typed program
OCaml

Innovation. Community. Security.