(مبانی برنامه نویسی) خطا های واژه ای( Lexical Errors ) در برنامه نویسی (عمومی _ الکترونیک)

پژوهشگر و نویسنده:  (  افشین رشید )

نکته : بطور کلی خطاهای محدودی را اسکنر میتواند بیابد زیرا اسکنر تمام برنامه ورودی را یکجا نمی بیند بلکه هر بار قسمت کوچکی از برنامه منبع را می بیند.

هر گاه رشته fi در یک برنامه C برای بار اول مشاهده شود اسکنر قادر نیست تشخیص دهد که آیا fi یک املای غلط از کلمه کلیدی if است یا یک متغیر.

fi(x = = f(x))

سایر روشهای تصحیح خطا ( Recovery-Error) عبارتند از :

1 -حذف یک کاراکتر غیرمجاز ( تبدیل =$: به =: )

2 -وارد کردن یک کاراکتر گم شده ( تبدیل : به =: )

3 -تعویض کردن یک کاراکتر غلط با یک کاراکتر درست ( تبدیل :: به =: )

4 -جابجا کردن دو کاراکتر مجاز ( تبدیل := به =: 

از آنجایی که fi یک متغیر مجاز است اسکنر این توکن را به عنوان یک شناسه به پارسر می فرستد تا اینکه پارسر در این مورد تصمیم بگیرد .اما ممکن است خطاهایی پیش بیاید که اسکنر قادر به انجام هیچ عملی نباشد .در این حالت برنامه خطاپرداز (-ErrorH andler) فراخوانده می شود تا آن خطا را به نحوی برطرف کند.روش های مختلفی برای اینکار وجود دارد که ساده ترین آنها روشی موسوم به " Mode Panic " است.در این روش آنقدر از رشته ورودی حذف می شود تا اینکه یک توکن درست تشخیص داده شود.

نویسنده: دکتر (افشین رشید )