use v6-alpha; use Test; use File::Spec; plan 1; use Kwid::Event::Parser; my $buffer = ""; my %events = ( # Elements start_element => -> ($event_type, @args) { given $event_type { when 'header' { my $size = @args.shift; $buffer ~= ""; } when 'list' { $buffer ~= "\n" } when 'item' { $buffer ~= "\n"; } when 'paragraph' { $buffer ~= "

\n" } when 'verbatim' { $buffer ~= "\n" } } }, # Modifiers start_modifier => -> ($mod) { given $mod { when "`" { $buffer ~= "" } when '*' { $buffer ~= "" } when '/' { $buffer ~= "" } } }, end_modifier => -> ($mod) { given $mod { when "`" { $buffer ~= "" } when '*' { $buffer ~= "" } when '/' { $buffer ~= "" } } }, # Text handling verbatim => -> ($text) { my @lines = split("\n", $text); for (@lines) -> $line { if ($line eq '') { $buffer ~= "\n"; } else { $buffer ~= " $line\n"; } } # trim the last newline $buffer .= chomp; }, string => -> ($str) { $buffer ~= $str } ); my $file = $?FILE; $file ~~ s:P5/basic.t/sample.kwid/; lives_ok { parse($file, %events); }, '... we parsed the sample file without die-ing'; diag $buffer;