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