yacc (пред-бизон) парсер во баш скрипта. Имплементација на jq во баш

Понекогаш се јавува проблемот со пишување мала паметна скрипта што разбира некоја вградена граматика, односно со мини-јазик внатре. Првично напишав минимална имплементација на jq во bash. Но, колку повеќе „паметност“ се додаваше таму, толку потешко беше да се спроведе рекурзивно парсирање на подизразите. Бев толку уморен од ова што ми беше побарано прво да го напишам компајлерот LARL(1) yacc (пред-бизон) за да генерирам баш скрипта, а потоа, како часовник, добив многу сличен на оригиналот и добар тест код. за yacc_bash.c мини-jq во баш.

Целосна статија:

Извор: linux.org.ru

Додадете коментар