lex und yacc sind zwei grundlegende Tools, die im UNIX-Betriebssystem zum Erstellen von Textverarbeitungsprogrammen wie Compilern und Dolmetscher verwendet werden.
Lex (Lexikalanalysatorgenerator) ist ein Programm, das lexikalische Analysatoren generiert, die für die Aufteilung eines Zeichenstroms in individuelle "Token" verantwortlich sind. Beispielsweise kann ein lexikalischer Analysator Wörter, Zahlen, Interpunktionsmarken oder andere logische Einheiten in einer Textdatei erkennen. Es führt die erste Zusammenstellung durch, indem Zeichenströme in eine Sequenz von Token konvertiert werden.
yacc (noch ein Compiler Compiler) ist ein Parser -Generator, der Parser erstellt, die Programme sind, die die grammatikalische Struktur einer Reihe von Token analysieren können. Parser überprüfen die Syntax des Eingangs und konstruieren einen abstrakten Syntaxbaum (AST), der die Struktur des Programms darstellt. Diese abstrakte Darstellung wird dann zur weiteren Zusammenstellung oder Interpretation verwendet.
Lex und YACC werden normalerweise zusammen verwendet, um Sprachprozessoren zu erstellen. Das LEX -Programm generiert einen lexikalischen Analysator, der den Eingabetxt tokenisiert, und das YACC -Programm generiert einen Parser, der die Syntax der tokenisierten Eingaben überprüft und die AST erstellt. Zusammen bilden sie ein leistungsstarkes Toolset zum Erstellen verschiedener Sprachverarbeitungsanwendungen, einschließlich Compiler, Dolmetscher, Textredakteuren und vielem mehr.