سؤال

أحاول العثور على وصف جيد لـ EBNF لـ ECMASCRIPT ، لكنني لم أجد أي شيء مكتمل حتى الآن.

أيه أفكار؟

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

المحلول

ماذا عن ecmascript معيار؟ أكمل بحكم التعريف:-}

تعديل: إذا كنت ترغب في الحصول على قواعد نحوية موجودة ، جرب أحد مواقع أدوات المولدات النحوية. لـ Antlr ، ها هيECMASCRIPT نحوي. لا أعرف شيئًا عن جودته ، لكن Antlr يمكن أن ينتج محللات جيدة إذا تم بناء Grammer بعناية. من المحتمل أن تجد القواعد المتشابكة أيضًا مع حفنة من أشياء Antlr ، لذلك قد تعاني من نفس المشكلة مثل المعيار من وجهة نظرك. على الأقل يمكنك حذف كل هذه الأشياء.

نصائح أخرى

الفصل 2 من كروكفورد JavaScript: الأجزاء الجيدة الرسوم البيانية (خمنت ذلك) الأجزاء الجيدة.

فيما يلي بعض الطعنات في BNF لـ JavaScript:

من هذا في وقت سابق لذلك السؤال:

مستودع قواعد BNF؟

اعمل على ذلك محلل قائم على ECMASCRIPT. ها هي القواعد الخاصة بي حتى الآن:

انظر أيضًا Tom Copeland's BNF لـ ecmascript:

بالإضافة إلى "مترجم آخر JavaScript":

وكذلك قواعد Dojo Toolkit (ربما تستند إلى Yaji):

من وجهة نظري ، فإن Yaji أو Dojo Toolkit's هي الأفضل والأكثر اكتمالًا (على حد علمي). أنا أستند إلى عملي على هؤلاء ولكن أريد أن أجعله أكثر اكتمالا (5.1/6) وعملية قياسية ولكن عملي.

القواعد النحوية ecmascript صعبة للغاية. لديها عدد قليل من التحذيرات الضخمة:

  • التعبير العادي الحرفي مقابل التقسيم (لا يمكنك التمييز بينها على مستوى Lexer)
  • إدراج اناقض أوتوماتيكي (ASI)

لذا يرجى أن تكون على علم بذلك. تنفيذ هذه أمر صعب للغاية.

إذا كانت منصة Java المستهدفة الخاصة بك ولا تمانع في Javacc ، فسأكون سعيدًا إذا انضممت إلى مشروعي. القواعد الخاصة بي جاهزة بالفعل (البناء/التجميع بدون تحذيرات). أنا أعمل الآن على أجنحة الاختبار لتغطية كل ميزة وإنتاج. أتوقع بعض المشكلات مع regex الحرفية و ASIS رغم ذلك.

ملاحظة. لقد لاحظت للتو أن السؤال هو من 09 ، لذا فإن دعوتي قد فات الأوان. قون

جرب هذا الرابط ECMASCRIPTA3 لديها BNF من ecmascript

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