Re: THROW codes and ambiguous conditions

Liste des GroupesRevenir à cl forth 
Sujet : Re: THROW codes and ambiguous conditions
De : anton (at) *nospam* mips.complang.tuwien.ac.at (Anton Ertl)
Groupes : comp.lang.forth
Date : 08. Jun 2025, 09:07:14
Autres entêtes
Organisation : Institut fuer Computersprachen, Technische Universitaet Wien
Message-ID : <2025Jun8.100714@mips.complang.tuwien.ac.at>
References : 1 2 3 4 5 6
User-Agent : xrn 10.11
Paul Rubin <no.email@nospam.invalid> writes:
I wonder if there's a standard or well known way to capture the output
of . and related words, like redirecting the input stream.

In some systems TYPE and EMIT are a deferred words.  So I can do

: no-output-execute ( ... xt -- ... )
  action-of type action-of emit 2>r
  ['] 2drop is type ['] drop is emit catch
  2r> is emit is type
  throw ;

." |" 5 ' . no-output-execute ." |"

This works in Gforth and in VFX64.

SwiftForth has a system (personalities) for vectoring a number of I/O
words, including TYPE.  So the code above does not work in SwiftForth,
but you can define a personality to achieve the same thing.  LOCATE
SIMPLE-BUFFERING in SwiftForth to see how a personality is defined.

Gforth actually gives you both worlds: TYPE is a defer-flavoured field
in a method table accessed through a user variable.  So you can define
such a table (with OUTPUT:) and use it for changing the output, or you
can do the quick-and-dirty approach of revectoring the individual
words shown above.

However, if you actually want to have the result in a string, you also
need to manage a buffer such that consecutive calls to TYPE and EMIT
are concatenated.  In Gforth, >STRING-EXECUTE does all that for you.
You only have to FREE the buffer once you are done with it.

- anton
--
M. Anton Ertl  http://www.complang.tuwien.ac.at/anton/home.html
comp.lang.forth FAQs: http://www.complang.tuwien.ac.at/forth/faq/toc.html
     New standard: https://forth-standard.org/
EuroForth 2023 proceedings: http://www.euroforth.org/ef23/papers/
EuroForth 2024 proceedings: http://www.euroforth.org/ef24/papers/

Date Sujet#  Auteur
31 May 25 * THROW codes and ambiguous conditions40dxf
31 May 25 +* Re: THROW codes and ambiguous conditions7Anton Ertl
31 May 25 i+* Re: THROW codes and ambiguous conditions2dxf
3 Jun 25 ii`- Re: THROW codes and ambiguous conditions1sjack
31 May 25 i`* Re: THROW codes and ambiguous conditions4Anton Ertl
1 Jun 25 i `* Re: THROW codes and ambiguous conditions3albert
1 Jun 25 i  `* Re: THROW codes and ambiguous conditions2Anton Ertl
1 Jun 25 i   `- Re: THROW codes and ambiguous conditions1albert
1 Jun 25 `* Re: THROW codes and ambiguous conditions32Hans Bezemer
2 Jun 25  +- Re: THROW codes and ambiguous conditions1dxf
2 Jun 25  `* Re: THROW codes and ambiguous conditions30albert
3 Jun 25   `* Re: THROW codes and ambiguous conditions29dxf
3 Jun 25    +* Re: THROW codes and ambiguous conditions25Anton Ertl
4 Jun 25    i`* Re: THROW codes and ambiguous conditions24dxf
4 Jun 25    i `* Re: THROW codes and ambiguous conditions23sean
5 Jun 25    i  +- Re: THROW codes and ambiguous conditions1dxf
5 Jun 25    i  `* Re: THROW codes and ambiguous conditions21albert
6 Jun 25    i   +- Re: THROW codes and ambiguous conditions1dxf
6 Jun 25    i   `* Re: THROW codes and ambiguous conditions19sean
6 Jun 25    i    `* Re: THROW codes and ambiguous conditions18albert
6 Jun 25    i     `* Re: THROW codes and ambiguous conditions17sean
7 Jun 25    i      `* Re: THROW codes and ambiguous conditions16dxf
7 Jun 25    i       `* Re: THROW codes and ambiguous conditions15sean
7 Jun 25    i        +- Re: THROW codes and ambiguous conditions1dxf
7 Jun 25    i        +* Re: THROW codes and ambiguous conditions12Anton Ertl
7 Jun 25    i        i`* Re: THROW codes and ambiguous conditions11dxf
7 Jun 25    i        i `* Re: THROW codes and ambiguous conditions10Paul Rubin
8 Jun 25    i        i  +* Re: THROW codes and ambiguous conditions4Paul Rubin
8 Jun 25    i        i  i+- Re: THROW codes and ambiguous conditions1dxf
8 Jun 25    i        i  i+- Re: THROW codes and ambiguous conditions1Anton Ertl
10 Jun 25    i        i  i`- Re: THROW codes and ambiguous conditions1Paul Rubin
8 Jun 25    i        i  +- Re: THROW codes and ambiguous conditions1dxf
8 Jun 25    i        i  `* Re: THROW codes and ambiguous conditions4Anton Ertl
8 Jun 25    i        i   `* Re: THROW codes and ambiguous conditions3dxf
9 Jun 25    i        i    `* Re: THROW codes and ambiguous conditions2dxf
9 Jun 25    i        i     `- Re: THROW codes and ambiguous conditions1LIT
7 Jun 25    i        `- Re: THROW codes and ambiguous conditions1LIT
3 Jun 25    +- Re: THROW codes and ambiguous conditions1John
4 Jun 25    `* Re: THROW codes and ambiguous conditions2dxf
6 Jun 25     `- Re: THROW codes and ambiguous conditions1Hans Bezemer

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal