m3zume/derived/ZoomBundle.m3


MODULE ZoomBundle;
Generated by m3bundle; see its manpage.

IMPORT Bundle, BundleRep, Text;
IMPORT Thread, Wr, TextWr;

TYPE T = Bundle.T OBJECT OVERRIDES
           get      := LookUp;
           getNames := GetNames;
         END;

TYPE Texts = REF ARRAY OF TEXT;

VAR
  bundle: T     := NIL;
  names : Texts := NIL;

PROCEDURE Get(): Bundle.T =
  BEGIN
    IF (bundle = NIL) THEN bundle := NEW (T) END;
    RETURN bundle;
  END Get;

PROCEDURE GetNames (<*UNUSED*> self: T): Texts =
  BEGIN
    IF names = NIL THEN
      names := NEW (Texts, NUMBER (Names));
      names^ := Names;
    END;
    RETURN names;
  END GetNames;

PROCEDURE LookUp (<*UNUSED*> self: T;  element: TEXT): TEXT =
  BEGIN
    FOR i := 0 TO LAST (Names)-1 DO
      IF Text.Equal (Names[i], element) THEN
        IF Elements[i] = NIL THEN Elements[i] := GetElt (i) END;
        RETURN Elements[i];
      END;
    END;
    RETURN NIL;
  END LookUp;

CONST Names = ARRAY [0..24] OF TEXT {
  "AlgClass.m3",
  "IE3D.i3",
  "GEFView.m3",
  "JunoView.m3",
  "TranscriptView.m3",
  "DataView.m3",
  "ViewClass3D.i3",
  "IE.m3",
  "ObliqView.m3",
  "AlgClass.i3",
  "ViewClass.m3",
  "GEFView.i3",
  "JunoView.i3",
  "TranscriptView.i3",
  "Obliq3DView.m3",
  "DataView.i3",
  "IE3D.m3",
  "IE.i3",
  "ObliqView.i3",
  "ViewClass.i3",
  "EventData.fv",
  "ViewClass3D.m3",
  "TranscriptView.fv",
  "Obliq3DView.i3",
  NIL
};

VAR Elements := ARRAY [0..24] OF TEXT {
  NIL (* E0 .. E0_2 *),
  E1,
  NIL (* E2 .. E2_0 *),
  NIL (* E3 .. E3_1 *),
  NIL (* E4 .. E4_1 *),
  E5,
  E6,
  NIL (* E7 .. E7_0 *),
  NIL (* E8 .. E8_2 *),
  E9,
  E10,
  E11,
  E12,
  E13,
  NIL (* E14 .. E14_1 *),
  E15,
  NIL (* E16 .. E16_1 *),
  E17,
  E18,
  E19,
  E20,
  E21,
  E22,
  E23,
  NIL
};

PROCEDURE GetElt (n: INTEGER): TEXT =
  <*FATAL Thread.Alerted, Wr.Failure *>
  VAR wr := TextWr.New ();
  BEGIN
    CASE n OF
    | 0 =>
        Wr.PutText (wr, E0);
        Wr.PutText (wr, E0_0);
        Wr.PutText (wr, E0_1);
        Wr.PutText (wr, E0_2);
    | 2 =>
        Wr.PutText (wr, E2);
        Wr.PutText (wr, E2_0);
    | 3 =>
        Wr.PutText (wr, E3);
        Wr.PutText (wr, E3_0);
        Wr.PutText (wr, E3_1);
    | 4 =>
        Wr.PutText (wr, E4);
        Wr.PutText (wr, E4_0);
        Wr.PutText (wr, E4_1);
    | 7 =>
        Wr.PutText (wr, E7);
        Wr.PutText (wr, E7_0);
    | 8 =>
        Wr.PutText (wr, E8);
        Wr.PutText (wr, E8_0);
        Wr.PutText (wr, E8_1);
        Wr.PutText (wr, E8_2);
    | 14 =>
        Wr.PutText (wr, E14);
        Wr.PutText (wr, E14_0);
        Wr.PutText (wr, E14_1);
    | 16 =>
        Wr.PutText (wr, E16);
        Wr.PutText (wr, E16_0);
        Wr.PutText (wr, E16_1);
    ELSE (*skip*)
    END;
    RETURN TextWr.ToText (wr);
  END GetElt;

CONST E0 =
   "(* Copyright (C) 1995, Digital Equipment Corporation.       *)\n(* All "
 & "rights reserved.                                     *)\n(* See the fil"
 & "e COPYRIGHT for a full description.           *)\n(*                   "
 & "                                       *)\n(* Last modified on Thu Feb "
 & " 9 08:48:22 PST 1995 by kalsow  *)\n(*      modified on Wed Feb 17 16:4"
 & "6:18 PST 1993 by johnh   *)\n(*      modified on Thu Sep 24 10:59:20 PD"
 & "T 1992 by mhb     *)\n\n(**********************************************"
 & "***********************\n|*  NOTE: This file is generated automatically"
 & " from the event \n|*        definition file #(_ALGNAME_).evt.\n|*******"
 & "**************************************************************)\n\nMODU"
 & "LE #(_ALGNAME_)AlgClass;\n\n$Algorithm\n$Fmt\n$FormsVBT\n$Rd\n$Text\n$V"
 & "BT\n$Wr\n$ZeusClass\n$ZeusPanel\n$ZeusUtil\n#(_IMPORTS_)\n\n<* PRAGMA L"
 & "L *>\n\n(* Fix any FormsVBT errors; don\'t handle exceptions for them. "
 & "*)\n<* FATAL FormsVBT.Error, FormsVBT.Unimplemented *>\n\n\nREVEAL\n  T"
 & " = Public BRANDED OBJECT\n      OVERRIDES\n        <* LL = VBT.mu *>\n "
 & "       init := #(_ALGNAME_)DefaultInit;\n        snapshot := #(_ALGNAME"
 & "_)DefaultSnapshot;\n        restore := #(_ALGNAME_)DefaultRestore;\n   "
 & "     updateEventCounts := #(_ALGNAME_)DefaultUpdateCts;\n#{_FEEDBACK\n "
 & "       fe#(_EVENT_) := #(_EVENT_);\n#}\n      END;\n\nPROCEDURE #(_ALGN"
 & "AME_)DefaultInit (v: T): Algorithm.T = \n  <* LL = VBT.mu *>\n  PROCEDU"
 & "RE Attach (id: TEXT; proc: FormsVBT.Proc) =\n    BEGIN\n      FormsVBT."
 & "AttachProc(v.eventData, id, proc, v);\n    END Attach;\n  BEGIN\n    v."
 & "eventData := ZeusPanel.NewForm(\"#(_ALGNAME_)EventData.fv\");\n    Atta"
 & "ch(\"stopatCodeEvents\", #(_ALGNAME_)DoIt);\n    Attach(\"waitatCodeEve"
 & "nts\", #(_ALGNAME_)DoIt);\n    Attach(\"eventCounts\", #(_ALGNAME_)Refr"
 & "eshCts);\n#{_OUTPUT\n    Attach(\"stopAt#(_EVENT_)\", #(_ALGNAME_)DoIt)"
 & ";\n    Attach(\"waitAt#(_EVENT_)\", #(_ALGNAME_)DoIt);\n#}\n    FromFV "
 & "(v.eventData, v);    (* Get FV and internal data in sync *)\n    RETURN"
 & " Algorithm.T.init(v);\n  END #(_ALGNAME_)DefaultInit;\n\nPROCEDURE #(_A"
 & "LGNAME_)DoIt (     ";

CONST E0_0 =
   "      fv : FormsVBT.T;\n                           e  : TEXT;\n        "
 & "                   arg: REFANY;\n                <*UNUSED*> t  : VBT.Ti"
 & "meStamp) =\n  <* LL = VBT.mu *>\n  BEGIN \n    IF Text.Equal(e, \"stopa"
 & "tCodeEvents\") THEN\n      NARROW(arg, T).stopatCodeEvents :=\n        "
 & "  FormsVBT.GetBoolean(fv, \"stopatCodeEvents\");\n    END;\n    IF Text"
 & ".Equal(e, \"waitatCodeEvents\") THEN\n      NARROW(arg, T).waitatCodeEv"
 & "ents :=\n          FormsVBT.GetInteger(fv, \"waitatCodeEvents\");\n    "
 & "END;\n#{_OUTPUT\n    IF Text.Equal(e, \"stopAt#(_EVENT_)\") THEN\n     "
 & " NARROW(arg, T).eventDataRec.stopAt#(_EVENT_) :=\n          FormsVBT.Ge"
 & "tBoolean(fv, \"stopAt#(_EVENT_)\");\n    END;\n    IF Text.Equal(e, \"w"
 & "aitAt#(_EVENT_)\") THEN\n      NARROW(arg, T).eventDataRec.waitAt#(_EVE"
 & "NT_) :=\n          FormsVBT.GetInteger(fv, \"waitAt#(_EVENT_)\");\n    "
 & "END;\n#}\n  END #(_ALGNAME_)DoIt;\n\nPROCEDURE #(_ALGNAME_)RefreshCts ("
 & "\n                <*UNUSED*> fv  : FormsVBT.T;\n                <*UNUSE"
 & "D*> e   : TEXT;\n                           arg : REFANY;\n            "
 & "    <*UNUSED*> t   : VBT.TimeStamp) =\n  <* LL = VBT.mu *>\n  BEGIN\n  "
 & "  NARROW(arg, T).updateEventCounts(FALSE);\n  END #(_ALGNAME_)RefreshCt"
 & "s;\n\nPROCEDURE FromFV (fv : FormsVBT.T; alg: T) =\n  <* LL = VBT.mu *>"
 & "\n  BEGIN \n    alg.stopatCodeEvents :=\n        FormsVBT.GetBoolean(fv"
 & ", \"stopatCodeEvents\");\n    alg.waitatCodeEvents :=\n        FormsVBT"
 & ".GetInteger(fv, \"waitatCodeEvents\");\n#{_OUTPUT\n    alg.eventDataRec"
 & ".stopAt#(_EVENT_) :=\n        FormsVBT.GetBoolean(fv, \"stopAt#(_EVENT_"
 & ")\");\n    alg.eventDataRec.waitAt#(_EVENT_) :=\n        FormsVBT.GetIn"
 & "teger(fv, \"waitAt#(_EVENT_)\");\n#}\n  END FromFV;\n\n<*UNUSED*> \nPRO"
 & "CEDURE ToFV (fv : FormsVBT.T; alg: T) =\n  <* LL = VBT.mu *>\n  BEGIN \n"
 & "    FormsVBT.PutBoolean(fv, \"stopatCodeEvents\", alg.stopatCodeEvents)"
 & ";\n    FormsVBT.PutInteger(fv, \"waitatCodeEvents\", alg.waitatCodeEven"
 & "ts);\n#{_OUTPUT\n    FormsVBT.PutBoolean(fv, \"stopAt#(_EVENT_)\", \n  "
 & "                      alg.eventDataRec.stopAt#(_EVENT_));\n    FormsVBT"
 & ".PutInteger(fv, \"waitAt#(_EVEN";

CONST E0_1 =
   "T_)\", \n                        alg.eventDataRec.waitAt#(_EVENT_));\n#"
 & "}\n    CountsToFV (fv, alg);\n  END ToFV;\n\nPROCEDURE CountsToFV (fv :"
 & " FormsVBT.T; alg: T) =\n  <* LL = VBT.mu *>\n  BEGIN \n#{_OUTPUT\n    F"
 & "ormsVBT.PutText(fv, \"ctOf#(_EVENT_)\", \n                        Fmt.I"
 & "nt(alg.eventDataRec.ctOf#(_EVENT_)));\n#}\n  END CountsToFV;\n\nPROCEDU"
 & "RE #(_ALGNAME_)DefaultUpdateCts ( v: T; reset: BOOLEAN) =\n  <* LL = VB"
 & "T.mu *>\n  BEGIN\n    IF reset THEN\n#{_OUTPUT\n      v.eventDataRec.ct"
 & "Of#(_EVENT_) := 0;\n#}\n    END;\n    CountsToFV (v.eventData, v);\n  E"
 & "ND #(_ALGNAME_)DefaultUpdateCts;\n\n\nPROCEDURE #(_ALGNAME_)DefaultSnap"
 & "shot (v: T; wr: Wr.T) \n  RAISES {ZeusClass.Error} =\n  <* LL = VBT.mu "
 & "*>\n  BEGIN\n    TRY\n      Wr.PutChar(wr, \'(\')\n    EXCEPT\n    ELSE"
 & "\n      RAISE ZeusClass.Error(\n          \"#(_ALGNAME_)AlgClass.#(_ALG"
 & "NAME_)DefaultSnapshot write error\");\n    END;\n    IF v.eventData = N"
 & "IL THEN\n      RAISE ZeusClass.Error(\n          \"#(_ALGNAME_)AlgClass"
 & ".#(_ALGNAME_)DefaultSnapshot: \" & \n          \"eventData not set!\");"
 & "\n    END;\n    TRY\n      v.eventData.snapshot(wr)\n    EXCEPT\n      "
 & "FormsVBT.Error (msg) =>\n        RAISE ZeusClass.Error(\n          \"#("
 & "_ALGNAME_)AlgClass.#(_ALGNAME_)DefaultSnapshot FV error: \" \n         "
 & " & msg);\n    ELSE\n      RAISE ZeusClass.Error(\n        \"#(_ALGNAME_"
 & ")AlgClass.#(_ALGNAME_)DefaultSnapshot error\");\n    END;\n    Algorith"
 & "m.T.snapshot(v, wr);\n    TRY\n      Wr.PutChar(wr, \')\')\n    EXCEPT\n"
 & "    ELSE\n      RAISE ZeusClass.Error(\n          \"#(_ALGNAME_)AlgClas"
 & "s.#(_ALGNAME_)DefaultSnapshot write error\");\n    END;\n  END #(_ALGNA"
 & "ME_)DefaultSnapshot;\n\n\nPROCEDURE #(_ALGNAME_)DefaultRestore (v: T; r"
 & "d: Rd.T) \n  RAISES {ZeusClass.Error} =\n  <* LL = VBT.mu *>\n  BEGIN\n"
 & "    IF rd = NIL THEN RETURN END;\n    IF NOT ZeusUtil.EatChar(rd, \'(\'"
 & ") THEN\n      RAISE ZeusClass.Error(\n          \"#(_ALGNAME_)AlgClass."
 & "#(_ALGNAME_)DefaultRestore read error\");\n    END;\n    IF v.eventData"
 & " = NIL THEN\n      RAISE ZeusClass.Error(\n          \"#(_ALGNAME_)AlgC"
 & "lass.#(_ALGNAME_)DefaultRestore: \" & \n  ";

CONST E0_2 =
   "        \"eventData not set!\");\n    END;\n    TRY\n      v.eventData."
 & "restore(rd);\n      v.updateEventCounts(FALSE);\n      FromFV(v.eventDa"
 & "ta, v);\n    EXCEPT\n    ELSE\n      RAISE ZeusClass.Error(\n          "
 & "\"#(_ALGNAME_)AlgClass.#(_ALGNAME_)DefaultRestore error\");\n    END;\n"
 & "    Algorithm.T.restore(v, rd);\n    IF NOT ZeusUtil.EatChar(rd, \')\')"
 & " THEN\n      RAISE ZeusClass.Error(\n          \"#(_ALGNAME_)AlgClass.#"
 & "(_ALGNAME_)DefaultRestore read error\");\n    END;\n  END #(_ALGNAME_)D"
 & "efaultRestore;\n\n#{_FEEDBACK\nPROCEDURE #(_EVENT_) (self: T\n#{\n    ;"
 & " <*UNUSED*> #(_ARGMODE_)#(_ARGNAME_): #(_ARGTYPE_)\n#}\n) =\n  <* LL = "
 & "VBT.mu *>\n  BEGIN\n    self.evtHandled := FALSE;\n  END #(_EVENT_);\n\n"
 & "#}\n\nBEGIN\nEND #(_ALGNAME_)AlgClass.\n";

CONST E1 =
   "(* Copyright (C) 1995, Digital Equipment Corporation.       *)\n(* All "
 & "rights reserved.                                     *)\n(* See the fil"
 & "e COPYRIGHT for a full description.           *)\n(*                   "
 & "                                       *)\n(* Last modified on Thu Feb "
 & " 9 08:51:16 PST 1995 by kalsow  *)\n(* Last modified on Wed Feb 17 16:4"
 & "6:35 PST 1993 by johnh   *)\n\n(***************************************"
 & "******************************\n|*  NOTE: This file is generated automa"
 & "tically from the event \n|*        definition file #(_ALGNAME_).evt.\n|"
 & "*********************************************************************)\n"
 & "\n<* PRAGMA LL *>\n\nINTERFACE #(_ALGNAME_)IE;\n\n$Algorithm\n$Thread\n"
 & "$View\n#(_IMPORTS_)\n\n(* call the following to generate an event: *)\n"
 & "\n#{_OUTPUT\nPROCEDURE #(_EVENT_) (\n      initiator: Algorithm.T; \n  "
 & "    #(_ARGSTR_) \n    ) RAISES {Thread.Alerted};\n    <* LL = {} *>\n\n"
 & "#}\n#{_FEEDBACK\nPROCEDURE #(_EVENT_) (\n      initiator: View.T; \n   "
 & "   #(_ARGSTR_) \n    ) RAISES {Thread.Alerted};\n    <* LL = VBT.mu *>\n"
 & "\n#}\n#{_UPDATE\nPROCEDURE #(_EVENT_) (\n      initiator: Algorithm.T; "
 & "\n      #(_ARGSTR_) \n    ) RAISES {Thread.Alerted};\n    <* LL = VBT.m"
 & "u *>\n\n#}\n\nEND #(_ALGNAME_)IE.\n";

CONST E2 =
   "(* Copyright (C) 1995, Digital Equipment Corporation.       *)\n(* All "
 & "rights reserved.                                     *)\n(* See the fil"
 & "e COPYRIGHT for a full description.           *)\n(*                   "
 & "                                       *)\n(* Last modified on Thu Feb "
 & " 9 09:01:09 PST 1995 by kalsow  *)\n(* Last modified on Sat Jul 17 14:2"
 & "8:37 PDT 1993 by mhb     *)\n(*      modified on Thu Jul 15 14:12:41 PD"
 & "T 1993 by steveg  *)\n(*      modified on Tue Feb 16 16:31:40 PST 1993 "
 & "by johnh   *)\n\n(*****************************************************"
 & "****************\n|*  NOTE: This file is generated automatically from t"
 & "he event \n|*        definition file #(_ALGNAME_).evt.\n|**************"
 & "*******************************************************)\n\n<* PRAGMA L"
 & "L *>\n\nMODULE #(_ALGNAME_)#(_VIEWNAME_)GEFView;\n\n$Filter\n$Fmt\n$GEF"
 & "\n$GEFError\n$GEFViewClass\n$GraphVBT\n$Rd\n$Rsrc\n$SLisp\n$Thread\n$VB"
 & "T\n$View\n$ViewClass\n$ZeusClass\n$ZeusPanel\n$#(_ALGNAME_)AlgClass\n$#"
 & "(_ALGNAME_)ViewClass\n#(_IMPORTS_)\n\nTYPE\n  T = #(_ALGNAME_)ViewClass"
 & ".T BRANDED OBJECT\n        name := \"#(_VIEWNAME_).gef\"; \n      OVERR"
 & "IDES\n        <* LL = VBT.mu *>\n        install  := Install;\n        "
 & "startrun := Startrun;\n        <* LL = 0 *>\n#{_OUTPUT\n        oe#(_EV"
 & "ENT_) := #(_EVENT_);\n#}\n      END;\n\nPROCEDURE Install (v: T) =\n  <"
 & "* FATAL SLisp.Error *>\n  VAR\n    interp := NEW(GEFViewClass.Interp).i"
 & "nit();\n    gef    := NEW(GEF.T).init(interp);\n  BEGIN\n    EVAL Filte"
 & "r.Replace (v, gef);\n    #(_ALGNAME_)ViewClass.T.install(v)\n  END Inst"
 & "all;\n\nPROCEDURE Startrun(v: T) =\n  BEGIN\n    TRY\n      GEF.InitFro"
 & "mRsrc(Filter.Child(v), v.name, ZeusPanel.GetPath());\n    EXCEPT\n    |"
 & " Thread.Alerted =>\n    | Rsrc.NotFound =>\n        ZeusPanel.ReportErr"
 & "or(\n          Fmt.F(\"GEF View error: Could not find file: %s\", v.nam"
 & "e));\n    | Rd.Failure =>\n        ZeusPanel.ReportError(\n          Fm"
 & "t.F(\"GEF View error finding or parsing file: %s\", v.name));\n    | GE"
 & "FError.T (msg) =>\n        ZeusPanel.ReportError(\n          Fmt.F(\"GE"
 & "F View error (%s) pars";

CONST E2_0 =
   "ing file: %s\", msg, v.name));\n    END;\n  END Startrun;\n\nPROCEDURE "
 & "New (): View.T =\n  VAR g := NEW(GraphVBT.T).init(); \n  BEGIN\n    RET"
 & "URN NEW(T).init(g)\n  END New;\n\n(* event handling methods: *)\n\n#{_O"
 & "UTPUT\nPROCEDURE #(_EVENT_) (view: T; #(_ARGSTR_)) =\n  <* LL = {} *>\n"
 & "  VAR gef: GEF.T := Filter.Child(view);\n  BEGIN\n    TRY\n      GEF.In"
 & "vokeEvent (gef, \"#(_EVENT_)\", GEF.EventData(\n#{\n      #(_ARGFMT_)(#"
 & "(_ARGNAME_))\n#|\n      ,\n#}\n      ));\n      gef.redisplay();\n     "
 & " gef.animate(0.0, 1.0);\n    EXCEPT\n    | Thread.Alerted =>\n    | GEF"
 & "Error.T (msg) =>\n        ZeusPanel.ReportError(\n          Fmt.F(\"GEF"
 & " View error (%s) parsing file: %s\", msg, view.name));\n    END;\n  END"
 & " #(_EVENT_);\n\n#}\n\nBEGIN\n  ZeusPanel.RegisterView(New, \"#(_VIEWNAM"
 & "E_).gef\", \"#(_ALGNAME_)\"); \nEND #(_ALGNAME_)#(_VIEWNAME_)GEFView.\n"
;

CONST E3 =
   "(* Copyright (C) 1995, Digital Equipment Corporation.       *)\n(* All "
 & "rights reserved.                                     *)\n(* See the fil"
 & "e COPYRIGHT for a full description.           *)\n(*                   "
 & "                                       *)\n(* Last modified on Thu Feb "
 & " 9 08:59:04 PST 1995 by kalsow  *)\n(*      modified on Mon Jun  6 03:1"
 & "6:18 PDT 1994 by mhb     *)\n(*      modified on Sun Jun  5 16:47:33 PD"
 & "T 1994 by heydon  *)\n\n(**********************************************"
 & "***********************\n|*  NOTE: This file is generated automatically"
 & " from the event \n|*        definition file #(_ALGNAME_).evt.\n|*******"
 & "**************************************************************)\n\n<* P"
 & "RAGMA LL *>\n\nMODULE #(_ALGNAME_)#(_VIEWNAME_)JunoView;\n\n$Atom\n$Ato"
 & "mList\n$Fmt\n$NetObj\n$Thread\n$VBT\n$Wr\n$Rd\n$ZFmt\n$ZeusPanel\n$Remo"
 & "teView\n$View\n$#(_ALGNAME_)ViewClass\n#(_IMPORTS_)\n\nTYPE\n  T = #(_A"
 & "LGNAME_)ViewClass.T BRANDED OBJECT\n         jz: RemoteView.T := NIL;\n"
 & "      OVERRIDES\n        <* LL.sup < VBT.mu *>\n        startrun := Sta"
 & "rtrun;\n        endrun := Endrun;\n        <* LL.sup < VBT.mu *>\n#{_OU"
 & "TPUT\n        oe#(_EVENT_) := #(_EVENT_);\n#}\n        <* LL.sup = VBT."
 & "mu *>\n#{_UPDATE\n        ue#(_EVENT_) := #(_EVENT_);\n#}\n        <* L"
 & "L.sup = VBT.mu *>\n        install := NoargNoop;\n        delete := Noa"
 & "rgNoop;\n        snapshot := SnapshotNoop;\n        restore := RestoreN"
 & "oop;\n        reactivity := ReactivityNoop\n      END;\n\n(* STARTRUN a"
 & "nd ENDRUN methods: *)\n\nPROCEDURE Startrun(view: T) =\n  <* LL.sup < V"
 & "BT.mu *>\n  BEGIN\n    IF view.jz = NIL THEN RETURN END;\n    TRY view."
 & "jz.startrun() EXCEPT\n      NetObj.Error (err) => ZeusPanel.ReportError"
 & "(NetObjError(err))\n    | Thread.Alerted => ZeusPanel.ReportError(\"Net"
 & "Obj call alerted\")\n    END\n  END Startrun;\n\nPROCEDURE Endrun(view:"
 & " T) =\n  <* LL.sup < VBT.mu *>\n  BEGIN\n    IF view.jz = NIL THEN RETU"
 & "RN END;\n    TRY view.jz.endrun() EXCEPT\n      NetObj.Error (err) => Z"
 & "eusPanel.ReportError(NetObjError(err))\n    | Thread.Alerted => ZeusPan"
 & "el.ReportError(\"";

CONST E3_0 =
   "NetObj call alerted\")\n    END\n  END Endrun;\n\n(* OUTPUT and UPDATE "
 & "event handling methods: *)\n\n#{_OUTPUT\nPROCEDURE #(_EVENT_) (view: T;"
 & " #(_ARGSTR_)) =\n  <* LL.sup < VBT.mu *>\n  CONST EventName = \"#(_EVEN"
 & "T_)\";\n  VAR tfactor: REAL; BEGIN \n    IF view.jz = NIL THEN RETURN E"
 & "ND;\n    LOCK VBT.mu DO\n      tfactor := ZeusPanel.GetAnimationTime()\n"
 & "    END;\n    TRY\n      view.jz.event (tfactor, EventName, \"(\"\n#{\n"
 & "      & #(_ARGFMT_)(#(_ARGNAME_))\n#|\n      & \" \"\n#}\n      & \")\""
 & ")\n    EXCEPT\n      RemoteView.Error (txt) => ReportError(EventName, t"
 & "xt)\n    | NetObj.Error (err) => ReportError(EventName, NetObjError(err"
 & "))\n    | Thread.Alerted => ReportError(EventName, \"NetObj call alerte"
 & "d\")\n    END\n  END #(_EVENT_);\n\n#}\n#{_UPDATE\nPROCEDURE #(_EVENT_)"
 & " (view: T; #(_ARGSTR_)) =\n  <* LL.sup = VBT.mu *>\n  CONST EventName ="
 & " \"#(_EVENT_)\";\n  VAR tfactor: REAL; BEGIN \n    IF view.jz = NIL THE"
 & "N RETURN END;\n    tfactor := ZeusPanel.GetAnimationTime();\n    TRY\n "
 & "     view.jz.event (tfactor, EventName, \"(\"\n#{\n      & #(_ARGFMT_)("
 & "#(_ARGNAME_))\n#|\n      & \" \"\n#}\n      & \")\")\n    EXCEPT\n     "
 & " RemoteView.Error (txt) => ReportError(EventName, txt)\n    | NetObj.Er"
 & "ror (err) => ReportError(EventName, NetObjError(err))\n    | Thread.Ale"
 & "rted => ReportError(EventName, \"NetObj call alerted\")\n    END\n  END"
 & " #(_EVENT_);\n\n#}\nPROCEDURE NoargNoop(<*UNUSED*> v: T) =\n  BEGIN END"
 & " NoargNoop;\n\nPROCEDURE SnapshotNoop(<*UNUSED*> v: T; <*UNUSED*> wr: W"
 & "r.T) =\n  BEGIN END SnapshotNoop;\n\nPROCEDURE RestoreNoop(<*UNUSED*> v"
 & ": T; <*UNUSED*> rd: Rd.T) =\n  BEGIN END RestoreNoop;\n\nPROCEDURE Reac"
 & "tivityNoop(<*UNUSED*> v: T; <*UNUSED*> on: BOOLEAN) =\n  BEGIN END Reac"
 & "tivityNoop;\n\nPROCEDURE New (): View.T =\n  VAR\n    res: T := NEW(T)."
 & "init(NIL);\n    jz: NetObj.T;\n    errMsg: TEXT := NIL;\n  BEGIN\n    T"
 & "RY\n      jz := NetObj.Import(\"JunoZeus\");\n      IF jz = NIL THEN\n "
 & "   \terrMsg := \"NetObj Error: Can\'t find JunoZeus object\"\n      ELS"
 & "IF NOT ISTYPE(jz, RemoteView.T) THEN\n    \terrMsg := \"NetObj Error: T"
 & "ype mismatch between Juno and Zeus\"\n      ELSE";

CONST E3_1 =
   "\n    \tres.jz := jz;\n    \tRETURN res\n      END\n    EXCEPT\n      N"
 & "etObj.Error (err) => errMsg := NetObjError(err)\n    | Thread.Alerted ="
 & ">     errMsg := \"NetObj Import alerted\"\n    END;\n    ZeusPanel.Repo"
 & "rtError(errMsg);\n    RETURN NIL\n  END New;\n\nPROCEDURE NetObjError(e"
 & "rr: AtomList.T): TEXT =\n  VAR res := \"NetObj Error: \"; BEGIN\n    WH"
 & "ILE err # NIL DO\n      res := res & Atom.ToText(err.head);\n      err "
 & ":= err.tail;\n      IF err # NIL THEN res := res & \"; \" END\n    END;"
 & "\n    RETURN res\n  END NetObjError;\n\nPROCEDURE ReportError(nm, msg: "
 & "TEXT) =\n  BEGIN\n    ZeusPanel.ReportError(\"\\\"\" & nm & \"\\\" even"
 & "t error: \" & msg)\n  END ReportError;\n\nPROCEDURE RegisterView () =\n"
 & "  BEGIN \n    ZeusPanel.RegisterView(New, \"#(_VIEWNAME_)\", \"#(_ALGNA"
 & "ME_)\")   \n  END RegisterView;\n\nBEGIN\n  RegisterView ();\nEND #(_AL"
 & "GNAME_)#(_VIEWNAME_)JunoView.\n";

CONST E4 =
   "(* Copyright (C) 1995, Digital Equipment Corporation.       *)\n(* All "
 & "rights reserved.                                     *)\n(* See the fil"
 & "e COPYRIGHT for a full description.           *)\n(*                   "
 & "                                       *)\n(* Last modified on Thu Feb "
 & " 9 08:56:02 PST 1995 by kalsow  *)\n(*      modified on Mon Jun  6 03:1"
 & "8:55 PDT 1994 by mhb   *)\n(*      modified on Tue Feb 16 16:31:40 PST "
 & "1993 by johnh *)\n\n(**************************************************"
 & "*******************\n|*  NOTE: This file is generated automatically fro"
 & "m the event \n|*        definition file #(_ALGNAME_).evt.\n|***********"
 & "**********************************************************)\n\n<* PRAGM"
 & "A LL *>\n\nMODULE #(_ALGNAME_)TranscriptView;\n\n$ZFmt\n$Fmt\n$FormsVBT"
 & "\n$Rd\n$Filter\n$TextEditVBT\n$TextPort\n$VBT\n$View\n$Wr\n$ZeusClass\n"
 & "$ZeusPanel\n$#(_ALGNAME_)ViewClass\n#(_IMPORTS_)\n\n<* FATAL FormsVBT.E"
 & "rror, FormsVBT.Unimplemented *>\n\nREVEAL\n  T = Public BRANDED OBJECT\n"
 & "    fv: FormsVBT.T := NIL;\n    te: TextEditVBT.T := NIL;\n  OVERRIDES\n"
 & "    init       := TViewInit;\n    install    := TViewInstall;\n    dele"
 & "te     := TViewDelete;\n    snapshot   := TViewSnapshot;\n    restore  "
 & "  := TViewRestore;\n    config     := TViewConfig;\n    reactivity := T"
 & "ViewReactivity;\n    startrun   := TViewStartrun;\n    endrun     := TV"
 & "iewEndrun;\n#{_OUTPUT\n    oe#(_EVENT_) := #(_EVENT_);\n#}\n#{_UPDATE\n"
 & "    ue#(_EVENT_) := #(_EVENT_);\n#}\n  END;\n\nPROCEDURE TViewInit (vie"
 & "w: T): T =\n  <* LL = VBT.mu *>\n  BEGIN\n    TViewZTrace (view, \"init"
 & "\");\n    RETURN #(_ALGNAME_)ViewClass.T.init (view, NIL);\n  END TView"
 & "Init;\n\nPROCEDURE Clear (<* UNUSED *> fv  : FormsVBT.T;\n             "
 & "    <* UNUSED *> name: TEXT;\n                              cl  : REFAN"
 & "Y;\n                 <* UNUSED *> time: VBT.TimeStamp) =\n  BEGIN\n    "
 & "TextPort.SetText(NARROW(cl, T).te.tp, \"\")\n  END Clear;\n\nPROCEDURE "
 & "TViewInstall (view: T) =\n  <* LL = VBT.mu *>\n  BEGIN\n    view.fv := "
 & "ZeusPanel.NewForm(\"#(_ALGNAME_)TranscriptView.fv\");\n    view.te := F"
 & "ormsVBT.GetVBT(view.";

CONST E4_0 =
   "fv, \"transcript\");\n    TViewZTrace (view, \"install\");\n    FormsVB"
 & "T.AttachProc(view.fv, \"clear\", Clear, view);\n    EVAL Filter.Replace"
 & " (view, view.fv);\n    #(_ALGNAME_)ViewClass.T.install (view);\n  END T"
 & "ViewInstall;\n\nPROCEDURE TViewDelete (view: T) =\n  <* LL = VBT.mu *>\n"
 & "  BEGIN \n    TViewZTrace (view, \"delete\");\n    #(_ALGNAME_)ViewClas"
 & "s.T.delete (view);\n   END TViewDelete;\n\nPROCEDURE TViewSnapshot (vie"
 & "w: T; wr: Wr.T) RAISES {ZeusClass.Error} =\n  <* LL = VBT.mu *>\n  BEGI"
 & "N \n    TViewZTrace (view, \"snapshot\");\n    #(_ALGNAME_)ViewClass.T."
 & "snapshot (view, wr);\n   END TViewSnapshot;\n\nPROCEDURE TViewRestore ("
 & "view: T; rd: Rd.T) RAISES {ZeusClass.Error} =\n  <* LL = VBT.mu *>\n  B"
 & "EGIN \n    TViewZTrace (view, \"restore\");\n    #(_ALGNAME_)ViewClass."
 & "T.restore (view, rd);\n   END TViewRestore;\n\nPROCEDURE TViewConfig (\n"
 & "    view: T; \n    state: ZeusClass.StateChange; \n    o: ZeusClass.T) "
 & "=\n  <* LL = VBT.mu *>\n  BEGIN \n    TViewZTrace (view, \"config\");\n"
 & "    #(_ALGNAME_)ViewClass.T.config (view, state, o);\n   END TViewConfi"
 & "g;\n\nPROCEDURE TViewReactivity (view: T; <*UNUSED*> on: BOOLEAN) =\n  "
 & "<* LL = VBT.mu *>\n  BEGIN\n    TViewZTrace(view, \"reactivity\");\n   "
 & " #(_ALGNAME_)ViewClass.T.reactivity (view, TRUE);\n  END TViewReactivit"
 & "y;\n\nPROCEDURE TViewStartrun (view: T) =\n  <* LL = {} *>\n  BEGIN \n "
 & "   TViewZTrace (view, \"startrun\");\n    #(_ALGNAME_)ViewClass.T.start"
 & "run (view);\n   END TViewStartrun;\n\nPROCEDURE TViewEndrun (view: T) ="
 & "\n  <* LL = {} *>\n  BEGIN \n    TViewZTrace (view, \"endrun\");\n    #"
 & "(_ALGNAME_)ViewClass.T.endrun (view);\n  END TViewEndrun;\n\n\n(* event"
 & " handling methods: *)\n\n#{_OUTPUT\nPROCEDURE #(_EVENT_) (view: T; #(_A"
 & "RGSTR_)) =\n  <* LL = {} *>\n  BEGIN \n    LOCK VBT.mu DO\n    IF Forms"
 & "VBT.GetBoolean(view.fv, \"alg\") THEN\n       IF NOT FormsVBT.GetBoolea"
 & "n(view.fv, \"args\") THEN\n          TViewTrace (view, \"#(_EVENT_) ..."
 & "\")\n       ELSE\n          TViewTrace (view, \"#(_EVENT_) \" \n#{\n   "
 & "       & #(_ARGFMT_)(#(_ARGNAME_))\n#|\n          & \" \"\n#}\n        "
 & "  )\n       END\n    END\n    END\n  END #(_EVENT_";

CONST E4_1 =
   ");\n\n#}\n\n\n#{_UPDATE\nPROCEDURE #(_EVENT_) (view: T; #(_ARGSTR_)) =\n"
 & "  <* LL = VBT.mu *>\n  BEGIN \n    IF FormsVBT.GetBoolean(view.fv, \"al"
 & "g\") THEN\n       IF NOT FormsVBT.GetBoolean(view.fv, \"args\") THEN\n "
 & "         TViewTrace (view, \"#(_EVENT_) ...\")\n       ELSE\n          "
 & "TViewTrace (view, \"#(_EVENT_) \" \n#{\n            & #(_ARGFMT_)(#(_AR"
 & "GNAME_))\n#|\n            & \" \"\n#}\n            )\n       END\n   EN"
 & "D\n  END #(_EVENT_);\n\n#}\n\n\nPROCEDURE TViewZTrace (view: T; t: TEXT"
 & ") =\n  BEGIN\n    IF view.fv # NIL THEN\n      IF FormsVBT.GetBoolean(v"
 & "iew.fv, \"zeus\") THEN\n        TextPort.PutText(view.te.tp, \"**zeus: "
 & " \" & t & \"\\n\");\n        TextPort.Normalize(view.te.tp, LAST(INTEGE"
 & "R))\n      END\n    END\n  END TViewZTrace;\n\nPROCEDURE TViewTrace (vi"
 & "ew: T; t: TEXT) =\n  BEGIN\n    TextPort.PutText(view.te.tp, \"--event:"
 & " \" & t & \"\\n\");\n    TextPort.Normalize(view.te.tp, LAST(INTEGER))\n"
 & "  END TViewTrace;\n\n\nPROCEDURE TViewNew (): View.T =\n  BEGIN\n    RE"
 & "TURN NEW(T).init()\n  END TViewNew;\n\n\nBEGIN\n  ZeusPanel.RegisterVie"
 & "w \n      (TViewNew, \"#(_ALGNAME_) Transcript View\", \"#(_ALGNAME_)\""
 & "); \nEND #(_ALGNAME_)TranscriptView.\n";

CONST E5 =
   "(* Copyright (C) 1995, Digital Equipment Corporation.       *)\n(* All "
 & "rights reserved.                                     *)\n(* See the fil"
 & "e COPYRIGHT for a full description.           *)\n(*                   "
 & "                                       *)\n(* Last modified on Thu Feb "
 & " 9 08:54:53 PST 1995 by kalsow  *)\n(*      modified on Tue Jul 13 10:4"
 & "0:26 PDT 1993 by mhb     *)\n\n(***************************************"
 & "******************************\n|*  NOTE: This file is generated automa"
 & "tically from the event \n|*        definition file #(_ALGNAME_).evt.\n|"
 & "*********************************************************************)\n"
 & "\nMODULE #(_ALGNAME_)DataView;\n\nIMPORT ZeusDataView, ZeusPanel;\n\nBE"
 & "GIN\n  ZeusPanel.RegisterView (\n    ZeusDataView.New, \n    \"#(_ALGNA"
 & "ME_) Data View\", \n    \"#(_ALGNAME_)\"); \nEND #(_ALGNAME_)DataView.\n"
;

CONST E6 =
   "(* Copyright (C) 1995, Digital Equipment Corporation.       *)\n(* All "
 & "rights reserved.                                     *)\n(* See the fil"
 & "e COPYRIGHT for a full description.           *)\n(*                   "
 & "                                       *)\n(* Last modified on Thu Feb "
 & " 9 08:57:10 PST 1995 by kalsow  *)\n(*      modified on Sun Nov 28 23:0"
 & "9:13 PST 1993 by najork  *)\n\n(***************************************"
 & "******************************\n|*  NOTE: This file is generated automa"
 & "tically from the event \n|*        definition file #(_ALGNAME_).evt.\n|"
 & "*********************************************************************)\n"
 & "\n<* PRAGMA LL *>\n\nINTERFACE #(_ALGNAME_)3DViewClass;\n\n$Thread\n$Vi"
 & "ew3D\n#(_IMPORTS_)\n\nTYPE\n  T <: Public;\n  Public = View3D.T OBJECT\n"
 & "      METHODS\n      <*LL = {} *>\n#{_OUTPUT\n        oe#(_EVENT_) (#(_"
 & "ARGSTR_)) RAISES {Thread.Alerted};\n#}\n      <*LL = VBT.mu *>\n#{_UPDA"
 & "TE\n        ue#(_EVENT_) (#(_ARGSTR_)) RAISES {Thread.Alerted};\n#}\n  "
 & "    END;\n      \nEND #(_ALGNAME_)3DViewClass.\n";

CONST E7 =
   "(* Copyright (C) 1995, Digital Equipment Corporation.       *)\n(* All "
 & "rights reserved.                                     *)\n(* See the fil"
 & "e COPYRIGHT for a full description.           *)\n(*                   "
 & "                                       *)\n(* Last modified on Thu Feb "
 & " 9 08:50:48 PST 1995 by kalsow  *)\n(*      modified on Sun Jun  5 21:5"
 & "9:57 PDT 1994 by mhb     *)\n(*      modified on Wed Feb 17 16:46:47 PS"
 & "T 1993 by johnh   *)\n\n(**********************************************"
 & "***********************\n|*  NOTE: This file is generated automatically"
 & " from the event \n|*        definition file #(_ALGNAME_).evt.\n|*******"
 & "**************************************************************)\n\n<* P"
 & "RAGMA LL *>\n\nMODULE #(_ALGNAME_)IE;\n\n$Algorithm\n$AlgorithmClass\n$"
 & "Thread\n$View\n$Zeus\n$ZeusClass\n$#(_ALGNAME_)AlgClass\n$#(_ALGNAME_)V"
 & "iewClass\n#(_IMPORTS_)\n\n<* FATAL Zeus.Error, Zeus.Locked *>\n(* If yo"
 & "u get either of these errors, contact a Zeus implementor. *)\n\nTYPE\n#"
 & "{\n  #(_EVENT_)Args = BRANDED REF RECORD\n#{\n    #(_ARGNAME_): #(_ARGT"
 & "YPE_);\n#}\n  END;\n\n#}\n\n(*  Zeus calls the following to invoke vbt "
 & "v\'s event handler: *)\n\n<*NOWARN*> PROCEDURE OEDispatcher(v: ZeusClas"
 & "s.T; evt: REFANY) RAISES {Thread.Alerted} =\n  <* LL <= VBT.mu *>\n  (*"
 & " LL = {} if event style is output, LL = VBT.mu if event style is update"
 & ". *)\n  BEGIN\n    TYPECASE v OF\n    | #(_ALGNAME_)ViewClass.T (view) "
 & "=> <*NOWARN*>\n      TYPECASE evt OF\n#{_OUTPUT\n      | #(_EVENT_)Args"
 & "(var#(_EVENT_)Args) => <*NOWARN*>\n          view.oe#(_EVENT_) (\n#{\n "
 & "             var#(_EVENT_)Args.#(_ARGNAME_)\n#|\n                ,\n#}\n"
 & "              )\n#}\n#{_UPDATE\n      | #(_EVENT_)Args(var#(_EVENT_)Arg"
 & "s) => <*NOWARN*>\n          view.ue#(_EVENT_) (\n#{\n              var#"
 & "(_EVENT_)Args.#(_ARGNAME_)\n#|\n                ,\n#}\n              )\n"
 & "#}\n      ELSE <* ASSERT FALSE *>\n      END;\n    ELSE (* this view is"
 & "n\'t a #(_ALGNAME_)ViewClass, so just ignore *)\n    END\n  END OEDispa"
 & "tcher;\n\n<*NOWARN*> PROCEDURE FEDispatcher(v: ZeusClass.T; evt: REFANY"
 & ") =\n  <* LL = VB";

CONST E7_0 =
   "T.mu *>\n  BEGIN\n    TYPECASE v OF\n    | #(_ALGNAME_)AlgClass.T (alg)"
 & " => <*NOWARN*>\n      TYPECASE evt OF\n#{_FEEDBACK\n      | #(_EVENT_)A"
 & "rgs(var#(_EVENT_)Args) => <*NOWARN*>\n          alg.fe#(_EVENT_) (\n#{\n"
 & "              var#(_EVENT_)Args.#(_ARGNAME_)\n#|\n                ,\n#}"
 & "\n              )\n#}\n      ELSE <* ASSERT FALSE *>\n      END;\n    E"
 & "LSE (* this alg isn\'t a #(_ALGNAME_)AlgClass, so just ignore *)\n    E"
 & "ND\n  END FEDispatcher;\n\n\n#{_OUTPUT\nPROCEDURE #(_EVENT_) (\n      i"
 & "nitiator: Algorithm.T; \n      #(_ARGSTR_) \n    ) RAISES {Thread.Alert"
 & "ed} =\n  <* LL = {} *>\n  VAR zumeArgRec := NEW(#(_EVENT_)Args \n#{\n  "
 & "             , #(_ARGNAME_) := #(_ARGNAME_)\n#}\n      );\n      alg :="
 & " NARROW(initiator, #(_ALGNAME_)AlgClass.T);\n  BEGIN\n    LOCK alg.evtM"
 & "u DO\n      INC(alg.eventDataRec.ctOf#(_EVENT_));\n      alg.stopAtEven"
 & "t := alg.eventDataRec.stopAt#(_EVENT_);\n      alg.waitAtEvent := alg.e"
 & "ventDataRec.waitAt#(_EVENT_);\n      Zeus.Dispatch(initiator, Zeus.Even"
 & "tStyle.Output, #(_EVENTPRIO_),\n                    \"#(_EVENT_)\", OED"
 & "ispatcher, zumeArgRec);\n    END;\n  END #(_EVENT_);\n\n#}\n#{_UPDATE\n"
 & "PROCEDURE #(_EVENT_) (\n      initiator: Algorithm.T; \n      #(_ARGSTR"
 & "_) \n    ) RAISES {Thread.Alerted} =\n  <* LL = VBT.mu *>\n  VAR zumeAr"
 & "gRec := NEW(#(_EVENT_)Args \n#{\n               , #(_ARGNAME_) := #(_AR"
 & "GNAME_)\n#}\n      );\n  BEGIN\n    Zeus.Dispatch(initiator, Zeus.Event"
 & "Style.Update, #(_EVENTPRIO_), \n                  \"#(_EVENT_)\", OEDis"
 & "patcher, zumeArgRec);\n  END #(_EVENT_);\n\n#}\n\n#{_FEEDBACK\nPROCEDUR"
 & "E #(_EVENT_) (\n      initiator: View.T; \n      #(_ARGSTR_) \n    ) RA"
 & "ISES {Thread.Alerted} =\n  <* LL = VBT.mu *>\n  VAR zumeArgRec := NEW(#"
 & "(_EVENT_)Args \n#{\n               , #(_ARGNAME_) := #(_ARGNAME_)\n#}\n"
 & "      );\n  BEGIN\n    Zeus.Dispatch(initiator, Zeus.EventStyle.Notify,"
 & " #(_EVENTPRIO_), \n                  \"#(_EVENT_)\", FEDispatcher, zume"
 & "ArgRec);\n  END #(_EVENT_);\n\n#}\n\nBEGIN\nEND #(_ALGNAME_)IE.\n";

CONST E8 =
   "(* Copyright (C) 1995, Digital Equipment Corporation.       *)\n(* All "
 & "rights reserved.                                     *)\n(* See the fil"
 & "e COPYRIGHT for a full description.           *)\n(*                   "
 & "                                       *)\n(* Last modified on Fri Sep "
 & " 8 15:48:12 PDT 1995 by najork  *)\n(*      modified on Thu Feb  9 08:5"
 & "4:15 PST 1995 by kalsow  *)\n(* Last modified on Fri Dec  9 15:00:46 PS"
 & "T 1994 by mhb     *)\n(*      modified on Sat Jun  4 16:24:49 1994 by h"
 & "eydon      *)\n(*      modified on Tue Feb 16 16:31:40 PST 1993 by john"
 & "h   *)\n\n(************************************************************"
 & "*********\n|*  NOTE: This file is generated automatically from the even"
 & "t \n|*        definition file #(_ALGNAME_).evt.\n|*********************"
 & "************************************************)\n\n<* PRAGMA LL *>\n\n"
 & "MODULE #(_ALGNAME_)#(_VIEWNAME_)ObliqView;\n\n$Filter\n$Fmt\n$Obliq\n$O"
 & "bliqParser\n$ObLibAnim\n$ObLibM3\n$ObLibUI\n$ObValue\n$Rd\n$Rsrc\n$SynW"
 & "r\n$TextRd\n$TextWr\n$Thread\n$VBT\n$View\n$ZeusPanel\n$ZFmt\n$#(_ALGNA"
 & "ME_)ViewClass\n#(_IMPORTS_)\n\nCONST \n  ViewName =  \"#(_VIEWNAME_).ob"
 & "l\";\n\nTYPE\n  T = #(_ALGNAME_)ViewClass.T BRANDED OBJECT\n        obj"
 & "ect  : Obliq.Val;\n        env     : Obliq.Env;\n        wr      : Text"
 & "Wr.T;\n        swr     : SynWr.T;\n        parser  : ObliqParser.T;\n  "
 & "    OVERRIDES\n        <* LL.sup < VBT.mu *>\n        startrun := Start"
 & "run;\n        <* LL.sup < VBT.mu *>\n#{_OUTPUT\n        oe#(_EVENT_) :="
 & " #(_EVENT_);\n#}\n        <* LL.sup = VBT.mu *>\n#{_UPDATE\n        ue#"
 & "(_EVENT_) := #(_EVENT_);\n#}\n      END;\n\n(* OUTPUT and UPDATE event "
 & "handling methods: *)\n\n#{_OUTPUT\nPROCEDURE #(_EVENT_) (view: T; #(_AR"
 & "GSTR_)) =\n  <* LL.sup < VBT.mu *>\n  BEGIN \n    IF FieldDefined(view."
 & "object, \"#(_EVENT_)\") THEN\n      Invoke (view, \"#(_EVENT_)\", \"\"\n"
 & "#{\n      & #(_ARGFMT_)(#(_ARGNAME_))\n#|\n      & \",\"\n#}\n      )\n"
 & "    END\n  END #(_EVENT_);\n#}\n\n#{_UPDATE\nPROCEDURE #(_EVENT_) (view"
 & ": T; #(_ARGSTR_)) =\n  <* LL = VBT.mu *>\n  BEGIN \n    IF FieldDefined"
 & "(view.object, \"#(_EVENT_)\") THEN\n ";

CONST E8_0 =
   "     Invoke (view, \"#(_EVENT_)\", \"\"\n#{\n      & #(_ARGFMT_)(#(_ARG"
 & "NAME_))\n#|\n      & \",\"\n#}\n      )\n    END\n  END #(_EVENT_);\n#}"
 & "\n\nPROCEDURE RegisterView () =\n  BEGIN \n    ZeusPanel.RegisterView(N"
 & "ew, \"#(_VIEWNAME_).obl\", \"#(_ALGNAME_)\")   \n  END RegisterView;\n\n"
 & "PROCEDURE New (): View.T =\n  BEGIN\n    RETURN NEW(T).init(NIL)\n  END"
 & " New;\n\nCONST \n  ObliqStackSizeMultiplier = 8;\n\nTYPE\n  Closure = T"
 & "hread.SizedClosure OBJECT\n              view: T;\n            OVERRIDE"
 & "S\n              apply := ForkedStartrun;\n            END;\n\nPROCEDUR"
 & "E Startrun (view: T) =\n  <* LL.sup < VBT.mu *>\n  BEGIN\n    EVAL\n   "
 & "   Thread.Join(\n        Thread.Fork(\n          NEW(Closure, view := v"
 & "iew,\n              stackSize := ObliqStackSizeMultiplier * Thread.GetD"
 & "efaultStackSize())));\n  END Startrun;\n\nPROCEDURE ForkedStartrun (cl:"
 & " Closure): REFANY =\n  VAR rd: Rd.T; view := cl.view;\n  BEGIN\n    IF "
 & "view.parser = NIL THEN\n      view.wr := TextWr.New();\n      view.swr "
 & ":= SynWr.New(view.wr);\n      view.parser := ObliqParser.New(view.swr);"
 & "\n    END;\n    view.object := NIL;\n    TRY\n      rd := Rsrc.Open(Vie"
 & "wName, ZeusPanel.GetPath());\n      view.env := ParseRd(view.parser, Vi"
 & "ewName, rd);\n      WITH obj = Obliq.Lookup(\"view\", view.env) DO\n   "
 & "     IF NOT ISTYPE(obj, ObValue.ValObj) THEN\n          ZeusPanel.Repor"
 & "tError(\n            \"not an Obliq object in \'\" & ViewName & \"\'\")"
 & "\n        ELSIF FieldDefined (obj, \"graphvbt\") THEN\n          WITH g"
 & "raphvbt =\n            NARROW(Obliq.ObjectSelect(obj, \"graphvbt\"),\n "
 & "                  ObLibAnim.ValGraph).vbt DO\n            LOCK VBT.mu D"
 & "O\n              EVAL Filter.Replace(view, graphvbt)\n            END\n"
 & "          END;\n          view.object := obj;\n        ELSIF FieldDefin"
 & "ed (obj, \"rectsvbt\") THEN\n          WITH rectsvbt =\n            NAR"
 & "ROW(Obliq.ObjectSelect(obj, \"rectsvbt\"),\n                   ObLibAni"
 & "m.ValRects).vbt DO\n            LOCK VBT.mu DO\n              EVAL Filt"
 & "er.Replace(view, rectsvbt)\n            END\n          END;\n          "
 & "view.object := obj;\n        ELSIF FieldD";

CONST E8_1 =
   "efined (obj, \"formsvbt\") THEN\n          WITH formsvbt =\n           "
 & " NARROW(Obliq.ObjectSelect(obj, \"formsvbt\"),\n                   ObLi"
 & "bUI.ValForm).vbt DO\n            LOCK VBT.mu DO\n              EVAL Fil"
 & "ter.Replace(view, formsvbt)\n            END\n          END;\n         "
 & " view.object := obj;\n        ELSE\n          ZeusPanel.ReportError(\n "
 & "           \"cannot find \'graphvbt\', \'rectsvbt\', or \'formsvbt\' in"
 & " \'\" & ViewName & \"\'\")\n        END\n      END\n    EXCEPT\n    | R"
 & "src.NotFound =>\n        ZeusPanel.ReportError(\"cannot find \'\" & Vie"
 & "wName & \"\'\")\n    | ObValue.Error (packet) => OblError(view, packet)"
 & "\n    | ObValue.Exception (packet) => OblException(view, packet)\n    E"
 & "ND;\n    RETURN NIL;\n  END ForkedStartrun;\n\nPROCEDURE ParseRd (p: Ob"
 & "liqParser.T; name: TEXT; rd: Rd.T):\n  Obliq.Env RAISES {ObValue.Error,"
 & " ObValue.Exception} =\n  VAR env := Obliq.EmptyEnv();\n  BEGIN\n    Obl"
 & "iqParser.ReadFrom(p, name, rd, TRUE);\n    TRY\n      LOOP\n        EVA"
 & "L ObliqParser.EvalPhrase(p, ObliqParser.ParsePhrase(p), env)\n      END"
 & "\n    EXCEPT\n      ObliqParser.Eof => (* clean exit of loop *)\n    EN"
 & "D;\n    RETURN env\n  END ParseRd;\n\nPROCEDURE Invoke (view: T; event,"
 & " args: TEXT) =\n  VAR\n    exp    := \"view.\" & event & \"(\" & args &"
 & " \");\";\n    name   := \"Zeus Event <\" & event & \">\";\n  BEGIN\n   "
 & " ObliqParser.ReadFrom (view.parser, name, TextRd.New(exp), FALSE);\n   "
 & " TRY\n      EVAL Obliq.EvalTerm(ObliqParser.ParseTerm(view.parser), vie"
 & "w.env)\n    EXCEPT\n    | ObliqParser.Eof => <* ASSERT FALSE *>\n    | "
 & "ObValue.Error (packet) => OblError(view, packet)\n    | ObValue.Excepti"
 & "on (packet) => OblException(view, packet)\n    END\n  END Invoke;\n\nPR"
 & "OCEDURE FieldDefined (object: Obliq.Val; event: TEXT): BOOLEAN =\n  BEG"
 & "IN\n    TRY\n      RETURN object # NIL AND Obliq.ObjectHas(object, even"
 & "t)\n    EXCEPT\n    | ObValue.Error =>\n    | ObValue.Exception =>\n   "
 & " END;\n    RETURN FALSE\n  END FieldDefined;\n\nPROCEDURE OblError (vie"
 & "w: T; packet: ObValue.ErrorPacket) =\n  BEGIN\n    Obliq.ReportError(vi"
 & "ew.swr, packet);\n    ZeusPanel.ReportEr";

CONST E8_2 =
   "ror(\n      \"Obliq error: \" & TextWr.ToText(view.wr))\n  END OblError"
 & ";\n\nPROCEDURE OblException (view: T; packet: ObValue.ExceptionPacket) "
 & "=\n  BEGIN\n    Obliq.ReportException(view.swr, packet);\n    ZeusPanel"
 & ".ReportError(\n      \"Obliq exception: \" & TextWr.ToText(view.wr))\n "
 & " END OblException;\n\nBEGIN\n  SynWr.Setup();\n  ObliqParser.PackageSet"
 & "up();\n  ObLibM3.PackageSetup();\n  ObLibUI.PackageSetup();\n  ObLibAni"
 & "m.PackageSetup();\n  RegisterView ();\nEND #(_ALGNAME_)#(_VIEWNAME_)Obl"
 & "iqView.\n";

CONST E9 =
   "(* Copyright (C) 1995, Digital Equipment Corporation.       *)\n(* All "
 & "rights reserved.                                     *)\n(* See the fil"
 & "e COPYRIGHT for a full description.           *)\n(*                   "
 & "                                       *)\n(* Last modified on Thu Feb "
 & " 9 08:47:37 PST 1995 by kalsow  *)\n(* Last modified on Wed Feb 17 16:4"
 & "4:58 PST 1993 by johnh   *)\n(*      modified on Tue Jun  9 00:35:07 19"
 & "92 by mhb         *)\n\n(**********************************************"
 & "***********************\n|*  NOTE: This file is generated automatically"
 & " from the event \n|*        definition file #(_ALGNAME_).evt.\n|*******"
 & "**************************************************************)\n\nINTE"
 & "RFACE #(_ALGNAME_)AlgClass;\n\n$Algorithm\n$AlgorithmClass\n#(_IMPORTS_"
 & ")\n\n<* PRAGMA LL *>\n\nTYPE\n  EventDataRec = RECORD\n#{_OUTPUT\n    s"
 & "topAt#(_EVENT_): BOOLEAN := TRUE;\n    waitAt#(_EVENT_): CARDINAL := 1;"
 & "\n    ctOf#(_EVENT_): CARDINAL := 0;\n#}\n  END;\n\n  T <: Public;\n  P"
 & "ublic = Algorithm.T OBJECT\n      eventDataRec: EventDataRec;\n#(_ALGDA"
 & "TA_)\n      METHODS\n#{_FEEDBACK\n        fe#(_EVENT_) (#(_ARGSTR_));  "
 & "  <* LL = VBT.mu *>\n#}\n      END;\n      \nREVEAL\n  Algorithm.T <: A"
 & "lgorithmClass.T;\n  \nEND #(_ALGNAME_)AlgClass.\n";

CONST E10 =
   "(* Copyright (C) 1995, Digital Equipment Corporation.       *)\n(* All "
 & "rights reserved.                                     *)\n(* See the fil"
 & "e COPYRIGHT for a full description.           *)\n(*                   "
 & "                                       *)\n(* Last modified on Thu Feb "
 & " 9 08:56:54 PST 1995 by kalsow  *)\n(*      modified on Sat Jun  4 16:2"
 & "3:08 1994 by heydon      *)\n(*      modified on Wed Feb 17 17:04:32 PS"
 & "T 1993 by johnh   *)\n(*      modified on Tue Jun  9 00:35:35 1992 by m"
 & "hb         *)\n\n(*****************************************************"
 & "****************\n|*  NOTE: This file is generated automatically from t"
 & "he event \n|*        definition file #(_ALGNAME_).evt.\n|**************"
 & "*******************************************************)\n\n<* PRAGMA L"
 & "L *>\n\nMODULE #(_ALGNAME_)ViewClass;\n\n$ViewClass\n$ZeusClass\n$#(_AL"
 & "GNAME_)AlgClass\n#(_IMPORTS_)\n\nREVEAL\n  T = Public BRANDED OBJECT\n "
 & "     OVERRIDES\n        <* LL.sup = VBT.mu *>\n        isCompat := IsCo"
 & "mpat;\n        <* LL.sup < VBT.mu *>\n#{_OUTPUT\n        oe#(_EVENT_) :"
 & "= #(_EVENT_);\n#}\n        <* LL.sup = VBT.mu *>\n#{_UPDATE\n        ue"
 & "#(_EVENT_) := #(_EVENT_);\n#}\n      END;\n      \nPROCEDURE IsCompat(<"
 & "*UNUSED*> v: T; alg: ZeusClass.T): BOOLEAN =\n  <* LL.sup = VBT.mu *>\n"
 & "  BEGIN\n    RETURN ISTYPE(alg, #(_ALGNAME_)AlgClass.T)\n  END IsCompat"
 & ";\n\n#{_OUTPUT\nPROCEDURE #(_EVENT_) (view: T \n#{\n    ; <*UNUSED*> #("
 & "_ARGMODE_)#(_ARGNAME_): #(_ARGTYPE_)\n#}\n) =\n  <* LL.sup < VBT.mu *>\n"
 & "  BEGIN \n    view.evtHandled := FALSE;\n  END #(_EVENT_);\n#}\n\n#{_UP"
 & "DATE\nPROCEDURE #(_EVENT_) (view: T \n#{\n    ; <*UNUSED*> #(_ARGMODE_)"
 & "#(_ARGNAME_): #(_ARGTYPE_)\n#}\n) =\n  <* LL.sup = VBT.mu *>\n  BEGIN \n"
 & "    view.evtHandled := FALSE;\n  END #(_EVENT_);\n#}\n\nBEGIN\nEND #(_A"
 & "LGNAME_)ViewClass.\n";

CONST E11 =
   "(* Copyright (C) 1995, Digital Equipment Corporation.       *)\n(* All "
 & "rights reserved.                                     *)\n(* See the fil"
 & "e COPYRIGHT for a full description.           *)\n(*                   "
 & "                                       *)\n(* Last modified on Wed Feb "
 & " 8 15:29:45 PST 1995 by kalsow  *)\n(*      modified on Sat Jul 17 10:5"
 & "5:43 PDT 1993 by mhb     *)\n(*      modified on Thu Jul 15 13:53:13 PD"
 & "T 1993 by steveg  *)\n(*      modified on Wed Feb 17 16:47:18 PST 1993 "
 & "by johnh   *)\n\n(*****************************************************"
 & "****************\n|*  NOTE: This file is generated automatically from t"
 & "he event \n|*        definition file #(_ALGNAME_).evt.\n|**************"
 & "*******************************************************)\n\nINTERFACE #"
 & "(_ALGNAME_)#(_VIEWNAME_)GEFView;\nEND #(_ALGNAME_)#(_VIEWNAME_)GEFView."
 & "\n\n";

CONST E12 =
   "(* Copyright (C) 1995, Digital Equipment Corporation.       *)\n(* All "
 & "rights reserved.                                     *)\n(* See the fil"
 & "e COPYRIGHT for a full description.           *)\n(*                   "
 & "                                       *)\n(* Last modified on Wed Feb "
 & " 8 15:33:55 PST 1995 by kalsow  *)\n(*      modified on Wed Jun  1 23:5"
 & "8:34 PDT 1994 by mhb     *)\n\n(***************************************"
 & "******************************\n|*  NOTE: This file is generated automa"
 & "tically from the event \n|*        definition file #(_ALGNAME_).evt.\n|"
 & "*********************************************************************)\n"
 & "\nINTERFACE #(_ALGNAME_)#(_VIEWNAME_)JunoView;\nEND #(_ALGNAME_)#(_VIEW"
 & "NAME_)JunoView.\n\n";

CONST E13 =
   "(* Copyright (C) 1995, Digital Equipment Corporation.       *)\n(* All "
 & "rights reserved.                                     *)\n(* See the fil"
 & "e COPYRIGHT for a full description.           *)\n(*                   "
 & "                                       *)\n(* Last modified on Wed Feb "
 & " 8 15:42:11 PST 1995 by kalsow  *)\n(*      modified on Wed Feb 17 16:4"
 & "7:18 PST 1993 by johnh   *)\n(*      modified on Tue Jun  9 00:43:17 19"
 & "92 by mhb         *)\n\n(**********************************************"
 & "***********************\n|*  NOTE: This file is generated automatically"
 & " from the event \n|*        definition file #(_ALGNAME_).evt.\n|*******"
 & "**************************************************************)\n\n<* P"
 & "RAGMA LL *>\n\nINTERFACE #(_ALGNAME_)TranscriptView;\n\nIMPORT #(_ALGNA"
 & "ME_)ViewClass;\n\nTYPE\n  T <: Public;\n  Public = #(_ALGNAME_)ViewClas"
 & "s.T OBJECT\n      METHODS\n        <* LL = VBT.mu *>\n        init(): T"
 & ";\n      END;\n\nEND #(_ALGNAME_)TranscriptView.\n";

CONST E14 =
   "(* Copyright (C) 1995, Digital Equipment Corporation.       *)\n(* All "
 & "rights reserved.                                     *)\n(* See the fil"
 & "e COPYRIGHT for a full description.           *)\n(*                   "
 & "                                       *)\n(* Last modified on Mon Jul "
 & "10 15:31:57 PDT 1995 by najork  *)\n(*      modified on Thu Feb  9 08:5"
 & "3:09 PST 1995 by kalsow  *)\n(*      modified on Mon Jun  6 03:20:38 PD"
 & "T 1994 by mhb     *)\n(*      modified on Sat Jun  4 16:22:04 1994 by h"
 & "eydon      *)\n(*      modified on Tue Feb 16 16:31:40 PST 1993 by john"
 & "h   *)\n\n(************************************************************"
 & "*********\n|*  NOTE: This file is generated automatically from the even"
 & "t \n|*        definition file #(_ALGNAME_).evt.\n|*********************"
 & "************************************************)\n\n<* PRAGMA LL *>\n\n"
 & "MODULE #(_ALGNAME_)#(_VIEWNAME_)Obliq3DView;\n\n$Fmt\n$ZFmt\n$Obliq\n$O"
 & "bliqParser\n$ObLib3D\n$ObLibAnim\n$ObLibM3\n$ObLibUI\n$ObValue\n$ObView"
 & "3D\n$ObZeus3D\n$Rd\n$Rsrc\n$SynWr\n$TextRd\n$TextWr\n$Thread\n$View\n$V"
 & "iew3DProxy\n$ZeusPanel\n$SynLocation\n$SynParse\n$MetaParser\n$ObliqPri"
 & "nter\n$ObLibOnline\n$#(_ALGNAME_)3DViewClass\n#(_IMPORTS_)\n\nCONST \n "
 & " ViewName =  \"#(_VIEWNAME_).obl\";\n\nTYPE\n  T = #(_ALGNAME_)3DViewCl"
 & "ass.T BRANDED OBJECT\n        env     : Obliq.Env;\n        wr      : T"
 & "extWr.T;\n        swr     : SynWr.T;\n        parser  : ObliqParser.T;\n"
 & "      OVERRIDES\n        <* LL.sup < VBT.mu *>\n        startrun := Sta"
 & "rtrun;\n        <* LL.sup < VBT.mu *>\n#{_OUTPUT\n        oe#(_EVENT_) "
 & ":= #(_EVENT_);\n#}\n        <* LL.sup = VBT.mu *>\n#{_UPDATE\n        u"
 & "e#(_EVENT_) := #(_EVENT_);\n#}\n      END;\n\n(* OUTPUT and UPDATE even"
 & "t handling methods: *)\n\n#{_OUTPUT\nPROCEDURE #(_EVENT_) (view: T; #(_"
 & "ARGSTR_)) =\n  <* LL.sup < VBT.mu *>\n  BEGIN \n      Invoke (view, \"#"
 & "(_EVENT_)\", \"\"\n#{\n      & #(_ARGFMT_)(#(_ARGNAME_))\n#|\n      & \""
 & ",\"\n#}\n      )\n  END #(_EVENT_);\n\n#}\n\n#{_UPDATE\nPROCEDURE #(_EV"
 & "ENT_) (view: T; #(_ARGSTR_)) =\n  <* LL.sup = VBT.mu *>\n  BEGIN \n    "
 & "  Invoke (view, \"#(_EVENT_)\", \"\"\n#{\n";

CONST E14_0 =
   "      & #(_ARGFMT_)(#(_ARGNAME_))\n#|\n      & \",\"\n#}\n      )\n  EN"
 & "D #(_EVENT_);\n#}\n\nTYPE \n  Closure = Thread.SizedClosure BRANDED OBJ"
 & "ECT\n    view : T;\n  OVERRIDES\n    apply := Apply;\n  END;\n\n\nPROCE"
 & "DURE Apply (self : Closure) : REFANY =\n\n  PROCEDURE ParseRd (p: Obliq"
 & "Parser.T; name: TEXT; rd: Rd.T) : Obliq.Env \n      RAISES {ObValue.Err"
 & "or, ObValue.Exception} =\n    VAR \n      env := Obliq.EmptyEnv ();\n  "
 & "  BEGIN\n      ObliqParser.ReadFrom (p, name, rd, TRUE);\n      TRY\n  "
 & "      LOOP\n          EVAL ObliqParser.EvalPhrase (p, ObliqParser.Parse"
 & "Phrase (p), env)\n        END\n      EXCEPT\n        ObliqParser.Eof =>"
 & " (* clean exit of loop *)\n      END;\n      RETURN env\n    END ParseR"
 & "d;\n\n  BEGIN\n    WITH view = self.view DO\n      (*** Parse the .obl "
 & "file ***)\n      TRY\n        WITH rd = Rsrc.Open (ViewName, ZeusPanel."
 & "GetPath ()) DO\n          view.env := ParseRd (view.parser, ViewName, r"
 & "d);\n        END;\n        WITH obj = Obliq.Lookup (\"view\", view.env)"
 & " DO\n          ObView3D.PairUp (view, obj);\n        END;\n      EXCEPT"
 & "\n      | Rsrc.NotFound => \n        ZeusPanel.ReportError(\"cannot fin"
 & "d \'\" & ViewName & \"\'\");\n      | ObValue.Error (packet) => \n     "
 & "   OblError(view, packet);\n      | ObValue.Exception (packet) => \n   "
 & "     OblException(view, packet);\n      END;\n\n      RETURN NIL;\n    "
 & "END;\n  END Apply;\n\n\nPROCEDURE New (): View.T =\n  VAR\n    view : T"
 & ";\n  BEGIN\n    (*** Create a View3D.T ***)\n    view := NEW (T).init ("
 & "\"Obliq3D View\");\n\n    (*** Create a new Obliq parser ***)\n    view"
 & ".wr     := TextWr.New ();\n    view.swr    := SynWr.New (view.wr);\n   "
 & " view.parser := ObliqParser.New (view.swr);\n\n    (*** Load the .obl f"
 & "ile ***)\n    WITH thread = Thread.Fork (NEW (Closure, view := view)) D"
 & "O\n      EVAL Thread.Join (thread);\n    END;\n\n    (*** invoke the Ne"
 & "w method of the Obliq object \"view\" ***)\n    Invoke (view, \"New\", "
 & "\"\");\n\n    (*** Return the new view ***)\n    RETURN view;\n  END Ne"
 & "w;\n\n\nPROCEDURE Startrun (view: T) =\n  <* LL.sup < VBT.mu *>\n  BEGI"
 & "N\n    (*** Reload the .obl file ***)\n    WIT";

CONST E14_1 =
   "H thread = Thread.Fork (\n                      NEW (Closure,\n        "
 & "                   stackSize := 2 * Thread.GetDefaultStackSize (),\n   "
 & "                        view := view)) DO\n      EVAL Thread.Join (thre"
 & "ad);\n    END;\n  END Startrun;\n\n\nPROCEDURE Invoke (view: T; event, "
 & "args: TEXT) =\n  VAR\n    exp    := \"view.\" & event & \"(\" & args & "
 & "\");\";\n    name   := \"Zeus Event <\" & event & \">\";\n    proxy  :="
 & " ObView3D.M3ToObliq (view);\n  BEGIN\n    TRY\n      IF proxy # NIL AND"
 & " Obliq.ObjectHas (proxy, event) THEN\n        ObliqParser.ReadFrom (vie"
 & "w.parser, name, TextRd.New(exp), FALSE);\n        EVAL Obliq.EvalTerm ("
 & "ObliqParser.ParseTerm (view.parser), view.env);\n      END;\n    EXCEPT"
 & "\n    | ObliqParser.Eof => <* ASSERT FALSE *>\n    | ObValue.Error (pac"
 & "ket) => OblError(view, packet)\n    | ObValue.Exception (packet) => Obl"
 & "Exception(view, packet)\n    END;\n  END Invoke;\n\n\nPROCEDURE OblErro"
 & "r (view: T; packet: ObValue.ErrorPacket) =\n  BEGIN\n    Obliq.ReportEr"
 & "ror(view.swr, packet);\n    ZeusPanel.ReportError(\"Obliq error: \" & T"
 & "extWr.ToText(view.wr))\n  END OblError;\n\n\nPROCEDURE OblException (vi"
 & "ew: T; packet: ObValue.ExceptionPacket) =\n  BEGIN\n    Obliq.ReportExc"
 & "eption(view.swr, packet);\n    ZeusPanel.ReportError(\n      \"Obliq ex"
 & "ception: \" & TextWr.ToText(view.wr))\n  END OblException;\n\n\nBEGIN\n"
 & "  SynWr.Setup();\n  SynLocation.PackageSetup();\n  SynParse.PackageSetu"
 & "p();\n  MetaParser.PackageSetup(); <* NOWARN *>\n  Obliq.PackageSetup()"
 & ";\n  ObliqParser.PackageSetup();\n  ObliqPrinter.PackageSetup();\n  ObL"
 & "ibOnline.Setup();             (* really needed! *)\n\n  ObLibM3.Package"
 & "Setup();\n  ObLibUI.PackageSetup();\n  ObLibAnim.PackageSetup();\n  ObL"
 & "ib3D.PackageSetup();\n  ObZeus3D.PackageSetup();\n\n  ZeusPanel.Registe"
 & "rView (New, \n                          \"#(_VIEWNAME_).obl\", \n      "
 & "                    \"#(_ALGNAME_)\", \n                          sampl"
 & "e := NEW(T));\nEND #(_ALGNAME_)#(_VIEWNAME_)Obliq3DView.\n";

CONST E15 =
   "(* Copyright (C) 1995, Digital Equipment Corporation.       *)\n(* All "
 & "rights reserved.                                     *)\n(* See the fil"
 & "e COPYRIGHT for a full description.           *)\n(*                   "
 & "                                       *)\n(* Last modified on Wed Feb "
 & " 8 15:27:36 PST 1995 by kalsow  *)\n(*       modified on Mon Jul 12 22:"
 & "36:53 PDT 1993 by mhb    *)\n\nINTERFACE #(_ALGNAME_)DataView;\n\nEND #"
 & "(_ALGNAME_)DataView.\n";

CONST E16 =
   "(* Copyright (C) 1995, Digital Equipment Corporation.       *)\n(* All "
 & "rights reserved.                                     *)\n(* See the fil"
 & "e COPYRIGHT for a full description.           *)\n(*                   "
 & "                                       *)\n(* Last modified on Thu Feb "
 & " 9 09:00:07 PST 1995 by kalsow  *)\n(*      modified on Mon Nov 29 08:0"
 & "7:34 PST 1993 by najork  *)\n(*      modified on Wed Feb 17 16:46:47 PS"
 & "T 1993 by johnh   *)\n(*      modified on Tue Jun  9 00:41:25 1992 by m"
 & "hb         *)\n\n(*****************************************************"
 & "****************\n|*  NOTE: This file is generated automatically from t"
 & "he event \n|*        definition file #(_ALGNAME_).evt.\n|**************"
 & "*******************************************************)\n\n<* PRAGMA L"
 & "L *>\n\nMODULE #(_ALGNAME_)IE;\n\n$Algorithm\n$AlgorithmClass\n$Thread\n"
 & "$View\n$Zeus\n$ZeusClass\n$#(_ALGNAME_)AlgClass\n$#(_ALGNAME_)ViewClass"
 & "\n$#(_ALGNAME_)3DViewClass\n#(_IMPORTS_)\n\n<* FATAL Zeus.Error, Zeus.L"
 & "ocked *>\n(* If you get either of these errors, contact a Zeus implemen"
 & "tor. *)\n\nTYPE\n#{\n  #(_EVENT_)Args = BRANDED REF RECORD\n#{\n    #(_"
 & "ARGNAME_): #(_ARGTYPE_);\n#}\n  END;\n\n#}\n\n(*  Zeus calls the follow"
 & "ing to invoke vbt v\'s event handler: *)\n\nPROCEDURE OEDispatcher(v: Z"
 & "eusClass.T; evt: REFANY) RAISES {Thread.Alerted} =\n  <* LL <= VBT.mu *"
 & ">\n  (* LL = {} if event style is output, LL = VBT.mu if event style is"
 & " update. *)\n  BEGIN\n    TYPECASE v OF\n    | #(_ALGNAME_)ViewClass.T "
 & "(view) =>\n      TYPECASE evt OF\n#{_OUTPUT\n      | #(_EVENT_)Args(var"
 & "#(_EVENT_)Args) => \n          view.oe#(_EVENT_) (\n#{\n              v"
 & "ar#(_EVENT_)Args.#(_ARGNAME_)\n#|\n                ,\n#}\n             "
 & " )\n#}\n#{_UPDATE\n      | #(_EVENT_)Args(var#(_EVENT_)Args) => \n     "
 & "     view.ue#(_EVENT_) (\n#{\n              var#(_EVENT_)Args.#(_ARGNAM"
 & "E_)\n#|\n                ,\n#}\n              )\n#}\n      ELSE <* ASSE"
 & "RT FALSE *>\n      END;\n    | #(_ALGNAME_)3DViewClass.T (view) =>\n   "
 & "   TYPECASE evt OF\n#{_OUTPUT\n      | #(_EVENT_)Args(var#(_EVENT_)Args"
 & ") => \n          v";

CONST E16_0 =
   "iew.oe#(_EVENT_) (\n#{\n              var#(_EVENT_)Args.#(_ARGNAME_)\n#"
 & "|\n                ,\n#}\n              )\n#}\n#{_UPDATE\n      | #(_EV"
 & "ENT_)Args(var#(_EVENT_)Args) => \n          view.ue#(_EVENT_) (\n#{\n  "
 & "            var#(_EVENT_)Args.#(_ARGNAME_)\n#|\n                ,\n#}\n"
 & "              )\n#}\n      ELSE <* ASSERT FALSE *>\n      END;\n    ELS"
 & "E (* this view isn\'t a #(_ALGNAME_)3DViewClass or\n            a #(_AL"
 & "GNAME_)3DViewClass, so just ignore *)\n    END\n  END OEDispatcher;\n\n"
 & "PROCEDURE FEDispatcher(v: ZeusClass.T; evt: REFANY) =\n  <* LL = VBT.mu"
 & " *>\n  BEGIN\n    TYPECASE v OF\n    | #(_ALGNAME_)AlgClass.T (alg) =>\n"
 & "      TYPECASE evt OF\n#{_FEEDBACK\n      | #(_EVENT_)Args(var#(_EVENT_"
 & ")Args) => \n          alg.fe#(_EVENT_) (\n#{\n              var#(_EVENT"
 & "_)Args.#(_ARGNAME_)\n#|\n                ,\n#}\n              )\n#}\n  "
 & "    ELSE <* ASSERT FALSE *>\n      END;\n    ELSE (* this alg isn\'t a "
 & "#(_ALGNAME_)AlgClass, so just ignore *)\n    END\n  END FEDispatcher;\n"
 & "\n\n#{_OUTPUT\nPROCEDURE #(_EVENT_) (\n      initiator: Algorithm.T; \n"
 & "      #(_ARGSTR_) \n    ) RAISES {Thread.Alerted} =\n  <* LL = {} *>\n "
 & " VAR zumeArgRec := NEW(#(_EVENT_)Args \n#{\n               , #(_ARGNAME"
 & "_) := #(_ARGNAME_)\n#}\n      );\n      alg := NARROW(initiator, #(_ALG"
 & "NAME_)AlgClass.T);\n  BEGIN\n    LOCK alg.evtMu DO\n      INC(alg.event"
 & "DataRec.ctOf#(_EVENT_));\n      alg.stopAtEvent := alg.eventDataRec.sto"
 & "pAt#(_EVENT_);\n      alg.waitAtEvent := alg.eventDataRec.waitAt#(_EVEN"
 & "T_);\n      Zeus.Dispatch(initiator, Zeus.EventStyle.Output, #(_EVENTPR"
 & "IO_),\n                    \"#(_EVENT_)\", OEDispatcher, zumeArgRec);\n"
 & "    END;\n  END #(_EVENT_);\n\n#}\n#{_UPDATE\nPROCEDURE #(_EVENT_) (\n "
 & "     initiator: Algorithm.T; \n      #(_ARGSTR_) \n    ) RAISES {Thread"
 & ".Alerted} =\n  <* LL = VBT.mu *>\n  VAR zumeArgRec := NEW(#(_EVENT_)Arg"
 & "s \n#{\n               , #(_ARGNAME_) := #(_ARGNAME_)\n#}\n      );\n  "
 & "BEGIN\n    Zeus.Dispatch(initiator, Zeus.EventStyle.Update, #(_EVENTPRI"
 & "O_), \n                  \"#(_EVENT_)\", OEDispatcher, zumeArgRec);\n  "
 & "END #(_EVENT_);\n\n#}\n\n#{_FEEDBAC";

CONST E16_1 =
   "K\nPROCEDURE #(_EVENT_) (\n      initiator: View.T; \n      #(_ARGSTR_)"
 & " \n    ) RAISES {Thread.Alerted} =\n  <* LL = VBT.mu *>\n  VAR zumeArgR"
 & "ec := NEW(#(_EVENT_)Args \n#{\n               , #(_ARGNAME_) := #(_ARGN"
 & "AME_)\n#}\n      );\n  BEGIN\n    Zeus.Dispatch(initiator, Zeus.EventSt"
 & "yle.Notify, #(_EVENTPRIO_), \n                  \"#(_EVENT_)\", FEDispa"
 & "tcher, zumeArgRec);\n  END #(_EVENT_);\n\n#}\n\nBEGIN\nEND #(_ALGNAME_)"
 & "IE.\n";

CONST E17 =
   "(* Copyright (C) 1995, Digital Equipment Corporation.       *)\n(* All "
 & "rights reserved.                                     *)\n(* See the fil"
 & "e COPYRIGHT for a full description.           *)\n(*                   "
 & "                                       *)\n(* Last modified on Thu Feb "
 & " 9 08:50:12 PST 1995 by kalsow  *)\n(*      modified on Sun Jun  5 21:5"
 & "8:07 PDT 1994 by mhb     *)\n(*      modified on Wed Feb 17 16:46:35 PS"
 & "T 1993 by johnh   *)\n\n(**********************************************"
 & "***********************\n|*  NOTE: This file is generated automatically"
 & " from the event \n|*        definition file #(_ALGNAME_).evt.\n|*******"
 & "**************************************************************)\n\n<* P"
 & "RAGMA LL *>\n\nINTERFACE #(_ALGNAME_)IE;\n\n$Algorithm\n$Thread\n$View\n"
 & "#(_IMPORTS_)\n\n\n(* call the following to generate an event: *)\n\n#{_"
 & "OUTPUT\nPROCEDURE #(_EVENT_) (\n      initiator: Algorithm.T; \n      #"
 & "(_ARGSTR_) \n    ) RAISES {Thread.Alerted};\n    <* LL = {} *>\n\n#}\n#"
 & "{_FEEDBACK\nPROCEDURE #(_EVENT_) (\n      initiator: View.T; \n      #("
 & "_ARGSTR_) \n    ) RAISES {Thread.Alerted};\n    <* LL = VBT.mu *>\n\n#}"
 & "\n#{_UPDATE\nPROCEDURE #(_EVENT_) (\n      initiator: Algorithm.T; \n  "
 & "    #(_ARGSTR_) \n    ) RAISES {Thread.Alerted};\n    <* LL = VBT.mu *>"
 & "\n\n#}\n\nEND #(_ALGNAME_)IE.\n";

CONST E18 =
   "(* Copyright (C) 1995, Digital Equipment Corporation.       *)\n(* All "
 & "rights reserved.                                     *)\n(* See the fil"
 & "e COPYRIGHT for a full description.           *)\n(*                   "
 & "                                       *)\n(* Last modified on Wed Feb "
 & " 8 15:36:04 PST 1995 by kalsow  *)\n(*      modified on Sat Jul 17 10:5"
 & "5:21 PDT 1993 by mhb     *)\n(*      modified on Wed Feb 17 16:47:18 PS"
 & "T 1993 by johnh   *)\n\n(**********************************************"
 & "***********************\n|*  NOTE: This file is generated automatically"
 & " from the event \n|*        definition file #(_ALGNAME_).evt.\n|*******"
 & "**************************************************************)\n\nINTE"
 & "RFACE #(_ALGNAME_)#(_VIEWNAME_)ObliqView;\nEND #(_ALGNAME_)#(_VIEWNAME_"
 & ")ObliqView.\n\n";

CONST E19 =
   "(* Copyright (C) 1995, Digital Equipment Corporation.       *)\n(* All "
 & "rights reserved.                                     *)\n(* See the fil"
 & "e COPYRIGHT for a full description.           *)\n(*                   "
 & "                                       *)\n(* Last modified on Thu Feb "
 & " 9 08:56:28 PST 1995 by kalsow  *)\n(*      modified on Wed Feb 17 17:0"
 & "4:21 PST 1993 by johnh   *)\n(*      modified on Tue Jun  9 00:35:21 19"
 & "92 by mhb         *)\n\n(**********************************************"
 & "***********************\n|*  NOTE: This file is generated automatically"
 & " from the event \n|*        definition file #(_ALGNAME_).evt.\n|*******"
 & "**************************************************************)\n\n<* P"
 & "RAGMA LL *>\n\nINTERFACE #(_ALGNAME_)ViewClass;\n\n$Thread\n$View\n#(_I"
 & "MPORTS_)\n\nTYPE\n  T <: Public;\n  Public = View.T OBJECT\n      METHO"
 & "DS\n      <*LL = {} *>\n#{_OUTPUT\n        oe#(_EVENT_) (#(_ARGSTR_)) R"
 & "AISES {Thread.Alerted};\n#}\n      <*LL = VBT.mu *>\n#{_UPDATE\n       "
 & " ue#(_EVENT_) (#(_ARGSTR_)) RAISES {Thread.Alerted};\n#}\n      END;\n "
 & "     \nEND #(_ALGNAME_)ViewClass.\n";

CONST E20 =
   "; Copyright (C) 1995, Digital Equipment Corporation.\n; All rights rese"
 & "rved.\n; See the file COPYRIGHT for a full description.\n;\n; Last modi"
 & "fied on Wed Feb  8 15:29:09 PST 1995 by kalsow\n\n;********************"
 & "************************************************\n;  NOTE: This file is"
 & " generated automatically from the event \n;        definition file #(_A"
 & "LGNAME_).evt.\n;*******************************************************"
 & "*************\n\n(VBox\n  (Border (Pen 1)\n    (Shape\n      (Height 75"
 & " - 25 + Inf)\n      (Viewport\n        (HBox\n          (Glue 4 + Inf)\n"
 & "          (VBox\n            (Glue 6)\n            (Shape (Height 16 + "
 & "0)\n              (HBox Fill (Shape (Width + 0) (Height + 0) \n        "
 & "                        \"Code View events:   Stop? \") \n             "
 & "       (Boolean %stopatCodeEvents =TRUE \"\")\n                    (Glu"
 & "e 10)\n                    (Shape (Width + 0) (Height + 0) \"Weight: \""
 & ")\n                    (Shape (Width 80) (Numeric %waitatCodeEvents =1 "
 & "\n                                               (Min 0) (Max 100)))))\n"
 & "            (Glue 6)\n#{_OUTPUT\n            (Shape (Height 16 + 0)\n  "
 & "            (HBox Fill (Shape (Width + 0) (Height + 0) \n              "
 & "                  \"#(_EVENT_):   Stop? \") \n                    (Bool"
 & "ean %stopAt#(_EVENT_) =TRUE \"\")\n                    (Glue 10)\n     "
 & "               (Shape (Width + 0) (Height + 0) \"Weight: \")\n         "
 & "           (Shape (Width 80) (Numeric %waitAt#(_EVENT_) =1 \n          "
 & "                                     (Min 0) (Max 100)))))\n           "
 & " (Glue 6)\n#}\n          )\n          (Glue 4)\n          (VBox\n      "
 & "      (Glue 5)\n            (Shape (Width + 0) (Height 16 + 0) \"Cts:\""
 & ")\n            (Button %eventCounts\n              (VBox\n#{_OUTPUT\n  "
 & "              (Glue 6)\n                (HBox Fill (Shape (Width + 0) ("
 & "Height 16 + 0) \n                                  (Text %ctOf#(_EVENT_"
 & ") \"0\")))\n#}\n                (Glue 3))))\n          Fill\n          "
 & "(Glue 4 + Inf)\n        )\n      )\n    )\n  )\n)\n";

CONST E21 =
   "(* Copyright (C) 1995, Digital Equipment Corporation.       *)\n(* All "
 & "rights reserved.                                     *)\n(* See the fil"
 & "e COPYRIGHT for a full description.           *)\n(*                   "
 & "                                       *)\n(* Last modified on Thu Feb "
 & " 9 08:57:32 PST 1995 by kalsow  *)\n(*      modified on Sun Nov 28 23:0"
 & "8:58 PST 1993 by najork  *)\n\n(***************************************"
 & "******************************\n|*  NOTE: This file is generated automa"
 & "tically from the event \n|*        definition file #(_ALGNAME_).evt.\n|"
 & "*********************************************************************)\n"
 & "\n<* PRAGMA LL *>\n\nMODULE #(_ALGNAME_)3DViewClass;\n\n$View3D\n$ViewC"
 & "lass\n$ZeusClass\n$#(_ALGNAME_)AlgClass\n#(_IMPORTS_)\n\nREVEAL\n  T = "
 & "Public BRANDED OBJECT\n      OVERRIDES\n       isCompat := IsCompat;\n "
 & "     <*LL = {} *>\n#{_OUTPUT\n        oe#(_EVENT_) := #(_EVENT_);\n#}\n"
 & "      <*LL = VBT.mu *>\n#{_UPDATE\n        ue#(_EVENT_) := #(_EVENT_);\n"
 & "#}\n      END;\n      \nPROCEDURE IsCompat (v: T; alg: ZeusClass.T): BO"
 & "OLEAN =\n  BEGIN\n    RETURN ISTYPE(alg, #(_ALGNAME_)AlgClass.T) AND Vi"
 & "ew3D.T.isCompat (v, alg);\n  END IsCompat;\n\n#{_OUTPUT\nPROCEDURE #(_E"
 & "VENT_) (view: T \n#{\n    ; <*UNUSED*> #(_ARGMODE_)#(_ARGNAME_): #(_ARG"
 & "TYPE_)\n#}\n) =\n  <*LL = {} *>\n  BEGIN \n    view.evtHandled := FALSE"
 & ";\n  END #(_EVENT_);\n\n#}\n\n#{_UPDATE\nPROCEDURE #(_EVENT_) (view: T "
 & "\n#{\n    ; <*UNUSED*> #(_ARGMODE_)#(_ARGNAME_): #(_ARGTYPE_)\n#}\n) =\n"
 & "  <*LL = VBT.mu *>\n  BEGIN \n    view.evtHandled := FALSE;\n  END #(_E"
 & "VENT_);\n\n#}\n\nBEGIN\nEND #(_ALGNAME_)3DViewClass.\n";

CONST E22 =
   "; Copyright (C) 1995, Digital Equipment Corporation.\n; All rights rese"
 & "rved.\n; See the file COPYRIGHT for a full description.\n;\n; Last modi"
 & "fied on Wed Feb  8 15:37:06 PST 1995 by kalsow\n\n;********************"
 & "************************************************\n;  NOTE: This file is"
 & " generated automatically from the event \n;        definition file #(_A"
 & "LGNAME_).evt.\n;*******************************************************"
 & "*************\n\n(VBox\n  (Rim\n    (Pen 2)\n    (HBox\n      (VBox (Gl"
 & "ue 4) (Shape (Height + Inf) (Button %clear \"CLEAR\")) (Glue 4))\n     "
 & " (Glue 4)\n      (VBox\n        (Boolean =TRUE %alg (Text LeftAlign \"A"
 & "lgorithm events\"))\n        (Boolean =FALSE %zeus (Text LeftAlign \"Ze"
 & "us events\"))\n        (Boolean =TRUE %args (Text LeftAlign \"Display a"
 & "rgs to events\")))\n      Fill))\n  (Bar 1)\n  (Shape (ShadowSize 0) (H"
 & "eight 200 + INF) (TextEdit ReadOnly %transcript)))\n";

CONST E23 =
   "(* Copyright (C) 1995, Digital Equipment Corporation.       *)\n(* All "
 & "rights reserved.                                     *)\n(* See the fil"
 & "e COPYRIGHT for a full description.           *)\n(*                   "
 & "                                       *)\n(* Last modified on Wed Feb "
 & " 8 15:34:46 PST 1995 by kalsow  *)\n(*      modified on Mon Jan 24 10:0"
 & "0:27 PST 1994 by najork  *)\n(*      modified on Sat Jul 17 10:55:21 PD"
 & "T 1993 by mhb     *)\n(*      modified on Wed Feb 17 16:47:18 PST 1993 "
 & "by johnh   *)\n\n(*****************************************************"
 & "****************\n|*  NOTE: This file is generated automatically from t"
 & "he event \n|*        definition file #(_ALGNAME_).evt.\n|**************"
 & "*******************************************************)\n\nINTERFACE #"
 & "(_ALGNAME_)#(_VIEWNAME_)Obliq3DView;\nEND #(_ALGNAME_)#(_VIEWNAME_)Obli"
 & "q3DView.\n\n";

BEGIN
END ZoomBundle.