home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
rtsi.com
/
2014.01.www.rtsi.com.tar
/
www.rtsi.com
/
OS9
/
TOP
/
USR
/
SRC
/
scpp.t.Z
/
scpp.t
/
scpp.man
< prev
next >
Wrap
Text File
|
2009-11-06
|
5KB
|
133 lines
SSSSCCCCPPPPPPPP((((1111)))) XXXXEEEENNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((22228888 SSSSeeeepppptttteeeemmmmbbbbeeeerrrr 1111999988883333)))) SSSSCCCCPPPPPPPP((((1111))))
NNNNAAAAMMMMEEEE
scpp - selective C preprocessor
SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
ssssccccpppppppp [ ----MMMM_m_a_c_r_o ] [ ----DDDD_m_a_c_r_o ] [ ----DDDD_m_a_c_r_o=_d_e_f ] [ ----CCCC ]
[ ----IIII_i_n_c_d_i_r ] [ _f_i_l_e... ]
DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
SSSSccccpppppppp concatenates the input _f_i_l_e_s (or reads standard-in, if
no _f_i_l_e is given), interprets all references to given
macros, leaving the rest of the _f_i_l_e(s) unaltered, then
writes the result to standard-out. It is helpful in
removing conditionally compiled code or misleading macros
from a file.
The _f_i_l_e name "----" refers to standard-in.
The following options are available. Each option can appear
as frequently as desired.
-M Interpret all references to the given _m_a_c_r_o. _M_a_c_r_o
can be either a single macro name or a
whitespace-separated list of macro names (e.g.
-MMAXINT or -M"MAXINT MININT INTWID"). All
occurrences of the macro and all instances of the
intrinsic macro "defined()" referring to this
macro are expanded. All preprocessor directives
referring to this macro (except ####iiiiffff) perform their
usual function and do not appear in the output.
####iiiiffff directives are interpreted only if their value
is not dependent on macros which are not to be
interpreted.
-D Define the _m_a_c_r_o to have the value _d_e_f, or "1" if
no _d_e_f is given. Unlike the C preprocessor, ssssccccpppppppp
does not implicitly define certain macros that
describe the environment in which the code will be
running (e.g. "vax" or "unix"). ----DDDD implies ----MMMM....
-C Preserve comments and whitespace in interpreted
macro definitions. Normally, comments and leading
and trailing whitespace are stripped from
interpreted macro definitions.
-I Add _i_n_c_d_i_r to the list of directories to be
searched for include files. SSSSccccpppppppp searches
directories in the same order as the C
preprocessor: if the include filename is enclosed
in double-quotes ("...") rather than angle-
brackets (<...>), the directory containing the
current file being processed; the directories
given by -I, left-to-right; the standard
Page 1 (printed 11/28/87)
SSSSCCCCPPPPPPPP((((1111)))) XXXXEEEENNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((22228888 SSSSeeeepppptttteeeemmmmbbbbeeeerrrr 1111999988883333)))) SSSSCCCCPPPPPPPP((((1111))))
directory, /usr/include.
AAAAUUUUTTTTHHHHOOOORRRR
Brad Needham, Tektronix, Inc.
SSSSEEEEEEEE AAAALLLLSSSSOOOO
cc(1).
BBBBUUUUGGGGSSSS
Very long identifiers (those over 100 characters long) will
crash ssssccccpppppppp....
Because ssssccccpppppppp interprets only the given macros, the meaning
of some code will change. E.g. "scpp -MBOO" of
#define BOO hello,there
#define twopar(a,b) a b
twopar(BOO,folks)
will generate
#define twopar(a,b) a b
twopar(hello,there,folks)
causing an argument mismatch when the output is compiled.
Because uninterpreted "#if"s, "ifdef"s, and "ifndef"s, have
no effect on the output, the following example, when
processed via "scpp -MLEFT", will generate an error message
complaining about multiple definitions of "LEFT".
#ifdef ZULU
#define LEFT 20
#else
#define LEFT 347
#endif
The C preprocessor macros "________FFFFIIIILLLLEEEE________" and "________LLLLIIIINNNNEEEE________" have no
special meaning to ssssccccpppppppp....
Page 2 (printed 11/28/87)