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-01T19:05:58
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 F/FG/FGLOCK/Pugs-Compiler-Rule-0.37.tar.gz
Fetching with LWP:
http://cpan.nas.activestate.com/authors/id/F/FG/FGLOCK/Pugs-Compiler-Rule-0.37.tar.gz
Checksum for C:\cpanfly-5.14\var\cpan\sources\authors\id\F\FG\FGLOCK\Pugs-Compiler-Rule-0.37.tar.gz ok
Pugs-Compiler-Rule-0.37/
Pugs-Compiler-Rule-0.37/Changes
Pugs-Compiler-Rule-0.37/examples/
Pugs-Compiler-Rule-0.37/examples/adder.grammar
Pugs-Compiler-Rule-0.37/examples/adder.input
Pugs-Compiler-Rule-0.37/examples/digits.grammar
Pugs-Compiler-Rule-0.37/examples/digits.input
Pugs-Compiler-Rule-0.37/examples/Grammar.grammar
Pugs-Compiler-Rule-0.37/examples/grammar.input
Pugs-Compiler-Rule-0.37/examples/langs.grammar
Pugs-Compiler-Rule-0.37/examples/langs.input
Pugs-Compiler-Rule-0.37/examples/langs2.grammar
Pugs-Compiler-Rule-0.37/inc/
Pugs-Compiler-Rule-0.37/inc/Module/
Pugs-Compiler-Rule-0.37/inc/Module/Install/
Pugs-Compiler-Rule-0.37/inc/Module/Install/Base.pm
Pugs-Compiler-Rule-0.37/inc/Module/Install/Can.pm
Pugs-Compiler-Rule-0.37/inc/Module/Install/Fetch.pm
Pugs-Compiler-Rule-0.37/inc/Module/Install/Include.pm
Pugs-Compiler-Rule-0.37/inc/Module/Install/Makefile.pm
Pugs-Compiler-Rule-0.37/inc/Module/Install/Metadata.pm
Pugs-Compiler-Rule-0.37/inc/Module/Install/Scripts.pm
Pugs-Compiler-Rule-0.37/inc/Module/Install/TestBase.pm
Pugs-Compiler-Rule-0.37/inc/Module/Install/Win32.pm
Pugs-Compiler-Rule-0.37/inc/Module/Install/WriteAll.pm
Pugs-Compiler-Rule-0.37/inc/Module/Install.pm
Pugs-Compiler-Rule-0.37/inc/Spiffy.pm
Pugs-Compiler-Rule-0.37/inc/Test/
Pugs-Compiler-Rule-0.37/inc/Test/Base/
Pugs-Compiler-Rule-0.37/inc/Test/Base/Filter.pm
Pugs-Compiler-Rule-0.37/inc/Test/Base.pm
Pugs-Compiler-Rule-0.37/inc/Test/Builder/
Pugs-Compiler-Rule-0.37/inc/Test/Builder/Module.pm
Pugs-Compiler-Rule-0.37/inc/Test/Builder.pm
Pugs-Compiler-Rule-0.37/inc/Test/More.pm
Pugs-Compiler-Rule-0.37/lib/
Pugs-Compiler-Rule-0.37/lib/Pugs/
Pugs-Compiler-Rule-0.37/lib/Pugs/AST/
Pugs-Compiler-Rule-0.37/lib/Pugs/AST/Expression.pm
Pugs-Compiler-Rule-0.37/lib/Pugs/Compiler/
Pugs-Compiler-Rule-0.37/lib/Pugs/Compiler/Grammar.pm
Pugs-Compiler-Rule-0.37/lib/Pugs/Compiler/Regex.pm
Pugs-Compiler-Rule-0.37/lib/Pugs/Compiler/RegexPerl5.pm
Pugs-Compiler-Rule-0.37/lib/Pugs/Compiler/Rule.pm
Pugs-Compiler-Rule-0.37/lib/Pugs/Compiler/Token.pm
Pugs-Compiler-Rule-0.37/lib/Pugs/Emitter/
Pugs-Compiler-Rule-0.37/lib/Pugs/Emitter/Grammar/
Pugs-Compiler-Rule-0.37/lib/Pugs/Emitter/Grammar/Perl5.pm
Pugs-Compiler-Rule-0.37/lib/Pugs/Emitter/Rule/
Pugs-Compiler-Rule-0.37/lib/Pugs/Emitter/Rule/Parsec.pm
Pugs-Compiler-Rule-0.37/lib/Pugs/Emitter/Rule/Perl5/
Pugs-Compiler-Rule-0.37/lib/Pugs/Emitter/Rule/Perl5/CharClass.pm
Pugs-Compiler-Rule-0.37/lib/Pugs/Emitter/Rule/Perl5/Ratchet.pm
Pugs-Compiler-Rule-0.37/lib/Pugs/Emitter/Rule/Perl5/Regex.pm
Pugs-Compiler-Rule-0.37/lib/Pugs/Emitter/Rule/Perl5.pm
Pugs-Compiler-Rule-0.37/lib/Pugs/Emitter/Rule/Perl6/
Pugs-Compiler-Rule-0.37/lib/Pugs/Emitter/Rule/Perl6/Ratchet.pm
Pugs-Compiler-Rule-0.37/lib/Pugs/Grammar/
Pugs-Compiler-Rule-0.37/lib/Pugs/Grammar/Base.pm
Pugs-Compiler-Rule-0.37/lib/Pugs/Grammar/Precedence.pm
Pugs-Compiler-Rule-0.37/lib/Pugs/Grammar/Rule.pm
Pugs-Compiler-Rule-0.37/lib/Pugs/Grammar/Rule.pmc
Pugs-Compiler-Rule-0.37/lib/Pugs/Grammar/Rule2.pm
Pugs-Compiler-Rule-0.37/lib/Pugs/Grammar/RulePure.pm
Pugs-Compiler-Rule-0.37/lib/Pugs/Runtime/
Pugs-Compiler-Rule-0.37/lib/Pugs/Runtime/Common.pm
Pugs-Compiler-Rule-0.37/lib/Pugs/Runtime/Match/
Pugs-Compiler-Rule-0.37/lib/Pugs/Runtime/Match/HsBridge.pm
Pugs-Compiler-Rule-0.37/lib/Pugs/Runtime/Match.pm
Pugs-Compiler-Rule-0.37/lib/Pugs/Runtime/Regex.pm
Pugs-Compiler-Rule-0.37/lib/Pugs/Runtime/Rule.pm
Pugs-Compiler-Rule-0.37/lib/Pugs/Runtime/StrPos.pm
Pugs-Compiler-Rule-0.37/lib/Pugs/Runtime/Tracer.pm
Pugs-Compiler-Rule-0.37/Makefile.PL
Pugs-Compiler-Rule-0.37/MANIFEST
Pugs-Compiler-Rule-0.37/MANIFEST.SKIP
Pugs-Compiler-Rule-0.37/META.yml
Pugs-Compiler-Rule-0.37/README
Pugs-Compiler-Rule-0.37/t/
Pugs-Compiler-Rule-0.37/t/00-pod-coverage.t
Pugs-Compiler-Rule-0.37/t/00-pod.t
Pugs-Compiler-Rule-0.37/t/01-iterator_engine.t
Pugs-Compiler-Rule-0.37/t/02-grammar.t
Pugs-Compiler-Rule-0.37/t/03-match.t
Pugs-Compiler-Rule-0.37/t/04-compiler-grammar.t
Pugs-Compiler-Rule-0.37/t/04-compiler-regex.t
Pugs-Compiler-Rule-0.37/t/04-compiler-rule.t
Pugs-Compiler-Rule-0.37/t/04-rule.t
Pugs-Compiler-Rule-0.37/t/05-var.t
Pugs-Compiler-Rule-0.37/t/06-subrule.t
Pugs-Compiler-Rule-0.37/t/08-hash.t
Pugs-Compiler-Rule-0.37/t/09-ratchet.t
Pugs-Compiler-Rule-0.37/t/10-regex_perl5.t
Pugs-Compiler-Rule-0.37/t/11-parsec.t
Pugs-Compiler-Rule-0.37/t/11-quantifier.t
Pugs-Compiler-Rule-0.37/t/12-plain_regex.t
Pugs-Compiler-Rule-0.37/t/13-char_classes.t
Pugs-Compiler-Rule-0.37/t/14-mini_perl6.t
Pugs-Compiler-Rule-0.37/t/15-STD.t
Pugs-Compiler-Rule-0.37/t/16-examples.t
Pugs-Compiler-Rule-0.37/t/16-safemode.t
Pugs-Compiler-Rule-0.37/t/16-tracer-examples.t
Pugs-Compiler-Rule-0.37/t/17-tracer.t
Pugs-Compiler-Rule-0.37/t/ast/
Pugs-Compiler-Rule-0.37/t/ast/00-basic.t
Pugs-Compiler-Rule-0.37/t/declare/
Pugs-Compiler-Rule-0.37/t/declare/00-demo.t
Pugs-Compiler-Rule-0.37/t/declare/01-sigspace.t
Pugs-Compiler-Rule-0.37/t/emitter/
Pugs-Compiler-Rule-0.37/t/emitter/00-ratchet.t
Pugs-Compiler-Rule-0.37/t/lib/
Pugs-Compiler-Rule-0.37/t/lib/AST.pm
Pugs-Compiler-Rule-0.37/t/lib/Emitter.pm
Pugs-Compiler-Rule-0.37/t/lib/Regex.pm
Pugs-Compiler-Rule-0.37/t/lib/Util.pm
Pugs-Compiler-Rule-0.37/TODO
Pugs-Compiler-Rule-0.37/tracer/
Pugs-Compiler-Rule-0.37/tracer/jquery.js
Pugs-Compiler-Rule-0.37/tracer/tracer.js
Pugs-Compiler-Rule-0.37/util/
Pugs-Compiler-Rule-0.37/util/compile_p6grammar.pl
Pugs-Compiler-Rule-0.37/util/gen-tracer-view.pl
Pugs-Compiler-Rule-0.37/util/patch-rule-pmc.pl
Pugs-Compiler-Rule-0.37/util/update-rule-pmc
Pugs-Compiler-Rule-0.37/util/update-rule-pmc-obsolete
Pugs-Compiler-Rule-0.37/util/update-tracer-demos
CPAN.pm: Going to build F/FG/FGLOCK/Pugs-Compiler-Rule-0.37.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.37-dO1OKM\blib/script/compile_p6grammar.pl)
Already seen in C:\cpanfly-5.14\var\cpan\build\Pugs-Compiler-Rule-0.37-dO1OKM\blib/script/compile_p6grammar.bat
FGLOCK/Pugs-Compiler-Rule-0.37.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{I1272} = $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{I1272} ) && 0 ) )
##
&&
##
## pos: 39 45
( ( $pad{I1273} = $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{I1273} ) && 0 ) )
##
&&
##
## pos: 45 56
( ( $pad{I1274} = $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{I1274} ) && 0 ) )
##
&&
##
## pos: 56 63
(
( ( $pad{I1275} = $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{I1275} ) && 0 ) )
|| ( $bool = 1 )
)
##
&&
##
## pos: 63 67
( ( $pad{I1276} = $pos or 1 ) &&
##
## pos: 63 66
( ( substr( $s, $pos, 1 ) eq ';' )
? ( $pos += 1 or 1 )
: 0
)
##
|| ( ( $pos = $pad{I1276} ) && 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{I1277} = $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{I1278} = $pos or 1 ) &&
##
## pos: 84 85
( ( substr( $s, $pos, 1 ) eq 't' )
? ( $pos += 1 or 1 )
: 0
)
##
|| ( ( $pos = $pad{I1278} ) && 0 ) )
##
)
##
)
|| (
( ( $bool = 1 ) && ( $pos = $pad{I1277} ) or 1 )
&& ##
## pos: 87 94
(
##
## pos: 87 89
( ( $pad{I1279} = $pos or 1 ) &&
##
## pos: 88 89
( ( substr( $s, $pos, 1 ) eq 'f' )
? ( $pos += 1 or 1 )
: 0
)
##
|| ( ( $pos = $pad{I1279} ) && 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{I1280} = $pos or 1 ) &&
##
## pos: 92 93
( ( substr( $s, $pos, 1 ) eq 't' )
? ( $pos += 1 or 1 )
: 0
)
##
|| ( ( $pos = $pad{I1280} ) && 0 ) )
##
)
##
)
|| (
( ( $bool = 1 ) && ( $pos = $pad{I1277} ) or 1 )
&& ##
## pos: 95 103
(
##
## pos: 95 97
( ( $pad{I1281} = $pos or 1 ) &&
##
## pos: 96 97
( ( substr( $s, $pos, 1 ) eq 'd' )
? ( $pos += 1 or 1 )
: 0
)
##
|| ( ( $pos = $pad{I1281} ) && 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{I1282} = $pos or 1 ) &&
##
## pos: 101 102
( ( substr( $s, $pos, 1 ) eq 'e' )
? ( $pos += 1 or 1 )
: 0
)
##
|| ( ( $pos = $pad{I1282} ) && 0 ) )
##
)
##
)
|| (
( ( $bool = 1 ) && ( $pos = $pad{I1277} ) or 1 )
&& ##
## pos: 104 110
(
##
## pos: 104 106
( ( $pad{I1283} = $pos or 1 ) &&
##
## pos: 105 106
( ( substr( $s, $pos, 1 ) eq 'c' )
? ( $pos += 1 or 1 )
: 0
)
##
|| ( ( $pos = $pad{I1283} ) && 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{I1284} = $pos or 1 ) &&
##
## pos: 108 109
( ( substr( $s, $pos, 1 ) eq 'r' )
? ( $pos += 1 or 1 )
: 0
)
##
|| ( ( $pos = $pad{I1284} ) && 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{I1285} = $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{I1285} ) && 0 ) )
)
##
&&
##
## pos: 142 149
(
( ( $pad{I1286} = $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{I1286} ) && 0 ) )
|| ( $bool = 1 )
)
##
&&
##
## pos: 149 173
do { while (
( ( $pad{I1287} = $pos or 1 ) &&
##
## pos: 150 170
(
##
## pos: 150 155
( ( $pad{I1288} = $pos or 1 ) &&
##
## pos: 151 154
( ( substr( $s, $pos, 1 ) eq ',' )
? ( $pos += 1 or 1 )
: 0
)
##
|| ( ( $pos = $pad{I1288} ) && 0 ) )
##
&&
##
## pos: 155 162
(
( ( $pad{I1289} = $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{I1289} ) && 0 ) )
|| ( $bool = 1 )
)
##
&&
##
## pos: 162 170
( ( $pad{I1290} = $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{I1290} ) && 0 ) )
##
)
##
|| ( ( $pos = $pad{I1287} ) && 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.37-dO1OKM\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..25
ok 1 - use Pugs::Compiler::Token;
ok 2 - use Pugs::Compiler::Rule;
ok 3 - <+alpha+digit>
ok 4 - <+[user char class]>
ok 5 - <+[user char class]+class>
ok 6 - <+[user char class]+class>
ok 7 - not-ws in quantified subrule
ok 8 - ^<+alpha>$ token
ok 9 - ^<+alpha>$ regex
ok 10 - ^<-alpha>$ token
ok 11 - ^<-alpha>$ regex
ok 12 - b
ok 13 - ^<+[ax]>$ token
ok 14 - ^<+[ax]>$ regex
ok 15 - ^<-[ax]>$ token
ok 16 - ^<-[ax]>$ regex
ok 17 - 3 ^<+[a..z]-[bx]>$ regex
ok 18 - a
ok 19 - b
ok 20 - 3 unicode regex
ok 21 - A
ok 22 - b
ok 23 - 3 ^<+[a..z]-[bx]>$ regex
ok 24 - a
ok 25 - b
ok
t/14-mini_perl6.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
t/16-safemode.t ..........
1..6
ok 1 - langs.grammar compiles okay
ok 2 - 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 3 - debugging output count ok
ok 4 - langs2.grammar compiles okay
ok 5 - 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 6 - debugging output count ok
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=773, 19 wallclock secs ( 0.28 usr + 0.05 sys = 0.33 CPU)
Result: FAIL
Failed 2/28 test programs. 28/773 subtests failed.
NMAKE : fatal error U1077: 'C:\Perl-5.14\bin\perl.exe' : return code '0xff'
Stop.
FGLOCK/Pugs-Compiler-Rule-0.37.tar.gz
nmake test TEST_VERBOSE=1 -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:
reports FGLOCK/Pugs-Compiler-Rule-0.37.tar.gz
Finished 2011-05-01T19:06:24