Start 2008-07-21T06:05:46
Going to read /home/cpanfly/var/cpan/Metadata
Database was generated on Mon, 21 Jul 2008 10:02:47 GMT
Running make for F/FG/FGLOCK/Pugs-Compiler-Rule-0.32.tar.gz
Checksum for /net/nas/data/cpan/authors/id/F/FG/FGLOCK/Pugs-Compiler-Rule-0.32.tar.gz ok
Pugs-Compiler-Rule-0.32/
Pugs-Compiler-Rule-0.32/Changes
Pugs-Compiler-Rule-0.32/examples/
Pugs-Compiler-Rule-0.32/examples/adder.grammar
Pugs-Compiler-Rule-0.32/examples/adder.input
Pugs-Compiler-Rule-0.32/examples/digits.grammar
Pugs-Compiler-Rule-0.32/examples/digits.input
Pugs-Compiler-Rule-0.32/examples/Grammar.grammar
Pugs-Compiler-Rule-0.32/examples/grammar.input
Pugs-Compiler-Rule-0.32/examples/langs.grammar
Pugs-Compiler-Rule-0.32/examples/langs.input
Pugs-Compiler-Rule-0.32/examples/langs2.grammar
Pugs-Compiler-Rule-0.32/inc/
Pugs-Compiler-Rule-0.32/inc/Module/
Pugs-Compiler-Rule-0.32/inc/Module/Install/
Pugs-Compiler-Rule-0.32/inc/Module/Install/Base.pm
Pugs-Compiler-Rule-0.32/inc/Module/Install/Can.pm
Pugs-Compiler-Rule-0.32/inc/Module/Install/Fetch.pm
Pugs-Compiler-Rule-0.32/inc/Module/Install/Include.pm
Pugs-Compiler-Rule-0.32/inc/Module/Install/Makefile.pm
Pugs-Compiler-Rule-0.32/inc/Module/Install/Metadata.pm
Pugs-Compiler-Rule-0.32/inc/Module/Install/Scripts.pm
Pugs-Compiler-Rule-0.32/inc/Module/Install/TestBase.pm
Pugs-Compiler-Rule-0.32/inc/Module/Install/Win32.pm
Pugs-Compiler-Rule-0.32/inc/Module/Install/WriteAll.pm
Pugs-Compiler-Rule-0.32/inc/Module/Install.pm
Pugs-Compiler-Rule-0.32/inc/Spiffy.pm
Pugs-Compiler-Rule-0.32/inc/Test/
Pugs-Compiler-Rule-0.32/inc/Test/Base/
Pugs-Compiler-Rule-0.32/inc/Test/Base/Filter.pm
Pugs-Compiler-Rule-0.32/inc/Test/Base.pm
Pugs-Compiler-Rule-0.32/inc/Test/Builder/
Pugs-Compiler-Rule-0.32/inc/Test/Builder/Module.pm
Pugs-Compiler-Rule-0.32/inc/Test/Builder.pm
Pugs-Compiler-Rule-0.32/inc/Test/More.pm
Pugs-Compiler-Rule-0.32/lib/
Pugs-Compiler-Rule-0.32/lib/Pugs/
Pugs-Compiler-Rule-0.32/lib/Pugs/AST/
Pugs-Compiler-Rule-0.32/lib/Pugs/AST/Expression.pm
Pugs-Compiler-Rule-0.32/lib/Pugs/Compiler/
Pugs-Compiler-Rule-0.32/lib/Pugs/Compiler/Grammar.pm
Pugs-Compiler-Rule-0.32/lib/Pugs/Compiler/Regex.pm
Pugs-Compiler-Rule-0.32/lib/Pugs/Compiler/RegexPerl5.pm
Pugs-Compiler-Rule-0.32/lib/Pugs/Compiler/Rule.pm
Pugs-Compiler-Rule-0.32/lib/Pugs/Compiler/Token.pm
Pugs-Compiler-Rule-0.32/lib/Pugs/Emitter/
Pugs-Compiler-Rule-0.32/lib/Pugs/Emitter/Grammar/
Pugs-Compiler-Rule-0.32/lib/Pugs/Emitter/Grammar/Perl5.pm
Pugs-Compiler-Rule-0.32/lib/Pugs/Emitter/Rule/
Pugs-Compiler-Rule-0.32/lib/Pugs/Emitter/Rule/Parsec.pm
Pugs-Compiler-Rule-0.32/lib/Pugs/Emitter/Rule/Perl5/
Pugs-Compiler-Rule-0.32/lib/Pugs/Emitter/Rule/Perl5/._CharClass.pm
Pugs-Compiler-Rule-0.32/lib/Pugs/Emitter/Rule/Perl5/CharClass.pm
Pugs-Compiler-Rule-0.32/lib/Pugs/Emitter/Rule/Perl5/Ratchet.pm
Pugs-Compiler-Rule-0.32/lib/Pugs/Emitter/Rule/Perl5/Regex.pm
Pugs-Compiler-Rule-0.32/lib/Pugs/Emitter/Rule/._Perl5.pm
Pugs-Compiler-Rule-0.32/lib/Pugs/Emitter/Rule/Perl5.pm
Pugs-Compiler-Rule-0.32/lib/Pugs/Emitter/Rule/Perl6/
Pugs-Compiler-Rule-0.32/lib/Pugs/Emitter/Rule/Perl6/Ratchet.pm
Pugs-Compiler-Rule-0.32/lib/Pugs/Grammar/
Pugs-Compiler-Rule-0.32/lib/Pugs/Grammar/Base.pm
Pugs-Compiler-Rule-0.32/lib/Pugs/Grammar/Precedence.pm
Pugs-Compiler-Rule-0.32/lib/Pugs/Grammar/Rule.pm
Pugs-Compiler-Rule-0.32/lib/Pugs/Grammar/Rule.pmc
Pugs-Compiler-Rule-0.32/lib/Pugs/Grammar/Rule2.pm
Pugs-Compiler-Rule-0.32/lib/Pugs/Grammar/RulePure.pm
Pugs-Compiler-Rule-0.32/lib/Pugs/Runtime/
Pugs-Compiler-Rule-0.32/lib/Pugs/Runtime/Common.pm
Pugs-Compiler-Rule-0.32/lib/Pugs/Runtime/Match/
Pugs-Compiler-Rule-0.32/lib/Pugs/Runtime/Match/HsBridge.pm
Pugs-Compiler-Rule-0.32/lib/Pugs/Runtime/Match.pm
Pugs-Compiler-Rule-0.32/lib/Pugs/Runtime/Regex.pm
Pugs-Compiler-Rule-0.32/lib/Pugs/Runtime/Rule.pm
Pugs-Compiler-Rule-0.32/lib/Pugs/Runtime/StrPos.pm
Pugs-Compiler-Rule-0.32/lib/Pugs/Runtime/Tracer.pm
Pugs-Compiler-Rule-0.32/Makefile.PL
Pugs-Compiler-Rule-0.32/MANIFEST
Pugs-Compiler-Rule-0.32/MANIFEST.SKIP
Pugs-Compiler-Rule-0.32/META.yml
Pugs-Compiler-Rule-0.32/README
Pugs-Compiler-Rule-0.32/t/
Pugs-Compiler-Rule-0.32/t/00-pod-coverage.t
Pugs-Compiler-Rule-0.32/t/00-pod.t
Pugs-Compiler-Rule-0.32/t/01-iterator_engine.t
Pugs-Compiler-Rule-0.32/t/02-grammar.t
Pugs-Compiler-Rule-0.32/t/03-match.t
Pugs-Compiler-Rule-0.32/t/04-compiler-grammar.t
Pugs-Compiler-Rule-0.32/t/04-compiler-regex.t
Pugs-Compiler-Rule-0.32/t/04-compiler-rule.t
Pugs-Compiler-Rule-0.32/t/04-rule.t
Pugs-Compiler-Rule-0.32/t/05-var.t
Pugs-Compiler-Rule-0.32/t/06-subrule.t
Pugs-Compiler-Rule-0.32/t/08-hash.t
Pugs-Compiler-Rule-0.32/t/09-ratchet.t
Pugs-Compiler-Rule-0.32/t/10-regex_perl5.t
Pugs-Compiler-Rule-0.32/t/11-parsec.t
Pugs-Compiler-Rule-0.32/t/11-quantifier.t
Pugs-Compiler-Rule-0.32/t/12-plain_regex.t
Pugs-Compiler-Rule-0.32/t/13-char_classes.t
Pugs-Compiler-Rule-0.32/t/14-mini_perl6.t
Pugs-Compiler-Rule-0.32/t/15-STD.t
Pugs-Compiler-Rule-0.32/t/16-examples.t
Pugs-Compiler-Rule-0.32/t/16-safemode.t
Pugs-Compiler-Rule-0.32/t/16-tracer-examples.t
Pugs-Compiler-Rule-0.32/t/17-tracer.t
Pugs-Compiler-Rule-0.32/t/ast/
Pugs-Compiler-Rule-0.32/t/ast/00-basic.t
Pugs-Compiler-Rule-0.32/t/declare/
Pugs-Compiler-Rule-0.32/t/declare/00-demo.t
Pugs-Compiler-Rule-0.32/t/declare/01-sigspace.t
Pugs-Compiler-Rule-0.32/t/emitter/
Pugs-Compiler-Rule-0.32/t/emitter/00-ratchet.t
Pugs-Compiler-Rule-0.32/t/lib/
Pugs-Compiler-Rule-0.32/t/lib/AST.pm
Pugs-Compiler-Rule-0.32/t/lib/Emitter.pm
Pugs-Compiler-Rule-0.32/t/lib/Regex.pm
Pugs-Compiler-Rule-0.32/t/lib/Util.pm
Pugs-Compiler-Rule-0.32/TODO
Pugs-Compiler-Rule-0.32/tracer/
Pugs-Compiler-Rule-0.32/tracer/jquery.js
Pugs-Compiler-Rule-0.32/tracer/tracer.js
Pugs-Compiler-Rule-0.32/util/
Pugs-Compiler-Rule-0.32/util/compile_p6grammar.pl
Pugs-Compiler-Rule-0.32/util/gen-tracer-view.pl
Pugs-Compiler-Rule-0.32/util/patch-rule-pmc.pl
Pugs-Compiler-Rule-0.32/util/update-rule-pmc
Pugs-Compiler-Rule-0.32/util/update-rule-pmc-obsolete
Pugs-Compiler-Rule-0.32/util/update-tracer-demos
CPAN.pm: Going to build F/FG/FGLOCK/Pugs-Compiler-Rule-0.32.tar.gz
>>> /home/cpanfly/ap1003/bin/perl-static Makefile.PL
In releng mode...
Checking if your kit is complete...
Looks good
Writing Makefile for Pugs::Compiler::Rule
>>> make
cp lib/Pugs/Emitter/Rule/Parsec.pm blib/lib/Pugs/Emitter/Rule/Parsec.pm
cp lib/Pugs/Grammar/Rule2.pm blib/lib/Pugs/Grammar/Rule2.pm
cp lib/Pugs/Runtime/Match.pm blib/lib/Pugs/Runtime/Match.pm
cp lib/Pugs/Compiler/Rule.pm blib/lib/Pugs/Compiler/Rule.pm
cp lib/Pugs/Emitter/Rule/Perl5/CharClass.pm blib/lib/Pugs/Emitter/Rule/Perl5/CharClass.pm
cp lib/Pugs/Grammar/Rule.pm blib/lib/Pugs/Grammar/Rule.pm
cp lib/Pugs/Emitter/Rule/Perl5.pm blib/lib/Pugs/Emitter/Rule/Perl5.pm
cp lib/Pugs/Grammar/Precedence.pm blib/lib/Pugs/Grammar/Precedence.pm
cp lib/Pugs/Emitter/Rule/Perl5/Regex.pm blib/lib/Pugs/Emitter/Rule/Perl5/Regex.pm
cp lib/Pugs/Emitter/Grammar/Perl5.pm blib/lib/Pugs/Emitter/Grammar/Perl5.pm
cp lib/Pugs/Runtime/Rule.pm blib/lib/Pugs/Runtime/Rule.pm
cp lib/Pugs/Grammar/Base.pm blib/lib/Pugs/Grammar/Base.pm
cp lib/Pugs/Compiler/Grammar.pm blib/lib/Pugs/Compiler/Grammar.pm
cp lib/Pugs/Emitter/Rule/Perl5/._CharClass.pm blib/lib/Pugs/Emitter/Rule/Perl5/._CharClass.pm
cp lib/Pugs/Emitter/Rule/Perl5/Ratchet.pm blib/lib/Pugs/Emitter/Rule/Perl5/Ratchet.pm
cp lib/Pugs/Compiler/Regex.pm blib/lib/Pugs/Compiler/Regex.pm
cp lib/Pugs/Runtime/StrPos.pm blib/lib/Pugs/Runtime/StrPos.pm
cp lib/Pugs/Runtime/Match/HsBridge.pm blib/lib/Pugs/Runtime/Match/HsBridge.pm
cp lib/Pugs/Runtime/Common.pm blib/lib/Pugs/Runtime/Common.pm
cp lib/Pugs/AST/Expression.pm blib/lib/Pugs/AST/Expression.pm
cp lib/Pugs/Runtime/Tracer.pm blib/lib/Pugs/Runtime/Tracer.pm
cp lib/Pugs/Emitter/Rule/._Perl5.pm blib/lib/Pugs/Emitter/Rule/._Perl5.pm
cp lib/Pugs/Runtime/Regex.pm blib/lib/Pugs/Runtime/Regex.pm
cp lib/Pugs/Grammar/Rule.pmc blib/lib/Pugs/Grammar/Rule.pmc
cp lib/Pugs/Emitter/Rule/Perl6/Ratchet.pm blib/lib/Pugs/Emitter/Rule/Perl6/Ratchet.pm
cp lib/Pugs/Compiler/Token.pm blib/lib/Pugs/Compiler/Token.pm
cp lib/Pugs/Grammar/RulePure.pm blib/lib/Pugs/Grammar/RulePure.pm
cp lib/Pugs/Compiler/RegexPerl5.pm blib/lib/Pugs/Compiler/RegexPerl5.pm
cp util/compile_p6grammar.pl blib/script/compile_p6grammar.pl
/home/cpanfly/ap1003/bin/perl-static -Iinc "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/compile_p6grammar.pl
Manifying blib/man1/compile_p6grammar.pl.1
Manifying blib/man3/Pugs::Runtime::Match.3
Manifying blib/man3/Pugs::Runtime::StrPos.3
Manifying blib/man3/Pugs::Compiler::Regex.3
Manifying blib/man3/Pugs::Compiler::Rule.3
Manifying blib/man3/Pugs::Runtime::Tracer.3
Manifying blib/man3/Pugs::Grammar::Precedence.3
Manifying blib/man3/Pugs::Runtime::Regex.3
Manifying blib/man3/Pugs::Emitter::Grammar::Perl5.3
Manifying blib/man3/Pugs::Compiler::Token.3
Manifying blib/man3/Pugs::Compiler::Grammar.3
Manifying blib/man3/Pugs::Compiler::RegexPerl5.3
FGLOCK/Pugs-Compiler-Rule-0.32.tar.gz
make -- OK
Running make test
>>> make test TEST_VERBOSE=1
PERL_DL_NONLAZY=1 /home/cpanfly/ap1003/bin/perl-static "-MExtUtils::Command::MM" "-e" "test_harness(1, 'inc', 'blib/lib', 'blib/arch')" t/*.t t/*/*.t
t/00-pod-coverage........
1..0 # Skip We know we don't have enough POD :(
skipped: We know we don't have enough POD :(
t/00-pod.................
1..28
ok 1 - blib/script/compile_p6grammar.pl
ok 2 - blib/lib/Pugs/AST/Expression.pm
ok 3 - blib/lib/Pugs/Compiler/RegexPerl5.pm
ok 4 - blib/lib/Pugs/Compiler/Token.pm
ok 5 - blib/lib/Pugs/Compiler/Grammar.pm
ok 6 - blib/lib/Pugs/Compiler/Rule.pm
ok 7 - blib/lib/Pugs/Compiler/Regex.pm
ok 8 - blib/lib/Pugs/Runtime/Match.pm
ok 9 - blib/lib/Pugs/Runtime/StrPos.pm
ok 10 - blib/lib/Pugs/Runtime/Tracer.pm
ok 11 - blib/lib/Pugs/Runtime/Rule.pm
ok 12 - blib/lib/Pugs/Runtime/Regex.pm
ok 13 - blib/lib/Pugs/Runtime/Common.pm
ok 14 - blib/lib/Pugs/Grammar/Base.pm
ok 15 - blib/lib/Pugs/Grammar/Rule2.pm
ok 16 - blib/lib/Pugs/Grammar/Rule.pm
ok 17 - blib/lib/Pugs/Grammar/RulePure.pm
ok 18 - blib/lib/Pugs/Grammar/Precedence.pm
ok 19 - blib/lib/Pugs/Emitter/Rule/Perl5.pm
ok 20 - blib/lib/Pugs/Emitter/Rule/._Perl5.pm
ok 21 - blib/lib/Pugs/Emitter/Rule/Parsec.pm
ok 22 - blib/lib/Pugs/Emitter/Grammar/Perl5.pm
ok 23 - blib/lib/Pugs/Runtime/Match/HsBridge.pm
ok 24 - blib/lib/Pugs/Emitter/Rule/Perl5/Ratchet.pm
ok 25 - blib/lib/Pugs/Emitter/Rule/Perl5/Regex.pm
ok 26 - blib/lib/Pugs/Emitter/Rule/Perl5/._CharClass.pm
ok 27 - blib/lib/Pugs/Emitter/Rule/Perl5/CharClass.pm
ok 28 - blib/lib/Pugs/Emitter/Rule/Perl6/Ratchet.pm
ok
t/01-iterator_engine.....
1..58
ok 1 - use Pugs::Runtime::Regex;
ok 2 - a =~ /a/ \#1
ok 3 - tail is ok
ok 4 - c =~ /a/ \#2
ok 5 - anchored match
ok 6 - /[a|c]+?/ \#1
ok 7 - tail is ok
ok 8 - /[a|c]+?/ \#2
ok 9 - tail is ok
ok 10 - /[a|c]+?/ \#3
ok 11 - tail is ok
ok 12 - /[a|ab]/ multi-match continuation state \#0
ok 13 - /[a|ab]/ multi-match continuation state \#1
ok 14 - /[a|ab][b|bb]/ continuation state \#0
ok 15 - state \#1
ok 16 - state \#2
ok 17 - state \#3
ok 18 - rule 'a*' is a coderef
ok 19 - /a*/
ok 20
ok 21 - /a*/
ok 22
ok 23 - matches 0 occurrences
ok 24 - /a+/
ok 25
ok 26 - rejects unmatching text
ok 27 - /a**{3..*}/
ok 28 - /a**{3..*}/
ok 29 - rejects unmatching text
ok 30 - /[a|c]+ab/ with backtracking
ok 31 - all the chars accepted
ok 32 - /[a|c]+?/
ok 33 - tail is ok
ok 34
ok 35
ok 36 - /[a|c]+?cb/ with backtracking
ok 37
ok 38
ok 39 - /a[|a]?/ \#1
ok 40
ok 41 - /a[|a]?/ \#2
ok 42
ok 43 - /a[|a]?/ \#3
ok 44
ok 45 - /a[|a]*/ \#1
ok 46
ok 47 - /a[|a]*/ \#2
ok 48
ok 49 - /a[|a]*/ \#3
ok 50
ok 51 - /[a|c]**{2..4}?cb/ with backtracking
ok 52 - /[a|c]**{2..4}?cb/ with range
ok 53 - a**{2..2}cb
ok 54 - c**{2..2}cb
ok 55 - [a|c]**{3..3}cb
ok 56 - /[a|c]**{1..2}?cb/ with bad range fails
ok 57 - /[a|c]**{5..7}?cb/ with bad range fails
ok 58 - empty concat
ok
t/02-grammar.............
1..1
ok 1 - use Pugs::Grammar::Rule;
ok
t/03-match...............
1..54
ok 1 - use Pugs::Compiler::Regex;
ok 2 - use Pugs::Grammar::Base;
ok 3 - boolean true
ok 4 - stringify 1
ok 5 - stringify 2
ok 6 - stringify 4
ok 7 - stringify 5
ok 8 - stringify 6
ok 9 - stringify 7
ok 10 - stringify 1
ok 11 - stringify 1
ok 12 - stringify 1
ok 13 - stringify 1
ok 14 - stringify 2
ok 15 - stringify 3
ok 16
ok 17 - stringify 1
ok 18 - stringify 2
ok 19 - stringify 3
ok 20 - return match 1
ok 21 - return match 2
ok 22 - return match 3
ok 23 - return match 4
ok 24 - concat stringify
ok 25 - two few chars
ok 26 - true match
ok 27 - pretended we matched "bar"
ok 28 - true match
ok 29 - returns correct struct
ok 30 - true match
ok 31 - returns correct struct
ok 32 - true match
ok 33 - returns correct struct
ok 34 - return match
ok 35 - stringify
ok 36 - hashify
ok 37 - hashify
ok 38 - numify
ok 39 - boolean true
ok 40 - match->from
ok 41 - match->to
ok 42 - boolean true (non-anchored match)
ok 43 - match->from
ok 44 - match->to
ok 45 - boolean false
ok 46 - use Pugs::Compiler::Rule;
ok 47 - use Pugs::Runtime::Match;
ok 48 - boolean true
ok 49 - match->from
ok 50 - match->to
ok 51 - boolean true (non-anchored match)
ok 52 - match->from
ok 53 - match->to
ok 54 - boolean false
ok
t/04-compiler-grammar....
ok 1 - obj ok
ok 2 - The object isa Pugs::Compiler::Grammar
ok 3 - p5 code okay
ok 4 - no error while eval
ok 5 - matched
ok 6 - capture okay
ok 7 - capture okay
ok 8
ok 9 - The object isa Pugs::Compiler::Grammar
ok 10 - p5 code okay
grammar: // package MyLang;
use base 'Pugs::Grammar::Base';
use Pugs::Runtime::Match;
use Pugs::Runtime::Regex;
use Pugs::Runtime::Tracer ();
# token def
*def =
##
## sigspace: 0
## ratchet: 1
do { my $rule; $rule = sub {
my $grammar = $_[0];
my $s = $_[1];
$_[3] = $_[2] unless defined $_[3]; # backwards compat
no warnings 'substr', 'uninitialized', 'syntax';
my %pad;
my $m;
my $bool;
my @pos;
# XXX :pos(X) takes the precedence over :continue ?
if (defined $_[3]{p}) {
push @pos, $_[3]{p} || 0;
} elsif ($_[3]{continue}) {
push @pos, (pos($_[1]) || 0) .. length($s);
} else {
push @pos, 0..length($s);
}
for my $pos ( @pos ) {
my %index;
my @match;
my %named;
$bool = 1;
$named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};
$m = Pugs::Runtime::Match->new( {
str => \$s, from => \(0+$pos), to => \($pos),
bool => \$bool, match => \@match, named => \%named, capture => undef,
} );
{
my $prior = $::_V6_PRIOR_;
local $::_V6_PRIOR_ = $prior;
$bool = 0 unless
##
## pos: 32 67
(
##
## pos: 32 39
( ( $pad{I1736} = $pos or 1 ) &&
##
## pos: 32 38
do {
my $prior = $::_V6_PRIOR_;
my $match =
$grammar->type( $s, { p => $pos, positionals => [ ], args => {}, }, undef );
$::_V6_PRIOR_ = $prior;
if ( $match ) { $named{'type'} = $match;
$pos = $match->to;
1
}
else { 0 }
}
##
|| ( ( $pos = $pad{I1736} ) && 0 ) )
##
&&
##
## pos: 39 45
( ( $pad{I1737} = $pos or 1 ) &&
##
## pos: 39 44
do {
my $prior = $::_V6_PRIOR_;
my $match =
$grammar->ws( $s, { p => $pos, positionals => [ ], args => {}, }, undef );
$::_V6_PRIOR_ = $prior;
my $bool = (!$match != 1);
$pos = $match->to if $bool;
$match;
}
##
|| ( ( $pos = $pad{I1737} ) && 0 ) )
##
&&
##
## pos: 45 56
( ( $pad{I1738} = $pos or 1 ) &&
##
## pos: 45 55
do {
my $prior = $::_V6_PRIOR_;
my $match =
$grammar->var_list( $s, { p => $pos, positionals => [ ], args => {}, }, undef );
$::_V6_PRIOR_ = $prior;
if ( $match ) { $named{'var_list'} = $match;
$pos = $match->to;
1
}
else { 0 }
}
##
|| ( ( $pos = $pad{I1738} ) && 0 ) )
##
&&
##
## pos: 56 63
(
( ( $pad{I1739} = $pos or 1 ) &&
##
## pos: 56 61
do {
my $prior = $::_V6_PRIOR_;
my $match =
$grammar->ws( $s, { p => $pos, positionals => [ ], args => {}, }, undef );
$::_V6_PRIOR_ = $prior;
my $bool = (!$match != 1);
$pos = $match->to if $bool;
$match;
}
##
|| ( ( $pos = $pad{I1739} ) && 0 ) )
|| ( $bool = 1 )
)
##
&&
##
## pos: 63 67
( ( $pad{I1740} = $pos or 1 ) &&
##
## pos: 63 66
( ( substr( $s, $pos, 1 ) eq ';' )
? ( $pos += 1 or 1 )
: 0
)
##
|| ( ( $pos = $pad{I1740} ) && 0 ) )
##
)
##
;
}
if ( $bool ) {
my $prior = $::_V6_PRIOR_;
$::_V6_PRIOR_ = sub {
local $main::_V6_PRIOR_ = $prior;
$rule->(@_);
};
#warn "pos2 = ", $pos, "\n";
pos($_[1]) = $pos if $_[3]{continue};
last;
}
} # /for
$::_V6_MATCH_ = $m;
return $m;
} }
##
;
# token type
*type =
##
## sigspace: 0
## ratchet: 1
do { my $rule; $rule = sub {
my $grammar = $_[0];
my $s = $_[1];
$_[3] = $_[2] unless defined $_[3]; # backwards compat
no warnings 'substr', 'uninitialized', 'syntax';
my %pad;
my $m;
my $bool;
my @pos;
# XXX :pos(X) takes the precedence over :continue ?
if (defined $_[3]{p}) {
push @pos, $_[3]{p} || 0;
} elsif ($_[3]{continue}) {
push @pos, (pos($_[1]) || 0) .. length($s);
} else {
push @pos, 0..length($s);
}
for my $pos ( @pos ) {
my %index;
my @match;
my %named;
$bool = 1;
$named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};
$m = Pugs::Runtime::Match->new( {
str => \$s, from => \(0+$pos), to => \($pos),
bool => \$bool, match => \@match, named => \%named, capture => undef,
} );
{
my $prior = $::_V6_PRIOR_;
local $::_V6_PRIOR_ = $prior;
$bool = 0 unless
##
## pos: 82 110
(
( $pad{I1741} = $pos or 1 )
&& (
##
## pos: 82 86
(
##
## pos: 82 83
( ( substr( $s, $pos, 1 ) eq 'i' )
? ( $pos += 1 or 1 )
: 0
)
##
&&
##
## pos: 83 84
( ( substr( $s, $pos, 1 ) eq 'n' )
? ( $pos += 1 or 1 )
: 0
)
##
&&
##
## pos: 84 86
( ( $pad{I1742} = $pos or 1 ) &&
##
## pos: 84 85
( ( substr( $s, $pos, 1 ) eq 't' )
? ( $pos += 1 or 1 )
: 0
)
##
|| ( ( $pos = $pad{I1742} ) && 0 ) )
##
)
##
)
|| (
( ( $bool = 1 ) && ( $pos = $pad{I1741} ) or 1 )
&& ##
## pos: 87 94
(
##
## pos: 87 89
( ( $pad{I1743} = $pos or 1 ) &&
##
## pos: 88 89
( ( substr( $s, $pos, 1 ) eq 'f' )
? ( $pos += 1 or 1 )
: 0
)
##
|| ( ( $pos = $pad{I1743} ) && 0 ) )
##
&&
##
## pos: 89 90
( ( substr( $s, $pos, 1 ) eq 'l' )
? ( $pos += 1 or 1 )
: 0
)
##
&&
##
## pos: 90 91
( ( substr( $s, $pos, 1 ) eq 'o' )
? ( $pos += 1 or 1 )
: 0
)
##
&&
##
## pos: 91 92
( ( substr( $s, $pos, 1 ) eq 'a' )
? ( $pos += 1 or 1 )
: 0
)
##
&&
##
## pos: 92 94
( ( $pad{I1744} = $pos or 1 ) &&
##
## pos: 92 93
( ( substr( $s, $pos, 1 ) eq 't' )
? ( $pos += 1 or 1 )
: 0
)
##
|| ( ( $pos = $pad{I1744} ) && 0 ) )
##
)
##
)
|| (
( ( $bool = 1 ) && ( $pos = $pad{I1741} ) or 1 )
&& ##
## pos: 95 103
(
##
## pos: 95 97
( ( $pad{I1745} = $pos or 1 ) &&
##
## pos: 96 97
( ( substr( $s, $pos, 1 ) eq 'd' )
? ( $pos += 1 or 1 )
: 0
)
##
|| ( ( $pos = $pad{I1745} ) && 0 ) )
##
&&
##
## pos: 97 98
( ( substr( $s, $pos, 1 ) eq 'o' )
? ( $pos += 1 or 1 )
: 0
)
##
&&
##
## pos: 98 99
( ( substr( $s, $pos, 1 ) eq 'u' )
? ( $pos += 1 or 1 )
: 0
)
##
&&
##
## pos: 99 100
( ( substr( $s, $pos, 1 ) eq 'b' )
? ( $pos += 1 or 1 )
: 0
)
##
&&
##
## pos: 100 101
( ( substr( $s, $pos, 1 ) eq 'l' )
? ( $pos += 1 or 1 )
: 0
)
##
&&
##
## pos: 101 103
( ( $pad{I1746} = $pos or 1 ) &&
##
## pos: 101 102
( ( substr( $s, $pos, 1 ) eq 'e' )
? ( $pos += 1 or 1 )
: 0
)
##
|| ( ( $pos = $pad{I1746} ) && 0 ) )
##
)
##
)
|| (
( ( $bool = 1 ) && ( $pos = $pad{I1741} ) or 1 )
&& ##
## pos: 104 110
(
##
## pos: 104 106
( ( $pad{I1747} = $pos or 1 ) &&
##
## pos: 105 106
( ( substr( $s, $pos, 1 ) eq 'c' )
? ( $pos += 1 or 1 )
: 0
)
##
|| ( ( $pos = $pad{I1747} ) && 0 ) )
##
&&
##
## pos: 106 107
( ( substr( $s, $pos, 1 ) eq 'h' )
? ( $pos += 1 or 1 )
: 0
)
##
&&
##
## pos: 107 108
( ( substr( $s, $pos, 1 ) eq 'a' )
? ( $pos += 1 or 1 )
: 0
)
##
&&
##
## pos: 108 110
( ( $pad{I1748} = $pos or 1 ) &&
##
## pos: 108 109
( ( substr( $s, $pos, 1 ) eq 'r' )
? ( $pos += 1 or 1 )
: 0
)
##
|| ( ( $pos = $pad{I1748} ) && 0 ) )
##
)
##
)
)
##
;
}
if ( $bool ) {
my $prior = $::_V6_PRIOR_;
$::_V6_PRIOR_ = sub {
local $main::_V6_PRIOR_ = $prior;
$rule->(@_);
};
#warn "pos2 = ", $pos, "\n";
pos($_[1]) = $pos if $_[3]{continue};
last;
}
} # /for
$::_V6_MATCH_ = $m;
return $m;
} }
##
;
# token var_list
*var_list =
##
## sigspace: 0
## ratchet: 1
do { my $rule; $rule = sub {
my $grammar = $_[0];
my $s = $_[1];
$_[3] = $_[2] unless defined $_[3]; # backwards compat
no warnings 'substr', 'uninitialized', 'syntax';
my %pad;
my $m;
my $bool;
my @pos;
# XXX :pos(X) takes the precedence over :continue ?
if (defined $_[3]{p}) {
push @pos, $_[3]{p} || 0;
} elsif ($_[3]{continue}) {
push @pos, (pos($_[1]) || 0) .. length($s);
} else {
push @pos, 0..length($s);
}
for my $pos ( @pos ) {
my %index;
my @match;
my %named;
$bool = 1;
$named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};
$m = Pugs::Runtime::Match->new( {
str => \$s, from => \(0+$pos), to => \($pos),
bool => \$bool, match => \@match, named => \%named, capture => undef,
} );
{
my $prior = $::_V6_PRIOR_;
local $::_V6_PRIOR_ = $prior;
$bool = 0 unless
##
## pos: 129 173
(
##
## pos: 129 142
(
( ( $pad{I1749} = $pos or 1 ) &&
##
## pos: 129 136
do {
my $prior = $::_V6_PRIOR_;
my $match =
$grammar->ident( $s, { p => $pos, positionals => [ ], args => {}, }, undef );
$::_V6_PRIOR_ = $prior;
if ( $match ) { push @{$named{'ident'}}, $match;
$pos = $match->to;
1
}
else { 0 }
}
##
|| ( ( $pos = $pad{I1749} ) && 0 ) )
)
##
&&
##
## pos: 142 149
(
( ( $pad{I1750} = $pos or 1 ) &&
##
## pos: 142 147
do {
my $prior = $::_V6_PRIOR_;
my $match =
$grammar->ws( $s, { p => $pos, positionals => [ ], args => {}, }, undef );
$::_V6_PRIOR_ = $prior;
my $bool = (!$match != 1);
$pos = $match->to if $bool;
$match;
}
##
|| ( ( $pos = $pad{I1750} ) && 0 ) )
|| ( $bool = 1 )
)
##
&&
##
## pos: 149 173
do { while (
( ( $pad{I1751} = $pos or 1 ) &&
##
## pos: 150 170
(
##
## pos: 150 155
( ( $pad{I1752} = $pos or 1 ) &&
##
## pos: 151 154
( ( substr( $s, $pos, 1 ) eq ',' )
? ( $pos += 1 or 1 )
: 0
)
##
|| ( ( $pos = $pad{I1752} ) && 0 ) )
##
&&
##
## pos: 155 162
(
( ( $pad{I1753} = $pos or 1 ) &&
##
## pos: 155 160
do {
my $prior = $::_V6_PRIOR_;
my $match =
$grammar->ws( $s, { p => $pos, positionals => [ ], args => {}, }, undef );
$::_V6_PRIOR_ = $prior;
my $bool = (!$match != 1);
$pos = $match->to if $bool;
$match;
}
##
|| ( ( $pos = $pad{I1753} ) && 0 ) )
|| ( $bool = 1 )
)
##
&&
##
## pos: 162 170
( ( $pad{I1754} = $pos or 1 ) &&
##
## pos: 162 169
do {
my $prior = $::_V6_PRIOR_;
my $match =
$grammar->ident( $s, { p => $pos, positionals => [ ], args => {}, }, undef );
$::_V6_PRIOR_ = $prior;
if ( $match ) { push @{$named{'ident'}}, $match;
$pos = $match->to;
1
}
else { 0 }
}
##
|| ( ( $pos = $pad{I1754} ) && 0 ) )
##
)
##
|| ( ( $pos = $pad{I1751} ) && 0 ) )) {}; $bool = 1 }
##
)
##
;
}
if ( $bool ) {
my $prior = $::_V6_PRIOR_;
$::_V6_PRIOR_ = sub {
local $main::_V6_PRIOR_ = $prior;
$rule->(@_);
};
#warn "pos2 = ", $pos, "\n";
pos($_[1]) = $pos if $_[3]{continue};
last;
}
} # /for
$::_V6_MATCH_ = $m;
return $m;
} }
##
;
1;
//
ok 11 - matched
ok 12
ok 13
ok 14
ok 15
ok 16
ok 17 - My::C's type okay
ok 18 - My::C's var_list okay
#
ok 19 - My::VB's var_list okay
#
ok 20 - eval ok
ok 21 - matched
ok 22
ok 23 - closure works
ok 24 - perl 5 generated
ok 25 - eval ok
ok 26 - matched
ok 27 - capture ok
ok 28 - perl 5 generated
ok 29 - eval ok
ok 30 - matched
ok 31 - capture ok
ok 32 - capture ok
ok 33 - matched
ok 34 - capture ok
ok 35 - capture ok
1..35
ok
t/04-compiler-regex......
ok 1 - grammar => 'Pugs::Grammar::Base'
ok 2 - continue => 0
ok 3 - pos => undef
ok 4 - ratchet => 0
ok 5 - ignorecase => 0
ok 6 - sigspace => 0
ok 7 - params okay (1)
ok 8 - regex ok (1)
ok 9 - grammar => 'abc'
ok 10 - continue => 1
ok 11 - pos => 1
ok 12 - ratchet => 1
ok 13 - ignorecase => 1
ok 14 - sigspace => 1
ok 15 - params okay (0)
ok 16 - regex ok (0)
ok 17 - params are optional
ok 18 - regex ok (null)
ok 19
ok 20
ok 21
ok 22 - croak as expected
ok 23
ok 24 - shouldn't croak this time
ok 25 - reinstall works
ok 26
ok 27
not ok 28 # TODO :c modifier doesn't work in non-ratchet mode
# Failed (TODO) test at t/04-compiler-regex.t line 166.
# got: '5:5:5'
# expected: '5:6'
ok 29 - backtracking works
ok 30
ok 31
ok 32
ok 33
1..33
ok
t/04-compiler-rule.......
ok 1 - rule obj ok
ok 2 - The object isa Pugs::Compiler::Regex
ok 3 - ratchet defaults to 1
ok 4 - sigspace defaults to 1
ok 5 - ignorecase defaults to 0
ok 6 - grammar no overridden
ok 7 - p no overridden
ok 8 - continue no overridden
ok 9 - no backtracking
ok 10 - sigspace works
ok 11 - sigspace works (2)
ok 12 - ratchet defaults to 1
ok 13 - sigspace defaults to 1
ok 14 - ignorecase defaults to 0
ok 15 - grammar no overridden
ok 16 - p no overridden
ok 17 - continue no overridden
ok 18 - backtracking works
ok 19 - capture ok
ok 20 - sigspace => 0
1..20
ok
t/04-rule................
1..79
ok 1 - use Pugs::Compiler::Regex;
ok 2 - constant
ok 3 - constant
ok 4 - booleanify - unnamed rules are objects
ok 5 - stringify 1
ok 6 - stringify 2
ok 7 - stringify 3
ok 8 - stringify 4
ok 9
ok 10
ok 11 - named rules are methods
ok 12 - named rules are methods
ok 13 - named rules are methods
ok 14 - Died as expected when installing an existing unqualified rule
ok 15 - Died as expected when installing an existing qualified rule
ok 16 - a named subrule calls a named subrule in same grammar
ok 17 - a named subrule calls a named subrule in other grammar
ok 18 - built-in rule
ok 19 - comma is not a special char
ok 20 - escaped char
ok 21 - escaped char \n
ok 22 - escaped char \d
ok 23 - escaped char \D
ok 24 - escaped char \N
ok 25 - escaped char \N \#2
ok 26 - "a?bg?" equals "a? b g?".
ok 27 - 'b' is mandatory here
ok 28
ok 29
ok 30 - Capture is a hashref
ok 31 - $capture->{a}
ok 32 - simple capture
ok 33 - simple capture
ok 34 - a named subrule calls a global unnamed subrule
ok 35 - a named subrule calls a lexical unnamed subrule
ok 36 - at-start - not
ok 37
ok 38 - at-start
ok 39 - at-end - not
ok 40
ok 41 - at-end
ok 42 - at-line-start - not
ok 43
ok 44 - at-line-start
ok 45 - at-line-start, pos==0
ok 46 - at-line-end - not
ok 47 - at-line-end
ok 48 - at-line-end, pos==end
ok 49 - anchored at both sides - not
ok 50 - anchored at both sides
ok 51 - anchored at line start/end - not
ok 52 - anchored at line start/end
ok 53 - plain null
ok 54 - null but true
ok 55 - null between terms
ok 56 - ident
ok 57 - prior
ok 58 -
ok 59
ok 60 - works
ok 61
ok 62
ok 63 - return capture
ok 64 - doesn't loop forever
ok 65
ok 66
ok 67 - negated rule
ok 68 - x never matches
ok 69 - mixed case matches
ok 70 - lower case matches
ok 71 - upper case matches
ok 72 - mixed case matches
ok 73 - lower case matches
ok 74 - upper case matches
ok 75 - internal ignorecase; mixed case matches
ok 76 - internal ignorecase; lower case matches
ok 77 - internal ignorecase; upper case matches
ok 78 - boolean closure
ok 79 - negative boolean closure
ok
t/05-var.................
1..5
ok 1 - use Pugs::Compiler::Rule;
ok 2 - match $0
ok 3
ok 4 - match $1
ok 5
ok
t/06-subrule.............
1..43
ok 1 - use Pugs::Compiler::Regex;
ok 2 - a Regex object
ok 3 - perl5 returns eval'able code
not ok 4 - no ws # TODO weird rule matches 'null' before the text
# Failed (TODO) test 'no ws'
# at t/06-subrule.t line 29.
# got: '1'
# expected: '0'
ok 5 - Matched at pos=0
ok 6 - Matched non-anchored
ok 7 - Matched...
ok 8 - Capture 1...
ok 9 - Capture 2...
ok 10 - Capture 3...
ok 11 - No more captures
ok 12 - No more captures
ok 13 - Matched...
ok 14 - $ is an array...
ok 15 - Capture 1...
ok 16 - Capture 2...
ok 17 - Capture 3...
ok 18 - No more captures
ok 19 - Matched...
ok 20 - $ is an array...
ok 21 - Capture 1...
ok 22 - Capture 2...
ok 23 - No more captures
ok 24 - backtracking subrule matched
ok 25 - array...
ok 26 - Capture 1...
ok 27 - Capture 2...
ok 28 - No more captures
ok 29 - before matched
ok 30 - before didn't match
ok 31 - before didn't match
ok 32 - <$var> matched
ok 33 - <$var> didn't match
ok 34 - <$var> didn't match
ok 35 # SKIP named parameters don't parse correctly
ok 36 # SKIP failing optional quantifier - subrule + param
ok 37 - Captured
ok 38 - Capture 0...
ok 39 - Capture 1...
ok 40 - No more captures
ok 41 - Captured
ok 42 - Capture 0...
ok 43 - Capture 1...
ok
t/08-hash................
1..8
ok 1 - use Pugs::Compiler::Rule;
ok 2 - Matched hash{iff}
ok 3 - fail hash{if} - value != 1
ok 4 - closure not called yet
ok 5 - closure was called hash{use}
ok 6 - subrule hash{until}
ok 7 - subrule hash{until} - 2
ok 8 - Matched hash inside hash
ok
t/09-ratchet.............
1..166
ok 1 - use Pugs::Compiler::Token;
ok 2 - use Pugs::Compiler::Rule;
ok 3 - booleanify - unnamed rules are objects
ok 4 - stringify 1
ok 5 - stringify 2
ok 6 - stringify 2
ok 7 - stringify 3
ok 8 - stringify 4
ok 9 - booleanify - unnamed rules are objects
ok 10 - stringify 1
ok 11 -
ok 12 - stringify 1
ok 13 - basic alternative
ok 14 - basic alternative - 2
ok 15 - alternative with captures
ok 16 - alternative - 2
ok 17 - alternative - 3
ok 18 - alternative - 4
ok 19 - alternation no backtracking
ok 20
not ok 21 # TODO '|' is now with longest-token semantics
# Failed (TODO) test at t/09-ratchet.t line 95.
# got: 'ab'
# expected: 'abc'
ok 22 - named rules are methods
ok 23 - a named subrule calls a named subrule in same grammar
ok 24 - a named subrule calls a named subrule in other grammar
ok 25 - a named subrule calls a global unnamed subrule
ok 26 - a named subrule calls a lexical unnamed subrule
ok 27 - built-in rule
ok 28 - keys() method
ok 29 - comma is not a special char
ok 30 - escaped char
ok 31 - escaped char \n
ok 32 - escaped char \d
ok 33 - escaped char \D
ok 34 - escaped char \d
ok 35 - escaped char \D
ok 36 - escaped char \N
ok 37 - escaped char \N \#2
ok 38 - "a?bg?" equals "a? b g?".
ok 39 - Capture is a hashref
ok 40 - $capture->{a}
ok 41 - simple capture
ok 42 - simple capture
ok 43 - alternation
ok 44
ok 45 - named capture
ok 46 - named capture - 2
not ok 47 # TODO subpattern?
# Failed (TODO) test at t/09-ratchet.t line 316.
# got: undef
# expected: ' '
ok 48 - named capture
ok 49 - named capture - 2
not ok 50 # TODO subpattern again?
# Failed (TODO) test at t/09-ratchet.t line 331.
# got: undef
# expected: 'a'
ok 51 - named capture from subrule
ok 52 - named capture - 2
ok 53 - before
ok 54 - not before
ok 55 - not before
ok 56 - before
ok 57 - negated alpha
ok 58 - negated alpha matches
ok 59 - not end-of-str
ok 60 - end-of-str
ok 61 - dot underflow
ok 62 - dot
ok 63 - dot overflow
ok 64 - after
ok 65 - not after
ok 66 - quantifier ? empty match
ok 67 - quantifier ? one match
ok 68 - quantifier ? no match
ok 69 - quantifier * empty match
ok 70 - quantifier * one match
ok 71 - quantifier * many match
ok 72 - quantifier * no match
ok 73 - quantifier + no match
ok 74 - quantifier + one match
ok 75 - quantifier + many match
ok 76 - quantifier + no match
ok 77 - non-capturing with captures inside
ok 78 - non-capturing with captures inside - 2
ok 79 - non-capturing with captures inside - 3
ok 80 - non-capturing with captures inside - 4
ok 81 - capturing with captures inside
ok 82 - capturing with captures inside - 2
ok 83 - capturing with captures inside - 3
ok 84 - capturing with captures inside - 4
ok 85 - sigspace no match
ok 86 - sigspace match
ok 87 - sigspace empty match
ok 88 - sigspace match
ok 89 - sigspace empty match (multi-sp)
ok 90 - sigspace one match
ok 91 - sigspace many match
ok 92 - sigspace required
ok 93 - sigspace no match
ok 94 - true match
ok 95 - named capture on parentheses
ok 96 - named capture on parentheses not positioned
ok 97 - true match
ok 98 - named capture on square brackets
ok 99 - named capture on square brackets not positioned
ok 100 - true match
ok 101 - named capture on subrule
ok 102 - named capture on subrule not positioned
ok 103 - array of rules
ok 104 - array of tokens
ok 105 - Matched hash{iff}
ok 106 - fail hash{if} - value != 1
ok 107 - closure not called yet
ok 108 - closure was called hash{use}
ok 109 - subrule hash{until}
ok 110 - subrule hash{until} - 2
ok 111 - Matched hash{iff}
ok 112 - Matched hash{iff} capture
ok 113 - fail hash{if} - value != 1
ok 114 - closure not called yet
ok 115 - closure was called hash{use}
# KEY = until
ok 116 - subrule hash{until}
ok 117 - subrule hash{until} - 2
ok 118 - Matched hash{until} capture handles stringification
ok 119 - Matched hash{until} return object
ok 120 - default subrule
ok 121 - Matched hash inside hash
ok 122 - literal ">>"
ok 123 - literal ":"
ok 124 - literal "}"
ok 125 - literal ")"
not ok 126 - alternation array rollback # TODO failing array capture rollback
# Failed (TODO) test 'alternation array rollback'
# at t/09-ratchet.t line 861.
# got: '3'
# expected: '2'
ok 127
ok 128
ok 129 - alternation hash rollback
ok 130
not ok 131 - alternation hash rollback with multiple captures # TODO failing capture
# Failed (TODO) test 'alternation hash rollback with multiple captures'
# at t/09-ratchet.t line 898.
# got: '1'
# expected: '2'
not ok 132 # TODO failing capture
# Failed (TODO) test at t/09-ratchet.t line 899.
# got: undef
# expected: 'a'
not ok 133 # TODO failing capture
# Failed (TODO) test at t/09-ratchet.t line 900.
# got: undef
# expected: 'a'
ok 134 - non-capturing char class
ok 135 - non-capturing char class
ok 136 - at-line-start - not
ok 137 - at-line-start
ok 138 - at-line-start, pos==0
ok 139 - at-line-end - not
ok 140 - at-line-end
ok 141 - at-line-end, pos==end
ok 142 - anchored at both sides - not
ok 143 - anchored at both sides
ok 144 - anchored at line start/end - not
ok 145 - anchored at line start/end
ok 146 - ident
ok 147 - prior
ok 148 - prior-prior
ok 149 - at
ok 150 - return capture
ok 151 - <>
ok 156 - xyz>>
ok 157 - xyz>>
ok 158 - xyz>>
ok 159 - x &
ok 160 - y | z
ok 161 - quantifier-rollback
ok 162 - x || y | z
ok 163 - x .*? z - non-greedy quantifier
ok 164 - backreference
ok 165 - boolean closure
ok 166 - negative boolean closure
ok
t/10-regex_perl5.........
1..20
ok 1 - use Pugs::Compiler::RegexPerl5;
ok 2 - booleanify
ok 3 - stringify 1
ok 4 - stringify 2
ok 5 - stringify 3
ok 6 - stringify 4
ok 7 - booleanify
ok 8 - stringify 1
ok 9 - stringify 2
ok 10 - stringify 3
ok 11 - to() 4
ok 12 - stringify 4
ok 13 - pos set
ok 14 - p set
ok 15 - p unset
ok 16 - no pos
ok 17 - pos 1
ok 18 - pos 2
ok 19 - pos 1
ok 20 - pos 2
ok
t/11-parsec..............
1..0 # Skip The Parsec emitter is not quite ready yet
skipped: The Parsec emitter is not quite ready yet
t/11-quantifier..........
1..13
ok 1 - use Pugs::Compiler::Regex;
ok 2 - use Pugs::Compiler::Token;
ok 3 - use Pugs::Grammar::Base;
ok 4 - .*
ok 5 - (.*)
ok 6 - ([_|\w]+)
ok 7 - ([_|\w]+)
ok 8 - (\d+) | ([_|\w]+)
ok 9 - (\d+) | ([_|\w]+)
ok 10 - (\d+) | ([_|\w]+)
ok 11 - (\d+) | ([_|\w]+)
ok 12 - [\d]+ as scalar
ok 13 - [\d]+ as scalar
ok
t/12-plain_regex.........
1..0 # Skip The plain regex emitter is not quite ready yet
skipped: The plain regex emitter is not quite ready yet
t/13-char_classes........
1..25
ok 1 - use Pugs::Compiler::Token;
ok 2 - use Pugs::Compiler::Rule;
ok 3 - <+alpha+digit>
ok 4 - <+[user char class]>
ok 5 - <+[user char class]+class>
ok 6 - <+[user char class]+class>
ok 7 - not-ws in quantified subrule
ok 8 - ^<+alpha>$ token
ok 9 - ^<+alpha>$ regex
ok 10 - ^<-alpha>$ token
ok 11 - ^<-alpha>$ regex
ok 12 - b
ok 13 - ^<+[ax]>$ token
ok 14 - ^<+[ax]>$ regex
ok 15 - ^<-[ax]>$ token
ok 16 - ^<-[ax]>$ regex
ok 17 - 3 ^<+[a..z]-[bx]>$ regex
ok 18 - a
ok 19 - b
ok 20 - 3 unicode regex
ok 21 - A
ok 22 - b
ok 23 - 3 ^<+[a..z]-[bx]>$ regex
ok 24 - a
ok 25 - b
ok
t/14-mini_perl6..........
1..0 # Skip The MiniPerl6 emitter is not quite ready yet
skipped: The MiniPerl6 emitter is not quite ready yet
t/15-STD.................
1..6
ok 1 - use Pugs::Compiler::Regex;
ok 2 - whatever
ok 3 - before-rule
ok 4 - before-string
ok 5 - before-as-function
ok 6 - ignore Whatever
ok
t/16-examples............
1..12
ok 1 - adder.grammar compiles okay
ok 2 - output of [ /home/cpanfly/ap1003/bin/perl-static -Ilib -Itmp -MAdder -e "print Adder->add('3 + 23')->()" ] okay
ok 3 - adder.grammar compiles okay
ok 4 - output of [ /home/cpanfly/ap1003/bin/perl-static -Ilib -Itmp -MAdder -e "print Adder->add('532+49')->()" ] okay
ok 5 - digits.grammar compiles okay
ok 6 - output of [ /home/cpanfly/ap1003/bin/perl-static -Ilib -Itmp -MDigits -e "print Digits->count('49a3')->()" ] okay
ok 7 - langs.grammar compiles okay
ok 8 - output of [ /home/cpanfly/ap1003/bin/perl-static -Ilib -Itmp -MLangs -e "print My::VB->def('Dim a, b As double')->{'My::C.var_list'}" ] okay
ok 9 - langs2.grammar compiles okay
ok 10 - output of [ /home/cpanfly/ap1003/bin/perl-static -Ilib -Itmp -MLangs2 -e "print My::VB->def('Dim a, b As double')->{'My::C.var_list'}" ] okay
ok 11 - Grammar.grammar compiles okay
ok 12 - output of [ /home/cpanfly/ap1003/bin/perl-static -Ilib -Itmp -MGrammar -e "print Pugs::Grammar::Rule->rule('a b')->to" ] okay
ok
t/16-safemode............
1..6
ok 1 - langs.grammar compiles okay
ok 2 - output of [ /home/cpanfly/ap1003/bin/perl-static -Ilib -Itmp -MLangs -e "print My::VB->def('Dim a, b As double')->{'My::C.var_list'}" ] okay
ok 3 - debugging output count ok
ok 4 - langs2.grammar compiles okay
ok 5 - output of [ /home/cpanfly/ap1003/bin/perl-static -Ilib -Itmp -MLangs2 -e "print My::VB->def('Dim a, b As double')->{'My::C.var_list'}" ] okay
ok 6 - debugging output count ok
ok
t/16-tracer-examples.....
1..18
ok 1 - adder.grammar compiles okay
ok 2 - output of [ /home/cpanfly/ap1003/bin/perl-static -Ilib -Itmp -MAdder -e "print Adder->add('3 + 23')->()" ] okay
ok 3 - debugging output count ok
ok 4 - adder.grammar compiles okay
ok 5 - output of [ /home/cpanfly/ap1003/bin/perl-static -Ilib -Itmp -MAdder -e "print Adder->add('532+49')->()" ] okay
ok 6 - debugging output count ok
ok 7 - digits.grammar compiles okay
ok 8 - output of [ /home/cpanfly/ap1003/bin/perl-static -Ilib -Itmp -MDigits -e "print Digits->count('49a3')->()" ] okay
ok 9 - debugging output count ok
ok 10 - langs.grammar compiles okay
ok 11 - output of [ /home/cpanfly/ap1003/bin/perl-static -Ilib -Itmp -MLangs -e "print My::VB->def('Dim a, b As double')->{'My::C.var_list'}" ] okay
ok 12 - debugging output count ok
ok 13 - langs2.grammar compiles okay
ok 14 - output of [ /home/cpanfly/ap1003/bin/perl-static -Ilib -Itmp -MLangs2 -e "print My::VB->def('Dim a, b As double')->{'My::C.var_list'}" ] okay
ok 15 - debugging output count ok
ok 16 - Grammar.grammar compiles okay
ok 17 - output of [ /home/cpanfly/ap1003/bin/perl-static -Ilib -Itmp -MGrammar -e "print Pugs::Grammar::Rule->rule('a b')->to" ] okay
ok 18 - debugging output count ok
ok
t/17-tracer..............
1..9
ok 1 - trace works
ok 2 - trace appends okay
ok 3 - trace_begin works
ok 4 - trace_end works
ok 5 - trace_end works
ok 6
ok 7 - expand okay
ok 8 - unmatched tag
ok 9 - unmatched tags
ok
t/ast/00-basic...........
1..28
ok 1 - TEST 1: concat and constant - ab - AST okay (len: 2)
ok 2 - TEST 2: metasyntax '...' - "'a'" - AST okay (len: 3)
ok 3 - TEST 3: metasyntax <$...> - ' <$a> ' - AST okay (len: 6)
ok 4 - TEST 4: metasyntax <@...> - ' <@foo> ' - AST okay (len: 8)
ok 5 - TEST 5: metasyntax <%...> - ' <%hi> ' - AST okay (len: 7)
ok 6 - TEST 6: metasyntax - ' <{ return $0.sqrt }> ' - AST okay (len: 22)
ok 7 - TEST 7: metasyntax - ' <&foo()> ' - AST okay (len: 10)
ok 8 - TEST 8: alt - 'a|b' - AST okay (len: 3)
ok 9 - TEST 9: special chars - "\\d \\s" - AST okay (len: 5)
ok 10 - TEST 10: closures - " a { say 'hi' } " - AST okay (len: 16)
ok 11 - TEST 11: closure quantifier - " a**{1..2} " - AST okay (len: 11)
ok 12 - TEST 12: quantifiers - " a+ b? " - AST okay (len: 7)
ok 13 - TEST 13: subrule () - " " - AST okay (len: 7)
ok 14 - TEST 14: subrule (<.foo>) - " <.foo> " - AST okay (len: 8)
ok 15 - TEST 15: subrule (quanlified) - " " - AST okay (len: 11)
ok 16 - TEST 16: capure (...) - " (a) " - AST okay (len: 5)
ok 17 - TEST 17: capure ( ... ) - " ( a ) " - AST okay (len: 7)
ok 18 - TEST 18: named capure ( ... ) - ' $abc := (a) ' - AST okay (len: 13)
ok 19 - TEST 19: non-capture groups - ' [ a ] ' - AST okay (len: 7)
ok 20 - TEST 20: named capture + [ ... ] - ' $a := [a] ' - AST okay (len: 11)
ok 21 - TEST 21: after - ' ' - AST okay (len: 11)
ok 22 - TEST 22: before - ' ' - AST okay (len: 12)
ok 23 - TEST 23: ! after - ' ' - AST okay (len: 12)
ok 24 - TEST 24: ! before - ' ' - AST okay (len: 13)
ok 25 - TEST 25: charset - ' <[abcd]> ' - AST okay (len: 10)
ok 26 - TEST 26: charset - ' <[ab]-[a]> ' - AST okay (len: 12)
ok 27 - TEST 27: dot - ' . ' - AST okay (len: 3)
ok 28 - TEST 28: non-greedy closures - ' a*? ' - AST okay (len: 5)
t/ast/00-basic.t_ generated.
ok
t/declare/00-demo........
1..45
ok 1 - TEST 1: basic - match 1 - .* <=> 'xyzw'
ok 2 - TEST 1: basic - match 1 - res $() : xyzw
ok 3 - TEST 1: basic - match 1 - res $/.from : 0
ok 4 - TEST 1: basic - match 1 - res $/.to : 4
ok 5 - TEST 2: - match 1 - ((.).). <=> 'abc'
ok 6 - TEST 2: - match 1 - res $/ : abc
ok 7 - TEST 2: - match 1 - res $() : abc
ok 8 - TEST 2: - match 1 - res $0 : ab
ok 9 - TEST 2: - match 1 - res $0.from : 0
ok 10 - TEST 2: - match 1 - res $0.to : 2
ok 11 - TEST 2: - match 1 - res $($0) : ab
ok 12 - TEST 2: - match 1 - res $0[0] : a
ok 13 - TEST 2: - match 1 - res $($0[0]) : a
ok 14 - TEST 2: - match 1 - res $0.[ 0 ] : a
ok 15 - TEST 2: - match 1 - res $0[0].from : 0
ok 16 - TEST 2: - match 1 - res $0[0].to : 1
ok 17 - TEST 2: - match 1 - res $0[1] :
ok 18 - TEST 2: - match 1 - res $/.from() : 0
ok 19 - TEST 2: - match 1 - res $/.to( ) : 3
ok 20 - TEST 2: - match 2 - ((.).). <=> '1a2b'
ok 21 - TEST 2: - match 2 - res $/ : "1a2"
ok 22 - TEST 2: - match 2 - res $0 : '1a'
ok 23 - TEST 2: - match 2 - res $0[0] : '1'
ok 24 - TEST 2: - match 3 - ((.).). <=> '
# a'
ok 25 - TEST 2: - match 3 - res $() : "\t\na"
ok 26 - TEST 2: - unmatch - ((.).). <=> ab
ok 27 - TEST 2: - unmatch - ((.).). <=> ,
ok 28 - TEST 2: - unmatch - ((.).). <=> '"
ok 29 - TEST 3: named subrule - match 1 - $ := [.](.) <=> 'abc'
ok 30 - TEST 3: named subrule - match 1 - res $ : 'a'
ok 31 - TEST 3: named subrule - match 1 - res $/ : 'a'
ok 32 - TEST 3: named subrule - match 1 - res $/. : 'a'
ok 33 - TEST 3: named subrule - match 1 - res $/{'z'} : 'a'
ok 34 - TEST 3: named subrule - match 1 - res $/{"z"} : 'a'
ok 35 - TEST 3: named subrule - match 1 - res $/.{ 'z' } : 'a'
ok 36 - TEST 3: named subrule - match 1 - res $0 : b
ok 37 - TEST 3: named subrule - match 1 - res $/[0] : 'b'
ok 38 - TEST 3: named subrule - match 1 - res $/.[0] : "b"
ok 39 - TEST 3: named subrule - match 1 - res $/[1] :
ok 40 - TEST 3: named subrule - match 2 - $ := [.](.) <=> '
# '
ok 41 - TEST 3: named subrule - match 2 - res $.from : 0
ok 42 - TEST 3: named subrule - match 2 - res $.to : 1
ok 43 - TEST 3: named subrule - match 2 - res $0.from : 1
ok 44 - TEST 3: named subrule - match 2 - res $0.to : 2
ok 45 - TEST 3: named subrule - match 2 - res $() : "\t\n"
ok
t/declare/01-sigspace....
1..10
ok 1 - TEST 1: - match 1 - ab cd <=> 'ab cd'
ok 2 - TEST 1: - match 2 - ab cd <=> 'ab cd'
ok 3 - TEST 2: - match 1 - ab '=' <=> 'ab='
ok 4 - TEST 2: - match 2 - ab '=' <=> 'ab ='
ok 5 - TEST 2: - match 3 - ab '=' <=> 'ab ='
ok 6 - TEST 3: - match 1 - ab ';' <=> 'ab;'
ok 7 - TEST 3: - match 2 - ab ';' <=> 'ab ;'
ok 8 - TEST 4: - match 1 - ';' <=> 'abc;'
ok 9 - TEST 4: - match 2 - ';' <=> 'abc ;'
ok 10 - TEST 5: - match 1 - grammar ';' <=> 'grammar Perl6;'
ok
t/emitter/00-ratchet.....
1..53
ok 1 - TEST 1: - global ok
ok 2 - TEST 1: - constant ok
ok 3 - TEST 1: - layout ok
ok 4 - TEST 2: - alt ok
ok 5 - TEST 2: - constant ok
ok 6 - TEST 2: - constant ok
ok 7 - TEST 2: - layout ok
ok 8 - TEST 3: concat - concat ok
ok 9 - TEST 3: concat - layout ok
ok 10 - TEST 4: metasyntax '...' - constant ok
ok 11 - TEST 4: metasyntax '...' - layout ok
ok 12 - TEST 5: metasyntax <$...> - metasyntax ok
ok 13 - TEST 5: metasyntax <$...> - layout ok
ok 14 - TEST 6: metasyntax <@...> - metasyntax ok
ok 15 - TEST 6: metasyntax <@...> - layout ok
ok 16 - TEST 7: metasyntax <%...> - metasyntax ok
ok 17 - TEST 7: metasyntax <%...> - variable ok
ok 18 - TEST 7: metasyntax <%...> - layout ok
ok 19 - TEST 8: metasyntax - closure ok
ok 20 - TEST 8: metasyntax - layout ok
ok 21 - TEST 9: alt - alt ok
ok 22 - TEST 9: alt - layout ok
ok 23 - TEST 10: special chars - concat ok
ok 24 - TEST 10: special chars - perl5 ok
ok 25 - TEST 10: special chars - perl5 ok
ok 26 - TEST 10: special chars - layout ok
ok 27 - TEST 11: closures - closure ok
ok 28 - TEST 11: closures - layout ok
ok 29 - TEST 12: closure quantifier - quant ok
ok 30 - TEST 12: closure quantifier - layout ok
ok 31 - TEST 13: quantifier + - quant ok
ok 32 - TEST 13: quantifier + - layout ok
ok 33 - TEST 14: quantifier ? - quant ok
ok 34 - TEST 14: quantifier ? - layout ok
ok 35 - TEST 15: subrule () - named_capture ok
ok 36 - TEST 15: subrule () - layout ok
ok 37 - TEST 16: subrule (<.foo>) - metasyntax ok
ok 38 - TEST 16: subrule (<.foo>) - layout ok
ok 39 - TEST 17: subrule (quanlified) - named_capture ok
ok 40 - TEST 17: subrule (quanlified) - layout ok
ok 41 - TEST 18: capure (...) - capture ok
ok 42 - TEST 18: capure (...) - layout ok
ok 43 - TEST 19: named capure ( ... ) - named_capture ok
ok 44 - TEST 19: named capure ( ... ) - capture ok
ok 45 - TEST 19: named capure ( ... ) - layout ok
ok 46 - TEST 20: non-capture groups - constant ok
ok 47 - TEST 20: non-capture groups - layout ok
ok 48 - TEST 20: non-capture groups - constant ok
ok 49 - TEST 20: non-capture groups - layout ok
ok 50 - TEST 21: named capture + [ ... ] - named_capture ok
ok 51 - TEST 21: named capture + [ ... ] - layout ok
ok 52 - TEST 22: - negate ok
ok 53 - TEST 22: - layout ok
t/emitter/00-ratchet.t_ generated.
ok
All tests successful.
Files=28, Tests=775, 27 wallclock secs ( 0.07 usr 0.38 sys + 10.16 cusr 4.39 csys = 15.00 CPU)
Result: PASS
FGLOCK/Pugs-Compiler-Rule-0.32.tar.gz
make test TEST_VERBOSE=1 -- OK
Picked up version from Makefile
Picked up distname from Makefile
Picked up abstract from Makefile
Flavio Soibelmann Glock <fglock@gmail.com>
Compiler for Perl 6 regexes
>>> (cd /home/cpanfly/var/cpan/build/Pugs-Compiler-Rule-0.32-XOZmLr && tar cvf - Pugs-Compiler-Rule-0.32.ppd blib) | gzip -c >/home/cpanfly/var/REPO/F/FG/FGLOCK/Pugs-Compiler-Rule-0.32.tar.gz
Pugs-Compiler-Rule-0.32.ppd
blib/
blib/lib/
blib/lib/Pugs/
blib/lib/Pugs/AST/
blib/lib/Pugs/AST/Expression.pm
blib/lib/Pugs/Compiler/
blib/lib/Pugs/Compiler/RegexPerl5.pm
blib/lib/Pugs/Compiler/Token.pm
blib/lib/Pugs/Compiler/Grammar.pm
blib/lib/Pugs/Compiler/Rule.pm
blib/lib/Pugs/Compiler/Regex.pm
blib/lib/Pugs/Emitter/
blib/lib/Pugs/Emitter/Rule/
blib/lib/Pugs/Emitter/Rule/Perl5/
blib/lib/Pugs/Emitter/Rule/Perl5/Ratchet.pm
blib/lib/Pugs/Emitter/Rule/Perl5/Regex.pm
blib/lib/Pugs/Emitter/Rule/Perl5/._CharClass.pm
blib/lib/Pugs/Emitter/Rule/Perl5/CharClass.pm
blib/lib/Pugs/Emitter/Rule/Perl6/
blib/lib/Pugs/Emitter/Rule/Perl6/Ratchet.pm
blib/lib/Pugs/Emitter/Rule/Perl5.pm
blib/lib/Pugs/Emitter/Rule/._Perl5.pm
blib/lib/Pugs/Emitter/Rule/Parsec.pm
blib/lib/Pugs/Emitter/Grammar/
blib/lib/Pugs/Emitter/Grammar/Perl5.pm
blib/lib/Pugs/Runtime/
blib/lib/Pugs/Runtime/Match/
blib/lib/Pugs/Runtime/Match/HsBridge.pm
blib/lib/Pugs/Runtime/Match.pm
blib/lib/Pugs/Runtime/StrPos.pm
blib/lib/Pugs/Runtime/Tracer.pm
blib/lib/Pugs/Runtime/Rule.pm
blib/lib/Pugs/Runtime/Regex.pm
blib/lib/Pugs/Runtime/Common.pm
blib/lib/Pugs/Grammar/
blib/lib/Pugs/Grammar/Base.pm
blib/lib/Pugs/Grammar/Rule2.pm
blib/lib/Pugs/Grammar/Rule.pmc
blib/lib/Pugs/Grammar/Rule.pm
blib/lib/Pugs/Grammar/RulePure.pm
blib/lib/Pugs/Grammar/Precedence.pm
blib/man1/
blib/man1/compile_p6grammar.pl.1
blib/man3/
blib/man3/Pugs::Runtime::StrPos.3
blib/man3/Pugs::Runtime::Tracer.3
blib/man3/Pugs::Grammar::Precedence.3
blib/man3/Pugs::Runtime::Regex.3
blib/man3/Pugs::Compiler::Regex.3
blib/man3/Pugs::Runtime::Match.3
blib/man3/Pugs::Compiler::RegexPerl5.3
blib/man3/Pugs::Emitter::Grammar::Perl5.3
blib/man3/Pugs::Compiler::Token.3
blib/man3/Pugs::Compiler::Grammar.3
blib/man3/Pugs::Compiler::Rule.3
blib/script/
blib/script/compile_p6grammar.pl
>>> mv /home/cpanfly/var/cpan/build/Pugs-Compiler-Rule-0.32-XOZmLr/Pugs-Compiler-Rule-0.32.ppd /home/cpanfly/var/REPO/F/FG/FGLOCK
Finished 2008-07-21T06:06:23