2011-03-19 6 views
2

현재 lex/yacc에서 처리하는 자체 문법이있는 입력 파일을 읽는 응용 프로그램을 작성하고 있습니다.파이썬 파서 모듈 튜토리얼

이 입력 파일을 파이썬 스크립트로 바꾸고 싶습니다. 누군가 파이썬에서 파서 모듈을 사용하는 초보자 안내서를 가르키고 있는지 궁금합니다. 필자는 Python 자체를 처음 접했을뿐 아니라, 온라인 자습서의 공정한 덩어리를 통해 작업 해 왔습니다.

내가 조사한 바에 따르면 기존 문법을 유지하고 lex/yacc의 대체품으로 Pyparsing을 사용할 수있는 옵션 (예 : pyparsing)이 있음을 알고 있습니다. 그러나 파이썬 파서 모듈을 더 자세히 배우고 그 실현 가능성을 탐구하는 것이 궁금합니다.

감사합니다.

답변

2

the parser module을 의미합니까? 이것은 범용 파서가 아닌 파이썬 소스 코드 전용 파서입니다. 다른 것을 구문 분석하는 데 사용할 수 없습니다.

+0

예, 그게 제가 언급 한 것입니다. 내 응용 프로그램에 입력 파일을 파이썬 파일로 만드는 것에 대해 생각하고있었습니다. 그래서 문법은 파이썬 언어가 될 것이고,이 파서 모듈은 그것을 구문 분석 할 것입니다. 나는 이것을 위해 더 친숙한 튜토리얼이 있는지 궁금해하고 있었다. – endbegin

+0

그런 경우 내장 된 ast 모듈을 사용하는 것이 더 쉬울 수도 있습니다. –

+0

답장을 보내 주셔서 감사합니다. 파이썬에서 AST 모듈을 사용하는 초보자 수준의 자습서를 권할 수 있습니까? 나는 웹 검색을 시도했지만 구체적인 것은 보지 못했다. – endbegin

2

Jochen이 말했듯이 perser 모듈은 파이썬 코드를 구문 분석하기위한 모듈입니다. 나는 너 Ned Batchelder's list of parsers을 체크 아웃하는 것이 가장 좋다고 생각한다. PyParsing은 Lex와 Yacc와는 상당히 다른 방식을 사용하기 때문에 기존 문법과 렉서를 계속 사용할 수 있다고 생각하는 이유가 확실하지 않습니다. 더 좋은 방법은 David Beazley의 PLY 툴킷입니다. 견고하고 훌륭한 문서가 있습니다.

+0

나는 lex/yacc 방법에서 벗어나고 싶다. 방금 ast 모듈에 대한 귀하의 추천을 보았고 친숙한 튜토리얼을 찾으려고합니다. 감사. – endbegin

1

난 당신이 https://github.com/erezsh/lark

그것은 구문 분석을 처음으로 접하시는 분들을 위해 중대 체크 아웃하는 것이 좋습니다 : 그것은 모든 문맥 자유 문법을 구문 분석 할 수 있습니다, 그것은 자동으로 (라인 & 열 수있는) AST를 구축, 그리고 문법을 수용 EBNF 형식은 표준으로 간주되어 작성하기가 쉽습니다.