<> <> <> <> <<>> <> <<>> <> <<>> <> <<>> <> DIRECTORY IO USING [STREAM], Rope USING [ROPE], SymTab USING [EachPairAction, Ref]; CDExpr: CEDAR DEFINITIONS = BEGIN <> <<>> ROPE: TYPE = Rope.ROPE; Error: ERROR [ec: ErrorCode, msg: ROPE]; ErrorCode: TYPE = { CouldNotEval, -- could not evaluate expression NoValue, -- expression didn't return a value Syntax, -- bad expression syntax FileError, -- could not read from file BadType, -- raised by the FetchXXX procs. NotTVTable -- the passed SymTab had something other than a TV! }; <> <<>> <> Assign: PROC [symTab: SymTab.Ref, line: ROPE] RETURNS [BOOL]; <> ReadStream: PROC [stream: IO.STREAM] RETURNS [symTab: SymTab.Ref]; ReadFile: PROC [fileName: ROPE] RETURNS [symTab: SymTab.Ref]; <<>> <> <<>> <> StoreBool: PROC [symTab: SymTab.Ref, name: ROPE, val: BOOL] RETURNS [BOOL]; StoreInt: PROC [symTab: SymTab.Ref, name: ROPE, val: INT] RETURNS [BOOL]; StoreAtom: PROC [symTab: SymTab.Ref, name: ROPE, val: ATOM] RETURNS [BOOL]; StoreRope: PROC [symTab: SymTab.Ref, name: ROPE, val: ROPE] RETURNS [BOOL]; <> StoreRef: PROC [symTab: SymTab.Ref, name: ROPE, val: REF] RETURNS [BOOL]; <<>> <> <> <> <> <<"Parameter XYZ is of the wrong type, it should be a rope.">> FetchBool: PROC [symTab: SymTab.Ref, name: ROPE] RETURNS [found: BOOL, val: BOOL]; FetchInt: PROC [symTab: SymTab.Ref, name: ROPE] RETURNS [found: BOOL, val: INT]; FetchAtom: PROC [symTab: SymTab.Ref, name: ROPE] RETURNS [found: BOOL, val: ATOM]; FetchRope: PROC [symTab: SymTab.Ref, name: ROPE] RETURNS [found: BOOL, val: ROPE]; <> FetchRef: PROC [symTab: SymTab.Ref, name: ROPE] RETURNS [found: BOOL, val: REF]; <> <<>> <> CombineTabs: PROC [winner: SymTab.Ref, loser: SymTab.Ref _ NIL] RETURNS [SymTab.Ref]; <> Pairs: PROC [symTab: SymTab.Ref, action: SymTab.EachPairAction] RETURNS [BOOL]; END.