-- SaffronAG4Impl.mesa -- Copyright Ó 1987 by Xerox Corporation. All rights reserved. -- Generated by Rauen.pa at September 1, 1988 7:24:34 pm PDT -- using ThreeCasabaFour [1.2] of June 1, 1987 6:00:00 pm PDT DIRECTORY SaffronAG4Def, SaffronGenericDef, SaffronATDef; SaffronAG4Impl: CEDAR PROGRAM IMPORTS SaffronAG4Def EXPORTS SaffronAG4Def= BEGIN OPEN SaffronAG4Def, SaffronGenericDef, SaffronATDef; -- StatementifthenProd StatementifthenProdProcs: PUBLIC StatementNodeProcs _ NEW[StatementNodeProcsBody _ [StatementifthenProdHangContextsFromContextTree, StatementifthenProdCompile]]; BuildStatementifthenProdNode: PUBLIC PROC[position: INT, length: INT, Exp: ExpNode, Statement: StatementNode] RETURNS[StatementNode] = BEGIN data: StatementifthenProdData _ NEW[StatementifthenProdDataBody _ [ Exp, Statement]]; RETURN[NEW[StatementNodeBody_[position, length, StatementifthenProdProcs, data]]]; END; -- StatementifthenelseProd StatementifthenelseProdProcs: PUBLIC StatementNodeProcs _ NEW[StatementNodeProcsBody _ [StatementifthenelseProdHangContextsFromContextTree, StatementifthenelseProdCompile]]; BuildStatementifthenelseProdNode: PUBLIC PROC[position: INT, length: INT, Exp: ExpNode, Statementthenpart: StatementNode, Statementelsepart: StatementNode] RETURNS[StatementNode] = BEGIN data: StatementifthenelseProdData _ NEW[StatementifthenelseProdDataBody _ [ Exp, Statementthenpart, Statementelsepart]]; RETURN[NEW[StatementNodeBody_[position, length, StatementifthenelseProdProcs, data]]]; END; -- StatementselectProd StatementselectProdProcs: PUBLIC StatementNodeProcs _ NEW[StatementNodeProcsBody _ [StatementselectProdHangContextsFromContextTree, StatementselectProdCompile]]; BuildStatementselectProdNode: PUBLIC PROC[position: INT, length: INT, SelectHead: SelectHeadNode, SelectStmtList: SelectStmtListNode, OptStatement: OptStatementNode] RETURNS[StatementNode] = BEGIN data: StatementselectProdData _ NEW[StatementselectProdDataBody _ [ SelectHead, SelectStmtList, OptStatement]]; RETURN[NEW[StatementNodeBody_[position, length, StatementselectProdProcs, data]]]; END; -- StatementexpProd StatementexpProdProcs: PUBLIC StatementNodeProcs _ NEW[StatementNodeProcsBody _ [StatementexpProdHangContextsFromContextTree, StatementexpProdCompile]]; BuildStatementexpProdNode: PUBLIC PROC[position: INT, length: INT, Exp: ExpNode] RETURNS[StatementNode] = BEGIN data: StatementexpProdData _ NEW[StatementexpProdDataBody _ [ Exp]]; RETURN[NEW[StatementNodeBody_[position, length, StatementexpProdProcs, data]]]; END; -- StatementassignProd StatementassignProdProcs: PUBLIC StatementNodeProcs _ NEW[StatementNodeProcsBody _ [StatementassignProdHangContextsFromContextTree, StatementassignProdCompile]]; BuildStatementassignProdNode: PUBLIC PROC[position: INT, length: INT, Explhs: ExpNode, Exprhs: ExpNode] RETURNS[StatementNode] = BEGIN data: StatementassignProdData _ NEW[StatementassignProdDataBody _ [ Explhs, Exprhs]]; RETURN[NEW[StatementNodeBody_[position, length, StatementassignProdProcs, data]]]; END; -- StatementmultiassignProd StatementmultiassignProdProcs: PUBLIC StatementNodeProcs _ NEW[StatementNodeProcsBody _ [StatementmultiassignProdHangContextsFromContextTree, StatementmultiassignProdCompile]]; BuildStatementmultiassignProdNode: PUBLIC PROC[position: INT, length: INT, ExpList: ExpListNode, Exp: ExpNode] RETURNS[StatementNode] = BEGIN data: StatementmultiassignProdData _ NEW[StatementmultiassignProdDataBody _ [ ExpList, Exp]]; RETURN[NEW[StatementNodeBody_[position, length, StatementmultiassignProdProcs, data]]]; END; -- StatementblockProd StatementblockProdProcs: PUBLIC StatementNodeProcs _ NEW[StatementNodeProcsBody _ [StatementblockProdHangContextsFromContextTree, StatementblockProdCompile]]; BuildStatementblockProdNode: PUBLIC PROC[position: INT, length: INT, Checked: CheckedNode, Block: BlockNode] RETURNS[StatementNode] = BEGIN data: StatementblockProdData _ NEW[StatementblockProdDataBody _ [ Checked, Block]]; RETURN[NEW[StatementNodeBody_[position, length, StatementblockProdProcs, data]]]; END; -- StatementloopcontrolProd StatementloopcontrolProdProcs: PUBLIC StatementNodeProcs _ NEW[StatementNodeProcsBody _ [StatementloopcontrolProdHangContextsFromContextTree, StatementloopcontrolProdCompile]]; BuildStatementloopcontrolProdNode: PUBLIC PROC[position: INT, length: INT, ForClause: ForClauseNode, DoTest: DoTestNode, Scope: ScopeNode, DoExit: DoExitNode] RETURNS[StatementNode] = BEGIN data: StatementloopcontrolProdData _ NEW[StatementloopcontrolProdDataBody _ [ ForClause, DoTest, Scope, DoExit]]; RETURN[NEW[StatementNodeBody_[position, length, StatementloopcontrolProdProcs, data]]]; END; -- StatementexitProd StatementexitProdProcs: PUBLIC StatementNodeProcs _ NEW[StatementNodeProcsBody _ [StatementexitProdHangContextsFromContextTree, StatementexitProdCompile]]; BuildStatementexitProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[StatementNode] = BEGIN RETURN[NEW[StatementNodeBody_[position, length, StatementexitProdProcs, NIL]]]; END; -- StatementloopProd StatementloopProdProcs: PUBLIC StatementNodeProcs _ NEW[StatementNodeProcsBody _ [StatementloopProdHangContextsFromContextTree, StatementloopProdCompile]]; BuildStatementloopProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[StatementNode] = BEGIN RETURN[NEW[StatementNodeBody_[position, length, StatementloopProdProcs, NIL]]]; END; -- StatementgotoProd StatementgotoProdProcs: PUBLIC StatementNodeProcs _ NEW[StatementNodeProcsBody _ [StatementgotoProdHangContextsFromContextTree, StatementgotoProdCompile]]; BuildStatementgotoProdNode: PUBLIC PROC[position: INT, length: INT, Id: IdNode] RETURNS[StatementNode] = BEGIN data: StatementgotoProdData _ NEW[StatementgotoProdDataBody _ [ Id]]; RETURN[NEW[StatementNodeBody_[position, length, StatementgotoProdProcs, data]]]; END; -- StatementreturnProd StatementreturnProdProcs: PUBLIC StatementNodeProcs _ NEW[StatementNodeProcsBody _ [StatementreturnProdHangContextsFromContextTree, StatementreturnProdCompile]]; BuildStatementreturnProdNode: PUBLIC PROC[position: INT, length: INT, OptArgs: OptArgsNode] RETURNS[StatementNode] = BEGIN data: StatementreturnProdData _ NEW[StatementreturnProdDataBody _ [ OptArgs]]; RETURN[NEW[StatementNodeBody_[position, length, StatementreturnProdProcs, data]]]; END; -- StatementtransferProd StatementtransferProdProcs: PUBLIC StatementNodeProcs _ NEW[StatementNodeProcsBody _ [StatementtransferProdHangContextsFromContextTree, StatementtransferProdCompile]]; BuildStatementtransferProdNode: PUBLIC PROC[position: INT, length: INT, Transfer: TransferNode, Exp: ExpNode] RETURNS[StatementNode] = BEGIN data: StatementtransferProdData _ NEW[StatementtransferProdDataBody _ [ Transfer, Exp]]; RETURN[NEW[StatementNodeBody_[position, length, StatementtransferProdProcs, data]]]; END; -- StatementfreeProd StatementfreeProdProcs: PUBLIC StatementNodeProcs _ NEW[StatementNodeProcsBody _ [StatementfreeProdHangContextsFromContextTree, StatementfreeProdCompile]]; BuildStatementfreeProdNode: PUBLIC PROC[position: INT, length: INT, Free: FreeNode, Exp: ExpNode, Catch: CatchNode] RETURNS[StatementNode] = BEGIN data: StatementfreeProdData _ NEW[StatementfreeProdDataBody _ [ Free, Exp, Catch]]; RETURN[NEW[StatementNodeBody_[position, length, StatementfreeProdProcs, data]]]; END; -- StatementwaitProd StatementwaitProdProcs: PUBLIC StatementNodeProcs _ NEW[StatementNodeProcsBody _ [StatementwaitProdHangContextsFromContextTree, StatementwaitProdCompile]]; BuildStatementwaitProdNode: PUBLIC PROC[position: INT, length: INT, Exp: ExpNode] RETURNS[StatementNode] = BEGIN data: StatementwaitProdData _ NEW[StatementwaitProdDataBody _ [ Exp]]; RETURN[NEW[StatementNodeBody_[position, length, StatementwaitProdProcs, data]]]; END; -- StatementerrorProd StatementerrorProdProcs: PUBLIC StatementNodeProcs _ NEW[StatementNodeProcsBody _ [StatementerrorProdHangContextsFromContextTree, StatementerrorProdCompile]]; BuildStatementerrorProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[StatementNode] = BEGIN RETURN[NEW[StatementNodeBody_[position, length, StatementerrorProdProcs, NIL]]]; END; -- StatementstopProd StatementstopProdProcs: PUBLIC StatementNodeProcs _ NEW[StatementNodeProcsBody _ [StatementstopProdHangContextsFromContextTree, StatementstopProdCompile]]; BuildStatementstopProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[StatementNode] = BEGIN RETURN[NEW[StatementNodeBody_[position, length, StatementstopProdProcs, NIL]]]; END; -- StatementnullProd StatementnullProdProcs: PUBLIC StatementNodeProcs _ NEW[StatementNodeProcsBody _ [StatementnullProdHangContextsFromContextTree, StatementnullProdCompile]]; BuildStatementnullProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[StatementNode] = BEGIN RETURN[NEW[StatementNodeBody_[position, length, StatementnullProdProcs, NIL]]]; END; -- StatementresumeProd StatementresumeProdProcs: PUBLIC StatementNodeProcs _ NEW[StatementNodeProcsBody _ [StatementresumeProdHangContextsFromContextTree, StatementresumeProdCompile]]; BuildStatementresumeProdNode: PUBLIC PROC[position: INT, length: INT, OptArgs: OptArgsNode] RETURNS[StatementNode] = BEGIN data: StatementresumeProdData _ NEW[StatementresumeProdDataBody _ [ OptArgs]]; RETURN[NEW[StatementNodeBody_[position, length, StatementresumeProdProcs, data]]]; END; -- StatementrejectProd StatementrejectProdProcs: PUBLIC StatementNodeProcs _ NEW[StatementNodeProcsBody _ [StatementrejectProdHangContextsFromContextTree, StatementrejectProdCompile]]; BuildStatementrejectProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[StatementNode] = BEGIN RETURN[NEW[StatementNodeBody_[position, length, StatementrejectProdProcs, NIL]]]; END; -- StatementcontinueProd StatementcontinueProdProcs: PUBLIC StatementNodeProcs _ NEW[StatementNodeProcsBody _ [StatementcontinueProdHangContextsFromContextTree, StatementcontinueProdCompile]]; BuildStatementcontinueProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[StatementNode] = BEGIN RETURN[NEW[StatementNodeBody_[position, length, StatementcontinueProdProcs, NIL]]]; END; -- StatementretryProd StatementretryProdProcs: PUBLIC StatementNodeProcs _ NEW[StatementNodeProcsBody _ [StatementretryProdHangContextsFromContextTree, StatementretryProdCompile]]; BuildStatementretryProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[StatementNode] = BEGIN RETURN[NEW[StatementNodeBody_[position, length, StatementretryProdProcs, NIL]]]; END; -- StatementgetstateProd StatementgetstateProdProcs: PUBLIC StatementNodeProcs _ NEW[StatementNodeProcsBody _ [StatementgetstateProdHangContextsFromContextTree, StatementgetstateProdCompile]]; BuildStatementgetstateProdNode: PUBLIC PROC[position: INT, length: INT, Exp: ExpNode] RETURNS[StatementNode] = BEGIN data: StatementgetstateProdData _ NEW[StatementgetstateProdDataBody _ [ Exp]]; RETURN[NEW[StatementNodeBody_[position, length, StatementgetstateProdProcs, data]]]; END; -- StatementsetstateProd StatementsetstateProdProcs: PUBLIC StatementNodeProcs _ NEW[StatementNodeProcsBody _ [StatementsetstateProdHangContextsFromContextTree, StatementsetstateProdCompile]]; BuildStatementsetstateProdNode: PUBLIC PROC[position: INT, length: INT, Exp: ExpNode] RETURNS[StatementNode] = BEGIN data: StatementsetstateProdData _ NEW[StatementsetstateProdDataBody _ [ Exp]]; RETURN[NEW[StatementNodeBody_[position, length, StatementsetstateProdProcs, data]]]; END; -- OptStatementabsentProd OptStatementabsentProdProcs: PUBLIC OptStatementNodeProcs _ NEW[OptStatementNodeProcsBody _ [OptStatementabsentProdfoo]]; BuildOptStatementabsentProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[OptStatementNode] = BEGIN RETURN[NEW[OptStatementNodeBody_[position, length, OptStatementabsentProdProcs, NIL]]]; END; -- OptStatementpresentProd OptStatementpresentProdProcs: PUBLIC OptStatementNodeProcs _ NEW[OptStatementNodeProcsBody _ [OptStatementpresentProdfoo]]; BuildOptStatementpresentProdNode: PUBLIC PROC[position: INT, length: INT, Statement: StatementNode] RETURNS[OptStatementNode] = BEGIN data: OptStatementpresentProdData _ NEW[OptStatementpresentProdDataBody _ [ Statement]]; RETURN[NEW[OptStatementNodeBody_[position, length, OptStatementpresentProdProcs, data]]]; END; -- SelectStmtListemptyProd SelectStmtListemptyProdProcs: PUBLIC SelectStmtListNodeProcs _ NEW[SelectStmtListNodeProcsBody _ [SelectStmtListemptyProdfoo]]; BuildSelectStmtListemptyProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[SelectStmtListNode] = BEGIN RETURN[NEW[SelectStmtListNodeBody_[position, length, SelectStmtListemptyProdProcs, NIL]]]; END; -- SelectStmtListmoreProd SelectStmtListmoreProdProcs: PUBLIC SelectStmtListNodeProcs _ NEW[SelectStmtListNodeProcsBody _ [SelectStmtListmoreProdfoo]]; BuildSelectStmtListmoreProdNode: PUBLIC PROC[position: INT, length: INT, SelectStmtList: SelectStmtListNode, SelectStmtItem: SelectStmtItemNode] RETURNS[SelectStmtListNode] = BEGIN data: SelectStmtListmoreProdData _ NEW[SelectStmtListmoreProdDataBody _ [ SelectStmtList, SelectStmtItem]]; RETURN[NEW[SelectStmtListNodeBody_[position, length, SelectStmtListmoreProdProcs, data]]]; END; -- SelectStmtItemProd SelectStmtItemProdProcs: PUBLIC SelectStmtItemNodeProcs _ NEW[SelectStmtItemNodeProcsBody _ [SelectStmtItemProdfoo]]; BuildSelectStmtItemProdNode: PUBLIC PROC[position: INT, length: INT, SelectLabel: SelectLabelNode, Statement: StatementNode] RETURNS[SelectStmtItemNode] = BEGIN data: SelectStmtItemProdData _ NEW[SelectStmtItemProdDataBody _ [ SelectLabel, Statement]]; RETURN[NEW[SelectStmtItemNodeBody_[position, length, SelectStmtItemProdProcs, data]]]; END; -- BlockProd BlockProdProcs: PUBLIC BlockNodeProcs _ NEW[BlockNodeProcsBody _ [BlockProdHangContextsFromContextTree, BlockProdMakeContextTree, BlockProdCompileFrameBlock, BlockProdCompile, BlockProdInternalCompileBlock]]; BuildBlockProdNode: PUBLIC PROC[position: INT, length: INT, Scope: ScopeNode, ExitList: ExitListNode] RETURNS[BlockNode] = BEGIN data: BlockProdData _ NEW[BlockProdDataBody _ [ Scope, ExitList]]; RETURN[NEW[BlockNodeBody_[position, length, BlockProdProcs, data]]]; END; -- ScopeProd ScopeProdProcs: PUBLIC ScopeNodeProcs _ NEW[ScopeNodeProcsBody _ [ScopeProdCompileScope]]; BuildScopeProdNode: PUBLIC PROC[position: INT, length: INT, BindList: BindListNode, Catch: CatchNode, OptDecList: OptDecListNode, StatementList: StatementListNode] RETURNS[ScopeNode] = BEGIN data: ScopeProdData _ NEW[ScopeProdDataBody _ [ BindList, Catch, OptDecList, StatementList]]; RETURN[NEW[ScopeNodeBody_[position, length, ScopeProdProcs, data]]]; END; -- OptDecListabsentProd OptDecListabsentProdProcs: PUBLIC OptDecListNodeProcs _ NEW[OptDecListNodeProcsBody _ [OptDecListabsentProdUpdateLocalContext, OptDecListabsentProdHangContextsFromContextTree, OptDecListabsentProdAddDeclarationsToFieldList, OptDecListabsentProdCompile]]; BuildOptDecListabsentProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[OptDecListNode] = BEGIN RETURN[NEW[OptDecListNodeBody_[position, length, OptDecListabsentProdProcs, NIL]]]; END; -- OptDecListpresentProd OptDecListpresentProdProcs: PUBLIC OptDecListNodeProcs _ NEW[OptDecListNodeProcsBody _ [OptDecListpresentProdUpdateLocalContext, OptDecListpresentProdHangContextsFromContextTree, OptDecListpresentProdAddDeclarationsToFieldList, OptDecListpresentProdCompile]]; BuildOptDecListpresentProdNode: PUBLIC PROC[position: INT, length: INT, DecList: DecListNode] RETURNS[OptDecListNode] = BEGIN data: OptDecListpresentProdData _ NEW[OptDecListpresentProdDataBody _ [ DecList]]; RETURN[NEW[OptDecListNodeBody_[position, length, OptDecListpresentProdProcs, data]]]; END; -- StatementListemptyProd StatementListemptyProdProcs: PUBLIC StatementListNodeProcs _ NEW[StatementListNodeProcsBody _ [StatementListemptyProdHangContextsFromContextTree, StatementListemptyProdCompile]]; BuildStatementListemptyProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[StatementListNode] = BEGIN RETURN[NEW[StatementListNodeBody_[position, length, StatementListemptyProdProcs, NIL]]]; END; -- StatementListmoreProd StatementListmoreProdProcs: PUBLIC StatementListNodeProcs _ NEW[StatementListNodeProcsBody _ [StatementListmoreProdHangContextsFromContextTree, StatementListmoreProdCompile]]; BuildStatementListmoreProdNode: PUBLIC PROC[position: INT, length: INT, StatementList: StatementListNode, Statement: StatementNode] RETURNS[StatementListNode] = BEGIN data: StatementListmoreProdData _ NEW[StatementListmoreProdDataBody _ [ StatementList, Statement]]; RETURN[NEW[StatementListNodeBody_[position, length, StatementListmoreProdProcs, data]]]; END; END..