-- SaffronAG2Impl.mesa -- Copyright Ó 1987 by Xerox Corporation. All rights reserved. -- Generated by hederman.pa at August 17, 1987 4:33:00 pm PDT -- using ThreeCasabaFour [1.2] of June 1, 1987 6:00:00 pm PDT DIRECTORY SaffronAG2Def, SaffronGenericDef, SaffronATDef; SaffronAG2Impl: CEDAR PROGRAM IMPORTS SaffronAG2Def EXPORTS SaffronAG2Def= BEGIN OPEN SaffronAG2Def, SaffronGenericDef, SaffronATDef; -- SelectHeadplainProd SelectHeadplainProdProcs: PUBLIC SelectHeadNodeProcs _ NEW[SelectHeadNodeProcsBody _ [SelectHeadplainProdfoo]]; BuildSelectHeadplainProdNode: PUBLIC PROC[position: INT, length: INT, Exp: ExpNode] RETURNS[SelectHeadNode] = BEGIN data: SelectHeadplainProdData _ NEW[SelectHeadplainProdDataBody _ [ Exp]]; RETURN[NEW[SelectHeadNodeBody_[position, length, SelectHeadplainProdProcs, data]]]; END; -- SelectHeaddiscriminatingProd SelectHeaddiscriminatingProdProcs: PUBLIC SelectHeadNodeProcs _ NEW[SelectHeadNodeProcsBody _ [SelectHeaddiscriminatingProdfoo]]; BuildSelectHeaddiscriminatingProdNode: PUBLIC PROC[position: INT, length: INT, BindItem: BindItemNode, OptExp: OptExpNode] RETURNS[SelectHeadNode] = BEGIN data: SelectHeaddiscriminatingProdData _ NEW[SelectHeaddiscriminatingProdDataBody _ [ BindItem, OptExp]]; RETURN[NEW[SelectHeadNodeBody_[position, length, SelectHeaddiscriminatingProdProcs, data]]]; END; -- SelectExpListemptyProd SelectExpListemptyProdProcs: PUBLIC SelectExpListNodeProcs _ NEW[SelectExpListNodeProcsBody _ [SelectExpListemptyProdfoo]]; BuildSelectExpListemptyProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[SelectExpListNode] = BEGIN RETURN[NEW[SelectExpListNodeBody_[position, length, SelectExpListemptyProdProcs, NIL]]]; END; -- SelectExpListmoreProd SelectExpListmoreProdProcs: PUBLIC SelectExpListNodeProcs _ NEW[SelectExpListNodeProcsBody _ [SelectExpListmoreProdfoo]]; BuildSelectExpListmoreProdNode: PUBLIC PROC[position: INT, length: INT, SelectExpList: SelectExpListNode, SelectExpItem: SelectExpItemNode] RETURNS[SelectExpListNode] = BEGIN data: SelectExpListmoreProdData _ NEW[SelectExpListmoreProdDataBody _ [ SelectExpList, SelectExpItem]]; RETURN[NEW[SelectExpListNodeBody_[position, length, SelectExpListmoreProdProcs, data]]]; END; -- SelectExpItemProd SelectExpItemProdProcs: PUBLIC SelectExpItemNodeProcs _ NEW[SelectExpItemNodeProcsBody _ [SelectExpItemProdfoo]]; BuildSelectExpItemProdNode: PUBLIC PROC[position: INT, length: INT, SelectLabel: SelectLabelNode, Exp: ExpNode] RETURNS[SelectExpItemNode] = BEGIN data: SelectExpItemProdData _ NEW[SelectExpItemProdDataBody _ [ SelectLabel, Exp]]; RETURN[NEW[SelectExpItemNodeBody_[position, length, SelectExpItemProdProcs, data]]]; END; -- SelectLabeltypeProd SelectLabeltypeProdProcs: PUBLIC SelectLabelNodeProcs _ NEW[SelectLabelNodeProcsBody _ [SelectLabeltypeProdfoo]]; BuildSelectLabeltypeProdNode: PUBLIC PROC[position: INT, length: INT, Ident: IdentNode, TypeExp: TypeExpNode] RETURNS[SelectLabelNode] = BEGIN data: SelectLabeltypeProdData _ NEW[SelectLabeltypeProdDataBody _ [ Ident, TypeExp]]; RETURN[NEW[SelectLabelNodeBody_[position, length, SelectLabeltypeProdProcs, data]]]; END; -- SelectLabeltestProd SelectLabeltestProdProcs: PUBLIC SelectLabelNodeProcs _ NEW[SelectLabelNodeProcsBody _ [SelectLabeltestProdfoo]]; BuildSelectLabeltestProdNode: PUBLIC PROC[position: INT, length: INT, SelectTestList: SelectTestListNode] RETURNS[SelectLabelNode] = BEGIN data: SelectLabeltestProdData _ NEW[SelectLabeltestProdDataBody _ [ SelectTestList]]; RETURN[NEW[SelectLabelNodeBody_[position, length, SelectLabeltestProdProcs, data]]]; END; -- SelectTestListoneProd SelectTestListoneProdProcs: PUBLIC SelectTestListNodeProcs _ NEW[SelectTestListNodeProcsBody _ [SelectTestListoneProdfoo]]; BuildSelectTestListoneProdNode: PUBLIC PROC[position: INT, length: INT, Relation: RelationNode] RETURNS[SelectTestListNode] = BEGIN data: SelectTestListoneProdData _ NEW[SelectTestListoneProdDataBody _ [ Relation]]; RETURN[NEW[SelectTestListNodeBody_[position, length, SelectTestListoneProdProcs, data]]]; END; -- SelectTestListmoreProd SelectTestListmoreProdProcs: PUBLIC SelectTestListNodeProcs _ NEW[SelectTestListNodeProcsBody _ [SelectTestListmoreProdfoo]]; BuildSelectTestListmoreProdNode: PUBLIC PROC[position: INT, length: INT, SelectTestList: SelectTestListNode, Relation: RelationNode] RETURNS[SelectTestListNode] = BEGIN data: SelectTestListmoreProdData _ NEW[SelectTestListmoreProdDataBody _ [ SelectTestList, Relation]]; RETURN[NEW[SelectTestListNodeBody_[position, length, SelectTestListmoreProdProcs, data]]]; END; -- RelationnegativeProd RelationnegativeProdProcs: PUBLIC RelationNodeProcs _ NEW[RelationNodeProcsBody _ [RelationnegativeProdfoo]]; BuildRelationnegativeProdNode: PUBLIC PROC[position: INT, length: INT, RelationTail: RelationTailNode] RETURNS[RelationNode] = BEGIN data: RelationnegativeProdData _ NEW[RelationnegativeProdDataBody _ [ RelationTail]]; RETURN[NEW[RelationNodeBody_[position, length, RelationnegativeProdProcs, data]]]; END; -- RelationpositiveProd RelationpositiveProdProcs: PUBLIC RelationNodeProcs _ NEW[RelationNodeProcsBody _ [RelationpositiveProdfoo]]; BuildRelationpositiveProdNode: PUBLIC PROC[position: INT, length: INT, RelationTail: RelationTailNode] RETURNS[RelationNode] = BEGIN data: RelationpositiveProdData _ NEW[RelationpositiveProdDataBody _ [ RelationTail]]; RETURN[NEW[RelationNodeBody_[position, length, RelationpositiveProdProcs, data]]]; END; -- RelationTailrangeProd RelationTailrangeProdProcs: PUBLIC RelationTailNodeProcs _ NEW[RelationTailNodeProcsBody _ [RelationTailrangeProdfoo]]; BuildRelationTailrangeProdNode: PUBLIC PROC[position: INT, length: INT, Range: RangeNode] RETURNS[RelationTailNode] = BEGIN data: RelationTailrangeProdData _ NEW[RelationTailrangeProdDataBody _ [ Range]]; RETURN[NEW[RelationTailNodeBody_[position, length, RelationTailrangeProdProcs, data]]]; END; -- RelationTailrelopProd RelationTailrelopProdProcs: PUBLIC RelationTailNodeProcs _ NEW[RelationTailNodeProcsBody _ [RelationTailrelopProdfoo]]; BuildRelationTailrelopProdNode: PUBLIC PROC[position: INT, length: INT, Relop: RelopNode, Exp: ExpNode] RETURNS[RelationTailNode] = BEGIN data: RelationTailrelopProdData _ NEW[RelationTailrelopProdDataBody _ [ Relop, Exp]]; RETURN[NEW[RelationTailNodeBody_[position, length, RelationTailrelopProdProcs, data]]]; END; -- RelopeqProd RelopeqProdProcs: PUBLIC RelopNodeProcs _ NEW[RelopNodeProcsBody _ [RelopeqProdfoo]]; BuildRelopeqProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[RelopNode] = BEGIN RETURN[NEW[RelopNodeBody_[position, length, RelopeqProdProcs, NIL]]]; END; -- RelopneProd RelopneProdProcs: PUBLIC RelopNodeProcs _ NEW[RelopNodeProcsBody _ [RelopneProdfoo]]; BuildRelopneProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[RelopNode] = BEGIN RETURN[NEW[RelopNodeBody_[position, length, RelopneProdProcs, NIL]]]; END; -- RelopltProd RelopltProdProcs: PUBLIC RelopNodeProcs _ NEW[RelopNodeProcsBody _ [RelopltProdfoo]]; BuildRelopltProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[RelopNode] = BEGIN RETURN[NEW[RelopNodeBody_[position, length, RelopltProdProcs, NIL]]]; END; -- RelopleProd RelopleProdProcs: PUBLIC RelopNodeProcs _ NEW[RelopNodeProcsBody _ [RelopleProdfoo]]; BuildRelopleProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[RelopNode] = BEGIN RETURN[NEW[RelopNodeBody_[position, length, RelopleProdProcs, NIL]]]; END; -- RelopgtProd RelopgtProdProcs: PUBLIC RelopNodeProcs _ NEW[RelopNodeProcsBody _ [RelopgtProdfoo]]; BuildRelopgtProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[RelopNode] = BEGIN RETURN[NEW[RelopNodeBody_[position, length, RelopgtProdProcs, NIL]]]; END; -- RelopgeProd RelopgeProdProcs: PUBLIC RelopNodeProcs _ NEW[RelopNodeProcsBody _ [RelopgeProdfoo]]; BuildRelopgeProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[RelopNode] = BEGIN RETURN[NEW[RelopNodeBody_[position, length, RelopgeProdProcs, NIL]]]; END; -- RangetypeidProd RangetypeidProdProcs: PUBLIC RangeNodeProcs _ NEW[RangeNodeProcsBody _ [RangetypeidProdfoo]]; BuildRangetypeidProdNode: PUBLIC PROC[position: INT, length: INT, TypeId: TypeIdNode] RETURNS[RangeNode] = BEGIN data: RangetypeidProdData _ NEW[RangetypeidProdDataBody _ [ TypeId]]; RETURN[NEW[RangeNodeBody_[position, length, RangetypeidProdProcs, data]]]; END; -- RangesubrangeProd RangesubrangeProdProcs: PUBLIC RangeNodeProcs _ NEW[RangeNodeProcsBody _ [RangesubrangeProdfoo]]; BuildRangesubrangeProdNode: PUBLIC PROC[position: INT, length: INT, Subrange: SubrangeNode] RETURNS[RangeNode] = BEGIN data: RangesubrangeProdData _ NEW[RangesubrangeProdDataBody _ [ Subrange]]; RETURN[NEW[RangeNodeBody_[position, length, RangesubrangeProdProcs, data]]]; END; -- CatchProd CatchProdProcs: PUBLIC CatchNodeProcs _ NEW[CatchNodeProcsBody _ [CatchProdfoo]]; BuildCatchProdNode: PUBLIC PROC[position: INT, length: INT, CatchCaseList: CatchCaseListNode, CatchAny: CatchAnyNode] RETURNS[CatchNode] = BEGIN data: CatchProdData _ NEW[CatchProdDataBody _ [ CatchCaseList, CatchAny]]; RETURN[NEW[CatchNodeBody_[position, length, CatchProdProcs, data]]]; END; -- CatchAnyabsentProd CatchAnyabsentProdProcs: PUBLIC CatchAnyNodeProcs _ NEW[CatchAnyNodeProcsBody _ [CatchAnyabsentProdfoo]]; BuildCatchAnyabsentProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[CatchAnyNode] = BEGIN RETURN[NEW[CatchAnyNodeBody_[position, length, CatchAnyabsentProdProcs, NIL]]]; END; -- CatchAnypresentProd CatchAnypresentProdProcs: PUBLIC CatchAnyNodeProcs _ NEW[CatchAnyNodeProcsBody _ [CatchAnypresentProdfoo]]; BuildCatchAnypresentProdNode: PUBLIC PROC[position: INT, length: INT, Statement: StatementNode] RETURNS[CatchAnyNode] = BEGIN data: CatchAnypresentProdData _ NEW[CatchAnypresentProdDataBody _ [ Statement]]; RETURN[NEW[CatchAnyNodeBody_[position, length, CatchAnypresentProdProcs, data]]]; END; -- CatchCaseListemptyProd CatchCaseListemptyProdProcs: PUBLIC CatchCaseListNodeProcs _ NEW[CatchCaseListNodeProcsBody _ [CatchCaseListemptyProdfoo]]; BuildCatchCaseListemptyProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[CatchCaseListNode] = BEGIN RETURN[NEW[CatchCaseListNodeBody_[position, length, CatchCaseListemptyProdProcs, NIL]]]; END; -- CatchCaseListmoreProd CatchCaseListmoreProdProcs: PUBLIC CatchCaseListNodeProcs _ NEW[CatchCaseListNodeProcsBody _ [CatchCaseListmoreProdfoo]]; BuildCatchCaseListmoreProdNode: PUBLIC PROC[position: INT, length: INT, CatchCaseList: CatchCaseListNode, CatchCase: CatchCaseNode] RETURNS[CatchCaseListNode] = BEGIN data: CatchCaseListmoreProdData _ NEW[CatchCaseListmoreProdDataBody _ [ CatchCaseList, CatchCase]]; RETURN[NEW[CatchCaseListNodeBody_[position, length, CatchCaseListmoreProdProcs, data]]]; END; -- CatchCaseProd CatchCaseProdProcs: PUBLIC CatchCaseNodeProcs _ NEW[CatchCaseNodeProcsBody _ [CatchCaseProdfoo]]; BuildCatchCaseProdNode: PUBLIC PROC[position: INT, length: INT, SignalList: SignalListNode, Statement: StatementNode] RETURNS[CatchCaseNode] = BEGIN data: CatchCaseProdData _ NEW[CatchCaseProdDataBody _ [ SignalList, Statement]]; RETURN[NEW[CatchCaseNodeBody_[position, length, CatchCaseProdProcs, data]]]; END; -- SignalListoneProd SignalListoneProdProcs: PUBLIC SignalListNodeProcs _ NEW[SignalListNodeProcsBody _ [SignalListoneProdfoo]]; BuildSignalListoneProdNode: PUBLIC PROC[position: INT, length: INT, Exp: ExpNode] RETURNS[SignalListNode] = BEGIN data: SignalListoneProdData _ NEW[SignalListoneProdDataBody _ [ Exp]]; RETURN[NEW[SignalListNodeBody_[position, length, SignalListoneProdProcs, data]]]; END; -- SignalListmoreProd SignalListmoreProdProcs: PUBLIC SignalListNodeProcs _ NEW[SignalListNodeProcsBody _ [SignalListmoreProdfoo]]; BuildSignalListmoreProdNode: PUBLIC PROC[position: INT, length: INT, SignalList: SignalListNode, Exp: ExpNode] RETURNS[SignalListNode] = BEGIN data: SignalListmoreProdData _ NEW[SignalListmoreProdDataBody _ [ SignalList, Exp]]; RETURN[NEW[SignalListNodeBody_[position, length, SignalListmoreProdProcs, data]]]; END; -- ExpListkeylistProd ExpListkeylistProdProcs: PUBLIC ExpListNodeProcs _ NEW[ExpListNodeProcsBody _ [ExpListkeylistProdfoo]]; BuildExpListkeylistProdNode: PUBLIC PROC[position: INT, length: INT, KeyList: KeyListNode] RETURNS[ExpListNode] = BEGIN data: ExpListkeylistProdData _ NEW[ExpListkeylistProdDataBody _ [ KeyList]]; RETURN[NEW[ExpListNodeBody_[position, length, ExpListkeylistProdProcs, data]]]; END; -- ExpListorderlistProd ExpListorderlistProdProcs: PUBLIC ExpListNodeProcs _ NEW[ExpListNodeProcsBody _ [ExpListorderlistProdfoo]]; BuildExpListorderlistProdNode: PUBLIC PROC[position: INT, length: INT, OrderList: OrderListNode] RETURNS[ExpListNode] = BEGIN data: ExpListorderlistProdData _ NEW[ExpListorderlistProdDataBody _ [ OrderList]]; RETURN[NEW[ExpListNodeBody_[position, length, ExpListorderlistProdProcs, data]]]; END; -- KeyListoneProd KeyListoneProdProcs: PUBLIC KeyListNodeProcs _ NEW[KeyListNodeProcsBody _ [KeyListoneProdfoo]]; BuildKeyListoneProdNode: PUBLIC PROC[position: INT, length: INT, KeyItem: KeyItemNode] RETURNS[KeyListNode] = BEGIN data: KeyListoneProdData _ NEW[KeyListoneProdDataBody _ [ KeyItem]]; RETURN[NEW[KeyListNodeBody_[position, length, KeyListoneProdProcs, data]]]; END; -- KeyListmoreProd KeyListmoreProdProcs: PUBLIC KeyListNodeProcs _ NEW[KeyListNodeProcsBody _ [KeyListmoreProdfoo]]; BuildKeyListmoreProdNode: PUBLIC PROC[position: INT, length: INT, KeyList: KeyListNode, KeyItem: KeyItemNode] RETURNS[KeyListNode] = BEGIN data: KeyListmoreProdData _ NEW[KeyListmoreProdDataBody _ [ KeyList, KeyItem]]; RETURN[NEW[KeyListNodeBody_[position, length, KeyListmoreProdProcs, data]]]; END; -- KeyItemProd KeyItemProdProcs: PUBLIC KeyItemNodeProcs _ NEW[KeyItemNodeProcsBody _ [KeyItemProdfoo]]; BuildKeyItemProdNode: PUBLIC PROC[position: INT, length: INT, Id: IdNode, OptExp: OptExpNode] RETURNS[KeyItemNode] = BEGIN data: KeyItemProdData _ NEW[KeyItemProdDataBody _ [ Id, OptExp]]; RETURN[NEW[KeyItemNodeBody_[position, length, KeyItemProdProcs, data]]]; END; -- OrderListoneProd OrderListoneProdProcs: PUBLIC OrderListNodeProcs _ NEW[OrderListNodeProcsBody _ [OrderListoneProdfoo]]; BuildOrderListoneProdNode: PUBLIC PROC[position: INT, length: INT, OptExp: OptExpNode] RETURNS[OrderListNode] = BEGIN data: OrderListoneProdData _ NEW[OrderListoneProdDataBody _ [ OptExp]]; RETURN[NEW[OrderListNodeBody_[position, length, OrderListoneProdProcs, data]]]; END; -- OrderListmoreProd OrderListmoreProdProcs: PUBLIC OrderListNodeProcs _ NEW[OrderListNodeProcsBody _ [OrderListmoreProdfoo]]; BuildOrderListmoreProdNode: PUBLIC PROC[position: INT, length: INT, OrderList: OrderListNode, OptExp: OptExpNode] RETURNS[OrderListNode] = BEGIN data: OrderListmoreProdData _ NEW[OrderListmoreProdDataBody _ [ OrderList, OptExp]]; RETURN[NEW[OrderListNodeBody_[position, length, OrderListmoreProdProcs, data]]]; END; -- OptExpemptyProd OptExpemptyProdProcs: PUBLIC OptExpNodeProcs _ NEW[OptExpNodeProcsBody _ [OptExpemptyProdfoo]]; BuildOptExpemptyProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[OptExpNode] = BEGIN RETURN[NEW[OptExpNodeBody_[position, length, OptExpemptyProdProcs, NIL]]]; END; -- OptExptrashProd OptExptrashProdProcs: PUBLIC OptExpNodeProcs _ NEW[OptExpNodeProcsBody _ [OptExptrashProdfoo]]; BuildOptExptrashProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[OptExpNode] = BEGIN RETURN[NEW[OptExpNodeBody_[position, length, OptExptrashProdProcs, NIL]]]; END; -- OptExpexpProd OptExpexpProdProcs: PUBLIC OptExpNodeProcs _ NEW[OptExpNodeProcsBody _ [OptExpexpProdfoo]]; BuildOptExpexpProdNode: PUBLIC PROC[position: INT, length: INT, Exp: ExpNode] RETURNS[OptExpNode] = BEGIN data: OptExpexpProdData _ NEW[OptExpexpProdDataBody _ [ Exp]]; RETURN[NEW[OptExpNodeBody_[position, length, OptExpexpProdProcs, data]]]; END; -- OptTypeabsentProd OptTypeabsentProdProcs: PUBLIC OptTypeNodeProcs _ NEW[OptTypeNodeProcsBody _ [OptTypeabsentProdMakeType]]; BuildOptTypeabsentProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[OptTypeNode] = BEGIN RETURN[NEW[OptTypeNodeBody_[position, length, OptTypeabsentProdProcs, NIL]]]; END; -- OptTypepresentProd OptTypepresentProdProcs: PUBLIC OptTypeNodeProcs _ NEW[OptTypeNodeProcsBody _ [OptTypepresentProdMakeType]]; BuildOptTypepresentProdNode: PUBLIC PROC[position: INT, length: INT, TypeExp: TypeExpNode] RETURNS[OptTypeNode] = BEGIN data: OptTypepresentProdData _ NEW[OptTypepresentProdDataBody _ [ TypeExp]]; RETURN[NEW[OptTypeNodeBody_[position, length, OptTypepresentProdProcs, data]]]; END; END..