نصيحة سيئة عند العمل مع ANTLR

يتم توجيه انتباهك إلى مجموعة من النصائح الضارة التي ستساعدك في إنشاء المحلل اللغوي الأكثر إنتاجية. لا تنس أن تفعل كل شيء وفقًا للتعليمات ، وإلا فسيحدث خطأ!

1. ATN - ليس خطأ ، ولكن ميزة


لقد قدم Terrence Par ميزة رائعة لتحسين التنبؤ بالفرع في قواعدك اللغوية. حصريًا بسبب القلق على أداء المحلل اللغوي الخاص بك ، فإن الحقل ثابت وسوف يجمع المعلومات إلى الأبد! بالطبع ، لن تلاحظ اختلافًا كبيرًا في الملفات الصغيرة ، والشيء الرئيسي هو عدم تحليل ملفات 2-3 ميغابايت في الاختبارات الخاصة بك ، حتى لو لم يكن هناك ذاكرة كافية لشخص آخر!

2. ابحث عن أولئك الذين لم يعتادوا على النظر إلى الانفجارات!


إذا كانت قواعدك تتحقق من جميع الرموز المميزة من الدفق في كل قاعدة ، فيمكنك ضمان دقة المعالجة! إذا لم يكن هناك تكديسًا كافيًا ، فهذا يكفي لزيادة حجمه عشرة أضعاف ، الشيء الرئيسي هو وضع المزيد من القواعد!

3. SLL للجبان


لماذا التحسين إذا كان ANTLR4 يمكنه القيام بذلك نيابة عنك؟ يوفر لك النحو في وضع ALL الوقت الثمين لقراءة مثل هذه المقالات. تذكر أن تضيف نفس الرموز المميزة لكل بديل ، خاصة إذا كانت تبدو جميلة.

4. AST - كل المعلومات التي لديك


لا تنس الاستماع إلى Terrence وإضافة زائر ، دعم المستمع إلى المحلل اللغوي الخاص بك. إن تضمين التعليمات البرمجية في القواعد ليس فقط صعوبات غير ضرورية ، ولكن أيضًا مشكلة محتملة في إعادة البناء! بتجاوز كل عقدة في الشجرة ، لا يمكنك تجربة حظك فحسب ، بل يمكنك أيضًا التحقق من أعصاب العميل!

5. المزيد من القواعد ، إله القواعد!


ولكن هل تعلم أنه بمساعدة ANTLR4 يمكنك بناء برج بابل؟ في أقسام التعليمات البرمجية مع تداخل كبير لا يمكن العثور عليها؟ دالة داخل دالة بكمية ضخمة من التعبيرات؟ فقط لا تظهر للعميل العمل على ملفات js المصغرة ، على أي حال ، لا أحد يفهمها ، حتى المتصفحات.

6. هناك حاجة فقط إلى lexer لإنشاء الرموز.


لا تحاول بأي حال من الأحوال القيام بشيء ما باستخدام الرموز المميزة في lexer ، ولن يسمح لك تعبئة الكتلة {} في الرمز المميز بالاستمتاع بمشاهدة أجهزة العميل التي تتطلب المزيد من الذاكرة!

يجب أن تتدفق الذاكرة! قد يكون Memleak معك!

Source: https://habr.com/ru/post/undefined/


All Articles