Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.forth > #15130
| From | Arnold Doray <invalid@invalid.com> |
|---|---|
| Newsgroups | comp.lang.forth |
| Subject | Re: Implementing ." in forth |
| Date | 2012-08-24 11:30 +0000 |
| Organization | A noiseless patient Spider |
| Message-ID | <k17ojv$6ei$1@dont-email.me> (permalink) |
| References | <k15dp4$kag$1@dont-email.me> <2012Aug23.164507@mips.complang.tuwien.ac.at> |
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 | Next — Previous in thread | Next in thread | Find similar | Unroll 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