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

[непроверена преработка][непроверена преработка]
Избришана содржина Додадена содржина
с Bot: Migrating 23 interwiki links, now provided by Wikidata on d:q835922 (translate me)
сНема опис на уредувањето
Ред 1:
{{Без извори|датум=ноември 2009}}
'''Лексичка анализа''' е процес во кој некој влез од низа од знаци (на пример изворниот код кај компјутерски програм) да произведе како излез низа од симболи наречени “лексички токени” или само “токени”. На пример, лексерите кај многу програмски јазици низата од знаци 123 abc ја делат на два токена: 123 и abc , празното место не се зема во предвид. Целта на создавањето на токените е обично тие да се предадат на друга програма како што е [[парсеррасчленување (информатика)|расчленувачот]]от (парсер).
 
[[Податотека:lekser.jpg|рамка|Википедија Енциклопедија]]
Ред 10:
Во ''првата фаза'', скенирањето, е базирано на [[детерминистички автомат]]. Тој ги енкодира информациите барајќи одредени токени. На пример токенот integer може да содржи некаква низа нумерички цифри. Во многу случаи првиот знак кој не е празно место може да се одреди за да се добие токенот кој следи, потоа влезот се процесира знак по знак сè додека не се стигне до знак кој не е прифатлив за таква секвенца.
 
''Втората фаза'', евалуацијата, кој ја ги поминува токените и им дава вредност т.е. создава стек на вредности. Токените комбинирани со нивните вредности потоа се даваат на парсеротрасчленувачот.
На пример, во изворниот код на некој програм низата:
Ред 42:
"begin", "call", "const", "do", "end", "if", "odd", "procedure", "then", "var", "while"
 
Скенирањето започнува со повикување на init_scan, со кое се предава името на изворната датодека. Ако изворната податотека успешно се отвори, тогаш парсеротрасчленувачот ја повикува getsym последователно за сукцесивно да ги врати симболите од изворната датотека.
 
Срцето на скенерот, getsym, ги извршува акциите одејки само нанапред. Прво, празните места се прескокнуваат, потоа знаците се класифицираат. Ако знаците претставуваат некој повеќезнаковен симбол тогаш треба да се направи некое дополнително процесирање. Броевите се претвараат во интерна форма, а идентификаторите се проверуваат за да се види дали имаат значење на некој клучен збор.