سؤال

أود تحديد مجموعة غير مرتبة من القيم باستخدام قواعد حرة في شكل خلفي من النور (EBNF).من السهل تحديد قائمة غير مدرجة من القيم في EBNF، على سبيل المثال:

giveacodicetagpre.

ومع ذلك، أتمكن من الشكوك التي يمكن القيام بها لمجموعة غير مرضية.

أدناه هي أمثلة على المقررات المباشرة غير المبررة من القيم:

giveacodicetagpre.

في حين أن قوائم غير صالحة ستكون:

giveacodicetagpre.

أو قوائم الطول التعسفي.

giveacodicetagpre.

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

المحلول

em يمكن تحديد مجموعات غير مرتبة في EBNF، ولكن فقط عن طريق سرد جميع التعدادات المحتملة. هذا غير عملي للحمئات أكبر من عناصرين.

p>

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

giveacodicetagpre.

وبالمثل، يمكنك كتابة شيء مثل:

giveacodicetagpre.

أو ربما

giveacodicetagpre.

هذا ليس استخداما كبيرا لبناء مولد المحلل المحلل، ولكن قد يكون مفيدا للقارئ البشري يفهم نفس اللغة كما تفعل.

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

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