MCPP(1) User Commands MCPP(1)

mcpp - یک پیش‌پردازندهٔ جایگزین زبان C به نام Matsui CPP

mcpp [options] [<infile> [<outfile>]]

دستور mcpp یک پیش‌پردازندهٔ C/C++ با بیشترین میزان سازگاری با استانداردها است که استانداردهای C90، C99 و C++98 را پیاده‌سازی می‌کند. mcpp دارای امکانات عیب‌یابی فراوان و رهنمودهای ‎#pragma بسیار است. این ابزار برای بررسی قابلیت حمل برنامه و همچنین اشکال‌زدایی ماکروهای پیچیده سودمند است. این صفحهٔ راهنما برای ساخت مستقل از کامپایلر (compiler-independent-build) mcpp نوشته شده است.

دستور mcpp دو نام فایل را به عنوان آرگومان دریافت می‌کند: <infile> و <outfile>. در صورت تعیین نشدن، <infile> به طور پیش‌فرض ورودی استاندارد و <outfile> خروجی استاندارد خواهد بود.

این دستور گزینه‌های زیر را می‌پذیرد:

گزینه‌های پرکاربرد:

-@MODE
تعیین حالت پیش‌پردازش. MODE باید یکی از این ۴ مورد باشد:
-@std
حالت منطبق بر استاندارد. (پیش‌فرض)
-@poststd, -@post
حالت ویژهٔ «پس از استاندارد» (post-Standard).
-@kr
حالت نگارش نخست K&R.
-@oldprep, -@old
حالت «پیش‌پردازنده قدیمی» (مدل Reiser برای cpp).
-@compat
حالت «سازگار» با استاندارد.
کامنت‌ها را نیز در خروجی حفظ می‌کند.
تعریف <macro> با مقدار <value> (پیش‌فرض: 1).
تعریف ماکروی تابع‌گونهٔ <macro(args)> با مقدار جایگزین <replace>.
تغییر کدگذاری نویسه‌های چندبایتی پیش‌فرض به یکی از موارد زیر: euc_jp, gb2312, ksc5601, big5, sjis, iso2022_jp, utf8.
افزودن <directory> به فهرست مسیرهای جستجوی ‎#include.
حذف دایرکتوری‌های include وابسته به سیستم یا میزبان خاص.
خط مبدأ را در پیام‌های عیب‌یابی نمایش نمی‌دهد.
فاصله‌های خالی خطوط ورودی را دست‌نخورده نگه می‌دارد.
تولید خط وابستگی فایل منبع برای makefile.
تغییر پردازندهٔ مقصد از x86_64 و ppc64 به ترتیب به i386 و ppc.
تغییر پردازندهٔ مقصد از i386 و ppc به ترتیب به x86_64 و ppc64.
-[no-]mmx
تعریف یا لغو تعریف ماکروی __MMX__.
هیچ ماکروی غیراستانداردی را از پیش تعریف نمی‌کند.
ارسال خروجی به <file>.
خطوط ‎#line را در خروجی تولید نمی‌کند.
ارسال گزارش‌های عیب‌یابی به "mcpp.err" (پیش‌فرض: stderr).
لغو تعریف <macro>.
نمایش نسخهٔ mcpp.
تنظیم سطح هشدار روی <level> (عملیات OR بیتی روی {0,1,2,4,8,16}، پیش‌فرض: 1).
فایل‌های گنجانده‌شده (included) را در خروجی نمی‌آورد و فقط ماکروها را تعریف می‌کند.

گزینه‌های در دسترس با گزینه‌های -@std (پیش‌فرض) یا -@poststd:

-+
پردازش کد منبع C++.
-2
فعال‌سازی دونگاره‌ها (digraphs).
تعریف مجدد ماکروی از پیش‌تعریف‌شدهٔ __STDC_HOSTED__ با مقدار <n>.
تعریف مجدد __STDC__ با مقدار <n> و لغو تعریف ماکروهای سبک قدیمی.
تعریف مجدد __STDC_VERSION__ یا __cplusplus با مقدار <n>.
در زبان C استفاده از -V199901L حالت C99 را مشخص می‌کند.
در زبان C++ استفاده از -V199901L حالت سازگار با C99 را مشخص می‌کند.

گزینه‌هایی که تنها با گزینهٔ -@std (پیش‌فرض) در دسترس هستند:

-@compat
گسترش ماکروهای بازگشتی بیشتر از حد استاندارد.
-3
فعال‌سازی سه‌نگاره‌ها (trigraphs).
جای‌گذاری توضیحات ماکروها درون کامنت‌ها.

گزینه‌های در دسترس با گزینه‌های -@std (پیش‌فرض)، -@kr یا -@oldprep:

پردازش کد منبع اسمبلی (assembler).

دستور mcpp رهنمودهای ‎#pragma زیر را دارد:

#pragma once
خواندن فایل سرآیند تنها یک‌بار، حتی اگر چندین بار ‎#include شده باشد.
#pragma __setlocale( "encoding")
تعیین کدگذاری نویسه‌های چندبایتی به "encoding". برای فهرست کدگذاری‌ها گزینهٔ -e را ببینید.
#pragma MCPP put_defines
چاپ تمام تعاریف ماکرویی که هم‌اکنون معتبر هستند در خروجی.
#pragma MCPP debug <args>
آغاز چاپ اطلاعات اشکال‌زدایی.
<args> باید یک یا چند مورد از این‌ها باشد:
token expand macro_call path if expression memory getc
#pragma MCPP end_debug <args>
توقف چاپ اطلاعات اشکال‌زدایی.
آرگومان‌های <args> مشابه با 'debug' هستند.
نبود آرگومان به معنی اعمال روی همهٔ شناسه‌ها است.
#pragma MCPP push_macro( "MACRO")
ذخیرهٔ تعریف ماکرو در پشته.
#pragma MCPP pop_macro( "MACRO")
بازیابی تعریف ماکرو از پشته.
#pragma MCPP preprocess
«پیش‌پردازش اولیه» فایل‌های سرآیند بعدی برای mcpp.
#pragma MCPP warning any message
نمایش هشدار حاوی "any message".

MCPP V.2.7 (2008/03) compiler-independent-build

برای نسخهٔ مبتنی بر کامپایلر GCC این دستور، 'man mcpp-gcc' را ببینید. مستندات کامل mcpp در قالب فایل‌های html نگهداری می‌شوند. لطفاً فایل mcpp-manual.html را مطالعه کنید.

Mar 2008 alternative CPP