<> <> <> DIRECTORY MBQueue USING [ Queue ], Rope USING [ ROPE ], ; NarratedDocs: CEDAR DEFINITIONS = { <> <<>> ScriptList: TYPE ~ LIST OF Script; Script: TYPE ~ REF ScriptBody; ScriptBody: TYPE ~ RECORD [ <> scriptDesc: Rope.ROPE _ NIL, <> scriptID: INT _ 0, numEntries: INT _ 0, firstEntry, lastEntry: ScriptEntry _ NIL ]; ScriptEntry: TYPE ~ REF ScriptEntryBody; ScriptEntryBody: TYPE ~ RECORD [ entryID: EntryID _ NIL, <> next, prev: ScriptEntry _ NIL ]; EntryID: TYPE ~ REF EntryIDBody; EntryIDBody: TYPE ~ RECORD [ script: INT _ 0, entry: INT _ 0 ]; ScriptTool: TYPE = REF ScriptToolBody; ScriptToolBody: TYPE = RECORD [ scriptID: INT _ 0, seqNum: INT _ 0, addEntries: PROC, deleteEntries: PROC, findEntry: PROC, playEntry: PROC, play: PROC, newScript: PROC, msg: Rope.ROPE ]; <<>> <