yacc (pre-bison) jäsennin bash-skriptillä. Jq:n toteutus bashissa

Joskus ongelma syntyy, kun kirjoitetaan pieni älykäs skripti, joka ymmärtää jonkin verran sisäänrakennettua kielioppia, eli jonka sisällä on minikieli. Kirjoitin alun perin minimaalisen toteutuksen jq:sta bashissa. Mutta mitä enemmän "älykkyyttä" lisättiin, sitä vaikeampaa oli toteuttaa osalausekkeiden rekursiivista jäsentämistä. Olin niin kyllästynyt tähän, että minua kehotettiin kirjoittamaan ensin LARL(1) yacc (pre-bison) -kääntäjä bash-komentosarjan luomiseksi, ja sitten, kuten kello, sain hyvin samanlaisen kuin alkuperäinen ja hyvän testikoodin. yacc_bash.c mini-jq:lle bashissa.

Artikkeli kokonaisuudessaan:

Lähde: linux.org.ru

Lisää kommentti