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

DIRECTORY
	Rope,
	SaffronGenericDef,
	ThreeC4Support;

SaffronGenericImpl: CEDAR PROGRAM IMPORTS Rope EXPORTS SaffronGenericDef= 
BEGIN
OPEN Rope, SaffronGenericDef, ThreeC4Support;
SaffronGenericLinkProc: PUBLIC PROC[prodLinkArray: SeeProdLinkArray, tknLinkArray: TokenLinkArray] =
BEGIN
tknLinkArray[tokenDECIMAL] _ BuildDecimalnumNode;
tknLinkArray[tokenOCTAL] _ BuildOctalnumNode;
tknLinkArray[tokenHEX] _ BuildHexnumNode;
tknLinkArray[tokenID] _ BuildIdNode;
tknLinkArray[tokenROPE] _ BuildStringNode;
tknLinkArray[tokenREAL] _ BuildFlnumNode;
tknLinkArray[tokenCHAR] _ BuildCharNode;
tknLinkArray[tokenATOM] _ BuildAtomNode;
END;


--Decimalnum

BuildDecimalnumNode: PUBLIC PROC[text: Rope.ROPE, firstCharPosition: INT] RETURNS[DecimalnumNode] =
	{RETURN[NEW[DecimalnumNodeBody_[text, firstCharPosition, Length[text]]]]};


--Octalnum

BuildOctalnumNode: PUBLIC PROC[text: Rope.ROPE, firstCharPosition: INT] RETURNS[OctalnumNode] =
	{RETURN[NEW[OctalnumNodeBody_[text, firstCharPosition, Length[text]]]]};


--Hexnum

BuildHexnumNode: PUBLIC PROC[text: Rope.ROPE, firstCharPosition: INT] RETURNS[HexnumNode] =
	{RETURN[NEW[HexnumNodeBody_[text, firstCharPosition, Length[text]]]]};


--Id

BuildIdNode: PUBLIC PROC[text: Rope.ROPE, firstCharPosition: INT] RETURNS[IdNode] =
	{RETURN[NEW[IdNodeBody_[text, firstCharPosition, Length[text]]]]};


--String

BuildStringNode: PUBLIC PROC[text: Rope.ROPE, firstCharPosition: INT] RETURNS[StringNode] =
	{RETURN[NEW[StringNodeBody_[text, firstCharPosition, Length[text]]]]};


--Flnum

BuildFlnumNode: PUBLIC PROC[text: Rope.ROPE, firstCharPosition: INT] RETURNS[FlnumNode] =
	{RETURN[NEW[FlnumNodeBody_[text, firstCharPosition, Length[text]]]]};


--Char

BuildCharNode: PUBLIC PROC[text: Rope.ROPE, firstCharPosition: INT] RETURNS[CharNode] =
	{RETURN[NEW[CharNodeBody_[text, firstCharPosition, Length[text]]]]};


--Atom

BuildAtomNode: PUBLIC PROC[text: Rope.ROPE, firstCharPosition: INT] RETURNS[AtomNode] =
	{RETURN[NEW[AtomNodeBody_[text, firstCharPosition, Length[text]]]]};

END..