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


Groups > comp.lang.c > #67486

Re: Labels

From James Kuyper <jameskuyper@verizon.net>
Newsgroups comp.lang.c
Subject Re: Labels
Date 2015-08-15 19:04 -0400
Organization Self
Message-ID <55CFC58E.5090600@verizon.net> (permalink)
References <21f52d2c-4f30-4ae1-9f0a-c1c82527b884@googlegroups.com> <mqnsnd$2c5$1@dont-email.me> <874mk0goix.fsf@bsb.me.uk>

Show all headers | View raw


On 08/15/2015 06:44 PM, Ben Bacarisse wrote:
> Bartc <bc@freeuk.com> writes:
> <snip>
>> Is 'A*B' an expression, or is it declaring a variable B of type
>> pointer-to-A?
>>
>> Is 'F(G)' a function call to G with argument G, or is it declaring a
>> variable G of type F, or is it the start of function declaration, or
>> the start of function definition?
>>
>> I think you have your work cut out!
> 
> This makes it sound as if C is particularly hard to parse, but it isn't,
> provided you know how to handle typedefs.  After reading a typedef, the
> parser must mark the identifiers involved as referring to types.

As earlier messages in this thread have shown, you can't always do that
immediately after parsing the identifier - the identifier could be a
statement label, and you have to read the next token after the
identifier to rule out that possibility. This doesn't strike me as a big
problem, but David Kleinecke finds it so.

None of the other kinds of identifiers can cause this problem:
definitions/declarations of the names of objects, functions, tags or
members of structs, unions, or enumerations, and typedefs all have at
least one of the tokens needed to identify them as such occurring before
the identifier.

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


Thread

Labels David Kleinecke <dkleinecke@gmail.com> - 2015-08-15 09:46 -0700
  Re: Labels James Kuyper <jameskuyper@verizon.net> - 2015-08-15 14:49 -0400
    Re: Labels David Kleinecke <dkleinecke@gmail.com> - 2015-08-15 18:48 -0700
  Re: Labels Bartc <bc@freeuk.com> - 2015-08-15 18:27 +0100
    Re: Labels Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-08-15 23:44 +0100
      Re: Labels James Kuyper <jameskuyper@verizon.net> - 2015-08-15 19:04 -0400
        Re: Labels Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-08-16 00:47 +0100
          Re: Labels James Kuyper <jameskuyper@verizon.net> - 2015-08-15 20:20 -0400
            Re: Labels Bartc <bc@freeuk.com> - 2015-08-16 01:56 +0100
              Re: Labels Keith Thompson <kst-u@mib.org> - 2015-08-15 19:47 -0700
                Re: Labels James Kuyper <jameskuyper@verizon.net> - 2015-08-16 11:59 -0400
            Re: Labels Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-08-16 22:42 +0100
              Re: Labels James Kuyper <jameskuyper@verizon.net> - 2015-08-16 20:39 -0400
                Re: Labels Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-08-17 03:16 +0100
        Re: Labels David Kleinecke <dkleinecke@gmail.com> - 2015-08-15 19:01 -0700
      Re: Labels Bartc <bc@freeuk.com> - 2015-08-16 01:11 +0100
        Re: Labels Keith Thompson <kst-u@mib.org> - 2015-08-15 19:13 -0700
          Re: Labels Bartc <bc@freeuk.com> - 2015-08-16 10:34 +0100
            Re: Labels Keith Thompson <kst-u@mib.org> - 2015-08-16 13:58 -0700
            Re: Labels David Kleinecke <dkleinecke@gmail.com> - 2015-08-16 20:42 -0700
              Re: Labels Keith Thompson <kst-u@mib.org> - 2015-08-16 21:24 -0700
                Re: Labels David Kleinecke <dkleinecke@gmail.com> - 2015-08-17 18:01 -0700
              Re: Labels Bartc <bc@freeuk.com> - 2015-08-17 11:04 +0100
        Re: Labels David Kleinecke <dkleinecke@gmail.com> - 2015-08-15 19:04 -0700
        Re: Labels Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-08-16 23:55 +0100
    Re: Labels David Kleinecke <dkleinecke@gmail.com> - 2015-08-15 19:00 -0700

csiph-web