Il arrive parfois qu'il soit difficile d'écrire un petit script intelligent capable de comprendre une certaine grammaire intégrée, c'est-à-dire avec un mini-langage à l'intérieur. Au départ, j'ai écrit une implémentation minimale de jq en bash. Mais plus j'ajoutais de « l'intelligence », plus il devenait difficile de mettre en œuvre l'analyse récursive des sous-expressions. Cela m'a tellement agacé que cela m'a poussé à écrire d'abord un compilateur LARL(1) yacc (pre-bison) pour générer un script bash, puis j'ai obtenu assez facilement un code de vérification très proche de l'original et de bonne qualité pour yacc_bash.c, un mini-jq en bash.
Article complet :
Source : linux.org.ru
