یک parsing expression grammar یا PEG، یک نوع گرامر صوری نحوی است که یک زبان صوری بر اساس مجموعه ای از قواعد برای شناسایی رشته های یک زبان تعریف می کند. یک PEG در اساس یک پارسر بازگشتی را در شکل خالصش که فقط نحو را نمایش می دهد و مستقل از روش پیاده سازی است نمایش می دهد. PEGها به گرامرهای منظم یا گرامرهای مستقل از زبان شباهت دارند ولی تفسیر متفاوتی دارند.برخلاف گرامرهای مستقل از متن، PEGها مبهم نیستند. اگر یک رشته مورد قبول گرامر واقع شود فقط یک درخت پارس معتبر دارد. این خصوصیت باعث می شود تا PEGها برای پارس زبان های برنامه سازی رایانه ای مناسب باشند نه برای زبان های طبیعی.
هر علامت پایانه
هر علامت غیرپایانه
رشته خالی
یک گرامر زبان تشکیل شده از مجموعه غیرپایانه ها، مجموعه پایانه ها جدا از مجموعه غیرپایانه ها، و مجموعه ای متناهی از قوانین پارس.هر قانون پارس در گرامر P به صورت A ← a است که در آن A یک غیرپایانه است و e یک عبارت پارس است. هر عبارت پارس یک عبارت سلسه مراتبی شبیه به عبارات منظم است که به صورت زیر ساخته می شود:
برخلاف یک گرامر مستقل از متن یا سایر گرامرهای تولیدی، به ازای هر غیر پایانه در یک PEG باید دقیقاً یک قاعده که سمت چپش آن غیرپایانه است وجود داشته باشد. یعنی، قاعده ها در یک PEG، مانند تعریف عمل می کنند، و هر غیرپایانه باید دقیقاً یک تعریف داشته باشد.
هر غیرپایانه در یک PEG، اساساً معادل یک تابع پارس در یک پارسر بازگشتی است، و عبارت پارس متناظر، نشان دهنده کدی است که تابع را می سازد. هر تابع پارس یک رشته ورودی می گیرد، و یکی از نتایج زیر را بر می گرداند:
هر علامت پایانه
هر علامت غیرپایانه
رشته خالی
یک گرامر زبان تشکیل شده از مجموعه غیرپایانه ها، مجموعه پایانه ها جدا از مجموعه غیرپایانه ها، و مجموعه ای متناهی از قوانین پارس.هر قانون پارس در گرامر P به صورت A ← a است که در آن A یک غیرپایانه است و e یک عبارت پارس است. هر عبارت پارس یک عبارت سلسه مراتبی شبیه به عبارات منظم است که به صورت زیر ساخته می شود:
برخلاف یک گرامر مستقل از متن یا سایر گرامرهای تولیدی، به ازای هر غیر پایانه در یک PEG باید دقیقاً یک قاعده که سمت چپش آن غیرپایانه است وجود داشته باشد. یعنی، قاعده ها در یک PEG، مانند تعریف عمل می کنند، و هر غیرپایانه باید دقیقاً یک تعریف داشته باشد.
هر غیرپایانه در یک PEG، اساساً معادل یک تابع پارس در یک پارسر بازگشتی است، و عبارت پارس متناظر، نشان دهنده کدی است که تابع را می سازد. هر تابع پارس یک رشته ورودی می گیرد، و یکی از نتایج زیر را بر می گرداند:
wiki: پارسنگ اکسپرشن گرامر