LEX

LEX

Das Programm Lex wird im Übersetzerbau benutzt, um Scanner für die lexikalische Analyse von Quelltexten zu erstellen. Ein lexikalischer Scanner ist Teil eines Übersetzers.

Lex wird oft in Kombination mit Yacc, der für die syntaktische Analyse zuständig ist, genutzt.

Inhaltsverzeichnis

Arbeitsweise

Damit Lex ein Analyseprogramm generieren kann, muss eine Beschreibungsdatei erstellt werden. In dieser Datei werden sogenannte Token mittels regulärer Ausdrücke definiert.

Hier ein Beispiel einer solchen Datei:

%{
   #include "y.tab.h"
   extern int yylval;
%}
   %%
   "="      { return EQ; }
   "!="     { return NE; }
   "+"      { return PLUS; }
   "-"      { return MINUS; }
   ";"      { return SEMICOLON; }
   "print"  { return PRINT; }
   [0-9]+   { yylval = atoi(yytext); return NUMBER; }
   …
   #endif

Das resultierende Analyseprogramm liest den Quellkode des zu kompilierenden Programmes ein und teilt diesen in Token ein. Sollte dies nicht möglich sein, liegt ein syntaktischer Fehler vor. Diese Token werden dann dem syntaktischen Analyseteil bzw. -programm eines Übersetzers übergeben.

Beispiel

Für einen Beispiel-Quellkode wie…

print 15+5;

…wären die Token:

  1. (PRINT, )
  2. (NUMBER, 15)
  3. (PLUS, )
  4. (NUMBER, 5)
  5. (SEMICOLON, )

Es ist zu Beachten, dass Lex keine Kenntnis von erlaubter Syntax hat. Konkret bedeutet dies, dass der Beispielkode

15+ print; 5

ebenfalls in dieselben Token überführt würde (lediglich in anderer Reihenfolge).

Literatur

  • Herold, Helmut: lex & yacc. Die Profitools zur lexikalischen und syntaktischen Textanalyse. Addison Wesley, 2003, ISBN 3-82732-096-8
  • lex & yacc, o'Reilly. ISBN 1-56592-000-7
  • M. E. Lesk, E. Schmidt: Lex — A Lexical Analyzer Generator, Computing Science Technical Report No. 39, Bell Laboratories, Murray Hill, New Jersey 07974 (October 1975)

Weblinks

Siehe auch


Wikimedia Foundation.

Игры ⚽ Нужен реферат?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • -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 — программа для генерации лексических анализаторов, обычно используемая совместно с генератором синтаксических анализаторов 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

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”