独自のドメイン固有言語用の抽象構文ツリー パーサーを構築する
pyastbuilder
は、言語の抽象構文ツリー(AST) を反映するオブジェクト ツリーを構築するパーサーを構築するための Python フレームワークで、Python でナビゲート、検索、変更できます。パッケージには、Sparql v1.1 を実装する W3C SPARQL 言語のパーサー、つまりsparqlparser.py
実証的な例が含まれています。ただし、BNF で指定された他の言語も容易に使用できます。
多くの特定または汎用のパーサーが存在しますが、 pyastbuilder
開発する理由は、静的で抽象的な構文の生成とは対照的に、解析が、独自のコードをアタッチできるいくつかのフックが存在するストリーミングの動的プロセスとみなされることが多いためです。電子「文書」のツリーと、解析後の処理にアクセスするための API を備えています。
実際の解析に関する面倒な作業は pyparsing に任せられます。pyparsing は含まれており、広く使用されています。
私たちは以下をフォローします
設計原則: 予測的であること。ドキュメントの場所について明確な基準を定義します。ドキュメントのどの部分が README ファイルに含まれ、どの部分が Wiki ページにあり、どのような情報がコード内にコメントとして書き込まれますか?ドキュメントの基準を定義して文書化します。できれば、ユーザーまたは開発者が参照するドキュメントの主要な部分 (おそらくプロジェクトの README.md ファイル) に記述します。
したがって、文書化に関しては次の基準に従います。
pyastparser
に関連するソース コード ファイルのすべての説明は、ソース ツリーの各フォルダーに README.md ファイルとして文書化されます。pyastbuilder
に関する設計ドキュメントと、すべての詳細なコード固有のドキュメントは、ソース コード全体で reStructuredText (reST) マークアップ構文として利用できます。このタイプのドキュメントは Python pydoc の規則に従っているため、対応する HTML ページを生成できます。ドキュメントは、ブラウザーでファイルDoc/build/html/index.html
( TODO ) をポイントすることで HTML をビルドした後に利用できます。これらには、ツリーの特定の部分で使用できるソース コードに関する一般的な設計に関係するドキュメントの部分が含まれます。このドキュメントはプロジェクトの開発者を対象としており、以下について完全に理解してもらうことを目的としています。
Wiki ドキュメントの完全な概要は、Wiki のホームページでご覧いただけます。次のエントリを期待できます。
sparqlparser
独自の Python コードのライブラリとして使用すること、および将来提供される可能性があるその他のすぐに使用できるxxxparser
使用に関する説明、ハウツー、パターンが記載されています。プロジェクト。他のxxxparser
もこの同じプロジェクトに基づいているため、 sparqlparser
からの非常に類似した、または同一のユースケースへの参照が多数見つかると想定できます。xxxparser
を作成した場合は、これをこのプロジェクトと共有し、このパーサーの使用法についてユーザー マニュアルの独自の章を設けてください。ただし、ドキュメントを複製しないでください。代わりに、 sparqlparser
マニュアルをリファレンス マニュアルとして使用してください。 当社の行動規範とプル リクエストを当社に送信するプロセスの詳細については、CONTRIBUTING.md をお読みください。
バージョン管理には SemVer を使用します。利用可能なバージョンについては、このリポジトリのタグを参照してください。
このプロジェクトに参加している貢献者のリスト (d) も参照してください。
このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細については、LICENSE.md ファイルを参照してください。