لکس: تفاوت میان نسخهها
محتوای حذفشده محتوای افزودهشده
جز ربات ردهٔ همسنگ (۲۶) +املا+مرتب (۸.۸): + رده:ابزارهای مرتبط با کامپایل کردن |
|||
خط ۶:
== ساختار یک فایل Lex ==
ساختار یک فایل Lex
''بخش تعریف''
خط ۱۳:
%%
''بخش کد زبان C''
* ''قسمت تعریف (definition section)''، جایی برای تعریف ماکروها و وارد کردن فایلهای سرآمدی (header) است که به زبان C نوشته شدهاند. همچنین امکان اینکه هر کدی از زبان C را در اینجا بنویسید، وجود دارد، و این کد بصورت کلمه به کلمه، در کد اصلی تولید شده خواهد آمد.
* ''قسمت قواعد (rules section)''، مهمترین بخش است که الگو ها (عبارات منظم ساده) را با استفاده از دستورات زبان C با هم مرتبط میسازد. زمانی که لکسر، متون را از ورودی میگیرد، الگوی معینی را برایشان مشخص میکند و کد (به زبان C) مرتبط با آن الگو را نیز اجرا میکند. و این چرخهٔ اصلی فعالیت Lex میباشد.
سطر ۶۹ ⟵ ۶۸:
== استفاده از Lex به همراه Yacc ==
عموماً Lex و Yacc(''تولید کنندهٔ Parser'') درکنار یکدیگر مورد استفاده قرار میگیرند. چون Lex به ماشینهای قطعی (DFA) محدود میشود بنابراین آن رشتههای ورودی، که Lex با استفاده از عبارات منظم قادر به تجزیهٔ آنها نیست، Yacc با استفاده از یک گرامر رسمی، آنها را تجزیه میکند، با این حال، Yacc قادر به دریافت رشته از ورودی نمیباشد و به مجموعهای از توکنها احتیاج دارد.
== Lex و ساختن ==
سطر ۹۸ ⟵ ۹۷:
{{پایان چپچین}}
این کار در اینجا بسیار سریع انجام شد اما اگر شما به ۱۰ فایل برای کامپایل، نیاز داشته باشید، آنگاه این روش
== منابع ==
{{پانویس}}
۱. ^ "make", The Open Group Base Specifications Issue
Open Group),
[[رده:ابزارهای برنامهنویسی یونیکس]]
[[رده:ابزارهای مرتبط با کامپایل کردن]]
|