Annotation of researchv10dc/630/man/src/u_man/man1/mc68cpp.1, revision 1.1

1.1     ! root        1: .ds ZZ DEVELOPMENT PACKAGE
        !             2: .TH MC68CPP 1 "630 MTG"
        !             3: .SH NAME
        !             4: mc68cpp \- the C language preprocessor
        !             5: .SH SYNOPSIS
        !             6: .B $DMD/lib/mc68cpp [
        !             7: option ...
        !             8: .B ]
        !             9: .B [
        !            10: ifile
        !            11: .B [
        !            12: ofile
        !            13: .B ] ]
        !            14: .SH DESCRIPTION
        !            15: .PP
        !            16: .I Mc68cpp\^
        !            17: is the C language preprocessor which is invoked as the
        !            18: first pass of any C compilation using the
        !            19: .IR dmdcc (1)
        !            20: command.  Thus, the output of
        !            21: .I mc68cpp\^
        !            22: is designed to be in a form acceptable as input
        !            23: to the next pass of the C compiler.
        !            24: As the C language evolves,
        !            25: .I mc68cpp\^
        !            26: and the rest of the C compilation package will be
        !            27: modified to follow these changes.
        !            28: Therefore, the use of
        !            29: .I mc68cpp\^
        !            30: other than in this framework is not suggested.
        !            31: The preferred way to invoke
        !            32: .I mc68cpp\^
        !            33: is through the
        !            34: .IR dmdcc (1)
        !            35: command, since the functionality of
        !            36: .I mc68cpp\^
        !            37: may some day be moved elsewhere.  See
        !            38: .IR m4 (1)
        !            39: for a general macro processor.
        !            40: .PP
        !            41: .I Mc68cpp\^
        !            42: optionally accepts two file names as arguments.
        !            43: .I Ifile\^
        !            44: and
        !            45: .I ofile\^
        !            46: are respectively the input and output
        !            47: for the preprocessor.  They default to standard input
        !            48: and standard output if not supplied.
        !            49: .PP
        !            50: The following \fIoptions\fP to
        !            51: .I mc68cpp\^
        !            52: are recognized:
        !            53: .TP
        !            54: .B \-P
        !            55: Preprocesses the input without producing the line control
        !            56: information used by the next pass of the C compiler.
        !            57: .TP
        !            58: .B \-C
        !            59: By default,
        !            60: .I mc68cpp\^
        !            61: strips C-style comments.  If the
        !            62: .B \-C
        !            63: option is specified, all comments (except those found on
        !            64: .I mc68cpp
        !            65: directive lines)
        !            66: are passed along.
        !            67: .TP
        !            68: .BI \-U name\^
        !            69: Removes any initial definition of
        !            70: .IR name ,
        !            71: where
        !            72: .I name\^
        !            73: is a reserved symbol
        !            74: that is predefined by the particular preprocessor.
        !            75: The current list of these possibly reserved symbols includes:
        !            76: .PD 0
        !            77: .ne 3v
        !            78: .RS 10
        !            79: .TP 19
        !            80: operating system:
        !            81: ibm, gcos, os, tss, unix
        !            82: .TP
        !            83: hardware:
        !            84: interdata, pdp11, u370, u3b, u3b5, vax, mc68000, mc68k16, mc68k32
        !            85: .TP
        !            86: \s-1UNIX\s+1 variant:
        !            87: .SM RES\*S,
        !            88: .SM RT
        !            89: .RE
        !            90: .PD
        !            91: .TP
        !            92: .BI \-D name\^
        !            93: .PD 0
        !            94: .TP
        !            95: .BI \-D name=def\^
        !            96: Defines
        !            97: .I name\^
        !            98: as if by a
        !            99: .B #define
        !           100: directive.  If no
        !           101: .I =def\^
        !           102: is given,
        !           103: .I name\^
        !           104: is defined as 1.
        !           105: .bp
        !           106: .PD
        !           107: .TP
        !           108: .BI \-I dir\^
        !           109: Changes the algorithm for searching for
        !           110: .B #include
        !           111: files
        !           112: whose names do not begin with \f3/\fP
        !           113: to look in
        !           114: .I dir\^
        !           115: before looking in the directories on the standard list.
        !           116: Thus,
        !           117: .B #include
        !           118: files whose names are enclosed in \f3"\|"\fP
        !           119: will be searched for
        !           120: first in the directory of the
        !           121: .I ifile\^
        !           122: argument,
        !           123: then in directories named in 
        !           124: .B \-I
        !           125: options,
        !           126: and last in directories on a standard list.
        !           127: For
        !           128: .B #include
        !           129: files whose names are enclosed in
        !           130: .BR <> ,
        !           131: the directory of the
        !           132: .I ifile\^
        !           133: argument is not searched.
        !           134: .PP
        !           135: Two special names are understood by
        !           136: .IR mc68cpp .
        !           137: The name
        !           138: .B _\^\^_\s-1LINE\s+1_\^\^_
        !           139: is defined as the current line number (as a decimal integer) as known by
        !           140: .IR mc68cpp ,
        !           141: and
        !           142: .B _\^\^_\s-1FILE\s+1_\^\^_
        !           143: is defined as the current file name (as a C string) as known by
        !           144: .I mc68cpp.\^
        !           145: They can be used anywhere (including in macros) just as any
        !           146: other defined name.
        !           147: .PP
        !           148: All
        !           149: .I mc68cpp\^
        !           150: directives start with lines whose first character is
        !           151: .BR # .
        !           152: The directives are:
        !           153: .TP
        !           154: .BI #define " name" " " token-string
        !           155: Replaces subsequent instances of
        !           156: .I name\^
        !           157: with
        !           158: .IR token-string .
        !           159: .TP
        !           160: \fB#define\fI name\fB(\fI arg\fB, ...,\fI arg\fB )\fI token-string\fR
        !           161: Notice that there can be no space between
        !           162: .I name
        !           163: and the
        !           164: .BR ( .
        !           165: Replaces subsequent instances of
        !           166: .I name
        !           167: followed by a
        !           168: .BR ( ,
        !           169: a list of comma separated tokens, and a
        !           170: .B )
        !           171: by
        !           172: .I token-string
        !           173: where each occurrence of an
        !           174: .I arg
        !           175: in the
        !           176: .I token-string
        !           177: is replaced by the corresponding token in the comma separated list.
        !           178: .TP
        !           179: .BI #undef " name"
        !           180: Causes the definition of
        !           181: .I name
        !           182: (if any) to be forgotten from now on.
        !           183: .TP
        !           184: \fB#include\fI "filename"
        !           185: .PD 0
        !           186: .TP
        !           187: .BI #include " " < filename >
        !           188: Include at this point the contents of
        !           189: .I filename
        !           190: (which will then be run through
        !           191: .IR mc68cpp ).
        !           192: When the
        !           193: .BI < filename >
        !           194: notation is used,
        !           195: .I filename
        !           196: is only searched for in the standard places.
        !           197: See the
        !           198: .B \-I
        !           199: option above for more detail.
        !           200: .PD
        !           201: .TP
        !           202: \fB#line\fI integer-constant "filename"
        !           203: Causes
        !           204: .I mc68cpp
        !           205: to generate line control information for the next pass of the
        !           206: C compiler.
        !           207: .I Integer-constant
        !           208: is the line number of the next line
        !           209: and
        !           210: .I filename
        !           211: is the file where it comes from.
        !           212: If \fI"filename"\fR is not given, the current file name is unchanged.
        !           213: .TP
        !           214: .B #endif
        !           215: .br
        !           216: Ends a section of lines begun by a test directive
        !           217: .RB ( #if ,
        !           218: .BR #ifdef ,
        !           219: or
        !           220: .BR #ifndef ).
        !           221: Each test directive must have a matching
        !           222: .BR #endif .
        !           223: .bp
        !           224: .TP
        !           225: .BI #ifdef " name"
        !           226: The lines following will appear in the output if, and only if,
        !           227: .I name
        !           228: has been the subject of a previous
        !           229: .B #define
        !           230: without being the subject of an intervening
        !           231: .BR #undef .
        !           232: .TP
        !           233: .BI #ifndef " name"
        !           234: The lines following will not appear in the output if, and only if,
        !           235: .I name
        !           236: has been the subject of a previous
        !           237: .B #define
        !           238: without being the subject of an intervening
        !           239: .BR #undef .
        !           240: .SK
        !           241: .TP
        !           242: .BI #if " constant-expression"
        !           243: Lines following will appear in the output if, and only if, the
        !           244: .I constant-expression
        !           245: evaluates to non-zero.
        !           246: All binary non-assignment C operators, the
        !           247: .B ?:
        !           248: operator, the unary
        !           249: .BR \(mi ,
        !           250: .BR ! ,
        !           251: and
        !           252: .B ~
        !           253: operators are all legal in
        !           254: .IR constant-expression .
        !           255: The precedence of the operators is the same as defined by the C language.
        !           256: There is also a unary operator
        !           257: .BR defined ,
        !           258: which can be used in
        !           259: .I constant-expression
        !           260: in these two forms:
        !           261: .BI defined " " ( " name " )
        !           262: or
        !           263: .BI defined " name" .
        !           264: This allows the utility of
        !           265: .BR #ifdef " and " #ifndef
        !           266: in a
        !           267: .B #if
        !           268: directive.
        !           269: Only these operators, integer constants, and names which
        !           270: are known by
        !           271: .I mc68cpp
        !           272: should be used in
        !           273: .IR constant-expression .
        !           274: In particular, the
        !           275: .B sizeof
        !           276: operator is not available.
        !           277: .TP
        !           278: .B #else
        !           279: Reverses the notion of the test directive which
        !           280: matches this directive.  So if lines previous to
        !           281: this directive are ignored, the following lines
        !           282: will appear in the output,
        !           283: and vice versa.
        !           284: .PP
        !           285: The test directives and the possible
        !           286: .B #else
        !           287: directives can be nested.
        !           288: .SH FILES
        !           289: .TP 1.5i
        !           290: /usr/include
        !           291: standard directory for
        !           292: .B #include
        !           293: files
        !           294: .SH SEE ALSO
        !           295: .PP
        !           296: dmdcc(1)        !           297: .br
        !           298: m4(1) in the
        !           299: \f2UNIX System V User's Reference Manual\f1.
        !           300: .SH DIAGNOSTICS
        !           301: .PP
        !           302: The error messages produced by
        !           303: .I mc68cpp\^
        !           304: are intended to be self-explanatory.  The line number and filename
        !           305: where the error occurred are printed along with the diagnostic.
        !           306: .SH WARNING
        !           307: When newline characters were found in argument lists for macros
        !           308: to be expanded, previous versions of
        !           309: .I mc68cpp\^
        !           310: put out the newlines as they were found and expanded.
        !           311: The current version of
        !           312: .I mc68cpp\^
        !           313: replaces these newlines with blanks to alleviate problems that the
        !           314: previous versions had when this occurred.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.