Понякога възниква проблем да се напише малък интелигентен скрипт, който разбира определена вградена граматика, т.е. с миниезик вътре. Първоначално написах минимална реализация на jq на bash. Но с увеличаването на "умността" ставаше все по-трудно да се реализира рекурсивен парсинг на подпредикати. Това толкова ми омръзна, че ме подтикна първо да напиша компилатор LARL(1) yacc (pre-bison) за генериране на bash-скрипт, а след това, като по масло, се получи много подобен на оригинала и добър проверъчен код за yacc_bash.c мини-jq на bash.
Цялата статия:
Източник: linux.org.ru
