-- SaffronAG1bImpl.mesa -- Copyright Ó 1987 by Xerox Corporation. All rights reserved. -- Generated by Rauen.pa at September 1, 1988 7:24:19 pm PDT -- using ThreeCasabaFour [1.2] of June 1, 1987 6:00:00 pm PDT DIRECTORY SaffronAG1bDef, SaffronGenericDef, SaffronATDef; SaffronAG1bImpl: CEDAR PROGRAM IMPORTS SaffronAG1bDef EXPORTS SaffronAG1bDef= BEGIN OPEN SaffronAG1bDef, SaffronGenericDef, SaffronATDef; -- ExpvalProd ExpvalProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [ExpvalProdIdVal, ExpvalProdCompileExpression, ExpvalProdAddValueDependencies, ExpvalProdCompileLValue, ExpvalProdEvaluateExpression]]; BuildExpvalProdNode: PUBLIC PROC[position: INT, length: INT, OrderList: OrderListNode] RETURNS[ExpNode] = BEGIN data: ExpvalProdData _ NEW[ExpvalProdDataBody _ [ OrderList]]; RETURN[NEW[ExpNodeBody_[position, length, ExpvalProdProcs, data]]]; END; -- ExpallProd ExpallProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [ExpallProdIdVal, ExpallProdCompileExpression, ExpallProdAddValueDependencies, ExpallProdCompileLValue, ExpallProdEvaluateExpression]]; BuildExpallProdNode: PUBLIC PROC[position: INT, length: INT, OrderList: OrderListNode] RETURNS[ExpNode] = BEGIN data: ExpallProdData _ NEW[ExpallProdDataBody _ [ OrderList]]; RETURN[NEW[ExpNodeBody_[position, length, ExpallProdProcs, data]]]; END; -- ExpnewProd ExpnewProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [ExpnewProdIdVal, ExpnewProdCompileExpression, ExpnewProdAddValueDependencies, ExpnewProdCompileLValue, ExpnewProdEvaluateExpression]]; BuildExpnewProdNode: PUBLIC PROC[position: INT, length: INT, New: NewNode, TypeExp: TypeExpNode, Initialization: InitializationNode, Catch: CatchNode] RETURNS[ExpNode] = BEGIN data: ExpnewProdData _ NEW[ExpnewProdDataBody _ [ New, TypeExp, Initialization, Catch]]; RETURN[NEW[ExpNodeBody_[position, length, ExpnewProdProcs, data]]]; END; -- ExpconsProd ExpconsProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [ExpconsProdIdVal, ExpconsProdCompileExpression, ExpconsProdAddValueDependencies, ExpconsProdCompileLValue, ExpconsProdEvaluateExpression]]; BuildExpconsProdNode: PUBLIC PROC[position: INT, length: INT, Cons: ConsNode, ExpList: ExpListNode, Catch: CatchNode] RETURNS[ExpNode] = BEGIN data: ExpconsProdData _ NEW[ExpconsProdDataBody _ [ Cons, ExpList, Catch]]; RETURN[NEW[ExpNodeBody_[position, length, ExpconsProdProcs, data]]]; END; -- ExplistconsProd ExplistconsProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [ExplistconsProdIdVal, ExplistconsProdCompileExpression, ExplistconsProdAddValueDependencies, ExplistconsProdCompileLValue, ExplistconsProdEvaluateExpression]]; BuildExplistconsProdNode: PUBLIC PROC[position: INT, length: INT, ListCons: ListConsNode, ExpList: ExpListNode] RETURNS[ExpNode] = BEGIN data: ExplistconsProdData _ NEW[ExplistconsProdDataBody _ [ ListCons, ExpList]]; RETURN[NEW[ExpNodeBody_[position, length, ExplistconsProdProcs, data]]]; END; -- ExpnilProd ExpnilProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [ExpnilProdIdVal, ExpnilProdCompileExpression, ExpnilProdAddValueDependencies, ExpnilProdCompileLValue, ExpnilProdEvaluateExpression]]; BuildExpnilProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[ExpNode] = BEGIN RETURN[NEW[ExpNodeBody_[position, length, ExpnilProdProcs, NIL]]]; END; -- ExptypeopProd ExptypeopProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [ExptypeopProdIdVal, ExptypeopProdCompileExpression, ExptypeopProdAddValueDependencies, ExptypeopProdCompileLValue, ExptypeopProdEvaluateExpression]]; BuildExptypeopProdNode: PUBLIC PROC[position: INT, length: INT, TypeOp: TypeOpNode, TypeExp: TypeExpNode] RETURNS[ExpNode] = BEGIN data: ExptypeopProdData _ NEW[ExptypeopProdDataBody _ [ TypeOp, TypeExp]]; RETURN[NEW[ExpNodeBody_[position, length, ExptypeopProdProcs, data]]]; END; -- ExpsizeProd ExpsizeProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [ExpsizeProdIdVal, ExpsizeProdCompileExpression, ExpsizeProdAddValueDependencies, ExpsizeProdCompileLValue, ExpsizeProdEvaluateExpression]]; BuildExpsizeProdNode: PUBLIC PROC[position: INT, length: INT, TypeExp: TypeExpNode] RETURNS[ExpNode] = BEGIN data: ExpsizeProdData _ NEW[ExpsizeProdDataBody _ [ TypeExp]]; RETURN[NEW[ExpNodeBody_[position, length, ExpsizeProdProcs, data]]]; END; -- Expsize2Prod Expsize2ProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [Expsize2ProdIdVal, Expsize2ProdCompileExpression, Expsize2ProdAddValueDependencies, Expsize2ProdCompileLValue, Expsize2ProdEvaluateExpression]]; BuildExpsize2ProdNode: PUBLIC PROC[position: INT, length: INT, TypeExp: TypeExpNode, Exp: ExpNode] RETURNS[ExpNode] = BEGIN data: Expsize2ProdData _ NEW[Expsize2ProdDataBody _ [ TypeExp, Exp]]; RETURN[NEW[ExpNodeBody_[position, length, Expsize2ProdProcs, data]]]; END; -- ExpbitsProd ExpbitsProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [ExpbitsProdIdVal, ExpbitsProdCompileExpression, ExpbitsProdAddValueDependencies, ExpbitsProdCompileLValue, ExpbitsProdEvaluateExpression]]; BuildExpbitsProdNode: PUBLIC PROC[position: INT, length: INT, TypeExp: TypeExpNode] RETURNS[ExpNode] = BEGIN data: ExpbitsProdData _ NEW[ExpbitsProdDataBody _ [ TypeExp]]; RETURN[NEW[ExpNodeBody_[position, length, ExpbitsProdProcs, data]]]; END; -- Expbits2Prod Expbits2ProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [Expbits2ProdIdVal, Expbits2ProdCompileExpression, Expbits2ProdAddValueDependencies, Expbits2ProdCompileLValue, Expbits2ProdEvaluateExpression]]; BuildExpbits2ProdNode: PUBLIC PROC[position: INT, length: INT, TypeExp: TypeExpNode, Exp: ExpNode] RETURNS[ExpNode] = BEGIN data: Expbits2ProdData _ NEW[Expbits2ProdDataBody _ [ TypeExp, Exp]]; RETURN[NEW[ExpNodeBody_[position, length, Expbits2ProdProcs, data]]]; END; -- ExpbytesProd ExpbytesProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [ExpbytesProdIdVal, ExpbytesProdCompileExpression, ExpbytesProdAddValueDependencies, ExpbytesProdCompileLValue, ExpbytesProdEvaluateExpression]]; BuildExpbytesProdNode: PUBLIC PROC[position: INT, length: INT, TypeExp: TypeExpNode] RETURNS[ExpNode] = BEGIN data: ExpbytesProdData _ NEW[ExpbytesProdDataBody _ [ TypeExp]]; RETURN[NEW[ExpNodeBody_[position, length, ExpbytesProdProcs, data]]]; END; -- Expbytes2Prod Expbytes2ProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [Expbytes2ProdIdVal, Expbytes2ProdCompileExpression, Expbytes2ProdAddValueDependencies, Expbytes2ProdCompileLValue, Expbytes2ProdEvaluateExpression]]; BuildExpbytes2ProdNode: PUBLIC PROC[position: INT, length: INT, TypeExp: TypeExpNode, Exp: ExpNode] RETURNS[ExpNode] = BEGIN data: Expbytes2ProdData _ NEW[Expbytes2ProdDataBody _ [ TypeExp, Exp]]; RETURN[NEW[ExpNodeBody_[position, length, Expbytes2ProdProcs, data]]]; END; -- ExpunitsProd ExpunitsProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [ExpunitsProdIdVal, ExpunitsProdCompileExpression, ExpunitsProdAddValueDependencies, ExpunitsProdCompileLValue, ExpunitsProdEvaluateExpression]]; BuildExpunitsProdNode: PUBLIC PROC[position: INT, length: INT, TypeExp: TypeExpNode] RETURNS[ExpNode] = BEGIN data: ExpunitsProdData _ NEW[ExpunitsProdDataBody _ [ TypeExp]]; RETURN[NEW[ExpNodeBody_[position, length, ExpunitsProdProcs, data]]]; END; -- Expunits2Prod Expunits2ProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [Expunits2ProdIdVal, Expunits2ProdCompileExpression, Expunits2ProdAddValueDependencies, Expunits2ProdCompileLValue, Expunits2ProdEvaluateExpression]]; BuildExpunits2ProdNode: PUBLIC PROC[position: INT, length: INT, TypeExp: TypeExpNode, Exp: ExpNode] RETURNS[ExpNode] = BEGIN data: Expunits2ProdData _ NEW[Expunits2ProdDataBody _ [ TypeExp, Exp]]; RETURN[NEW[ExpNodeBody_[position, length, Expunits2ProdProcs, data]]]; END; -- ExpwordsProd ExpwordsProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [ExpwordsProdIdVal, ExpwordsProdCompileExpression, ExpwordsProdAddValueDependencies, ExpwordsProdCompileLValue, ExpwordsProdEvaluateExpression]]; BuildExpwordsProdNode: PUBLIC PROC[position: INT, length: INT, TypeExp: TypeExpNode] RETURNS[ExpNode] = BEGIN data: ExpwordsProdData _ NEW[ExpwordsProdDataBody _ [ TypeExp]]; RETURN[NEW[ExpNodeBody_[position, length, ExpwordsProdProcs, data]]]; END; -- Expwords2Prod Expwords2ProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [Expwords2ProdIdVal, Expwords2ProdCompileExpression, Expwords2ProdAddValueDependencies, Expwords2ProdCompileLValue, Expwords2ProdEvaluateExpression]]; BuildExpwords2ProdNode: PUBLIC PROC[position: INT, length: INT, TypeExp: TypeExpNode, Exp: ExpNode] RETURNS[ExpNode] = BEGIN data: Expwords2ProdData _ NEW[Expwords2ProdDataBody _ [ TypeExp, Exp]]; RETURN[NEW[ExpNodeBody_[position, length, Expwords2ProdProcs, data]]]; END; -- ExpistypeProd ExpistypeProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [ExpistypeProdIdVal, ExpistypeProdCompileExpression, ExpistypeProdAddValueDependencies, ExpistypeProdCompileLValue, ExpistypeProdEvaluateExpression]]; BuildExpistypeProdNode: PUBLIC PROC[position: INT, length: INT, Exp: ExpNode, TypeExp: TypeExpNode] RETURNS[ExpNode] = BEGIN data: ExpistypeProdData _ NEW[ExpistypeProdDataBody _ [ Exp, TypeExp]]; RETURN[NEW[ExpNodeBody_[position, length, ExpistypeProdProcs, data]]]; END; -- ExpaddressProd ExpaddressProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [ExpaddressProdIdVal, ExpaddressProdCompileExpression, ExpaddressProdAddValueDependencies, ExpaddressProdCompileLValue, ExpaddressProdEvaluateExpression]]; BuildExpaddressProdNode: PUBLIC PROC[position: INT, length: INT, Exp: ExpNode] RETURNS[ExpNode] = BEGIN data: ExpaddressProdData _ NEW[ExpaddressProdDataBody _ [ Exp]]; RETURN[NEW[ExpNodeBody_[position, length, ExpaddressProdProcs, data]]]; END; -- ExpdescriptorProd ExpdescriptorProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [ExpdescriptorProdIdVal, ExpdescriptorProdCompileExpression, ExpdescriptorProdAddValueDependencies, ExpdescriptorProdCompileLValue, ExpdescriptorProdEvaluateExpression]]; BuildExpdescriptorProdNode: PUBLIC PROC[position: INT, length: INT, DescList: DescListNode] RETURNS[ExpNode] = BEGIN data: ExpdescriptorProdData _ NEW[ExpdescriptorProdDataBody _ [ DescList]]; RETURN[NEW[ExpNodeBody_[position, length, ExpdescriptorProdProcs, data]]]; END; -- ExperrorProd ExperrorProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [ExperrorProdIdVal, ExperrorProdCompileExpression, ExperrorProdAddValueDependencies, ExperrorProdCompileLValue, ExperrorProdEvaluateExpression]]; BuildExperrorProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[ExpNode] = BEGIN RETURN[NEW[ExpNodeBody_[position, length, ExperrorProdProcs, NIL]]]; END; -- ExptransferProd ExptransferProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [ExptransferProdIdVal, ExptransferProdCompileExpression, ExptransferProdAddValueDependencies, ExptransferProdCompileLValue, ExptransferProdEvaluateExpression]]; BuildExptransferProdNode: PUBLIC PROC[position: INT, length: INT, TransferOp: TransferOpNode, Exp: ExpNode] RETURNS[ExpNode] = BEGIN data: ExptransferProdData _ NEW[ExptransferProdDataBody _ [ TransferOp, Exp]]; RETURN[NEW[ExpNodeBody_[position, length, ExptransferProdProcs, data]]]; END; -- NumdecimalProd NumdecimalProdProcs: PUBLIC NumNodeProcs _ NEW[NumNodeProcsBody _ [NumdecimalProdIntegerValueFromLiteral]]; BuildNumdecimalProdNode: PUBLIC PROC[position: INT, length: INT, Decimalnum: DecimalnumNode] RETURNS[NumNode] = BEGIN data: NumdecimalProdData _ NEW[NumdecimalProdDataBody _ [ Decimalnum]]; RETURN[NEW[NumNodeBody_[position, length, NumdecimalProdProcs, data]]]; END; -- NumoctalProd NumoctalProdProcs: PUBLIC NumNodeProcs _ NEW[NumNodeProcsBody _ [NumoctalProdIntegerValueFromLiteral]]; BuildNumoctalProdNode: PUBLIC PROC[position: INT, length: INT, Octalnum: OctalnumNode] RETURNS[NumNode] = BEGIN data: NumoctalProdData _ NEW[NumoctalProdDataBody _ [ Octalnum]]; RETURN[NEW[NumNodeBody_[position, length, NumoctalProdProcs, data]]]; END; -- NumhexProd NumhexProdProcs: PUBLIC NumNodeProcs _ NEW[NumNodeProcsBody _ [NumhexProdIntegerValueFromLiteral]]; BuildNumhexProdNode: PUBLIC PROC[position: INT, length: INT, Hexnum: HexnumNode] RETURNS[NumNode] = BEGIN data: NumhexProdData _ NEW[NumhexProdDataBody _ [ Hexnum]]; RETURN[NEW[NumNodeBody_[position, length, NumhexProdProcs, data]]]; END; -- AddOpplusProd AddOpplusProdProcs: PUBLIC AddOpNodeProcs _ NEW[AddOpNodeProcsBody _ [AddOpplusProdIsPlus, AddOpplusProdIsMinus]]; BuildAddOpplusProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[AddOpNode] = BEGIN RETURN[NEW[AddOpNodeBody_[position, length, AddOpplusProdProcs, NIL]]]; END; -- AddOpminusProd AddOpminusProdProcs: PUBLIC AddOpNodeProcs _ NEW[AddOpNodeProcsBody _ [AddOpminusProdIsPlus, AddOpminusProdIsMinus]]; BuildAddOpminusProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[AddOpNode] = BEGIN RETURN[NEW[AddOpNodeBody_[position, length, AddOpminusProdProcs, NIL]]]; END; -- MultOptimesProd MultOptimesProdProcs: PUBLIC MultOpNodeProcs _ NEW[MultOpNodeProcsBody _ [MultOptimesProdIsTimes, MultOptimesProdIsDivide, MultOptimesProdIsMod]]; BuildMultOptimesProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[MultOpNode] = BEGIN RETURN[NEW[MultOpNodeBody_[position, length, MultOptimesProdProcs, NIL]]]; END; -- MultOpdivideProd MultOpdivideProdProcs: PUBLIC MultOpNodeProcs _ NEW[MultOpNodeProcsBody _ [MultOpdivideProdIsTimes, MultOpdivideProdIsDivide, MultOpdivideProdIsMod]]; BuildMultOpdivideProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[MultOpNode] = BEGIN RETURN[NEW[MultOpNodeBody_[position, length, MultOpdivideProdProcs, NIL]]]; END; -- MultOpmodProd MultOpmodProdProcs: PUBLIC MultOpNodeProcs _ NEW[MultOpNodeProcsBody _ [MultOpmodProdIsTimes, MultOpmodProdIsDivide, MultOpmodProdIsMod]]; BuildMultOpmodProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[MultOpNode] = BEGIN RETURN[NEW[MultOpNodeBody_[position, length, MultOpmodProdProcs, NIL]]]; END; END..