juno-app/src/JunoBuild.i3


 Copyright (C) 1992, Digital Equipment Corporation                         
 All rights reserved.                                                      
 See the file COPYRIGHT for a full description.                            
                                                                           
 Last modified on Thu Jun 16 13:34:26 PDT 1994 by heydon                   
      modified on Fri Aug  7 21:51:50 PDT 1992 by myers                    
<* PRAGMA LL *>

INTERFACE JunoBuild;
Higher-level procedures for compiling editor commands.

IMPORT JunoScope, JunoAST, JunoCompileErr;

PROCEDURE Cmd(cmd: JunoAST.Cmd; scp: JunoScope.T): CARDINAL
    RAISES {JunoCompileErr.Error};
Compiles cmd under scope scp, and installs the resulting bytestream in a fixed slot of the run-time global code table JunoRT.code_tbl (possibly overwriting the last bytestream installed there). Returns the index of this fixed slot in the code table.

PROCEDURE CurrCmd(
    cmd: JunoAST.Cmd;
    scp: JunoScope.T;
    checkTotal := FALSE):
    CARDINAL RAISES {JunoCompileErr.Error};
Calls Cmd above on the command IF <cmd> FI; HALT. If checkTotal, then first calls JunoChckBNF.TotalCommand of the resulting command to guarantee it has the proper form.

END JunoBuild.