Іноді виникає проблема написати невеликий розумний скрипт, який розуміє якусь вбудовану граматику, тобто з мініязиком всередині. Спочатку я написав мінімальну реалізацію jq на bash. Але чим більше додавали туди «розумності», тим важче доводилося реалізовувати рекурсивний розбір виразів. Це так набридло, що спонукало написати спочатку компілятор LARL(1) yacc (pre-bison) для генерації bash-скрипта, а потім як по маслу вийшов дуже схожий на оригінал і хороший код перевірки для yacc_bash.c міні-jq на bash.
Стаття повністю:
Джерело: linux.org.ru