إنشاء الكلمة foreach مع ياك أو البيسون وفليكس
-
05-07-2019 - |
سؤال
ولقد وضعت لغة برمجة تفسيرها. ويستند بقوة على C. والمشكلة هي، وأريد أن أضيف التوجيه foreach
وليس لدي أي فكرة عن كيفية.
وأستخدمه بيسون وفليكس كما محلل وlexer مولد.
المحلول
في قواعد اللغة الخاصة بك، وكنت ترغب في التعبير وهذا شيء كما يلي:
foreach := foreach ( name in name ) { statements }
عند تحليل هذا، يجب أن تكون قادرة على ترجمة مباشرة في حلقة بينما في AST مع بيان الإضافي الذي يعين متغير في البداية.
وهذا يبدو لي أبسط طريقة للقيام بذلك، ولكن من المحتمل أن يكون قيود مع متعددة أنواع البيانات iterable (مثل قائمة مقابل مجموعة). في هذه الحالة، قد ترغب في النظر في توحيد جميع iterables حتى يكون لديهم أسلوب متناسق للحصول على العنصر التالي.
لا تنتمي إلى StackOverflow