Membangun pengurai pohon sintaksis abstrak untuk bahasa khusus domain Anda sendiri
pyastbuilder
adalah kerangka kerja python untuk membangun parser yang membangun pohon objek yang mencerminkan pohon sintaksis abstrak (AST) bahasa, yang dapat dinavigasi, dicari, dan dimodifikasi secara python. Termasuk dalam paket ini adalah satu contoh demonstratif: parser untuk bahasa W3C SPARQL, yaitu sparqlparser.py
, yang mengimplementasikan Sparql v1.1. Namun, bahasa lain yang ditentukan BNF dapat difasilitasi.
Ada banyak parser spesifik atau generik, namun alasan untuk mengembangkan pyastbuilder
adalah karena sering kali parsing dianggap sebagai proses streaming dan dinamis yang di dalamnya ada beberapa kait yang dapat dilampirkan kodenya sendiri, dibandingkan dengan pembuatan sintaksis statis dan abstrak. pohon "dokumen" elektronik, dengan API untuk aksesnya untuk pemrosesan pasca-urai.
Pengangkatan berat tentang penguraian sebenarnya diserahkan kepada pyparsing, yang disertakan dan digunakan secara luas.
Kami mengikuti yang berikut ini
PRINSIP DESAIN: Bersikap Prediktif. Tetapkan kriteria yang jelas untuk lokasi dokumentasi. Bagian dokumentasi mana yang dimasukkan ke dalam berkas README, bagian mana yang dapat ditemukan di halaman wiki, dan informasi apa yang Anda masukkan ke dalam kode sebagai komentar? Tentukan dan dokumentasikan kriteria dokumentasi Anda, sebaiknya dalam dokumentasi prinsip yang akan digunakan oleh pengguna atau pengembang Anda, yang mungkin merupakan file README.md proyek.
Oleh karena itu kami mengikuti kriteria berikut mengenai dokumentasi:
pyastparser
, akan didokumentasikan sebagai file README.md di setiap folder pohon sumber.pyastbuilder
, serta semua dokumentasi rinci dan spesifik kode tersedia di seluruh kode sumber sebagai sintaks markup reStructuredText (reST). Karena jenis dokumentasi ini mengikuti konvensi python pydoc, halaman HTML yang sesuai dapat dibuat. Dokumentasi akan tersedia setelah membuat HTML dengan mengarahkan browser ke file Doc/build/html/index.html
( TODO ).Ini akan berisi bagian dokumentasi yang melibatkan desain umum tentang kode sumber yang tersedia di bagian tertentu dari pohon. Dokumentasi ini ditujukan untuk para pengembang proyek dengan tujuan untuk memberikan mereka pemahaman menyeluruh tentang:
Ikhtisar lengkap dokumentasi wiki dapat ditemukan di halaman Beranda wiki. Seseorang dapat mengharapkan entri berikut:
sparqlparser
sebagai pustaka dalam kode python Anda sendiri, serta xxxparser
siap pakai lainnya yang mungkin disediakan di masa mendatang. proyek. Karena xxxparser
lain akan didasarkan pada proyek yang sama, kita dapat berasumsi menemukan banyak referensi ke kasus penggunaan yang sangat mirip atau bahkan identik dari sparqlparser
.xxxparser
Anda sendiri, silakan bagikan ini dengan proyek ini dan berikan Bab Anda sendiri di Panduan Pengguna kami tentang penggunaan parser ini. Namun: Jangan Duplikat dokumentasi , tetapi gunakan manual sparqlparser
sebagai manual referensi. Silakan baca CONTRIBUTING.md untuk detail tentang kode etik kami, dan proses pengajuan permintaan penarikan kepada kami.
Kami menggunakan SemVer untuk pembuatan versi. Untuk versi yang tersedia, lihat tag pada repositori ini.
Lihat juga daftar kontributor yang berpartisipasi(d) dalam proyek ini.
Proyek ini dilisensikan di bawah Lisensi MIT - lihat file LICENSE.md untuk detailnya