لکس: تفاوت میان نسخهها
محتوای حذفشده محتوای افزودهشده
جز روبات: اِعمال دستور خط فارسی و فرهنگ املایی |
جز ربات: اصلاح فاصله مجازی: ها |
||
خط ۳:
Lex در اصل، توسط Eric Schmidt و Mike Lesk طراحی و نوشته شد و این تحلیلگر لغوی، بطور استاندارد تحت سیستمهای یونیکس است و یک ابزار برای نمایش رفتار(که برگرفته از استاندارد Posix) دارد.
Lex یک رشته را از ورودی می خواند و تحلیلگر لغوی را مشخص می کند و خروجی ، سورس کد یک Lexer به زبان برنامه نویسی C است.
بهرحال،
==ساختار یک فایل Lex==
خط ۲۰:
** ''قسمت قواعد(rules section)''، مهمترین بخش است که الگو ها(عبارات منظم ساده) را با استفاده از دستورات زبان C با هم مرتبط می سازد. زمانی که لکسر، متون را از ورودی می گیرد، الگوی معینی را برایشان مشخص می کند و کد(به زبان C) مرتبط با آن الگو را نیز اجرا می کند. و این چرخه ی اصلی فعالیت Lex می باشد.
** ''قسمت کد زبان C (C code section)''، شامل دستورات و توابع کد زبان C است که کلمه به کلمه به فایل سورس تولید شده، اضافه می شود. احتمالاً این دستورات حاوی کدهایی هستند که در قسمت قواعد، توسط قواعد مختلف، فراخوانی می گردند. بهتر است که در
==مثالی از فایل Flex==
خط ۷۵:
==استفاده از Lex به همراه Yacc==
عموماً Lex و Yacc(''تولید کننده ی Parser'') درکنار یکدیگر مورد استفاده قرار می گیرند. چون Lex به ماشینهای قطعی(DFA) محدود می شود بنابراین آن
==Lex و ساختن==
مزیت ساختن، برای حفظ و نگهداری
بطور مثال اجازه دهید تا فایلی با نام ex.l و فایل قابل اجرای EXE را در خروجی داشته باشیم . روش معمول بصورت زیر است:
$>lex ex.l <return>
|