البحث عن أداة تفاعلية لإنشاء قواعد نحوية للمحلل الحر للسياق
-
22-08-2019 - |
سؤال
أرغب في الحصول على أداة مساعدة يمكنني من خلالها تقديم جزء من النص (في مربع نص) وتجربة قواعد المحلل اللغوي (من خلال تحرير BNF مشابه) وبنية الرمز المميز بينما أستطيع رؤية كيف ستبدو شجرة التحليل (وإذا كانت كذلك) غير قادر على تحليل النص باستخدام القواعد النحوية الحالية، سأرى أين توقف).
الكلمة الأساسية هي التفاعل.يمكنني القيام بذلك باستخدام flex وbison على سبيل المثال، ولكن يجب علي دائمًا إعادة إنشاء lexer وparser الخاص بي.
هل هناك أي شيء مثل هذا هناك؟لم أجد أي.من الناحية المثالية، يجب أن يعمل على Linux وأن يكون مجانيًا، وإذا لم يكن هذا خيارًا فهو لا يزال موضع اهتمام.
المحلول
يمكنك تحقيق ذلك باستخدام pyBison والأصدقاء باستخدام GTKSourceView
لم أر أي شيء، ولكن يمكنك كتابة برنامج للقيام بذلك إذا أردت.أود إما أن أقوم بنقل مصدر Bison إلى DSO بحيث يمكنك تحميله وتشغيل BNF الخاص بك من خلاله وسحب جداول التشغيل الآلي.ثم قم بإرفاق التقييم بمربع نص عرض مصدر GTK
-- أو --
أنشئ واجهة أمامية (يبدو أن GTKSourceView جيد مرة أخرى) وأرفق ذلك ببعض استدعاءات النظام لكتابة flex.c وbison.c وتكوين بعض مخرجات الكائنات المشتركة. بحيث يتم بعد ذلك تحميلها وتفريغها في التطبيق والتي يمكنك بعد ذلك تشغيل بعض منها المصدر من خلال.
ما أميل إلى فعله عند تطوير القواعد هو الاستخدام pyBison وغيرها من الأدوات اللغوية عالية المستوى لزيادة سرعة التطوير.ثم استخدم C/Flex/Bison مع ملفات .l و.y لاحقًا.يجب أن يكون GTK سهل الاستخدام حقًا في Python لتحقيق ما سبق دون الحاجة إلى DSOs وdlopen() fandango.
تشبه تمامًا حلقة Read-Eval-Print حيث يكون BNF وبناء جملة الاختبار في حلقة مع بعض مولدات D/NFA الخلفية
في وقت اخر
وجدت هذا يجيب على سؤال آخر:
http://jscc.jmksf.com/jscc_on_web.png
إنها أداة تشبه JavaScript Yacc/Bison لإنشاء المحلل اللغوي في JavaScript.يمكنك بسهولة استخدام هذا لتصحيح قواعد لغة C الخاصة بك لأنها كلها BNF على أي حال!سأستخدمه بالتأكيد.
نصائح أخرى