บางครั้งปัญหาก็เกิดขึ้นจากการเขียนสคริปต์อัจฉริยะเล็กๆ ที่เข้าใจไวยากรณ์ในตัว นั่นคือ มีภาษาเล็กๆ อยู่ภายใน เดิมทีฉันเขียนการใช้งาน jq ใน bash เพียงเล็กน้อย แต่ยิ่งมีการเพิ่ม "ความฉลาด" มากขึ้นเท่าใด การใช้การแยกวิเคราะห์นิพจน์ย่อยแบบเรียกซ้ำก็จะยิ่งยากขึ้นเท่านั้น ฉันเบื่อกับสิ่งนี้มากจนต้องเขียนคอมไพเลอร์ LARL(1) yacc (pre-bison) ก่อนเพื่อสร้างสคริปต์ทุบตี จากนั้นฉันก็มีความคล้ายคลึงกับต้นฉบับมากและเป็นรหัสทดสอบที่ดีเช่นเดียวกับเครื่องจักร สำหรับ yacc_bash.c mini-jq ใน bash
บทความเต็ม:
ที่มา: linux.org.ru