Parser yacc (pre-bison) w skrypcie bash. Implementacja jq w bashu

Czasami pojawia się problem napisania małego, inteligentnego skryptu, który rozumie jakąś wbudowaną gramatykę, czyli z minijęzykiem w środku. Pierwotnie napisałem minimalną implementację jq w bash. Ale im więcej „sprytu” tam dodano, tym trudniej było wdrożyć rekurencyjne analizowanie podwyrażeń. Byłem tym tak zmęczony, że poproszono mnie o napisanie najpierw kompilatora LARL(1) yacc (pre-bison) w celu wygenerowania skryptu basha, a następnie, jak w zegarku, otrzymałem bardzo podobny do oryginału i dobry kod testowy dla yacc_bash.c mini-jq w bash.

Artykuł w całości:

Źródło: linux.org.ru

Dodaj komentarz