-- SaffronAG3Def.mesa -- Copyright Ó 1987 by Xerox Corporation. All rights reserved. -- Generated by Rauen.pa at September 1, 1988 2:45:29 pm PDT -- using ThreeCasabaFour [1.2] of June 1, 1987 6:00:00 pm PDT DIRECTORY SaffronTreeDeclsDef, SaffronGenericDef, SaffronATDef; SaffronAG3Def: CEDAR DEFINITIONS = BEGIN OPEN SaffronTreeDeclsDef, SaffronGenericDef, SaffronATDef; -- QualifierprefixopProd QualifierprefixopProdData: TYPE = REF QualifierprefixopProdDataBody; QualifierprefixopProdDataBody: TYPE = RECORD[ PrefixOp: PrefixOpNode]; QualifierprefixopProdProcs: QualifierNodeProcs; BuildQualifierprefixopProdNode: PROC[position: INT, length: INT, PrefixOp: PrefixOpNode] RETURNS[QualifierNode]; QualifierprefixopProdCompileQualifiedExpression: CompileQualifiedExpressionProcType; -- QualifiertypeopProd QualifiertypeopProdData: TYPE = REF QualifiertypeopProdDataBody; QualifiertypeopProdDataBody: TYPE = RECORD[ TypeOp: TypeOpNode]; QualifiertypeopProdProcs: QualifierNodeProcs; BuildQualifiertypeopProdNode: PROC[position: INT, length: INT, TypeOp: TypeOpNode] RETURNS[QualifierNode]; QualifiertypeopProdCompileQualifiedExpression: CompileQualifiedExpressionProcType; -- QualifiersizeProd QualifiersizeProdData: TYPE = REF QualifiersizeProdDataBody; QualifiersizeProdDataBody: TYPE = RECORD[ ]; QualifiersizeProdProcs: QualifierNodeProcs; BuildQualifiersizeProdNode: PROC[position: INT, length: INT] RETURNS[QualifierNode]; QualifiersizeProdCompileQualifiedExpression: CompileQualifiedExpressionProcType; -- QualifierbitsProd QualifierbitsProdData: TYPE = REF QualifierbitsProdDataBody; QualifierbitsProdDataBody: TYPE = RECORD[ ]; QualifierbitsProdProcs: QualifierNodeProcs; BuildQualifierbitsProdNode: PROC[position: INT, length: INT] RETURNS[QualifierNode]; QualifierbitsProdCompileQualifiedExpression: CompileQualifiedExpressionProcType; -- QualifierbytesProd QualifierbytesProdData: TYPE = REF QualifierbytesProdDataBody; QualifierbytesProdDataBody: TYPE = RECORD[ ]; QualifierbytesProdProcs: QualifierNodeProcs; BuildQualifierbytesProdNode: PROC[position: INT, length: INT] RETURNS[QualifierNode]; QualifierbytesProdCompileQualifiedExpression: CompileQualifiedExpressionProcType; -- QualifierunitsProd QualifierunitsProdData: TYPE = REF QualifierunitsProdDataBody; QualifierunitsProdDataBody: TYPE = RECORD[ ]; QualifierunitsProdProcs: QualifierNodeProcs; BuildQualifierunitsProdNode: PROC[position: INT, length: INT] RETURNS[QualifierNode]; QualifierunitsProdCompileQualifiedExpression: CompileQualifiedExpressionProcType; -- QualifierwordsProd QualifierwordsProdData: TYPE = REF QualifierwordsProdDataBody; QualifierwordsProdDataBody: TYPE = RECORD[ ]; QualifierwordsProdProcs: QualifierNodeProcs; BuildQualifierwordsProdNode: PROC[position: INT, length: INT] RETURNS[QualifierNode]; QualifierwordsProdCompileQualifiedExpression: CompileQualifiedExpressionProcType; -- QualifierapplyProd QualifierapplyProdData: TYPE = REF QualifierapplyProdDataBody; QualifierapplyProdDataBody: TYPE = RECORD[ ExpList: ExpListNode, Catch: CatchNode]; QualifierapplyProdProcs: QualifierNodeProcs; BuildQualifierapplyProdNode: PROC[position: INT, length: INT, ExpList: ExpListNode, Catch: CatchNode] RETURNS[QualifierNode]; QualifierapplyProdCompileQualifiedExpression: CompileQualifiedExpressionProcType; -- QualifierselectProd QualifierselectProdData: TYPE = REF QualifierselectProdDataBody; QualifierselectProdDataBody: TYPE = RECORD[ Id: IdNode]; QualifierselectProdProcs: QualifierNodeProcs; BuildQualifierselectProdNode: PROC[position: INT, length: INT, Id: IdNode] RETURNS[QualifierNode]; QualifierselectProdCompileQualifiedExpression: CompileQualifiedExpressionProcType; -- QualifierindirectProd QualifierindirectProdData: TYPE = REF QualifierindirectProdDataBody; QualifierindirectProdDataBody: TYPE = RECORD[ ]; QualifierindirectProdProcs: QualifierNodeProcs; BuildQualifierindirectProdNode: PROC[position: INT, length: INT] RETURNS[QualifierNode]; QualifierindirectProdCompileQualifiedExpression: CompileQualifiedExpressionProcType; -- PrefixOplongProd PrefixOplongProdData: TYPE = REF PrefixOplongProdDataBody; PrefixOplongProdDataBody: TYPE = RECORD[ ]; PrefixOplongProdProcs: PrefixOpNodeProcs; BuildPrefixOplongProdNode: PROC[position: INT, length: INT] RETURNS[PrefixOpNode]; PrefixOplongProdfoo: fooProcType; -- PrefixOpabsProd PrefixOpabsProdData: TYPE = REF PrefixOpabsProdDataBody; PrefixOpabsProdDataBody: TYPE = RECORD[ ]; PrefixOpabsProdProcs: PrefixOpNodeProcs; BuildPrefixOpabsProdNode: PROC[position: INT, length: INT] RETURNS[PrefixOpNode]; PrefixOpabsProdfoo: fooProcType; -- PrefixOppredProd PrefixOppredProdData: TYPE = REF PrefixOppredProdDataBody; PrefixOppredProdDataBody: TYPE = RECORD[ ]; PrefixOppredProdProcs: PrefixOpNodeProcs; BuildPrefixOppredProdNode: PROC[position: INT, length: INT] RETURNS[PrefixOpNode]; PrefixOppredProdfoo: fooProcType; -- PrefixOpsuccProd PrefixOpsuccProdData: TYPE = REF PrefixOpsuccProdDataBody; PrefixOpsuccProdDataBody: TYPE = RECORD[ ]; PrefixOpsuccProdProcs: PrefixOpNodeProcs; BuildPrefixOpsuccProdNode: PROC[position: INT, length: INT] RETURNS[PrefixOpNode]; PrefixOpsuccProdfoo: fooProcType; -- PrefixOpordProd PrefixOpordProdData: TYPE = REF PrefixOpordProdDataBody; PrefixOpordProdDataBody: TYPE = RECORD[ ]; PrefixOpordProdProcs: PrefixOpNodeProcs; BuildPrefixOpordProdNode: PROC[position: INT, length: INT] RETURNS[PrefixOpNode]; PrefixOpordProdfoo: fooProcType; -- PrefixOpminProd PrefixOpminProdData: TYPE = REF PrefixOpminProdDataBody; PrefixOpminProdDataBody: TYPE = RECORD[ ]; PrefixOpminProdProcs: PrefixOpNodeProcs; BuildPrefixOpminProdNode: PROC[position: INT, length: INT] RETURNS[PrefixOpNode]; PrefixOpminProdfoo: fooProcType; -- PrefixOpmaxProd PrefixOpmaxProdData: TYPE = REF PrefixOpmaxProdDataBody; PrefixOpmaxProdDataBody: TYPE = RECORD[ ]; PrefixOpmaxProdProcs: PrefixOpNodeProcs; BuildPrefixOpmaxProdNode: PROC[position: INT, length: INT] RETURNS[PrefixOpNode]; PrefixOpmaxProdfoo: fooProcType; -- PrefixOpbaseProd PrefixOpbaseProdData: TYPE = REF PrefixOpbaseProdDataBody; PrefixOpbaseProdDataBody: TYPE = RECORD[ ]; PrefixOpbaseProdProcs: PrefixOpNodeProcs; BuildPrefixOpbaseProdNode: PROC[position: INT, length: INT] RETURNS[PrefixOpNode]; PrefixOpbaseProdfoo: fooProcType; -- PrefixOplengthProd PrefixOplengthProdData: TYPE = REF PrefixOplengthProdDataBody; PrefixOplengthProdDataBody: TYPE = RECORD[ ]; PrefixOplengthProdProcs: PrefixOpNodeProcs; BuildPrefixOplengthProdNode: PROC[position: INT, length: INT] RETURNS[PrefixOpNode]; PrefixOplengthProdfoo: fooProcType; -- TypeOpcodeProd TypeOpcodeProdData: TYPE = REF TypeOpcodeProdDataBody; TypeOpcodeProdDataBody: TYPE = RECORD[ ]; TypeOpcodeProdProcs: TypeOpNodeProcs; BuildTypeOpcodeProdNode: PROC[position: INT, length: INT] RETURNS[TypeOpNode]; TypeOpcodeProdTypeOpIsCode: TypeOpIsCodeProcType; TypeOpcodeProdTypeOpIsFirst: TypeOpIsFirstProcType; TypeOpcodeProdTypeOpIsLast: TypeOpIsLastProcType; TypeOpcodeProdTypeOpIsNil: TypeOpIsNilProcType; -- TypeOpfirstProd TypeOpfirstProdData: TYPE = REF TypeOpfirstProdDataBody; TypeOpfirstProdDataBody: TYPE = RECORD[ ]; TypeOpfirstProdProcs: TypeOpNodeProcs; BuildTypeOpfirstProdNode: PROC[position: INT, length: INT] RETURNS[TypeOpNode]; TypeOpfirstProdTypeOpIsCode: TypeOpIsCodeProcType; TypeOpfirstProdTypeOpIsFirst: TypeOpIsFirstProcType; TypeOpfirstProdTypeOpIsLast: TypeOpIsLastProcType; TypeOpfirstProdTypeOpIsNil: TypeOpIsNilProcType; -- TypeOplastProd TypeOplastProdData: TYPE = REF TypeOplastProdDataBody; TypeOplastProdDataBody: TYPE = RECORD[ ]; TypeOplastProdProcs: TypeOpNodeProcs; BuildTypeOplastProdNode: PROC[position: INT, length: INT] RETURNS[TypeOpNode]; TypeOplastProdTypeOpIsCode: TypeOpIsCodeProcType; TypeOplastProdTypeOpIsFirst: TypeOpIsFirstProcType; TypeOplastProdTypeOpIsLast: TypeOpIsLastProcType; TypeOplastProdTypeOpIsNil: TypeOpIsNilProcType; -- TypeOpnilProd TypeOpnilProdData: TYPE = REF TypeOpnilProdDataBody; TypeOpnilProdDataBody: TYPE = RECORD[ ]; TypeOpnilProdProcs: TypeOpNodeProcs; BuildTypeOpnilProdNode: PROC[position: INT, length: INT] RETURNS[TypeOpNode]; TypeOpnilProdTypeOpIsCode: TypeOpIsCodeProcType; TypeOpnilProdTypeOpIsFirst: TypeOpIsFirstProcType; TypeOpnilProdTypeOpIsLast: TypeOpIsLastProcType; TypeOpnilProdTypeOpIsNil: TypeOpIsNilProcType; -- NewplainProd NewplainProdData: TYPE = REF NewplainProdDataBody; NewplainProdDataBody: TYPE = RECORD[ ]; NewplainProdProcs: NewNodeProcs; BuildNewplainProdNode: PROC[position: INT, length: INT] RETURNS[NewNode]; NewplainProdfoo: fooProcType; -- NewzonedProd NewzonedProdData: TYPE = REF NewzonedProdDataBody; NewzonedProdDataBody: TYPE = RECORD[ Exp: ExpNode]; NewzonedProdProcs: NewNodeProcs; BuildNewzonedProdNode: PROC[position: INT, length: INT, Exp: ExpNode] RETURNS[NewNode]; NewzonedProdfoo: fooProcType; -- ConsplainProd ConsplainProdData: TYPE = REF ConsplainProdDataBody; ConsplainProdDataBody: TYPE = RECORD[ ]; ConsplainProdProcs: ConsNodeProcs; BuildConsplainProdNode: PROC[position: INT, length: INT] RETURNS[ConsNode]; ConsplainProdfoo: fooProcType; -- ConszonedProd ConszonedProdData: TYPE = REF ConszonedProdDataBody; ConszonedProdDataBody: TYPE = RECORD[ Exp: ExpNode]; ConszonedProdProcs: ConsNodeProcs; BuildConszonedProdNode: PROC[position: INT, length: INT, Exp: ExpNode] RETURNS[ConsNode]; ConszonedProdfoo: fooProcType; -- ListConsplainProd ListConsplainProdData: TYPE = REF ListConsplainProdDataBody; ListConsplainProdDataBody: TYPE = RECORD[ ]; ListConsplainProdProcs: ListConsNodeProcs; BuildListConsplainProdNode: PROC[position: INT, length: INT] RETURNS[ListConsNode]; ListConsplainProdfoo: fooProcType; -- ListConszonedProd ListConszonedProdData: TYPE = REF ListConszonedProdDataBody; ListConszonedProdDataBody: TYPE = RECORD[ Exp: ExpNode]; ListConszonedProdProcs: ListConsNodeProcs; BuildListConszonedProdNode: PROC[position: INT, length: INT, Exp: ExpNode] RETURNS[ListConsNode]; ListConszonedProdfoo: fooProcType; -- DescListexplicitlengthProd DescListexplicitlengthProdData: TYPE = REF DescListexplicitlengthProdDataBody; DescListexplicitlengthProdDataBody: TYPE = RECORD[ Expbase: ExpNode, Explength: ExpNode, OptType: OptTypeNode]; DescListexplicitlengthProdProcs: DescListNodeProcs; BuildDescListexplicitlengthProdNode: PROC[position: INT, length: INT, Expbase: ExpNode, Explength: ExpNode, OptType: OptTypeNode] RETURNS[DescListNode]; DescListexplicitlengthProdfoo: fooProcType; -- DescListdefaultlengthProd DescListdefaultlengthProdData: TYPE = REF DescListdefaultlengthProdDataBody; DescListdefaultlengthProdDataBody: TYPE = RECORD[ Exp: ExpNode]; DescListdefaultlengthProdProcs: DescListNodeProcs; BuildDescListdefaultlengthProdNode: PROC[position: INT, length: INT, Exp: ExpNode] RETURNS[DescListNode]; DescListdefaultlengthProdfoo: fooProcType; -- InitializationemptyProd InitializationemptyProdData: TYPE = REF InitializationemptyProdDataBody; InitializationemptyProdDataBody: TYPE = RECORD[ ]; InitializationemptyProdProcs: InitializationNodeProcs; BuildInitializationemptyProdNode: PROC[position: INT, length: INT] RETURNS[InitializationNode]; InitializationemptyProdInitializationIsEmpty: InitializationIsEmptyProcType; InitializationemptyProdInitializationIsBinding: InitializationIsBindingProcType; InitializationemptyProdInitializationIsAssignment: InitializationIsAssignmentProcType; InitializationemptyProdCompileInitialization: CompileInitializationProcType; InitializationemptyProdAddValueDependencies: AddValueDependenciesProcType; -- InitializationbindingProd InitializationbindingProdData: TYPE = REF InitializationbindingProdDataBody; InitializationbindingProdDataBody: TYPE = RECORD[ InitialValue: InitialValueNode]; InitializationbindingProdProcs: InitializationNodeProcs; BuildInitializationbindingProdNode: PROC[position: INT, length: INT, InitialValue: InitialValueNode] RETURNS[InitializationNode]; InitializationbindingProdInitializationIsEmpty: InitializationIsEmptyProcType; InitializationbindingProdInitializationIsBinding: InitializationIsBindingProcType; InitializationbindingProdInitializationIsAssignment: InitializationIsAssignmentProcType; InitializationbindingProdCompileInitialization: CompileInitializationProcType; InitializationbindingProdAddValueDependencies: AddValueDependenciesProcType; -- InitializationassignmentProd InitializationassignmentProdData: TYPE = REF InitializationassignmentProdDataBody; InitializationassignmentProdDataBody: TYPE = RECORD[ InitialValue: InitialValueNode]; InitializationassignmentProdProcs: InitializationNodeProcs; BuildInitializationassignmentProdNode: PROC[position: INT, length: INT, InitialValue: InitialValueNode] RETURNS[InitializationNode]; InitializationassignmentProdInitializationIsEmpty: InitializationIsEmptyProcType; InitializationassignmentProdInitializationIsBinding: InitializationIsBindingProcType; InitializationassignmentProdInitializationIsAssignment: InitializationIsAssignmentProcType; InitializationassignmentProdCompileInitialization: CompileInitializationProcType; InitializationassignmentProdAddValueDependencies: AddValueDependenciesProcType; -- InitialValuetrashProd InitialValuetrashProdData: TYPE = REF InitialValuetrashProdDataBody; InitialValuetrashProdDataBody: TYPE = RECORD[ ]; InitialValuetrashProdProcs: InitialValueNodeProcs; BuildInitialValuetrashProdNode: PROC[position: INT, length: INT] RETURNS[InitialValueNode]; InitialValuetrashProdCompileInitialization: CompileInitializationProcType; InitialValuetrashProdAddValueDependencies: AddValueDependenciesProcType; -- InitialValuecodeProd InitialValuecodeProdData: TYPE = REF InitialValuecodeProdDataBody; InitialValuecodeProdDataBody: TYPE = RECORD[ ]; InitialValuecodeProdProcs: InitialValueNodeProcs; BuildInitialValuecodeProdNode: PROC[position: INT, length: INT] RETURNS[InitialValueNode]; InitialValuecodeProdCompileInitialization: CompileInitializationProcType; InitialValuecodeProdAddValueDependencies: AddValueDependenciesProcType; -- InitialValueexpProd InitialValueexpProdData: TYPE = REF InitialValueexpProdDataBody; InitialValueexpProdDataBody: TYPE = RECORD[ Exp: ExpNode]; InitialValueexpProdProcs: InitialValueNodeProcs; BuildInitialValueexpProdNode: PROC[position: INT, length: INT, Exp: ExpNode] RETURNS[InitialValueNode]; InitialValueexpProdCompileInitialization: CompileInitializationProcType; InitialValueexpProdAddValueDependencies: AddValueDependenciesProcType; -- InitialValueblockProd InitialValueblockProdData: TYPE = REF InitialValueblockProdDataBody; InitialValueblockProdDataBody: TYPE = RECORD[ Checked: CheckedNode, Inline: InlineNode, Block: BlockNode]; InitialValueblockProdProcs: InitialValueNodeProcs; BuildInitialValueblockProdNode: PROC[position: INT, length: INT, Checked: CheckedNode, Inline: InlineNode, Block: BlockNode] RETURNS[InitialValueNode]; InitialValueblockProdCompileInitialization: CompileInitializationProcType; InitialValueblockProdAddValueDependencies: AddValueDependenciesProcType; -- InitialValuemachinecodeProd InitialValuemachinecodeProdData: TYPE = REF InitialValuemachinecodeProdDataBody; InitialValuemachinecodeProdDataBody: TYPE = RECORD[ Checked: CheckedNode, CodeList: CodeListNode]; InitialValuemachinecodeProdProcs: InitialValueNodeProcs; BuildInitialValuemachinecodeProdNode: PROC[position: INT, length: INT, Checked: CheckedNode, CodeList: CodeListNode] RETURNS[InitialValueNode]; InitialValuemachinecodeProdCompileInitialization: CompileInitializationProcType; InitialValuemachinecodeProdAddValueDependencies: AddValueDependenciesProcType; -- CheckedemptyProd CheckedemptyProdData: TYPE = REF CheckedemptyProdDataBody; CheckedemptyProdDataBody: TYPE = RECORD[ ]; CheckedemptyProdProcs: CheckedNodeProcs; BuildCheckedemptyProdNode: PROC[position: INT, length: INT] RETURNS[CheckedNode]; CheckedemptyProdfoo: fooProcType; -- CheckedcheckedProd CheckedcheckedProdData: TYPE = REF CheckedcheckedProdDataBody; CheckedcheckedProdDataBody: TYPE = RECORD[ ]; CheckedcheckedProdProcs: CheckedNodeProcs; BuildCheckedcheckedProdNode: PROC[position: INT, length: INT] RETURNS[CheckedNode]; CheckedcheckedProdfoo: fooProcType; -- CheckedtrustedProd CheckedtrustedProdData: TYPE = REF CheckedtrustedProdDataBody; CheckedtrustedProdDataBody: TYPE = RECORD[ ]; CheckedtrustedProdProcs: CheckedNodeProcs; BuildCheckedtrustedProdNode: PROC[position: INT, length: INT] RETURNS[CheckedNode]; CheckedtrustedProdfoo: fooProcType; -- CheckeduncheckedProd CheckeduncheckedProdData: TYPE = REF CheckeduncheckedProdDataBody; CheckeduncheckedProdDataBody: TYPE = RECORD[ ]; CheckeduncheckedProdProcs: CheckedNodeProcs; BuildCheckeduncheckedProdNode: PROC[position: INT, length: INT] RETURNS[CheckedNode]; CheckeduncheckedProdfoo: fooProcType; -- InlineyesProd InlineyesProdData: TYPE = REF InlineyesProdDataBody; InlineyesProdDataBody: TYPE = RECORD[ ]; InlineyesProdProcs: InlineNodeProcs; BuildInlineyesProdNode: PROC[position: INT, length: INT] RETURNS[InlineNode]; InlineyesProdIsKeywordPresent: IsKeywordPresentProcType; -- InlinenoProd InlinenoProdData: TYPE = REF InlinenoProdDataBody; InlinenoProdDataBody: TYPE = RECORD[ ]; InlinenoProdProcs: InlineNodeProcs; BuildInlinenoProdNode: PROC[position: INT, length: INT] RETURNS[InlineNode]; InlinenoProdIsKeywordPresent: IsKeywordPresentProcType; -- CodeListoneProd CodeListoneProdData: TYPE = REF CodeListoneProdDataBody; CodeListoneProdDataBody: TYPE = RECORD[ OrderList: OrderListNode]; CodeListoneProdProcs: CodeListNodeProcs; BuildCodeListoneProdNode: PROC[position: INT, length: INT, OrderList: OrderListNode] RETURNS[CodeListNode]; CodeListoneProdfoo: fooProcType; -- CodeListmoreProd CodeListmoreProdData: TYPE = REF CodeListmoreProdDataBody; CodeListmoreProdDataBody: TYPE = RECORD[ CodeList: CodeListNode, OrderList: OrderListNode]; CodeListmoreProdProcs: CodeListNodeProcs; BuildCodeListmoreProdNode: PROC[position: INT, length: INT, CodeList: CodeListNode, OrderList: OrderListNode] RETURNS[CodeListNode]; CodeListmoreProdfoo: fooProcType; -- TransferOpsignalProd TransferOpsignalProdData: TYPE = REF TransferOpsignalProdDataBody; TransferOpsignalProdDataBody: TYPE = RECORD[ ]; TransferOpsignalProdProcs: TransferOpNodeProcs; BuildTransferOpsignalProdNode: PROC[position: INT, length: INT] RETURNS[TransferOpNode]; TransferOpsignalProdfoo: fooProcType; -- TransferOperrorProd TransferOperrorProdData: TYPE = REF TransferOperrorProdDataBody; TransferOperrorProdDataBody: TYPE = RECORD[ ]; TransferOperrorProdProcs: TransferOpNodeProcs; BuildTransferOperrorProdNode: PROC[position: INT, length: INT] RETURNS[TransferOpNode]; TransferOperrorProdfoo: fooProcType; -- TransferOpstartProd TransferOpstartProdData: TYPE = REF TransferOpstartProdDataBody; TransferOpstartProdDataBody: TYPE = RECORD[ ]; TransferOpstartProdProcs: TransferOpNodeProcs; BuildTransferOpstartProdNode: PROC[position: INT, length: INT] RETURNS[TransferOpNode]; TransferOpstartProdfoo: fooProcType; -- TransferOpjoinProd TransferOpjoinProdData: TYPE = REF TransferOpjoinProdDataBody; TransferOpjoinProdDataBody: TYPE = RECORD[ ]; TransferOpjoinProdProcs: TransferOpNodeProcs; BuildTransferOpjoinProdNode: PROC[position: INT, length: INT] RETURNS[TransferOpNode]; TransferOpjoinProdfoo: fooProcType; -- TransferOpnewProd TransferOpnewProdData: TYPE = REF TransferOpnewProdDataBody; TransferOpnewProdDataBody: TYPE = RECORD[ ]; TransferOpnewProdProcs: TransferOpNodeProcs; BuildTransferOpnewProdNode: PROC[position: INT, length: INT] RETURNS[TransferOpNode]; TransferOpnewProdfoo: fooProcType; -- TransferOpforkProd TransferOpforkProdData: TYPE = REF TransferOpforkProdDataBody; TransferOpforkProdDataBody: TYPE = RECORD[ ]; TransferOpforkProdProcs: TransferOpNodeProcs; BuildTransferOpforkProdNode: PROC[position: INT, length: INT] RETURNS[TransferOpNode]; TransferOpforkProdfoo: fooProcType; END..