gpcpp
is based on the C preprocessor, so it does everything
cpp
does (see the cpp manual) and some more.
In particular:
cpp
does, but within { ... }
and (* ... *)
, also after //
if
delphi-comments
is active, never within /* ... */
.
Also mixed comments ({ ... *)
, (* ... }
) if
enabled (mixed-comments
) and nested comments (e.g.
{ ... { ... } ... }
) if enabled
(nested-comments
)
cpp
does, but both case
sensitive and insensitive ones; no-macros
to turn macro
expansion off (e.g., for BP compatibility)
ifopt
for short and long options
cpp
does, but also with
{$I ...}
(BP style), which allows the file name
extension to be omitted
gpc-options.h
with
the compiler:
borland-pascal
-> no-macros
etc.)
W
(warnings) is disabled in
borland-pascal
and delphi
because it has another
meaning there
{$...}
or
(*$...*)
):
ifopt
not
-> !
, and
-> &&
,
or
-> ||
, xor
-> !=
,
shl
-> <<
, shr
-> >>
,
False
-> 0
, True
-> 1
,
<>
-> !=
, =
-> ==
)
cpp
does, but recognize BP style
(#42
or #$f0
) character constants and don't confuse
them with line directives (the latter seem to always have a space
after the #
)