کابوس(($doom$): حکم فَنا؛ که آخرین روشنی روز بههنگام غروب است(. درس نظریهی زبانها و ماشینها از محدودهی خوابتان تجاوز کرده و تراوشات آن به این امتحان عملی نیز رسیده است.
در یک گرامر مستقل از متن، یک متغیر را «سازنده» مینامیم، اگر با قرار دادن آن بهعنوان متغیر شروع،بتوان به حداقل یک رشتهی نهایی (تنها شامل ترمینالها) رسید. مثلاً در گرامر زیر، تنها متغیرهای $D$ و $E$ سازندهاند:
حالا مسئله چیست؟
یک مسئلهی بسیار ساده )مانند خیلی دیگر از مسائل نظریهی زبانها و ماشینها!) برنامهای بنویسید که با گرفتن یک گرامر مستقل از متن، متغیرهای سازندهی آن را خروجی دهد.
در گرامر ورودی این مسئله، الفبا (مجموعهی ترمینالها) شامل اعداد صحیح منفی بزرگتر از -1000 است.
مجموعهی متغیرها نیز با اعداد صحیح مثبت کوچکتر از 1000 نمایش داده میشود.
در تنها سطر خروجی، شمارهی متغیرهای سازندهی گرامر را با یک فاصله از هم بنویسید.