This does not fully work for the example file because the grammar
for a test expression can span multiple lines which causes the HTML
in the line following the block expression to be detected as a test
expression instead of being detected as content.
\r
line_block_start\r
=\r
- line_block_open type:`blockstart` !("end") name:IDENTIFIER {SP}* parameters:[ block_parameters ] { !"\n" SP }* ":\n"\r
+ line_block_open type:`blockstart` !("end") name:IDENTIFIER {SP}* parameters:[ line_block_parameters ] { !"\n" SP }* [ ":" { !"\n" SP }* ] "\n"\r
;\r
\r
line_block_end\r
"\n" {SP}* @:"# " {SP}*\r
;\r
\r
+line_block_parameters\r
+ =\r
+ @+:block_parameter { { !"\n" SP }* @+:block_parameter }*\r
+ ;\r
+\r
implicit_identifier_tuple\r
=\r
tuple+:IDENTIFIER { {SP}* "," {SP}* tuple+:IDENTIFIER }+\r