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.
C++ with -V199901L specifies C99 compatible 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.