저는 문제가되는 도메인과 그 모든 것에 가까운 프로그래밍을하는 간단한 미니 언어 파서를 파이썬으로 작성했습니다.Python의 미니 언어
어쨌든, 저는 여기에있는 사람들이 어떻게 그렇게 할 것인지 궁금합니다. 파이썬에서 이런 종류의 일을하는 데 선호되는 방법은 무엇입니까?
필자는이 모든 분야가 파이썬에서 얼마나 쉬운지를 조사하고 있기 때문에 구체적인 정보를 제공하지 않을 것입니다.
입력 해 주셔서 감사합니다.
저는 문제가되는 도메인과 그 모든 것에 가까운 프로그래밍을하는 간단한 미니 언어 파서를 파이썬으로 작성했습니다.Python의 미니 언어
어쨌든, 저는 여기에있는 사람들이 어떻게 그렇게 할 것인지 궁금합니다. 파이썬에서 이런 종류의 일을하는 데 선호되는 방법은 무엇입니까?
필자는이 모든 분야가 파이썬에서 얼마나 쉬운지를 조사하고 있기 때문에 구체적인 정보를 제공하지 않을 것입니다.
입력 해 주셔서 감사합니다.
Pyparsing은 "작은 언어"를 작성하는 데 편리합니다. 나는 단순한 모험 게임 엔진을 작성하는데 presentation at PyCon'06을 주었는데, 그 언어는 해석되고 해석되는 게임 명령 세트 ("재고품", "검 검", "책 놓기"등)이었다. (소스 코드 here)
다른 pyparsing 기사에 대한 링크는 pyparsing wiki Publications page에서 찾을 수 있습니다.
대한 파싱이 절대적으로 환상적인 라이브러리, 당신은 다음 구문 분석 할 수 최소한의 의식으로 무엇이든. 나는 그것을 사용하는 두 오후에 재귀 PHP 파서 (정적 코드 분석)를 만들었습니다. 나는 그것을 충분히 강력하게 추천 할 수 없었다. 문서를 읽는 데 약 2 시간이 걸립니다. –
PLY (Python Lex-Yacc)과 관련하여 제한적이지만 긍정적 인 경험이 있습니다. 그것은 단일 파이썬 클래스에서 Lex and Yacc 기능을 결합합니다. 그것을 확인하고 싶을 수도 있습니다.
동료 Stackoverflow'er Ned Batchelder에는 그의 웹 사이트에 사용 가능한 도구가 nice overview 있습니다. Python website에 대한 개요도 있습니다.
파이썬은 훌륭하고 간단하고 확장 성이 뛰어난 언어로서 포괄적 인 파이썬 모듈을 만들고 코딩하는 것이 좋습니다.
내가 위의 내용을 입력하는 동안 PLY
은 이미 언급되었습니다.
나는 funcparserlib
을 권하고 싶습니다. 특히 작은 언어와 DSL을 구문 분석하기 위해 작성되었으며 pyparsing
(웹 사이트의 통계 참조)보다 빠르고 작습니다. 최소한의 기능을 갖춘 프로그래머는 funcparserlib
과 같아야합니다.
편집 : 그건 그렇고, 나는이 도서관의 저자이기 때문에 내 의견에 편향 될 수 있습니다.
한 번에 나는 내 pyparsing 모듈을 홍보하거나 옹호하기를 꺼 렸습니다. 부끄러워하지 마십시오! 그리고 Ned Batchelder가 그의 파서 개요 페이지에'funcparserlib'을 추가했는지 확인하십시오. 이것은 파싱 라이브러리를 검색하는 많은 파이썬 사용자들에게 공통적이며 귀중한 자원입니다. – PaulMcG
@Paul 조언을 주셔서 감사합니다. –
매우 유용한 라이브러리로 보이며 코드는 매우 분명해 보입니다! 감사! –
지금 나 한테 물어 보면 파이썬 용 텍스트 라이브러리를 사용해 보겠다. 당신은 매우 쉽게 파이썬으로 dsl을 만들 수 있습니다! 장점은 당신을 위해 대서양 표준시를 만들고, 렉싱과 파싱을 결합한다는 것입니다.
유사에 : http://stackoverflow.com/questions/2945357/python-how-best-to-parse-a-simple-grammar –