나는 사용자 정의 언어에 대한 파이썬 파서를 쓰고 있어요 내가 이런 일이 지금과 같이구문 분석 기술을 어떻게 향상시킬 수 있습니까?
re1 = re.compile(r"...")
re2 = re.compile(r"...")
re3 = re.compile(r"...")
re4 = re.compile(r"...")
...
...
지금은 입력 파일을 읽고 각 라인 오전 그때 내가 사용하고 특정 키워드를 찾을 경우 특정 정규 표현식. 나는이 같은 일을하고 있기 때문에 분명히, 이것은 내 인생 살아있는 지옥을하고있다 : 동시에
if line.find("keyword1") >= 0
# Uses re1 to match the string
invoke_handler1()
elif line.find('keyword2") >= 0
# Uses re2 to match the string
invoke_handler2()
...
을, 나는 그것이 낭비 때문에 가능한 모든 정규 표현식 주어진 라인과 일치하지 않습니다 . 이 시점까지 내가 쓴 모든 것을 버리지 않고,이 문제를 해결하고 더 효율적이고 읽기 쉽도록 우아한 방법이 있습니까?
당신은 진짜 [파서]을 사용하여 생각 해 봤나 (http://wiki.python.org/moin/LanguageParsing)? – nmichaels
이 파서는 무엇입니까? 구문 분석 할 텍스트/코드의 복잡성에 대해 자세히 설명해 주시겠습니까? –
@nmichaels : 좀 더 자세히 살펴 봐야 할 것 같습니다. 감사! @ Nicolas Buduroi : 바이트 코드 해체를 파싱 중입니다. – Legend