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


Groups > comp.lang.c > #128143

Re: Dropping C

From Ben Bacarisse <ben.usenet@bsb.me.uk>
Newsgroups comp.lang.c
Subject Re: Dropping C
Date 2018-03-21 12:13 +0000
Organization A noiseless patient Spider
Message-ID <87vadptynn.fsf@bsb.me.uk> (permalink)
References (14 earlier) <fhagsnF5omlU2@mid.individual.net> <MlVrC.26148$qo7.8063@fx04.am4> <44po3zvi7h.fsf@be-well.ilk.org> <DFWrC.41550$0g.34346@fx06.am4> <p8svjm$g45$1@dont-email.me>

Show all headers | View raw


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:

  int (f(int x)) { return x; }
  int g(x) int x; { return x; }

and this

 int *p = (int[]){0};

will result in a false positive.

In addition to the complication caused by macros (at the very least they
can mess up the brace count) you have things like this to contend with:
  
  int h(int x) { return x; %>
  int i(int x) ??< return x; }

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.

-- 
Ben.

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