Legend:
Library
Module
Module type
Parameter
Class
Class type
Create packages from Model instances.
Une seule fonctionnalité : transformer au niveau "quasi-syntaxique" des instances de pack du style "package toto = titi(....)" en package "donné", SI BESOIN.
une table ptab : (string, AstV6.pack_info srcflagged) Hashtbl.t
une table mtab : (string, AstV6.model_info srcflagged) Hashtbl.t
Sortie, une table d'info de package expansées :
une table xptab : (string, t) Hashtbl.t
Fonctionnement : On met en relation les couples (param formel, arg effectif) :
(type t, id/type_exp) : on crée l'alias "type t = id/type_exp", qu'on met à la fois dans les export et dans le body => LES DÉCLARATIONS DE TYPES SONT EXPORTÉES
(const c : t, id/val_exp) : on crée l'alias "const c : t = id/val_exp", qu'on met à la fois dans les export et dans le body => LES DÉCLARATIONS DE CONST SONT EXPORTÉES
(node n(..)returns(...), id/node_exp) :
on garde le noeud "abstrait" dans export => node n(..)returns(...)
on définit l'alias "node n(..)returns(...) = id/node_exp" dans body