У меня есть следующий фрагмент с рекурсивным оператором из синтаксического анализатора:
def parse_query(querystr):
# <<other parsing stuff>>
queryexpression = querycondition + ZeroOrMore(Word("and") + querycondition)
try:
return queryexpression.parseString(querystr)
except ParseException as e:
logger.debug("Error parsing '{0}': \n {1}".format(querystr, e))
return None
когда я передаю этот запрос:
tokens = parse_query("HR:EE > -28.9 and BL:AA = 0 THISISNOTAND KLAS:TT eq true")
print(tokens)
он выдает:
[['HR', ':', 'EE', '>', '-28.9'], 'and', ['BL', ':', 'AA', '=', '0']]
и просто молча пропускает последнее условие.Исключение не выброшено.
Как отловить ошибку в этой строке?