Reputation: 54100
I know that C preprocessor exists as part of compiler. But I'm looking for an independent program. Is there any such tool?
Upvotes: 6
Views: 1205
Reputation: 1823
I've used filepp for preprocessing files other than straight C. It's a Perl module, so it's pretty portable. It's handy in that you can use all the familiar idioms you are used to, and adds some useful features.
From the web site:
Why filepp and not plain old cpp?
cpp is designed specifically to generate output for the C compiler. Yes, you can use any file type with it, but the output it creates includes loads of blank lines and lines of the style:
# 1 "file.c"
Obviously these lines are very useful to the C-compiler, but no use in say an HTML file. Also, as filepp is written in Perl, it is 8-bit clean and so works on any character set, not just ASCII characters. filepp is also customisable and hopefully more user friendly than cpp.
Upvotes: 3
Reputation: 500297
It's often called cpp
. For example, on my Linux box:
CPP(1) GNU CPP(1) NAME cpp - The C Preprocessor SYNOPSIS cpp [-Dmacro[=defn]...] [-Umacro] [-Idir...] [-iquotedir...] [-Wwarn...] [-M|-MM] [-MG] [-MF filename] [-MP] [-MQ target...] [-MT target...] [-P] [-fno-working-directory] [-x language] [-std=standard] infile outfile
This particular one is part of gcc
and is available for a wide variety of platforms.
Upvotes: 11
Reputation: 46051
You can also have a look at m4
What is m4?
M4 can be called a “template language”, a “macro language” or a “preprocessor language”. The name “m4” also refers to the program which processes texts in this language: this “preprocessor” or “macro processor” takes as input an m4 template and sends this to the output, after acting on any embedded directives, called macros.
Upvotes: 4
Reputation: 2732
mcpp.
From the homepage:
mcpp is a C/C++ preprocessor with the following features.
- Implements all of C90, C99 and C++98 specifications.
- Provides a validation suite to test C/C++ preprocessor's conformance and quality comprehensively. When this validation suite is applied, mcpp distinguishes itself among many existing preprocessors.
- Has plentiful and on-target diagnostics to check all the preprocessing problems such as latent bug or lack of portability in source code.
- Has #pragma directives to output debugging information.
- Is portable and has been ported to many compiler-systems, including GCC and Visual C++, on UNIX-like systems and Windows.
- Has various behavior modes.
- Can be built either as a compiler-specific preprocessor to replace the resident preprocessor of a particular compiler system, or as a compiler-independent command, or >even as a subroutine called from some other main program.
- Provides comprehensive documents both in Japanese and in English.
- Is an open source software released under BSD-style-license.
Upvotes: 4
Reputation: 28693
It is a part of the package, and usually called cpp
(C PreProcessor).
which cpp
# /usr/bin/cpp
man cpp
Upvotes: 1
Reputation: 9330
cpp
is just one. It's a separated program called by gcc
when compiling.
Upvotes: 1