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.