Sophie

Sophie

distrib > Mageia > 4 > x86_64 > by-pkgid > 134f0a3e6cf3182d61d0f4bdeef756b7 > files > 68

perl-Parse-RecDescent-1.967.9-3.mga4.noarch.rpm

#!/usr/bin/perl -ws

# REMOVE COMMENTS FROM C++ CODE

use strict;
use Parse::RecDescent;

use vars qw/ $Grammar /;

$RD_TRACE=1;
my $parser = new Parse::RecDescent $Grammar  or  die "invalid grammar";

undef $/;
my $text = @ARGV ? <> : <DATA>;

print join " ", @{$parser->program($text) or die "malformed C program"};

BEGIN
{ $Grammar=<<'EOF';

program	: <skip:qr/(\s+|#.*\n)*/> part(s)

part	: /\S+/
EOF
}
__DATA__

Now we find # to our inexpressible joy
That the parser # a cunningly wrought thing
Skips both whitespace # the usual behaviour
# though it be configurable
And comments
#however many there be