http://qs321.pair.com?node_id=568552


in reply to Re: Modify C comment removal code to kill newlines
in thread Modify C comment removal code to kill newlines

Nice try, but on the original example this gives:
void function foo(void) { int i; int j; i = 1; j = 1; i++; j++; }

Replies are listed 'Best First'.
Re^3: Modify C comment removal code to kill newlines
by borisz (Canon) on Aug 21, 2006 at 15:37 UTC
    Ok, try this. It looks perfect to me on UNIX.
    use Regexp::Common qw/comment/; local $/; $_ = <DATA>; s/(^[ \t]*$RE{comment}{C}\n|$RE{comment}{C})//gm; print; __DATA__ /*This is a bogus function*/ void function foo(void) /*My function is the best*/ { int i; /*i is an integer*/ int j; /*j is also an integer*/ /*Now I'm going to set i to 1*/ i = 1; /*Also j*/ j = 1; /*Here's some incrementing!*/ i++; /*And more!*/ j++; /*The end!*/} __OUTPUT__ void function foo(void) { int i; int j; i = 1; j = 1; i++; j++; }
    Boris
      Congratulations, sir! You are a winner! Works perfectly on my horrible convolutedly commented code!