تجزیهکننده: تفاوت میان نسخهها
محتوای حذفشده محتوای افزودهشده
Yamaha5Bot (بحث | مشارکتها) ←تحلیل واژهای: تمیزکاری با ویرایشگر خودکار فارسی |
|||
خط ۸:
(آدرسid,C) و (add .op.) و (آدرسid, B) و (ass .op.) و (آدرس id, A)
بنابراین اسکنر علاوه بر اینکه تشخیص میدهد که توکن یک شناسهاست، آدرس آن در جدول نشانهها را نیز برای پارسر میفرستد. علاوه بر این اسکنر میتواند محلهای خالی و توضیحات(comments) موجود در برنامه اصلی را ضمن خواندن برنامه حذف نماید.
به آخرین توکنی که اسکنر یافتهاست، علامت پیش بینی(look ahead symbol)
۲–۱- الگو (pattern) و واژهٔ(Lexem) توکنها:
خط ۶۱:
این نحو استفاده از بافر در بیشتر موارد کاملاً خوب عمل میکند. با این وجود در مواردی که جهت تشخیص یک توکن، نشانه روِ forward ناچار است بیشتر از طول بافر جلو برود، این روش درست کار نمیکند.
بهعنوان مثال دستور declare (arg1،arg2، … ،arn n) را در یک برنامهٔ pl/1 در نظر بگیرید.
در این دستور تا زمانیکه کاراکتر بعد از پرانتز سمت راست را بررسی نکنیم، نمیتوان گفت که declare یک کلمهٔ کلیدی است
برای [[کنترل حرکت]] نشانه رویِ forward و همچنین کنترل بافر میتوان بصورت زیر عمل کرد:
If forward is at end of first half then
|