PROC [fileName: Rope.
key, value, gets, semi: Rope.ROPE;
WHILE tokenKind # tokenERROR
DO
--AND tokenKind # tokenEOF DO
[tokenKind, gets, ] ← IO.GetCedarTokenRope[stream];
IF tokenKind # tokenSINGLE
AND ~Rope.Equal[gets, "←"]
THEN
Error[Rope.Cat["Expecting ←, got: ", gets]];
-- [tokenKind, value, ] ← IO.GetCedarTokenRope[stream];
value ← IO.GetRopeLiteral[stream];
IF tokenKind = tokenERROR
OR tokenKind = tokenEOF
THEN
Error["Unexpected end of file"];
[] ← SymTab.Store[tab, key, value];
[tokenKind, semi, ] ← IO.GetCedarTokenRope[stream];
IF ~tokenKind # tokenSINGLE
AND Rope.Equal[gets, ";"]
THEN
Error[Rope.Cat["Expecting ;, got: ", semi]];
[tokenKind, key, ] ← IO.GetCedarTokenRope[stream];
-- IF tokenKind = tokenSINGLE AND Rope.Equal[key, "."] THEN tokenKind ← tokenEOF;
ENDLOOP;