use 5.010; use warnings; use Test::More 'no_plan'; my $parser = do{ use Regexp::Grammars; qr{ | | | 1)> \d++ ' ' | <[Dash=(-)]> ** <[Dot=(\.)]> }xms }; ok +("'abc'" =~ $parser) => 'Matched str'; is_deeply $/{str}, { q{} => "'abc'", content => 'abc' } => 'Unflattened correctly'; ok +(42 =~ $parser) => 'Matched num'; is $/{num}, 42 => 'Flattened correctly'; ok +('true' =~ $parser) => 'Matched true'; is $/{bool}, 't' => 'Flattened correctly'; ok +('false' =~ $parser) => 'Matched false'; is $/{bool}, 'alse' => 'Flattened correctly'; ok +('-.-.-' =~ $parser) => 'Matched list'; is_deeply $/{list}, { q{}=>'-.-.-', Dash=>['-','-','-'], Dot=>['.','.'] } => 'Flattened correctly'; ok +('-' =~ $parser) => 'Matched minimized list'; is $/{list}, '-' => 'Flattened correctly';