-- SaffronAG1Def.mesa -- Copyright Ó 1987 by Xerox Corporation. All rights reserved. -- Generated by Rauen.pa at July 31, 1988 8:44:05 pm PDT -- using ThreeCasabaFour [1.2] of June 1, 1987 6:00:00 pm PDT DIRECTORY SaffronTreeDeclsDef, SaffronGenericDef, SaffronATDef; SaffronAG1Def: CEDAR DEFINITIONS = BEGIN OPEN SaffronTreeDeclsDef, SaffronGenericDef, SaffronATDef; -- JunkProd JunkProdData: TYPE = REF JunkProdDataBody; JunkProdDataBody: TYPE = RECORD[ ]; JunkProdProcs: JunkNodeProcs; BuildJunkProdNode: PROC[position: INT, length: INT] RETURNS[JunkNode]; JunkProdfoo: fooProcType; -- TopmodulepProd TopmodulepProdData: TYPE = REF TopmodulepProdDataBody; TopmodulepProdDataBody: TYPE = RECORD[ ModuleP: ModulePNode]; TopmodulepProdProcs: TopNodeProcs; BuildTopmodulepProdNode: PROC[position: INT, length: INT, ModuleP: ModulePNode] RETURNS[TopNode]; TopmodulepProdDoTop: DoTopProcType; TopmodulepProdExplore: ExploreProcType; -- ExpsumProd ExpsumProdData: TYPE = REF ExpsumProdDataBody; ExpsumProdDataBody: TYPE = RECORD[ Expleft: ExpNode, AddOp: AddOpNode, Expright: ExpNode]; ExpsumProdProcs: ExpNodeProcs; BuildExpsumProdNode: PROC[position: INT, length: INT, Expleft: ExpNode, AddOp: AddOpNode, Expright: ExpNode] RETURNS[ExpNode]; ExpsumProdIdVal: IdValProcType; ExpsumProdCompileExpression: CompileExpressionProcType; ExpsumProdAddDependencies: AddDependenciesProcType; -- ExpunarysumProd ExpunarysumProdData: TYPE = REF ExpunarysumProdDataBody; ExpunarysumProdDataBody: TYPE = RECORD[ AddOp: AddOpNode, Exp: ExpNode]; ExpunarysumProdProcs: ExpNodeProcs; BuildExpunarysumProdNode: PROC[position: INT, length: INT, AddOp: AddOpNode, Exp: ExpNode] RETURNS[ExpNode]; ExpunarysumProdIdVal: IdValProcType; ExpunarysumProdCompileExpression: CompileExpressionProcType; ExpunarysumProdAddDependencies: AddDependenciesProcType; -- ExpproductProd ExpproductProdData: TYPE = REF ExpproductProdDataBody; ExpproductProdDataBody: TYPE = RECORD[ Expleft: ExpNode, MultOp: MultOpNode, Expright: ExpNode]; ExpproductProdProcs: ExpNodeProcs; BuildExpproductProdNode: PROC[position: INT, length: INT, Expleft: ExpNode, MultOp: MultOpNode, Expright: ExpNode] RETURNS[ExpNode]; ExpproductProdIdVal: IdValProcType; ExpproductProdCompileExpression: CompileExpressionProcType; ExpproductProdAddDependencies: AddDependenciesProcType; -- ExporProd ExporProdData: TYPE = REF ExporProdDataBody; ExporProdDataBody: TYPE = RECORD[ Expleft: ExpNode, Expright: ExpNode]; ExporProdProcs: ExpNodeProcs; BuildExporProdNode: PROC[position: INT, length: INT, Expleft: ExpNode, Expright: ExpNode] RETURNS[ExpNode]; ExporProdIdVal: IdValProcType; ExporProdCompileExpression: CompileExpressionProcType; ExporProdAddDependencies: AddDependenciesProcType; -- ExpandProd ExpandProdData: TYPE = REF ExpandProdDataBody; ExpandProdDataBody: TYPE = RECORD[ Expleft: ExpNode, Expright: ExpNode]; ExpandProdProcs: ExpNodeProcs; BuildExpandProdNode: PROC[position: INT, length: INT, Expleft: ExpNode, Expright: ExpNode] RETURNS[ExpNode]; ExpandProdIdVal: IdValProcType; ExpandProdCompileExpression: CompileExpressionProcType; ExpandProdAddDependencies: AddDependenciesProcType; -- ExpnotProd ExpnotProdData: TYPE = REF ExpnotProdDataBody; ExpnotProdDataBody: TYPE = RECORD[ Exp: ExpNode]; ExpnotProdProcs: ExpNodeProcs; BuildExpnotProdNode: PROC[position: INT, length: INT, Exp: ExpNode] RETURNS[ExpNode]; ExpnotProdIdVal: IdValProcType; ExpnotProdCompileExpression: CompileExpressionProcType; ExpnotProdAddDependencies: AddDependenciesProcType; -- ExprelationProd ExprelationProdData: TYPE = REF ExprelationProdDataBody; ExprelationProdDataBody: TYPE = RECORD[ Exp: ExpNode, Relation: RelationNode]; ExprelationProdProcs: ExpNodeProcs; BuildExprelationProdNode: PROC[position: INT, length: INT, Exp: ExpNode, Relation: RelationNode] RETURNS[ExpNode]; ExprelationProdIdVal: IdValProcType; ExprelationProdCompileExpression: CompileExpressionProcType; ExprelationProdAddDependencies: AddDependenciesProcType; -- ExpifthenelseProd ExpifthenelseProdData: TYPE = REF ExpifthenelseProdDataBody; ExpifthenelseProdDataBody: TYPE = RECORD[ Expcond: ExpNode, Expthenpart: ExpNode, Expelsepart: ExpNode]; ExpifthenelseProdProcs: ExpNodeProcs; BuildExpifthenelseProdNode: PROC[position: INT, length: INT, Expcond: ExpNode, Expthenpart: ExpNode, Expelsepart: ExpNode] RETURNS[ExpNode]; ExpifthenelseProdIdVal: IdValProcType; ExpifthenelseProdCompileExpression: CompileExpressionProcType; ExpifthenelseProdAddDependencies: AddDependenciesProcType; -- ExpselectProd ExpselectProdData: TYPE = REF ExpselectProdDataBody; ExpselectProdDataBody: TYPE = RECORD[ SelectHead: SelectHeadNode, SelectExpList: SelectExpListNode, Expdefault: ExpNode]; ExpselectProdProcs: ExpNodeProcs; BuildExpselectProdNode: PROC[position: INT, length: INT, SelectHead: SelectHeadNode, SelectExpList: SelectExpListNode, Expdefault: ExpNode] RETURNS[ExpNode]; ExpselectProdIdVal: IdValProcType; ExpselectProdCompileExpression: CompileExpressionProcType; ExpselectProdAddDependencies: AddDependenciesProcType; -- ExpassignProd ExpassignProdData: TYPE = REF ExpassignProdDataBody; ExpassignProdDataBody: TYPE = RECORD[ Explhs: ExpNode, Exprhs: ExpNode]; ExpassignProdProcs: ExpNodeProcs; BuildExpassignProdNode: PROC[position: INT, length: INT, Explhs: ExpNode, Exprhs: ExpNode] RETURNS[ExpNode]; ExpassignProdIdVal: IdValProcType; ExpassignProdCompileExpression: CompileExpressionProcType; ExpassignProdAddDependencies: AddDependenciesProcType; -- ExpmultiassignProd ExpmultiassignProdData: TYPE = REF ExpmultiassignProdDataBody; ExpmultiassignProdDataBody: TYPE = RECORD[ ExpList: ExpListNode, Exp: ExpNode]; ExpmultiassignProdProcs: ExpNodeProcs; BuildExpmultiassignProdNode: PROC[position: INT, length: INT, ExpList: ExpListNode, Exp: ExpNode] RETURNS[ExpNode]; ExpmultiassignProdIdVal: IdValProcType; ExpmultiassignProdCompileExpression: CompileExpressionProcType; ExpmultiassignProdAddDependencies: AddDependenciesProcType; -- ExpidProd ExpidProdData: TYPE = REF ExpidProdDataBody; ExpidProdDataBody: TYPE = RECORD[ Id: IdNode]; ExpidProdProcs: ExpNodeProcs; BuildExpidProdNode: PROC[position: INT, length: INT, Id: IdNode] RETURNS[ExpNode]; ExpidProdIdVal: IdValProcType; ExpidProdCompileExpression: CompileExpressionProcType; ExpidProdAddDependencies: AddDependenciesProcType; -- ExpnumProd ExpnumProdData: TYPE = REF ExpnumProdDataBody; ExpnumProdDataBody: TYPE = RECORD[ Num: NumNode]; ExpnumProdProcs: ExpNodeProcs; BuildExpnumProdNode: PROC[position: INT, length: INT, Num: NumNode] RETURNS[ExpNode]; ExpnumProdIdVal: IdValProcType; ExpnumProdCompileExpression: CompileExpressionProcType; ExpnumProdAddDependencies: AddDependenciesProcType; -- ExpstringProd ExpstringProdData: TYPE = REF ExpstringProdDataBody; ExpstringProdDataBody: TYPE = RECORD[ String: StringNode]; ExpstringProdProcs: ExpNodeProcs; BuildExpstringProdNode: PROC[position: INT, length: INT, String: StringNode] RETURNS[ExpNode]; ExpstringProdIdVal: IdValProcType; ExpstringProdCompileExpression: CompileExpressionProcType; ExpstringProdAddDependencies: AddDependenciesProcType; -- ExpflnumProd ExpflnumProdData: TYPE = REF ExpflnumProdDataBody; ExpflnumProdDataBody: TYPE = RECORD[ Flnum: FlnumNode]; ExpflnumProdProcs: ExpNodeProcs; BuildExpflnumProdNode: PROC[position: INT, length: INT, Flnum: FlnumNode] RETURNS[ExpNode]; ExpflnumProdIdVal: IdValProcType; ExpflnumProdCompileExpression: CompileExpressionProcType; ExpflnumProdAddDependencies: AddDependenciesProcType; -- ExpcharProd ExpcharProdData: TYPE = REF ExpcharProdDataBody; ExpcharProdDataBody: TYPE = RECORD[ Char: CharNode]; ExpcharProdProcs: ExpNodeProcs; BuildExpcharProdNode: PROC[position: INT, length: INT, Char: CharNode] RETURNS[ExpNode]; ExpcharProdIdVal: IdValProcType; ExpcharProdCompileExpression: CompileExpressionProcType; ExpcharProdAddDependencies: AddDependenciesProcType; -- ExpatomProd ExpatomProdData: TYPE = REF ExpatomProdDataBody; ExpatomProdDataBody: TYPE = RECORD[ Atom: AtomNode]; ExpatomProdProcs: ExpNodeProcs; BuildExpatomProdNode: PROC[position: INT, length: INT, Atom: AtomNode] RETURNS[ExpNode]; ExpatomProdIdVal: IdValProcType; ExpatomProdCompileExpression: CompileExpressionProcType; ExpatomProdAddDependencies: AddDependenciesProcType; -- ExpnarrowProd ExpnarrowProdData: TYPE = REF ExpnarrowProdDataBody; ExpnarrowProdDataBody: TYPE = RECORD[ Exp: ExpNode, OptType: OptTypeNode, Catch: CatchNode]; ExpnarrowProdProcs: ExpNodeProcs; BuildExpnarrowProdNode: PROC[position: INT, length: INT, Exp: ExpNode, OptType: OptTypeNode, Catch: CatchNode] RETURNS[ExpNode]; ExpnarrowProdIdVal: IdValProcType; ExpnarrowProdCompileExpression: CompileExpressionProcType; ExpnarrowProdAddDependencies: AddDependenciesProcType; -- ExploopholeProd ExploopholeProdData: TYPE = REF ExploopholeProdDataBody; ExploopholeProdDataBody: TYPE = RECORD[ Exp: ExpNode, OptType: OptTypeNode]; ExploopholeProdProcs: ExpNodeProcs; BuildExploopholeProdNode: PROC[position: INT, length: INT, Exp: ExpNode, OptType: OptTypeNode] RETURNS[ExpNode]; ExploopholeProdIdVal: IdValProcType; ExploopholeProdCompileExpression: CompileExpressionProcType; ExploopholeProdAddDependencies: AddDependenciesProcType; -- ExpapplyProd ExpapplyProdData: TYPE = REF ExpapplyProdDataBody; ExpapplyProdDataBody: TYPE = RECORD[ Exprator: ExpNode, Exprand: ExpNode, Catch: CatchNode]; ExpapplyProdProcs: ExpNodeProcs; BuildExpapplyProdNode: PROC[position: INT, length: INT, Exprator: ExpNode, Exprand: ExpNode, Catch: CatchNode] RETURNS[ExpNode]; ExpapplyProdIdVal: IdValProcType; ExpapplyProdCompileExpression: CompileExpressionProcType; ExpapplyProdAddDependencies: AddDependenciesProcType; -- ExpqualifierProd ExpqualifierProdData: TYPE = REF ExpqualifierProdDataBody; ExpqualifierProdDataBody: TYPE = RECORD[ Exp: ExpNode, Qualifier: QualifierNode]; ExpqualifierProdProcs: ExpNodeProcs; BuildExpqualifierProdNode: PROC[position: INT, length: INT, Exp: ExpNode, Qualifier: QualifierNode] RETURNS[ExpNode]; ExpqualifierProdIdVal: IdValProcType; ExpqualifierProdCompileExpression: CompileExpressionProcType; ExpqualifierProdAddDependencies: AddDependenciesProcType; -- ExpexplistProd ExpexplistProdData: TYPE = REF ExpexplistProdDataBody; ExpexplistProdDataBody: TYPE = RECORD[ ExpList: ExpListNode]; ExpexplistProdProcs: ExpNodeProcs; BuildExpexplistProdNode: PROC[position: INT, length: INT, ExpList: ExpListNode] RETURNS[ExpNode]; ExpexplistProdIdVal: IdValProcType; ExpexplistProdCompileExpression: CompileExpressionProcType; ExpexplistProdAddDependencies: AddDependenciesProcType; -- ExpprefixopProd ExpprefixopProdData: TYPE = REF ExpprefixopProdDataBody; ExpprefixopProdDataBody: TYPE = RECORD[ PrefixOp: PrefixOpNode, OrderList: OrderListNode]; ExpprefixopProdProcs: ExpNodeProcs; BuildExpprefixopProdNode: PROC[position: INT, length: INT, PrefixOp: PrefixOpNode, OrderList: OrderListNode] RETURNS[ExpNode]; ExpprefixopProdIdVal: IdValProcType; ExpprefixopProdCompileExpression: CompileExpressionProcType; ExpprefixopProdAddDependencies: AddDependenciesProcType; -- ExpvalProd ExpvalProdData: TYPE = REF ExpvalProdDataBody; ExpvalProdDataBody: TYPE = RECORD[ OrderList: OrderListNode]; ExpvalProdProcs: ExpNodeProcs; BuildExpvalProdNode: PROC[position: INT, length: INT, OrderList: OrderListNode] RETURNS[ExpNode]; ExpvalProdIdVal: IdValProcType; ExpvalProdCompileExpression: CompileExpressionProcType; ExpvalProdAddDependencies: AddDependenciesProcType; -- ExpallProd ExpallProdData: TYPE = REF ExpallProdDataBody; ExpallProdDataBody: TYPE = RECORD[ OrderList: OrderListNode]; ExpallProdProcs: ExpNodeProcs; BuildExpallProdNode: PROC[position: INT, length: INT, OrderList: OrderListNode] RETURNS[ExpNode]; ExpallProdIdVal: IdValProcType; ExpallProdCompileExpression: CompileExpressionProcType; ExpallProdAddDependencies: AddDependenciesProcType; -- ExpnewProd ExpnewProdData: TYPE = REF ExpnewProdDataBody; ExpnewProdDataBody: TYPE = RECORD[ New: NewNode, TypeExp: TypeExpNode, Initialization: InitializationNode, Catch: CatchNode]; ExpnewProdProcs: ExpNodeProcs; BuildExpnewProdNode: PROC[position: INT, length: INT, New: NewNode, TypeExp: TypeExpNode, Initialization: InitializationNode, Catch: CatchNode] RETURNS[ExpNode]; ExpnewProdIdVal: IdValProcType; ExpnewProdCompileExpression: CompileExpressionProcType; ExpnewProdAddDependencies: AddDependenciesProcType; -- ExpconsProd ExpconsProdData: TYPE = REF ExpconsProdDataBody; ExpconsProdDataBody: TYPE = RECORD[ Cons: ConsNode, ExpList: ExpListNode, Catch: CatchNode]; ExpconsProdProcs: ExpNodeProcs; BuildExpconsProdNode: PROC[position: INT, length: INT, Cons: ConsNode, ExpList: ExpListNode, Catch: CatchNode] RETURNS[ExpNode]; ExpconsProdIdVal: IdValProcType; ExpconsProdCompileExpression: CompileExpressionProcType; ExpconsProdAddDependencies: AddDependenciesProcType; -- ExplistconsProd ExplistconsProdData: TYPE = REF ExplistconsProdDataBody; ExplistconsProdDataBody: TYPE = RECORD[ ListCons: ListConsNode, ExpList: ExpListNode]; ExplistconsProdProcs: ExpNodeProcs; BuildExplistconsProdNode: PROC[position: INT, length: INT, ListCons: ListConsNode, ExpList: ExpListNode] RETURNS[ExpNode]; ExplistconsProdIdVal: IdValProcType; ExplistconsProdCompileExpression: CompileExpressionProcType; ExplistconsProdAddDependencies: AddDependenciesProcType; -- ExpnilProd ExpnilProdData: TYPE = REF ExpnilProdDataBody; ExpnilProdDataBody: TYPE = RECORD[ ]; ExpnilProdProcs: ExpNodeProcs; BuildExpnilProdNode: PROC[position: INT, length: INT] RETURNS[ExpNode]; ExpnilProdIdVal: IdValProcType; ExpnilProdCompileExpression: CompileExpressionProcType; ExpnilProdAddDependencies: AddDependenciesProcType; -- ExptypeopProd ExptypeopProdData: TYPE = REF ExptypeopProdDataBody; ExptypeopProdDataBody: TYPE = RECORD[ TypeOp: TypeOpNode, TypeExp: TypeExpNode]; ExptypeopProdProcs: ExpNodeProcs; BuildExptypeopProdNode: PROC[position: INT, length: INT, TypeOp: TypeOpNode, TypeExp: TypeExpNode] RETURNS[ExpNode]; ExptypeopProdIdVal: IdValProcType; ExptypeopProdCompileExpression: CompileExpressionProcType; ExptypeopProdAddDependencies: AddDependenciesProcType; -- ExpsizeProd ExpsizeProdData: TYPE = REF ExpsizeProdDataBody; ExpsizeProdDataBody: TYPE = RECORD[ TypeExp: TypeExpNode]; ExpsizeProdProcs: ExpNodeProcs; BuildExpsizeProdNode: PROC[position: INT, length: INT, TypeExp: TypeExpNode] RETURNS[ExpNode]; ExpsizeProdIdVal: IdValProcType; ExpsizeProdCompileExpression: CompileExpressionProcType; ExpsizeProdAddDependencies: AddDependenciesProcType; -- Expsize2Prod Expsize2ProdData: TYPE = REF Expsize2ProdDataBody; Expsize2ProdDataBody: TYPE = RECORD[ TypeExp: TypeExpNode, Exp: ExpNode]; Expsize2ProdProcs: ExpNodeProcs; BuildExpsize2ProdNode: PROC[position: INT, length: INT, TypeExp: TypeExpNode, Exp: ExpNode] RETURNS[ExpNode]; Expsize2ProdIdVal: IdValProcType; Expsize2ProdCompileExpression: CompileExpressionProcType; Expsize2ProdAddDependencies: AddDependenciesProcType; -- ExpbitsProd ExpbitsProdData: TYPE = REF ExpbitsProdDataBody; ExpbitsProdDataBody: TYPE = RECORD[ TypeExp: TypeExpNode]; ExpbitsProdProcs: ExpNodeProcs; BuildExpbitsProdNode: PROC[position: INT, length: INT, TypeExp: TypeExpNode] RETURNS[ExpNode]; ExpbitsProdIdVal: IdValProcType; ExpbitsProdCompileExpression: CompileExpressionProcType; ExpbitsProdAddDependencies: AddDependenciesProcType; -- Expbits2Prod Expbits2ProdData: TYPE = REF Expbits2ProdDataBody; Expbits2ProdDataBody: TYPE = RECORD[ TypeExp: TypeExpNode, Exp: ExpNode]; Expbits2ProdProcs: ExpNodeProcs; BuildExpbits2ProdNode: PROC[position: INT, length: INT, TypeExp: TypeExpNode, Exp: ExpNode] RETURNS[ExpNode]; Expbits2ProdIdVal: IdValProcType; Expbits2ProdCompileExpression: CompileExpressionProcType; Expbits2ProdAddDependencies: AddDependenciesProcType; -- ExpbytesProd ExpbytesProdData: TYPE = REF ExpbytesProdDataBody; ExpbytesProdDataBody: TYPE = RECORD[ TypeExp: TypeExpNode]; ExpbytesProdProcs: ExpNodeProcs; BuildExpbytesProdNode: PROC[position: INT, length: INT, TypeExp: TypeExpNode] RETURNS[ExpNode]; ExpbytesProdIdVal: IdValProcType; ExpbytesProdCompileExpression: CompileExpressionProcType; ExpbytesProdAddDependencies: AddDependenciesProcType; -- Expbytes2Prod Expbytes2ProdData: TYPE = REF Expbytes2ProdDataBody; Expbytes2ProdDataBody: TYPE = RECORD[ TypeExp: TypeExpNode, Exp: ExpNode]; Expbytes2ProdProcs: ExpNodeProcs; BuildExpbytes2ProdNode: PROC[position: INT, length: INT, TypeExp: TypeExpNode, Exp: ExpNode] RETURNS[ExpNode]; Expbytes2ProdIdVal: IdValProcType; Expbytes2ProdCompileExpression: CompileExpressionProcType; Expbytes2ProdAddDependencies: AddDependenciesProcType; -- ExpunitsProd ExpunitsProdData: TYPE = REF ExpunitsProdDataBody; ExpunitsProdDataBody: TYPE = RECORD[ TypeExp: TypeExpNode]; ExpunitsProdProcs: ExpNodeProcs; BuildExpunitsProdNode: PROC[position: INT, length: INT, TypeExp: TypeExpNode] RETURNS[ExpNode]; ExpunitsProdIdVal: IdValProcType; ExpunitsProdCompileExpression: CompileExpressionProcType; ExpunitsProdAddDependencies: AddDependenciesProcType; -- Expunits2Prod Expunits2ProdData: TYPE = REF Expunits2ProdDataBody; Expunits2ProdDataBody: TYPE = RECORD[ TypeExp: TypeExpNode, Exp: ExpNode]; Expunits2ProdProcs: ExpNodeProcs; BuildExpunits2ProdNode: PROC[position: INT, length: INT, TypeExp: TypeExpNode, Exp: ExpNode] RETURNS[ExpNode]; Expunits2ProdIdVal: IdValProcType; Expunits2ProdCompileExpression: CompileExpressionProcType; Expunits2ProdAddDependencies: AddDependenciesProcType; -- ExpwordsProd ExpwordsProdData: TYPE = REF ExpwordsProdDataBody; ExpwordsProdDataBody: TYPE = RECORD[ TypeExp: TypeExpNode]; ExpwordsProdProcs: ExpNodeProcs; BuildExpwordsProdNode: PROC[position: INT, length: INT, TypeExp: TypeExpNode] RETURNS[ExpNode]; ExpwordsProdIdVal: IdValProcType; ExpwordsProdCompileExpression: CompileExpressionProcType; ExpwordsProdAddDependencies: AddDependenciesProcType; -- Expwords2Prod Expwords2ProdData: TYPE = REF Expwords2ProdDataBody; Expwords2ProdDataBody: TYPE = RECORD[ TypeExp: TypeExpNode, Exp: ExpNode]; Expwords2ProdProcs: ExpNodeProcs; BuildExpwords2ProdNode: PROC[position: INT, length: INT, TypeExp: TypeExpNode, Exp: ExpNode] RETURNS[ExpNode]; Expwords2ProdIdVal: IdValProcType; Expwords2ProdCompileExpression: CompileExpressionProcType; Expwords2ProdAddDependencies: AddDependenciesProcType; -- ExpistypeProd ExpistypeProdData: TYPE = REF ExpistypeProdDataBody; ExpistypeProdDataBody: TYPE = RECORD[ Exp: ExpNode, TypeExp: TypeExpNode]; ExpistypeProdProcs: ExpNodeProcs; BuildExpistypeProdNode: PROC[position: INT, length: INT, Exp: ExpNode, TypeExp: TypeExpNode] RETURNS[ExpNode]; ExpistypeProdIdVal: IdValProcType; ExpistypeProdCompileExpression: CompileExpressionProcType; ExpistypeProdAddDependencies: AddDependenciesProcType; -- ExpaddressProd ExpaddressProdData: TYPE = REF ExpaddressProdDataBody; ExpaddressProdDataBody: TYPE = RECORD[ Exp: ExpNode]; ExpaddressProdProcs: ExpNodeProcs; BuildExpaddressProdNode: PROC[position: INT, length: INT, Exp: ExpNode] RETURNS[ExpNode]; ExpaddressProdIdVal: IdValProcType; ExpaddressProdCompileExpression: CompileExpressionProcType; ExpaddressProdAddDependencies: AddDependenciesProcType; -- ExpdescriptorProd ExpdescriptorProdData: TYPE = REF ExpdescriptorProdDataBody; ExpdescriptorProdDataBody: TYPE = RECORD[ DescList: DescListNode]; ExpdescriptorProdProcs: ExpNodeProcs; BuildExpdescriptorProdNode: PROC[position: INT, length: INT, DescList: DescListNode] RETURNS[ExpNode]; ExpdescriptorProdIdVal: IdValProcType; ExpdescriptorProdCompileExpression: CompileExpressionProcType; ExpdescriptorProdAddDependencies: AddDependenciesProcType; -- ExperrorProd ExperrorProdData: TYPE = REF ExperrorProdDataBody; ExperrorProdDataBody: TYPE = RECORD[ ]; ExperrorProdProcs: ExpNodeProcs; BuildExperrorProdNode: PROC[position: INT, length: INT] RETURNS[ExpNode]; ExperrorProdIdVal: IdValProcType; ExperrorProdCompileExpression: CompileExpressionProcType; ExperrorProdAddDependencies: AddDependenciesProcType; -- ExptransferProd ExptransferProdData: TYPE = REF ExptransferProdDataBody; ExptransferProdDataBody: TYPE = RECORD[ TransferOp: TransferOpNode, Exp: ExpNode]; ExptransferProdProcs: ExpNodeProcs; BuildExptransferProdNode: PROC[position: INT, length: INT, TransferOp: TransferOpNode, Exp: ExpNode] RETURNS[ExpNode]; ExptransferProdIdVal: IdValProcType; ExptransferProdCompileExpression: CompileExpressionProcType; ExptransferProdAddDependencies: AddDependenciesProcType; -- NumdecimalProd NumdecimalProdData: TYPE = REF NumdecimalProdDataBody; NumdecimalProdDataBody: TYPE = RECORD[ Decimalnum: DecimalnumNode]; NumdecimalProdProcs: NumNodeProcs; BuildNumdecimalProdNode: PROC[position: INT, length: INT, Decimalnum: DecimalnumNode] RETURNS[NumNode]; NumdecimalProdIntegerValueFromLiteral: IntegerValueFromLiteralProcType; -- NumoctalProd NumoctalProdData: TYPE = REF NumoctalProdDataBody; NumoctalProdDataBody: TYPE = RECORD[ Octalnum: OctalnumNode]; NumoctalProdProcs: NumNodeProcs; BuildNumoctalProdNode: PROC[position: INT, length: INT, Octalnum: OctalnumNode] RETURNS[NumNode]; NumoctalProdIntegerValueFromLiteral: IntegerValueFromLiteralProcType; -- NumhexProd NumhexProdData: TYPE = REF NumhexProdDataBody; NumhexProdDataBody: TYPE = RECORD[ Hexnum: HexnumNode]; NumhexProdProcs: NumNodeProcs; BuildNumhexProdNode: PROC[position: INT, length: INT, Hexnum: HexnumNode] RETURNS[NumNode]; NumhexProdIntegerValueFromLiteral: IntegerValueFromLiteralProcType; -- AddOpplusProd AddOpplusProdData: TYPE = REF AddOpplusProdDataBody; AddOpplusProdDataBody: TYPE = RECORD[ ]; AddOpplusProdProcs: AddOpNodeProcs; BuildAddOpplusProdNode: PROC[position: INT, length: INT] RETURNS[AddOpNode]; AddOpplusProdIsPlus: IsPlusProcType; AddOpplusProdIsMinus: IsMinusProcType; -- AddOpminusProd AddOpminusProdData: TYPE = REF AddOpminusProdDataBody; AddOpminusProdDataBody: TYPE = RECORD[ ]; AddOpminusProdProcs: AddOpNodeProcs; BuildAddOpminusProdNode: PROC[position: INT, length: INT] RETURNS[AddOpNode]; AddOpminusProdIsPlus: IsPlusProcType; AddOpminusProdIsMinus: IsMinusProcType; -- MultOptimesProd MultOptimesProdData: TYPE = REF MultOptimesProdDataBody; MultOptimesProdDataBody: TYPE = RECORD[ ]; MultOptimesProdProcs: MultOpNodeProcs; BuildMultOptimesProdNode: PROC[position: INT, length: INT] RETURNS[MultOpNode]; MultOptimesProdIsTimes: IsTimesProcType; MultOptimesProdIsDivide: IsDivideProcType; MultOptimesProdIsMod: IsModProcType; -- MultOpdivideProd MultOpdivideProdData: TYPE = REF MultOpdivideProdDataBody; MultOpdivideProdDataBody: TYPE = RECORD[ ]; MultOpdivideProdProcs: MultOpNodeProcs; BuildMultOpdivideProdNode: PROC[position: INT, length: INT] RETURNS[MultOpNode]; MultOpdivideProdIsTimes: IsTimesProcType; MultOpdivideProdIsDivide: IsDivideProcType; MultOpdivideProdIsMod: IsModProcType; -- MultOpmodProd MultOpmodProdData: TYPE = REF MultOpmodProdDataBody; MultOpmodProdDataBody: TYPE = RECORD[ ]; MultOpmodProdProcs: MultOpNodeProcs; BuildMultOpmodProdNode: PROC[position: INT, length: INT] RETURNS[MultOpNode]; MultOpmodProdIsTimes: IsTimesProcType; MultOpmodProdIsDivide: IsDivideProcType; MultOpmodProdIsMod: IsModProcType; END..