<> <> <> DIRECTORY <> Build, Check, <> Delay, DPrint, Flow, FS, Globals, HashTable, <> IO, Mark, <> Model, Parse, Printout, <> <> Rope, TerminalIO; <> <> <> <> Main: CEDAR PROGRAM IMPORTS <> Build, Check, <> Delay, DPrint, Flow, FS, HashTable, <> IO, Mark, <> Model, Parse, Printout, <> <> TerminalIO <> <> <> <> EXPORTS Globals = BEGIN OPEN Globals; StdOut: PUBLIC IO.STREAM _ TerminalIO.TOS[]; DupsOK: PUBLIC BOOLEAN _ FALSE; Stop: PUBLIC REF BOOLEAN _ NEW[BOOLEAN _ FALSE]; notQuit: BOOLEAN _ TRUE; -- FALSE means ending Crystal. <> <> <> <> <> <> <> <> <> ivalue: INT; <> CmdTable: ARRAY[0..30) OF Rope.ROPE _ [ "quit", "bus node node ...", "capacitance pfs node node ...", "check", "clear", "critical [file] [index{m}]", "delay", "dump file", "flow in/out/off/ignore/normal flow flow ...", "help", "input node node ...", "markdynamic node value node value ...", "model [name]", "options [name value] [name value] ...", "output node node ...", "parameter", "prcapacitance [-t pfs] [node node ...]", "precharged node node ...", "prfets [node node ...]", "prnodes [node node ...]", "prresistance [-t ohms] [node node ...]", "ratio [limit value] [limit value] ...", "recompute", "resistance ohms node node ...", "set 0/1 node node ...", "source file", "statistics", "transistor", "undump file", "watch node node ..." ]; CmdProcs: ARRAY[0..30) OF Globals.CmdProc _ [ QuitCmd, Mark.BusCmd, Mark.CapCmd, Check.CheckCmd, ClearCmd, DPrint.CriticalCmd, Delay.DelayCmd, DPrint.DumpCmd, Flow.FlowCmd, HelpCmd, Mark.InputCmd, MarkDynamicCmd, Model.ModelCmd, OptionsCmd, Mark.OutputCmd, Model.ParmCmd, Printout.PrintCap, Mark.PrechargedCmd, Printout.PrintFets, Printout.PrintNodes, Printout.PrintRes, <> DummyCmd, DPrint.RecomputeCmd, Mark.ResCmd, Mark.SetCmd, SourceCmd, StatsCmd, Model.TransistorCmd, <> DummyCmd, Mark.WatchCmd ]; <> CmdClass: TYPE = {model, afterClear, circuit, dynamic, check, setup, delay, clear, anytime}; curClass: CmdClass _ model; marked: BOOLEAN; <> <> classNames: ARRAY CmdClass OF Rope.ROPE _ [ "model", "clear", "circuit", "markdynamic", "check", "setup", "delay", "clear", "miscellaneous" ]; classes: ARRAY[0..30) OF CmdClass _ [ circuit, -- build circuit, -- bus circuit, -- capacitance check, -- check clear, -- clear anytime, -- critical delay, -- delay anytime, -- dump circuit, -- flow anytime, -- help circuit, -- input dynamic, -- markdynamic model, -- model anytime, -- options circuit, -- output model, -- parameter anytime, -- prcapacitance setup, -- precharged anytime, -- prfets anytime, -- prnodes anytime, -- prresistance check, -- ratio anytime, -- recompute circuit, -- resistance setup, -- set anytime, -- source anytime, -- stats model, -- transistor anytime, -- undump anytime -- watch ]; DummyCmd: Globals.CmdProc = <