Minimac is a minimalist, general purpose text macro processor. Its simplicity should make it particularly well suited as a front end preprocessor for little language compilers. It is meant to be simpler to use than m4. It uses an explicit argument stack, and user functions are defined by concatenation (similar to the Forth language). Macro expansion is delayed to the last possible moment. The software is currently in alpha release.
Tags | Macro Pre-processors Text Processing Build Tools Forth Software Development Filters |
---|---|
Licenses | BSD Revised |
Operating Systems | OS Independent |
Implementation | C |
Changes: This release fixes a bug which led to dictionary corruption when a user macro was redefined, adds an {undefine} built-in, and makes the {remove} built-in silently ignore a non-existent file.
Changes: A portability bug that was preventing minimac from running properly on Slackware Unix was fixed.
Changes: Deprecated code was removed from the {?>} built-in.
Changes: As a major addition, a built-in was added for expanding an expression to the stack {?>}. In other words, output that is normally intended for stdout is instead collated in a buffer and pushed onto the stack. This serves as a primitive for user macros that format output. It also obviates the {bind} family of extension macros. The {match?} built-in was renamed to {same?}, so that the {match?} keyword is available for an eventual pattern matching built-in.
Changes: A stack underflow check was added to {cat}. Mnemonic synonyms were added for stack operators. The {spin} and {_swap} stack operators were added. Parameter binding operators were added.