yacc (pre-bison) parser แž€แŸ’แž“แžปแž„ bash script แŸ” แž€แžถแžšแžขแž“แžปแžœแžแŸ’แž jq แž€แŸ’แž“แžปแž„ bash

แž–แŸแž›แžแŸ’แž›แŸ‡แž”แž‰แŸ’แž แžถแž€แžพแžแžกแžพแž„แž–แžธแž€แžถแžšแžŸแžšแžŸแŸแžšแžขแž€แŸ’แžŸแžšแž†แŸ’แž›แžถแžแžœแŸƒแžแžผแž…แž˜แžฝแž™แžŠแŸ‚แž›แž™แž›แŸ‹แžขแŸ†แž–แžธแžœแŸแž™แŸ’แž™แžถแž€แžšแžŽแŸแžŠแŸ‚แž›แž—แŸ’แž‡แžถแž”แŸ‹แž˜แž€แž‡แžถแž˜แžฝแž™ แž–แŸ„แž›แž‚แžบแž‡แžถแž˜แžฝแž™แž“แžนแž„แž—แžถแžŸแžถแžแŸ’แž“แžถแžแžแžผแž…แž“แŸ…แžแžถแž„แž€แŸ’แž“แžปแž„แŸ” แžŠแžพแž˜แžกแžพแž™แžแŸ’แž‰แžปแŸ†แž”แžถแž“แžŸแžšแžŸแŸแžšแž€แžถแžšแžขแž“แžปแžœแžแŸ’แžแžแžทแž…แžแžฝแž…แž”แŸ†แž•แžปแžแž“แŸƒ jq แž“แŸ…แž€แŸ’แž“แžปแž„ bash แŸ” แž”แŸ‰แžปแž“แŸ’แžแŸ‚ "แž—แžถแž–แž†แŸ’แž›แžถแžแžœแŸƒ" แž€แžถแž“แŸ‹แžแŸ‚แž…แŸ’แžšแžพแž“แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž“แŸ’แžแŸ‚แž˜แž“แŸ…แž‘แžธแž“แŸ„แŸ‡ แžœแžถแž€แžถแž“แŸ‹แžแŸ‚แž›แŸ†แž”แžถแž€แž€แŸ’แž“แžปแž„แž€แžถแžšแžขแž“แžปแžœแžแŸ’แžแž€แžถแžšแž‰แŸ‚แž€แžกแžพแž„แžœแžทแž‰แž“แŸƒแž€แž“แŸ’แžŸแŸ„แž˜แžšแž„แŸ” แžแŸ’แž‰แžปแŸ†แž’แžปแž‰แž“แžนแž„แžšแžฟแž„แž“แŸแŸ‡แžŽแžถแžŸแŸ‹ แžŠแŸ‚แž›แžแŸ’แž‰แžปแŸ†แžแŸ’แžšแžผแžœแž”แžถแž“แž‡แŸ†แžšแžปแž‰แžฑแŸ’แž™แžŸแžšแžŸแŸแžšแž€แž˜แŸ’แž˜แžœแžทแž’แžธแž…แž„แž€แŸ’แžšแž„ LARL(1) yacc (pre-bison) แžŠแžพแž˜แŸ’แž”แžธแž”แž„แŸ’แž€แžพแžแžŸแŸ’แž‚แŸ’แžšแžธแž” bash แž แžพแž™แž”แž“แŸ’แž‘แžถแž”แŸ‹แž˜แž€แžŠแžผแž…แž‡แžถ clockwork แžแŸ’แž‰แžปแŸ†แž‘แž‘แžฝแž›แž”แžถแž“แž€แžผแžŠแžŸแŸ’แžšแžŠแŸ€แž„แž“แžนแž„แžŠแžพแž˜ แž“แžทแž„แž€แžผแžŠแžŸแžถแž€แž›แŸ’แž”แž„แžŠแŸแž›แŸ’แžขแŸ” แžŸแž˜แŸ’แžšแžถแž”แŸ‹ yacc_bash.c mini-jq แž€แŸ’แž“แžปแž„ bash แŸ”

แžขแžแŸ’แžแž”แž‘แž–แŸแž‰แŸ–

แž”แŸ’แžšแž—แž–: linux.org.ru

แž”แž“แŸ’แžแŸ‚แž˜แž˜แžแžทแž™แŸ„แž”แž›แŸ‹