home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Source Code / C / Applications / Moscow ML 1.42 / src / compiler / Units.sig < prev    next >
Encoding:
Text File  |  1997-08-18  |  2.5 KB  |  69 lines  |  [TEXT/R*ch]

  1. local
  2.   open Fnlib Mixture Const Globals Location;
  3. in
  4.  
  5. type CSig =
  6. {
  7.   uName:       string,
  8.   uConBasis:   (string, ConStatus) Hasht.t,
  9.   uVarEnv:     (string, TypeScheme) Hasht.t,
  10.   uTyEnv:      (string, TyName) Hasht.t,
  11.   uDatatypes:  (int, ConEnv) Hasht.t,
  12.   uStamp:      SigStamp option ref,
  13.                     (* present if this signature comes from a .ui file *)
  14.   uMentions:   (string, SigStamp) Hasht.t
  15. };
  16.  
  17. val conBasisOfSig : CSig -> (string, ConStatus) Hasht.t;
  18. val varEnvOfSig : CSig -> (string, TypeScheme) Hasht.t;
  19. val tyEnvOfSig : CSig -> (string, TyName) Hasht.t;
  20.  
  21. type SigTable = (string, CSig) Hasht.t;
  22.  
  23. val pervSigTable : SigTable;
  24. val currentSigTable : SigTable ref;
  25. val newSig : string -> CSig;
  26. val currentSig : CSig ref;
  27. val currentRenEnv : (string, int) Hasht.t ref;
  28. val hasSpecifiedSignature : bool ref;
  29. val readSig : string -> CSig;
  30. val findSig : Location -> string -> CSig;
  31. val pervasiveInfixTable : (string, InfixStatus) Hasht.t;
  32. val initPervasiveEnvironments : unit -> unit;
  33. val findAndMentionSig : Location -> string -> CSig;
  34. val initInitialEnvironments : unit -> unit;
  35. val protectCurrentUnit : (unit -> 'a) -> unit;
  36. val currentUnitName : unit -> string;
  37. val mkGlobalName : string -> QualifiedIdent;
  38. val mkGlobalInfo : string -> 'a -> 'a global;
  39. val mkUniqueGlobalName : string * 'a -> QualifiedIdent * 'a;
  40. val newTypeStamp : unit -> int;
  41. val newExcStamp : unit -> int;
  42. val newValStamp : unit -> int;
  43. val findInfo : (CSig -> (string, 'a) Hasht.t) ->
  44.        (string, 'a) Env -> Location -> QualifiedIdent -> 'a;
  45.  
  46. val findConstructors : CSig -> int -> ConEnv;
  47. val setConstructors : CSig -> int -> ConEnv -> unit;
  48. val registerConstructors : ConEnv -> int;
  49.  
  50. val isEqTN : TyName -> TyName -> bool;
  51. val updateCurrentInfixBasis : (string, InfixStatus) Env -> unit;
  52. val updateCurrentConBasis : (string, ConStatus) Env -> unit;
  53. val extendCurrentConBasis : (string, ConStatus) Env -> unit;
  54. val updateCurrentStaticVE : (string, TypeScheme) Env -> unit;
  55. val updateCurrentStaticTE : (string, TyName) Env -> unit;
  56. val extendCurrentStaticTE : (string, TyName) Env -> unit;
  57. val mkGlobalInfixBasis : unit -> (string, InfixStatus) Env;
  58. val mkGlobalConBasis : unit -> (string, ConStatus) Env;
  59. val mkGlobalVE : unit -> (string, TypeScheme) Env;
  60. val mkGlobalTE : unit -> (string, TyName) Env;
  61. val execToplevelOpen : Location -> string -> unit;
  62. val printVQ : QualifiedIdent -> unit;
  63. val printTQ : TyName -> unit;
  64. val startCompilingUnit : string -> unit;
  65. val rectifySignature : unit ->
  66.   (QualifiedIdent * (QualifiedIdent * int)) list * (string * int) list;
  67.  
  68. end;
  69.