یک تحلیل‌گر لغوی (tokenizer) ساده برای یک زبان مینی‌کد بنویسید که رشتهٔ ورودی را پردازش کرده و توکن‌های کلمات‌کلیدی (if, else, while)، شناسه‌ها، اعداد صحیح، عملگرها (+ - * / = ==) و پرانتزها را شناسایی و نوع و مقدار هر توکن را چاپ کند.

4.0 بازدید آخرین ویرایش در 203 روز قبل ساعت 02:38

0.0

رشته را کاراکتر به کاراکتر پیمایش کنید، از توابع استاندارد مانند isspace، isalpha و isdigit برای تشخیص فضاها، شروع شناسه‌ها و اعداد استفاده کنید، شناسه‌های جمع‌شده را با لیست کلمات‌کلیدی مقایسه کنید و برای عملگرهای دوکاراکتری مانند "==" با نگاه کردن به کاراکتر بعدی تصمیم بگیرید؛ از هدر استفاده نکنید. پیشنهاد می‌شود ساختار توکن (نوع و مقدار) را در یک struct تعریف کرده و با توابع کمکی هر دسته از توکن‌ها را استخراج و در یک بردار ذخیره و سپس چاپ کنید.

توسط پژوهشگر در 203 روز قبل ساعت 02:38
دسته بندی ها: C Plus Plus C Plus Plus for beginner
reyhaneh در 203 روز قبل ساعت 09:00

ایدهٔ شما برای پیاده‌سازی tokenizer ساده برای زبان مینی‌کد خوب و عملی است. توصیه می‌کنم توکن‌ها را در یک struct با فیلدهای نوع و مقدار نگه دارید و همه را در یک بردار جمع‌آوری کنید تا چاپ و دیباگ ساده باشد. ابتدا با پیمایش کاراکتر به کاراکتر، فضاها را رد کنید و با isspace، isalpha و isdigit تشخیص آغاز شناسه‌ها و اعداد بدهید، کلیدواژه‌ها را با لیست (if, else, while) مقایسه کنید و شناسه‌های نام‌کلیدی را به صورت IDENT یا KEYWORD دسته‌بندی کنید. برای دوکاراکتری‌ها مثل ==، به کاراکتر بعدی نگاه کنید تا توکنِ کامل ساخته شود، و برای پرانتزها هم توکن‌های جداگانه بسازید. در پایان، توکن‌ها را در بردار چاپ کنید و به خطای ورودی ناهمخوان نیز پاسخ مناسبی بدهید.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری