-- SaffronAG7aImpl.mesa
 -- Copyright س 1987 by Xerox Corporation.  All rights reserved.
 -- Generated by Rauen.pa at September 1, 1988 2:45:58 pm PDT
 --  using ThreeCasabaFour [1.2] of June 1, 1987 6:00:00 pm PDT

DIRECTORY
	SaffronAG7aDef,
	SaffronGenericDef,
	SaffronATDef;

SaffronAG7aImpl: CEDAR PROGRAM IMPORTS SaffronAG7aDef EXPORTS SaffronAG7aDef= 
BEGIN
OPEN SaffronAG7aDef, SaffronGenericDef, SaffronATDef;

-- AccessemptyProd

AccessemptyProdProcs:	PUBLIC AccessNodeProcs _
	NEW[AccessNodeProcsBody _ [AccessemptyProdGetAccessVal]];

BuildAccessemptyProdNode:	PUBLIC PROC[position: INT, length: INT]
	RETURNS[AccessNode] =
		BEGIN
		RETURN[NEW[AccessNodeBody_[position, length, AccessemptyProdProcs, NIL]]];
		END;


-- AccesspublicProd

AccesspublicProdProcs:	PUBLIC AccessNodeProcs _
	NEW[AccessNodeProcsBody _ [AccesspublicProdGetAccessVal]];

BuildAccesspublicProdNode:	PUBLIC PROC[position: INT, length: INT]
	RETURNS[AccessNode] =
		BEGIN
		RETURN[NEW[AccessNodeBody_[position, length, AccesspublicProdProcs, NIL]]];
		END;


-- AccessprivateProd

AccessprivateProdProcs:	PUBLIC AccessNodeProcs _
	NEW[AccessNodeProcsBody _ [AccessprivateProdGetAccessVal]];

BuildAccessprivateProdNode:	PUBLIC PROC[position: INT, length: INT]
	RETURNS[AccessNode] =
		BEGIN
		RETURN[NEW[AccessNodeBody_[position, length, AccessprivateProdProcs, NIL]]];
		END;


-- DefaultemptyProd

DefaultemptyProdProcs:	PUBLIC DefaultNodeProcs _
	NEW[DefaultNodeProcsBody _ [DefaultemptyProdGetDefaultExpVal]];

BuildDefaultemptyProdNode:	PUBLIC PROC[position: INT, length: INT]
	RETURNS[DefaultNode] =
		BEGIN
		RETURN[NEW[DefaultNodeBody_[position, length, DefaultemptyProdProcs, NIL]]];
		END;


-- DefaultgetsProd

DefaultgetsProdProcs:	PUBLIC DefaultNodeProcs _
	NEW[DefaultNodeProcsBody _ [DefaultgetsProdGetDefaultExpVal]];

BuildDefaultgetsProdNode:	PUBLIC PROC[position: INT, length: INT]
	RETURNS[DefaultNode] =
		BEGIN
		RETURN[NEW[DefaultNodeBody_[position, length, DefaultgetsProdProcs, NIL]]];
		END;


-- DefaultgetsexpProd

DefaultgetsexpProdProcs:	PUBLIC DefaultNodeProcs _
	NEW[DefaultNodeProcsBody _ [DefaultgetsexpProdGetDefaultExpVal]];

BuildDefaultgetsexpProdNode:	PUBLIC PROC[position: INT, length: INT, Exp: ExpNode]
	RETURNS[DefaultNode] =
		BEGIN
		data:	DefaultgetsexpProdData _
			NEW[DefaultgetsexpProdDataBody _ [
			Exp]];
		RETURN[NEW[DefaultNodeBody_[position, length, DefaultgetsexpProdProcs, data]]];
		END;


-- DefaultgetstrashProd

DefaultgetstrashProdProcs:	PUBLIC DefaultNodeProcs _
	NEW[DefaultNodeProcsBody _ [DefaultgetstrashProdGetDefaultExpVal]];

BuildDefaultgetstrashProdNode:	PUBLIC PROC[position: INT, length: INT]
	RETURNS[DefaultNode] =
		BEGIN
		RETURN[NEW[DefaultNodeBody_[position, length, DefaultgetstrashProdProcs, NIL]]];
		END;


-- DefaultgetsexportrashProd

DefaultgetsexportrashProdProcs:	PUBLIC DefaultNodeProcs _
	NEW[DefaultNodeProcsBody _ [DefaultgetsexportrashProdGetDefaultExpVal]];

BuildDefaultgetsexportrashProdNode:	PUBLIC PROC[position: INT, length: INT, Exp: ExpNode]
	RETURNS[DefaultNode] =
		BEGIN
		data:	DefaultgetsexportrashProdData _
			NEW[DefaultgetsexportrashProdDataBody _ [
			Exp]];
		RETURN[NEW[DefaultNodeBody_[position, length, DefaultgetsexportrashProdProcs, data]]];
		END;


-- IdentidProd

IdentidProdProcs:	PUBLIC IdentNodeProcs _
	NEW[IdentNodeProcsBody _ [IdentidProdAddNamesToFieldList, IdentidProdGetIdentInfo, IdentidProdAddNamesToSequence, IdentidProdAddValueDeclarationToFieldList, IdentidProdAddTypeDeclarationToFieldList, IdentidProdMakeCodeToStoreTOSInVariousLocalFrameSlots]];

BuildIdentidProdNode:	PUBLIC PROC[position: INT, length: INT, Id: IdNode]
	RETURNS[IdentNode] =
		BEGIN
		data:	IdentidProdData _
			NEW[IdentidProdDataBody _ [
			Id]];
		RETURN[NEW[IdentNodeBody_[position, length, IdentidProdProcs, data]]];
		END;


-- IdentidpositionProd

IdentidpositionProdProcs:	PUBLIC IdentNodeProcs _
	NEW[IdentNodeProcsBody _ [IdentidpositionProdAddNamesToFieldList, IdentidpositionProdGetIdentInfo, IdentidpositionProdAddNamesToSequence, IdentidpositionProdAddValueDeclarationToFieldList, IdentidpositionProdAddTypeDeclarationToFieldList, IdentidpositionProdMakeCodeToStoreTOSInVariousLocalFrameSlots]];

BuildIdentidpositionProdNode:	PUBLIC PROC[position: INT, length: INT, Id: IdNode, Position: PositionNode]
	RETURNS[IdentNode] =
		BEGIN
		data:	IdentidpositionProdData _
			NEW[IdentidpositionProdDataBody _ [
			Id, Position]];
		RETURN[NEW[IdentNodeBody_[position, length, IdentidpositionProdProcs, data]]];
		END;


-- PositionProd

PositionProdProcs:	PUBLIC PositionNodeProcs _
	NEW[PositionNodeProcsBody _ [PositionProdGetPositionVal]];

BuildPositionProdNode:	PUBLIC PROC[position: INT, length: INT, Exp: ExpNode, OptBits: OptBitsNode]
	RETURNS[PositionNode] =
		BEGIN
		data:	PositionProdData _
			NEW[PositionProdDataBody _ [
			Exp, OptBits]];
		RETURN[NEW[PositionNodeBody_[position, length, PositionProdProcs, data]]];
		END;


-- OptBitsabsentProd

OptBitsabsentProdProcs:	PUBLIC OptBitsNodeProcs _
	NEW[OptBitsNodeProcsBody _ [OptBitsabsentProdGetBoundsVal]];

BuildOptBitsabsentProdNode:	PUBLIC PROC[position: INT, length: INT]
	RETURNS[OptBitsNode] =
		BEGIN
		RETURN[NEW[OptBitsNodeBody_[position, length, OptBitsabsentProdProcs, NIL]]];
		END;


-- OptBitspresentProd

OptBitspresentProdProcs:	PUBLIC OptBitsNodeProcs _
	NEW[OptBitsNodeProcsBody _ [OptBitspresentProdGetBoundsVal]];

BuildOptBitspresentProdNode:	PUBLIC PROC[position: INT, length: INT, Bounds: BoundsNode]
	RETURNS[OptBitsNode] =
		BEGIN
		data:	OptBitspresentProdData _
			NEW[OptBitspresentProdDataBody _ [
			Bounds]];
		RETURN[NEW[OptBitsNodeBody_[position, length, OptBitspresentProdProcs, data]]];
		END;

END..