-- ParseTableImpl.mesa
-- Last Edited by GNelson, March 1, 1983 6:11 pm
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.