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


Groups > comp.lang.c > #128170

Re: Dropping C

From Keith Thompson <kst-u@mib.org>
Newsgroups comp.lang.c
Subject Re: Dropping C
Date 2018-03-21 12:45 -0700
Organization None to speak of
Message-ID <lnfu4tp5zx.fsf@kst-u.example.com> (permalink)
References (16 earlier) <44po3zvi7h.fsf@be-well.ilk.org> <DFWrC.41550$0g.34346@fx06.am4> <p8svjm$g45$1@dont-email.me> <87vadptynn.fsf@bsb.me.uk> <p8ub0d$bkl$1@dont-email.me>

Show all headers | View raw


jacobnavia <jacob@jacob.remcomp.fr> writes:
> Le 21/03/2018 à 13:13, Ben Bacarisse a écrit :
>> jacobnavia <jacob@jacob.remcomp.fr> writes:
>>> Le 19/03/2018 à 23:17, bartc a écrit :
>>>> At the same time, C has the ability to make function definitions even
>>>> harder to see, by having a busy syntax indistinguishable at a glance
>>>> from a variable declaration;
>>>
>>> I published this algorithm in this group around 10 years ago:
>>>
>>> 1) Eliminate strings
>>> 2) Eliminate comments
>>> 3) Count braces
>>> 4) If at level zero you find a sequence of a right paren ')' followed
>>> by an opening brace '{', you have found the start of a function.
>> 
>> You have to eliminate character literals as well (e.g. '{').  Even so,
>> neither of these will be found:
[snip]
>>    int g(x) int x; { return x; }
>> 
>
> This is no longer supported since C89...

You mean your tool doesn't support it.  As I'm sure you know, it's still
perfectly valid in C99 and C11.

>> and this
>> 
>>   int *p = (int[]){0};
>>
>> will result in a false positive.
>
> Normally that would be int *p=NULL;

No, it initializes p as a non-null pointer, pointing to an int object
with the value 0.

[...]

>> The simplest way to deal with macros, alternate punctuators and
>> trigraphs is probably just to pre-process the source.  But then your
>> algorithm needs to know how the pre-processor tracks file inclusion
>> because functions defined in header files should probably not be found
>> by this algorithm.
>
> The algorithm finds all functions in the compilation unit.

A tool meant to find function declarations doesn't necessarily have to
handle all valid C code.  If you use macros to mess around with the
language syntax, or even if you use old-style functoin definitions, you
can't necessarily expect such a tool to work.  It would be nice if it
worked with 100% reliability, but I don't think it's necessary.  Full
compliance is less important for auxiliary tools than for compilers.

(jacob, if you see this, please acknowledge.  I suspect you've
killfiled me, which of course you're free to do, but if so I'd like
to know about it.)

-- 
Keith Thompson (The_Other_Keith) kst-u@mib.org  <http://www.ghoti.net/~kst>
Working, but not speaking, for JetHead Development, Inc.
"We must do something.  This is something.  Therefore, we must do this."
    -- Antony Jay and Jonathan Lynn, "Yes Minister"

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


Thread

Dropping C bartc <bc@freeuk.com> - 2018-03-17 16:07 +0000
  Re: Dropping C "Mr. Man-wai Chang" <toylet.toylet@gmail.com> - 2018-03-18 00:41 +0800
  Re: Dropping C Richard Damon <Richard@Damon-Family.org> - 2018-03-17 19:54 -0400
    Re: Dropping C Ian Collins <ian-news@hotmail.com> - 2018-03-18 13:19 +1300
      Re: Dropping C Steven Petruzzellis <frelwizzen@gmail.com> - 2018-03-18 02:42 -0700
    Re: Dropping C bartc <bc@freeuk.com> - 2018-03-18 01:28 +0000
      Re: Dropping C Richard Damon <Richard@Damon-Family.org> - 2018-03-17 21:41 -0400
        Re: Dropping C bartc <bc@freeuk.com> - 2018-03-18 11:25 +0000
          Re: Dropping C Steven Petruzzellis <frelwizzen@gmail.com> - 2018-03-18 04:33 -0700
          Re: Dropping C jacobnavia <jacob@jacob.remcomp.fr> - 2018-03-19 00:05 +0100
            Re: Dropping C bartc <bc@freeuk.com> - 2018-03-19 00:24 +0000
              Re: Dropping C Richard Damon <Richard@Damon-Family.org> - 2018-03-18 21:15 -0400
                Re: Dropping C Steven Petruzzellis <frelwizzen@gmail.com> - 2018-03-18 19:00 -0700
                Re: Dropping C David Brown <david.brown@hesbynett.no> - 2018-03-19 14:04 +0100
                Re: Dropping C Steven Petruzzellis <frelwizzen@gmail.com> - 2018-03-19 06:08 -0700
                Re: Dropping C supercat@casperkitty.com - 2018-03-19 14:29 -0700
              Re: Dropping C Noob <root@127.0.0.1> - 2018-03-19 14:34 +0100
                Re: Dropping C Steven Petruzzellis <frelwizzen@gmail.com> - 2018-03-19 06:39 -0700
                Re: Dropping C GOTHIER Nathan <nathan.gothier@gmail.com> - 2018-03-19 15:17 +0100
                Re: Dropping C bartc <bc@freeuk.com> - 2018-03-19 15:03 +0000
                Re: Dropping C scott@slp53.sl.home (Scott Lurndal) - 2018-03-19 15:36 +0000
                Re: Dropping C bartc <bc@freeuk.com> - 2018-03-19 17:01 +0000
                Re: Dropping C Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2018-03-19 12:14 -0600
                Re: Dropping C bartc <bc@freeuk.com> - 2018-03-19 19:15 +0000
                Re: Dropping C Ian Collins <ian-news@hotmail.com> - 2018-03-20 08:20 +1300
                Re: Dropping C bartc <bc@freeuk.com> - 2018-03-19 20:47 +0000
                Re: Dropping C Lowell Gilbert <lgusenet@be-well.ilk.org> - 2018-03-19 18:00 -0400
                Re: Dropping C bartc <bc@freeuk.com> - 2018-03-19 22:17 +0000
                Re: Dropping C Reinhardt Behm <rbehm@hushmail.com> - 2018-03-20 09:34 +0800
                Re: Dropping C jacobnavia <jacob@jacob.remcomp.fr> - 2018-03-21 07:54 +0100
                Re: Dropping C Robert Wessel <robertwessel2@yahoo.com> - 2018-03-21 04:10 -0500
                Re: Dropping C bartc <bc@freeuk.com> - 2018-03-21 11:08 +0000
                Re: Dropping C bartc <bc@freeuk.com> - 2018-03-21 11:18 +0000
                Re: Dropping C Steven Petruzzellis <frelwizzen@gmail.com> - 2018-03-21 05:28 -0700
                Re: Dropping C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-03-21 12:13 +0000
                Re: Dropping C bartc <bc@freeuk.com> - 2018-03-21 12:26 +0000
                Re: Dropping C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-03-21 15:55 +0000
                Re: Dropping C jacobnavia <jacob@jacob.remcomp.fr> - 2018-03-21 20:15 +0100
                Re: Dropping C Keith Thompson <kst-u@mib.org> - 2018-03-21 12:45 -0700
                Re: Dropping C supercat@casperkitty.com - 2018-03-21 13:46 -0700
                Killfiles (Was: Dropping C) gazelle@shell.xmission.com (Kenny McCormack) - 2018-03-21 21:42 +0000
                Re: Killfiles (Was: Dropping C) Steven Petruzzellis <frelwizzen@gmail.com> - 2018-03-22 04:22 -0700
                Re: Dropping C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-03-21 20:21 +0000
                Re: Dropping C Steven Petruzzellis <frelwizzen@gmail.com> - 2018-03-21 22:21 -0700
                Re: Dropping C Reinhardt Behm <rbehm@hushmail.com> - 2018-03-20 09:32 +0800
                Re: Dropping C Ian Collins <ian-news@hotmail.com> - 2018-03-21 10:01 +1300
                Re: Dropping C luser droog <luser.droog@gmail.com> - 2018-03-20 16:01 -0700
                Re: Dropping C Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2018-03-19 13:41 -0600
                Re: Dropping C luser droog <luser.droog@gmail.com> - 2018-03-19 12:52 -0700
                Re: Dropping C Spiros Bousbouras <spibou@gmail.com> - 2018-03-19 20:15 +0000
                Re: Dropping C scott@slp53.sl.home (Scott Lurndal) - 2018-03-19 20:38 +0000
                Re: Dropping C GOTHIER Nathan <nathan.gothier@gmail.com> - 2018-03-19 22:00 +0100
                Re: Dropping C Spiros Bousbouras <spibou@gmail.com> - 2018-03-20 01:45 +0000
                Re: Dropping C GOTHIER Nathan <nathan.gothier@gmail.com> - 2018-03-20 03:05 +0100
                Re: Dropping C bartc <bc@freeuk.com> - 2018-03-19 21:09 +0000
                Re: Dropping C Ian Collins <ian-news@hotmail.com> - 2018-03-20 18:26 +1300
                Re: Dropping C bartc <bc@freeuk.com> - 2018-03-20 10:58 +0000
                Re: Dropping C David Brown <david.brown@hesbynett.no> - 2018-03-20 14:22 +0100
                Re: Dropping C scott@slp53.sl.home (Scott Lurndal) - 2018-03-20 13:58 +0000
                Re: Dropping C David Brown <david.brown@hesbynett.no> - 2018-03-20 17:14 +0100
                Re: Dropping C bartc <bc@freeuk.com> - 2018-03-20 16:31 +0000
                Re: Dropping C scott@slp53.sl.home (Scott Lurndal) - 2018-03-20 17:14 +0000
                Re: Dropping C Ian Collins <ian-news@hotmail.com> - 2018-03-21 07:31 +1300
                Re: Dropping C bartc <bc@freeuk.com> - 2018-03-20 18:51 +0000
                Re: Dropping C Ian Collins <ian-news@hotmail.com> - 2018-03-21 08:01 +1300
                Re: Dropping C scott@slp53.sl.home (Scott Lurndal) - 2018-03-20 19:03 +0000
                Re: Dropping C bartc <bc@freeuk.com> - 2018-03-20 19:22 +0000
                Re: Dropping C Ian Collins <ian-news@hotmail.com> - 2018-03-21 08:25 +1300
                Re: Dropping C bartc <bc@freeuk.com> - 2018-03-20 19:33 +0000
                Re: Dropping C Ian Collins <ian-news@hotmail.com> - 2018-03-21 09:34 +1300
                Re: Dropping C scott@slp53.sl.home (Scott Lurndal) - 2018-03-20 19:49 +0000
                Re: Dropping C David Brown <david.brown@hesbynett.no> - 2018-03-21 11:27 +0100
                Re: Dropping C Spiros Bousbouras <spibou@gmail.com> - 2018-03-20 01:27 +0000
                Re: Dropping C GOTHIER Nathan <nathan.gothier@gmail.com> - 2018-03-19 17:03 +0100
                Re: Dropping C David Brown <david.brown@hesbynett.no> - 2018-03-19 23:13 +0100
                Re: Dropping C GOTHIER Nathan <nathan.gothier@gmail.com> - 2018-03-20 00:23 +0100
                Re: Dropping C Spiros Bousbouras <spibou@gmail.com> - 2018-03-20 00:55 +0000
                Re: Dropping C GOTHIER Nathan <nathan.gothier@gmail.com> - 2018-03-20 02:29 +0100
                Re: Dropping C Spiros Bousbouras <spibou@gmail.com> - 2018-03-20 02:04 +0000
                Re: Dropping C GOTHIER Nathan <nathan.gothier@gmail.com> - 2018-03-20 03:31 +0100
                Re: Dropping C jacobnavia <jacob@jacob.remcomp.fr> - 2018-03-21 20:18 +0100
                Re: Dropping C GOTHIER Nathan <nathan.gothier@gmail.com> - 2018-03-21 21:32 +0100
                Re: Dropping C scott@slp53.sl.home (Scott Lurndal) - 2018-03-21 20:52 +0000
                Re: Dropping C supercat@casperkitty.com - 2018-03-21 14:38 -0700
                Re: Dropping C GOTHIER Nathan <nathan.gothier@gmail.com> - 2018-03-21 23:08 +0100
                Re: Dropping C Jorgen Grahn <grahn+nntp@snipabacken.se> - 2018-03-22 13:37 +0000
                Re: Dropping C GOTHIER Nathan <nathan.gothier@gmail.com> - 2018-03-22 15:41 +0100
                Re: Dropping C bartc <bc@freeuk.com> - 2018-03-22 14:58 +0000
                Re: Dropping C GOTHIER Nathan <nathan.gothier@gmail.com> - 2018-03-22 17:37 +0100
                Re: Dropping C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-03-22 17:09 +0000
                Re: Dropping C GOTHIER Nathan <nathan.gothier@gmail.com> - 2018-03-22 18:27 +0100
                Re: Dropping C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-03-22 17:35 +0000
                Re: Dropping C GOTHIER Nathan <nathan.gothier@gmail.com> - 2018-03-22 18:46 +0100
                Re: Dropping C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-03-22 18:22 +0000
                Re: Dropping C GOTHIER Nathan <nathan.gothier@gmail.com> - 2018-03-22 19:38 +0100
                Re: Dropping C jameskuyper@verizon.net - 2018-03-22 12:19 -0700
                Re: Dropping C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-03-22 20:23 +0000
                Re: Dropping C Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2018-03-23 06:10 -0700
                Re: Dropping C David Brown <david.brown@hesbynett.no> - 2018-03-23 14:54 +0100
                Re: Dropping C GOTHIER Nathan <nathan.gothier@gmail.com> - 2018-03-23 16:55 +0100
                Re: Dropping C David Brown <david.brown@hesbynett.no> - 2018-03-23 17:46 +0100
                Re: Dropping C GOTHIER Nathan <nathan.gothier@gmail.com> - 2018-03-24 02:50 +0100
                Re: Dropping C GOTHIER Nathan <nathan.gothier@gmail.com> - 2018-03-24 02:54 +0100
                Re: Dropping C scott@slp53.sl.home (Scott Lurndal) - 2018-03-22 16:43 +0000
                Re: Dropping C Keith Thompson <kst-u@mib.org> - 2018-03-22 10:39 -0700
                Re: Dropping C Robert Wessel <robertwessel2@yahoo.com> - 2018-03-22 11:47 -0500
                Re: Dropping C Steven Petruzzellis <frelwizzen@gmail.com> - 2018-03-24 00:59 -0700
                Re: Dropping C bartc <bc@freeuk.com> - 2018-03-19 15:07 +0000
                Re: Dropping C scott@slp53.sl.home (Scott Lurndal) - 2018-03-19 15:37 +0000
                Re: Dropping C bartc <bc@freeuk.com> - 2018-03-19 17:16 +0000
                Re: Dropping C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-03-19 20:30 +0000
                Re: Dropping C bartc <bc@freeuk.com> - 2018-03-19 21:24 +0000
                Re: Dropping C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-03-19 23:06 +0000
                Re: Dropping C Jorgen Grahn <grahn+nntp@snipabacken.se> - 2018-03-20 14:04 +0000
                Re: Dropping C supercat@casperkitty.com - 2018-03-19 15:32 -0700
                Re: Dropping C Robert Wessel <robertwessel2@yahoo.com> - 2018-03-19 19:03 -0500
                Re: Dropping C Spiros Bousbouras <spibou@gmail.com> - 2018-03-20 02:13 +0000
                Re: Dropping C David Brown <david.brown@hesbynett.no> - 2018-03-20 14:25 +0100
                Re: Dropping C jacobnavia <jacob@jacob.remcomp.fr> - 2018-03-21 18:36 +0100
                Re: Dropping C David Brown <david.brown@hesbynett.no> - 2018-03-19 23:33 +0100
                Re: Dropping C supercat@casperkitty.com - 2018-03-19 16:34 -0700
                Re: Dropping C asetofsymbols@gmail.com - 2018-03-20 00:58 -0700
                Re: Dropping C Steven Petruzzellis <frelwizzen@gmail.com> - 2018-03-20 01:10 -0700
            Re: Dropping C Ian Collins <ian-news@hotmail.com> - 2018-03-19 14:25 +1300
  Re: Dropping C bartc <bc@freeuk.com> - 2018-03-21 12:19 +0000

csiph-web