GPP is a general-purpose preprocessor with customizable syntax, suitable for a wide range of preprocessing tasks. Its independence from any programming language makes it much more versatile than cpp, while its syntax is lighter and more flexible than that of m4. The syntax is fully customizable, which makes it possible to process text files, HTML, or source code equally efficiently in a variety of languages.
Unifdef is useful for removing #ifdef'ed lines from a file while otherwise leaving the file alone. You specify which symbols are defined or undefined with -D and -U flags, and unifdef removes the corresponding ifdefs, and the enclosed code if appropriate. It's especially useful for removing those "#ifdef BROKEN" and "#ifdef PRIVATE" clauses from code before you release it. Unifdef acts on #if, #ifdef, #ifndef, #elif, #else, and #endif lines, and it knows only enough about C and C++ to know when one of these is inactive because it is inside a comment or a single or double quote.
Youhp3 (Youpee's One Unlimited HTML PreProcessor) is an HTML preprocessor that allows you to embed code of any script language, as well as calling any external program to generate text files. It is specifically designed to work with HTML/XML documents, and provide traditional features, such as define, include, macro, conditional tests, and loop.
EmPy is a system for embedding Python expressions and statements in template text. It takes an EmPy source file, processes it, and produces output. This is accomplished via expansions, which are special signals to the EmPy system and are set off by a special prefix (by default the at sign, '@'). It can expand arbitrary Python expressions and statements in this way, as well as a variety of special forms. Textual data not explicitly delimited in this way is sent unaffected to the output, allowing Python to be used in effect as a markup language. Also supported are callbacks via hooks, recording and playback via diversions, and dynamic, chainable filters. The system is highly configurable via command line options and embedded commands.
SPYCE is a server-side language that supports simple and efficient Python-based dynamic HTML generation, otherwise called Python Server Pages. Those who like Python and are familiar with JSP, PHP, or ASP should have a look at Spyce. Its modular design makes it very flexible and extensible. It can also be used as a command-line utility for static text pre-processing or as a Web-server proxy.
Barter is a tool for increasing the quality of applications written in Java. It allows the programmer to use design by contract and define other development aspects right in the classes and interfaces where they are relevant, as JavaDoc comments. It is essentially a code generator for AspectJ, implemented as an xDoclet task.