تحلیل واژگانی: تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
Shshj (بحث | مشارکت‌ها)
بدون خلاصۀ ویرایش
Shshj (بحث | مشارکت‌ها)
خط ۱۱۱:
 
=== اسکنر ===
در مرحله اول، اسکنر، معمولاً مبتنی بر یک [[ماشین‌های حالات متناهی|ماشین حالت متناهی]] است که با استفاده از اطلاعات کاراکترهایی با توالی ممکن کدگذاری شده است که این کاراکترها می‌توانند هر یک از توکن‌ها مورد استفاده باشد. به عنوان مثال، یک توکن عدد صحیح می‌تواند دارای هر توالی از ارقام باشد.در بسیاری از نمونه ها اولین کاراکتری که فضای خالی نباشد، می تواند برای استنباط نوع توکن بعدی مورداستفاده قرار گیرد و زیردنباله ی کارکترهای ورودی بعد از آن در یک زمان پردازش می شوند تاوقتی که به کاراکتری برسد که که در مجموعه ی کاراکترهای قابل قبول برای توکن ها نباشد (که اصطلاحا این عمل ، قانون حداکثر جویدن یا طولانی ترین تطبیق نامیده می شود). در بسیاری از زبان ها قانین تولید واژه بسیار پیچیده تر است و ممکن است درگیر عقب گرد برروی کاراکترهای خوانده شده ی قبلی شود. به عنوان مثال در C تنها یک کاراکتر 'L' برای تمایز قائل شدن بین یک شناسه که با 'L' شروع می شود و یک کاراکتر از یک رشته کافی نیست.
 
=== ارزیابی کننده ===