دیاگرام از سه جنبه ایراد داره(بریم به سمت همکاری):
اول اینکه وضعیت other براش در نظر گرفته نشده. مشکلی بوجود میاد مثلا برای این عبارت :
x=2;

نمی تونه x رو بعنوان یه شناسه بشناسه.چون نشانگر انتهای توکن که other باشه در برنامه تعبیه نشده.(اسکنر با رسیدن به = نمی فهمه باید چکار کنه یعنی کار درست رو انجام نمیده. کار درست اینه که به مساوی دست نزنه اگه خونده برگرده تا در گام بعد بفهمه برای = از کدوم دیاگرامش باید استفاده کنه.) همچنین عدد 2 هم بخاطر قرار گرفتن ; قابل شناسایی نیست.(دلیل وجود other نامتنهای بودن طول رشته پذیرش اون دیاگرامه که با یه کاراکتر دیگه که مال یه توکن دیگس به اسکنر میفهمونیم که کار تو در این دیاگرام تموم شده و تا قبل از کاراکتر نامربوط رو پذیرش کن)
برعکس اون برای عملگر بزرگتر مساوی یا کوچکتر مساوی یا ++ یا -- یا== بعد از آخرین توکن متوقع کاراکتر دیگه ای نیستیم پس چون یک رشته متناهی داریم که انتهاش معلومه به محض رسیدن به انتهای رشته پذیرش می کنیم و other اینجا نداریم.
دوم اینکه بجهت سهولت کار و کم شدن حجم کد بهتره وضعیتهای مشابه رو در یک دیاگرام در نظر بگیریم:

Scan0031.JPG

ایراد سوم اینه که وضعیتها شماره گذاری نشدن. که به این معناست که اولویت بررسی وضعیتها در نظر گرفته نشده. در شرایطی که یک دیاگرام کم استفاده است یا طول کمتری داره اگه اولویت رو به اون بدیم تشخیص توکن ها قطعا اشتباه خواهد بود.
از اینکه اینطور زحمت کشیدید و به مطالب گفته شده اهمیت دادید خوشحالم.
بهرحال همه در حال یادگرفتن هستیم.
از دوستانی که از این صفحه دیدن می کنن می خوام مطالب صفحات این تاپیک رو بخونن. مطالب با ارزشی گفته شده.
همچنین کتب معرفی شده در این تاپیک از هرکدوم که شروع بشه راهی به سمت فهم بهتر مطالب این تاپیکه و شما هم مطمئنا می تونید مطلبی رو در همکاری با این کار مهم بیان کنید که سودمند باشه.