Jedes Mal, wenn ein statisches Dokument (z.B. eine Datei) oder ein dynamisches Dokument (z.B. ein zeitlicher Strom) existiert und dieses Dokument irgendeine Art von Struktur hat, werden Sie eine Art von Parser benötigen. Bei hinreichend einfachen Strukturen können Sie mit Ad-hoc-Parsing auskommen (String-Hacking, Regexes usw.). Für Strukturen, die nicht verschachtelt sind, können Sie mit einem endlichen Automaten auskommen; hier ist ein Lexer-Generator oft hilfreich. Für komplexe Strukturen benötigen Sie einen organisierten Parser. Sie können Parser von Hand schreiben, wenn Sie mit rekursivem Descent-Parsing vertraut sind. Für wirklich komplexe Strukturen ist ein Parsergenerator fast immer ein großer Gewinn.
Wenn Sie eine Computersprache verarbeiten wollen, benötigen Sie als Ausgangspunkt Lexer und Parser. Sie reichen aber nicht aus, man muss auch etwas mit dem Ergebnis des Parsers machen.
Eine wirklich spektakuläre Anwendung von Lexing und Parsing, die wir gemacht haben, ist die Übersetzung von JOVIAL, einer Sprache aus den 1960er Jahren, in C für den B-2 Tarnkappenbomber. Siehe http://www.semdesigns.com/Products/Services/NorthropGrummanB2.html