Uneori apare problema de a scrie un mic script inteligent, care să înțeleagă o anumită gramatică încorporată, adică un mini-limbaj în interior. Inițial, am scris o implementare minimă a jq în bash. Însă, pe măsură ce se adăuga „inteligență”, devenea din ce în ce mai greu să se implementeze analiza recursivă a sub-expresiilor. A fost atât de obositor, încât m-a determinat să scriu inițial un compilator LARL(1) yacc (pre-bison) pentru a genera un script bash, iar apoi, ca prin minune, a rezultat un cod de verificare foarte similar cu originalul și bun pentru yacc_bash.c mini-jq în bash.
Articolul complet:
Sursa: linux.org.ru
