Registrieren Passwort vergessen?

Lex (Informatik)

12. Aug 2008, 10:55

Das Programm Lex wird im Compilerbau benutzt, um Scanner für die lexikalische Analyse von Quelltexten zu erstellen. Ein Lexikalischer Scanner ist Teil eines Compilers.

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

Inhaltsverzeichnis

[Bearbeiten] 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 Quellcode 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 Compilers übergeben.

[Bearbeiten] Beispiel

Für einen Beispiel-Quellcode 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 Beispiel-Code

15+ print; 5

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

[Bearbeiten] 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)

[Bearbeiten] Weblinks

[Bearbeiten] Siehe auch

Dieser Artikel ist eine Kopie aus der freien Enzyklopädie Wikipedia. Am Originalartikel kann jeder Korrekturen und Ergänzungen vornehmen. Zudem kann man frühere Versionen einsehen.
In Kooperation mit Lycos Europe Network