Yacc-Parser (Pre-Bison) im Bash-Skript. Implementierung von jq in Bash

Manchmal entsteht das Problem, ein kleines intelligentes Skript zu schreiben, das eine eingebaute Grammatik versteht, also eine Minisprache enthält. Ich habe ursprünglich eine minimale Implementierung von jq in Bash geschrieben. Aber je mehr „Intelligenz“ dort hinzugefügt wurde, desto schwieriger wurde es, rekursives Parsen von Unterausdrücken zu implementieren. Ich hatte das so satt, dass ich aufgefordert wurde, zuerst den LARL(1) yacc (Pre-Bison)-Compiler zu schreiben, um ein Bash-Skript zu generieren, und dann bekam ich wie am Schnürchen einen dem Original sehr ähnlichen und einen guten Testcode für yacc_bash.c Mini-JQ in Bash.

Artikel vollständig:

Source: linux.org.ru

Kommentar hinzufügen