Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!ucbvax!SUMEX-AIM.STANFORD.EDU!schmidt From: schmidt@SUMEX-AIM.STANFORD.EDU (Christopher Schmidt) Newsgroups: comp.sys.xerox Subject: Re: SPY Message-ID: <633555587.A7086.KSL-1186-1.schmidt@SUMEX-AIM.Stanford.EDU> Date: 15 Feb 89 22:53:56 GMT References: <35301@tut.cis.ohio-state.edu> Sender: daemon@ucbvax.BERKELEY.EDU Reply-To: info-1100@cis.ohio-state.edu Organization: The Internet Lines: 17 As noted on page 250 of the Medley SPY documentation, you can save SPY.TREE as an UGLYVARS. Eg. (SETQ TESTCOMS '((UGLYVARS SPY.TREE))) and (MAKEFILE 'TEST.LSP 'NEW). Note that what looks like a symbol ("spy:T") is actually a record of type SPYRECORD. You can inspect this record with the inspector or (in the absence of a declaration for SPYRECORD) programatically fetch the fields with FETCHFIELD and any of the field descriptors returned by (GETDESCRIPTORS 'SPYRECORD). (See section 8.9 (page 8.21) in the IRM.) For the casual hacker, FETCHFIELD is a little safer than writing your own ACCESSFNS which would be prefereable from the point-of-view of style. [Of course, what you really want is the SPYRECORD declaration. I doubt it has changed since Lyric if you have the source to that version. Since the UGLYVARS dump shows that it's just 6 pointers, you could wing it and make up your own field names in a DATATYPE declaration, but I haven't tried that.] --Christopher