PATH=C:\Program Files\Microsoft Platform SDK\Bin;C:\Program Files\Microsoft Platform SDK\Bin\WinNT;C:\Program Files\Microsoft Visual Studio\VC98\Bin;C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin;C:\Perl-5.14\site\bin;C:\Perl-5.14\bin;C:\cygwin\bin;C:\Program Files\Perforce;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\system32\WindowsPowerShell\v1.0;C:\mysql\bin Start 2011-05-02T13:39:12 ActivePerl-1400 CPAN-1.9402 LIB=C:\PROGRA~1\MICROS~3\VC98\Lib\PSDK;C:\PROGRA~1\MICROS~2\Lib;C:\PROGRA~1\MICROS~3\VC98\Lib;C:\PROGRA~1\MICROS~3\VC98\MFC\Lib INCLUDE=C:\PROGRA~1\MICROS~2\Include;C:\PROGRA~1\MICROS~3\VC98\ATL\Include;C:\PROGRA~1\MICROS~3\VC98\Include;C:\PROGRA~1\MICROS~3\VC98\MFC\Include PATH=C:/CPANFL~1.14/var/libs/bin;C:\PROGRA~1\MICROS~2\Bin;C:\PROGRA~1\MICROS~2\Bin\WinNT;C:\PROGRA~1\MICROS~3\VC98\Bin;C:\PROGRA~1\MICROS~3\Common\MSDev98\Bin;C:\Perl-5.14\site\bin;C:\Perl-5.14\bin;C:\cygwin\bin;C:\PROGRA~1\Perforce;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\system32\WINDOW~2\v1.0;C:\mysql\bin Going to read 'C:\cpanfly-5.14\var\cpan\Metadata' Database was generated on Sun, 01 May 2011 22:29:11 GMT Running make for A/AG/AGENT/Pugs-Compiler-Rule-0.28.tar.gz Fetching with LWP: http://cpan.nas.activestate.com/authors/id/A/AG/AGENT/Pugs-Compiler-Rule-0.28.tar.gz Checksum for C:\cpanfly-5.14\var\cpan\sources\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 >>> C:\Perl-5.14\bin\perl.exe Makefile.PL In releng mode... Checking if your kit is complete... Looks good Writing Makefile for Pugs::Compiler::Rule Writing MYMETA.yml >>> nmake Microsoft (R) Program Maintenance Utility Version 7.00.8882 Copyright (C) Microsoft Corp 1988-2000. All rights reserved. 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/Grammar/Perl5.pm blib\lib\Pugs\Emitter\Grammar\Perl5.pm cp lib/Pugs/Emitter/Rule/Perl5/Regex.pm blib\lib\Pugs\Emitter\Rule\Perl5\Regex.pm cp lib/Pugs/Grammar/Base.pm blib\lib\Pugs\Grammar\Base.pm cp lib/Pugs/Runtime/Rule.pm blib\lib\Pugs\Runtime\Rule.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/Compiler/Regex.pm blib\lib\Pugs\Compiler\Regex.pm cp lib/Pugs/Runtime/Match/HsBridge.pm blib\lib\Pugs\Runtime\Match\HsBridge.pm cp lib/Pugs/Runtime/StrPos.pm blib\lib\Pugs\Runtime\StrPos.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/Grammar/Rule.pmc blib\lib\Pugs\Grammar\Rule.pmc cp lib/Pugs/Runtime/Regex.pm blib\lib\Pugs\Runtime\Regex.pm 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 C:\Perl-5.14\bin\perl.exe "-Iinc" -MExtUtils::Command -e "cp" -- util/compile_p6grammar.pl blib\script\compile_p6grammar.pl pl2bat.bat blib\script\compile_p6grammar.pl Duplicate POD found (shadowing?): script::compile_p6grammar (C:\cpanfly-5.14\var\cpan\build\Pugs-Compiler-Rule-0.28-pl9F1U\blib/script/compile_p6grammar.pl) Already seen in C:\cpanfly-5.14\var\cpan\build\Pugs-Compiler-Rule-0.28-pl9F1U\blib/script/compile_p6grammar.bat AGENT/Pugs-Compiler-Rule-0.28.tar.gz nmake -- OK Running make test >>> nmake test TEST_VERBOSE=1 Microsoft (R) Program Maintenance Utility Version 7.00.8882 Copyright (C) Microsoft Corp 1988-2000. All rights reserved. Skip blib\lib\Pugs\Emitter\Rule\Parsec.pm (unchanged) Skip blib\lib\Pugs\Grammar\Rule2.pm (unchanged) Skip blib\lib\Pugs\Runtime\Match.pm (unchanged) Skip blib\lib\Pugs\Compiler\Rule.pm (unchanged) Skip blib\lib\Pugs\Emitter\Rule\Perl5\CharClass.pm (unchanged) Skip blib\lib\Pugs\Grammar\Rule.pm (unchanged) Skip blib\lib\Pugs\Emitter\Rule\Perl5.pm (unchanged) Skip blib\lib\Pugs\Grammar\Precedence.pm (unchanged) Skip blib\lib\Pugs\Emitter\Grammar\Perl5.pm (unchanged) Skip blib\lib\Pugs\Emitter\Rule\Perl5\Regex.pm (unchanged) Skip blib\lib\Pugs\Grammar\Base.pm (unchanged) Skip blib\lib\Pugs\Runtime\Rule.pm (unchanged) Skip blib\lib\Pugs\Compiler\Grammar.pm (unchanged) Skip blib\lib\Pugs\Emitter\Rule\Perl5\Ratchet.pm (unchanged) Skip blib\lib\Pugs\Compiler\Regex.pm (unchanged) Skip blib\lib\Pugs\Runtime\Match\HsBridge.pm (unchanged) Skip blib\lib\Pugs\Runtime\StrPos.pm (unchanged) Skip blib\lib\Pugs\Runtime\Common.pm (unchanged) Skip blib\lib\Pugs\Runtime\Tracer.pm (unchanged) Skip blib\lib\Pugs\AST\Expression.pm (unchanged) Skip blib\lib\Pugs\Grammar\Rule.pmc (unchanged) Skip blib\lib\Pugs\Runtime\Regex.pm (unchanged) Skip blib\lib\Pugs\Emitter\Rule\Perl6\Ratchet.pm (unchanged) Skip blib\lib\Pugs\Compiler\Token.pm (unchanged) Skip blib\lib\Pugs\Grammar\RulePure.pm (unchanged) Skip blib\lib\Pugs\Compiler\RegexPerl5.pm (unchanged) C:\Perl-5.14\bin\perl.exe "-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..27 ok 1 - POD test for blib\script\compile_p6grammar.bat ok 2 - POD test for blib\script\compile_p6grammar.pl ok 3 - POD test for blib\lib\Pugs\AST\Expression.pm (no pod) ok 4 - POD test for blib\lib\Pugs\Compiler\Grammar.pm ok 5 - POD test for blib\lib\Pugs\Compiler\Regex.pm ok 6 - POD test for blib\lib\Pugs\Compiler\RegexPerl5.pm ok 7 - POD test for blib\lib\Pugs\Compiler\Rule.pm ok 8 - POD test for blib\lib\Pugs\Compiler\Token.pm ok 9 - POD test for blib\lib\Pugs\Grammar\Base.pm ok 10 - POD test for blib\lib\Pugs\Grammar\Precedence.pm ok 11 - POD test for blib\lib\Pugs\Grammar\Rule.pm (no pod) ok 12 - POD test for blib\lib\Pugs\Grammar\Rule2.pm ok 13 - POD test for blib\lib\Pugs\Grammar\RulePure.pm (no pod) ok 14 - POD test for blib\lib\Pugs\Runtime\Common.pm (no pod) ok 15 - POD test for blib\lib\Pugs\Runtime\Match.pm ok 16 - POD test for blib\lib\Pugs\Runtime\Regex.pm ok 17 - POD test for blib\lib\Pugs\Runtime\Rule.pm (no pod) ok 18 - POD test for blib\lib\Pugs\Runtime\StrPos.pm ok 19 - POD test for blib\lib\Pugs\Runtime\Tracer.pm ok 20 - POD test for blib\lib\Pugs\Emitter\Grammar\Perl5.pm ok 21 - POD test for blib\lib\Pugs\Emitter\Rule\Parsec.pm (no pod) ok 22 - POD test for blib\lib\Pugs\Emitter\Rule\Perl5.pm (no pod) ok 23 - POD test for blib\lib\Pugs\Runtime\Match\HsBridge.pm (no pod) ok 24 - POD test for blib\lib\Pugs\Emitter\Rule\Perl5\CharClass.pm (no pod) ok 25 - POD test for blib\lib\Pugs\Emitter\Rule\Perl5\Ratchet.pm ok 26 - POD test for blib\lib\Pugs\Emitter\Rule\Perl5\Regex.pm ok 27 - POD test for 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{I1282} = $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{I1282} ) && 0 ) ) ## && ## ## pos: 39 45 ( ( $pad{I1283} = $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{I1283} ) && 0 ) ) ## && ## ## pos: 45 56 ( ( $pad{I1284} = $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{I1284} ) && 0 ) ) ## && ## ## pos: 56 63 ( ( ( $pad{I1285} = $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{I1285} ) && 0 ) ) || ( $bool = 1 ) ) ## && ## ## pos: 63 67 ( ( $pad{I1286} = $pos or 1 ) && ## ## pos: 63 66 ( ( substr( $s, $pos, 1 ) eq ';' ) ? ( $pos += 1 or 1 ) : 0 ) ## || ( ( $pos = $pad{I1286} ) && 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{I1287} = $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{I1288} = $pos or 1 ) && ## ## pos: 84 85 ( ( substr( $s, $pos, 1 ) eq 't' ) ? ( $pos += 1 or 1 ) : 0 ) ## || ( ( $pos = $pad{I1288} ) && 0 ) ) ## ) ## ) || ( ( ( $bool = 1 ) && ( $pos = $pad{I1287} ) or 1 ) && ## ## pos: 87 94 ( ## ## pos: 87 89 ( ( $pad{I1289} = $pos or 1 ) && ## ## pos: 88 89 ( ( substr( $s, $pos, 1 ) eq 'f' ) ? ( $pos += 1 or 1 ) : 0 ) ## || ( ( $pos = $pad{I1289} ) && 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{I1290} = $pos or 1 ) && ## ## pos: 92 93 ( ( substr( $s, $pos, 1 ) eq 't' ) ? ( $pos += 1 or 1 ) : 0 ) ## || ( ( $pos = $pad{I1290} ) && 0 ) ) ## ) ## ) || ( ( ( $bool = 1 ) && ( $pos = $pad{I1287} ) or 1 ) && ## ## pos: 95 103 ( ## ## pos: 95 97 ( ( $pad{I1291} = $pos or 1 ) && ## ## pos: 96 97 ( ( substr( $s, $pos, 1 ) eq 'd' ) ? ( $pos += 1 or 1 ) : 0 ) ## || ( ( $pos = $pad{I1291} ) && 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{I1292} = $pos or 1 ) && ## ## pos: 101 102 ( ( substr( $s, $pos, 1 ) eq 'e' ) ? ( $pos += 1 or 1 ) : 0 ) ## || ( ( $pos = $pad{I1292} ) && 0 ) ) ## ) ## ) || ( ( ( $bool = 1 ) && ( $pos = $pad{I1287} ) or 1 ) && ## ## pos: 104 110 ( ## ## pos: 104 106 ( ( $pad{I1293} = $pos or 1 ) && ## ## pos: 105 106 ( ( substr( $s, $pos, 1 ) eq 'c' ) ? ( $pos += 1 or 1 ) : 0 ) ## || ( ( $pos = $pad{I1293} ) && 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{I1294} = $pos or 1 ) && ## ## pos: 108 109 ( ( substr( $s, $pos, 1 ) eq 'r' ) ? ( $pos += 1 or 1 ) : 0 ) ## || ( ( $pos = $pad{I1294} ) && 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{I1295} = $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{I1295} ) && 0 ) ) ) ## && ## ## pos: 142 149 ( ( ( $pad{I1296} = $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{I1296} ) && 0 ) ) || ( $bool = 1 ) ) ## && ## ## pos: 149 173 do { while ( ( ( $pad{I1297} = $pos or 1 ) && ## ## pos: 150 170 ( ## ## pos: 150 155 ( ( $pad{I1298} = $pos or 1 ) && ## ## pos: 151 154 ( ( substr( $s, $pos, 1 ) eq ',' ) ? ( $pos += 1 or 1 ) : 0 ) ## || ( ( $pos = $pad{I1298} ) && 0 ) ) ## && ## ## pos: 155 162 ( ( ( $pad{I1299} = $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{I1299} ) && 0 ) ) || ( $bool = 1 ) ) ## && ## ## pos: 162 170 ( ( $pad{I1300} = $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{I1300} ) && 0 ) ) ## ) ## || ( ( $pos = $pad{I1297} ) && 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 Error in evaluation: Couldn't find '%test' in surrounding lexical scope. at C:\cpanfly-5.14\var\cpan\build\Pugs-Compiler-Rule-0.28-pl9F1U\blib\lib/Pugs/Compiler/Regex.pm line 132 Source: do { package Pugs::Runtime::Regex; my $matcher = concat( constant( q!x! ) , constant( q!x! ) , hash( get_variable( '%test' ) ) , constant( q!y! ) , constant( q!y! ) ) ; my $rule; $rule = sub { my $tree; if ( defined $_[3]{p} && ! $_[3]{continue} ) { $matcher->( $_[1], $_[2], $tree, $tree, $_[0], $_[3]{p}, $_[1], $_[3] ); } else { $_[3]{p} ||= 0; for my $pos ( $_[3]{p} .. length( $_[1] ) ) { my $param = { %{$_[3]}, p => $pos }; $matcher->( $_[1], $_[2], $tree, $tree, $_[0], $pos, $_[1], $param ); last if $tree; } $tree = Pugs::Grammar::Base->no_match(@_) unless defined $tree; } my $cap = $tree->data->{capture}; if ( ref $cap eq 'CODE' ) { $::_V6_MATCH_ = $tree; $tree->data->{capture} = \($cap->( $tree )); }; if ( $tree ) { # $::_V6_PRIOR_ = $rule my $prior = $::_V6_PRIOR_; $::_V6_PRIOR_ = sub { local $main::_V6_PRIOR_ = $prior; $rule->(@_); }; } return $tree; } } # Looks like you planned 8 tests but only ran 7. # Looks like your test died just after 7. 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 Dubious, test returned 255 (wstat 65280, 0xff00) Failed 1/8 subtests 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 [ C:\Perl-5.14\bin\perl.exe -Ilib -Itmp -MAdder -e "print Adder->add('3 + 23')->()" ] okay ok 3 - adder.grammar compiles okay ok 4 - output of [ C:\Perl-5.14\bin\perl.exe -Ilib -Itmp -MAdder -e "print Adder->add('532+49')->()" ] okay ok 5 - digits.grammar compiles okay ok 6 - output of [ C:\Perl-5.14\bin\perl.exe -Ilib -Itmp -MDigits -e "print Digits->count('49a3')->()" ] okay ok 7 - langs.grammar compiles okay ok 8 - output of [ C:\Perl-5.14\bin\perl.exe -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 [ C:\Perl-5.14\bin\perl.exe -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 [ C:\Perl-5.14\bin\perl.exe -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 [ C:\Perl-5.14\bin\perl.exe -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 [ C:\Perl-5.14\bin\perl.exe -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 [ C:\Perl-5.14\bin\perl.exe -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 [ C:\Perl-5.14\bin\perl.exe -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 [ C:\Perl-5.14\bin\perl.exe -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 [ C:\Perl-5.14\bin\perl.exe -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 [ C:\Perl-5.14\bin\perl.exe -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 [ C:\Perl-5.14\bin\perl.exe -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/08-hash.t (Wstat: 65280 Tests: 7 Failed: 0) Non-zero exit status: 255 Parse errors: Bad plan. You planned 8 tests but ran 7. t/ast/00-basic.t (Wstat: 7168 Tests: 28 Failed: 28) Failed tests: 1-28 Non-zero exit status: 28 Files=28, Tests=774, 22 wallclock secs ( 0.33 usr + 0.09 sys = 0.42 CPU) Result: FAIL Failed 2/28 test programs. 28/774 subtests failed. NMAKE : fatal error U1077: 'C:\Perl-5.14\bin\perl.exe' : return code '0xff' Stop. AGENT/Pugs-Compiler-Rule-0.28.tar.gz nmake 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 2011-05-02T13:39:41