Start 2010-02-22T21:09:01 ActivePerl-1200 CPAN-1.9402 Going to read '/home/fly1200/var/cpan/Metadata' Database was generated on Mon, 22 Feb 2010 22:57:51 GMT Running make for A/AG/AGENT/Pugs-Compiler-Rule-0.28.tar.gz Checksum for /net/nas/data/cpan/authors/id/A/AG/AGENT/Pugs-Compiler-Rule-0.28.tar.gz ok Pugs-Compiler-Rule-0.28/ Pugs-Compiler-Rule-0.28/TODO Pugs-Compiler-Rule-0.28/util/ Pugs-Compiler-Rule-0.28/util/update-rule-pmc Pugs-Compiler-Rule-0.28/util/update-rule-pmc-obsolete Pugs-Compiler-Rule-0.28/util/compile_p6grammar.pl Pugs-Compiler-Rule-0.28/util/update-tracer-demos Pugs-Compiler-Rule-0.28/util/patch-rule-pmc.pl Pugs-Compiler-Rule-0.28/util/gen-tracer-view.pl Pugs-Compiler-Rule-0.28/README Pugs-Compiler-Rule-0.28/Changes Pugs-Compiler-Rule-0.28/inc/ Pugs-Compiler-Rule-0.28/inc/Spiffy.pm Pugs-Compiler-Rule-0.28/inc/Test/ Pugs-Compiler-Rule-0.28/inc/Test/Builder/ Pugs-Compiler-Rule-0.28/inc/Test/Builder/Module.pm Pugs-Compiler-Rule-0.28/inc/Test/Builder.pm Pugs-Compiler-Rule-0.28/inc/Test/Base/ Pugs-Compiler-Rule-0.28/inc/Test/Base/Filter.pm Pugs-Compiler-Rule-0.28/inc/Test/More.pm Pugs-Compiler-Rule-0.28/inc/Test/Base.pm Pugs-Compiler-Rule-0.28/inc/Module/ Pugs-Compiler-Rule-0.28/inc/Module/Install/ Pugs-Compiler-Rule-0.28/inc/Module/Install/Fetch.pm Pugs-Compiler-Rule-0.28/inc/Module/Install/Scripts.pm Pugs-Compiler-Rule-0.28/inc/Module/Install/Makefile.pm Pugs-Compiler-Rule-0.28/inc/Module/Install/TestBase.pm Pugs-Compiler-Rule-0.28/inc/Module/Install/Metadata.pm Pugs-Compiler-Rule-0.28/inc/Module/Install/WriteAll.pm Pugs-Compiler-Rule-0.28/inc/Module/Install/Win32.pm Pugs-Compiler-Rule-0.28/inc/Module/Install/Can.pm Pugs-Compiler-Rule-0.28/inc/Module/Install/Base.pm Pugs-Compiler-Rule-0.28/inc/Module/Install/Include.pm Pugs-Compiler-Rule-0.28/inc/Module/Install.pm Pugs-Compiler-Rule-0.28/MANIFEST Pugs-Compiler-Rule-0.28/Makefile.PL Pugs-Compiler-Rule-0.28/lib/ Pugs-Compiler-Rule-0.28/lib/Pugs/ Pugs-Compiler-Rule-0.28/lib/Pugs/Runtime/ Pugs-Compiler-Rule-0.28/lib/Pugs/Runtime/Rule.pm Pugs-Compiler-Rule-0.28/lib/Pugs/Runtime/Match/ Pugs-Compiler-Rule-0.28/lib/Pugs/Runtime/Match/HsBridge.pm Pugs-Compiler-Rule-0.28/lib/Pugs/Runtime/Regex.pm Pugs-Compiler-Rule-0.28/lib/Pugs/Runtime/Tracer.pm Pugs-Compiler-Rule-0.28/lib/Pugs/Runtime/Match.pm Pugs-Compiler-Rule-0.28/lib/Pugs/Runtime/Common.pm Pugs-Compiler-Rule-0.28/lib/Pugs/Runtime/StrPos.pm Pugs-Compiler-Rule-0.28/lib/Pugs/Emitter/ Pugs-Compiler-Rule-0.28/lib/Pugs/Emitter/Grammar/ Pugs-Compiler-Rule-0.28/lib/Pugs/Emitter/Grammar/Perl5.pm Pugs-Compiler-Rule-0.28/lib/Pugs/Emitter/Rule/ Pugs-Compiler-Rule-0.28/lib/Pugs/Emitter/Rule/Perl5.pm Pugs-Compiler-Rule-0.28/lib/Pugs/Emitter/Rule/Perl5/ Pugs-Compiler-Rule-0.28/lib/Pugs/Emitter/Rule/Perl5/Regex.pm Pugs-Compiler-Rule-0.28/lib/Pugs/Emitter/Rule/Perl5/Ratchet.pm Pugs-Compiler-Rule-0.28/lib/Pugs/Emitter/Rule/Perl5/CharClass.pm Pugs-Compiler-Rule-0.28/lib/Pugs/Emitter/Rule/Perl6/ Pugs-Compiler-Rule-0.28/lib/Pugs/Emitter/Rule/Perl6/Ratchet.pm Pugs-Compiler-Rule-0.28/lib/Pugs/Emitter/Rule/Parsec.pm Pugs-Compiler-Rule-0.28/lib/Pugs/Grammar/ Pugs-Compiler-Rule-0.28/lib/Pugs/Grammar/Rule.pm Pugs-Compiler-Rule-0.28/lib/Pugs/Grammar/Rule2.pm Pugs-Compiler-Rule-0.28/lib/Pugs/Grammar/Precedence.pm Pugs-Compiler-Rule-0.28/lib/Pugs/Grammar/RulePure.pm Pugs-Compiler-Rule-0.28/lib/Pugs/Grammar/Rule.pmc Pugs-Compiler-Rule-0.28/lib/Pugs/Grammar/Base.pm Pugs-Compiler-Rule-0.28/lib/Pugs/Compiler/ Pugs-Compiler-Rule-0.28/lib/Pugs/Compiler/Rule.pm Pugs-Compiler-Rule-0.28/lib/Pugs/Compiler/Regex.pm Pugs-Compiler-Rule-0.28/lib/Pugs/Compiler/RegexPerl5.pm Pugs-Compiler-Rule-0.28/lib/Pugs/Compiler/Token.pm Pugs-Compiler-Rule-0.28/lib/Pugs/Compiler/Grammar.pm Pugs-Compiler-Rule-0.28/lib/Pugs/AST/ Pugs-Compiler-Rule-0.28/lib/Pugs/AST/Expression.pm Pugs-Compiler-Rule-0.28/examples/ Pugs-Compiler-Rule-0.28/examples/langs.input Pugs-Compiler-Rule-0.28/examples/langs.grammar Pugs-Compiler-Rule-0.28/examples/adder.grammar Pugs-Compiler-Rule-0.28/examples/adder.input Pugs-Compiler-Rule-0.28/examples/langs2.grammar Pugs-Compiler-Rule-0.28/examples/grammar.input Pugs-Compiler-Rule-0.28/examples/digits.grammar Pugs-Compiler-Rule-0.28/examples/Grammar.grammar Pugs-Compiler-Rule-0.28/examples/digits.input Pugs-Compiler-Rule-0.28/tracer/ Pugs-Compiler-Rule-0.28/tracer/jquery.js Pugs-Compiler-Rule-0.28/tracer/tracer.js Pugs-Compiler-Rule-0.28/META.yml Pugs-Compiler-Rule-0.28/t/ Pugs-Compiler-Rule-0.28/t/12-plain_regex.t Pugs-Compiler-Rule-0.28/t/13-char_classes.t Pugs-Compiler-Rule-0.28/t/04-compiler-regex.t Pugs-Compiler-Rule-0.28/t/ast/ Pugs-Compiler-Rule-0.28/t/ast/00-basic.t Pugs-Compiler-Rule-0.28/t/04-compiler-rule.t Pugs-Compiler-Rule-0.28/t/16-examples.t Pugs-Compiler-Rule-0.28/t/06-subrule.t Pugs-Compiler-Rule-0.28/t/16-tracer-examples.t Pugs-Compiler-Rule-0.28/t/14-mini_perl6.t Pugs-Compiler-Rule-0.28/t/04-compiler-grammar.t Pugs-Compiler-Rule-0.28/t/10-regex_perl5.t Pugs-Compiler-Rule-0.28/t/17-tracer.t Pugs-Compiler-Rule-0.28/t/16-safemode.t Pugs-Compiler-Rule-0.28/t/01-iterator_engine.t Pugs-Compiler-Rule-0.28/t/11-parsec.t Pugs-Compiler-Rule-0.28/t/08-hash.t Pugs-Compiler-Rule-0.28/t/00-pod.t Pugs-Compiler-Rule-0.28/t/03-match.t Pugs-Compiler-Rule-0.28/t/lib/ Pugs-Compiler-Rule-0.28/t/lib/Util.pm Pugs-Compiler-Rule-0.28/t/lib/Regex.pm Pugs-Compiler-Rule-0.28/t/lib/AST.pm Pugs-Compiler-Rule-0.28/t/lib/Emitter.pm Pugs-Compiler-Rule-0.28/t/02-grammar.t Pugs-Compiler-Rule-0.28/t/11-quantifier.t Pugs-Compiler-Rule-0.28/t/05-var.t Pugs-Compiler-Rule-0.28/t/declare/ Pugs-Compiler-Rule-0.28/t/declare/00-demo.t Pugs-Compiler-Rule-0.28/t/declare/01-sigspace.t Pugs-Compiler-Rule-0.28/t/15-STD.t Pugs-Compiler-Rule-0.28/t/emitter/ Pugs-Compiler-Rule-0.28/t/emitter/00-ratchet.t Pugs-Compiler-Rule-0.28/t/09-ratchet.t Pugs-Compiler-Rule-0.28/t/00-pod-coverage.t Pugs-Compiler-Rule-0.28/t/04-rule.t Pugs-Compiler-Rule-0.28/MANIFEST.SKIP CPAN.pm: Going to build A/AG/AGENT/Pugs-Compiler-Rule-0.28.tar.gz >>> /home/fly1200/ap1200x/bin/perl-dynamic 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/Ratchet.pm blib/lib/Pugs/Emitter/Rule/Perl5/Ratchet.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/Compiler/Regex.pm blib/lib/Pugs/Compiler/Regex.pm cp lib/Pugs/Runtime/Common.pm blib/lib/Pugs/Runtime/Common.pm cp lib/Pugs/Runtime/Tracer.pm blib/lib/Pugs/Runtime/Tracer.pm cp lib/Pugs/AST/Expression.pm blib/lib/Pugs/AST/Expression.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/fly1200/ap1200x/bin/perl-dynamic "-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::Compiler::Regex.3 Manifying blib/man3/Pugs::Runtime::StrPos.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 AGENT/Pugs-Compiler-Rule-0.28.tar.gz make -- OK Running make test >>> make test TEST_VERBOSE=1 PERL_DL_NONLAZY=1 /home/fly1200/ap1200x/bin/perl-dynamic "-MExtUtils::Command::MM" "-e" "test_harness(1, 'inc', 'blib/lib', 'blib/arch')" t/*.t t/*/*.t t/00-pod-coverage.t ...... skipped: We know we don't have enough POD :( t/00-pod.t ............... 1..26 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/Parsec.pm ok 21 - blib/lib/Pugs/Emitter/Grammar/Perl5.pm ok 22 - blib/lib/Pugs/Runtime/Match/HsBridge.pm ok 23 - blib/lib/Pugs/Emitter/Rule/Perl5/Ratchet.pm ok 24 - blib/lib/Pugs/Emitter/Rule/Perl5/Regex.pm ok 25 - blib/lib/Pugs/Emitter/Rule/Perl5/CharClass.pm ok 26 - blib/lib/Pugs/Emitter/Rule/Perl6/Ratchet.pm ok t/01-iterator_engine.t ... 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.t ........... 1..1 ok 1 - use Pugs::Grammar::Rule; ok t/03-match.t ............. 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.t .. 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{I1040} = $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{I1040} ) && 0 ) ) ## && ## ## pos: 39 45 ( ( $pad{I1041} = $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{I1041} ) && 0 ) ) ## && ## ## pos: 45 56 ( ( $pad{I1042} = $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{I1042} ) && 0 ) ) ## && ## ## pos: 56 63 ( ( ( $pad{I1043} = $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{I1043} ) && 0 ) ) || ( $bool = 1 ) ) ## && ## ## pos: 63 67 ( ( $pad{I1044} = $pos or 1 ) && ## ## pos: 63 66 ( ( substr( $s, $pos, 1 ) eq ';' ) ? ( $pos += 1 or 1 ) : 0 ) ## || ( ( $pos = $pad{I1044} ) && 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{I1045} = $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{I1046} = $pos or 1 ) && ## ## pos: 84 85 ( ( substr( $s, $pos, 1 ) eq 't' ) ? ( $pos += 1 or 1 ) : 0 ) ## || ( ( $pos = $pad{I1046} ) && 0 ) ) ## ) ## ) || ( ( ( $bool = 1 ) && ( $pos = $pad{I1045} ) or 1 ) && ## ## pos: 87 94 ( ## ## pos: 87 89 ( ( $pad{I1047} = $pos or 1 ) && ## ## pos: 88 89 ( ( substr( $s, $pos, 1 ) eq 'f' ) ? ( $pos += 1 or 1 ) : 0 ) ## || ( ( $pos = $pad{I1047} ) && 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{I1048} = $pos or 1 ) && ## ## pos: 92 93 ( ( substr( $s, $pos, 1 ) eq 't' ) ? ( $pos += 1 or 1 ) : 0 ) ## || ( ( $pos = $pad{I1048} ) && 0 ) ) ## ) ## ) || ( ( ( $bool = 1 ) && ( $pos = $pad{I1045} ) or 1 ) && ## ## pos: 95 103 ( ## ## pos: 95 97 ( ( $pad{I1049} = $pos or 1 ) && ## ## pos: 96 97 ( ( substr( $s, $pos, 1 ) eq 'd' ) ? ( $pos += 1 or 1 ) : 0 ) ## || ( ( $pos = $pad{I1049} ) && 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{I1050} = $pos or 1 ) && ## ## pos: 101 102 ( ( substr( $s, $pos, 1 ) eq 'e' ) ? ( $pos += 1 or 1 ) : 0 ) ## || ( ( $pos = $pad{I1050} ) && 0 ) ) ## ) ## ) || ( ( ( $bool = 1 ) && ( $pos = $pad{I1045} ) or 1 ) && ## ## pos: 104 110 ( ## ## pos: 104 106 ( ( $pad{I1051} = $pos or 1 ) && ## ## pos: 105 106 ( ( substr( $s, $pos, 1 ) eq 'c' ) ? ( $pos += 1 or 1 ) : 0 ) ## || ( ( $pos = $pad{I1051} ) && 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{I1052} = $pos or 1 ) && ## ## pos: 108 109 ( ( substr( $s, $pos, 1 ) eq 'r' ) ? ( $pos += 1 or 1 ) : 0 ) ## || ( ( $pos = $pad{I1052} ) && 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{I1053} = $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{I1053} ) && 0 ) ) ) ## && ## ## pos: 142 149 ( ( ( $pad{I1054} = $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{I1054} ) && 0 ) ) || ( $bool = 1 ) ) ## && ## ## pos: 149 173 do { while ( ( ( $pad{I1055} = $pos or 1 ) && ## ## pos: 150 170 ( ## ## pos: 150 155 ( ( $pad{I1056} = $pos or 1 ) && ## ## pos: 151 154 ( ( substr( $s, $pos, 1 ) eq ',' ) ? ( $pos += 1 or 1 ) : 0 ) ## || ( ( $pos = $pad{I1056} ) && 0 ) ) ## && ## ## pos: 155 162 ( ( ( $pad{I1057} = $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{I1057} ) && 0 ) ) || ( $bool = 1 ) ) ## && ## ## pos: 162 170 ( ( $pad{I1058} = $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{I1058} ) && 0 ) ) ## ) ## || ( ( $pos = $pad{I1055} ) && 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.t .... 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.t ..... 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.t .............. 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.t ............... 1..5 ok 1 - use Pugs::Compiler::Rule; ok 2 - match $0 ok 3 ok 4 - match $1 ok 5 ok t/06-subrule.t ........... 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.t .............. 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.t ........... 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.t ....... 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.t ............ skipped: The Parsec emitter is not quite ready yet t/11-quantifier.t ........ 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.t ....... skipped: The plain regex emitter is not quite ready yet t/13-char_classes.t ...... 1..22 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 ^<+[a..z]-[bx]>$ regex ok 21 - a ok 22 - b ok t/14-mini_perl6.t ........ skipped: The MiniPerl6 emitter is not quite ready yet t/15-STD.t ............... 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.t .......... 1..12 ok 1 - adder.grammar compiles okay ok 2 - output of [ /home/fly1200/ap1200x/bin/perl-dynamic -Ilib -Itmp -MAdder -e "print Adder->add('3 + 23')->()" ] okay ok 3 - adder.grammar compiles okay ok 4 - output of [ /home/fly1200/ap1200x/bin/perl-dynamic -Ilib -Itmp -MAdder -e "print Adder->add('532+49')->()" ] okay ok 5 - digits.grammar compiles okay ok 6 - output of [ /home/fly1200/ap1200x/bin/perl-dynamic -Ilib -Itmp -MDigits -e "print Digits->count('49a3')->()" ] okay ok 7 - langs.grammar compiles okay ok 8 - output of [ /home/fly1200/ap1200x/bin/perl-dynamic -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/fly1200/ap1200x/bin/perl-dynamic -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/fly1200/ap1200x/bin/perl-dynamic -Ilib -Itmp -MGrammar -e "print Pugs::Grammar::Rule->rule('a b')->to" ] okay ok ERROR: code blocks not allowed in safe mode: "{ return $/[0] + $/[1] }" ERROR: code blocks not allowed in safe mode: "{ return $/[0] + $/[1] }" ERROR: verbatim Perl 5 blocks not allowed in safe mode: " our $Count = 0; " ERROR: verbatim Perl 5 blocks not allowed in safe mode: " use utf8; no strict 'refs'; no warnings 'redefine'; no warnings 'once'; #use Pugs::Runtime::Match; our %rule_terms; our %variables; " t/16-safemode.t .......... 1..10 ok 1 - adder.grammar compiles okay ok 2 - adder.grammar compiles okay ok 3 - digits.grammar compiles okay ok 4 - langs.grammar compiles okay ok 5 - output of [ /home/fly1200/ap1200x/bin/perl-dynamic -Ilib -Itmp -MLangs -e "print My::VB->def('Dim a, b As double')->{'My::C.var_list'}" ] okay ok 6 - debugging output count ok ok 7 - langs2.grammar compiles okay ok 8 - output of [ /home/fly1200/ap1200x/bin/perl-dynamic -Ilib -Itmp -MLangs2 -e "print My::VB->def('Dim a, b As double')->{'My::C.var_list'}" ] okay ok 9 - debugging output count ok ok 10 - Grammar.grammar compiles okay ok t/16-tracer-examples.t ... 1..18 ok 1 - adder.grammar compiles okay ok 2 - output of [ /home/fly1200/ap1200x/bin/perl-dynamic -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/fly1200/ap1200x/bin/perl-dynamic -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/fly1200/ap1200x/bin/perl-dynamic -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/fly1200/ap1200x/bin/perl-dynamic -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/fly1200/ap1200x/bin/perl-dynamic -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/fly1200/ap1200x/bin/perl-dynamic -Ilib -Itmp -MGrammar -e "print Pugs::Grammar::Rule->rule('a b')->to" ] okay ok 18 - debugging output count ok ok t/17-tracer.t ............ 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 # Failed test 'TEST 1: concat and constant - ab - AST okay (len: 2) # @@ -1,22 +1,22 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 2 # - ], # + 0, # + 2 # + ], # 'concat' => [ # - { # - '_pos' => [ # - 0, # - 1 # - ], # - 'constant' => 'a' # - }, # - { # - '_pos' => [ # - 1, # - 2 # - ], # - 'constant' => 'b' # - } # - ] # + { # + '_pos' => [ # + 0, # + 1 # + ], # + 'constant' => 'a' # + }, # + { # + '_pos' => [ # + 1, # + 2 # + ], # + 'constant' => 'b' # + } # + ] # }; # ' # at t/lib/AST.pm line 28. # Failed test 'TEST 2: metasyntax '...' - "'a'" - AST okay (len: 3) # @@ -1,9 +1,9 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 3 # - ], # + 0, # + 3 # + ], # 'metasyntax' => { # - 'metasyntax' => '\'a\'' # - } # + 'metasyntax' => '\'a\'' # + } # }; # ' # at t/lib/AST.pm line 28. # Failed test 'TEST 3: metasyntax <$...> - ' <$a> ' - AST okay (len: 6) # @@ -1,23 +1,23 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 6 # - ], # + 0, # + 6 # + ], # 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 1, # - 5 # - ], # - 'metasyntax' => { # - 'metasyntax' => '$a', # - 'modifier' => '' # - } # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 1, # + 5 # + ], # + 'metasyntax' => { # + 'metasyntax' => '$a', # + 'modifier' => '' # + } # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # }; # ' # at t/lib/AST.pm line 28. # Failed test 'TEST 4: metasyntax <@...> - ' <@foo> ' - AST okay (len: 8) # @@ -1,23 +1,23 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 8 # - ], # + 0, # + 8 # + ], # 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 1, # - 7 # - ], # - 'metasyntax' => { # - 'metasyntax' => '@foo', # - 'modifier' => '' # - } # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 1, # + 7 # + ], # + 'metasyntax' => { # + 'metasyntax' => '@foo', # + 'modifier' => '' # + } # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # }; # ' # at t/lib/AST.pm line 28. # Failed test 'TEST 5: metasyntax <%...> - ' <%hi> ' - AST okay (len: 7) # @@ -1,23 +1,23 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 7 # - ], # + 0, # + 7 # + ], # 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 1, # - 6 # - ], # - 'metasyntax' => { # - 'metasyntax' => '%hi', # - 'modifier' => '' # - } # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 1, # + 6 # + ], # + 'metasyntax' => { # + 'metasyntax' => '%hi', # + 'modifier' => '' # + } # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # }; # ' # at t/lib/AST.pm line 28. # Failed test 'TEST 6: metasyntax - ' <{ return $0.sqrt }> ' - AST okay (len: 22) # @@ -1,23 +1,23 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 22 # - ], # + 0, # + 22 # + ], # 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 1, # - 21 # - ], # - 'closure' => { # - 'closure' => '{ return $0.sqrt }', # - 'modifier' => '' # - } # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 1, # + 21 # + ], # + 'closure' => { # + 'closure' => '{ return $0.sqrt }', # + 'modifier' => '' # + } # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # }; # ' # at t/lib/AST.pm line 28. # Failed test 'TEST 7: metasyntax - ' <&foo()> ' - AST okay (len: 10) # @@ -1,23 +1,23 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 10 # - ], # + 0, # + 10 # + ], # 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 1, # - 9 # - ], # - 'metasyntax' => { # - 'metasyntax' => '&foo()', # - 'modifier' => '' # - } # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 1, # + 9 # + ], # + 'metasyntax' => { # + 'metasyntax' => '&foo()', # + 'modifier' => '' # + } # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # }; # ' # at t/lib/AST.pm line 28. # Failed test 'TEST 8: alt - 'a|b' - AST okay (len: 3) # @@ -1,22 +1,22 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 3 # - ], # + 0, # + 3 # + ], # 'alt1' => [ # - { # - '_pos' => [ # - 0, # - 1 # - ], # - 'constant' => 'a' # - }, # - { # - '_pos' => [ # - 2, # - 3 # - ], # - 'constant' => 'b' # - } # - ] # + { # + '_pos' => [ # + 0, # + 1 # + ], # + 'constant' => 'a' # + }, # + { # + '_pos' => [ # + 2, # + 3 # + ], # + 'constant' => 'b' # + } # + ] # }; # ' # at t/lib/AST.pm line 28. # Failed test 'TEST 9: special chars - "\\d \\s" - AST okay (len: 5) # @@ -1,35 +1,35 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 5 # - ], # + 0, # + 5 # + ], # 'concat' => [ # - { # - '_pos' => [ # - 0, # - 3 # - ], # - 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 0, # - 2 # - ], # - 'special_char' => '\\d' # - }, # - 'ws1' => '', # - 'ws2' => ' ', # - 'ws3' => '' # - } # - }, # - { # - '_pos' => [ # - 3, # - 5 # - ], # - 'special_char' => '\\s' # - } # - ] # + { # + '_pos' => [ # + 0, # + 3 # + ], # + 'quant' => { # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 0, # + 2 # + ], # + 'special_char' => '\\d' # + }, # + 'ws1' => '', # + 'ws2' => ' ', # + 'ws3' => '' # + } # + }, # + { # + '_pos' => [ # + 3, # + 5 # + ], # + 'special_char' => '\\s' # + } # + ] # }; # ' # at t/lib/AST.pm line 28. # Failed test 'TEST 10: closures - " a { say 'hi' } " - AST okay (len: 16) # @@ -1,51 +1,51 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 16 # - ], # + 0, # + 16 # + ], # 'concat' => [ # - { # - '_pos' => [ # - 0, # - 3 # - ], # - 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 1, # - 2 # - ], # - 'constant' => 'a' # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # - }, # - { # - '_pos' => [ # - 3, # - 16 # - ], # - 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 3, # - 15 # - ], # - 'closure' => { # - 'closure' => '{ say \'hi\' }', # - 'modifier' => 'plain' # - } # - }, # - 'ws1' => '', # - 'ws2' => ' ', # - 'ws3' => '' # - } # - } # - ] # + { # + '_pos' => [ # + 0, # + 3 # + ], # + 'quant' => { # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 1, # + 2 # + ], # + 'constant' => 'a' # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # + }, # + { # + '_pos' => [ # + 3, # + 16 # + ], # + 'quant' => { # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 3, # + 15 # + ], # + 'closure' => { # + 'closure' => '{ say \'hi\' }', # + 'modifier' => 'plain' # + } # + }, # + 'ws1' => '', # + 'ws2' => ' ', # + 'ws3' => '' # + } # + } # + ] # }; # ' # at t/lib/AST.pm line 28. # Failed test 'TEST 11: closure quantifier - " a**{1..2} " - AST okay (len: 11) # @@ -1,22 +1,22 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 11 # - ], # + 0, # + 11 # + ], # 'quant' => { # - 'greedy' => '', # - 'quant' => { # - 'closure' => '{1..2}' # - }, # - 'term' => { # - '_pos' => [ # - 1, # - 2 # - ], # - 'constant' => 'a' # - }, # - 'ws1' => ' ', # - 'ws2' => '', # - 'ws3' => ' ' # - } # + 'greedy' => '', # + 'quant' => { # + 'closure' => '{1..2}' # + }, # + 'term' => { # + '_pos' => [ # + 1, # + 2 # + ], # + 'constant' => 'a' # + }, # + 'ws1' => ' ', # + 'ws2' => '', # + 'ws3' => ' ' # + } # }; # ' # at t/lib/AST.pm line 28. # Failed test 'TEST 12: quantifiers - " a+ b? " - AST okay (len: 7) # @@ -1,48 +1,48 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 7 # - ], # + 0, # + 7 # + ], # 'concat' => [ # - { # - '_pos' => [ # - 0, # - 4 # - ], # - 'quant' => { # - 'greedy' => '', # - 'quant' => '+', # - 'term' => { # - '_pos' => [ # - 1, # - 2 # - ], # - 'constant' => 'a' # - }, # - 'ws1' => ' ', # - 'ws2' => '', # - 'ws3' => ' ' # - } # - }, # - { # - '_pos' => [ # - 4, # - 7 # - ], # - 'quant' => { # - 'greedy' => '', # - 'quant' => '?', # - 'term' => { # - '_pos' => [ # - 4, # - 5 # - ], # - 'constant' => 'b' # - }, # - 'ws1' => '', # - 'ws2' => '', # - 'ws3' => ' ' # - } # - } # - ] # + { # + '_pos' => [ # + 0, # + 4 # + ], # + 'quant' => { # + 'greedy' => '', # + 'quant' => '+', # + 'term' => { # + '_pos' => [ # + 1, # + 2 # + ], # + 'constant' => 'a' # + }, # + 'ws1' => ' ', # + 'ws2' => '', # + 'ws3' => ' ' # + } # + }, # + { # + '_pos' => [ # + 4, # + 7 # + ], # + 'quant' => { # + 'greedy' => '', # + 'quant' => '?', # + 'term' => { # + '_pos' => [ # + 4, # + 5 # + ], # + 'constant' => 'b' # + }, # + 'ws1' => '', # + 'ws2' => '', # + 'ws3' => ' ' # + } # + } # + ] # }; # ' # at t/lib/AST.pm line 28. # Failed test 'TEST 13: subrule () - " " - AST okay (len: 7) # @@ -1,23 +1,23 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 7 # - ], # + 0, # + 7 # + ], # 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 1, # - 6 # - ], # - 'metasyntax' => { # - 'metasyntax' => 'foo', # - 'modifier' => '' # - } # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 1, # + 6 # + ], # + 'metasyntax' => { # + 'metasyntax' => 'foo', # + 'modifier' => '' # + } # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # }; # ' # at t/lib/AST.pm line 28. # Failed test 'TEST 14: subrule (<.foo>) - " <.foo> " - AST okay (len: 8) # @@ -1,23 +1,23 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 8 # - ], # + 0, # + 8 # + ], # 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 1, # - 7 # - ], # - 'metasyntax' => { # - 'metasyntax' => 'foo', # - 'modifier' => '.' # - } # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 1, # + 7 # + ], # + 'metasyntax' => { # + 'metasyntax' => 'foo', # + 'modifier' => '.' # + } # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # }; # ' # at t/lib/AST.pm line 28. # Failed test 'TEST 15: subrule (quanlified) - " " - AST okay (len: 11) # @@ -1,23 +1,23 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 11 # - ], # + 0, # + 11 # + ], # 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 1, # - 10 # - ], # - 'metasyntax' => { # - 'metasyntax' => 'Bar.foo', # - 'modifier' => '' # - } # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 1, # + 10 # + ], # + 'metasyntax' => { # + 'metasyntax' => 'Bar.foo', # + 'modifier' => '' # + } # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # }; # ' # at t/lib/AST.pm line 28. # Failed test 'TEST 16: capure (...) - " (a) " - AST okay (len: 5) # @@ -1,26 +1,26 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 5 # - ], # + 0, # + 5 # + ], # 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 1, # - 4 # - ], # - 'capturing_group' => { # - '_pos' => [ # - 2, # - 3 # - ], # - 'constant' => 'a' # - } # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 1, # + 4 # + ], # + 'capturing_group' => { # + '_pos' => [ # + 2, # + 3 # + ], # + 'constant' => 'a' # + } # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # }; # ' # at t/lib/AST.pm line 28. # Failed test 'TEST 17: capure ( ... ) - " ( a ) " - AST okay (len: 7) # @@ -1,39 +1,39 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 7 # - ], # + 0, # + 7 # + ], # 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 1, # - 6 # - ], # - 'capturing_group' => { # - '_pos' => [ # - 2, # - 5 # - ], # - 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 3, # - 4 # - ], # - 'constant' => 'a' # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # - } # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 1, # + 6 # + ], # + 'capturing_group' => { # + '_pos' => [ # + 2, # + 5 # + ], # + 'quant' => { # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 3, # + 4 # + ], # + 'constant' => 'a' # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # + } # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # }; # ' # at t/lib/AST.pm line 28. # Failed test 'TEST 18: named capure ( ... ) - ' $abc := (a) ' - AST okay (len: 13) # @@ -1,41 +1,41 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 13 # - ], # + 0, # + 13 # + ], # 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 1, # - 12 # - ], # - 'named_capture' => { # - 'ident' => { # - '_pos' => [ # - 1, # - 5 # - ], # - 'variable' => '$abc' # - }, # - 'rule' => { # - '_pos' => [ # - 9, # - 12 # - ], # - 'capturing_group' => { # - '_pos' => [ # - 10, # - 11 # - ], # - 'constant' => 'a' # - } # - } # - } # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 1, # + 12 # + ], # + 'named_capture' => { # + 'ident' => { # + '_pos' => [ # + 1, # + 5 # + ], # + 'variable' => '$abc' # + }, # + 'rule' => { # + '_pos' => [ # + 9, # + 12 # + ], # + 'capturing_group' => { # + '_pos' => [ # + 10, # + 11 # + ], # + 'constant' => 'a' # + } # + } # + } # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # }; # ' # at t/lib/AST.pm line 28. # Failed test 'TEST 19: non-capture groups - ' [ a ] ' - AST okay (len: 7) # @@ -1,33 +1,33 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 7 # - ], # + 0, # + 7 # + ], # 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 2, # - 5 # - ], # - 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 3, # - 4 # - ], # - 'constant' => 'a' # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 2, # + 5 # + ], # + 'quant' => { # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 3, # + 4 # + ], # + 'constant' => 'a' # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # }; # ' # at t/lib/AST.pm line 28. # Failed test 'TEST 20: named capture + [ ... ] - ' $a := [a] ' - AST okay (len: 11) # @@ -1,35 +1,35 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 11 # - ], # + 0, # + 11 # + ], # 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 1, # - 10 # - ], # - 'named_capture' => { # - 'ident' => { # - '_pos' => [ # - 1, # - 3 # - ], # - 'variable' => '$a' # - }, # - 'rule' => { # - '_pos' => [ # - 8, # - 9 # - ], # - 'constant' => 'a' # - } # - } # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 1, # + 10 # + ], # + 'named_capture' => { # + 'ident' => { # + '_pos' => [ # + 1, # + 3 # + ], # + 'variable' => '$a' # + }, # + 'rule' => { # + '_pos' => [ # + 8, # + 9 # + ], # + 'constant' => 'a' # + } # + } # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # }; # ' # at t/lib/AST.pm line 28. # Failed test 'TEST 21: after - ' ' - AST okay (len: 11) # @@ -1,29 +1,29 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 11 # - ], # + 0, # + 11 # + ], # 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 1, # - 10 # - ], # - 'after' => { # - 'modifier' => '', # - 'rule' => { # - '_pos' => [ # - 8, # - 9 # - ], # - 'constant' => 'a' # - } # - } # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 1, # + 10 # + ], # + 'after' => { # + 'modifier' => '', # + 'rule' => { # + '_pos' => [ # + 8, # + 9 # + ], # + 'constant' => 'a' # + } # + } # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # }; # ' # at t/lib/AST.pm line 28. # Failed test 'TEST 22: before - ' ' - AST okay (len: 12) # @@ -1,29 +1,29 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 12 # - ], # + 0, # + 12 # + ], # 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 1, # - 11 # - ], # - 'before' => { # - 'modifier' => '', # - 'rule' => { # - '_pos' => [ # - 9, # - 10 # - ], # - 'constant' => 'a' # - } # - } # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 1, # + 11 # + ], # + 'before' => { # + 'modifier' => '', # + 'rule' => { # + '_pos' => [ # + 9, # + 10 # + ], # + 'constant' => 'a' # + } # + } # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # }; # ' # at t/lib/AST.pm line 28. # Failed test 'TEST 23: ! after - ' ' - AST okay (len: 12) # @@ -1,29 +1,29 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 12 # - ], # + 0, # + 12 # + ], # 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 1, # - 11 # - ], # - 'after' => { # - 'modifier' => '!', # - 'rule' => { # - '_pos' => [ # - 9, # - 10 # - ], # - 'constant' => 'a' # - } # - } # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 1, # + 11 # + ], # + 'after' => { # + 'modifier' => '!', # + 'rule' => { # + '_pos' => [ # + 9, # + 10 # + ], # + 'constant' => 'a' # + } # + } # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # }; # ' # at t/lib/AST.pm line 28. # Failed test 'TEST 24: ! before - ' ' - AST okay (len: 13) # @@ -1,29 +1,29 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 13 # - ], # + 0, # + 13 # + ], # 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 1, # - 12 # - ], # - 'before' => { # - 'modifier' => '!', # - 'rule' => { # - '_pos' => [ # - 10, # - 11 # - ], # - 'constant' => 'a' # - } # - } # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 1, # + 12 # + ], # + 'before' => { # + 'modifier' => '!', # + 'rule' => { # + '_pos' => [ # + 10, # + 11 # + ], # + 'constant' => 'a' # + } # + } # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # }; # ' # at t/lib/AST.pm line 28. # Failed test 'TEST 25: charset - ' <[abcd]> ' - AST okay (len: 10) # @@ -1,22 +1,22 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 10 # - ], # + 0, # + 10 # + ], # 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 1, # - 9 # - ], # - 'char_class' => [ # - '+[abcd]' # - ] # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 1, # + 9 # + ], # + 'char_class' => [ # + '+[abcd]' # + ] # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # }; # ' # at t/lib/AST.pm line 28. # Failed test 'TEST 26: charset - ' <[ab]-[a]> ' - AST okay (len: 12) # @@ -1,41 +1,41 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 12 # - ], # + 0, # + 12 # + ], # 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 1, # - 11 # - ], # - 'char_class' => [ # - '+[ab]', # - bless( do{\(my $o = { # - 'bool' => \1, # - 'capture' => undef, # - 'from' => \6, # - 'match' => [], # - 'named' => { # - 'char_class' => bless( do{\(my $o = { # - 'bool' => \1, # - 'capture' => undef, # - 'from' => \7, # - 'match' => [], # - 'named' => {}, # - 'str' => \' <[ab]-[a]> ', # - 'to' => \10 # - })}, 'Pugs::Runtime::Match' ) # - }, # - 'str' => \' <[ab]-[a]> ', # - 'to' => \10 # - })}, 'Pugs::Runtime::Match' ) # - ] # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 1, # + 11 # + ], # + 'char_class' => [ # + '+[ab]', # + bless( do{\(my $o = { # + 'bool' => \1, # + 'capture' => undef, # + 'from' => \6, # + 'match' => [], # + 'named' => { # + 'char_class' => bless( do{\(my $o = { # + 'bool' => \1, # + 'capture' => undef, # + 'from' => \7, # + 'match' => [], # + 'named' => {}, # + 'str' => \' <[ab]-[a]> ', # + 'to' => \10 # + })}, 'Pugs::Runtime::Match' ) # + }, # + 'str' => \' <[ab]-[a]> ', # + 'to' => \10 # + })}, 'Pugs::Runtime::Match' ) # + ] # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # }; # ' # at t/lib/AST.pm line 28. # Failed test 'TEST 27: dot - ' . ' - AST okay (len: 3) # @@ -1,20 +1,20 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 3 # - ], # + 0, # + 3 # + ], # 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 1, # - 2 # - ], # - 'dot' => 1 # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 1, # + 2 # + ], # + 'dot' => 1 # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # }; # ' # at t/lib/AST.pm line 28. # Failed test 'TEST 28: non-greedy closures - ' a*? ' - AST okay (len: 5) # @@ -1,20 +1,20 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 5 # - ], # + 0, # + 5 # + ], # 'quant' => { # - 'greedy' => '?', # - 'quant' => '*', # - 'term' => { # - '_pos' => [ # - 1, # - 2 # - ], # - 'constant' => 'a' # - }, # - 'ws1' => ' ', # - 'ws2' => '', # - 'ws3' => ' ' # - } # + 'greedy' => '?', # + 'quant' => '*', # + 'term' => { # + '_pos' => [ # + 1, # + 2 # + ], # + 'constant' => 'a' # + }, # + 'ws1' => ' ', # + 'ws2' => '', # + 'ws3' => ' ' # + } # }; # ' # at t/lib/AST.pm line 28. t/ast/00-basic.t_ generated. # Looks like you failed 28 tests of 28. t/ast/00-basic.t ......... 1..28 not ok 1 - TEST 1: concat and constant - ab - AST okay (len: 2) # @@ -1,22 +1,22 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 2 # - ], # + 0, # + 2 # + ], # 'concat' => [ # - { # - '_pos' => [ # - 0, # - 1 # - ], # - 'constant' => 'a' # - }, # - { # - '_pos' => [ # - 1, # - 2 # - ], # - 'constant' => 'b' # - } # - ] # + { # + '_pos' => [ # + 0, # + 1 # + ], # + 'constant' => 'a' # + }, # + { # + '_pos' => [ # + 1, # + 2 # + ], # + 'constant' => 'b' # + } # + ] # }; # not ok 2 - TEST 2: metasyntax '...' - "'a'" - AST okay (len: 3) # @@ -1,9 +1,9 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 3 # - ], # + 0, # + 3 # + ], # 'metasyntax' => { # - 'metasyntax' => '\'a\'' # - } # + 'metasyntax' => '\'a\'' # + } # }; # not ok 3 - TEST 3: metasyntax <$...> - ' <$a> ' - AST okay (len: 6) # @@ -1,23 +1,23 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 6 # - ], # + 0, # + 6 # + ], # 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 1, # - 5 # - ], # - 'metasyntax' => { # - 'metasyntax' => '$a', # - 'modifier' => '' # - } # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 1, # + 5 # + ], # + 'metasyntax' => { # + 'metasyntax' => '$a', # + 'modifier' => '' # + } # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # }; # not ok 4 - TEST 4: metasyntax <@...> - ' <@foo> ' - AST okay (len: 8) # @@ -1,23 +1,23 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 8 # - ], # + 0, # + 8 # + ], # 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 1, # - 7 # - ], # - 'metasyntax' => { # - 'metasyntax' => '@foo', # - 'modifier' => '' # - } # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 1, # + 7 # + ], # + 'metasyntax' => { # + 'metasyntax' => '@foo', # + 'modifier' => '' # + } # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # }; # not ok 5 - TEST 5: metasyntax <%...> - ' <%hi> ' - AST okay (len: 7) # @@ -1,23 +1,23 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 7 # - ], # + 0, # + 7 # + ], # 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 1, # - 6 # - ], # - 'metasyntax' => { # - 'metasyntax' => '%hi', # - 'modifier' => '' # - } # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 1, # + 6 # + ], # + 'metasyntax' => { # + 'metasyntax' => '%hi', # + 'modifier' => '' # + } # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # }; # not ok 6 - TEST 6: metasyntax - ' <{ return $0.sqrt }> ' - AST okay (len: 22) # @@ -1,23 +1,23 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 22 # - ], # + 0, # + 22 # + ], # 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 1, # - 21 # - ], # - 'closure' => { # - 'closure' => '{ return $0.sqrt }', # - 'modifier' => '' # - } # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 1, # + 21 # + ], # + 'closure' => { # + 'closure' => '{ return $0.sqrt }', # + 'modifier' => '' # + } # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # }; # not ok 7 - TEST 7: metasyntax - ' <&foo()> ' - AST okay (len: 10) # @@ -1,23 +1,23 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 10 # - ], # + 0, # + 10 # + ], # 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 1, # - 9 # - ], # - 'metasyntax' => { # - 'metasyntax' => '&foo()', # - 'modifier' => '' # - } # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 1, # + 9 # + ], # + 'metasyntax' => { # + 'metasyntax' => '&foo()', # + 'modifier' => '' # + } # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # }; # not ok 8 - TEST 8: alt - 'a|b' - AST okay (len: 3) # @@ -1,22 +1,22 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 3 # - ], # + 0, # + 3 # + ], # 'alt1' => [ # - { # - '_pos' => [ # - 0, # - 1 # - ], # - 'constant' => 'a' # - }, # - { # - '_pos' => [ # - 2, # - 3 # - ], # - 'constant' => 'b' # - } # - ] # + { # + '_pos' => [ # + 0, # + 1 # + ], # + 'constant' => 'a' # + }, # + { # + '_pos' => [ # + 2, # + 3 # + ], # + 'constant' => 'b' # + } # + ] # }; # not ok 9 - TEST 9: special chars - "\\d \\s" - AST okay (len: 5) # @@ -1,35 +1,35 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 5 # - ], # + 0, # + 5 # + ], # 'concat' => [ # - { # - '_pos' => [ # - 0, # - 3 # - ], # - 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 0, # - 2 # - ], # - 'special_char' => '\\d' # - }, # - 'ws1' => '', # - 'ws2' => ' ', # - 'ws3' => '' # - } # - }, # - { # - '_pos' => [ # - 3, # - 5 # - ], # - 'special_char' => '\\s' # - } # - ] # + { # + '_pos' => [ # + 0, # + 3 # + ], # + 'quant' => { # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 0, # + 2 # + ], # + 'special_char' => '\\d' # + }, # + 'ws1' => '', # + 'ws2' => ' ', # + 'ws3' => '' # + } # + }, # + { # + '_pos' => [ # + 3, # + 5 # + ], # + 'special_char' => '\\s' # + } # + ] # }; # not ok 10 - TEST 10: closures - " a { say 'hi' } " - AST okay (len: 16) # @@ -1,51 +1,51 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 16 # - ], # + 0, # + 16 # + ], # 'concat' => [ # - { # - '_pos' => [ # - 0, # - 3 # - ], # - 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 1, # - 2 # - ], # - 'constant' => 'a' # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # - }, # - { # - '_pos' => [ # - 3, # - 16 # - ], # - 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 3, # - 15 # - ], # - 'closure' => { # - 'closure' => '{ say \'hi\' }', # - 'modifier' => 'plain' # - } # - }, # - 'ws1' => '', # - 'ws2' => ' ', # - 'ws3' => '' # - } # - } # - ] # + { # + '_pos' => [ # + 0, # + 3 # + ], # + 'quant' => { # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 1, # + 2 # + ], # + 'constant' => 'a' # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # + }, # + { # + '_pos' => [ # + 3, # + 16 # + ], # + 'quant' => { # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 3, # + 15 # + ], # + 'closure' => { # + 'closure' => '{ say \'hi\' }', # + 'modifier' => 'plain' # + } # + }, # + 'ws1' => '', # + 'ws2' => ' ', # + 'ws3' => '' # + } # + } # + ] # }; # not ok 11 - TEST 11: closure quantifier - " a**{1..2} " - AST okay (len: 11) # @@ -1,22 +1,22 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 11 # - ], # + 0, # + 11 # + ], # 'quant' => { # - 'greedy' => '', # - 'quant' => { # - 'closure' => '{1..2}' # - }, # - 'term' => { # - '_pos' => [ # - 1, # - 2 # - ], # - 'constant' => 'a' # - }, # - 'ws1' => ' ', # - 'ws2' => '', # - 'ws3' => ' ' # - } # + 'greedy' => '', # + 'quant' => { # + 'closure' => '{1..2}' # + }, # + 'term' => { # + '_pos' => [ # + 1, # + 2 # + ], # + 'constant' => 'a' # + }, # + 'ws1' => ' ', # + 'ws2' => '', # + 'ws3' => ' ' # + } # }; # not ok 12 - TEST 12: quantifiers - " a+ b? " - AST okay (len: 7) # @@ -1,48 +1,48 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 7 # - ], # + 0, # + 7 # + ], # 'concat' => [ # - { # - '_pos' => [ # - 0, # - 4 # - ], # - 'quant' => { # - 'greedy' => '', # - 'quant' => '+', # - 'term' => { # - '_pos' => [ # - 1, # - 2 # - ], # - 'constant' => 'a' # - }, # - 'ws1' => ' ', # - 'ws2' => '', # - 'ws3' => ' ' # - } # - }, # - { # - '_pos' => [ # - 4, # - 7 # - ], # - 'quant' => { # - 'greedy' => '', # - 'quant' => '?', # - 'term' => { # - '_pos' => [ # - 4, # - 5 # - ], # - 'constant' => 'b' # - }, # - 'ws1' => '', # - 'ws2' => '', # - 'ws3' => ' ' # - } # - } # - ] # + { # + '_pos' => [ # + 0, # + 4 # + ], # + 'quant' => { # + 'greedy' => '', # + 'quant' => '+', # + 'term' => { # + '_pos' => [ # + 1, # + 2 # + ], # + 'constant' => 'a' # + }, # + 'ws1' => ' ', # + 'ws2' => '', # + 'ws3' => ' ' # + } # + }, # + { # + '_pos' => [ # + 4, # + 7 # + ], # + 'quant' => { # + 'greedy' => '', # + 'quant' => '?', # + 'term' => { # + '_pos' => [ # + 4, # + 5 # + ], # + 'constant' => 'b' # + }, # + 'ws1' => '', # + 'ws2' => '', # + 'ws3' => ' ' # + } # + } # + ] # }; # not ok 13 - TEST 13: subrule () - " " - AST okay (len: 7) # @@ -1,23 +1,23 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 7 # - ], # + 0, # + 7 # + ], # 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 1, # - 6 # - ], # - 'metasyntax' => { # - 'metasyntax' => 'foo', # - 'modifier' => '' # - } # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 1, # + 6 # + ], # + 'metasyntax' => { # + 'metasyntax' => 'foo', # + 'modifier' => '' # + } # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # }; # not ok 14 - TEST 14: subrule (<.foo>) - " <.foo> " - AST okay (len: 8) # @@ -1,23 +1,23 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 8 # - ], # + 0, # + 8 # + ], # 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 1, # - 7 # - ], # - 'metasyntax' => { # - 'metasyntax' => 'foo', # - 'modifier' => '.' # - } # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 1, # + 7 # + ], # + 'metasyntax' => { # + 'metasyntax' => 'foo', # + 'modifier' => '.' # + } # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # }; # not ok 15 - TEST 15: subrule (quanlified) - " " - AST okay (len: 11) # @@ -1,23 +1,23 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 11 # - ], # + 0, # + 11 # + ], # 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 1, # - 10 # - ], # - 'metasyntax' => { # - 'metasyntax' => 'Bar.foo', # - 'modifier' => '' # - } # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 1, # + 10 # + ], # + 'metasyntax' => { # + 'metasyntax' => 'Bar.foo', # + 'modifier' => '' # + } # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # }; # not ok 16 - TEST 16: capure (...) - " (a) " - AST okay (len: 5) # @@ -1,26 +1,26 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 5 # - ], # + 0, # + 5 # + ], # 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 1, # - 4 # - ], # - 'capturing_group' => { # - '_pos' => [ # - 2, # - 3 # - ], # - 'constant' => 'a' # - } # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 1, # + 4 # + ], # + 'capturing_group' => { # + '_pos' => [ # + 2, # + 3 # + ], # + 'constant' => 'a' # + } # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # }; # not ok 17 - TEST 17: capure ( ... ) - " ( a ) " - AST okay (len: 7) # @@ -1,39 +1,39 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 7 # - ], # + 0, # + 7 # + ], # 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 1, # - 6 # - ], # - 'capturing_group' => { # - '_pos' => [ # - 2, # - 5 # - ], # - 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 3, # - 4 # - ], # - 'constant' => 'a' # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # - } # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 1, # + 6 # + ], # + 'capturing_group' => { # + '_pos' => [ # + 2, # + 5 # + ], # + 'quant' => { # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 3, # + 4 # + ], # + 'constant' => 'a' # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # + } # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # }; # not ok 18 - TEST 18: named capure ( ... ) - ' $abc := (a) ' - AST okay (len: 13) # @@ -1,41 +1,41 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 13 # - ], # + 0, # + 13 # + ], # 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 1, # - 12 # - ], # - 'named_capture' => { # - 'ident' => { # - '_pos' => [ # - 1, # - 5 # - ], # - 'variable' => '$abc' # - }, # - 'rule' => { # - '_pos' => [ # - 9, # - 12 # - ], # - 'capturing_group' => { # - '_pos' => [ # - 10, # - 11 # - ], # - 'constant' => 'a' # - } # - } # - } # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 1, # + 12 # + ], # + 'named_capture' => { # + 'ident' => { # + '_pos' => [ # + 1, # + 5 # + ], # + 'variable' => '$abc' # + }, # + 'rule' => { # + '_pos' => [ # + 9, # + 12 # + ], # + 'capturing_group' => { # + '_pos' => [ # + 10, # + 11 # + ], # + 'constant' => 'a' # + } # + } # + } # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # }; # not ok 19 - TEST 19: non-capture groups - ' [ a ] ' - AST okay (len: 7) # @@ -1,33 +1,33 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 7 # - ], # + 0, # + 7 # + ], # 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 2, # - 5 # - ], # - 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 3, # - 4 # - ], # - 'constant' => 'a' # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 2, # + 5 # + ], # + 'quant' => { # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 3, # + 4 # + ], # + 'constant' => 'a' # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # }; # not ok 20 - TEST 20: named capture + [ ... ] - ' $a := [a] ' - AST okay (len: 11) # @@ -1,35 +1,35 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 11 # - ], # + 0, # + 11 # + ], # 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 1, # - 10 # - ], # - 'named_capture' => { # - 'ident' => { # - '_pos' => [ # - 1, # - 3 # - ], # - 'variable' => '$a' # - }, # - 'rule' => { # - '_pos' => [ # - 8, # - 9 # - ], # - 'constant' => 'a' # - } # - } # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 1, # + 10 # + ], # + 'named_capture' => { # + 'ident' => { # + '_pos' => [ # + 1, # + 3 # + ], # + 'variable' => '$a' # + }, # + 'rule' => { # + '_pos' => [ # + 8, # + 9 # + ], # + 'constant' => 'a' # + } # + } # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # }; # not ok 21 - TEST 21: after - ' ' - AST okay (len: 11) # @@ -1,29 +1,29 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 11 # - ], # + 0, # + 11 # + ], # 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 1, # - 10 # - ], # - 'after' => { # - 'modifier' => '', # - 'rule' => { # - '_pos' => [ # - 8, # - 9 # - ], # - 'constant' => 'a' # - } # - } # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 1, # + 10 # + ], # + 'after' => { # + 'modifier' => '', # + 'rule' => { # + '_pos' => [ # + 8, # + 9 # + ], # + 'constant' => 'a' # + } # + } # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # }; # not ok 22 - TEST 22: before - ' ' - AST okay (len: 12) # @@ -1,29 +1,29 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 12 # - ], # + 0, # + 12 # + ], # 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 1, # - 11 # - ], # - 'before' => { # - 'modifier' => '', # - 'rule' => { # - '_pos' => [ # - 9, # - 10 # - ], # - 'constant' => 'a' # - } # - } # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 1, # + 11 # + ], # + 'before' => { # + 'modifier' => '', # + 'rule' => { # + '_pos' => [ # + 9, # + 10 # + ], # + 'constant' => 'a' # + } # + } # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # }; # not ok 23 - TEST 23: ! after - ' ' - AST okay (len: 12) # @@ -1,29 +1,29 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 12 # - ], # + 0, # + 12 # + ], # 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 1, # - 11 # - ], # - 'after' => { # - 'modifier' => '!', # - 'rule' => { # - '_pos' => [ # - 9, # - 10 # - ], # - 'constant' => 'a' # - } # - } # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 1, # + 11 # + ], # + 'after' => { # + 'modifier' => '!', # + 'rule' => { # + '_pos' => [ # + 9, # + 10 # + ], # + 'constant' => 'a' # + } # + } # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # }; # not ok 24 - TEST 24: ! before - ' ' - AST okay (len: 13) # @@ -1,29 +1,29 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 13 # - ], # + 0, # + 13 # + ], # 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 1, # - 12 # - ], # - 'before' => { # - 'modifier' => '!', # - 'rule' => { # - '_pos' => [ # - 10, # - 11 # - ], # - 'constant' => 'a' # - } # - } # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 1, # + 12 # + ], # + 'before' => { # + 'modifier' => '!', # + 'rule' => { # + '_pos' => [ # + 10, # + 11 # + ], # + 'constant' => 'a' # + } # + } # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # }; # not ok 25 - TEST 25: charset - ' <[abcd]> ' - AST okay (len: 10) # @@ -1,22 +1,22 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 10 # - ], # + 0, # + 10 # + ], # 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 1, # - 9 # - ], # - 'char_class' => [ # - '+[abcd]' # - ] # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 1, # + 9 # + ], # + 'char_class' => [ # + '+[abcd]' # + ] # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # }; # not ok 26 - TEST 26: charset - ' <[ab]-[a]> ' - AST okay (len: 12) # @@ -1,41 +1,41 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 12 # - ], # + 0, # + 12 # + ], # 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 1, # - 11 # - ], # - 'char_class' => [ # - '+[ab]', # - bless( do{\(my $o = { # - 'bool' => \1, # - 'capture' => undef, # - 'from' => \6, # - 'match' => [], # - 'named' => { # - 'char_class' => bless( do{\(my $o = { # - 'bool' => \1, # - 'capture' => undef, # - 'from' => \7, # - 'match' => [], # - 'named' => {}, # - 'str' => \' <[ab]-[a]> ', # - 'to' => \10 # - })}, 'Pugs::Runtime::Match' ) # - }, # - 'str' => \' <[ab]-[a]> ', # - 'to' => \10 # - })}, 'Pugs::Runtime::Match' ) # - ] # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 1, # + 11 # + ], # + 'char_class' => [ # + '+[ab]', # + bless( do{\(my $o = { # + 'bool' => \1, # + 'capture' => undef, # + 'from' => \6, # + 'match' => [], # + 'named' => { # + 'char_class' => bless( do{\(my $o = { # + 'bool' => \1, # + 'capture' => undef, # + 'from' => \7, # + 'match' => [], # + 'named' => {}, # + 'str' => \' <[ab]-[a]> ', # + 'to' => \10 # + })}, 'Pugs::Runtime::Match' ) # + }, # + 'str' => \' <[ab]-[a]> ', # + 'to' => \10 # + })}, 'Pugs::Runtime::Match' ) # + ] # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # }; # not ok 27 - TEST 27: dot - ' . ' - AST okay (len: 3) # @@ -1,20 +1,20 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 3 # - ], # + 0, # + 3 # + ], # 'quant' => { # - 'greedy' => '', # - 'quant' => '', # - 'term' => { # - '_pos' => [ # - 1, # - 2 # - ], # - 'dot' => 1 # - }, # - 'ws1' => ' ', # - 'ws2' => ' ', # - 'ws3' => '' # - } # + 'greedy' => '', # + 'quant' => '', # + 'term' => { # + '_pos' => [ # + 1, # + 2 # + ], # + 'dot' => 1 # + }, # + 'ws1' => ' ', # + 'ws2' => ' ', # + 'ws3' => '' # + } # }; # not ok 28 - TEST 28: non-greedy closures - ' a*? ' - AST okay (len: 5) # @@ -1,20 +1,20 @@ # $VAR1 = { # '_pos' => [ # - 0, # - 5 # - ], # + 0, # + 5 # + ], # 'quant' => { # - 'greedy' => '?', # - 'quant' => '*', # - 'term' => { # - '_pos' => [ # - 1, # - 2 # - ], # - 'constant' => 'a' # - }, # - 'ws1' => ' ', # - 'ws2' => '', # - 'ws3' => ' ' # - } # + 'greedy' => '?', # + 'quant' => '*', # + 'term' => { # + '_pos' => [ # + 1, # + 2 # + ], # + 'constant' => 'a' # + }, # + 'ws1' => ' ', # + 'ws2' => '', # + 'ws3' => ' ' # + } # }; # Dubious, test returned 28 (wstat 7168, 0x1c00) Failed 28/28 subtests t/declare/00-demo.t ...... 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.t .. 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.t_ generated. t/emitter/00-ratchet.t ... 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 ok Test Summary Report ------------------- t/ast/00-basic.t (Wstat: 7168 Tests: 28 Failed: 28) Failed tests: 1-28 Non-zero exit status: 28 Files=28, Tests=774, 16 wallclock secs ( 0.26 usr 0.00 sys + 14.23 cusr 0.66 csys = 15.15 CPU) Result: FAIL Failed 1/28 test programs. 28/774 subtests failed. make: *** [test_dynamic] Error 255 AGENT/Pugs-Compiler-Rule-0.28.tar.gz make test TEST_VERBOSE=1 -- NOT OK //hint// to see the cpan-testers results for installing this module, try: reports AGENT/Pugs-Compiler-Rule-0.28.tar.gz Finished 2010-02-22T21:09:20