DIRECTORY
	ThreeC4BaseDecl1Def,
	Rope,
	ThreeC4Support;

ThreeC4BaseDecl1Impl: CEDAR PROGRAM IMPORTS Rope EXPORTS ThreeC4BaseDecl1Def= 
BEGIN
OPEN ThreeC4BaseDecl1Def, Rope, ThreeC4Support;
ThreeC4BaseDecl1LinkProc: PUBLIC PROC[prodLinkArray: SeeProdLinkArray, tknLinkArray: TokenLinkArray] =
BEGIN
tknLinkArray[tokenID] ← BuildIdentifierNode;
tknLinkArray[tokenROPE] ← BuildRopeNode;
tknLinkArray[tokenDECIMAL] ← BuildNonNegIntegerNode;
END;


--Identifier

BuildIdentifierNode: PUBLIC PROC[text: Rope.ROPE, firstCharPosition: INT] RETURNS[IdentifierNode] =
	{RETURN[NEW[IdentifierNodeBody←[text, firstCharPosition, Length[text]]]]};


--Rope

BuildRopeNode: PUBLIC PROC[text: Rope.ROPE, firstCharPosition: INT] RETURNS[RopeNode] =
	{RETURN[NEW[RopeNodeBody←[text, firstCharPosition, Length[text]]]]};


--NonNegInteger

BuildNonNegIntegerNode: PUBLIC PROC[text: Rope.ROPE, firstCharPosition: INT] RETURNS[NonNegIntegerNode] =
	{RETURN[NEW[NonNegIntegerNodeBody←[text, firstCharPosition, Length[text]]]]};

END..