-- SaffronAG2Def.mesa
 -- Copyright س 1987 by Xerox Corporation.  All rights reserved.
 -- Generated by hederman.pa at August 17, 1987 4:33:01 pm PDT
 --  using ThreeCasabaFour [1.2] of June 1, 1987 6:00:00 pm PDT

DIRECTORY
	SaffronTreeDeclsDef,
	SaffronGenericDef,
	SaffronATDef;

SaffronAG2Def: CEDAR DEFINITIONS = 
BEGIN
OPEN SaffronTreeDeclsDef, SaffronGenericDef, SaffronATDef;

-- SelectHeadplainProd

SelectHeadplainProdData:	TYPE = REF SelectHeadplainProdDataBody;
SelectHeadplainProdDataBody:	TYPE = RECORD[
Exp: ExpNode];

SelectHeadplainProdProcs:	SelectHeadNodeProcs;

BuildSelectHeadplainProdNode:	PROC[position: INT, length: INT, Exp: ExpNode]
	RETURNS[SelectHeadNode];

SelectHeadplainProdfoo:	fooProcType;

-- SelectHeaddiscriminatingProd

SelectHeaddiscriminatingProdData:	TYPE = REF SelectHeaddiscriminatingProdDataBody;
SelectHeaddiscriminatingProdDataBody:	TYPE = RECORD[
BindItem: BindItemNode, OptExp: OptExpNode];

SelectHeaddiscriminatingProdProcs:	SelectHeadNodeProcs;

BuildSelectHeaddiscriminatingProdNode:	PROC[position: INT, length: INT, BindItem: BindItemNode, OptExp: OptExpNode]
	RETURNS[SelectHeadNode];

SelectHeaddiscriminatingProdfoo:	fooProcType;

-- SelectExpListemptyProd

SelectExpListemptyProdData:	TYPE = REF SelectExpListemptyProdDataBody;
SelectExpListemptyProdDataBody:	TYPE = RECORD[
];

SelectExpListemptyProdProcs:	SelectExpListNodeProcs;

BuildSelectExpListemptyProdNode:	PROC[position: INT, length: INT]
	RETURNS[SelectExpListNode];

SelectExpListemptyProdfoo:	fooProcType;

-- SelectExpListmoreProd

SelectExpListmoreProdData:	TYPE = REF SelectExpListmoreProdDataBody;
SelectExpListmoreProdDataBody:	TYPE = RECORD[
SelectExpList: SelectExpListNode, SelectExpItem: SelectExpItemNode];

SelectExpListmoreProdProcs:	SelectExpListNodeProcs;

BuildSelectExpListmoreProdNode:	PROC[position: INT, length: INT, SelectExpList: SelectExpListNode, SelectExpItem: SelectExpItemNode]
	RETURNS[SelectExpListNode];

SelectExpListmoreProdfoo:	fooProcType;

-- SelectExpItemProd

SelectExpItemProdData:	TYPE = REF SelectExpItemProdDataBody;
SelectExpItemProdDataBody:	TYPE = RECORD[
SelectLabel: SelectLabelNode, Exp: ExpNode];

SelectExpItemProdProcs:	SelectExpItemNodeProcs;

BuildSelectExpItemProdNode:	PROC[position: INT, length: INT, SelectLabel: SelectLabelNode, Exp: ExpNode]
	RETURNS[SelectExpItemNode];

SelectExpItemProdfoo:	fooProcType;

-- SelectLabeltypeProd

SelectLabeltypeProdData:	TYPE = REF SelectLabeltypeProdDataBody;
SelectLabeltypeProdDataBody:	TYPE = RECORD[
Ident: IdentNode, TypeExp: TypeExpNode];

SelectLabeltypeProdProcs:	SelectLabelNodeProcs;

BuildSelectLabeltypeProdNode:	PROC[position: INT, length: INT, Ident: IdentNode, TypeExp: TypeExpNode]
	RETURNS[SelectLabelNode];

SelectLabeltypeProdfoo:	fooProcType;

-- SelectLabeltestProd

SelectLabeltestProdData:	TYPE = REF SelectLabeltestProdDataBody;
SelectLabeltestProdDataBody:	TYPE = RECORD[
SelectTestList: SelectTestListNode];

SelectLabeltestProdProcs:	SelectLabelNodeProcs;

BuildSelectLabeltestProdNode:	PROC[position: INT, length: INT, SelectTestList: SelectTestListNode]
	RETURNS[SelectLabelNode];

SelectLabeltestProdfoo:	fooProcType;

-- SelectTestListoneProd

SelectTestListoneProdData:	TYPE = REF SelectTestListoneProdDataBody;
SelectTestListoneProdDataBody:	TYPE = RECORD[
Relation: RelationNode];

SelectTestListoneProdProcs:	SelectTestListNodeProcs;

BuildSelectTestListoneProdNode:	PROC[position: INT, length: INT, Relation: RelationNode]
	RETURNS[SelectTestListNode];

SelectTestListoneProdfoo:	fooProcType;

-- SelectTestListmoreProd

SelectTestListmoreProdData:	TYPE = REF SelectTestListmoreProdDataBody;
SelectTestListmoreProdDataBody:	TYPE = RECORD[
SelectTestList: SelectTestListNode, Relation: RelationNode];

SelectTestListmoreProdProcs:	SelectTestListNodeProcs;

BuildSelectTestListmoreProdNode:	PROC[position: INT, length: INT, SelectTestList: SelectTestListNode, Relation: RelationNode]
	RETURNS[SelectTestListNode];

SelectTestListmoreProdfoo:	fooProcType;

-- RelationnegativeProd

RelationnegativeProdData:	TYPE = REF RelationnegativeProdDataBody;
RelationnegativeProdDataBody:	TYPE = RECORD[
RelationTail: RelationTailNode];

RelationnegativeProdProcs:	RelationNodeProcs;

BuildRelationnegativeProdNode:	PROC[position: INT, length: INT, RelationTail: RelationTailNode]
	RETURNS[RelationNode];

RelationnegativeProdfoo:	fooProcType;

-- RelationpositiveProd

RelationpositiveProdData:	TYPE = REF RelationpositiveProdDataBody;
RelationpositiveProdDataBody:	TYPE = RECORD[
RelationTail: RelationTailNode];

RelationpositiveProdProcs:	RelationNodeProcs;

BuildRelationpositiveProdNode:	PROC[position: INT, length: INT, RelationTail: RelationTailNode]
	RETURNS[RelationNode];

RelationpositiveProdfoo:	fooProcType;

-- RelationTailrangeProd

RelationTailrangeProdData:	TYPE = REF RelationTailrangeProdDataBody;
RelationTailrangeProdDataBody:	TYPE = RECORD[
Range: RangeNode];

RelationTailrangeProdProcs:	RelationTailNodeProcs;

BuildRelationTailrangeProdNode:	PROC[position: INT, length: INT, Range: RangeNode]
	RETURNS[RelationTailNode];

RelationTailrangeProdfoo:	fooProcType;

-- RelationTailrelopProd

RelationTailrelopProdData:	TYPE = REF RelationTailrelopProdDataBody;
RelationTailrelopProdDataBody:	TYPE = RECORD[
Relop: RelopNode, Exp: ExpNode];

RelationTailrelopProdProcs:	RelationTailNodeProcs;

BuildRelationTailrelopProdNode:	PROC[position: INT, length: INT, Relop: RelopNode, Exp: ExpNode]
	RETURNS[RelationTailNode];

RelationTailrelopProdfoo:	fooProcType;

-- RelopeqProd

RelopeqProdData:	TYPE = REF RelopeqProdDataBody;
RelopeqProdDataBody:	TYPE = RECORD[
];

RelopeqProdProcs:	RelopNodeProcs;

BuildRelopeqProdNode:	PROC[position: INT, length: INT]
	RETURNS[RelopNode];

RelopeqProdfoo:	fooProcType;

-- RelopneProd

RelopneProdData:	TYPE = REF RelopneProdDataBody;
RelopneProdDataBody:	TYPE = RECORD[
];

RelopneProdProcs:	RelopNodeProcs;

BuildRelopneProdNode:	PROC[position: INT, length: INT]
	RETURNS[RelopNode];

RelopneProdfoo:	fooProcType;

-- RelopltProd

RelopltProdData:	TYPE = REF RelopltProdDataBody;
RelopltProdDataBody:	TYPE = RECORD[
];

RelopltProdProcs:	RelopNodeProcs;

BuildRelopltProdNode:	PROC[position: INT, length: INT]
	RETURNS[RelopNode];

RelopltProdfoo:	fooProcType;

-- RelopleProd

RelopleProdData:	TYPE = REF RelopleProdDataBody;
RelopleProdDataBody:	TYPE = RECORD[
];

RelopleProdProcs:	RelopNodeProcs;

BuildRelopleProdNode:	PROC[position: INT, length: INT]
	RETURNS[RelopNode];

RelopleProdfoo:	fooProcType;

-- RelopgtProd

RelopgtProdData:	TYPE = REF RelopgtProdDataBody;
RelopgtProdDataBody:	TYPE = RECORD[
];

RelopgtProdProcs:	RelopNodeProcs;

BuildRelopgtProdNode:	PROC[position: INT, length: INT]
	RETURNS[RelopNode];

RelopgtProdfoo:	fooProcType;

-- RelopgeProd

RelopgeProdData:	TYPE = REF RelopgeProdDataBody;
RelopgeProdDataBody:	TYPE = RECORD[
];

RelopgeProdProcs:	RelopNodeProcs;

BuildRelopgeProdNode:	PROC[position: INT, length: INT]
	RETURNS[RelopNode];

RelopgeProdfoo:	fooProcType;

-- RangetypeidProd

RangetypeidProdData:	TYPE = REF RangetypeidProdDataBody;
RangetypeidProdDataBody:	TYPE = RECORD[
TypeId: TypeIdNode];

RangetypeidProdProcs:	RangeNodeProcs;

BuildRangetypeidProdNode:	PROC[position: INT, length: INT, TypeId: TypeIdNode]
	RETURNS[RangeNode];

RangetypeidProdfoo:	fooProcType;

-- RangesubrangeProd

RangesubrangeProdData:	TYPE = REF RangesubrangeProdDataBody;
RangesubrangeProdDataBody:	TYPE = RECORD[
Subrange: SubrangeNode];

RangesubrangeProdProcs:	RangeNodeProcs;

BuildRangesubrangeProdNode:	PROC[position: INT, length: INT, Subrange: SubrangeNode]
	RETURNS[RangeNode];

RangesubrangeProdfoo:	fooProcType;

-- CatchProd

CatchProdData:	TYPE = REF CatchProdDataBody;
CatchProdDataBody:	TYPE = RECORD[
CatchCaseList: CatchCaseListNode, CatchAny: CatchAnyNode];

CatchProdProcs:	CatchNodeProcs;

BuildCatchProdNode:	PROC[position: INT, length: INT, CatchCaseList: CatchCaseListNode, CatchAny: CatchAnyNode]
	RETURNS[CatchNode];

CatchProdfoo:	fooProcType;

-- CatchAnyabsentProd

CatchAnyabsentProdData:	TYPE = REF CatchAnyabsentProdDataBody;
CatchAnyabsentProdDataBody:	TYPE = RECORD[
];

CatchAnyabsentProdProcs:	CatchAnyNodeProcs;

BuildCatchAnyabsentProdNode:	PROC[position: INT, length: INT]
	RETURNS[CatchAnyNode];

CatchAnyabsentProdfoo:	fooProcType;

-- CatchAnypresentProd

CatchAnypresentProdData:	TYPE = REF CatchAnypresentProdDataBody;
CatchAnypresentProdDataBody:	TYPE = RECORD[
Statement: StatementNode];

CatchAnypresentProdProcs:	CatchAnyNodeProcs;

BuildCatchAnypresentProdNode:	PROC[position: INT, length: INT, Statement: StatementNode]
	RETURNS[CatchAnyNode];

CatchAnypresentProdfoo:	fooProcType;

-- CatchCaseListemptyProd

CatchCaseListemptyProdData:	TYPE = REF CatchCaseListemptyProdDataBody;
CatchCaseListemptyProdDataBody:	TYPE = RECORD[
];

CatchCaseListemptyProdProcs:	CatchCaseListNodeProcs;

BuildCatchCaseListemptyProdNode:	PROC[position: INT, length: INT]
	RETURNS[CatchCaseListNode];

CatchCaseListemptyProdfoo:	fooProcType;

-- CatchCaseListmoreProd

CatchCaseListmoreProdData:	TYPE = REF CatchCaseListmoreProdDataBody;
CatchCaseListmoreProdDataBody:	TYPE = RECORD[
CatchCaseList: CatchCaseListNode, CatchCase: CatchCaseNode];

CatchCaseListmoreProdProcs:	CatchCaseListNodeProcs;

BuildCatchCaseListmoreProdNode:	PROC[position: INT, length: INT, CatchCaseList: CatchCaseListNode, CatchCase: CatchCaseNode]
	RETURNS[CatchCaseListNode];

CatchCaseListmoreProdfoo:	fooProcType;

-- CatchCaseProd

CatchCaseProdData:	TYPE = REF CatchCaseProdDataBody;
CatchCaseProdDataBody:	TYPE = RECORD[
SignalList: SignalListNode, Statement: StatementNode];

CatchCaseProdProcs:	CatchCaseNodeProcs;

BuildCatchCaseProdNode:	PROC[position: INT, length: INT, SignalList: SignalListNode, Statement: StatementNode]
	RETURNS[CatchCaseNode];

CatchCaseProdfoo:	fooProcType;

-- SignalListoneProd

SignalListoneProdData:	TYPE = REF SignalListoneProdDataBody;
SignalListoneProdDataBody:	TYPE = RECORD[
Exp: ExpNode];

SignalListoneProdProcs:	SignalListNodeProcs;

BuildSignalListoneProdNode:	PROC[position: INT, length: INT, Exp: ExpNode]
	RETURNS[SignalListNode];

SignalListoneProdfoo:	fooProcType;

-- SignalListmoreProd

SignalListmoreProdData:	TYPE = REF SignalListmoreProdDataBody;
SignalListmoreProdDataBody:	TYPE = RECORD[
SignalList: SignalListNode, Exp: ExpNode];

SignalListmoreProdProcs:	SignalListNodeProcs;

BuildSignalListmoreProdNode:	PROC[position: INT, length: INT, SignalList: SignalListNode, Exp: ExpNode]
	RETURNS[SignalListNode];

SignalListmoreProdfoo:	fooProcType;

-- ExpListkeylistProd

ExpListkeylistProdData:	TYPE = REF ExpListkeylistProdDataBody;
ExpListkeylistProdDataBody:	TYPE = RECORD[
KeyList: KeyListNode];

ExpListkeylistProdProcs:	ExpListNodeProcs;

BuildExpListkeylistProdNode:	PROC[position: INT, length: INT, KeyList: KeyListNode]
	RETURNS[ExpListNode];

ExpListkeylistProdfoo:	fooProcType;

-- ExpListorderlistProd

ExpListorderlistProdData:	TYPE = REF ExpListorderlistProdDataBody;
ExpListorderlistProdDataBody:	TYPE = RECORD[
OrderList: OrderListNode];

ExpListorderlistProdProcs:	ExpListNodeProcs;

BuildExpListorderlistProdNode:	PROC[position: INT, length: INT, OrderList: OrderListNode]
	RETURNS[ExpListNode];

ExpListorderlistProdfoo:	fooProcType;

-- KeyListoneProd

KeyListoneProdData:	TYPE = REF KeyListoneProdDataBody;
KeyListoneProdDataBody:	TYPE = RECORD[
KeyItem: KeyItemNode];

KeyListoneProdProcs:	KeyListNodeProcs;

BuildKeyListoneProdNode:	PROC[position: INT, length: INT, KeyItem: KeyItemNode]
	RETURNS[KeyListNode];

KeyListoneProdfoo:	fooProcType;

-- KeyListmoreProd

KeyListmoreProdData:	TYPE = REF KeyListmoreProdDataBody;
KeyListmoreProdDataBody:	TYPE = RECORD[
KeyList: KeyListNode, KeyItem: KeyItemNode];

KeyListmoreProdProcs:	KeyListNodeProcs;

BuildKeyListmoreProdNode:	PROC[position: INT, length: INT, KeyList: KeyListNode, KeyItem: KeyItemNode]
	RETURNS[KeyListNode];

KeyListmoreProdfoo:	fooProcType;

-- KeyItemProd

KeyItemProdData:	TYPE = REF KeyItemProdDataBody;
KeyItemProdDataBody:	TYPE = RECORD[
Id: IdNode, OptExp: OptExpNode];

KeyItemProdProcs:	KeyItemNodeProcs;

BuildKeyItemProdNode:	PROC[position: INT, length: INT, Id: IdNode, OptExp: OptExpNode]
	RETURNS[KeyItemNode];

KeyItemProdfoo:	fooProcType;

-- OrderListoneProd

OrderListoneProdData:	TYPE = REF OrderListoneProdDataBody;
OrderListoneProdDataBody:	TYPE = RECORD[
OptExp: OptExpNode];

OrderListoneProdProcs:	OrderListNodeProcs;

BuildOrderListoneProdNode:	PROC[position: INT, length: INT, OptExp: OptExpNode]
	RETURNS[OrderListNode];

OrderListoneProdfoo:	fooProcType;

-- OrderListmoreProd

OrderListmoreProdData:	TYPE = REF OrderListmoreProdDataBody;
OrderListmoreProdDataBody:	TYPE = RECORD[
OrderList: OrderListNode, OptExp: OptExpNode];

OrderListmoreProdProcs:	OrderListNodeProcs;

BuildOrderListmoreProdNode:	PROC[position: INT, length: INT, OrderList: OrderListNode, OptExp: OptExpNode]
	RETURNS[OrderListNode];

OrderListmoreProdfoo:	fooProcType;

-- OptExpemptyProd

OptExpemptyProdData:	TYPE = REF OptExpemptyProdDataBody;
OptExpemptyProdDataBody:	TYPE = RECORD[
];

OptExpemptyProdProcs:	OptExpNodeProcs;

BuildOptExpemptyProdNode:	PROC[position: INT, length: INT]
	RETURNS[OptExpNode];

OptExpemptyProdfoo:	fooProcType;

-- OptExptrashProd

OptExptrashProdData:	TYPE = REF OptExptrashProdDataBody;
OptExptrashProdDataBody:	TYPE = RECORD[
];

OptExptrashProdProcs:	OptExpNodeProcs;

BuildOptExptrashProdNode:	PROC[position: INT, length: INT]
	RETURNS[OptExpNode];

OptExptrashProdfoo:	fooProcType;

-- OptExpexpProd

OptExpexpProdData:	TYPE = REF OptExpexpProdDataBody;
OptExpexpProdDataBody:	TYPE = RECORD[
Exp: ExpNode];

OptExpexpProdProcs:	OptExpNodeProcs;

BuildOptExpexpProdNode:	PROC[position: INT, length: INT, Exp: ExpNode]
	RETURNS[OptExpNode];

OptExpexpProdfoo:	fooProcType;

-- OptTypeabsentProd

OptTypeabsentProdData:	TYPE = REF OptTypeabsentProdDataBody;
OptTypeabsentProdDataBody:	TYPE = RECORD[
];

OptTypeabsentProdProcs:	OptTypeNodeProcs;

BuildOptTypeabsentProdNode:	PROC[position: INT, length: INT]
	RETURNS[OptTypeNode];

OptTypeabsentProdMakeType:	MakeTypeProcType;

-- OptTypepresentProd

OptTypepresentProdData:	TYPE = REF OptTypepresentProdDataBody;
OptTypepresentProdDataBody:	TYPE = RECORD[
TypeExp: TypeExpNode];

OptTypepresentProdProcs:	OptTypeNodeProcs;

BuildOptTypepresentProdNode:	PROC[position: INT, length: INT, TypeExp: TypeExpNode]
	RETURNS[OptTypeNode];

OptTypepresentProdMakeType:	MakeTypeProcType;
END..