बैश स्क्रिप्ट में yacc (प्री-बाइसन) पार्सर। बैश में jq का कार्यान्वयन

कभी-कभी एक छोटी स्मार्ट स्क्रिप्ट लिखने में समस्या उत्पन्न होती है जो कुछ अंतर्निहित व्याकरण को समझती है, यानी अंदर एक छोटी भाषा के साथ। मैंने मूल रूप से बैश में jq का न्यूनतम कार्यान्वयन लिखा था। लेकिन जितनी अधिक "स्मार्टनेस" वहां जोड़ी गई, उप-अभिव्यक्तियों के पुनरावर्ती विश्लेषण को लागू करना उतना ही कठिन हो गया। मैं इससे इतना थक गया था कि मुझे बैश स्क्रिप्ट बनाने के लिए पहले LARL(1) yacc (प्री-बाइसन) कंपाइलर लिखने के लिए कहा गया, और फिर, घड़ी की कल की तरह, मुझे मूल के समान और एक अच्छा परीक्षण कोड मिला बैश में yacc_bash.c मिनी-jq के लिए।

पूरा लेख:

स्रोत: linux.org.ru

एक टिप्पणी जोड़ें