DIRECTORY Rope, ThreeC4Support, WartDef; WartImpl: CEDAR PROGRAM IMPORTS Rope EXPORTS WartDef= BEGIN OPEN Rope, ThreeC4Support, WartDef; WartLinkProc: PUBLIC PROC[prodLinkArray: SeeProdLinkArray, tknLinkArray: TokenLinkArray] = BEGIN tknLinkArray[tokenID] _ BuildidentifierNode; tknLinkArray[tokenDECIMAL] _ BuildnumberDNode; tknLinkArray[tokenOCTAL] _ BuildnumberONode; tknLinkArray[tokenHEX] _ BuildnumberHNode; tknLinkArray[tokenROPE] _ BuildRopeNode; END; BuildidentifierNode: PUBLIC PROC[text: Rope.ROPE, firstCharPosition: INT] RETURNS[identifierNode] = {RETURN[NEW[identifierNodeBody_[text, firstCharPosition, Length[text]]]]}; BuildnumberDNode: PUBLIC PROC[text: Rope.ROPE, firstCharPosition: INT] RETURNS[numberDNode] = {RETURN[NEW[numberDNodeBody_[text, firstCharPosition, Length[text]]]]}; BuildnumberONode: PUBLIC PROC[text: Rope.ROPE, firstCharPosition: INT] RETURNS[numberONode] = {RETURN[NEW[numberONodeBody_[text, firstCharPosition, Length[text]]]]}; BuildnumberHNode: PUBLIC PROC[text: Rope.ROPE, firstCharPosition: INT] RETURNS[numberHNode] = {RETURN[NEW[numberHNodeBody_[text, firstCharPosition, Length[text]]]]}; BuildRopeNode: PUBLIC PROC[text: Rope.ROPE, firstCharPosition: INT] RETURNS[RopeNode] = {RETURN[NEW[RopeNodeBody_[text, firstCharPosition, Length[text]]]]}; END.. .identifier numberD numberO numberH Rope ÊȘšÏk ˜ J˜J˜J˜—J˜Jš Ïnœœœœœ ˜6Jš˜Jšœ˜#Jšž œœœA˜ZJš˜J˜,J˜.J˜,J˜*J˜(Jšœ˜J˜J˜Jšœ ™ J˜š žœœœ œœœ˜cJšœœœ?˜J—J˜J˜Jšœ™J˜š žœœœ œœœ˜]Jšœœœ<˜G—J˜J˜Jšœ™J˜š žœœœ œœœ˜]Jšœœœ<˜G—J˜J˜Jšœ™J˜š žœœœ œœœ˜]Jšœœœ<˜G—J˜J˜Jšœ™J˜š ž œœœ œœœ ˜WJšœœœ9˜D—J˜Jšœ˜J˜—…—$