این دستور ctags-exuberant است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.
برنامه:
نام
ctags - فایل های برچسب را برای کد منبع تولید کنید
خلاصه
برچسب ها [گزینه های] [فایل ها)]
برچسب ها [گزینه های] [فایل ها)]
شرح
La برچسب ها و برچسب ها برنامه ها (از این پس در مجموع به عنوان برچسب ها، به جز جایی که
متمایز) یک فایل فهرست (یا "برچسب") برای انواع اشیاء زبان یافت شده ایجاد کنید
in فایل ها). این فایل تگ اجازه می دهد تا این موارد به سرعت و به راحتی توسط یک متن مکان یابی شوند
ویرایشگر یا ابزار دیگر یک "برچسب" نشان دهنده یک شیء زبانی است که یک ورودی برای آن فهرست است
در دسترس است (یا، متناوبا، ورودی شاخص ایجاد شده برای آن شی).
روش دیگر، برچسب ها می تواند یک فایل مرجع متقاطع ایجاد کند که لیستی را به صورت قابل خواندن توسط انسان ارائه کند
فرم، اطلاعاتی در مورد اشیاء منبع مختلف موجود در مجموعه ای از فایل های زبان.
فایلهای فهرست برچسبها توسط ویرایشگرهای متعددی پشتیبانی میشوند که به کاربر امکان میدهد مکان را پیدا کند
شی مرتبط با نامی که در فایل منبع ظاهر می شود و به فایل و خط می پرید
که نام را مشخص می کند. کسانی که در زمان انتشار در مورد آنها شناخته شده بودند عبارتند از:
Vi(1) و مشتقات آن (به عنوان مثال Elvis، Vim، Vile، Lemmy)، ترد, Emacs, FTE (تاشو
ویرایشگر متن)، JED, ویرایش, استخراج شده, NE ویرایش (ویرایش نیروانا) بورس اوراق بهادار تهران (ویرایشگر SemWare)،
از UltraEdit, فضای کاری, X2, زئوس
برچسب ها قادر به تولید انواع مختلف برچسب برای هر یک از موارد مختلف است
زبان ها. برای یک لیست کامل از زبان های پشتیبانی شده، نام هایی که بر اساس آنها هستند
شناخته شده، و انواع تگ هایی که برای هر کدام ایجاد می شود، ببینید -- لیست-زبان ها
و -- لیست-انواع گزینه.
SOURCE فایل ها
مگر اینکه --زبان-نیروی گزینه مشخص شده است، زبان هر فایل منبع می باشد
به طور خودکار بر اساس نگاشت نام فایل ها به زبان ها انتخاب می شود. نقشه برداری ها در
اثر برای هر زبان ممکن است با استفاده از --list-maps گزینه و ممکن است تغییر کند
با استفاده از - نقشه زبان گزینه. در پلتفرم هایی که از آن پشتیبانی می کنند، در صورتی که نام فایلی وجود ندارد
به یک زبان نگاشت شده و فایل قابل اجرا است، خط اول فایل بررسی می شود
ببینید آیا فایل "#" است یا خیر. اسکریپت برای یک زبان شناخته شده
به طور پیش فرض، نام سایر فایل ها نادیده گرفته می شود. این اجازه اجرا را می دهد برچسب ها روی تمام فایل های موجود در
یا یک دایرکتوری منفرد (مثلاً "ctags *")، یا روی همه فایلها در کل فهرست منبع
درخت (به عنوان مثال "ctags -R")، زیرا فقط آن دسته از فایل هایی که نام آنها به زبان ها نگاشت شده است، خواهند بود
اسکن شده
[دلیل اینکه پسوندهای .h به جای فایلهای C به فایلهای ++C نگاشت میشوند، این است که
استفاده از پسوندهای h در C++ رایج است، و هیچ آسیبی در تلقی آنها به عنوان فایل های C++ ایجاد نمی شود.]
OPTIONS
با وجود انبوه گزینه های موجود، پیش فرض ها به گونه ای تنظیم شده اند که برچسب ها معمولاً است
بدون هیچ گزینه ای (به عنوان مثال "ctags *"، یا "ctags -R") اجرا می شود که یک فایل برچسب ایجاد می کند
در فهرست فعلی برای همه فایل های منبع شناخته شده. گزینه های شرح داده شده در زیر هستند
ارائه شده صرفا برای اجازه دادن به خیاطی سفارشی برای رفع نیازهای خاص.
توجه داشته باشید که فاصله هایی که گزینه های تک حرفی را از پارامترهای آنها جدا می کند اختیاری است.
همچنین توجه داشته باشید که پارامترهای بولی برای گزینه های فرم طولانی (آنهایی که با "--" شروع می شوند
و این یک "[=بله|نه]"پارامتر) ممکن است حذف شود، در این صورت"=بله" ضمنی است.
(به عنوان مثال --مرتب سازی برابر است با --مرتب سازی=بله). بیشتر توجه داشته باشید که "=1"و "=on" در نظر گرفته شده اند
مترادف برای "=بله"، و آن "=0"و "=خاموش"" مترادف برای "= در نظر گرفته می شوندنه".
برخی از گزینهها نادیده گرفته میشوند یا فقط زمانی مفید هستند که در حالت برچسبها استفاده میشوند (نگاه کنید به
-e گزینه). چنین گزینه هایی ذکر خواهد شد.
اکثر گزینهها ممکن است در هر نقطه از خط فرمان ظاهر شوند و فقط بر روی فایلهایی تأثیر میگذارند که
گزینه را دنبال کنید با این حال، چند گزینه باید قبل از نام و نام فایل اول ظاهر شوند
به این ترتیب مورد توجه قرار گیرد.
گزینههایی که نام زبانها را میگیرند، آن نامها را با حروف بزرگ یا کوچک میپذیرند. دیدن
la -- لیست-زبان ها گزینه ای برای لیست کاملی از نام های زبان داخلی.
-a معادل با --پیوست.
-B از الگوهای جستجوی عقب استفاده کنید (به عنوان مثال ?الگو؟). [در حالت برچسب نادیده گرفته شد]
-e حالت etags را فعال کنید، که یک فایل برچسب برای استفاده با ویرایشگر Emacs ایجاد می کند.
متناوبا، اگر برچسب ها با نامی احضار می شود که شامل رشته "تگ" (یا توسط
تغییر نام، یا ایجاد پیوند به فایل اجرایی)، حالت etags فعال خواهد شد. این
گزینه باید قبل از اولین نام فایل ظاهر شود.
-f فایل برچسب
از نام مشخص شده استفاده کنید فایل برچسب برای فایل تگ (پیشفرض «برچسبها» یا «TAGS» است
در حال اجرا در حالت تگ). اگر فایل برچسب به صورت "-" مشخص می شود، سپس فایل تگ نوشته می شود
در عوض به خروجی استاندارد. برچسب ها سرسختانه از گرفتن دستور امتناع خواهد کرد اگر فایل برچسب
وجود دارد و خط اول آن حاوی چیزی غیر از یک خط برچسب معتبر است. این اراده
اگر اشتباها "ctags -f *.c" را تایپ کنید، گردن خود را ذخیره کنید، که در غیر این صورت بازنویسی می شود
اولین فایل C شما با تگ های تولید شده توسط بقیه! همچنین از پذیرش خودداری خواهد کرد
یک نام فایل چند کاراکتری که با یک کاراکتر '-' (خط تیره) شروع می شود
به احتمال زیاد به این معنی است که شما نام فایل تگ را حذف کرده اید و این گزینه سعی در گرفتن آن دارد
گزینه بعدی به عنوان نام فایل اگر واقعاً می خواهید فایل تگ خروجی خود را نامگذاری کنید
"- زشت"، آن را به صورت "./-ugly" مشخص کنید. این گزینه باید قبل از اولین نام فایل ظاهر شود.
اگر این گزینه بیش از یک بار مشخص شود، فقط آخرین مورد اعمال می شود.
-F از الگوهای جستجوی رو به جلو (به عنوان مثال /الگو/) (پیش فرض) استفاده کنید. [در حالت برچسب نادیده گرفته شد]
-h فهرست
فهرستی از پسوندهای فایل را مشخص میکند که با نقطههایی از هم جدا شدهاند
به عنوان فایل های شامل (یا هدر) تفسیر می شود. برای نشان دادن فایل هایی که پسوند ندارند، استفاده کنید
دوره ای که یک کاراکتر غیر دوره ای دنبال نمی شود (به عنوان مثال "."، "..x"، ".x."). این گزینه
فقط بر نحوه تفسیر محدوده یک نوع خاص از برچسب ها تأثیر می گذارد (یعنی
چه آنها را به عنوان قابل مشاهده جهانی یا فقط در داخل قابل مشاهده در نظر گرفته شود یا خیر
فایلی که در آن تعریف شده اند)؛ این پسوند را به هیچ چیز خاصی نگاشت نمی کند
زبان هر برچسبی که در یک فایل غیر شامل قرار دارد و قابل مشاهده نیست (مثلا
پیوند به) از یک فایل دیگر در نظر گرفته می شود که دارای دامنه محدود فایل (مثلا استاتیک) است.
هیچ نوع برچسبی که در یک فایل شامل نمایش داده می شود، دارای محدودیت فایل در نظر گرفته نمی شود
محدوده. اگر اولین کاراکتر در لیست علامت مثبت است، پسوندهای موجود در
لیست به لیست فعلی الحاق خواهد شد. در غیر این صورت، لیست جایگزین خواهد شد
لیست فعلی همچنین ببینید --فایل-حوزه گزینه. لیست پیش فرض است
".hHhh.hpp.hxx.h++.inc.def". برای بازیابی لیست پیش فرض، مشخص کنید -h به طور پیش فرض. توجه داشته باشید
که اگر یک پسوند ارائه شده به این گزینه قبلاً به یک خاص نگاشت نشده باشد
زبان (نگاه کنید به SOURCE فایل ها، در بالا)، همچنین باید از یکی از آنها استفاده کنید - نقشه زبان or
--زبان-نیروی گزینه.
-I شناسه-لیست
فهرستی از شناسههایی را مشخص میکند که باید در هنگام تجزیه C و بهطور خاص مورد استفاده قرار گیرند
فایل های منبع C++ این گزینه به طور خاص برای رسیدگی به موارد خاص ارائه شده است
از طریق استفاده از ماکروهای پیش پردازنده ایجاد می شود. زمانی که شناسه های ذکر شده هستند
شناسه های ساده، این شناسه ها در هنگام تجزیه منبع نادیده گرفته می شوند
فایل ها. اگر یک شناسه با کاراکتر «+» پسوند باشد، برچسب ها همچنین هر کدام را نادیده خواهد گرفت
فهرست آرگومان محصور در پرانتز که ممکن است بلافاصله پس از شناسه موجود در
فایل های منبع. اگر دو شناسه با کاراکتر '=' از هم جدا شوند، اولین
شناسه ها با شناسه دوم برای اهداف تجزیه جایگزین می شوند. لیست از
شناسه ها ممکن است مستقیماً در خط فرمان ارائه شوند یا از یک منبع جداگانه خوانده شوند
فایل. اگر شخصیت اول از شناسه-لیست است '@'، '.' یا یک جداکننده نام مسیر
('/' یا '\')، یا دو کاراکتر اول یک حرف درایو را مشخص می کنند (به عنوان مثال "C:")،
پارامتر شناسه-لیست به عنوان یک نام فایل که از آن می توان یک لیست را خواند تفسیر می شود
از شناسه ها، یکی در هر خط ورودی. در غیر این صورت، شناسه-لیست لیستی از
شناسهها (یا جفتهای شناسه) که باید بهطور ویژه مدیریت شوند، که هر کدام توسط
یک کاما یا با فاصله سفید (در این صورت لیست باید نقل قول شود تا کل حفظ شود
فهرست به عنوان یک آرگومان خط فرمان). چندگانه -I گزینه ها ممکن است عرضه شوند. برای پاک کردن
لیستی از شناسه های نادیده گرفته شده، یک خط تیره ("-") برای آن ارائه کنید شناسه-لیست.
این ویژگی زمانی مفید است که از ماکروهای پیش پردازنده به گونه ای استفاده شود که آنها
به دلیل وجود آنها باعث آشفتگی نحوی می شوند. در واقع، این بهترین راه است
کار بر روی تعدادی از مشکلات ناشی از وجود ماکروهای خراب کننده نحو
در فایل های منبع (نگاه کنید به هشدارها، در زیر). چند مثال این موضوع را روشن می کند.
int foo ARGDECL4 (void *, ptr, long int, nbytes)
در مثال بالا، ماکرو "ARGDECL4" به اشتباه به عنوان تعبیر می شود
نام تابع به جای نام صحیح "foo". مشخص کردن -I ARGDECL4
منجر به رفتار صحیح می شود.
/* یک رشته نسخه RCS در ماژول ایجاد می کند */
MODULE_VERSION ("$Revision: 750 $")
در مثال بالا، فراخوانی ماکرو بسیار شبیه به یک تعریف تابع است
زیرا بعد از آن نقطه ویرگول وجود ندارد (در واقع، حتی می تواند با یک علامت نیز همراه شود
تعریف متغیر جهانی که بسیار شبیه پارامتر تابع سبک K&R است
اعلام). در واقع، این به ظاهر تعریف تابع ممکن است حتی باعث ایجاد این مشکل شود
در حین تلاش برای تکمیل تعریف، از بقیه فایل رد شود.
تعیین -I MODULE_VERSION+ از چنین مشکلی جلوگیری می کند.
مثال کلاس {
// محتوای شما اینجاست
};
مثال بالا از "CLASS" به عنوان یک ماکرو پیش پردازنده استفاده می کند که به چیزی گسترش می یابد
برای هر پلتفرم متفاوت است. به عنوان مثال CLASS ممکن است به عنوان "کلاس" تعریف شود
__declspec(dllexport)" در سیستم عامل های Win32 و به سادگی "کلاس" در یونیکس. به طور معمول،
عدم وجود کلمه کلیدی C++ "class" باعث می شود فایل منبع نادرست باشد
تجزیه شد. رفتار صحیح را می توان با مشخص کردن بازیابی کرد -I CLASS=کلاس.
-L پرونده
خواندن از پرونده لیستی از نام فایل هایی که باید برای آنها تگ ایجاد شود. اگر پرونده is
به عنوان "-" مشخص می شود، سپس نام فایل ها از ورودی استاندارد خوانده می شود. نام فایل ها با استفاده خوانده می شود
این گزینه به دنبال نام فایل های ظاهر شده در خط فرمان پردازش می شود. گزینه ها
نیز در این ورودی پذیرفته شده اند. اگر این گزینه بیش از یک بار مشخص شده باشد، فقط
آخرین اعمال خواهد شد. توجه داشته باشید: پرونده در حالت خط گرا خوانده می شود، جایی که یک خط جدید است
برای این منظور فقط فضای سفید جداکننده و غیر دنباله دار قابل توجه در نظر گرفته می شود
ممکن است نام فایلهای حاوی فاصلهها ارائه شود (اما، فضای سفید انتهایی وجود دارد
از خطوط بریده شده)؛ این میتواند بر نحوه تجزیه گزینهها تأثیر بگذارد، اگر در آن گنجانده شود
ورودی
-n معادل با -- excmd=عدد.
-N معادل با -- excmd=الگو.
-o فایل برچسب
معادل با -f فایل برچسب.
-R معادل با -- بازگشت.
-u معادل با --مرتب سازی=نه (یعنی "مرتب نشده").
-V معادل با -- پرحرف.
-w این گزینه بیصدا برای سازگاری با برچسبهای SVR4 نادیده گرفته میشود.
یونیکس
-x یک فایل مرجع جدولی و قابل خواندن توسط انسان (xref) را در خروجی استاندارد چاپ کنید
به جای تولید یک فایل برچسب اطلاعات موجود در خروجی شامل:
نام تگ؛ نوع برچسب؛ شماره خط، نام فایل و خط منبع (با
فضای خالی اضافی فشرده شده) از فایلی که تگ را تعریف می کند. هیچ فایل برچسبی وجود ندارد
نوشته شده و تمام گزینه هایی که بر خروجی فایل تگ تأثیر می گذارند نادیده گرفته می شوند. مثال
برنامه های کاربردی برای این ویژگی فهرستی از تمام توابع واقع در a ایجاد می کنند
فایل منبع (مثلا برچسب ها -x --c-انواع=f پرونده، یا ایجاد لیستی از همه موارد خارجی
متغیرهای جهانی قابل مشاهده واقع در یک فایل منبع (مثلاً برچسب ها -x --c-انواع=v
--فایل-حوزه=نه پرونده). این گزینه باید قبل از اولین نام فایل ظاهر شود.
--پیوست[=بله|نه]
نشان می دهد که آیا برچسب های تولید شده از فایل های مشخص شده باید به آن ها اضافه شوند یا خیر
قبلاً در فایل تگ وجود دارد یا باید جایگزین آنها شود. این گزینه خاموش است
پیش فرض این گزینه باید قبل از اولین نام فایل ظاهر شود.
--تگ ها-شامل=پرونده
شامل اشاره به پرونده در فایل تگ این گزینه ممکن است به تعداد مشخص شود
بار به دلخواه این قابلیت Emacs را برای استفاده از یک فایل برچسب که "شامل"
سایر فایل های برچسب [فقط در حالت برچسبها موجود است]
-- استثناء کردن=[الگو]
اضافه کردن الگو به لیستی از فایل ها و دایرکتوری های حذف شده این گزینه ممکن است مشخص شود
به تعداد دفعات مورد نظر برای هر نام فایل در نظر گرفته شده توسط برچسب ها، هر یک الگو
مشخص شده با استفاده از این گزینه با هر دو مسیر کامل مقایسه می شود (به عنوان مثال
some/path/base.ext) و نام پایه (به عنوان مثال base.ext) فایل، بنابراین اجازه می دهد
الگوهایی که با نام فایل داده شده صرف نظر از مسیر آن مطابقت دارند یا فقط با a مطابقت دارند
مسیر مشخص اگر پشتیبانی مناسب از کتابخانه زمان اجرا C شما در دسترس باشد
پس کامپایلر الگو ممکن است حاوی علائم معمولی پوسته باشد (غیر معمولی
عبارات رایج در یونیکس (حتماً برای محافظت از پارامتر گزینه را نقل قول کنید
حروف عام از گسترش توسط پوسته قبل از انتقال به برچسب ها; نیز باشد
آگاه باشید که حروف عام می توانند با کاراکتر اسلش، '/' مطابقت داشته باشند. شما می توانید تعیین کنید که آیا پوسته است
با بررسی خروجی، حروف عام در پلتفرم شما در دسترس هستند - نسخه
گزینه ای که شامل "+wildcards" در لیست ویژگی های کامپایل شده می شود. در غیر این صورت،
الگو با استفاده از یک مقایسه متنی ساده با نام فایل مطابقت داده می شود.
If الگو با کاراکتر '@' شروع می شود، سپس بقیه رشته تفسیر می شود
به عنوان یک نام فایل که از آن الگوهای حذف، یکی در هر خط خوانده می شود. اگر الگو is
خالی، لیست الگوهای حذف شده پاک می شود. توجه داشته باشید که در راه اندازی برنامه،
فهرست حذف پیشفرض شامل «EIFGEN»، «SCCS»، «RCS» و «CVS» است که نامهای
دایرکتوری هایی که معمولاً در هنگام پردازش آن ها پایین آمدن برای آنها مطلوب نیست
-- بازگشت گزینه.
-- excmd=نوع
نوع دستور EX مورد استفاده برای مکان یابی برچسب ها در فایل منبع را تعیین می کند. [ نادیده گرفته شد
در حالت برچسب ها]
مقادیر معتبر برای نوع (کل کلمه یا حرف اول پذیرفته می شود)
هستند:
عدد برای مکان یابی تگ ها فقط از شماره خطوط در فایل تگ استفاده کنید. این چهار دارد
مزایای:
1. اندازه فایل تگ به دست آمده را به میزان قابل توجهی کاهش می دهد.
2. شکست در یافتن برچسب ها را حذف می کند زیرا خطی که برچسب را تعریف می کند
تغییر کرد و باعث شکست الگوی مطابقت شد (توجه داشته باشید که برخی از ویرایشگرها، مانند
as نیرو، می توانند در بسیاری از این موارد بهبود یابند).
3. یافتن خطوط منبع مشابه، اما نادرست را حذف می کند (نگاه کنید به
اشکالات، در زیر)
4. ورودی های جداگانه را در فایل برچسب برای خطوطی که یکسان هستند حفظ می کند
در محتوا که در الگو حالت، ورودی های تکراری حذف می شوند زیرا
الگوهای جستجویی که تولید میکنند یکسان هستند و باعث تکرار میشوند
ورودی ها بی فایده است
با این حال، این گزینه یک اشکال مهم دارد: تغییر در منبع
فایلها میتوانند باعث شوند که شماره خطوط ثبت شده در فایل برچسب دیگر از بین برود
با خطوط موجود در فایل منبع مطابقت دارد و باعث پرش به برخی از برچسب ها می شود
تعریف هدف را با یک یا چند خط از دست بدهید. اساساً این گزینه است
بهترین استفاده زمانی است که کد منبعی که برای آن اعمال می شود مشمول آن نباشد
تغییر دادن. انتخاب این نوع گزینه باعث می شود که گزینه های زیر باشد
نادیده گرفته شد: -BF.
الگو به جای اعداد خط معمولاً فقط از الگوهای جستجو برای همه برچسب ها استفاده کنید
برای تعاریف کلان استفاده می شود. این مزیت عدم ارجاع را دارد
شماره خطوط منسوخ زمانی که خطوط از تگ اضافه یا حذف شده اند
فایل ایجاد شد
مخلوط در این حالت، الگوها به طور کلی با چند استثنا مورد استفاده قرار می گیرند. برای C، خط
اعداد برای تگ های تعریف کلان استفاده می شوند. این قالب پیش فرض بود
تولید شده توسط اصلی برچسب ها و بنابراین به عنوان پیش فرض حفظ می شود
برای این گزینه برای Fortran، شماره خطوط برای بلوک های رایج استفاده می شود
زیرا خطوط منبع متناظر آنها به طور کلی یکسان هستند، ساخت
جستجوی الگو برای یافتن همه موارد منطبق بی فایده است.
-- اضافی=[+|-]پرچم ها
مشخص میکند که آیا ورودیهای برچسب اضافی برای انواع خاصی از اطلاعات لحاظ شود یا خیر. در
پارامتر پرچم ها مجموعه ای از پرچم های یک حرفی است که هر کدام نشان دهنده یک نوع برچسب اضافی است
ورودی برای درج در فایل برچسب. اگر پرچم ها قبل از "+" یا "-" است
کاراکتر، اثر هر پرچم به پرچمهای فعلی اضافه یا حذف میشود
فعال در غیر این صورت پرچم ها جایگزین تنظیمات فعلی می شوند. معنی هر پرچم
به شرح زیر است:
f یک ورودی برای نام فایل پایه هر فایل منبع (مثلاً
"example.c")، که خط اول فایل را نشان می دهد.
q برای هر تگ که عضوی از a است، یک ورودی تگ واجد شرایط کلاس اضافه کنید
کلاس (برای زبان هایی که این اطلاعات برای آنها استخراج شده است؛ در حال حاضر C++،
ایفل و جاوا). شکل واقعی تگ واجد شرایط به این بستگی دارد
زبانی که برچسب از آن مشتق شده است (با استفاده از شکلی که برای آن طبیعی ترین است
چگونه تماس های واجد شرایط در زبان مشخص می شوند). برای C++، به شکل است
"class:: Member"; برای ایفل و جاوا به شکل "class.member" است. این
ممکن است مکان آسانتر یک برچسب خاص را در صورت وقوع چندگانه a
نام تگ در فایل تگ وجود دارد. با این حال، توجه داشته باشید که این به طور بالقوه می تواند
بیش از دو برابر اندازه فایل تگ.
--زمینه های=[+|-]پرچم ها
فیلدهای افزونه موجود را مشخص می کند که باید در ورودی های گنجانده شوند
فایل برچسب (نگاه کنید به TAG فایل FORMAT، در زیر، برای اطلاعات بیشتر). پارامتر پرچم ها
مجموعهای از پرچمهای یک حرفی است که هر کدام یک نوع فیلد پسوندی را نشان میدهند
شامل، با معانی زیر (به طور پیش فرض غیرفعال است مگر اینکه مشخص شود):
a دسترسی (یا صادرات) اعضای کلاس
f محدوده محدود فایل [فعال]
i اطلاعات ارثی
k نوعی برچسب به عنوان یک حرف [فعال]
K نوعی برچسب به عنوان نام کامل
l زبان فایل منبع حاوی برچسب
m اطلاعات پیاده سازی
n شماره خط تعریف برچسب
s محدوده تعریف برچسب [فعال]
S امضای روال (مثلاً نمونه اولیه یا لیست پارامترها)
z کلید "kind:" را در قسمت kind قرار دهید
t تایپ و نام یک متغیر یا typedef به عنوان فیلد "typeref:" [فعال]
ممکن است قبل از هر حرف یا گروهی از حروف "+" اضافه شود
تنظیم پیش فرض، یا "-" برای حذف آن. در صورت عدم وجود هر گونه علامت «+» یا «-» قبلی،
فقط انواعی که به صراحت در فهرست شده اند پرچم ها در خروجی گنجانده خواهد شد (یعنی
نادیده گرفتن مجموعه پیش فرض). در صورت وجود گزینه، این گزینه نادیده گرفته می شود --قالب=1 بوده است
مشخص شده. مقدار پیش فرض این گزینه است fkst.
--فایل-حوزه[=بله|نه]
نشان می دهد که آیا تگ ها فقط برای یک فایل (یعنی برچسب هایی که قابل مشاهده نیستند) محدوده دارند یا خیر
خارج از فایلی که در آن تعریف شده اند، مانند برچسب های "استاتیک") باید باشد
در خروجی گنجانده شده است. همچنین ببینید -h گزینه. این گزینه به طور پیش فرض فعال است.
-- فیلتر[=بله|نه]
علل برچسب ها به عنوان یک فیلتر، خواندن نام فایل های منبع از ورودی استاندارد و
چاپ برچسب های خود به خروجی استاندارد بر اساس فایل به فایل. اگر -- مرتب شده is
فعال باشد، برچسب ها فقط در فایل منبعی که در آن تعریف شده اند مرتب می شوند. فایل
نام ها از ورودی استاندارد در حالت ورودی خط گرا خوانده می شوند (به یادداشت برای -L
گزینه) و فقط پس از نام فایل های فهرست شده در خط فرمان یا از هر فایلی
عرضه شده با استفاده از -L گزینه. هنگامی که این گزینه فعال است، گزینه ها -f, -oو
--جمع کل نادیده گرفته می شوند. این گزینه کاملاً باطنی است و به طور پیش فرض غیرفعال است. این
گزینه باید قبل از اولین نام فایل ظاهر شود.
-- فیلتر-ترمیناتور=رشته
رشته ای را برای چاپ در خروجی استاندارد به دنبال برچسب های نام هر فایل مشخص می کند
تجزیه زمانی که -- فیلتر گزینه فعال است این ممکن است به خواندن برنامه اجازه دهد
خروجی ctag ها برای تعیین زمان اتمام خروجی هر فایل. توجه داشته باشید که
اگر نام فایل خوانده شده یک دایرکتوری باشد و -- بازگشت فعال است، این رشته خواهد بود
فقط یک بار در انتهای همه تگ های یافت شده برای با نزول دایرکتوری چاپ می شود. این
رشته همیشه از آخرین خط برچسب فایل توسط آن جدا می شود
خاتمه خط جدید این گزینه کاملاً باطنی است و به طور پیش فرض خالی است. این
گزینه باید قبل از اولین نام فایل ظاهر شود.
--قالب=سطح
فرمت فایل تگ خروجی را تغییر دهید. در حال حاضر تنها مقادیر معتبر برای سطح
هستند 1 or 2. سطح 1 فرمت اصلی فایل تگ را مشخص می کند و سطح 2 a را مشخص می کند
قالب توسعه یافته جدید حاوی فیلدهای پسوند (اما به روشی که حفظ شود
سازگاری با نسخه اصلی vi(1) پیاده سازی). سطح پیش فرض 2 است.
این گزینه باید قبل از اولین نام فایل ظاهر شود. [در حالت برچسب نادیده گرفته شد]
--کمک
شرح استفاده دقیق را در خروجی استاندارد چاپ می کند و سپس خارج می شود.
--if0[=بله|نه]
نشان می دهد که آیا کد در یک شاخه "#if 0" از یک پیش پردازنده وجود دارد یا خیر
شرطی باید برای تگ های غیر ماکرو بررسی شود (برچسب های ماکرو همیشه شامل می شوند).
از آنجا که هدف این ساختار غیرفعال کردن کد است، مقدار پیشفرض این است
گزینه است نه. توجه داشته باشید که این فقط یک اولویت را نشان می دهد و تضمین نمی کند
رد شدن از کد در یک شاخه "#if 0"، از آنجایی که الگوریتم بازگشتی قبلا این کار را انجام می داد
تولید برچسب زمانی که شرط های پیش پردازنده بیش از حد پیچیده هستند، همه شاخه های آن را دنبال می کند
یک مشروط این گزینه به طور پیش فرض غیر فعال است.
-- -انواع=[+|-]انواع
فهرستی از انواع برچسبها (یا انواع) خاص زبان را برای گنجاندن در آن مشخص میکند
فایل خروجی برای یک زبان خاص، جایی که حساس به حروف بزرگ و کوچک است و یکی از
نام زبان های داخلی (به -- لیست-زبان ها گزینه ای برای یک لیست کامل).
پارامتر انواع گروهی از پرچم های یک حرفی است که انواع برچسب ها را مشخص می کند
(مخصوصاً به زبان) خروجی را شامل شود یا از آن حذف کند. در
مجموعه های خاصی از پرچم های شناسایی شده برای هر زبان، معانی و پیش فرض های آنها ممکن است
با استفاده از -- لیست-انواع گزینه. هر حرف یا گروهی از حروف ممکن است باشد
قبل از «+» برای افزودن آن به آن، یا «-» برای حذف آن از مجموعه پیشفرض قرار میگیرد. که در
عدم وجود هر گونه علامت «+» یا «-» قبلی، فقط آن دسته از مواردی که به صراحت در فهرست شده اند
انواع در خروجی گنجانده می شود (یعنی نادیده گرفتن پیش فرض برای مشخص شده
زبان).
به عنوان مثال برای زبان C، به منظور اضافه کردن نمونه های اولیه و متغیر خارجی
اعلانها به مجموعه پیشفرض انواع برچسبها، اما از ماکروها استفاده کنید
--c-انواع=+px-d; برای گنجاندن فقط برچسبها برای توابع، استفاده کنید --c-انواع=f.
--langdef=نام
یک زبان جدید تعریف شده توسط کاربر تعریف می کند، نام، با عبارات منظم تجزیه می شود.
پس از تعریف، نام ممکن است در گزینه های دیگر با نام زبان استفاده شود. معمولی
استفاده از این گزینه این است که ابتدا زبان را تعریف کنید، سپس نام فایل ها را با استفاده از آن نگاشت کنید
- نقشه زبان، سپس عبارات منظم را با استفاده از آن مشخص کنید --regex- برای تعریف چگونگی آن
برچسب ها پیدا می شود.
- نقشه زبان=نقشه[,نقشه[...]]
نحوه نگاشت نام فایل ها به زبان ها را کنترل می کند (به --list-maps گزینه). هر یک
جدا شده با ویرگول نقشه شامل نام زبان (یا داخلی یا تعریف شده توسط کاربر) است
زبان)، دو نقطه، و فهرستی از پسوندهای فایل و/یا الگوهای نام فایل. یک فایل
پسوند با قبل از پسوند با نقطه مشخص می شود (به عنوان مثال ".c"). یک فایل
الگوی نام با قرار دادن الگو در داخل پرانتز مشخص می شود (به عنوان مثال
"([Mm]akefile)"). اگر پشتیبانی مناسب از کتابخانه زمان اجرا موجود باشد
کامپایلر C خود را، سپس الگوی نام فایل ممکن است حاوی علائم معمولی پوسته باشد
رایج در یونیکس (حتماً برای محافظت از حروف عام، پارامتر گزینه را نقل قول کنید
قبل از اینکه به آن منتقل شود توسط پوسته منبسط می شود برچسب ها). شما می توانید تعیین کنید که آیا پوسته است
با بررسی خروجی، حروف عام در پلتفرم شما در دسترس هستند - نسخه
گزینه ای که شامل "+wildcards" در لیست ویژگی های کامپایل شده می شود. در غیر این صورت،
الگوهای نام فایل با استفاده از یک مقایسه متنی ساده با نام فایل مطابقت داده می شوند.
هنگام نگاشت یک پسوند فایل، ابتدا از هر زبان دیگری جدا می شود.
اگر اولین کاراکتر در نقشه علامت مثبت است، پسوندها و نام فایل
الگوهای موجود در آن نقشه به نقشه فعلی آن زبان اضافه می شود.
در غیر این صورت، نقشه جایگزین نقشه فعلی خواهد شد. به عنوان مثال، برای مشخص کردن که فقط
فایلهای با پسوندهای c. و x. باید به عنوان فایلهای زبان C در نظر گرفته شوند، استفاده کنید
"- نقشه زبان=c:.cx"؛ همچنین برای افزودن فایل هایی با پسوندهای j. به عنوان فایل های زبان جاوا،
مشخص كردن "- نقشه زبان=c:.cx،java:+.jبرای نگاشت فایلهای ایجاد شده (مثلاً فایلهایی با نام هر کدام
"Makefile"، "makefile" یا داشتن پسوند ".mak") به زبانی به نام "make"،
مشخص كردن "- نقشه زبان=ساختن:([Mm]akefile).mak". برای نقشه برداری از فایل هایی که پسوند ندارند،
دوره ای را مشخص کنید که یک کاراکتر غیر دوره ای دنبال نمی شود (به عنوان مثال "."، "..x"، ".x."). به
نقشه برداری برای یک زبان خاص را پاک کنید (در نتیجه از تولید خودکار آن جلوگیری می شود
برچسب ها برای آن زبان)، یک لیست پسوند خالی را مشخص کنید (مثلا
"- نقشه زبان=فوترن:"). برای بازیابی نگاشت های زبان پیش فرض برای همه یک خاص
زبان، کلمه کلیدی "پیش فرض" را برای نقشه برداری ارائه کنید. برای تعیین بازیابی
نگاشت زبان پیش فرض برای همه زبان ها، مشخص کنید "- نقشه زبان=به طور پیش فرضتوجه داشته باشید که
پسوندهای فایل قبل از الگوهای نام فایل هنگام استنباط زبان a آزمایش می شوند
فایل.
--زبان-نیروی=زبان
به طور پیش فرض، برچسب ها به طور خودکار زبان یک فایل منبع را انتخاب می کند و آنها را نادیده می گیرد
فایل هایی که زبان آنها قابل تعیین نیست (نگاه کنید به SOURCE فایل ها، در بالا). این گزینه
تعیین شده را مجبور می کند زبان (بدون حساس به حروف کوچک و بزرگ؛ یا داخلی یا تعریف شده توسط کاربر) به
برای هر فایل ارائه شده به جای انتخاب خودکار زبان بر اساس استفاده شود
پس از تمدید آن علاوه بر این، ارزش ویژه خودکار نشان می دهد که زبان
باید به طور خودکار انتخاب شود (که به طور موثر این گزینه را غیرفعال می کند).
--زبان ها=[+|-]لیست
زبان هایی را که تولید برچسب برای آنها فعال است را مشخص می کند فهرست حاوی یک
فهرستی از نامهای زبان جدا شده با کاما (بدون حساس به حروف بزرگ، داخلی یا کاربر-
تعریف شده است). اگر زبان اول از فهرست قبل از "+" یا "-" نیست
لیست فعلی قبل از افزودن یا حذف زبان ها پاک می شود فهرست. تا یک
'-' مواجه می شود، هر زبان در لیست به لیست فعلی اضافه می شود. مانند
یا "+" یا "-" در لیست مشاهده می شود، زبان های زیر آن هستند
به ترتیب از لیست فعلی اضافه یا حذف شد. بنابراین، ساده می شود
لیست فعلی را با لیست جدید جایگزین کنید یا زبان هایی را از آن اضافه یا حذف کنید
لیست فعلی لیست واقعی فایلهایی که برچسبها برای آنها تولید میشود بستگی به این دارد
نگاشت پسوند زبان در حال اجرا است (به - نقشه زبان گزینه). توجه داشته باشید که همه
زبانها، از جمله زبانهای تعریفشده توسط کاربر، فعال هستند، مگر اینکه صراحتاً غیرفعال شوند
با استفاده از این گزینه نام های زبان موجود در فهرست ممکن است هر زبان داخلی یا
یکی که قبلا با --langdef. پیش فرض "همه" است که آن نیز پذیرفته شده است
به عنوان یک استدلال معتبر را ببینید -- لیست-زبان ها گزینه ای برای یک لیست کامل از
نام زبان های داخلی
--مجوز
خلاصه ای از مجوز نرم افزار را در خروجی استاندارد چاپ می کند و سپس خارج می شود.
--دستورالعمل های خطی[=بله|نه]
مشخص می کند که آیا دستورالعمل های "#line" باید شناسایی شوند یا خیر. اینها در
خروجی پیش پردازنده ها و حاوی شماره خط و احتمالاً نام فایل
فایل(های) منبع اصلی که فایل خروجی پیش پردازنده از آن تولید شده است.
در صورت فعال بودن این گزینه باعث می شود برچسب ها برای تولید ورودی های برچسب مشخص شده با
نام فایل ها و شماره خطوط مکان های آنها فایل(های) منبع اصلی، به جای
مکان واقعی آنها در خروجی پیش پردازنده. نام فایل های واقعی قرار داده شده در
فایل تگ دارای همان اجزای مسیر اصلی خروجی پیش پردازنده خواهد بود
فایل، زیرا فرض بر این است که فایل های منبع اصلی نسبت به
فایل خروجی پیش پردازنده (مگر اینکه، البته، دستورالعمل #line یک
مسیر مطلق). این گزینه به طور پیش فرض خاموش است. توجه داشته باشید: این گزینه به طور کلی فقط است
زمانی مفید است که همراه با -- excmd=عدد (-n) گزینه. همچنین، ممکن است مجبور شوید
استفاده کنید - نقشه زبان or --زبان-نیروی گزینه اگر پسوند از
فایل خروجی پیش پردازنده شناخته شده نیست برچسب ها.
-- پیوندها[=بله|نه]
نشان می دهد که آیا پیوندهای نمادین (در صورت پشتیبانی) باید دنبال شوند یا خیر. وقتی غیر فعال است،
پیوندهای نمادین نادیده گرفته می شوند. این گزینه به صورت پیش فرض روشن است.
-- لیست-انواع[=زبان|تمام]
انواع برچسب های شناسایی شده برای زبان مشخص شده یا همه زبان ها را فهرست می کند.
و سپس خارج می شود. هر نوع تگ ثبت شده در فایل تگ با یک نشان داده می شود.
پرچم نامه، که همچنین برای فیلتر کردن برچسب های قرار داده شده در خروجی از طریق استفاده استفاده می شود
از -- -انواع گزینه. توجه داشته باشید که برخی از زبانها و/یا انواع برچسبها ممکن است باشند
با استفاده از عبارات منظم پیاده سازی شده است و در صورت پشتیبانی regex ممکن است در دسترس نباشد
وارد نشده است برچسب ها (نگاه کنید به --regex- گزینه). هر نوع لیست شده فعال است
مگر اینکه "[خاموش]" دنبال شود.
--list-maps[=زبان|تمام]
پسوندهای فایل و الگوهای نام فایل را فهرست می کند که نام فایل را با a مرتبط می کند
زبان برای زبان مشخص شده یا همه زبان ها، و سپس خارج می شود. را ببینید
- نقشه زبان گزینه ، و SOURCE فایل ها، در بالا.
-- لیست-زبان ها
نام زبان هایی را که توسط آنها قابل درک است فهرست می کند برچسب ها، و سپس خارج می شود. این زبان ها
نام ها به حروف بزرگ و کوچک حساس نیستند و ممکن است در آن استفاده شوند --زبان-نیروی, --زبان ها,
-- -انواعو --regex- گزینه.
--گزینه ها=پرونده
گزینه های اضافی را بخوانید پرونده. فایل باید دارای یک گزینه در هر خط باشد. به عنوان یک
مورد خاص، اگر --گزینه ها=NONE به عنوان اولین گزینه در خط فرمان مشخص شده است،
خواندن خودکار هر گزینه پیکربندی از هر یک از یک فایل را غیرفعال می کند
یا محیط زیست (نگاه کنید به فایل ها).
-- بازگشت[=بله|نه]
بازگشت به دایرکتوری های موجود در لیست فایل های ارائه شده. اگر لیستی از
فایل های ارائه شده خالی است و هیچ لیست فایلی با آن مشخص نشده است -L گزینه، سپس
دایرکتوری فعلی (یعنی ".") فرض می شود. پیوندهای نمادین دنبال می شوند. اگر این کار را نکنید
مانند این رفتارها، یا به صراحت فایل ها را مشخص کنید یا خروجی را لوله کنید
پیدا کردن(1) به برچسب ها -L- به جای آن. توجه داشته باشید: این گزینه در همه پلتفرم ها پشتیبانی نمی شود
در حال حاضر. در دسترس است اگر خروجی از --کمک گزینه شامل این گزینه می شود.
همچنین ببینید -- استثناء کردن برای محدود کردن بازگشت
--regex-=/regexp/replacement/[kind-spec/][flags]
La /regexp/replacement/ جفت یک الگوی جایگزین عبارت منظم را تعریف می کند،
از نظر سبک شبیه به SED دستورات جایگزینی، که با استفاده از آنها تگ تولید می شود
فایل های منبع نگاشت شده به زبان نامگذاری شده، , (بدون حساس به حروف کوچک و بزرگ؛ یا ساخته شده
به زبان یا زبان تعریف شده توسط کاربر). بیان منظم، regexp، توسعه یافته را تعریف می کند
عبارت منظم (تقریباً آن چیزی است که توسط egrep(1))، که برای مکان یابی تک استفاده می شود
خط منبع حاوی یک تگ است و ممکن است کاراکترهای برگه را با استفاده از \t مشخص کند. هنگام تطبیق
خط پیدا می شود، یک برچسب برای نام تعریف شده توسط ایجاد می شود جایگزینی، که
به طور کلی حاوی ارجاعات پشتی ویژه \1 تا \9 برای اشاره به تطبیق است
گروه های زیر عبارت در regexp. کاراکترهای جداکننده '/' نشان داده شده در
پارامتر گزینه در واقع می تواند با هر کاراکتری جایگزین شود. توجه داشته باشید که
هر کدام از نویسههای جداکننده استفاده میشود، باید با یک اسلش ('\') حذف شود.
کاراکتر در هر جایی که در پارامتر به عنوان چیزی غیر از جداکننده استفاده می شود.
عبارت منظم تعریف شده توسط این گزینه به لیست فعلی منظم اضافه می شود
عبارات برای زبان مشخص شده مگر اینکه پارامتر حذف شود، در این صورت
لیست فعلی پاک می شود.
مگر اینکه توسط پرچم ها, regexp به عنوان یک منظم توسعه یافته Posix تفسیر می شود
اصطلاح. را جایگزینی باید برای تمام خطوط منطبق به یک غیر خالی گسترش یابد
رشته ای از کاراکترها، یا یک پیام هشدار گزارش خواهد شد. یک نوع اختیاری
مشخص کننده برای تطبیق برچسب ها regexp ممکن است دنبال شود جایگزینی، که تعیین می کند چه چیزی
نوع برچسب در قسمت پسوند "نوع" گزارش می شود (نگاه کنید به TAG فایل FORMAT، در زیر)
فرم کامل نوع خاص به صورت یک حرف، کاما، نام است
(بدون فاصله)، یک کاما، یک توضیحات، به دنبال آن یک جداکننده، که مشخص می کند
اشکال کوتاه و بلند ارزش نوع و توضیحات متنی آن (نمایش داده شده با استفاده از
-- لیست-انواع). ممکن است نام مهربان و/یا توضیحات حذف شود. اگر
نوع خاص حذف شده است، به طور پیش فرض روی "r,regex". سرانجام، پرچم ها یک یا چند هستند
کاراکترهای تک حرفی که تأثیر زیر را بر تفسیر دارند
regexp:
b این الگو به عنوان یک عبارت منظم پایه Posix تفسیر می شود.
e این الگو به عنوان یک عبارت منظم توسعه یافته Posix (پیش فرض) تفسیر می شود.
i عبارت منظم باید به شیوه ای غیر حساس به حروف بزرگ اعمال شود.
توجه داشته باشید که این گزینه فقط در صورتی موجود است که برچسب ها با پشتیبانی برای
عبارات منظم، که به پلت فرم شما بستگی دارد. شما می توانید تعیین کنید که آیا پشتیبانی می شود
برای عبارات منظم با بررسی خروجی از کامپایل شده است - نسخه
گزینه ای که شامل "+regex" در لیست ویژگی های کامپایل شده است.
برای اطلاعات بیشتر در مورد عبارات منظم استفاده شده توسط برچسب ها، ببینید یا
regex (5,7،XNUMX) صفحه man، یا اسناد اطلاعات گنو برای regex (به عنوان مثال "info regex").
--مرتب سازی[=بله|نه|جعبه تاشو]
نشان می دهد که آیا فایل برچسب باید بر اساس نام برچسب مرتب شود (پیش فرض است بله).
توجه داشته باشید که اصل vi(1) برچسب های مرتب شده مورد نیاز. در جعبه تاشو مقدار مورد را مشخص می کند
مرتبسازی غیر حساس (یا تاشو). جستجوی سریع دودویی فایل های برچسب مرتب شده با
تا کردن کیس به پشتیبانی ویژه از ابزارهایی نیاز دارد که از فایل های برچسب استفاده می کنند، مانند آن
در کتابخانه برچسبهای خواندنی ctag یا Vim نسخه 6.2 یا بالاتر (با استفاده از "set
ignorecase"). این گزینه باید قبل از اولین نام فایل ظاهر شود. [در برچسب ها نادیده گرفته می شود
حالت]
---برچسب-نسبی[=بله|نه]
نشان می دهد که مسیرهای فایل ثبت شده در فایل برچسب باید نسبت به
دایرکتوری حاوی فایل برچسب، به جای نسبت به دایرکتوری فعلی،
مگر اینکه فایل های ارائه شده در خط فرمان با مسیرهای مطلق مشخص شده باشند. این
گزینه باید قبل از اولین نام فایل ظاهر شود. پیش فرض است بله هنگام دویدن در
حالت برچسبها (به -e گزینه)، نه در غیر این صورت.
--جمع کل[=بله|نه]
آمار مربوط به فایل های منبع خوانده شده و فایل برچسب نوشته شده در طول را چاپ می کند
فراخوان فعلی از برچسب ها. این گزینه به طور پیش فرض خاموش است. این گزینه باید ظاهر شود
قبل از اولین نام فایل
-- پرحرف[=بله|نه]
حالت کلامی را فعال کنید. این اطلاعات مربوط به پردازش گزینه و خلاصه ای را چاپ می کند
پیامی که توضیح میدهد برای هر فایل در نظر گرفته شده چه اقدامی انجام میشود برچسب ها.
به طور معمول، برچسب ها آرگومان های خط فرمان را نمی خواند تا زمانی که گزینه ها خوانده شوند
از فایل های پیکربندی (نگاه کنید به فایل ها، در زیر) و CTAGS متغیر محیطی.
با این حال، اگر این گزینه اولین آرگومان در خط فرمان باشد، طول می کشد
قبل از خواندن هر گزینه ای از این منابع اثر می گذارد. پیش فرض است نه.
- نسخه
یک شناسه نسخه برای چاپ می کند برچسب ها به خروجی استاندارد می رسد و سپس خارج می شود. این هست
تضمین شده است که همیشه حاوی رشته "Ctags پرشور" باشد.
عملیاتی جزئیات
As برچسب ها نام هر فایل را به نوبه خود در نظر می گیرد، سعی می کند زبان فایل را تعیین کند
با اعمال سه تست زیر به ترتیب: اگر پسوند فایل به a نگاشت شده باشد
زبان، اگر نام فایل با الگوی پوسته نگاشت شده به یک زبان مطابقت داشته باشد، و در نهایت if
فایل قابل اجرا است و خط اول آن یک مفسر با استفاده از سبک یونیکس را مشخص می کند
"#!" مشخصات (در صورت پشتیبانی بر روی پلت فرم). اگر زبانی شناسایی شد، فایل
باز می شود و سپس تجزیه کننده زبان مناسب فراخوانی می شود تا در حال حاضر عمل کند
باز کردن فایل تجزیه کننده فایل را تجزیه می کند و برای هر کدام یک ورودی به فایل تگ اضافه می کند
شیء زبانی که برای رسیدگی به آن نوشته شده است. دیدن TAG فایل FORMAT، در زیر، برای جزئیات بیشتر در این مورد
ورودی های.
این پیاده سازی از برچسب ها هیچ الزامی برای قالببندی بر روی کد C مانند نسخه قدیمی اعمال نمیکند
پیاده سازی ها پیادهسازیهای قدیمیتر ctagها به قالببندی خاصی متکی بودند
مفروضاتی به منظور کمک به حل معضلات کدگذاری ناشی از پیش پردازنده
مشروط
به طور کلی، برچسب ها سعی می کند در مورد دستورالعمل های پیش پردازنده شرطی هوشمندانه عمل کند. اگر یک
شرطی پیش پردازنده در عبارتی که یک برچسب را تعریف می کند، مواجه می شود. برچسب ها
تنها شاخه اول آن شرطی را دنبال می کند (به جز در مورد خاص "#اگر 0"،
در این صورت فقط از آخرین شاخه پیروی می کند). دلیل این امر عدم موفقیت است
دنبال کردن تنها یک شاخه می تواند منجر به نحو مبهم شود، مانند مثال زیر:
#ifdef TWO_ALTERNATIVES
ساختار {
# دیگر
اتحاد. اتصال {
# اندیف
a کوتاه
طولانی b;
}
هر دو شاخه را نمی توان دنبال کرد یا بریس ها نامتعادل می شوند و برچسب ها قادر نخواهد بود
نحو را معنی کنید
اگر کاربرد این اکتشافی نتواند به درستی یک فایل را تجزیه کند، معمولاً به دلیل
جفت شدن پیچیده و ناسازگار در شرایط شرطی، برچسب ها فایل را دوباره امتحان خواهد کرد
با استفاده از یک اکتشافی متفاوت که به طور انتخابی از پیش پردازنده شرطی پیروی نمی کند
شاخه می شود، اما در عوض به تکیه بر مهاربند بسته شدن ("}") در ستون 1 باز می گردد.
نشان دهنده پایان یک بلوک زمانی که هرگونه عدم تعادل مهاربند از دنبال کردن یک #if ایجاد شود
شاخه مشروط
برچسب ها همچنین سعی میکند بهویژه فهرستهای آرگومانهای محصور در مجموعههای دوگانه را مدیریت کند
پرانتز برای پذیرش ساختار شرطی زیر:
extern void foo __ARGS((int one، char two));
هر نامی که بلافاصله قبل از "(" باشد، به طور خودکار نادیده گرفته می شود و نام قبلی
نام استفاده خواهد شد.
تعاریف اپراتور C++ به طور ویژه مورد استفاده قرار می گیرد. به منظور سازگاری با انواع
عملگرها (بارگذاری بیش از حد و تبدیل)، نام اپراتور در فایل تگ همیشه خواهد بود
قبل از رشته "اپراتور" (یعنی حتی اگر تعریف واقعی عملگر باشد
نوشته شده به عنوان "اپراتور<<").
پس از ایجاد یا الحاق به فایل برچسب، بر اساس نام تگ مرتب شده و حذف می شود
خطوط برچسب یکسان
TAG فایل FORMAT
هنگامی که در حالت تگ اجرا نمی شود، هر ورودی در فایل برچسب از یک خط جداگانه تشکیل شده است.
هر کدام در کلی ترین حالت به این شکل هستند:
برچسب_نام نام فایل ex_cmd;" extension_fields
فیلدها و جداکننده های این خطوط به صورت زیر مشخص می شوند:
1. نام تگ
2. کاراکتر تک برگه
3. نام فایلی که شی مرتبط با تگ در آن قرار دارد
4. کاراکتر تک برگه
5. دستور EX برای تعیین محل تگ در فایل استفاده می شود. به طور کلی یک الگوی جستجو
(یا /pattern/ یا ?pattern?) یا شماره خط (نگاه کنید به -- excmd). فرمت فایل تگ 2
(نگاه کنید به --قالب) این دستور EX را تحت شرایط خاص گسترش می دهد تا a
مجموعه ای از فیلدهای افزونه (توضیح داده شده در زیر) بلافاصله در یک نظر EX جاسازی شده است
به دستور EX اضافه شده است که آن را با نسخه اصلی سازگار می کند
vi(1) پیاده سازی ها
چند تگ ویژه برای اهداف داخلی در فایل تگ نوشته می شود. این برچسب ها هستند
به گونه ای ساخته شده اند که همیشه به بالای فایل مرتب می شوند. بنابراین، اولین
دو کاراکتر از این تگ ها از یک عدد جادویی برای شناسایی یک فایل برچسب برای اهداف استفاده می شود
تعیین اینکه آیا یک فایل برچسب معتبر به جای یک فایل منبع بازنویسی می شود یا خیر.
توجه داشته باشید که نام هر فایل منبع دقیقاً مانند آن در فایل تگ ثبت می شود
در خط فرمان ظاهر می شود. بنابراین اگر مسیری که در خط فرمان مشخص کردید بود
نسبت به دایرکتوری فعلی، سپس به همان روش در تگ ثبت خواهد شد
فایل. با این حال، ببینید ---برچسب-نسبی گزینه ای برای اینکه چگونه این رفتار را می توان اصلاح کرد.
فیلدهای برنامه افزودنی جفت های کلید-مقدار جدا شده با تب هستند که به انتهای دستور EX اضافه می شوند.
به عنوان یک نظر، همانطور که در بالا توضیح داده شد. این جفت مقادیر کلیدی به شکل کلی ظاهر می شوند
"کلید:ارزش". حضور آنها در خطوط از فایل برچسب توسط کنترل می شود --زمینه های
گزینه. کلیدهای ممکن و معنای مقادیر آنها به شرح زیر است:
دسترسی نمایان شدن این عضو کلاس را نشان می دهد، جایی که ارزش خاص است
زبان
پرونده نشان می دهد که برچسب دارای قابلیت مشاهده محدود فایل است. این کلید هیچ
مقدار مربوطه
نوع نوع یا نوع برچسب را نشان می دهد. ارزش آن یکی از
پرچم های تک حرفی مربوطه که در زیر انواع مختلف توضیح داده شده است -- -انواع
گزینه های بالا یا نام کامل مجاز است (و در واقع پیش فرض است)
برای اینکه بخش کلیدی این فیلد حذف شود. رفتارهای اختیاری هستند
کنترل شده با --زمینه های گزینه.
پیاده سازی
در صورت وجود، این نشان دهنده اجرای محدود است (انتزاعی در مقابل بتن)
از یک روال یا کلاس، جایی که ارزش مخصوص زبان است ("مجازی" یا
"مجازی خالص" برای C++؛ "چکیده" برای جاوا).
ارث می برد هنگام حضور، ارزش. فهرستی از کلاسهای جدا شده با کاما است که از آنها این است
کلاس مشتق شده است (یعنی از آن ارث می برد).
امضا هنگام حضور، ارزش یک نمایش وابسته به زبان از امضای است
یک روال یک امضای معمول در شکل کامل آن نوع بازگشت را مشخص می کند
از یک روال و لیست استدلال رسمی آن. این فیلد افزونه در حال حاضر است
فقط برای زبان های مبتنی بر C پشتیبانی می شود و نوع برگشتی را شامل نمی شود.
علاوه بر این، اطلاعات مربوط به محدوده تعریف برچسب ممکن است با کلید در دسترس باشد
بخشی برابر با نام سازنده وابسته به زبان و مقدار آن نام اعلام شده است
برای آن ساختار در برنامه این ورودی محدوده محدوده ای را که تگ در آن قرار دارد را نشان می دهد
یافت شد. به عنوان مثال، یک برچسب ایجاد شده برای یک عضو ساختار C دارای یک محدوده است
شبیه "struct:myStruct" است.
چگونه به استفاده از با VI
Vi، به طور پیش فرض، انتظار یک فایل برچسب با نام "tags" در فهرست فعلی را دارد. یک بار
فایل تگ ساخته می شود، دستورات زیر ویژگی نمایه سازی برچسب را اعمال می کنند:
vi -t برچسب vi را شروع کنید و مکان نما را در فایل و خطی که "تگ" تعریف شده است قرار دهید.
:تا برچسب یک برچسب پیدا کنید
Ctrl-] برچسب زیر مکان نما را پیدا کنید.
Ctrl-T قبل از پرش به برچسب (به طور گسترده اجرا نشده است) به مکان قبلی برگردید.
چگونه به استفاده از با گنو EMACS
Emacs بهطور پیشفرض، انتظار یک فایل برچسب با نام «TAGS» را در فهرست فعلی دارد.
هنگامی که فایل تگ ساخته شد، دستورات زیر ویژگی نمایه سازی برچسب را اعمال می کنند:
Mx بازدید-برچسب ها-جدول فایل
فایل برچسب، "FILE" را برای استفاده انتخاب کنید.
M-. [TAG]
اولین تعریف TAG را پیدا کنید. تگ پیش فرض، شناسه زیر است
مکان نما
M-* به جایی که قبلاً "M-" را فراخوانی کرده اید برگردید.
مس M-. تعریف بعدی را برای آخرین تگ پیدا کنید.
برای دستورات بیشتر، به ادامه مطلب مراجعه کنید گزينه ها موضوع در سند اطلاعات Emacs.
چگونه به استفاده از با NEDIT
NEdit نسخه 5.1 و نسخه های جدیدتر می تواند قالب فایل تگ توسعه یافته جدید را مدیریت کند (نگاه کنید به --قالب) به
NEdit را از فایل برچسب استفاده کنید، "File->Load Tags File" را انتخاب کنید. برای پرش به تعریف برای
یک برچسب، کلمه را برجسته کنید، سپس Ctrl-D را فشار دهید. NEdit 5.1 می تواند چندین فایل تگ را بخواند
از دایرکتوری های مختلف تنظیم منبع X nedit.tagFile به نام یک برچسب
فایل به NEdit دستور می دهد تا به طور خودکار آن فایل برچسب را در زمان راه اندازی بارگیری کند.
هشدارها
زیرا برچسب ها نه پیش پردازنده است و نه کامپایلر، استفاده از ماکروهای پیش پردازنده می تواند
احمق برچسب ها به تگ های از دست رفته یا ایجاد نامناسب برچسب های نامناسب. با اينكه
برچسب ها برای رسیدگی به برخی موارد رایج طراحی شده است، این تنها بزرگترین علت است
از مشکلات گزارش شده به طور خاص، استفاده از ساختارهای پیش پردازنده که تغییر می دهند
نحو متنی C می تواند فریب دهد برچسب ها. شما می توانید بسیاری از این مشکلات را با استفاده از آن حل کنید -I
گزینه.
توجه داشته باشید که از زمان برچسب ها الگوهایی را برای مکان یابی برچسب ها تولید می کند (به -- excmd گزینه) است
اگر ویرایشگر دیگری وجود داشته باشد، ممکن است خط اشتباهی توسط ویرایشگر شما پیدا شود
خط منبع که با خط حاوی برچسب یکسان است. مثال زیر
این شرایط را نشان می دهد:
متغیر int؛
/* ... */
void foo (متغیر)
متغیر int؛
{
/* ... */
}
بسته به اینکه از کدام ویرایشگر استفاده می کنید و در کجای کد قرار دارید، این امکان وجود دارد
که الگوی جستجو ممکن است اعلان پارامتر محلی را در foo() قبل از آن قرار دهد
تعریف متغیر جهانی واقعی را پیدا می کند، زیرا خطوط (و در نتیجه جستجوی آنها
الگوها یکسان هستند). با استفاده از آن می توان از این امر جلوگیری کرد -- excmd=n گزینه.
با استفاده از خدمات onworks.net از ctags-exuberant آنلاین استفاده کنید