αναλυτής yacc (προ-βίσονας) σε σενάριο bash. Εφαρμογή του jq στο bash

Μερικές φορές προκύπτει το πρόβλημα της σύνταξης ενός μικρού έξυπνου σεναρίου που καταλαβαίνει κάποια ενσωματωμένη γραμματική, δηλαδή με μια μίνι γλώσσα μέσα. Αρχικά έγραψα μια minimal υλοποίηση του jq στο bash. Αλλά όσο περισσότερη «έξυπνη» προστέθηκε εκεί, τόσο πιο δύσκολο ήταν να εφαρμοστεί η αναδρομική ανάλυση των υποεκφράσεων. Ήμουν τόσο κουρασμένος από αυτό που μου ζητήθηκε να γράψω πρώτα τον μεταγλωττιστή LARL(1) yacc (pre-bison) για να δημιουργήσω ένα σενάριο bash, και μετά, σαν ρολόι, πήρα έναν πολύ παρόμοιο με τον αρχικό και έναν καλό κωδικό δοκιμής για yacc_bash.c mini-jq στο bash.

Ολόκληρο το άρθρο:

Πηγή: linux.org.ru

Προσθέστε ένα σχόλιο