Copyright (C) 1997, Digital Equipment Corporation                         
 All rights reserved.                                                      
 See the file COPYRIGHT for a full description.                            
                                                                           
 Last modified on Mon Jan 27 18:37:50 PST 1997 by heydon                   
INTERFACE BuiltInSlots;
 Records the slots numbers for the built-in APPLY and CLOSE procedures.
   These are represented as user-defined procedures, but they are treated
   specially by the compiler and assembler. 
IMPORT JunoAST, JunoScope, Rd, Wr;
PROCEDURE Init(scp: JunoScope.T);
 Initialize the globals in this module from the scope scp. This procedure
   must be called before any compilations/assemblies are performed. 
PROCEDURE IsApplySlot(slot: CARDINAL): BOOLEAN;
PROCEDURE IsCloseSlot(slot: CARDINAL): BOOLEAN;
 Return TRUE iff slot is the slot for the APPLY or CLOSE procedure,
   respectively. 
PROCEDURE IsApplyProc(nm: JunoAST.QId): BOOLEAN;
PROCEDURE IsCloseProc(nm: JunoAST.QId): BOOLEAN;
 Return TRUE iff nm is an annotated name for the APPLY or CLOSE
   procedure, respectively. 
PROCEDURE Save(wr: Wr.T);
PROCEDURE Restore(rd: Rd.T);
 Save/restore close and apply to/from wr/rd. 
END BuiltInSlots.