DIRECTORY CRunTimeDefs USING [], Storage USING [Node]; CRunTimeImpl: PROGRAM IMPORTS Storage EXPORTS CRunTimeDefs = { StringToArray: PUBLIC PROCEDURE [s: LONG STRING] RETURNS [LONG POINTER TO INTEGER] = { -- the problem here is that the string will be allocated EACH time -- it is used. FIX THIS LATER. saveP, p: LONG POINTER TO INTEGER; n: INTEGER; p ← Storage.Node[nwords: SIZE[INTEGER] * s.length]; -- NOTE: the scanner has already inserting the Ascii.NUL saveP ← p; FOR i: CARDINAL IN [0..s.length) DO n ← s.text[i] - 0C; -- convert to an INTEGER p↑ ← n; p ← p + SIZE[INTEGER]; ENDLOOP; RETURN[saveP]; }; }.