Aa   HH $d HHHHff@'  d#)  Footnote TableFootnote**. . / - :;,.!?) ! `f//aTOCHeading1Heading2R.   *EquationVariablestiI3.0aԢ 00  rie CoӢGdƢ vetZ5 [6-Bo\7]8^9ca_:ino`; a<ulab=Rec>Bod?Ite@egufAgBhClDEFȢ ɢ ˢ 5UH55Inspector-Base6Text-Inspector7 X-Inspector8inspect9$all-libraries[all-libraries]:display-object-info;Text-Inspector Commands<history=up> print?view@helpA quit;exitBxinspectCo$all-libraries[all-libraries]DDylan/TKEStore) F *39747: Heading: The Mindy Object InspectorTOGebindingem}qm X n ` o _ p ` U u k U <$lastpagenum>V *<$daynum01> <$shortmonthname> <$shortyear>W "<$monthnum>/<$daynum>/<$shortyear>X )<$daynum> <$shortmonthname> <$shortyear> vY "<$monthnum>/<$daynum>/<$shortyear>Z <$monthname> <$daynum>, <$year>[ "<$monthnum>/<$daynum>/<$shortyear>\  <$fullfilename>]  <$filename>^  <$paratext[Title]>_  <$paratext[Heading]>`  <$curpagenum>a  <$marker1>b  <$marker2>c  (Continued)spd + (Sheet <$tblsheetnum> of <$tblsheetcount>)slle Heading & Page <$paratext> on page<$pagenum>f Pagepage<$pagenum>g See Heading & Page%See <$paratext> on page<$pagenum>.ih  Table All7Table<$paranumonly>, <$paratext>, on page<$pagenum>li Table Number & Page'Table<$paranumonly> on page<$pagenum> j  Table & Page7Table<$paranumonly>, <$paratext>, on page<$pagenum>  i i A  j j  k k  l h Area m m  n n  o o A>I  T"I /umќJ aӟK n2. yL M ndaٜN rۜO unaݜP  fiQ R TS a[HVT 1. $U  V  W 3. (X p+[Y bnuZ s[ in\ <ex] nu^ age_ 3.1. ` e<a  eb ic ed l$pe o<f Tag &'h ay>i p> j aPak $mol r,m p>n  qo i rp .q /r k 0s 1t ea2u 3v 9w 5x  {y  6z  }{  )| . =}  ~ a3.7. ̢    ͢  Ң  Ϣ    4.   3.2.  ! "  p+$" bnu&$ s'% in(& <ex)' nu*( age/- 3.3. 1/ e<42  e=; i3.4. ?=  CA p HF < LJ a3.5. NL  TR  3.6. VT \Z 3.8. ^\ pca  3.9. a p $dqa k i k db eat  dFc  g g  $HGd c $H,, ag ,h  Text-Inspector Commands UU n xWhen the text inspector starts, it will display the object you have passed to it, along with all of the information you 'UUn wrequested using the keyword flags. Each item will be numbered, and to inspect a sub-object you simply type the number 3UUn e~corresponding to the desired choice (in this case, even a superclass is considered a sub-object, because it was inspected via ?UUn xthe main object). This lets you move around the object heterarchy, but it is not very convienent. There are additional KUU@n Acommands that are designed to allow easier use of the inspector: aUU` !1 ,  2 ,  3 , ... mUU`\ JInspect the subobject corresponding to that number in the current object. yUU` history HUU`] %Shows the stack of inspected objects UU`  up UU`^ HMoves up the inspected object stack (i.e. inspects the previous object) UU`" tprint UU`i iljPrints the current object using the print function, and the length and level that were passed to inspect. UU`I  kestore UU`U ll@Stores the current object in the next unused debugger variable. erUU`$ n view oUU`j d@Redisplays the current object (useful if it has gone offscreen) -oUU`% wa? ,  help ?UU`k th$Displays a help page much like this ou UU`& raquit ,  exit eryUU`l a5Leaves the inspector and continues program execution !UU`' ea r7UU`( to^With the exception of  history , all commands may be abbreviated by their first letter. Rh- inThe History Command rrfUU / The  history  command lists all of the previously visited objects in the current session. A sample output may look like rUU@/ pethis: UU 2 spY Instance of   <--- Initial object, the one given in the argument rUU2 th Instance of gthUU2 re Instance of I UU2  Class UU2 nP Class   <--- Last object seen, the one that up goes to ReUU@2 nt8 Class   <--- The current object %h; elThe Up Command thUU = paThe  up  command moves you up the history, and lets you see the previously visited object. In the above example, if you eUU@= 2moved up twice, the history would look like this: UU A , Instance of ted!UUA tt Instance of -UUA rr Instance of or9UU@A s  Class OUU`F ur?And you would be inspecting the class   . pejhJ The Print Command ~UU L zThe  print  command pretty-prints the current object (using the Gwydion Print library), but does not number the sub-UU@L oiobjects. It is useful only for displaying the objects in a different, possible more informative manner. rdIe  ath h  2$HJf e T c$Hk%% Commandh %hR omThe  Store Command UU  se{The  store  command stores the current object in the next unused debugger variable. See  mindy/debug.txt  for lik'UU@ &information about debugger variables. Bh~  ttThe View Command eVUU T uThe view command will allow you to redisplay the object that you are currently inspecting. This is mainly useful if obUU@T inSprevious commands such as history or view have moved the object off of the screen. ~}hZ ThThe Help Command UU \ yThe help command will display a short help page listing all of the commands and a brief one line description of how they lUU@\ hework. ha osThe Quit and Exit Command UU M wThis command (both words mean the same thing) will allow you to leave the inspector and continue with the execution of UUM ~your program. The next time inspect is called, it will not have any memory of the past session. This means that the history UUM twill initially show only the object that you called inspector with. If  inspect  was invoked from the debugger, you will t UU@M . return to the debugger. JUTU ` V X-Inspector &UU | wThe X-Inspectors graphical interface is pretty self explanatory. In addition to offering all the features of the text interface, mma2UU| y {it also offers a rudimentary class diagram viewer. (The class diagrams are non-interactive--you can click all you want on p c>UU| y them, but they wont do anything) The  Close  button will close a single window; the  Quit  button will close all the X-JUU| auInspector windows. When there are no longer any open X-Inspector windows, you will be returned to the Mindy debugger oVUU@| h prompt. iolUU` ^The name X-Inspector is something of a misnomer, since it does not require X-Windows to work. UU` ea7The X-Inspector library exports the following objects: shoUUh } thxinspect [Function] IUU` q wa Arguments UU` r ou#rest objects UU` s rnValues ebuUU`t none UU`u & Description wUU v s The  xinspect  function launches an interactive Inspection session, starting with the objects passed in. If no objects | UU v rswere supplied, the Inspector will begin by inspecting  $all-libraries  (see below). Unlike the  inspect  function, it thUU@ v d`is ok to pass multiple objects to  xinspect ; they will be displayed in separate windows. seUUhw "$all-libraries [Constant] $UU`x geGThis is the same constant as exported from the Text-inspector library. r o:UU(z h Caveat : Both Inspectors differentiate between a  binding (like a variable or a constant) and the object bound to that binding. FUUz spIf the binding is read-only, inspecting the binding is almost identical to inspecting the object it refers to. It is not exactly the RUU@z #r|same, because if the binding refers to a class, the X-Inspector will not offer you the option of a class hierarchy diagram. s hUU`   f$Hg c ssi$Hll h d d $Hh e t w$Hlg f f UnlHHi j a HHls s  HVU j k i a sseHVU lw w H$ k j a eorH$ lx x Ca$Hl p wn $Hlg y y ectl# m n z pIfl# l{ { denH n m o z .t H l| | e b$Ho n z i n$Hl} } dp5p  l l HHМs a HH $Hi UUdJ  H"@* t u b H"@* HR HR FootnoteHr7 u t v b Hr7 HzHz  Single LinelH'v u  b ~ ~ FootnoteHHVU ؜w a HVU wj UUdN  H$ ڜx a H$ lk UUdO  $Hܜy p $H))Hl  )TU TU lP H%The Mindy Object Inspector RU+TU dT Introduction @UU$Y zThis document describes the use of the Inspector libraries for Mindy. The Inspector libraries are used to supplement the LUUY Hucurrent Mindy debugger, and provide programmers with a tool for interactively inspecting their data structures. The XUUY noInspector has two separate interfaces, a text-based interface and a grpahical interface. The text interface is similar to that of  dUUY vMindy debugger. The graphical interface offers a pleasant if uninspiring way of inspecting objects; it also offers a pUUDY w"rudimentary class diagram viewer. UU,V $The Inspector is divided into three libraries,  Inspector-Base ,  Text-Inspector , and  X-Inspector . The first of these UUV provides facilities that are common to the other two libraries. The  Text-Inspector  library implements a text interface to indUUV the Inspector and the function  inspect . The  X-Inspector  library implements a graphical interface to the Inspector and the r lUULV toqfunction  xinspect . Use of the X-Inspector requires Dylan/TK, which may not available on all systems. UU$L at}The Inspector is most often invoked via the  inspect  and  xinspect  debugger commands. These debugger commands cUUL faevaluate their arguments and invoke the function  inspect  or  xinspect  with the appropriate arguments. The debugger UUDL iacommands will automatically load the appropriate libraries if they have not already been loaded. nDUTU dK iInspector-Base es,UU$Z -BThe  Inspector-base  library exists solely to support the  Text-Inspector  and  X-Inspector  libraries. Normal users e cUUDZ twill not find it useful. -@U;TU dW arText-Inspector xt Wd_  Exported Names thtUUl` e inspect [Function] e UUda l Arguments UUdb in#rest objects UUdc lValues UUUdd none pUUde e Description quUU$f w|The  inspect  function launches an interactive Inspection session, starting with the object passed in. If no objects  UUf ug|were supplied, the Inspector will begin by inspecting  $all-libraries  (see below). It is an error to pass more than oUUf wone object to  inspect ; the #rest args is really just a hack to get zero or one semantics. See below for a description eyUUDf beof Inspector commands. K UUlg se"$all-libraries [Constant] UU$h ibuThis constant magically represents all the libraries currently loaded in Mindy. Inspecting this constant will allow UUh fvyou to peruse libraries, modules, and even named bindings (ie, constants and variables).  $all-libraries  isnt UUDh ctWreally useful for anything other than passing to  inspect  and  xinspect . c :UUlm ,display-object-info  [Function] DeFUUdo  Arguments RUUdp *the-object :: ter^UUdX seValues artjUUdy t none ivUUd[  Description f UU${ d,}Writes a description of the object to  *debug-output*  (see mindy.txt for information on  *debug-output* ). The UUD{ o Youtput is almost the same as that of  inspect , except that it is not interactive. edޜz eofm o l# ߜ{ z a] l# Thpresentsm rinQ dy022 May 97  H | z oerH !, (ie, conn iaUUn !Running H/F 2# ynR ng # ass$H} z .c $H  [o FUU`S s   ~ v ^ Vaes H@P<  v b iioH@P< HH  Double Line thH   b dtx de Double Line) o tf i H  b  l Single Line  HZ b   TableFootnoteEUG$E  b aEUG$E EoPEoP  TableFootnote  da #Left$dz Rightdb  Referenced  p d  c d  e 9 @  ) *H  Header. @  ) *  Footer. f  ) %Body. f T ) *  TableTitleT:Table : . f  ) * CellHeading. f  ) *CellBody. @  ) % r  Body. $0f Q) %  r1Heading 1Heading Rule. FirstBody. ff2ff2 @  ) %H     h  Function Body. 33+33$f  B ) %33+Bullet Bullet SymbolB:\t. ll@  ) % Function Heade. HHH f T) % HeadingBody. ff2ff233@  ) %H  r g hi R >Argument. 2ff233@  ) %H    h u iDItem. ff2ff233@   ) %H  t m : hl  Argument. KK@  ) %H    h   DItem2. @   )  H    h  Verbatim. @  * Header. @  *Footer.  @  ) %Hr e   h  Body. f  ) * IBulleted\t. f  ) *CellBody. f  ) * CellHeading. f  ) * Footnote. f T) * Heading1Body. f T ) * Heading2Body. f T ) *  HeadingRunInBody. f  ) *l yIndented. f  ) *g Numbered.\t. f E ) * Numbered1.\tNumbered. f  ) * TableFootnote. f T ) *  TableTitleT:Table : .  f P) * TitleBody. $$$f  ) *CStep. HHH f T) % HeadingBody. @  ) %.\t. $$f SE ) *$1Step Step Number S:.\tStep. 33 @  ) %33Endnote1.\t. $$$f  ) *CBullet. ff233@  ) %H    h  DItem. ff2ff2 @  ) %H    h t t Function Bodyn. KK@  ) %$H e te . h   DItem2. HHHf D ) %  HeadingSub. 33 @  ) %. 33Endnote.\t. ]K$f B ) %]Bullet2 Bullet SymbolB:\t. $0f Q) % H1Heading 1Heading Rule. FirstBody. tdd33@  ) %H   e ht   Description2. @  ) % Function Heade. 33+33$f B ) %33+ Bullet Bullet SymbolnB:\t. ]f  ) % 2Heading .. . boff2K33@  ) %H  a g H ih  s Extra Key Arg. @  ) H  e t  he i Verbatim. ff233@   ) ncHa    h  DItem. f   ) % 2Heading .. .   Vz ) * Vz *  ) *  )   Bullet Symbol ) %@ ) %  ) %Emphasis ) Computer * Superscript ) % Variable ) %Argument )   Step Number * Subscript *EquationVariables oc; )   Bullet Symbol. _ ) Computer _ )  @ ) %   ) % @ ) % Variable  ) %Emphasis  ) %   )  ) @ ) ; )   ) Thin ) Mediummp ) Double )  Thickrt@ )  Very Thin -  ri   ) ) ) H pH H H H pFormat A   ) ) ) H lH H H H pFormat B  + Comment   m nǢ oʢ p) 9 1 d ) Black!T* WhitehddA+ Red dd, Greendd - Blued. Cyan) d/ Magentad 0 ) Yellow W.Times.R.400 Times-RomanW.Palatino.R.400Palatino-Roman W.Times.R.700e Times-BoldW.Palatino.R.700 Palatino-BoldW.Palatino.I.400Palatino-Italic W.Courier.R.400CourierW.Courier.R.700 Courier-BoldW.Helvetica.R.700 Helvetica-Bold7Courier Helvetica%Palatino*Times Regular Regular BoldItalicRegularPl :тBْq ԈKPه-ovk;-X]Sj}乶d)=8)II; F,u 5[Kи6nv? Ջiŀ<Y+Ԉoi_