cauxp provides additional preprocessing directives designed to help programmers create easily-maintained code. It allows multiline macros without the annoyance of line continuation markers and can do automatic bracketing of macro parameters. It also provides methods for defining groups of related constants and flags. You can also invoke other processors from within cauxp.
SQL::Yapp is a Perl module which embeds SQL completely into Perl. It checks SQL syntax at compile time and fully parses SQL to allow usage of any Perl scalars, arrays, and hashes in an intuitive and safe way. It makes SQL injections virtually impossible while making you feel as if SQL syntax were native to Perl.
ucpp is a C preprocessor. It is designed to be quick and light, but still fully compliant to the ISO standard 9899:1999, also known as C99. ucpp can be compiled as a stand-alone program or linked to some other code; in the latter case, ucpp will output tokens, one at a time, on demand, as an integrated lexer. ucpp operates in two modes: in lexer mode, ucpp is linked to some other code and outputs a stream of tokens where each call to the lex() function will yield one token; in non-lexer mode, ucpp preprocesses text and outputs the resulting text to a file descriptor. If linked to some other code, the cpp() function must be called repeatedly, otherwise ucpp is a stand-alone binary.
pyexpander is a macro processor based on Python. Instead of simple text replacement, it offers evaluation of arbitrary Python expressions and execution of Python code. It features simple syntax definition: all expander commands start with a dollar sign ("$") followed by word characters, parameters, Python code enclosed in brackets, or a combination of these. The full power of the Python programming language can be used, including all operators, functions and modules. Any Python expression can be used to insert text. It also provides a Python library that you can use to develop other macro tools based on pyexpander.