Documentation
Internal
Testing
- Modify 'output_is' such that GNU m4 is only tested when available.
- Add tests for new features
- Add test for dumping frozen file
Features
The features that need to be implemented are arranged by chapters in the GNU m4 documentation.
Chapter 1 Introduction and preliminaries
- read from STDIN, when no file is passed
- Add some tests with Autoconf macros
- Parsing of short options
- recognize unambigous long options
- Option -G or --traditional
- Option -E or --fatal-warnings
- Option -d or --debug
- Option -l or --arglength
- Option -o or --error-output
- Option -I or --include
- Option -e or --interactive
- Option -s or --synclines
- Option -P or --prefix-builtins
- Option -W or --word-regexp
- Option -H or --hash-size
- Option -L or --nesting-limit
- Option -Q or --quiet or --silent
- Option -B, -S, -T
- Option -N or --diversions
- Option -D or --define
- Option -U or --undefine
- Option -t or --trace
Chapter 2 Lexical and syntactic conventions
Chapter 3 How to invoke macros
- Option -P or --prefix-builtins
- trailing whitespace in macro calls
- warnings for inappropriate number of arguments
- implement option '--changeword'
- recognize unquoted parenthesis in macros
Chapter 4 How to define new macros
- implement indirect macro calls
- implement 'pushdef' and 'popdef'
- implement 'defn'
- Do 'input_stack' properly
- Special arguments to macros
Chapter 5 Conditionals, loops and recursion
Chapter 6 How to debug macros and input
Chapter 7 Input control
- everything
Chapter 8 File inclusions
Chapter 9 Diverting and undiverting output
- Diversions