تجزیه کننده yacc (پیش از بیسون) در اسکریپت bash. پیاده سازی jq در bash

گاهی اوقات مشکل از نوشتن یک اسکریپت هوشمند کوچک است که مقداری گرامر داخلی را درک می کند، یعنی با یک زبان کوچک در داخل. من در ابتدا یک پیاده سازی حداقلی از jq را در bash نوشتم. اما هرچه "هوشمندی" بیشتر به آنجا اضافه می شد، پیاده سازی تجزیه بازگشتی عبارات فرعی دشوارتر بود. من آنقدر از این موضوع خسته شده بودم که از من خواسته شد ابتدا کامپایلر LARL(1) yacc (pre-bison) را بنویسم تا یک اسکریپت bash تولید کنم، و سپس، مانند ساعت، یک کد بسیار شبیه به اصلی و یک کد تست خوب دریافت کردم. برای yacc_bash.c mini-jq در bash.

مقاله به طور کامل:

منبع: linux.org.ru

اضافه کردن نظر