riddle-not-a-not-b-not-c / riddle-not-a-not-b-not-c / process-proto.pl

#!/usr/bin/perl

use strict;
use warnings;

use IO::All;

sub proc
{
    local $_ = shift;
    
    s/\$get->\(\$_\)/\$p[\$_]/;
    s/\$not_def->\(([^\)]+)\)/(!defined(\$p[$1]))/;
    s/\$set->\(([^,]+),([^\)]+)\)/\$p[$1] = $2/;
    s/neg\(([^\)]+)\)/((~($1))&\$limit)/;

    return $_;
}

io->file("not-a-opt.pl")->print(
    map { proc($_) } io->file("not-a-opt-proto.pl")->getlines()
);

=head1 COPYRIGHT & LICENSE

Copyright 2010 Shlomi Fish.

This program is released under the following license: MIT/X11
( L<http://www.opensource.org/licenses/mit-license.php> ).

=cut
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.