Někdy nastává problém napsat malý chytrý skript, který rozumí nějaké vestavěné gramatice, tedy s minijazykem uvnitř. Původně jsem napsal minimální implementaci jq v bash. Ale čím více „chytrosti“ tam bylo přidáno, tím obtížnější bylo implementovat rekurzivní analýzu podvýrazů. Byl jsem z toho tak unavený, že jsem byl vyzván, abych nejprve napsal kompilátor LARL(1) yacc (pre-bison), který vygeneruje bash skript, a pak jsem jako hodinky získal velmi podobný originál a dobrý testovací kód pro yacc_bash.c mini-jq v bash.
Celý článek:
Zdroj: linux.org.ru