إنشاء محلل شجرة بناء جملة مجرد للغة الخاصة بالمجال الخاص بك
pyastbuilder
هو إطار عمل بلغة بايثون لبناء المحلل اللغوي الذي يبني شجرة كائنات تعكس شجرة بناء الجملة المجردة للغة (AST)، والتي يمكن التنقل فيها والبحث فيها وتعديلها بطريقة بايثونية. يوجد في الحزمة مثال توضيحي واحد: محلل للغة W3C SPARQL، أي، sparqlparser.py
، الذي ينفذ Sparql v1.1. ومع ذلك، يمكن تسهيل أي لغة أخرى محددة من قبل BNF.
يوجد العديد من المحللين اللغويين المحددين أو العامين، ولكن السبب وراء تطوير pyastbuilder
هو أنه غالبًا ما يُعتبر التحليل عملية متدفقة وديناميكية توجد فيها عدة خطافات يمكن للمرء أن يرفق بها التعليمات البرمجية الخاصة به، بدلاً من إنشاء بناء جملة ثابت ومجرد شجرة "المستند" الإلكتروني، مع واجهة برمجة التطبيقات (API) للوصول إليها للمعالجة اللاحقة للتحليل.
يُترك العمل الثقيل بشأن التحليل الفعلي لـ pyparsing، والذي يتم تضمينه واستخدامه على نطاق واسع.
نحن نتابع متابعتنا
مبدأ التصميم: كن تنبؤيًا. تحديد معايير واضحة لموقع التوثيق. ما هو جزء من الوثائق الذي تم وضعه في ملفات README، وما هي الأجزاء التي يمكن العثور عليها في صفحات wiki، وما هي المعلومات التي تضعها في التعليمات البرمجية كتعليقات؟ قم بتحديد وتوثيق معايير التوثيق الخاصة بك، ويفضل أن يكون ذلك في الجزء الأساسي من التوثيق الذي سيصل إليه المستخدم أو المطور، والذي من المحتمل أن يكون ملف README.md الخاص بالمشروع.
ولذلك فإننا نتبع المعايير التالية فيما يتعلق بالتوثيق:
pyastparser
كملفات README.md في كل مجلد من مجلدات الشجرة المصدر.pyastbuilder
، بالإضافة إلى جميع الوثائق التفصيلية الخاصة بالكود في جميع أنحاء التعليمات البرمجية المصدر مثل بناء جملة ترميز reStructuredText (reST). نظرًا لأن هذا النوع من الوثائق يتبع اتفاقية python pydoc، فيمكن إنشاء صفحات HTML المقابلة لها. ستكون الوثائق متاحة بعد إنشاء HTML عن طريق توجيه المتصفح إلى الملف Doc/build/html/index.html
( TODO ).ستحتوي هذه على ذلك الجزء من الوثائق الذي يتضمن التصميم العام حول كود المصدر المتوفر في الجزء المعين من الشجرة. تستهدف هذه الوثائق مطوري المشروع بهدف تزويدهم بفهم شامل لما يلي:
يمكن العثور على نظرة عامة كاملة على وثائق الويكي في صفحة wiki الرئيسية. يمكن للمرء أن يتوقع الإدخالات التالية:
sparqlparser
كمكتبة في كود python الخاص بك، بالإضافة إلى أي محلل xxxparser
جاهز آخر قد يتم توفيره في مستقبل هذا مشروع. نظرًا لأن أي xxxparser
آخر سيعتمد على نفس المشروع، فيمكننا أن نفترض بأمان العثور على العديد من المراجع لحالات استخدام متشابهة جدًا أو حتى متطابقة من sparqlparser
.xxxparser
الخاص بك، يرجى مشاركة هذا مع هذا المشروع وتوفير الفصل الخاص بك في دليل المستخدم الخاص بنا حول استخدام هذا المحلل اللغوي. ومع ذلك: لا تقم بتكرار الوثائق ، ولكن استخدم دليل sparqlparser
كدليل مرجعي بدلاً من ذلك. يرجى قراءة CONTRIBUTING.md للحصول على تفاصيل حول قواعد السلوك لدينا، وعملية إرسال طلبات السحب إلينا.
نحن نستخدم SemVer للإصدار. للتعرف على الإصدارات المتوفرة، راجع العلامات الموجودة في هذا المستودع.
انظر أيضًا قائمة المساهمين الذين يشاركون (د) في هذا المشروع.
تم ترخيص هذا المشروع بموجب ترخيص MIT - راجع ملف LICENSE.md للحصول على التفاصيل