getdefs(1) User Commands getdefs(1)

getdefs - استخراج تعاریف و اطلاعات فرمتبندیشده از پروندههای کد منبع

getdefs [option-name value]

تمامی آرگومان‌ها گزینه‌های نام‌دار هستند.

اگر هیچ آرگومان input مشخص نشده باشد یا مقدار آن به‌سادگی "-" باشد، و اگر stdin یک tty نباشد، فهرست پرونده‌های ورودی از stdin خوانده خواهد شد.

این برنامه تعاریف AutoGen را از فهرستی از پرونده‌های کد منبع استخراج می‌کند. تعاریف توسط /*=<entry-type> <entry-name>0fP و =*/0fP محدود و مشخص می‌شوند.


عبارت منظم (Regexp) برای جستجو پس از "/*=".

اگر تنها تعاریفی از یک دسته‌بندی خاص، یا حتی با نام‌هایی منطبق با الگوهایی مشخص را می‌خواهید، این عبارت منظم را برای متنی که باید پس از /*= بیاید، تعیین کنید.


نام‌های تعاریف زیربلوک (subblock). این گزینه می‌تواند به تعداد نامحدود تکرار شود.

این گزینه برای ایجاد مدخل‌های کوتاه و مختصر برای تعاریف تو در تو استفاده می‌شود. به عنوان مثال، با:

استفاده از subblock بدین صورت: --subblock=arg=argname,type,null

و تعریف یک arg بدین شکل: arg: this, char *

سپس گسترش می‌یابد به: arg = { argname = this; type = "char *"; @;}
رشتهٔ "this, char *" در محل کاماها جدا شده و فاصله‌های خالی آن حذف می‌شوند. شما می‌توانید به جای کاما از نویسه‌های دیگر استفاده کنید، با این شرط که رشتهٔ مقدار را با یک نویسهٔ نشانه‌گذاری غیر از نقل‌قول تکی یا دوتایی آغاز نمایید. همچنین می‌توانید مقادیر میانی را با قرار دادن کاماها در کنار یکدیگر بدون فاصله در میان آنها حذف کنید. به عنوان مثال، "+mumble++yes+" گسترش خواهد یافت به:
arg = { argname = mumble; null = "yes"; @;}.


صفت با فهرستی از مقادیر. این گزینه می‌تواند به تعداد نامحدود تکرار شود.

این گزینه برای ایجاد مدخل‌های مختصر برای تعاریفی استفاده می‌شود که عموماً چندین بار تکرار می‌شوند؛ یعنی تمایل دارند فهرستی از مقادیر باشند. به عنوان مثال، با تعریف
listattr=foo متن:
foo: this, is, a, multi-list سپس گسترش خواهد یافت به:
foo = 'this', 'is', 'a', 'multi-list';
متن‌ها با کاماها جدا شده و فاصله‌های خالی حذف می‌شوند. می‌توانید با شروع رشتهٔ مقدار با یک نویسهٔ نشانه‌گذاری غیر از نقل‌قول تکی یا دوتایی، از نویسه‌هایی غیر از کاما استفاده کنید.


مرتب‌سازی الفبایی یا استفاده از پرونده نام‌برده‌شده. حالت no-ordering گزینه را غیرفعال می‌کند. این گزینه به صورت پیش‌فرض فعال است.

به‌طور پیش‌فرض، مرتب‌سازی بر اساس نام مدخل و به صورت الفبایی است. اگر ترتیب اهمیتی ندارد از no-ordering استفاده کنید. برای مرتب‌سازی بدون حساسیت به بزرگی و کوچکی حروف از ordering بدون آرگومان استفاده کنید. اگر ترتیب زمانی اهمیت دارد از ordering=<file-name> استفاده کنید. دستور getdefs محتوای متنی file-name را مدیریت و نگهداری می‌کند. نیازی به وجود قبلی file-name نیست.


نخستین نمایه (index) برای اعمال به گروه‌ها. این گزینه یک عدد صحیح را به عنوان آرگومان دریافت می‌کند. مقدار پیش‌فرض first-index برای این گزینه برابر است با:
0

به‌طور پیش‌فرض، نخستین وقوع یک تعریف نام‌دار نمایه‌ای برابر با صفر خواهد داشت. گاهی اوقات لازم است این مقدار رزرو شود. با استفاده از این گزینه می‌توانید نقطهٔ آغاز متفاوتی را مشخص کنید.


درج نام پرونده‌های منبع در تعاریف.

نام هر پرونده ورودی را در تعاریف خروجی درج می‌کند. اگر هیچ آرگومانی ارائه نشود، قالب آن چنین خواهد بود:

infile = '%s';
اگر آرگومانی ارائه شود، به جای infile از آن رشته برای نام مدخل استفاده خواهد شد.

انتساب‌های سراسری. این گزینه می‌تواند به تعداد نامحدود تکرار شود.

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


انتساب‌های مشترک برای تمامی بلوک‌ها. این گزینه می‌تواند به تعداد نامحدود تکرار شود.

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


پرونده(ها) برای کپی در تعاریف. این گزینه می‌تواند به تعداد نامحدود تکرار شود.

محتوای هر پرونده که توسط این گزینه‌ها نام برده شود، در تعاریف خروجی درج خواهد شد.


درج نام پرونده منبع در هر تعریف.

نام پرونده ورودی را که تعریفی در آن یافت شده است، در تعریف خروجی درج می‌کند. اگر هیچ آرگومانی ارائه نشود، قالب آن چنین خواهد بود:

srcfile = '%s';
اگر آرگومانی ارائه شود، به جای srcfile از آن رشته برای نام مدخل استفاده خواهد شد.

درج شماره خط پرونده منبع در هر تعریف.

شماره خط در پرونده ورودی را که تعریفی در آن یافت شده است، در تعریف خروجی درج می‌کند. اگر هیچ آرگومانی ارائه نشود، قالب آن چنین خواهد بود:

linenum = '%s';
اگر آرگومانی ارائه شود، به جای linenum از آن رشته برای نام مدخل استفاده خواهد شد.


پرونده ورودی برای جستجوی تعاریف. این گزینه می‌تواند به تعداد نامحدود تکرار شود. این گزینه، گزینهٔ پیش‌فرض است.

تمامی پرونده‌هایی که باید برای تعاریف جستجو شوند، باید در خط فرمان مشخص شوند یا از stdin خوانده شوند. اگر تنها یک گزینهٔ input وجود داشته باشد و مقدار آن رشتهٔ "-" باشد، فهرست پرونده‌های ورودی از stdin خوانده می‌شود. اگر یک آرگومان خط فرمان نام گزینه نباشد و شامل عملگر انتساب (=) نباشد، به‌طور پیش‌فرض به عنوان نام پرونده ورودی در نظر گرفته می‌شود. حداقل یک پرونده ورودی باید مشخص شود.


پرونده خروجی برای باز کردن. این گزینه عضوی از دسته گزینه‌های autogen است.

اگر خروجی را به یک فرایند AutoGen ارسال نمی‌کنید، می‌توانید در عوض نام یک پرونده خروجی را مشخص نمایید.


فراخوانی AutoGen با تعاریف. شکل no-autogen این گزینه را غیرفعال خواهد کرد. این گزینه به‌طور پیش‌فرض فعال است. این گزینه عضوی از دسته گزینه‌های autogen است.

این حالت پیش‌فرض خروجی است. مشخص کردن no-autogen معادل با output=- است. اگر آرگومانی به این گزینه بدهید، آن برنامه به گونه‌ای اجرا می‌شود که گویی AutoGen است و ورودی استاندارد آن بر روی تعاریف خروجی این برنامه تنظیم می‌شود.


نام الگو (Template Name).

نام الگوی مورد استفاده برای تولید خروجی نهایی را مشخص می‌کند.


آرگومان AutoGen. این گزینه می‌تواند به تعداد نامحدود تکرار شود. این گزینه نباید در ترکیب با هیچ یک از گزینه‌های زیر استفاده شود: output.

این یک آرگومان عبوری (pass-through) است. این گزینه به شما امکان می‌دهد هر آرگومان دلخواهی را برای ارسال به AutoGen مشخص کنید.


نام پایه برای پرونده(های) خروجی. این گزینه نباید در ترکیب با هیچ یک از گزینه‌های زیر استفاده شود: output.

هنگامی که خروجی به AutoGen فرستاده می‌شود، یک نام پایه باید ارائه شده یا مشتق گردد. اگر این گزینه ارائه نشود، مقدار آن از گزینهٔ template گرفته می‌شود. اگر آن هم ارائه نشده باشد، به نام پایهٔ دایرکتوری جاری تنظیم می‌گردد.


نمایش اطلاعات نحوه استفاده و خروج.

ارسال اطلاعات مبسوط نحوه استفاده از طریق یک صفحه‌بند (pager).

ذخیره وضعیت گزینه‌ها در cfgfile. مقدار پیش‌فرض، آخرین پرونده پیکربندی فهرست‌شده در بخش پیش‌تنظیمات گزینه‌ها (OPTION PRESETS) در زیر است. دستور پس از به‌روزرسانی پرونده پیکربندی خارج خواهد شد.

بارگذاری گزینه‌ها از cfgfile. حالت no-load-opts بارگذاری پرونده‌های پیکربندی قبلی config/rc/ini را غیرفعال می‌کند. گزینهٔ --no-load-opts زودتر و خارج از نوبت معمول بررسی می‌شود.

نمایش نسخه برنامه و خروج. حالت پیش‌فرض 'v' است که نسخه ساده را نشان می‌دهد. حالت 'c' اطلاعات حق نشر را چاپ می‌کند و 'n' اعلان کامل حق نشر را چاپ خواهد کرد.

هر گزینه‌ای که به عنوان not presettable (غیرقابل پیش‌تنظیم) علامت‌گذاری نشده باشد، ممکن است با بارگذاری مقادیر از پرونده(های) پیکربندی ("RC" یا ".INI") پیش‌تنظیم شود. پرونده homerc برابر با "/dev/null" است، مگر اینکه یک دایرکتوری باشد. در آن صورت، پروندهٔ ".getdefsrc" درون آن دایرکتوری جستجو می‌شود.

برای پرونده‌های پیکربندی به بخش پیش‌تنظیمات گزینه‌ها (OPTION PRESETS) مراجعه کنید.

یکی از مقادیر خروج زیر بازگردانده خواهد شد:

0 (EXIT_SUCCESS)

اجرای موفقیت‌آمیز برنامه.
1 (EXIT_FAILURE)

عملیات ناموفق بود یا نحو دستور معتبر نبود.
2 (EXIT_INVALID_INPUT)

پرونده ورودی مشخص‌شده یک پرونده معمولی نبود.
3 (EXIT_NO_MEM)

حافظه کافی برای انجام عملیات در دسترس نیست.
66 (EX_NOINPUT)

پرونده پیکربندی مشخص‌شده بارگذاری نشد.
70 (EX_SOFTWARE)

کتابخانه libopts با یک خطای عملیاتی داخلی مواجه شد. لطفاً آن را به نشانی autogen-users@lists.sourceforge.net گزارش دهید. با تشکر.

این برنامه به‌طور کامل‌تر در بخش Getdefs از فصل Add-On در مستندات سیستم Info برنامهٔ AutoGen مستند شده است.

Bruce Korb

حق نشر © 1999-2018 متعلق به Bruce Korb است؛ تمامی حقوق محفوظ است. این برنامه تحت شرایط مجوز عمومی همگانی گنو (GNU GPL)، نسخه ۳ یا جدیدتر منتشر شده است.

لطفاً گزارش‌های اشکال را به نشانی autogen-users@lists.sourceforge.net ارسال کنید.

این صفحه راهنما توسط AutoGen از روی تعاریف گزینه‌های getdefs تولید شده است.

23 Apr 2025 GNU AutoGen (1.5)