Acme-BOPE

 view release on metacpan or  search on metacpan

lib/Acme/BOPE.pm  view on Meta::CPAN

package Acme::BOPE;

require 5.005_62;
#use strict;
#use warnings;

our $VERSION =  0.01;

#use Exporter;
#
#our @ISA = qw(Exporter);
#our @EXPORT = qw(canta_hino fato);

my @ignoradas = (
  "[dn]?[oa][s]?"       , # o, a, os, as, dos, nos, das, nas, no, na, do, da
  "[nd]?e(?:ss|l)[ae]s?", # ele, ela, dele, dela, desse, dessa nesse, nessa
  "s(?:eu|ua)s?"        , # seu, sua
  "(?:uma?|eu)"         , # uma, eu
  "com"                 ,
  "sem"                 ,
  "porra[?!]*"          ,
  "merda[?!]*"          ,
  "viado[?!]*"          ,
);

#my $ignoradas = join "|", @ignoradas;

use Filter::Simple;

FILTER_ONLY
  all => sub {
  my $package = shift;
  my %par = @_;
  
  if ( $par{'DEBUG'} ) {
    filter($_);
    Perl::Tidy::perltidy(source => \$_, destination => \$_)
        if eval "require Perl::Tidy";
    print;
  }
#  my $DEBUG = $par{DEBUG} if $par{DEBUG};
#  return unless $DEBUG;
#  filter($_);
#  Perl::Tidy::perltidy(source => \$_, destination => \$_)
#   if eval "require Perl::Tidy";
#  print if $DEBUG;
#  exit;
},
  code_no_comments  => \&filter;
sub filter {

  $_ = "\$senhor = \$\$_;$/" . $_;
  $_ = "\$| = 1;$/" . $_;
  s#pelot[ãa]o, cantar hino#print Acme::BOPE::canta_hino#gi;
  s#Capit[ãa]o Nascimento#print Acme::BOPE::fato#gi; # mudar por frase legal

  s{\b(?:naum|não|nao|nunca|jamais)\s+(?:ser(?:á|ão)|é|eh)\b}{ne}gi;
  s{\b(?:naum|não|nao|nunca|jamais)\b}{not}gi;
  s{\bser(?:á|ão|a|ah|ao)\b}{eq}gi;
  s{\b(?:é|eh)\b}{=}gi;
  s{\bfor\b}{eq}gi;

  s{\bvale(?:rá)?\b}{==}gi;

  s{\bvai pra guerra\b}{system}gi;

  s#\bse\s+(.*?)\s+ent[ãa]o\b#if($1){\n#gi;
  s#\bent[ãa]o\b#\{#gi;
  s#\bfaz isso aqui[:]?\b#\{#gi;
  s#\bsen[ãa]o\b#}else{\n#gi;
  s#\bestamos entendidos[?!]*\b#}#gi;
  s#\bos? senhor(?:es)? est(?:[aã]o|[aá]) fazendo (?:o )?seu instrutor muito feliz(?:...)#}#gi;
  s{\bfala(?: agora)?[!:]*}{print}gi;
  s{\bgrita[!:]*\b}{print}gi;
  s{\bvai dar merda,?}{warn}gi;
  s{
    \b(?:v(?:ou|ai)\s+)?gritar\s+(?:em|n[oa]|ao?) (.*?):
   }
   {
    (my $file = $1) =~ s/\W/_/g;
    $file =~ s/^_+|_+$//g;
    my $fh = uc $file;
    "open $fh, \">>$file\";
     print \{$fh\}"
   }giex;

  s{\bchega[!]*\b}{last}gi;
  s{\bpára[!]*\b}{last}gi;

  s#\bpara\s+(.*?)\s+(?:ent[aã]o|,)fa[cç]a\b#for($1){#gi;
  s#\benquanto\s+(.*?)\s*,#while($1){\n#gi;

  s{\bfati(?:a|ou)\b}{split}gi;
  s{\bpass(?:a|ou)\b}{next}gi;

  s{\bpede pra sair\b}{die}gi;
  s{\b(?:eu )?desisto\b}{exit}gi;
  s{\bdesistiu\b}{= undef}gi;
  s{\bbota na conta do papa\b}{exit}gi;

  s{\be\b}{and}gi;
  s{\b(?:ent[ãa]o\s+)?senta o dedo nessa porra\b}{print "Caveira meu capitao!"}gi;
 
  # variaveis
  no warnings;



( run in 2.096 seconds using v1.01-cache-2.11-cpan-98e64b0badf )