내가 가지고 대한 파싱 파서에서 재귀 문을 다음 코드 :대한 파싱의 재귀 예외 throw하지 않습니다
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']]
그냥 마지막 상태를 건너 뜁니다. 예외가 발생하지 않습니다.
이 문자열에서 오류를 어떻게 catch합니까?
재귀가 발생하는 부분이 보이지 않습니다. –
queryexpression = querycondition + ZeroOrMore (Word ("and") + querycondition) – RickyA
이것은 재귀가 아니며 단지 한 번의 생산에서 동일한 비 터미널을 두 번 사용하는 것입니다. – delnan