MarpaX-Languages-PowerBuilder
view release on metacpan or search on metacpan
},
"configure" : {
"requires" : {
"ExtUtils::MakeMaker" : "0"
}
},
"runtime" : {
"requires" : {
"Data::Dumper" : "0",
"Encode" : "0",
"File::BOM" : "0",
"File::Basename" : "0",
"Marpa::R2" : "0",
"constant" : "0",
"perl" : "5.010000"
}
}
},
"release_status" : "stable",
"version" : "0.01"
}
url: http://module-build.sourceforge.net/META-spec-v1.4.html
version: '1.4'
name: MarpaX-Languages-PowerBuilder
no_index:
directory:
- t
- inc
requires:
Data::Dumper: '0'
Encode: '0'
File::BOM: '0'
File::Basename: '0'
Marpa::R2: '0'
constant: '0'
perl: '5.010000'
version: '0.01'
Makefile.PL view on Meta::CPAN
MIN_PERL_VERSION => 5.10.0,
CONFIGURE_REQUIRES => {
'ExtUtils::MakeMaker' => 0,
},
BUILD_REQUIRES => {
'Test::More' => 0,
},
PREREQ_PM => {
'Marpa::R2' => 0,
'File::Basename' => 0,
'File::BOM' => 0,
'Data::Dumper' => 0, #may be removed
#~ 'unref' => 0, #https://github.com/xlat/unref.git
'Encode' => 0,
'constant' => 0,
},
dist => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', },
clean => { FILES => 'MarpaX-Languages-PowerBuilder-*' },
);
lib/MarpaX/Languages/PowerBuilder/base.pm view on Meta::CPAN
package MarpaX::Languages::PowerBuilder::base;
use strict;
use warnings;
use File::BOM qw(open_bom);
use Encode qw(decode);
use File::Basename qw(dirname basename);
use Marpa::R2;
use Data::Dumper;
our $AUTO_DECODE = 1; #used to auto decode input passed to the parse method
sub slurp{
my $input = shift;
local $/;
open my $IN, '<:via(File::BOM)', $input;
my $data = <$IN>;
close $IN;
$data;
}
sub new{
my $class = shift;
my $self = bless {}, $class;
lib/MarpaX/Languages/PowerBuilder/base.pm view on Meta::CPAN
return $self;
}
sub parse{
my $self = shift;
die "forget to call new() ?" unless ref($self) && $self->can('grammar');
my $input = shift;
my $opts = shift;
#3 ways to pass inputs: glob, file-name, full-string
if(ref $input eq 'GLOB'){
$input = File::BOM::decode_from_bom( do{ local $/=undef; <$input> } );
}
elsif($input!~/\n/ && -f $input){
$input = slurp $input;
}
if($AUTO_DECODE and $input=~/^\s*HA\$/i){
$input = $self->hexascii_decode( $input );
}
my $recce = Marpa::R2::Scanless::R->new({
( run in 0.401 second using v1.01-cache-2.11-cpan-e9daa2b36ef )