-- SaffronAG1Impl.mesa -- Copyright Ó 1987 by Xerox Corporation. All rights reserved. -- Generated by hederman.pa at August 17, 1987 4:32:56 pm PDT -- using ThreeCasabaFour [1.2] of June 1, 1987 6:00:00 pm PDT DIRECTORY SaffronAG1Def, SaffronGenericDef, SaffronATDef; SaffronAG1Impl: CEDAR PROGRAM IMPORTS SaffronAG1Def EXPORTS SaffronAG1Def= BEGIN OPEN SaffronAG1Def, SaffronGenericDef, SaffronATDef; -- JunkProd JunkProdProcs: PUBLIC JunkNodeProcs _ NEW[JunkNodeProcsBody _ [JunkProdfoo]]; BuildJunkProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[JunkNode] = BEGIN RETURN[NEW[JunkNodeBody_[position, length, JunkProdProcs, NIL]]]; END; -- TopmodulepProd TopmodulepProdProcs: PUBLIC TopNodeProcs _ NEW[TopNodeProcsBody _ [TopmodulepProdDoTop, TopmodulepProdExplore]]; BuildTopmodulepProdNode: PUBLIC PROC[position: INT, length: INT, ModuleP: ModulePNode] RETURNS[TopNode] = BEGIN data: TopmodulepProdData _ NEW[TopmodulepProdDataBody _ [ ModuleP]]; RETURN[NEW[TopNodeBody_[position, length, TopmodulepProdProcs, data]]]; END; -- ExpsumProd ExpsumProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [ExpsumProdIdVal]]; BuildExpsumProdNode: PUBLIC PROC[position: INT, length: INT, Expleft: ExpNode, AddOp: AddOpNode, Expright: ExpNode] RETURNS[ExpNode] = BEGIN data: ExpsumProdData _ NEW[ExpsumProdDataBody _ [ Expleft, AddOp, Expright]]; RETURN[NEW[ExpNodeBody_[position, length, ExpsumProdProcs, data]]]; END; -- ExpunarysumProd ExpunarysumProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [ExpunarysumProdIdVal]]; BuildExpunarysumProdNode: PUBLIC PROC[position: INT, length: INT, AddOp: AddOpNode, Exp: ExpNode] RETURNS[ExpNode] = BEGIN data: ExpunarysumProdData _ NEW[ExpunarysumProdDataBody _ [ AddOp, Exp]]; RETURN[NEW[ExpNodeBody_[position, length, ExpunarysumProdProcs, data]]]; END; -- ExpproductProd ExpproductProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [ExpproductProdIdVal]]; BuildExpproductProdNode: PUBLIC PROC[position: INT, length: INT, Expleft: ExpNode, MultOp: MultOpNode, Expright: ExpNode] RETURNS[ExpNode] = BEGIN data: ExpproductProdData _ NEW[ExpproductProdDataBody _ [ Expleft, MultOp, Expright]]; RETURN[NEW[ExpNodeBody_[position, length, ExpproductProdProcs, data]]]; END; -- ExporProd ExporProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [ExporProdIdVal]]; BuildExporProdNode: PUBLIC PROC[position: INT, length: INT, Expleft: ExpNode, Expright: ExpNode] RETURNS[ExpNode] = BEGIN data: ExporProdData _ NEW[ExporProdDataBody _ [ Expleft, Expright]]; RETURN[NEW[ExpNodeBody_[position, length, ExporProdProcs, data]]]; END; -- ExpandProd ExpandProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [ExpandProdIdVal]]; BuildExpandProdNode: PUBLIC PROC[position: INT, length: INT, Expleft: ExpNode, Expright: ExpNode] RETURNS[ExpNode] = BEGIN data: ExpandProdData _ NEW[ExpandProdDataBody _ [ Expleft, Expright]]; RETURN[NEW[ExpNodeBody_[position, length, ExpandProdProcs, data]]]; END; -- ExpnotProd ExpnotProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [ExpnotProdIdVal]]; BuildExpnotProdNode: PUBLIC PROC[position: INT, length: INT, Exp: ExpNode] RETURNS[ExpNode] = BEGIN data: ExpnotProdData _ NEW[ExpnotProdDataBody _ [ Exp]]; RETURN[NEW[ExpNodeBody_[position, length, ExpnotProdProcs, data]]]; END; -- ExprelationProd ExprelationProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [ExprelationProdIdVal]]; BuildExprelationProdNode: PUBLIC PROC[position: INT, length: INT, Exp: ExpNode, Relation: RelationNode] RETURNS[ExpNode] = BEGIN data: ExprelationProdData _ NEW[ExprelationProdDataBody _ [ Exp, Relation]]; RETURN[NEW[ExpNodeBody_[position, length, ExprelationProdProcs, data]]]; END; -- ExpifthenelseProd ExpifthenelseProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [ExpifthenelseProdIdVal]]; BuildExpifthenelseProdNode: PUBLIC PROC[position: INT, length: INT, Expcond: ExpNode, Expthenpart: ExpNode, Expelsepart: ExpNode] RETURNS[ExpNode] = BEGIN data: ExpifthenelseProdData _ NEW[ExpifthenelseProdDataBody _ [ Expcond, Expthenpart, Expelsepart]]; RETURN[NEW[ExpNodeBody_[position, length, ExpifthenelseProdProcs, data]]]; END; -- ExpselectProd ExpselectProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [ExpselectProdIdVal]]; BuildExpselectProdNode: PUBLIC PROC[position: INT, length: INT, SelectHead: SelectHeadNode, SelectExpList: SelectExpListNode, Expdefault: ExpNode] RETURNS[ExpNode] = BEGIN data: ExpselectProdData _ NEW[ExpselectProdDataBody _ [ SelectHead, SelectExpList, Expdefault]]; RETURN[NEW[ExpNodeBody_[position, length, ExpselectProdProcs, data]]]; END; -- ExpassignProd ExpassignProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [ExpassignProdIdVal]]; BuildExpassignProdNode: PUBLIC PROC[position: INT, length: INT, Explhs: ExpNode, Exprhs: ExpNode] RETURNS[ExpNode] = BEGIN data: ExpassignProdData _ NEW[ExpassignProdDataBody _ [ Explhs, Exprhs]]; RETURN[NEW[ExpNodeBody_[position, length, ExpassignProdProcs, data]]]; END; -- ExpmultiassignProd ExpmultiassignProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [ExpmultiassignProdIdVal]]; BuildExpmultiassignProdNode: PUBLIC PROC[position: INT, length: INT, ExpList: ExpListNode, Exp: ExpNode] RETURNS[ExpNode] = BEGIN data: ExpmultiassignProdData _ NEW[ExpmultiassignProdDataBody _ [ ExpList, Exp]]; RETURN[NEW[ExpNodeBody_[position, length, ExpmultiassignProdProcs, data]]]; END; -- ExpidProd ExpidProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [ExpidProdIdVal]]; BuildExpidProdNode: PUBLIC PROC[position: INT, length: INT, Id: IdNode] RETURNS[ExpNode] = BEGIN data: ExpidProdData _ NEW[ExpidProdDataBody _ [ Id]]; RETURN[NEW[ExpNodeBody_[position, length, ExpidProdProcs, data]]]; END; -- ExpnumProd ExpnumProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [ExpnumProdIdVal]]; BuildExpnumProdNode: PUBLIC PROC[position: INT, length: INT, Num: NumNode] RETURNS[ExpNode] = BEGIN data: ExpnumProdData _ NEW[ExpnumProdDataBody _ [ Num]]; RETURN[NEW[ExpNodeBody_[position, length, ExpnumProdProcs, data]]]; END; -- ExpstringProd ExpstringProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [ExpstringProdIdVal]]; BuildExpstringProdNode: PUBLIC PROC[position: INT, length: INT, String: StringNode] RETURNS[ExpNode] = BEGIN data: ExpstringProdData _ NEW[ExpstringProdDataBody _ [ String]]; RETURN[NEW[ExpNodeBody_[position, length, ExpstringProdProcs, data]]]; END; -- ExpflnumProd ExpflnumProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [ExpflnumProdIdVal]]; BuildExpflnumProdNode: PUBLIC PROC[position: INT, length: INT, Flnum: FlnumNode] RETURNS[ExpNode] = BEGIN data: ExpflnumProdData _ NEW[ExpflnumProdDataBody _ [ Flnum]]; RETURN[NEW[ExpNodeBody_[position, length, ExpflnumProdProcs, data]]]; END; -- ExpcharProd ExpcharProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [ExpcharProdIdVal]]; BuildExpcharProdNode: PUBLIC PROC[position: INT, length: INT, Char: CharNode] RETURNS[ExpNode] = BEGIN data: ExpcharProdData _ NEW[ExpcharProdDataBody _ [ Char]]; RETURN[NEW[ExpNodeBody_[position, length, ExpcharProdProcs, data]]]; END; -- ExpatomProd ExpatomProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [ExpatomProdIdVal]]; BuildExpatomProdNode: PUBLIC PROC[position: INT, length: INT, Atom: AtomNode] RETURNS[ExpNode] = BEGIN data: ExpatomProdData _ NEW[ExpatomProdDataBody _ [ Atom]]; RETURN[NEW[ExpNodeBody_[position, length, ExpatomProdProcs, data]]]; END; -- ExpnarrowProd ExpnarrowProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [ExpnarrowProdIdVal]]; BuildExpnarrowProdNode: PUBLIC PROC[position: INT, length: INT, Exp: ExpNode, OptType: OptTypeNode, Catch: CatchNode] RETURNS[ExpNode] = BEGIN data: ExpnarrowProdData _ NEW[ExpnarrowProdDataBody _ [ Exp, OptType, Catch]]; RETURN[NEW[ExpNodeBody_[position, length, ExpnarrowProdProcs, data]]]; END; -- ExploopholeProd ExploopholeProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [ExploopholeProdIdVal]]; BuildExploopholeProdNode: PUBLIC PROC[position: INT, length: INT, Exp: ExpNode, OptType: OptTypeNode] RETURNS[ExpNode] = BEGIN data: ExploopholeProdData _ NEW[ExploopholeProdDataBody _ [ Exp, OptType]]; RETURN[NEW[ExpNodeBody_[position, length, ExploopholeProdProcs, data]]]; END; -- ExpapplyProd ExpapplyProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [ExpapplyProdIdVal]]; BuildExpapplyProdNode: PUBLIC PROC[position: INT, length: INT, Exprator: ExpNode, Exprand: ExpNode, Catch: CatchNode] RETURNS[ExpNode] = BEGIN data: ExpapplyProdData _ NEW[ExpapplyProdDataBody _ [ Exprator, Exprand, Catch]]; RETURN[NEW[ExpNodeBody_[position, length, ExpapplyProdProcs, data]]]; END; -- ExpqualifierProd ExpqualifierProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [ExpqualifierProdIdVal]]; BuildExpqualifierProdNode: PUBLIC PROC[position: INT, length: INT, Exp: ExpNode, Qualifier: QualifierNode] RETURNS[ExpNode] = BEGIN data: ExpqualifierProdData _ NEW[ExpqualifierProdDataBody _ [ Exp, Qualifier]]; RETURN[NEW[ExpNodeBody_[position, length, ExpqualifierProdProcs, data]]]; END; -- ExpexplistProd ExpexplistProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [ExpexplistProdIdVal]]; BuildExpexplistProdNode: PUBLIC PROC[position: INT, length: INT, ExpList: ExpListNode] RETURNS[ExpNode] = BEGIN data: ExpexplistProdData _ NEW[ExpexplistProdDataBody _ [ ExpList]]; RETURN[NEW[ExpNodeBody_[position, length, ExpexplistProdProcs, data]]]; END; -- ExpprefixopProd ExpprefixopProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [ExpprefixopProdIdVal]]; BuildExpprefixopProdNode: PUBLIC PROC[position: INT, length: INT, PrefixOp: PrefixOpNode, OrderList: OrderListNode] RETURNS[ExpNode] = BEGIN data: ExpprefixopProdData _ NEW[ExpprefixopProdDataBody _ [ PrefixOp, OrderList]]; RETURN[NEW[ExpNodeBody_[position, length, ExpprefixopProdProcs, data]]]; END; -- ExpvalProd ExpvalProdProcs: PUBLIC ExpNodeProcs _ NEW[ExpNodeProcsBody _ [ExpvalProdIdVal]]; 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]]; 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]]; 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]]; 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]]; 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]]; 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]]; 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]]; 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]]; 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]]; 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]]; 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]]; 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]]; 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]]; 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]]; 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]]; 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]]; 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]]; 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]]; 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]]; 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]]; 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]]; 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 _ [NumdecimalProdfoo]]; 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 _ [NumoctalProdfoo]]; 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 _ [NumhexProdfoo]]; 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 _ [AddOpplusProdfoo]]; BuildAddOpplusProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[AddOpNode] = BEGIN RETURN[NEW[AddOpNodeBody_[position, length, AddOpplusProdProcs, NIL]]]; END; -- AddOpminusProd AddOpminusProdProcs: PUBLIC AddOpNodeProcs _ NEW[AddOpNodeProcsBody _ [AddOpminusProdfoo]]; BuildAddOpminusProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[AddOpNode] = BEGIN RETURN[NEW[AddOpNodeBody_[position, length, AddOpminusProdProcs, NIL]]]; END; -- MultOptimesProd MultOptimesProdProcs: PUBLIC MultOpNodeProcs _ NEW[MultOpNodeProcsBody _ [MultOptimesProdfoo]]; BuildMultOptimesProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[MultOpNode] = BEGIN RETURN[NEW[MultOpNodeBody_[position, length, MultOptimesProdProcs, NIL]]]; END; -- MultOpdivideProd MultOpdivideProdProcs: PUBLIC MultOpNodeProcs _ NEW[MultOpNodeProcsBody _ [MultOpdivideProdfoo]]; BuildMultOpdivideProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[MultOpNode] = BEGIN RETURN[NEW[MultOpNodeBody_[position, length, MultOpdivideProdProcs, NIL]]]; END; -- MultOpmodProd MultOpmodProdProcs: PUBLIC MultOpNodeProcs _ NEW[MultOpNodeProcsBody _ [MultOpmodProdfoo]]; BuildMultOpmodProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[MultOpNode] = BEGIN RETURN[NEW[MultOpNodeBody_[position, length, MultOpmodProdProcs, NIL]]]; END; END..