<> <> <> <> <> <<>> <> <<>> <> <<>> <> <<>> <> 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, wDir: ROPE _ NIL] 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]; <> <> <> 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.