| BISON(1) | دستورات کاربر | BISON(1) |
نام (NAME)
bison - مولد تجزیهکننده پروژه گنو (جایگزین yacc)
خلاصه دستور (SYNOPSIS)
bison [گزینه]... فایل
توضیحات (DESCRIPTION)
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).
آرگومانهای اجباری برای گزینههای طولانی، برای گزینههای کوتاه نیز اجباری هستند. این قاعده برای آرگومانهای اختیاری نیز صادق است.
حالتهای عملیاتی (Operation Modes):
- -h, --help
- نمایش این راهنما و خروج
- -V, --version
- نمایش اطلاعات نسخه و خروج
- --print-localedir
- نمایش دایرکتوری حاوی دادههای وابسته به محلیسازی (locale) و خروج
- --print-datadir
- نمایش دایرکتوری حاوی اسکلتها و XSLT و خروج
- -u, --update
- اعمال اصلاحات بر روی فایل گرامر منبع و خروج
- -f, --feature[=FEATURES]
- فعالسازی ویژگیهای گوناگون
مقدار FEATURES فهرستی از واژگان جداشده با ویرگول است که میتواند شامل موارد زیر باشد:
- caret, diagnostics-show-caret
- نمایش خطاها با علامتهای هشتک (caret)
- fixit, diagnostics-parseable-fixits
- نمایش اصلاحات قابلخواندن توسط ماشین
- syntax-only
- هیچ فایلی تولید نشود
- all
- تمام موارد بالا
- none
- غیرفعالسازی تمام موارد بالا
عیبیابی (Diagnostics):
- -W, --warnings[=CATEGORY]
- گزارش هشدارهای مربوط به دسته CATEGORY
- --color[=WHEN]
- تعیین وضعیت رنگیسازی پیامهای عیبیابی
- --style=FILE
- مشخص کردن فایل CSS برای رنگبندی پیامهای عیبیابی
دستههای هشدار عبارتند از (Warning categories):
- conflicts-sr
- تداخلهای جابجایی/کاهش (S/R) (بهطور پیشفرض فعال است)
- conflicts-rr
- تداخلهای کاهش/کاهش (R/R) (بهطور پیشفرض فعال است)
- counterexamples, cex
- تولید مثالهای نقض تداخل
- dangling-alias
- نامهای مستعار رشتهای که به هیچ نمادی متصل نشدهاند
- deprecated
- ساختارهای منسوخشده
- empty-rule
- قوانین خالی بدون %empty
- midrule-values
- مقادیر قانونی میانی (midrule) تنظیمنشده یا استفادهنشده
- precedence
- اولویت و شرکتپذیری بیاستفاده
- yacc
- ناسازگاریها با POSIX Yacc
- other
- سایر هشدارها (بهطور پیشفرض فعال است)
- all
- همه هشدارها به جز 'counterexamples'، 'dangling-alias' و 'yacc'
- no-CATEGORY
- غیرفعالسازی هشدارها در دسته CATEGORY
- none
- غیرفعالسازی تمام هشدارها
- error[=CATEGORY]
- تلقی کردن هشدارها به عنوان خطا
مقدار WHEN میتواند یکی از موارد زیر باشد:
- always, yes
- رنگی کردن خروجی
- never, no
- رنگی نکردن خروجی
- auto, tty
- رنگی کردن در صورتی که دستگاه خروجی یک tty باشد
تنظیم و سفارشیسازی تجزیهکننده (Tuning the Parser):
- -L, --language=LANGUAGE
- مشخص کردن زبان برنامهنویسی خروجی
- -S, --skeleton=FILE
- مشخص کردن اسکلت (قالب) مورد استفاده
- -t, --debug
- آمادهسازی تجزیهکننده برای ردیابی؛ مشابه با '-Dparse.trace'
- --locations
- فعالسازی پشتیبانی از موقعیت مکانی
- -D, --define=NAME[=VALUE]
- مشابه با '%define NAME VALUE'
- -F, --force-define=NAME[=VALUE]
- بازنویسی و لغو '%define NAME VALUE'
- -p, --name-prefix=PREFIX
- افزودن PREFIX به ابتدای نمادهای خارجی؛ منسوخشده با '-Dapi.prefix={PREFIX}'
- -l, --no-lines
- دستورالعملهای '#line' تولید نشوند
- -k, --token-table
- شامل جدول نامهای نشانهها (توکنها)
- -y, --yacc
- شبیهسازی POSIX Yacc
فایلهای خروجی (Output Files):
- -H, --header=[FILE]
- همچنین یک فایل سرآیند (header) ایجاد کند
- -d
- مشابه مورد قبل، اما امکان تعیین FILE وجود ندارد (برای POSIX Yacc)
- -r, --report=THINGS
- همچنین جزئیات مربوط به ماشین خودکار (اتوماتون) را تولید کند
- --report-file=FILE
- نوشتن گزارش در FILE
- -v, --verbose
- مشابه با '--report=state'
- -b, --file-prefix=PREFIX
- تعیین یک پیشوند PREFIX برای فایلهای خروجی
- -o, --output=FILE
- قرار دادن خروجی در FILE
- -g, --graph[=FILE]
- همچنین خروجی گراف از اتوماتون تولید کند
- --html[=FILE]
- همچنین یک گزارش HTML از اتوماتون تولید کند
- -x, --xml[=FILE]
- همچنین یک گزارش XML از اتوماتون تولید کند
- -M, --file-prefix-map=OLD=NEW
- جایگزین کردن پیشوند OLD با NEW هنگام نوشتن مسیرهای فایل در فایلهای خروجی
مقدار THINGS فهرستی از واژگان جداشده با ویرگول است که میتواند شامل موارد زیر باشد:
- states
- توصیف وضعیتها (states)
- itemsets
- تکمیل مجموعهآیتمهای اصلی با بستار (closure) آنها
- lookaheads
- انتساب صریح نشانههای پیشنگاه (lookahead) به آیتمها
- solved
- توصیف حل تداخلهای جابجایی/کاهش (shift/reduce)
- counterexamples, cex
- تولید مثالهای نقض تداخل
- all
- شامل تمام اطلاعات بالا
- none
- غیرفعالسازی گزارش
نویسندگان (AUTHORS)
نوشتهشده توسط Robert Corbett و Richard Stallman.
گزارش باگها (REPORTING BUGS)
گزارش
باگها به
<bug-bison@gnu.org>.
صفحه اصلی
گنو بایسون:
https://www.gnu.org/software/bison
راهنمای
عمومی
استفاده از
نرمافزارهای
گنو: https://www.gnu.org/gethelp
برای
دریافت
مستندات
کامل،
دستور زیر
را اجرا
کنید: info bison.
کپیرایت (COPYRIGHT)
حق نشر © 2021
بنیاد
نرمافزارهای
آزاد (Free Software Foundation, Inc.).
این یک
نرمافزار
آزاد است؛
برای شرایط
رونوشتبرداری
به کد منبع
مراجعه
کنید. هیچ
ضمانتی
وجود
ندارد؛ حتی
برای
قابلیت
فروش یا
تناسب با یک
هدف خاص.
همچنین ببینید (SEE ALSO)
مستندات کامل برای bison بهصورت یک کتابچه راهنمای Texinfo نگهداری میشود. اگر برنامههای info و bison بهدرستی بر روی سیستم شما نصب شده باشند، دستور
- info bison
دسترسی شما را به کتابچه راهنمای کامل فراهم خواهد کرد.
| سپتامبر 2021 | GNU Bison 3.8.2 |