Lex

Lex

lex

Lex — программа для генерации лексических анализаторов, обычно используемая совместно с генератором синтаксических анализаторов yacc. Lex был первоначально написан Эриком Шмидтом (Eric Schmidt) и Майком Леском (Mike Lesk) и является стандартным генератором лексических анализаторов в операционных системах Unix, а также включен в стандарт POSIX. Lex читает входной поток, описывающий лексический анализатор, и даёт на выходе исходный код на языке программирования C.

Структура входного файла

Структура lex-файла сделана подобно структуре yacc-файла; файл разделяется на три блока, разделённые строками, содержащими два символа процента:

Блок определений
%%
Блок правил
%%
Блок кода на Си
  • В блоке определений задаются макросы и заголовочные файлы. Здесь также допустимо писать любой код на Си — он будет скопирован в результирующий файл.
  • Блок правил — наиболее важная часть; она описывает шаблоны и ассоциирует их с вызовами. Шаблоны представляют собой регулярные выражения. Когда анализатор видит текст, подходящий под шаблон, он выполняет указанный код.
  • Блок кода содержит операторы и функции на Си, которые копируются в генерируемый файл. Предполагается, что эти операторы содержат код, вызываемый правилами из предыдущего блока. Для сложных анализаторов бывает более удобно поместить этот код в отдельный файл, подключающийся на стадии компиляции.

См. также

  • yacc
  • Flex
  • JLex
  • GPLex - генератор сканнеров на языке C#



Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Полезное


Смотреть что такое "Lex" в других словарях:

  • -lex — lex·ia; …   English syllables

  • Lex — f. (Plural Leges, lateinisch für „Gesetz“) ist ein Begriff aus dem Römischen Reich, der im weiteren Sinne jede Rechtsvorschrift bezeichnet, im engeren Sinne jedoch nur die Rechtsvorschriften, die einen bestimmten Weg durchlaufen hatten. Ursprung… …   Deutsch Wikipedia

  • Lex — • While official or private collections of Roman Law made under the Empire are called codices, e. g. Codex Theodosianus , probably because they were written on parchment sheets bound together in book form, the title lex was given to collections… …   Catholic encyclopedia

  • lex — lex·i·cal; lex·i·cog·ra·pher; lex·i·co·graph·ic; lex·i·cog·ra·phist; lex·i·cog·ra·phy; lex·i·co·log·i·cal; lex·i·col·o·gist; lex·i·col·o·gy; lex·i·con; lex·i·con·ize; lex·i·co·statistic; lex·i·co·statistics; lex·i·graph·ic; lex·ig·ra·phy;… …   English syllables

  • Lex — or LEX may refer to:* Written law: ** Legislation ** Statute ** Statutory law ** Act of Parliament ** Act of Congress *Lex programming tool * Lex Records * Lexical item, in formal languages * Companies: ** Lex Vehicle Leasing ** Lex building,… …   Wikipedia

  • Lex — (l[e^]ks), n.; pl. {Leges} (l[=e] j[=e]z). [L. See {Legal}.] Law; as, lex talionis, the law of retaliation; lex terr[ae], the law of the land; lex fori, the law of the forum or court; lex loci, the law of the place; lex mercatoria, the law or… …   The Collaborative International Dictionary of English

  • LEX — o LEX puede referirse a: Extensión del borde de ataque (LEX por sus siglas en inglés), en aeronáutica; LEX, serie de TV en España de 2008; Lex, herramienta de programación; Lex, hipocorístico del nombre Alexandra o Alexander (y sus variantes);… …   Wikipedia Español

  • lex — программа для генерации лексических анализаторов, обычно используемая совместно с генератором синтаксических анализаторов yacc. Lex был первоначально написан Эриком Шмидтом (Eric Schmidt) и Майком Леском (Mike Lesk) и является стандартным… …   Википедия

  • lex — index act (enactment), canon, code, enactment, law, statute, term (provision) …   Law dictionary

  • Lex — die; , Leges [...ge:s] <aus gleichbed. lat. lex, Gen. legis> aus bestimmtem Anlass erlassenes Gesetz, das (unter Anspielung auf die römische Gesetzgebung) mit dem Namen des Antragstellers oder der betreffenden Sache versehen wird (z. B. Lex …   Das große Fremdwörterbuch


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»