یک برنامه به زبان C++ بنویسید که یک رشتهٔ ساده از کد را گرفته و با استفاده از الگوهای regex توکنهای پایه مثل کلیدواژهها، شناسهها، اعداد، عملگرها و پرانتزها را استخراج کرده و هر توکن را همراه نوع آن در یک خط چاپ کند.
1.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:34 0.0
برای حل این مسئله میتوانید از کتابخانهٔ استاندارد در C++ استفاده کنید: الگوهای مجزا برای کلیدواژهها (مثلاً if|else|for|while|return)، شناسهها ([A-Za-z_][A-Za-z0-9_]*), اعداد (\d+(\.\d+)?), عملگرها (==|!=|=|[+\-*/%=]) و جداکنندهها/پرانتزها را با یک الگوی ترکیبی (alternation) بسازید. از std::sregex_iterator برای پیمایش تمام تطابقها استفاده کنید، ترتیب الگوها مهم است (کلیدواژهها قبل از شناسهها) و فاصلهها را نادیده بگیرید؛ نتایج را با نوع مربوطه چاپ کنید. این کار شبیه یک مرحلهٔ سادهٔ تحلیلواژهای (lexical analysis) در کامپایلرها/مفسرها است.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای این کار رعایت کنید که کلیدواژهها را قبل از شناسهها در الگوها قرار دهید تا از طبقهبندی اشتباه جلوگیری شود. از std::sregex_iterator برای پیمایش تطابقها استفاده کنید و فاصلهها را با یک الگو نادیده بگیرید تا توکنها به درستی استخراج شوند. الگوی ترکیبی با alternation بسازید: کلیدواژهها|شناسه|عدد|عملگرها|پرانترها و از \d+(?:\.\d+)? برای اعداد اعشاری استفاده کنید. همچنین به ترتیب اجرا و موقعیتهای متنی هر توکن دقت کنید تا بتوانید در دیباگ یا نمایش خط دقیقتر عمل کنید.
گزارش