Петрушка сопоставляет грамматику с целым документом.
Если вы хотите разрешить ему анализировать частичный документ, вам нужно определить свою грамматику так, чтобы отсутствующие части были необязательными.
Одним из подходов может быть определение грамматики, которая будет соответствовать любым элементам из заголовка, и определение группы захвата 'the_rest', которая соответствует 'any.repeat'
Тогда вы можете рекурсивно вызывать синтаксический анализатор каждый раз, когда вы получаете больше документов ... с "остальными" плюс все, что вы прочитали.
Каждый раз, когда вы звоните, вы возвращаете одну часть заголовка.