سؤال

أنا بناء لغتي الخاصة باستخدام فليكس, ولكن أريد أن أعرف بعض الأمور:

  • لماذا يجب استخدام المفردات تحليل?
  • أنها سوف تساعد لي في شيء ما ؟
  • هل هي إلزامية ؟
هل كانت مفيدة؟

المحلول

تحليل المفردات يساعد على تبسيط تحليل لأن lexemes يمكن أن تعامل على أنها كيانات مجردة بدلا من الخرسانة تسلسل الأحرف.

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

نصائح أخرى

في أي وقت يمكنك تحويل المدخلات السلسلة إلى الفضاء سلاسل مفصولة و/أو قيم رقمية ، يتم تنفيذ تحليل المفردات.كتابة سلسلة متعاقبة من else if (strcmp (..)==0) ... البيانات يعتبر التحليل المعجمي.حتى قذرة مثل هذه الأدوات sscanf strtok هي المعجمية أدوات التحليل.

كنت تريد استخدام أداة مثل المرن بدلا من واحد من فوق واحد من عدة أسباب:

  • إن معالجة الخطأ يمكن أن يكون أفضل بكثير.
  • يمكنك أن تكون أكثر مرونة في ما الأشياء المختلفة التي تعترف مع فليكس.على سبيل المثال, فمن الصعب تحليل ج-الشكل السداسي القيمة بشكل صحيح مع scanf الروتينية.scanf حد كبير إلى أعلم عرافة القيمة قادم.ليكس يمكن معرفة ذلك بالنسبة لك.
  • ليكس الماسحات الضوئية بشكل أسرع.إذا كنت تحليل الكثير من الملفات و/أو الكبيرة, هذا يمكن أن تصبح مهمة.

يمكنك أن تنظر في استخدام محلل المفردات لأنه يمكن استخدام BNF (أو EBNF) لوصف اللغة (النحو) بشكل إلزامي ، وبعد ذلك فقط استخدام محلل تحليل برنامج مكتوب في اللغة الخاصة بك والحصول عليه في الهيكل في الذاكرة ومن ثم التلاعب به بحرية.

انها ليست إلزامية و يمكنك بالطبع الكتابة الخاصة بك, ولكن هذا يعتمد على مدى تعقيد اللغة و كم من الوقت لديك إلى إعادة اختراع العجلة.

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

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