The Perl and Raku Conference 2025: Greenville, South Carolina - June 27-29 Learn more
|
#!/usr/bin/perl
use 5.010;
BEGIN {
$SIG {__WARN__} = sub { };
};
local $SIG {__WARN__} = sub { print STDERR @_ };
my $parser = qr{
<[main]>*
<rule: main>
<obj> ((?:\.|\s*)<[method]>)* ;*
<rule: obj>
"([^"\\]+|\\.)*"
| \d+(?:\.\d+)?
| \{ <[main]> \}
<rule: args>
\(<[obj]>(?:,<[obj]>)*\)
<rule: name>
( say | print | sort )
<rule: method>
<name> <args>?
}xms;
my $text = <<'CODE';
"hello".sort("test", "here").print;
{
"sidef" say;
}
CODE
if ( $text =~ $parser ) {
pp \%/;
}
|