Grammar code:
auto const tild_once_section_def =
tild_once_case
>> tild_else_case
>> omit[sk[lit("{{") >> '~' >> "end" >> -lit("once") >> "}}"]]
;
auto const tild_else_case_def =
-(omit[sk[lit("{{") >> '~' >> "else" >> "}}"]]
>> node_list)
;
For details, see boostorg/spirit#533 (comment)