BISON(1) دستورات کاربر BISON(1)

bison - مولد تجزیه‌کننده پروژه گنو (جایگزین yacc)

bison [گزینه]... فایل

Bison یک مولد تجزیه‌کننده (parser generator) به سبک yacc(1) است. این ابزار باید با فایل‌های ورودی طراحی‌شده برای yacc سازگاری رو به بالا (upward compatible) داشته باشد.

فایل‌های ورودی باید از قرارداد yacc پیروی کرده و به پسوند .y ختم شوند. برخلاف yacc، فایل‌های تولیدشده نام ثابتی ندارند، بلکه از پیشوند فایل ورودی استفاده می‌کنند. علاوه بر این، اگر نیاز دارید کدهای C++ را در فایل ورودی قرار دهید، می‌توانید انتهای نام آن را با یک پسوند شبیه به C++ مانند (.ypp یا .y++) مشخص کنید؛ در این صورت، bison از پسوند شما برای نام‌گذاری فایل خروجی (.cpp یا .c++) پیروی خواهد کرد. برای نمونه، یک فایل توصیف گرامر با نام parse.yxx تجزیه‌کننده تولیدشده را در فایلی به نام parse.tab.cxx تولید می‌کند، به جای y.tab.c در yacc یا parse.tab.c در نسخه‌های قدیمی‌تر Bison.

این توصیف از گزینه‌هایی که می‌توان به bison داد، از گره Invocation در کتابچه راهنمای bison.texi اقتباس شده است که باید به‌عنوان مرجع اصلی در نظر گرفته شود.

Bison هم از گزینه‌های سنتی تک‌حرفی و هم از نام‌های طولانی و معنی‌دار (mnemonic) برای گزینه‌ها پشتیبانی می‌کند. نام‌های طولانی گزینه‌ها به جای -، با -- مشخص می‌شوند. تا زمانی که مخفف‌ها یکتا باشند، استفاده از مخفف نام گزینه‌ها مجاز است. هنگامی که یک گزینه طولانی آرگومانی می‌پذیرد، مانند --file-prefix، نام گزینه و آرگومان را با = به یکدیگر متصل کنید.

تولید یک تجزیه‌کننده قطعی LR یا تعمیم‌یافته (GLR) با به‌کارگیری جدول‌های تجزیه LALR(1)، IELR(1) یا متعارف LR(1).

آرگومان‌های اجباری برای گزینه‌های طولانی، برای گزینه‌های کوتاه نیز اجباری هستند. این قاعده برای آرگومان‌های اختیاری نیز صادق است.

نمایش این راهنما و خروج
نمایش اطلاعات نسخه و خروج
نمایش دایرکتوری حاوی داده‌های وابسته به محلی‌سازی (locale) و خروج
نمایش دایرکتوری حاوی اسکلت‌ها و XSLT و خروج
اعمال اصلاحات بر روی فایل گرامر منبع و خروج
فعال‌سازی ویژگی‌های گوناگون

نمایش خطاها با علامت‌های هشتک (caret)
نمایش اصلاحات قابل‌خواندن توسط ماشین
هیچ فایلی تولید نشود
تمام موارد بالا
غیرفعال‌سازی تمام موارد بالا

گزارش هشدارهای مربوط به دسته CATEGORY
تعیین وضعیت رنگی‌سازی پیام‌های عیب‌یابی
مشخص کردن فایل CSS برای رنگ‌بندی پیام‌های عیب‌یابی

تداخل‌های جابجایی/کاهش (S/R) (به‌طور پیش‌فرض فعال است)
تداخل‌های کاهش/کاهش (R/R) (به‌طور پیش‌فرض فعال است)
تولید مثال‌های نقض تداخل
نام‌های مستعار رشته‌ای که به هیچ نمادی متصل نشده‌اند
ساختارهای منسوخ‌شده
قوانین خالی بدون %empty
مقادیر قانونی میانی (midrule) تنظیم‌نشده یا استفاده‌نشده
اولویت و شرکت‌پذیری بی‌استفاده
ناسازگاری‌ها با POSIX Yacc
سایر هشدارها (به‌طور پیش‌فرض فعال است)
همه هشدارها به جز 'counterexamples'، 'dangling-alias' و 'yacc'
غیرفعال‌سازی هشدارها در دسته CATEGORY
غیرفعال‌سازی تمام هشدارها
تلقی کردن هشدارها به عنوان خطا

رنگی کردن خروجی
رنگی نکردن خروجی
رنگی کردن در صورتی که دستگاه خروجی یک tty باشد

مشخص کردن زبان برنامه‌نویسی خروجی
مشخص کردن اسکلت (قالب) مورد استفاده
آماده‌سازی تجزیه‌کننده برای ردیابی؛ مشابه با '-Dparse.trace'
فعال‌سازی پشتیبانی از موقعیت مکانی
مشابه با '%define NAME VALUE'
بازنویسی و لغو '%define NAME VALUE'
افزودن PREFIX به ابتدای نمادهای خارجی؛ منسوخ‌شده با '-Dapi.prefix={PREFIX}'
دستورالعمل‌های '#line' تولید نشوند
شامل جدول نام‌های نشانه‌ها (توکن‌ها)
شبیه‌سازی POSIX Yacc

همچنین یک فایل سرآیند (header) ایجاد کند
مشابه مورد قبل، اما امکان تعیین FILE وجود ندارد (برای POSIX Yacc)
همچنین جزئیات مربوط به ماشین خودکار (اتوماتون) را تولید کند
نوشتن گزارش در FILE
مشابه با '--report=state'
تعیین یک پیشوند PREFIX برای فایل‌های خروجی
قرار دادن خروجی در FILE
همچنین خروجی گراف از اتوماتون تولید کند
همچنین یک گزارش HTML از اتوماتون تولید کند
همچنین یک گزارش XML از اتوماتون تولید کند
جایگزین کردن پیشوند OLD با NEW هنگام نوشتن مسیرهای فایل در فایل‌های خروجی

توصیف وضعیت‌ها (states)
تکمیل مجموعه‌آیتم‌های اصلی با بستار (closure) آن‌ها
انتساب صریح نشانه‌های پیش‌نگاه (lookahead) به آیتم‌ها
توصیف حل تداخل‌های جابجایی/کاهش (shift/reduce)
تولید مثال‌های نقض تداخل
شامل تمام اطلاعات بالا
غیرفعال‌سازی گزارش

نوشته‌شده توسط Robert Corbett و Richard Stallman.

گزارش باگ‌ها به <bug-bison@gnu.org>.
صفحه اصلی گنو بایسون: https://www.gnu.org/software/bison
راهنمای عمومی استفاده از نرم‌افزارهای گنو: https://www.gnu.org/gethelp
برای دریافت مستندات کامل، دستور زیر را اجرا کنید: info bison.

حق نشر © 2021 بنیاد نرم‌افزارهای آزاد (Free Software Foundation, Inc.).
این یک نرم‌افزار آزاد است؛ برای شرایط رونوشت‌برداری به کد منبع مراجعه کنید. هیچ ضمانتی وجود ندارد؛ حتی برای قابلیت فروش یا تناسب با یک هدف خاص.

lex(1), flex(1), yacc(1).

مستندات کامل برای bison به‌صورت یک کتابچه راهنمای Texinfo نگهداری می‌شود. اگر برنامه‌های info و bison به‌درستی بر روی سیستم شما نصب شده باشند، دستور

info bison

دسترسی شما را به کتابچه راهنمای کامل فراهم خواهد کرد.

سپتامبر 2021 GNU Bison 3.8.2