Gmac the general macro expander


Purpose
Many program uses text input files (a configuration or an intermediate output for example). When more than one program uses the same input file, it may required to do some changes in the input. To do this, many scripts are needed. The general disadvantage of the script languages, you need to keep the input and the operations in different files. If you want to do the same operations on different input files, it works well. But if you have only one input file it is confusing. You need to see the configuration script and the input file in the same time to find out what will change and what will not. It is hard, especially for others who want/need to understand your files.

Features
- The macros start with special prefixes ([% or [.). These prefixes are rarely found in an average text file.
- Several useful commands (macro expand, include, conditional branch, scope, expression evaluator, regular expressions, execute command lines)
- Standard pipelines are supported (standard input, output and error)
- Standard C source

The gmac language
The gmac macros are uncommon at first sight. Everything is macro and the output of any macro is an input of another macro. Even the input file is a big macro. There is not any kind of variables or functions. See the README included in the .tgz pack.

Project info
Open source, GPL. The source is accessible via CVS. A Linux ELF binary, a README and some examples can be found in the downloadable package. Please share us your comments and suggestions in the forum or by email.

Download