| ptop.cfg(5) | ptop source beautifier config file | ptop.cfg(5) |
نام (NAME)
ptop.cfg - فایل پیکربندی زیباساز کد منبع ptop.
برنامه ptop زیباساز کد منبع در پروژه FreePascal است.
منشأ احتمالاً Pascal-TO-Pascal.cfg است.
توضیحات (DESCRIPTION)
این فایل پیکربندی اصلی زیباساز کد منبع ptop FPC است.
فایل پیکربندی برای ptop(1) الزاماً ptop.cfg نامیده نمیشود و همچنین بهطور خودکار بارگذاری نمیگردد، بنابراین نام آن اهمیت چندانی ندارد. این صفحه راهنما ساختار چنین فایل پیکربندیای را برای ptop(1) شرح میدهد.
ساختار (STRUCTURE)
ساختار یک فایل پیکربندی ptop یک بلوک سازنده ساده است که چندین بار (۶۰ تا ۷۰ بار) تکرار میشود، یک بار برای هر کلمه کلیدی پاسکال که برای برنامه ptop شناخته شده است. (به فایل پیکربندی پیشفرض یا سورسکد ptopu.pp مراجعه کنید تا متوجه شوید کدام کلمات کلیدی شناخته شدهاند).
بلوک سازنده اصلی فایل پیکربندی از یک، دو یا سه خط تشکیل شده است که نحوه واکنش ptop را به یک کلمه کلیدی خاص توصیف میکند. ابتدا یک خط بدون کروشه با قالب زیر:
keyword=option1,option2,option3,...
اگر یکی از گزینهها "dindonkey" باشد (به ادامه متن مراجعه کنید)، خط دومی (با کروشه) به شکل زیر مورد نیاز است:
[keyword]=otherkeyword1,otherkeyword2,otherkeyword3,...
سپس اگر یکی از گزینهها "gobsym" باشد، خط سومی (با پرانتزهای شکسته / علامتهای کمتر و بیشتر) به شکل زیر نیاز است:
<keyword>=terminalword1,terminalword2,terminalword3,...
همانطور که مشاهده میکنید، این بلوک شامل دو نوع شناسه است: کلمات کلیدی (keyword، otherkeyword1..3 و terminalword1..3 در مثال بالا) و گزینهها (option1..3 در بالا).
کلمات کلیدی (Keywords) شناسههای معتبر و توکار ساختار زبان پاسکال هستند مانند BEGIN، END، CASE، IF، THEN، ELSE، IMPLEMENTATION. فایل پیکربندی پیشفرض بیشتر این موارد را فهرست کرده است.
علاوه بر کلمات کلیدی واقعی پاسکال، برخی کدهای رمزی دیگر برای عملگرها و عبارتهای توضیحات (کامنت) استفاده میشوند. این موارد در جدول زیر فهرست شدهاند:
نام کد
رمزی عملگر
------------- -----
casevar : در یک
برچسب case
(مخالف 'colon')
becomes :=
delphicomment //
opencomment { یا (*
closecomment } یا *)
semicolon ;
colon :
equals =
openparen [
closeparen ]
period .
کدهای رمزی گزینهها (Options) عملیاتی را تعیین میکنند که هنگام یافتن کلمه کلیدیِ پیش از علامت مساوی باید انجام شود.
گزینه عملکرد
------- ---------
crsupp جلوگیری
از رفتن به
خط جدید (CR)
قبل از کلمه
کلیدی.
crbefore اجبار
رفتن به خط
جدید (CR) قبل
از کلمه
کلیدی
(با crsupp سازگار
نیست :) )
blinbefore ایجاد خط
خالی قبل از
کلمه کلیدی.
dindonkey کاهش
تورفتگی بر
اساس کلمات
کلیدی
مرتبط (به
زیر مراجعه
کنید)
dindent کاهش
تورفتگی
(همیشه)
spbef فاصله قبل
از کلمه
کلیدی
spaft فاصله بعد
از کلمه
کلیدی
gobsym چاپ
نمادهایی
که پس از یک
کلمه کلیدی
میآیند،
اما بر
چیدمان
تأثیری
ندارند.
تا رسیدن به
نمادهای
پایانی چاپ
میکند.
inbytab تورفتگی
با کلید Tab.
crafter اجبار
رفتن به خط
جدید (CR) بعد
از کلمه
کلیدی.
upper چاپ کلمه
کلیدی با
حروف
تماماً
بزرگ
lower چاپ کلمه
کلیدی با
حروف
تماماً
کوچک
capital بزرگ کردن
حرف اول
کلمه کلیدی:
حرف اول
بزرگ، باقی
حروف کوچک.
گزینه "dindonkey" به برخی پارامترهای اضافی نیاز دارد که در خط دوم برای آن کلمه کلیدی (خط دارای کروشه) تنظیم میشوند؛ بنابراین تنها در صورتی مورد نیاز است که گزینهها شامل "dindonkey" (مخفف de-indent on associated keyword) باشند.
گزینه "dindonkey" در صورتی که هر یک از کلمات کلیدی مشخصشده در گزینههای اضافی خط کروشهدار یافت شود، تورفتگی را کاهش میدهد.
به طور مشابه، گزینه "gobsym" که مخفف gobble symbols (بلعیدن نمادها) است، برای انجام عملکرد خود به اطلاعات اضافی نیاز دارد. گزینه "gobsym" مشخص میکند که تمام نمادهای پس از کلمه کلیدی باید بدون تغییر عبور داده شوند تا زمانی که به یک نماد پایانی برسند. فهرست نمادهای پایانی قابل قبول توسط خط دارای پرانتز شکسته مشخص میشود.
مثالها (EXAMPLES)
بلوک
else=crbefore,dindonkey,inbytab,upper
[else]=if,then,else
به این معنی است:
کلمه کلیدی مد نظر else است، که در سمت چپ هر دو علامت مساوی قرار دارد.
هنگامی که تجزیهکننده ptop کلمه ELSE را پیدا میکند، گزینهها به آن دستور میدهند تا کارهای زیر را انجام دهد:
- (crbefore) کد
دیگری را در
همان خط قبل
از
کلمه
کلیدی مجاز
نداند (ELSE به
تنهایی در
یک خط قرار
گیرد).
- (dindonkey) تورفتگی
را بر روی
کلمات
کلیدی
موجود در
خط
کروشهدار
(if,then,else) کاهش دهد.
- (inbytab) با Tab
تورفتگی
ایجاد کند.
- (upper) کلمه
کلیدی را با
حروف بزرگ
بنویسد (ELSE).
بلوک
case=spaft,gobsym,inbytab,crafter,capital
<case>=ofsym
به این معنی است:
کلمه کلیدی مد نظر case است، که در سمت چپ هر دو علامت مساوی قرار دارد.
هنگامی که case یافت میشود، گزینهها به آن دستور میدهند تا کارهای زیر را انجام دهد:
- (spaft) اطمینان
حاصل کند که
یک فاصله
بعد از
کلمه کلیدی
(case) وجود دارد.
- (gobsym) نمادها را
بدون تغییر
عبور دهد تا
زمانی که
یکی از
کلمات
موجود در خط
پرانتز
شکسته (of)
پیدا شود.
- (crafter) اطمینان
حاصل کند که
پایاندهنده
(of) خط را
پایان
میدهد.
- (inbytab) با Tab
تورفتگی
ایجاد کند.
- (capital) حرف اول
کلمه کلیدی
را بزرگ کند
(case تبدیل به Case
میشود).
توصیه میشود با فایل پیکربندی کار کنید و گزینهها را تغییر دهید تا به نتیجه و چینش مورد نظر خود برسید. قابلیت پیکربندی و انعطافپذیری ptop در مقایسه با سایر زیباسازهای کد منبع اشتراکافزاری که مثلاً در SIMTEL یافت میشوند، بسیار بالا است.
قدردانی (ACKNOWLEDGEMENTS)
نویسنده برنامه، Michael van Canneyt، که در توضیح ساختار و قالب ptop.cfg نیز همکاری کرد.
سؤالات و اصلاحات را میتوان به نشانی fpc-devel@vekoll.saturnus.vein.hu ارسال نمود.
همچنین با تشکر فراوان از سایر اعضای تیم توسعه FPC.
همچنین ببینید (SEE ALSO)
- فایل اجرایی ptop
- ptop(1)
- کامپایلر
- ppc386(1)
- سایر ابزارهای FPC
- ppdep(1) ppudump(1) ppumove(1) h2pas(1)
| 25 January 2007 | FreePascal |