البحث عن أداة تفاعلية لإنشاء قواعد نحوية للمحلل الحر للسياق

StackOverflow https://stackoverflow.com/questions/872124

سؤال

أرغب في الحصول على أداة مساعدة يمكنني من خلالها تقديم جزء من النص (في مربع نص) وتجربة قواعد المحلل اللغوي (من خلال تحرير 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 على أي حال!سأستخدمه بالتأكيد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top