JunoParseTableImpl.mesa (was ParseTableImpl.mesa)
Last Edited by GNelson, March 1, 1983 6:11 pm
Last Edited by Stolfi March 13, 1984 3:20:19 am PST

DIRECTORY Atom, ParseTable;

ParseTableImpl: MONITOR
IMPORTS Atom
EXPORTS ParseTable
= BEGIN OPEN ParseTable;

NewHandle: PUBLIC ENTRY PROC RETURNS [Handle] =

{RETURN [NEW [HandleRep]]};

Enter: PUBLIC ENTRY PROC [h: Handle, p: Properties] =

{Atom.PutProp[p.name, h, p];
IF p.alias # NIL THEN Atom.PutProp[NARROW[p.alias], h, p]};

Search: PUBLIC ENTRY PROC[h: Handle, a: REF ANY, default: Properties]
RETURNS [Properties] =

{r: REF ANY ← Atom.GetProp[NARROW[a], h];
IF r = NIL THEN RETURN [default] ELSE RETURN [NARROW[r]]};

END.