www.wikidata.de-de.nina.az
Das Programm Lex wird im Ubersetzerbau benutzt um Scanner fur die lexikalische Analyse von Quelltexten zu erstellen Ein lexikalischer Scanner ist Teil eines Ubersetzers Lex wird oft genutzt in Kombination mit Yacc der fur die syntaktische Analyse zustandig ist Lex wurde Mitte der 1970er Jahre an den Bell Labs von Mike Lesk in C programmiert die Regex Behandlung stammte von Alfred V Aho und Ken Thompson Im Sommer 1976 wurde das Programm von dem damaligen Bell Labs Praktikanten Eric Schmidt neu implementiert Inhaltsverzeichnis 1 Arbeitsweise 2 Beispiel 3 Siehe auch 4 Literatur 5 WeblinksArbeitsweise BearbeitenDamit Lex ein Analyseprogramm generieren kann muss eine Beschreibungsdatei erstellt werden In dieser Datei werden sogenannte Token mittels regularer Ausdrucke 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 Das resultierende Analyseprogramm liest den Quellcode des zu kompilierenden Programmes ein und teilt diesen in Token ein Sollte dies nicht moglich sein liegt ein lexikalischer Fehler vor Die Token werden dann dem syntaktischen Analyseteil bzw programm eines Ubersetzers ubergeben Beispiel BearbeitenFur einen Beispiel Quelltext wie print 15 5 sind die Token PRINT NUMBER 15 PLUS NUMBER 5 SEMICOLON Es ist zu beachten dass Lex keine Kenntnis von erlaubter Syntax hat Konkret bedeutet dies dass der Beispielcode 15 print 5 ebenfalls in dieselben Token uberfuhrt wurde jedoch in anderer Reihenfolge Siehe auch BearbeitenJavaCCLiteratur BearbeitenHelmut Herold lex amp yacc Die Profitools zur lexikalischen und syntaktischen Textanalyse Addison Wesley 2003 ISBN 3 8273 2096 8 lex amp 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 NJ 1975 Weblinks BearbeitenThe Lex amp Yacc Page Memento vom 5 Dezember 2006 im Internet Archive In dinosaur compilertools net Tom Niemann Lex amp Yacc In epaperpress com Abgerufen am 10 November 2023 englisch Offizielle Homepage des flex auf GitHub englisch a href http www opengroup org onlinepubs 9699919799 utilities lex html lex a generate programs for lexical tasks Open Group Base Specification b flex 1 b fast lexical analyzer generator OpenBSD General Commands Manual Abgerufen von https de wikipedia org w index php title Lex Informatik amp oldid 238968038