자신의 도메인 특정 언어에 대한 추상 구문 트리 파서 구축
pyastbuilder
는 Python 방식으로 탐색, 검색 및 수정할 수 있는 언어의 추상 구문 트리 (AST)를 반영하는 객체 트리를 구성하는 파서를 구축하기 위한 Python 프레임워크입니다. 패키지에는 하나의 실증적인 예가 포함되어 있습니다. 즉, W3C SPARQL 언어용 파서, 즉 Sparql v1.1을 구현하는 sparqlparser.py
입니다. 그러나 다른 BNF 지정 언어도 사용할 수 있습니다.
많은 특정 또는 일반 파서가 존재하지만 pyastbuilder
개발하는 이유는 파싱이 정적 추상 구문 생성과 달리 자신의 코드를 연결할 수 있는 여러 후크가 존재하는 스트리밍 동적 프로세스로 간주되는 경우가 많기 때문입니다. 분석 후 처리를 위한 액세스용 API가 포함된 전자 "문서"의 트리입니다.
실제 구문 분석에 대한 무거운 작업은 포함되어 광범위하게 사용되는 pyparsing에 맡겨집니다.
우리는 다음을 따릅니다.
디자인 원칙: 예측 가능합니다. 문서 위치에 대한 명확한 기준을 정의합니다. 문서의 어떤 부분이 README 파일에 들어가고, 위키 페이지에서 어떤 부분을 찾을 수 있으며, 어떤 정보를 코드에 주석으로 넣나요? 문서 기준을 정의하고 문서화하세요. 사용자나 개발자가 접하게 될 문서의 주요 부분(아마도 프로젝트의 README.md 파일일 가능성이 높음)에 문서화하는 것이 좋습니다.
따라서 우리는 문서화와 관련하여 다음 기준을 따릅니다.
pyastparser
와 관련된 소스 코드 파일에 대한 모든 설명은 소스 트리의 모든 폴더에 README.md 파일로 문서화됩니다.pyastbuilder
에 대한 디자인 문서 와 모든 상세한 코드별 문서는 reStructuredText(reST) 마크업 구문으로 소스 코드 전반에 걸쳐 제공됩니다. 이러한 유형의 문서는 Python pydoc의 규칙을 따르므로 해당 HTML 페이지를 생성할 수 있습니다. Doc/build/html/index.html
( TODO ) 파일을 브라우저로 가리키면 HTML을 빌드한 후 문서를 사용할 수 있습니다.여기에는 트리의 특정 부분에서 사용할 수 있는 소스 코드에 대한 일반 설계와 관련된 문서의 해당 부분이 포함됩니다. 이 문서는 프로젝트 개발자에게 다음 사항에 대한 철저한 이해를 제공하기 위한 목적으로 작성되었습니다.
위키 문서의 전체 개요는 위키 홈 페이지에서 찾을 수 있습니다. 다음 항목을 확장할 수 있습니다.
sparqlparser
라이브러리로 사용하는 것과 관련된 설명, 방법 및 패턴은 물론 향후 제공될 수 있는 기타 기본 xxxparser
를 찾을 수 있습니다. 프로젝트. 다른 xxxparser
이 동일한 프로젝트를 기반으로 하기 때문에 sparqlparser
에서 매우 유사하거나 심지어 동일한 사용 사례에 대한 많은 참조를 찾을 수 있다고 안전하게 가정할 수 있습니다.xxxparser
만들 때마다 이를 이 프로젝트와 공유하고 이 파서 사용에 대한 사용자 설명서의 장을 제공하세요. 그러나 문서를 복제하지 마십시오 . 대신 sparqlparser
매뉴얼을 참조 매뉴얼로 사용하십시오. 당사의 행동 강령과 당사에 끌어오기 요청을 제출하는 프로세스에 대한 자세한 내용은 CONTRIBUTING.md를 참조하세요.
버전 관리를 위해 SemVer를 사용합니다. 사용 가능한 버전은 이 저장소의 태그를 참조하세요.
이 프로젝트에 참여하는 기여자 목록도 참조하세요(d).
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE.md 파일을 참조하세요.