home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #26 / NN_1992_26.iso / spool / comp / sys / hp48 / 5595 < prev    next >
Encoding:
Text File  |  1992-11-08  |  2.5 KB  |  53 lines

  1. Newsgroups: comp.sys.hp48
  2. 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
  3. From: mheiskan@snakemail.hut.fi (Mika Heiskanen)
  4. Subject: Re: sys_RPL EVAL??? and DEBUGer ???
  5. In-Reply-To: fee@waikato.ac.nz's message of 5 Nov 92 19:56:39 GMT
  6. Message-ID: <MHEISKAN.92Nov6181147@lk-hp-9.hut.fi>
  7. Sender: usenet@nntp.hut.fi (Usenet pseudouser id)
  8. Nntp-Posting-Host: lk-hp-9.hut.fi
  9. Reply-To: mheiskan@.vipunen.hut.fi
  10. Organization: Helsinki University of Technology, Finland
  11. References: <1992Nov5.093538.11956@waikato.ac.nz> <MHEISKAN.92Nov5011224@lk-hp-21.hut.fi>
  12.     <1992Nov6.085639.11983@waikato.ac.nz>
  13. Date: 06 Nov 92 16:11:47 GMT
  14. Lines: 37
  15.  
  16.  
  17. >However, the original secondary needs two COMPEVAL's to evaluate it, with
  18. >the first COMPEVAL apparently thinking for a bit and leaving the stack (at
  19. >least the display) unchanged. A second COMPEVAL will evaluate the secondary.
  20.  
  21. >My secondary was created in the sys_RPL routine by adding strings
  22. >together (including the << and >> symbols) and then "palparse"'d to create
  23. >the secondary and then place it in a list. If I do an OBJ-> then DROP the
  24. >flag, the secondary still requires two COMPEVALs or EVALs. However, doing
  25. >a TYPE on the secondary immediately after the OB-> DROP returns an 8,
  26. >signifying that it is a secondary. Why does it require two COMPEVALs then?
  27. >It seems almost as if the object has to go through some kind of operation
  28. >at least once before it can be evaluated. Has it got some kind of weird
  29. >garbage attached that the HP is removing the first time around?
  30.  
  31. This is what is executed by OBJ-> when the argument is a string:
  32.  
  33. 14137 :: HP:DOSTR>
  34. 14137 @  Internal STR-> (Topmost) (1:$) (Errors if parsing failed, else EVALs)
  35. 14137 @  :: palparse case EVAL 2DROP SETSyntaxERR ;
  36.  
  37. 14137:02D9D PROGRAM        |  <<
  38. 1413C:238A4 romobj         |    :: HP:palparse
  39. 14141:61993 romobj         |    P  HP:case
  40. 14146:06F8E romobj         |    P  HP:EVAL
  41. 1414B:03258 romobj         |    P  HP:2DROP
  42. 14150:10F86 romobj         |    P  NS:SETSyntaxERR
  43. 14155:0312B endprog        |  >>
  44.  
  45. The problem you're having is that palparse places XLIB 1792 15 ie invisible
  46. quote in front of the program you see on stack. (Remember that :: is
  47. invisible too.) EVAL removes it without really evaluating the program.
  48.  
  49. Thus, use DOSTR> instead of palparse, then COMPEVAL works as you want it to.
  50.  
  51. --
  52. --> mheiskan@vipunen.hut.fi
  53.