ptop.cfg(5) ptop source beautifier config file ptop.cfg(5)

ptop.cfg - فایل پیکربندی زیباساز کد منبع ptop.

برنامه ptop زیباساز کد منبع در پروژه FreePascal است.

منشأ احتمالاً Pascal-TO-Pascal.cfg است.

این فایل پیکربندی اصلی زیباساز کد منبع ptop FPC است.

فایل پیکربندی برای ptop(1) الزاماً ptop.cfg نامیده نمی‌شود و همچنین به‌طور خودکار بارگذاری نمی‌گردد، بنابراین نام آن اهمیت چندانی ندارد. این صفحه راهنما ساختار چنین فایل پیکربندی‌ای را برای ptop(1) شرح می‌دهد.

ساختار یک فایل پیکربندی 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" مشخص می‌کند که تمام نمادهای پس از کلمه کلیدی باید بدون تغییر عبور داده شوند تا زمانی که به یک نماد پایانی برسند. فهرست نمادهای پایانی قابل قبول توسط خط دارای پرانتز شکسته مشخص می‌شود.

بلوک

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 یافت می‌شوند، بسیار بالا است.

نویسنده برنامه، Michael van Canneyt، که در توضیح ساختار و قالب ptop.cfg نیز همکاری کرد.

سؤالات و اصلاحات را می‌توان به نشانی fpc-devel@vekoll.saturnus.vein.hu ارسال نمود.

همچنین با تشکر فراوان از سایر اعضای تیم توسعه FPC.

فایل اجرایی ptop
ptop(1)
کامپایلر
ppc386(1)
سایر ابزارهای FPC
ppdep(1) ppudump(1) ppumove(1) h2pas(1)
25 January 2007 FreePascal