yacc (pre-bizon) parser ve skriptu bash. Implementace jq v bash

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

Přidat komentář