سؤال

ولقد وضعت لغة برمجة تفسيرها. ويستند بقوة على C. والمشكلة هي، وأريد أن أضيف التوجيه foreach وليس لدي أي فكرة عن كيفية.

وأستخدمه بيسون وفليكس كما محلل وlexer مولد.

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

المحلول

في قواعد اللغة الخاصة بك، وكنت ترغب في التعبير وهذا شيء كما يلي:

foreach := foreach ( name in name ) { statements }

عند تحليل هذا، يجب أن تكون قادرة على ترجمة مباشرة في حلقة بينما في AST مع بيان الإضافي الذي يعين متغير في البداية.

وهذا يبدو لي أبسط طريقة للقيام بذلك، ولكن من المحتمل أن يكون قيود مع متعددة أنواع البيانات iterable (مثل قائمة مقابل مجموعة). في هذه الحالة، قد ترغب في النظر في توحيد جميع iterables حتى يكون لديهم أسلوب متناسق للحصول على العنصر التالي.

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