OPCOMMENT = Optional(COMMENT)
IDENT = Word(alphas, alphanums + '_')
attribute = IDENT + Suppress(':') + Word(alphanums) + OPCOMMENT
element = Suppress('-') + IDENT + OPCOMMENT
Простая демонстрация рекурсивного использования indentedBlock pyparsing