home | help
MCPP(1) 			  User Commands 			 MCPP(1)

NAME
     mcpp - Matsui CPP, an alternative C preprocessor

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

DESCRIPTION
     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.

OPTIONS
     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.

PRAGMA
     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  op-
	    tion 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".

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

SEE ALSO
     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.

alternative CPP 		    Mar 2008				 MCPP(1)

home | help