مقدمه
بعد از تقسیم فایل به توکن ها ، حالا نوبت آن است که توکن های مرتبط به هم را در کنار هم قرار دهیم
و یک دستور معنی دار را شکل دهیم برای مثال اگر به توکن
if
برخورد کردیم توکن های بعد از آن را به شکلی تفسیر میکنیم که یک دستور شرطی کامل را شکل دهد
برای مثال بعد از توکن
if
تمام توکن ها را به عنوان شرط اجرای حلقه در نظر میگیریم تا به توکن
{
برسیم که به معنی شروع دستورات مربوط به حلقه شرطمان است
و همین روش را برای باقی توکن ها انجام میدهیم تا از ترکیب توکن ها
یک عبارت یا دستور کامل را شکل دهیم. هدف اجرای پارسر این است که در انتها یک درخت از دستورات را شکل دهیم
به این درخت
Abstract Syntax Tree
یا در اختصار
AST
گفته میشود.
در مرحله بعد کار ما پیمایش درخت و اجرای دستورات مربوط به هر نود درخت میباشد.
دستور زیر را در نظر بگیرید
1 + 2 * 3
در نهایت تبدیل به درخت زیر خواهد شد
BinaryOperator
├── 1
├── +
└── BinaryOperator