package lutin

  1. Overview
  2. Docs

Module CheckTypeSource

TYPE/BINDING CHECK : main

------------------------------------------------------------- Cette passe a essentiellement pour but de donner un type effectif aux différents items syntaxiques du programme (lets, expressions).

Conjointement, elle résout les "bindings" des identificateurs :

  • toute référence à un identificateur est identifiée de manière UNIQUE par son ident (décoré de son info source)

On utilise trois tables :

  • une table GLOBALE de binding "ident -> ident_info"
  • une table "dynamique" de scoping "string -> ident_info"
  • une table de typage des exp "val_exp -> type_eff"

------------------------------------------------------------

Sourceval type_error : Lexeme.t -> CkTypeEff.t list -> CkTypeEff.t list -> 'a
Sourceval arity_error : Lexeme.t -> int -> int -> 'a
Sourceval match_type_profile : CkTypeEff.t list -> CkTypeEff.profile -> Lexeme.t -> CkTypeEff.t
Sourceval match_run_type_profile : CkTypeEff.t list -> CkTypeEff.profile -> Lexeme.t -> CkTypeEff.t list
Sourceval check_pack : string list option -> Syntaxe.package -> CheckEnv.t