my $grammar = q { entry: chunk(s) eodata { $item[1] } chunk: text | code text: m{[\w ]+} { qq(
$item[1]
); } code: opencode codetext closecode {$item[2] } opencode: m{} closecode: m{} codetext: m{[\w <\$]+(?=)} { qq(
) . CGI::escapeHTML($item[1]) . qq(
); } eodata: m{^\Z} };