-- MDMain.Mesa
-- last edit by Schmidt, January 6, 1983 1:53 pm
-- last edit by Satterthwaite, January 31, 1983 2:58 pm
-- Pilot 6.0/ Mesa 7.0
-- definitions file for the main procedures of the modeller
DIRECTORY
IO: TYPE USING [Handle],
Rope: TYPE USING [Text],
Subr: TYPE USING [TTYProcs],
TypeScript: TYPE USING [TS];
MDMain: DEFINITIONS = {
-- each one of these procedures acquires the MONITOR LOCK
-- so only one of them can be in the MONITOR at a time
Transaction: TYPE = RECORD [
filename: Rope.Text,
noninteractive: BOOL,
ttyprintwindow: Subr.TTYProcs,
ttyTypeScript: TypeScript.TS,
ttyin, ttyout: IO.Handle,
msgout, debugout: IO.Handle];
-- attach modeller to Tioga Editor
AttachSymbiote: PROC[msgout: IO.Handle];
-- Begin compile, load, and start
Begin: PROC[action: REF Transaction, confirm: REF BOOL];
-- useful for debugging, just generates a config
Bind: PROC;
-- take the model and compile and bind it if necessary
-- if uniquename is TRUE then the binder will generate a bcd name
-- that is different from others on the local disk
-- if dontconfirm is TRUE, then don't ask the user
-- to confirm compiles and binds
Compile: PROC[
action: REF Transaction,
uniquename, tryreplacement: BOOL,
confirm: REF BOOL];
-- compile with repl, load with repl
Continue: PROC[confirm: REF BOOL];
-- call this procedure to either write a character in the debugging messages
-- subwindow, if it exists, or throw the character away
DebugWP: PROC[ch: CHAR];
-- detach modeller from Tioga Editor
DetachSymbiote: PROC[msgout: IO.Handle];
-- makes the modeller look like a loader, loads the bcds
Loader: PROC[tryreplacement: BOOL];
-- just make the model "filename"
-- ttyprintwindow is the window to print on
MakeModel: PROC[action: REF Transaction];
-- notice "filename"
Notice: PROC[filename: Rope.Text];
-- look thru the model, do a notice on all the files
NoticeAll: PROC;
-- transfer back any files that have been changed, write new model
Permanent: PROC;
-- will print the line between the commands
PrintSeparatorLine: PROC;
-- just like StartModelling but does a StopModelling first
ReStartModelling: PROC[action: REF Transaction];
-- set nested model to search from
SetWorkingModel: PROC[modelname: Rope.Text];
-- having loaded the bcds with Loader, this will start the bcds
Start: PROC;
-- Start modelling on "filename"
-- ttyprintwindow is the window to print on
-- msgwindow is for compiler and binder status messages
StartModelling: PROC[action: REF Transaction];
-- stop modelling on this model
StopModelling: PROC;
-- write out model if its been changed, to local disk
Temporary: PROC;
-- print out model on screen
Type: PROC[modelname: Rope.Text, default: BOOL];
-- unloads what Loader loads
UnLoader: PROC;
-- VARIABLES
modellerIsIdle: VAR BOOL;
-- PROGRAMs
MDMainImpl: PROGRAM;
}.