Module Creation


module Creation: sig  end
Module pour la mise en place de la table de hachage


type _Hash_Type =
| Parametre of (string * string * Declaration.m_type * int) (*Constructeur permettant de stocker un parametre avec son nom de module, son identifiant, son type et son rang*)
| Autre of (string * string * Declaration.m_type) (*Constructeur permettant de stocker les autres variables avec leur nom de module, leur identifiant, et leur type*)
Type de base pour la table de hachage

FONCTIONS UTILES

val _Existe_Deja_Dans_HashTable : Creation._Hash_Type -> Creation._Hash_Type list -> bool
Fonction permettant de savoir si un élément est déjà présent dans une table de hachage donnée

TABLE DE HACHAGE - PARAMETRES

val _Remplir_Hash_Param : string ->
(string * Declaration.m_type) list -> int -> Creation._Hash_Type list
Fonction créant une table de hachage contenant tous les parametres d'un module
val _Creation_table_hachage_PARAM : Declaration.moduleSMV list -> Creation._Hash_Type list
Fonction créant une table de hachage contenant toutes les variables passées en paramètres d'un module à partir d'un arbre de syntaxe donné

TABLE DE HACHAGE - VARIABLES

val _Remplir_Hash_Var : string -> (string * Declaration.m_type) list -> Creation._Hash_Type list
Fonction créant une table de hachage contenant toutes les variables d'une liste de variables
val _Creation_table_hachage_VAR : Declaration.moduleSMV list -> Creation._Hash_Type list
Fonction créant une table de hachage contenant toutes les variables du VAR à partir d'un arbre de syntaxe donné

TABLE DE HACHAGE - TRAITEMENT D'UNE EXPRESSION

val _Remplir_Hash_Expr : string -> Declaration.expr -> Creation._Hash_Type list
Fonction retournant la table de hachage contenant toutes les variables d'une expression

TABLE DE HACHAGE - ASSIGN

val _Remplir_Hash_Assign : string -> ('a * Declaration.expr) list -> Creation._Hash_Type list
Fonction retournant la table de hachage contenant toutes les variables d'une liste d'assign
val _Creation_table_hachage_ASSIGN : Declaration.moduleSMV list -> Creation._Hash_Type list
Fonction créant une table de hachage contenant toutes les variables du ASSIGN à partir d'un arbre de syntaxe donné

TABLE DE HACHAGE - DEFINE

val _Remplir_Hash_Define : string -> (string * Declaration.m_type) list -> Creation._Hash_Type list
Fonction retournant la table de hachage contenant toutes les variables d'une liste de define
val _Creation_table_hachage_DEFINE : Declaration.moduleSMV list -> Creation._Hash_Type list
Fonction créant une table de hachage contenant toutes les variables du ASSIGN à partir d'un arbre de syntaxe donné

TABLE DE HACHAGE

val _Suppression_Doublon_HashTable : Creation._Hash_Type list -> Creation._Hash_Type list
Fonction permettant de supprimer la redondance d'une table de hachage, redondance due à la prise en compte des 'assign'
val _Modification_Element : Creation._Hash_Type -> Creation._Hash_Type list -> Creation._Hash_Type
Fonction permettant de modifier un élément de type Inconnu par rapport à un autre élément représentant la même variable dans une table de Hachage
val _Coherence_HashTable : Creation._Hash_Type list ->
Creation._Hash_Type list -> Creation._Hash_Type list
Fonction permettant de rendre cohérente les informations sur le type des variables dans une table de hachage (utile pour la suppression de doublons)
val _Creation_Table_Hachage : Declaration.moduleSMV list -> Creation._Hash_Type list
Fonction retournant une table de hachage compléte, cohérente et non redondante à partir d'un arbre de syntaxe