I've managed to do the following:
#!/usr/bin/perl # Script to add comments for Natural Doc. http://www.naturaldoc.org use strict; use warnings; use Tie::File; use Data::Dumper; my $file; open $file, "searchfs.c" or die $!; my $data = join("", <$file>); close $file; my $data_with_comment = ""; my $rest = ""; while ( $data =~ /(.*?)\n((?:\w+\*?\*?\s+)+)(\*?\w+\s*)\s*\((.*?)\)(\s +*\{)/gsx ) { $rest = $data; #print $rest; #sleep 4; my $code_before = $1; my $code_after = $5; $data_with_comment .= $code_before; my ( $functype, $funcname, $funcarg ) = ( $2, $3, $4 ); my @funcargs = split /,\s*/, $funcarg; #print "found function def:\n type=$functype\n name=$funcname\n ar +gs="; #print join( "\n ", @funcargs ), "\n"; my $args = join( ", ", @funcargs ); my $args2 = join( "\n * ", @funcargs ); #$data_with_comment .= "\n"; $data_with_comment .= qq{ /* Function: $funcname($args) * * * * Arguments: * $args2 * * Returns: * $functype * */ }; #print join( "\n ", @funcargs ), "\n"; $data_with_comment .= $2 . $3 . "(" . $4 . ")"; $data_with_comment .= $code_after; } print $data_with_comment;
which works nice exept that after the last match, I dont get the rest of the code! Is there a way to save the rest and add it last somehow? Or anything else that solves this?

Thanks,
Ace

In reply to Re: Parsing C Source File Functions. by Ace128
in thread Parsing C Source File Functions. by Ace128

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.