سؤال

أحاول كتابة قواعد نحوية بلغة EBNF (باستثناء سبب وجيه حقًا، يجب أن يكون EBNF) وأبحث عن اثنين من الأدوات المساعدة لها - إذا كانت هناك واجهة GUI يمكنها إنشاء واحدة، فسيكون ذلك رائعًا، ولكن الشيء الذي أبحث عنه أكثر هو شيء يمكنه التحقق من القواعد النحوية، على سبيل المثال لمعرفة ما إذا كان LALR(ن)، وإذا كان الأمر كذلك، فما قيمتها ن يكون.هل توجد مثل هذه المرافق؟هل هناك أي أدوات أخرى مفيدة لكتابة القواعد النحوية يجب أن أعرفها (أنا لا أبحث عن مولدات المحلل اللغوي).

هل كانت مفيدة؟

المحلول

وأخذ اقتراح ستيفن دي خطوة أخرى إلى الأمام، قد ترغب في التحقق من ANTLRWorks ، وهو أداة تطوير واجهة المستخدم الرسومية التفاعلية لقواعد النحو ANTLR.

نصائح أخرى

يستخدم TinyPG!إنه جهاز الكل في واحد مذهل مترجم مترجم مع واجهة مستخدم رسومية خفيفة الوزن، يمكنك من خلالها إنشاء المحلل اللغوي الخاص بك التعبير العادي, إيبنف, ، والكتابة C#/VB رمز لفعل شيء ما مع تحليل شجرة!

إليك ملخصًا قصيرًا وغنيًا بالمعلومات قمت به سابقًا، والذي يربطك أيضًا بالتنزيلات.


فهمي لـ TinyPG:

TinyPG يسمح لك بالكتابة والتطوير:

يحتوي على IDE مدمج، Windows فقط (تم إنشاؤه في C#.NET، مفتوح المصدر).

يسمح لك بالتجربة والمعاينة التعبيرات العادية باستخدام يحمل في ثناياه عوامل أداة RegEx. يتم دعم بناء جملة RegEx في .NET مما يعني أنه حتى كود المحلل اللغوي الناتج يستخدم التعبيرات العادية لـ .NET.

تكتب EBNF لوصف اللغة التي تختارها (وإليك بعض المتاحة مجانا قواعد BNF التي تصف لغات البرمجة الحديثة (C، جافا، جافا سكريبت، C#، VB.NET، SQL-89)

باستخدام TinyPG، الخاص بك التعبير العادي جنبا إلى جنب مع الخاص بك إيبنف المخرجات أ تحليل شجرة (انظر هذا الرسم البياني).

والآن ماذا تفعل بشجرة التحليل؟انت تكتب كود C#/VB (ضمن TinyPG، وفقًا لقواعد قواعد BNF) من اجلك مترجم / مترجم / مترجم. (داخل TinyPG، افتح ملف "simple Expression2.tpg" ضمن النماذج المتوفرة لمشاهدة عرض توضيحي لـ آلة حاسبة "المترجم")

TinyPG يسمح لك بذلك تجميع واختبار لك رمز مميز + محلل + المترجم, ، داخل TinyPG IDE، وأخيرًا يقوم بإخراج ملف كود المصدر المحلل في C#.NET أو VB.NET (اختيارك), ، مع جاهز للإستخدام الطبقات.

ممتاز الكل في واحد مترجم مترجم للجماهير.يتمتع!

ملاحظة:تصحيح لي إذا كنت مخطئا في أي من هذا.

لتحقق ما إذا كان يسمح قواعد خوارزمية محلل معينة، مجرد وضعها في مولد محلل. في حالة LALR (1)، وتمرير قواعد لYACC لمعرفة ما إذا كان يكشف الصراعات.

كوكو / R C # مفقود من القائمة. وهو سهل الاستخدام، وتنوعا للغاية ومفيدة بشكل خاص لديها مولدات رمز لمجموعة كبيرة ومتنوعة من اللغات

وكوكو / R لC #، جافا، C ++، F #، VB.Net، أوبيرون، لغات أخرى

[1] http://www.ssw.uni-linz.ac. في / كوكو /

ANTLR هو مولد GUI محلل في جاوة التي لديها قدرات واسعة لتحليل قواعد اللغة والتخصيم. تحقق من التعليمات. قد دعم ما كنت تبحث عنه.

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