DEFINITION MODULE M2Pass2PV;

FROM MCBase IMPORT Stptr, Stset, Idset, Idptr, Idclass, Structform;

(*  private declaraions for the sub-modules of M2Pass2 *)

EXPORT QUALIFIED 
    scalars, oneword, doubleword, procmarkspace, charmax,
    nestlevel, symmod, defmod, impl, oldlist, proccount,
    FAmong, QualIdent, InitId;


  CONST scalars = Stset{enums,bools,chars,ints,cards,subranges};
        oneword = 1;                 (* space used for addressing *)
        doubleword = 2 * oneword;
        procmarkspace = 4 * oneword; (* space used for procedure mark *)
        charmax = 127; (* maximal value for a character *)

  VAR nestlevel : CARDINAL; (* nesting level *)
      symmod : BOOLEAN; (* current module is symbol module *)
      defmod : BOOLEAN; (* module is definition module *)
      impl: BOOLEAN; (* implementation expected *)
      oldlist: Idptr; (* list of identifiers to implement *)
      proccount : CARDINAL; (* counter of procedures *)

  PROCEDURE FAmong(sp: Stptr; forms: Stset): BOOLEAN;
  PROCEDURE QualIdent(klset: Idset; errnum: CARDINAL; VAR ip: Idptr);
  PROCEDURE InitId(ip: Idptr; cl: Idclass);

END M2Pass2PV .
