JC van Vliet transput - help!
chris hermansen
clhermansen@gmail.com
Tue Jan 20 04:39:11 GMT 2026
Hmm not seeing it in my source tree even after a pull....
Which leads me to wonder... from where are we onlookers meant to pull these
days?
On Mon, Jan 19, 2026 at 8:38 PM chris hermansen <clhermansen@gmail.com>
wrote:
> Wait maybe it wasn't supposed to be a URL.
>
> On Mon, Jan 19, 2026 at 8:36 PM chris hermansen <clhermansen@gmail.com>
> wrote:
>
>> That link fails on DNS lookup...
>>
>> On Sat, Jan 17, 2026 at 2:19 AM Jose E. Marchesi <jemarch@gnu.org> wrote:
>>
>>>
>>> > Got it, thanks, though I need to think through the #K# thing a bit
>>> more.
>>> > Too late on Friday night for that!
>>>
>>>
>>> Yes I also found it quite confusing.
>>> Look at transput.a68.in.
>>>
>>> >
>>> > On Fri, Jan 16, 2026 at 4:28 PM Jose E. Marchesi <jemarch@gnu.org>
>>> wrote:
>>> >
>>> >>
>>> >>
>>> >> > Hello everyone,
>>> >> >
>>> >> > I've started on bashing away at JC van Vliet's transput code
>>> (thanks,
>>> >> > Jose).
>>> >>
>>> >> Here we go! \o/ :)
>>> >>
>>> >> > And I have run into this comment:
>>> >> >
>>> >> > The letter-aleph-symbol is replaced by #?#.
>>> >> > Bold L, S, K and capital L are replaced by #L#, #S#, #K#
>>> >> > and xlx, resp. The text to be duplicated is demarcated by
>>> >> > #<# and #>#.
>>> >> >
>>> >> > I'm following some but not all of the above. Here's an example of
>>> his
>>> >> code
>>> >> > that uses some of these:
>>> >> >
>>> >> > {MODE #?# {NUMBER = {UNION(#<##L# {REAL#>#, #<##L# {INT#>#);
>>> >>
>>> >> Ok so that is a non-public mode. In the Transput module, do not use
>>> >> `pub' in front of the mode declaration, and then the mode indicant
>>> will
>>> >> not get publicized.
>>> >>
>>> >> You can define #L# with a sppp iterator:
>>> >>
>>> >> {iter L {short short} {short} {} {long} {long long}}
>>> >>
>>> >> and then refer to it as {L} between a block of iters and reti.
>>> >>
>>> >> #S# is something like:
>>> >>
>>> >> {iter S {} {SHORTEN} {SHORTEN SHORTEN}}
>>> >>
>>> >> and #K# is something like:
>>> >>
>>> >> {iter K {} {LENG} {LENG LENG}}
>>> >>
>>> >> and sometimes like:
>>> >>
>>> >> {iter K {SHORTEN SHORTEN} {SHORTEN} {} {LENG} {LENG LENG}}
>>> >>
>>> >>
>>> >> > I'm not following the purpose of the #<# and #>#, unless what he
>>> means is
>>> >> >
>>> >> > MODE #?# NUMBER = UNION(REAL, INT, LONG REAL, LONG INT, LONG LONG
>>> REAL,
>>> >> > LONG LONG INT);
>>> >> >
>>> >> > But I would have thought that
>>> >> >
>>> >> > MODE #?# NUMBER = UNION(#L# REAL, #L# INT);
>>> >> >
>>> >> > would have taken care of that. Can anyone explain to me what I'm
>>> >> missing?
>>> >> >
>>> >> > Here's another example:
>>> >> >
>>> >> > {INT xlx int width, xlx real width, xlx exp width;
>>> >> >
>>> >> > I'm thinking that this should be
>>> >> >
>>> >> > INT int width, long int width, long long int width, real width,
>>> long real
>>> >> > width, long long real width etc
>>> >>
>>> >>
>>> >> Simplifying the notation a bit, I think that
>>> >>
>>> >> #< #L REAL #>
>>> >>
>>> >> is indicating the portion of text that should be replicated along with
>>> >> each possible value of, in this case, #L. In sppp, the demarcation is
>>> >> the area between the {iter}s and the {reti}. so the above would
>>> >> correspond to:
>>> >>
>>> >> {iter L {...}}
>>> >> {L} real
>>> >> {reti}
>>> >>
>>> >> >
>>> >> > Does that make sense?
>>> >> >
>>> >> > Secondly, can I use sppp to annotate and process these?
>>> >>
>>> >> Sure, see above.
>>> >>
>>> >> Also please see the existing transput.a68.in in the GCC source
>>> tree. I
>>> >> added it with the few formatting routines (whole, fixed, etc) so it
>>> can
>>> >> be expanded with the full-fledged transput system.
>>> >>
>>> >>
>>>
>>
>>
>> --
>> Chris Hermansen · clhermansen "at" gmail "dot" com
>>
>> C'est ma façon de parler.
>>
>
>
> --
> Chris Hermansen · clhermansen "at" gmail "dot" com
>
> C'est ma façon de parler.
>
--
Chris Hermansen · clhermansen "at" gmail "dot" com
C'est ma façon de parler.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://gcc.gnu.org/pipermail/algol68/attachments/20260119/4b9f063b/attachment.htm>
More information about the Algol68
mailing list