Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.forth > #15130

Re: Implementing ." in forth

Path csiph.com!usenet.pasdenom.info!gegeweb.org!eternal-september.org!feeder.eternal-september.org!mx04.eternal-september.org!.POSTED!not-for-mail
From Arnold Doray <invalid@invalid.com>
Newsgroups comp.lang.forth
Subject Re: Implementing ." in forth
Date Fri, 24 Aug 2012 11:30:08 +0000 (UTC)
Organization A noiseless patient Spider
Lines 86
Message-ID <k17ojv$6ei$1@dont-email.me> (permalink)
References <k15dp4$kag$1@dont-email.me> <2012Aug23.164507@mips.complang.tuwien.ac.at>
Mime-Version 1.0
Content-Type text/plain; charset=UTF-8
Content-Transfer-Encoding 8bit
Injection-Date Fri, 24 Aug 2012 11:30:08 +0000 (UTC)
Injection-Info mx04.eternal-september.org; posting-host="a8dfdd8d3b07d46ec372aa2597b0870f"; logging-data="6610"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/mXR/aZFnzg0AcxC1wjYOK"
User-Agent Pan/0.133 (House of Butterflies)
Cancel-Lock sha1:+6j6Zr842anyL3l1dm0BxfAAmek=
Xref csiph.com comp.lang.forth:15130

Show key headers only | View raw


On Thu, 23 Aug 2012 14:45:07 +0000, Anton Ertl wrote:

> Arnold Doray <invalid@invalid.com> writes:
>>I am trying to write a small compatability harness for Mini (mini.terra-
>>weather.com) and am stumbling over ." (Mini has built-in strings, and
>>uses . instead of ." )
>>
>>Anyway, I see it needs:
>>
>>1) a PARSE to run immediately (because ." may be used inside a word), 2)
>>then it needs to compile the string as a literal if in compilation mode.
>>3) It needs to display the string, but not immediately.
>>
>>My problem is that there are some things that need to be done
>>immediately, and others delayed. And there is a need to know if ." is
>>being executed while in compilation mode.
>>
>>I am sure I am missing something. It surely can't be this complicated. I
>>would greatly appreciate any help.
> 
> Well, the standard ." has undefined interpretation semantics, so you
> just need to worry about the compilation semantics unless you want to
> extend it.
> 
> You identified the parts correctly.  Here's an implementation in
> standard Forth:
> 
> : ."
>   [char] " parse    \ part 1)
>   postpone sliteral \ part 2)
>   postpone type     \ part 3)
> ; immediate
> 
> - anton

Thanks -- this would work only in compilation mode as you say. I was 
hoping to get ." to work in both compilation AND interpretation mode, as 
GForth does. 

Now, even if I had a COMPILATION? word to test if we are in compilation 
mode:

: [."]  [char] " parse ` sliteral ` type ; immediate
: (.")  [char] " parse type ; 

: ." compilation? if [."] else (.") then ; \ CLEARLY DOES NOT WORK

Would obviously not work since [."] branch would fire right away. No 
combination of POSTPONE or IMMEDIATE I can think of seems to work, which 
is what got me stumped.  

Is there no ANS Forth only solution to this problem of "mixed modes"??

SEEing GForth's solution: 

------
see ." 
noname : 
  34 parse type ;
latestxt

noname : 
  34 parse  POSTPONE SLiteral 16227928 compile, ;
latestxt
interpret/compile: ."  ok
-----

I don't really understand this. Could anyone explain what's happening 
here? 


Cheers,
Arnold












 

Back to comp.lang.forth | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Implementing ." in forth Arnold Doray <invalid@invalid.com> - 2012-08-23 14:12 +0000
  Re: Implementing ." in forth anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-08-23 14:45 +0000
    Re: Implementing ." in forth Arnold Doray <invalid@invalid.com> - 2012-08-24 11:30 +0000
      Re: Implementing ." in forth Josh Grams <josh@qualdan.com> - 2012-08-24 12:56 +0000
      Re: Implementing ." in forth anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-08-24 14:41 +0000
        Re: Implementing ." in forth anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-08-24 16:45 +0000
        Re: Implementing ." in forth Arnold Doray <invalid@invalid.com> - 2012-08-25 03:41 +0000
          Re: Implementing ." in forth anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-08-25 09:05 +0000
            Re: Implementing ." in forth Arnold Doray <invalid@invalid.com> - 2012-08-29 15:48 +0000
              Re: Implementing ." in forth Coos Haak <chforth@hccnet.nl> - 2012-08-29 21:19 +0200
              Re: Implementing ." in forth anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-08-30 13:00 +0000
  Re: Implementing ." in forth Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-08-23 12:00 -0500
  Re: Implementing ." in forth Spam@ControlQ.com - 2012-08-23 14:16 -0400
  Re: Implementing ." in forth Mark Wills <markrobertwills@yahoo.co.uk> - 2012-08-23 14:37 -0700
  Re: Implementing ." in forth "Rod Pemberton" <do_not_have@notemailnot.cmm> - 2012-08-23 19:37 -0400
  Re: Implementing ." in forth hughaguilar96@yahoo.com - 2012-08-24 00:06 -0700
    Re: Implementing ." in forth Arnold Doray <invalid@invalid.com> - 2012-08-24 11:32 +0000
      Re: Implementing ." in forth Doug Hoffman <glidedog@gmail.com> - 2012-08-24 08:33 -0400
  Re: Implementing ." in forth jim@rainbarrel.com - 2012-08-24 09:15 -0700
  Re: Implementing ." in forth Chris Hinsley <chris.hinsley@gmail.com> - 2012-08-25 15:15 +0100

csiph-web