home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.sys.hp48
- Path: sparky!uunet!charon.amdahl.com!pacbell.com!ames!saimiri.primate.wisc.edu!zaphod.mps.ohio-state.edu!usc!sol.ctr.columbia.edu!ira.uka.de!gmd.de!Germany.EU.net!mcsun!news.funet.fi!funic!nntp.hut.fi!nntp.hut.fi!mheiskan
- From: mheiskan@snakemail.hut.fi (Mika Heiskanen)
- Subject: Re: sys_RPL EVAL??? and DEBUGer ???
- In-Reply-To: fee@waikato.ac.nz's message of 5 Nov 92 19:56:39 GMT
- Message-ID: <MHEISKAN.92Nov6181147@lk-hp-9.hut.fi>
- Sender: usenet@nntp.hut.fi (Usenet pseudouser id)
- Nntp-Posting-Host: lk-hp-9.hut.fi
- Reply-To: mheiskan@.vipunen.hut.fi
- Organization: Helsinki University of Technology, Finland
- References: <1992Nov5.093538.11956@waikato.ac.nz> <MHEISKAN.92Nov5011224@lk-hp-21.hut.fi>
- <1992Nov6.085639.11983@waikato.ac.nz>
- Date: 06 Nov 92 16:11:47 GMT
- Lines: 37
-
-
- >However, the original secondary needs two COMPEVAL's to evaluate it, with
- >the first COMPEVAL apparently thinking for a bit and leaving the stack (at
- >least the display) unchanged. A second COMPEVAL will evaluate the secondary.
-
- >My secondary was created in the sys_RPL routine by adding strings
- >together (including the << and >> symbols) and then "palparse"'d to create
- >the secondary and then place it in a list. If I do an OBJ-> then DROP the
- >flag, the secondary still requires two COMPEVALs or EVALs. However, doing
- >a TYPE on the secondary immediately after the OB-> DROP returns an 8,
- >signifying that it is a secondary. Why does it require two COMPEVALs then?
- >It seems almost as if the object has to go through some kind of operation
- >at least once before it can be evaluated. Has it got some kind of weird
- >garbage attached that the HP is removing the first time around?
-
- This is what is executed by OBJ-> when the argument is a string:
-
- 14137 :: HP:DOSTR>
- 14137 @ Internal STR-> (Topmost) (1:$) (Errors if parsing failed, else EVALs)
- 14137 @ :: palparse case EVAL 2DROP SETSyntaxERR ;
-
- 14137:02D9D PROGRAM | <<
- 1413C:238A4 romobj | :: HP:palparse
- 14141:61993 romobj | P HP:case
- 14146:06F8E romobj | P HP:EVAL
- 1414B:03258 romobj | P HP:2DROP
- 14150:10F86 romobj | P NS:SETSyntaxERR
- 14155:0312B endprog | >>
-
- The problem you're having is that palparse places XLIB 1792 15 ie invisible
- quote in front of the program you see on stack. (Remember that :: is
- invisible too.) EVAL removes it without really evaluating the program.
-
- Thus, use DOSTR> instead of palparse, then COMPEVAL works as you want it to.
-
- --
- --> mheiskan@vipunen.hut.fi
-