لکس: تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
Adlerbot (بحث | مشارکت‌ها)
جز ربات: اصلاح حمزهٔ بعد از "ه"
Adlerbot (بحث | مشارکت‌ها)
جز ربات: اصلاح فاصله مجازی: "ای" بعد از "ه"
خط ۱:
{{ویکی‌سازی}}
در علوم رایانه,'''Lex''' برنامه ایبرنامه‌ای است که تحلیلگرهای لغوی را(اسکنرها یا لکسرها) تولید می‌کند. Lex معمولاً با Yacc )تولید کنندهٔ پارسر) استفاده می‌شود.
Lex در اصل، توسط Eric Schmidt و Mike Lesk طراحی و نوشته شد و این تحلیلگر لغوی، بطور استاندارد تحت سیستم‌های یونیکس است و یک ابزار برای نمایش رفتار(که برگرفته از استاندارد Posix) دارد.
Lex یک رشته را از ورودی می خواند و تحلیلگر لغوی را مشخص می‌کند و خروجی ، سورس کد یک Lexer به زبان برنامه نویسی C است.
خط ۲۳:
 
==مثالی از فایل Flex==
در ادامه یک فایل Lex از ویرایش Flex می‌آید. که یک رشته ایرشته‌ای از اعداد صحیح را از ورودی، تشخیص داده و در خروجی نمایشش می‌دهد:
<code>
</br>
خط ۶۶:
</br>
</code>
اگر رشته ورودی به Flex ارسال شود، آنرا به فایل C (lex.yy.c) تبدیل می‌کند. و به فایل قابل اجرا، کامپایل می‌شود که رشته ایرشته‌ای از اعداد صحیح را تشخیص داده و در خروجی نمایش می‌دهد. به‌عنوان مثال اگر رشتهٔ زیر را به‌عنوان ورودی بدهیم:
abc123z.!&*2ghj6
برنامه، خروجی زیر را خواهد داشت:
خط ۷۵:
 
==استفاده از Lex به همراه Yacc==
عموماً Lex و Yacc(''تولید کنندهٔ Parser'') درکنار یکدیگر مورد استفاده قرار می‌گیرند. چون Lex به ماشینهای قطعی(DFA) محدود می‌شود بنابراین آن رشته‌های ورودی، که Lex با استفاده از عبارات منظم قادر به تجزیهٔ آنها نیست، Yacc با استفاده از یک گرامر رسمی، آنها را تجزیه می‌کند، با این حال، Yacc قادر به دریافت رشته از ورودی نمی‌باشد و به مجموعه ایمجموعه‌ای از توکنها احتیاج دارد.غالبا Lex برای تامین توکنهای مورد نیاز Yacc مورد استفاده قرار می‌گیرد.
 
==Lex و ساختن==
برگرفته از «https://fa.wikipedia.org/wiki/لکس»