تالار گفتمان مانشت
تشخیص خطا در تحلیلگر لغوی یا نحوی - نسخه‌ی قابل چاپ

تشخیص خطا در تحلیلگر لغوی یا نحوی - zahra2012 - 14 بهمن ۱۳۹۲ ۰۹:۵۲ ب.ظ

این سوال مربوط به آزمون پارسه هست و گفته شده که تحلیل گر نحوی این خطا رو تشخیص میده چرا تحلیلگر لغوی نمی تونه تشخیصش بده؟؟
float X;
X=1..6;

RE: تشخیص خطا در تحلیلگر لغوی یا نحوی - Riemann - 14 بهمن ۱۳۹۲ ۱۰:۰۳ ب.ظ

تحلیل گر لغوی میاد مثلا x=1...2 رو به این تبدیل میکنه
id , Op, sub_range
و عملا هیچ دیدی نداره که باید توی متغیر x از نوع float باشه، درواقع فکر کنم این کار مربوط به تحلیل گر معنوی هستش که میاد توی زمان کامپایل این کار رو واسه ما چک میکنه و خطا میده.

RE: تشخیص خطا در تحلیلگر لغوی یا نحوی - zahra2012 - 14 بهمن ۱۳۹۲ ۱۰:۱۳ ب.ظ

(۱۴ بهمن ۱۳۹۲ ۱۰:۰۳ ب.ظ)Riemann نوشته شده توسط:  تحلیل گر لغوی میاد مثلا x=1...2 رو به این تبدیل میکنه
id , Op, sub_range
و عملا هیچ دیدی نداره که باید توی متغیر x از نوع float باشه، درواقع فکر کنم این کار مربوط به تحلیل گر معنوی هستش که میاد توی زمان کامپایل این کار رو واسه ما چک میکنه و خطا میده.

جوابش گفته که تحلیل گر لغوی این جوری تفسیرش می کنه
متغیر x عملگر مساوی عدد اعشاری (.۱) عدد اعشاری (۶/)
سپس تحلی گر نحوی چون همچین ساختاری در زبان وجود ندارد این خطا رو تشخیص میده تا اینجاش درست
موضوع اینه که مگه عدد اعشاری به صورت ۱/۰ نیست پس چرا تحلیل گر لغوی نمیتونه این رو تشخیص بده؟ چون بعد از . باید عدد بیاد که نیومده Exclamation

RE: تشخیص خطا در تحلیلگر لغوی یا نحوی - zahra2012 - 22 بهمن ۱۳۹۲ ۱۲:۱۱ ب.ظ

(۱۴ بهمن ۱۳۹۲ ۱۰:۰۳ ب.ظ)Riemann نوشته شده توسط:  تحلیل گر لغوی میاد مثلا x=1...2 رو به این تبدیل میکنه
id , Op, sub_range
و عملا هیچ دیدی نداره که باید توی متغیر x از نوع float باشه، درواقع فکر کنم این کار مربوط به تحلیل گر معنوی هستش که میاد توی زمان کامپایل این کار رو واسه ما چک میکنه و خطا میده.

آقای ریمن جوابی که داده بودین نیست میشه دوباره بزارینش لطف می کنید Shy

RE: تشخیص خطا در تحلیلگر لغوی یا نحوی - Riemann - 23 بهمن ۱۳۹۲ ۱۰:۲۱ ب.ظ

آقای ریمن جوابی که داده بودین نیست میشه دوباره بزارینش لطف می کنید Shy


خودمم هم یادم نیست چی گفتم!
آهان الان یادم اومد! واسه اعداد اعشاری یک عبارت منظم به این فرم هست: [tex][0-9]^ .[0-9]^{\ast}[/tex] که این میگه که بعد از نقطه میتونه عدد بیاد یا نه! و به عبارت دیگر ۱/ یک عدد اعشاری معتبر هست.

RE: تشخیص خطا در تحلیلگر لغوی یا نحوی - tohid.salmani - 26 مرداد ۱۳۹۷ ۰۴:۲۹ ب.ظ

(۱۴ بهمن ۱۳۹۲ ۰۹:۵۲ ب.ظ)zahra2012 نوشته شده توسط:  این سوال مربوط به آزمون پارسه هست و گفته شده که تحلیل گر نحوی این خطا رو تشخیص میده چرا تحلیلگر لغوی نمی تونه تشخیصش بده؟؟
float X;
X=1..6;

خب اگه قرار باشه برای این گرامر مستقل از متن نوشته بشه برای . حتما باید( .|ترمینال|لاندا) نوشته و اینکه دیگه بازگشتی نباشه به همون سطر(بازگشتی از چپ)
تحلیل گر نحوی هم طی این فرایند دیگه میاد یه نقظه میخونه و برای دومی میگه این اشتباهه