Лексички анализатор: Разлика помеѓу преработките

[непроверена преработка][непроверена преработка]
Избришана содржина Додадена содржина
с Бот Менува: fa:تحلیل واژگانی
с Бот: козметички промени
Ред 1:
{{Без извори|датум=ноември 2009}}
'''Лексичка анализа''' е процес во кој некој влез од низа од знаци (на пример изворниот код кај компјутерски програм) да произведе како излез низа од симболи наречени “лексички токени” или само “токени”. На пример, лексерите кај многу програмски јазици низата од знаци 123 abc ја делат на два токена: 123 и abc , празното место не се зема во предвид. Целта на создавањето на токените е обично тие да се предадат на друга програма како што е [[парсер]]от.
 
[[СликаПодатотека:lekser.jpg|рамка|Википедија Енциклопедија]]
 
За многу јазици правењето на лексичка анализа може да се направи во едно поминување- со читање на знак по знак од влезот. Но, моногу комерцијални компајлери користат на рака напишани (не автоматски генерирани) лексери бидејќи во нив е возможно многу полесно да се интегрираат справувачи со грешки.
Ред 8:
Лексерот или лексичкиот анализатор се состои од два дела: скенер и евалуатор. (Овие делови обично се интегрирани поради ефикасноста т.е. за да работат паралелно).
 
Во ''првата фаза'', скенирањето, е базирано на [[детерминистички автомат]]. Тој ги енкодира информациите барајќи одредени токени. На пример токенот integer може да содржи некаква низа нумерички цифри. Во многу случаи првиот знак кој не е празно место може да се одреди за да се добие токенот кој следи, потоа влезот се процесира знак по знак се додека не се стигне до знак кој не е прифатлив за таква секвенца.
 
''Втората фаза'', евалуацијата, кој ја ги поминува токените и им дава вредност т.е. создава стек на вредности. Токените комбинирани со нивните вредности потоа се даваат на парсерот.
Ред 28:
 
 
Иако е возможно а, понекогаш и пожелно да се пишуваат лексери, тие обично се генерираат од автоматски алатки. Овие алатки генерално прифаќаат регуларни изрази кои што ги опишуваат токените кои се дозволени на влез. Секој регуларен израз е проследен со продукција на лексичката граматика на програмскиот јазик којшто ги евалуира токените спојувајќи ги со регуларните изрази. Овие алатки можат да генерираат изворен код којшто може да биде компајлиран и извршен или можат да конструираат табела на состојби за детерминистички автомат.
 
Пример за лексички анализатор