కొన్ని అంతర్నిర్మిత వ్యాకరణాన్ని అర్థం చేసుకునే చిన్న స్మార్ట్ స్క్రిప్ట్ను వ్రాయడం వల్ల కొన్నిసార్లు సమస్య తలెత్తుతుంది, అంటే లోపల చిన్న భాషతో. నేను మొదట jq యొక్క కనీస అమలును బాష్లో వ్రాసాను. కానీ అక్కడ మరింత "స్మార్ట్నెస్" జోడించబడితే, సబ్ ఎక్స్ప్రెషన్ల పునరావృత పార్సింగ్ను అమలు చేయడం మరింత కష్టం. నేను దీనితో చాలా విసిగిపోయాను, బాష్ స్క్రిప్ట్ను రూపొందించడానికి LARL(1) yacc (ప్రీ-బైసన్) కంపైలర్ను వ్రాయమని నేను ప్రాంప్ట్ చేయబడ్డాను, ఆపై, క్లాక్వర్క్ లాగా, నాకు అసలైన మరియు మంచి టెస్ట్ కోడ్ వచ్చింది బాష్లో yacc_bash.c మినీ-jq కోసం.
పూర్తి వ్యాసం:
మూలం: linux.org.ru