in reply to Parsing C Source File Functions.
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?#!/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;
|
---|