use Perl6::Rules; use Test::Simple 'no_plan'; grammar Other { rule abc { a () c } rule bee { b } rule def { d f } rule eh { e } } rule bee { B } ok( 'abc' =~ m/^ () $/, "" ); ok( $0 eq "abc", 'abc $0'); ok( $1 eq "abc", 'abc $1'); ok( 'abc' =~ m/ () /, "" ); ok( $0 eq "b", 'bee $0'); ok( $1 eq "b", 'bee $1'); ok( 'def' =~ m/^ () $/, "()" ); ok( $0 eq "def", 'def $0'); ok( $1 eq "def", 'def $1'); ok( 'def' =~ m/^ $/, "" ); ok( $0 eq "def", '?def $0'); ok( $1 ne "def", '?def $1'); ok( $0->{def} eq "def", '?def $0{def}'); ok( $0->{def}{eh} eq "e", '?def $0{def}{eh}'); ok( 'abc' !~ m/ () /, "" ); ok( !eval { 'abc' =~ m/ () / }, "" ); ok( $@ eq "Cannot match unknown named rule: \n", "Error msg");