juno-compiler/src/BuiltInSlots.i3


 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.