سؤال

لقد بدأت في تعلم Antlr ولها كتاب 2007 "مرجع Antlr النهائي" و AntlrWorks (أداة تفاعلية لإنشاء قواعد النطق). وكنت هذا النوع من الشخص، بدأت في الفصل 3. ("جولة سريعة للفيرقة").

إنها عملية مؤلمة إلى حد ما خاصة وأن بعض الأخطاء لا يمكن اختراقها إلى حد ما (على سبيل المثال Antlr: "مفقود الوصول إلى السمات على مشكلة في نطاق القاعدة" وهذا يعني فقط بالنسبة لي "لقد حصلت على شيء خاطئ"). أيضا لدي بعض قواعد النحوية البسيطة للغاية (3-4 إنتاج فقط) وإدخال بسيط (خطين 2) والتي عند تشغيل خطأ "Outofmory" خطأ.

موقع Antlr مفيد ولكن مجزأة إلى حد ما وعلق بعض المستخدمين (https://stackoverflow.com/questions/278480/good-tutorial-for-antlr.) أن الكتاب والبرامج التعليمية تتوقع مستوى الدخول العالي. لقد كنت متردد في الاقتراب من قائمة مناقشة Antlr بسبب هذا.

في وقت لاحق لقد بدأنا في الحصول على السيطرة عليها. سيكون من المفيد الحصول على أمثلة موثوقة بسيطة يمكن توسيعها بلطف. من المؤكد أنه يستحق الاتحاد لأننا أعيد تشكيلنا الكثير من تفكيرنا على أساس أنطور.

مشكلة واحدة هي أن Antlr V3 لديه تغييرات معاملة من V2. تتم الإشارة إلى إجابة واحدة على (وعلى صفحات Antlr) إلى بناء جملة V2 لم تعد متوفرة.

ساعدتني بعض أسئلة Antlr الخاصة بذلك كثيرا، لكن العثور عليها هي مصدر مخصص قليلا. لذلك أود أن أعرف كيف يمكن للمستخدمين المساعدة في إجراء عملية التعلم أقل إيلاما. (إذا كنت تشير إلى الكتاب المرجعي، فسيكون من المفيد الإشارة إلى صفحات معينة).

تعديل. وبعد أكدت Duffymo و JamesAnsterson أن مضاد العمل شاق - إلى حد كبير لأن المحللين صعبة. (FWIW لقد كنت من خلال Lex / YACC، وما إلى ذلك، وليس هناك شك في أن Antlr أكثر قوة وأسهل للعمل معها.) وأعتقد أنه لن يكون من المفيد أن يكون لديك مناطق حيث من الممكن تجنب قاذورات مثل:

  • ضمان الرسملة الصحيحة للأسماء المتغيرة
  • أضف اسم الحزمة إلى Lexer وكذلك المحلل
  • احرص على ترتيب القواعد لأنها تؤثر على الأسبقية

وأكثر من هذا النوع سيكون مفيدا.

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

المحلول

أوافق - Antlr ليس لضعاف القلب. يتوقع مستوى الدخول العالي، لأن النحو والمحافسين ليسوا تافهين.

مع ذلك، فيما يلي بعض الاقتراحات:

  1. ننسى v2. الإصدار 3 هو المعيار؛ لا تضيع الوقت في النظر في الإصدار السابق أو وثائقه.
  2. يخبرك OutofmemoryError أن هناك شيئا دائريا في القواعد التي حددتها.
  3. لدى Intellij دليل IDE رائع للعمل مع Antlr V3. سوف يعطيك تمثيل رسومي لقواعدك، وتصحيح الأخطاء، إلخ. إذا كنت ستفعل الكثير من العمل مع Antlr، فسيكون الأمر يستحق بضعة دولارات لشراء ترخيص.

لن يكون من السهل إتقان Antlr. الكتاب جيد، ولكن كثيف. رسائل الخطأ هي شفطية، كما لاحظت. سأفاجأ إذا كان أي شخص هنا قد يجعلها سهلة.

نصائح أخرى

عذرا، لكن تجربتي في Antlr (بالفعل Javacc أو Bison أو أي محلل وظيفة كاملة) هي أن معظم تعلمك سيكون عن طريق إصلاح أخطائك!

سيؤدي الحصول على أمثلة جيدة لرمز الشعوب الأخرى إلى خفض هذا إلى حد ما، وأفضل الأمثلة تبدو بسيطة حقا - لكنك تفتقد كل العرق والشعر الذي استغرق الأمر للحصول عليه سهولة.

حتى إذا كنت تفضل سطر الأوامر، فإن الأمر يستحق استخدام AntlrWorks عندما يكون لديك مشاكل. يمكن أن يسهل التمثيل المخطط رؤية ما أفعله خطأ.

الصورة تساوي ألف رسالة خطأ.

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