Module C_sharp_strange_lib.Common

Copyright 2026, Dmitrii Kuznetsov

SPDX-License-Identifier: LGPL-3.0-or-later

type tc_error =
  1. | NotImplemented
  2. | OccursCheck
  3. | AccessError
  4. | ImpossibleResult of string
  5. | TypeMismatch
  6. | OtherError of string
val pp_tc_error : Stdlib.Format.formatter -> tc_error -> unit
val show_tc_error : tc_error -> string
type interpret_error =
  1. | NotImplemented
  2. | NoVariable of string
  3. | AddressNotFound of int
  4. | VarDeclared of string
  5. | TypeMismatch
  6. | ImpossibleResult of string
  7. | OtherError of string
val pp_interpret_error : Stdlib.Format.formatter -> interpret_error -> unit
val show_interpret_error : interpret_error -> string
type error =
  1. | TCError of tc_error
  2. | IError of interpret_error
val pp_error : Stdlib.Format.formatter -> error -> unit
val show_error : error -> string
module Id : sig ... end
module IdMap : sig ... end
type adr =
  1. | Adr of int
val pp_adr : Stdlib.Format.formatter -> adr -> unit
val show_adr : adr -> string
module Adr : sig ... end
module AdrMap : sig ... end
type tc_var_info = {
  1. var_type : Ast.var_type;
  2. initialized : bool;
}
val pp_tc_var_info : Stdlib.Format.formatter -> tc_var_info -> unit
val show_tc_var_info : tc_var_info -> string
val equal_tc_var_info : tc_var_info -> tc_var_info -> bool
type field_info = {
  1. field_modifiers : Ast.modifier list;
  2. field_type : Ast.var_type;
  3. field_name : Ast.ident;
  4. field_init : Ast.expr option;
  5. is_static : bool;
}
type method_info = {
  1. method_modifiers : Ast.modifier list;
  2. method_return : Ast._type;
  3. method_name : Ast.ident;
  4. method_params : Ast.params;
  5. method_body : Ast.stmt;
  6. is_static : bool;
  7. is_main : bool;
}
type obj_content =
  1. | TCLocalVar of tc_var_info
  2. | TCField of field_info
  3. | TCMethod of method_info
type context =
  1. | TCClass of Ast.c_sharp_class
module TypeCheck : sig ... end