|
mcpp − Matsui CPP, an alternative C preprocessor |
|
mcpp [options] [<infile> [<outfile>]] |
|
mcpp is a C/C++ preprocessor with the highest conformance which implements C90, C99 and C++98. mcpp has plentiful diagnostics and many #pragmas. It is useful to check portability of your program, and also useful to debug complicated macro. This is a man-page for mcpp of compiler-independent-build. |
|
mcpp expects two file names as arguments, <infile> and <outfile>. If not specified, <infile> defaults to standard input and <outfile> defaults to standard output. It takes the following options. Commonly used options: |
|
-@MODE |
Specify preprocessing mode. MODE should be one of these 4: |
|
-@std |
|
Standard conforming mode. (default) |
|
-@poststd, -@post |
|
special ’post-Standard’ mode. |
|
-@kr |
|
K&R 1st mode. |
|
-@oldprep, -@old |
|
"old_preprocessor" mode (i.e. "Reiser model" cpp). |
|
-C |
Output also comments. |
|
-D <macro>[=<value>] |
|
Define <macro> as <value> (default:1). |
|
-D <macro(args)>[=<replace>] |
|
Define <macro(args)> as <replace>. |
|
-e <encoding> |
|
Change the default multi-byte character encoding to one of: euc_jp, gb2312, ksc5601, big5, sjis, iso2022_jp, utf8. |
|
-I <directory> |
|
Add <directory> to the #include search list. |
|
-I- |
Unset system or site specific include directories. |
||
|
-j |
Do not output the source line in diagnostics. |
|
-M, -MM, -MD, -MMD, -MP, -MQ target, -MT target, -MF file |
|
Output source file dependency line for makefile. |
|
-N |
Don’t predefine any non-standard macros. |
|
-o <file> |
|
Output to <file>. |
|
-P |
Don’t output #line lines. |
||
|
-Q |
Output diagnostics to "mcpp.err" (default:stderr). |
|
-U <macro> |
|
Undefine <macro>. |
|
-v |
Show version of mcpp. |
|
-W <level> |
|
Set warning level to <level> (OR of {0,1,2,4,8,16}, default:1). |
|
-z |
Don’t output the included file, only defining macros. |
|
Options available with -@std (default) or -@poststd options: |
|
-+ |
Process C++ source. |
||
|
-2 |
Enable digraphs. |
||
|
-h <n> |
Re-define the pre-defined macro __STDC_HOSTED__ as <n>. |
||
|
-S <n> |
Redefine __STDC__ to <n>, undefine old style macros. |
||
|
-V <n> |
Redefine __STDC_VERSION__ or __cplusplus to <n>. |
|
C with -V199901L specifies C99 mode. |
|
Options available with only -@std (default) option: |
|
-@compat |
|
Expand recursive macro more than Standard. |
|
-3 |
Enable trigraphs. |
|||
|
-K |
Embed macro annotations into comments. |
|
Options available with -@std (default), -@kr or -@oldprep options: |
|
-a |
Process "assembler" source. |
|
mcpp has the following #pragma directives. |
|
#pragma once |
|
Read the header file only once even if multiply #included. |
|
#pragma __setlocale( "encoding") |
|
Specify the multibyte character encoding to "encoding". See -e option for the encodings. |
|
#pragma MCPP put_defines |
|
Putout all the macro definitions currently valid. |
|
#pragma MCPP debug <args> |
|
Start to putout debugging informations. <args> should be one or more of: token expand macro_call path if expression memory getc |
|
#pragma MCPP end_debug <args> |
|
Stop to putout debugging informations. <args> are the same with ’debug’. No argument specifies all arguments. |
|
#pragma MCPP push_macro( "MACRO") |
|
Save the macro definition to the stack. |
|
#pragma MCPP pop_macro( "MACRO") |
|
Retrieve the macro definition from the stack. |
|
#pragma MCPP preprocess |
|
"Pre-preprocess" the following header files for mcpp. |
|
#pragma MCPP warning any message |
|
Putout warning "any message". |
|
MCPP V.2.7 (2008/03) compiler-independent-build |
|
Do ’man mcpp-gcc’ for mcpp of GCC-specific-build. The full documentation for mcpp are maintained as html files. Please see mcpp-manual.html. |