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


Groups > comp.lang.c > #101197

Re: 'Amalgamated' source code

From Ben Bacarisse <ben.usenet@bsb.me.uk>
Newsgroups comp.lang.c
Subject Re: 'Amalgamated' source code
Date 2017-01-05 19:46 +0000
Organization A noiseless patient Spider
Message-ID <87eg0hi92q.fsf@bsb.me.uk> (permalink)
References (12 earlier) <8b7b2773-2a60-44c5-a9f4-e5fa23eff966@googlegroups.com> <87bmvlk2cr.fsf@bsb.me.uk> <a7f547cf-ab84-4610-9607-ae4eaec7b152@googlegroups.com> <871swhjv3q.fsf@bsb.me.uk> <2f8a7a13-ba5a-46da-b9a5-eb84223d00a7@googlegroups.com>

Show all headers | View raw


supercat@casperkitty.com writes:

> On Thursday, January 5, 2017 at 11:05:23 AM UTC-6, Ben Bacarisse wrote:
>> supercat writes:
>> <snip>
>> > How could a compiler avoid having to either use different expansion logic
>> > in cases where a macro is used as an operand to # versus cases where it
>> > isn't,
>> 
>> The pre-processor should follow the specified algorithm.  The fact that
>> you refer to "a macro" bring an operand to # suggests you haven't
>> studied that algorithm.  The operand of # is a parameter name and the
>> corresponding argument sequence (a list of token) is never expanded
>> before being turned into a string.
>
> Within the asString2 macro (the one that uses #), it acts upon the named
> parameter x, but the purpose of that macro is to apply the operator to
> the argument; the example code uses that macro twice, and in each case it
> is applied to the expansion of another macro.  The expansions of both of
> the macros to which it is applied have identical string representations
> (i.e. +++++) but one behaves like ++ + ++ and the other behaves like
> ++ + + +.  Given the difference between the string representation that
> would be needed for #, and the way in which the tokens would need to be
> output for downstream processing, I would think keeping track of string
> representations with and without the added spaces would be a reasonable
> way to handle that

I wouldn't.  I think it's much simpler to process token lists.  But I
haven't implemented it both way so I can't be 100% sure.  If your
intuition suggests multiple string representations are going to be a
good method, I can't talk you out of it, but my intuition (and
experience of having done it the other way) are saying that it's
bordering on bonkers.

Unfortunately it's too large a task to do just for the hell of finding
out, so let's agree to differ.

-- 
Ben.

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

'Amalgamated' source code BartC <bc@freeuk.com> - 2017-01-03 15:14 +0000
  Re: 'Amalgamated' source code Thiago Adams <thiago.adams@gmail.com> - 2017-01-03 08:47 -0800
    Re: 'Amalgamated' source code BartC <bc@freeuk.com> - 2017-01-03 19:47 +0000
      Re: 'Amalgamated' source code Thiago Adams <thiago.adams@gmail.com> - 2017-01-03 12:48 -0800
        Re: 'Amalgamated' source code BartC <bc@freeuk.com> - 2017-01-03 21:36 +0000
          Re: 'Amalgamated' source code Thiago Adams <thiago.adams@gmail.com> - 2017-01-03 16:01 -0800
            Re: 'Amalgamated' source code Keith Thompson <kst-u@mib.org> - 2017-01-03 16:26 -0800
              Re: 'Amalgamated' source code Thiago Adams <thiago.adams@gmail.com> - 2017-01-03 18:00 -0800
                Re: 'Amalgamated' source code Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-01-04 03:34 +0000
                Re: 'Amalgamated' source code Thiago Adams <thiago.adams@gmail.com> - 2017-01-04 03:31 -0800
                Re: 'Amalgamated' source code BartC <bc@freeuk.com> - 2017-01-04 12:03 +0000
                Re: 'Amalgamated' source code Thiago Adams <thiago.adams@gmail.com> - 2017-01-04 05:00 -0800
                Re: 'Amalgamated' source code Thiago Adams <thiago.adams@gmail.com> - 2017-01-05 02:38 -0800
                Re: 'Amalgamated' source code Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-01-05 14:28 +0000
                Re: 'Amalgamated' source code supercat@casperkitty.com - 2017-01-05 08:20 -0800
                Re: 'Amalgamated' source code Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-01-05 17:05 +0000
                Re: 'Amalgamated' source code supercat@casperkitty.com - 2017-01-05 10:11 -0800
                Re: 'Amalgamated' source code Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-01-05 19:46 +0000
                Re: 'Amalgamated' source code Thiago Adams <thiago.adams@gmail.com> - 2017-01-05 12:15 -0800
                Re: 'Amalgamated' source code Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-01-05 21:54 +0000
                Re: 'Amalgamated' source code BartC <bc@freeuk.com> - 2017-01-05 17:40 +0000
                Re: 'Amalgamated' source code Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-01-05 19:33 +0000
            Re: 'Amalgamated' source code BartC <bc@freeuk.com> - 2017-01-04 10:53 +0000
          Re: 'Amalgamated' source code Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-01-04 01:51 +0000
        Re: 'Amalgamated' source code BartC <bc@freeuk.com> - 2017-01-04 11:54 +0000
          Re: 'Amalgamated' source code Thiago Adams <thiago.adams@gmail.com> - 2017-01-04 05:57 -0800
            Re: 'Amalgamated' source code BartC <bc@freeuk.com> - 2017-01-04 14:20 +0000
            Re: 'Amalgamated' source code BartC <bc@freeuk.com> - 2017-01-04 15:07 +0000
              Re: 'Amalgamated' source code Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-01-04 15:34 +0000
                Re: 'Amalgamated' source code Thiago Adams <thiago.adams@gmail.com> - 2017-01-04 08:03 -0800
                Re: 'Amalgamated' source code Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-01-04 17:09 +0000
                Re: 'Amalgamated' source code bart4858@gmail.com - 2017-01-04 08:54 -0800
                Re: 'Amalgamated' source code Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-01-04 17:22 +0000
              Re: 'Amalgamated' source code Thiago Adams <thiago.adams@gmail.com> - 2017-01-04 07:55 -0800
                Re: 'Amalgamated' source code BartC <bc@freeuk.com> - 2017-01-05 18:04 +0000
                Re: 'Amalgamated' source code Thiago Adams <thiago.adams@gmail.com> - 2017-01-05 11:50 -0800
  Re: 'Amalgamated' source code Jorgen Grahn <grahn+nntp@snipabacken.se> - 2017-01-04 16:29 +0000
    Re: 'Amalgamated' source code bart4858@gmail.com - 2017-01-04 09:15 -0800
      Re: 'Amalgamated' source code Ian Collins <ian-news@hotmail.com> - 2017-01-05 08:33 +1300
        Re: 'Amalgamated' source code BartC <bc@freeuk.com> - 2017-01-04 20:26 +0000
          Re: 'Amalgamated' source code supercat@casperkitty.com - 2017-01-04 13:09 -0800
          Re: 'Amalgamated' source code Ian Collins <ian-news@hotmail.com> - 2017-01-05 10:21 +1300
            Re: 'Amalgamated' source code supercat@casperkitty.com - 2017-01-04 13:51 -0800
            Re: 'Amalgamated' source code BartC <bc@freeuk.com> - 2017-01-04 22:02 +0000
              Re: 'Amalgamated' source code Ian Collins <ian-news@hotmail.com> - 2017-01-05 11:15 +1300
      Re: 'Amalgamated' source code Jorgen Grahn <grahn+nntp@snipabacken.se> - 2017-01-07 06:38 +0000
        Re: 'Amalgamated' source code BartC <bc@freeuk.com> - 2017-01-07 11:35 +0000
    Re: 'Amalgamated' source code supercat@casperkitty.com - 2017-01-04 09:53 -0800
    Re: 'Amalgamated' source code Malcolm McLean <malcolm.mclean5@btinternet.com> - 2017-01-04 11:50 -0800
    Re: 'Amalgamated' source code raltbos@xs4all.nl (Richard Bos) - 2017-01-10 01:34 +0000
      Re: 'Amalgamated' source code Malcolm McLean <malcolm.mclean5@btinternet.com> - 2017-01-10 01:59 -0800
      Re: 'Amalgamated' source code Les Cargill <lcargill99@comcast.com> - 2017-01-10 06:55 -0600
      Re: 'Amalgamated' source code Richard Heathfield <rjh@cpax.org.uk> - 2017-01-10 14:48 +0000
  Re: 'Amalgamated' source code Thiago Adams <thiago.adams@gmail.com> - 2017-04-26 07:17 -0700

csiph-web