- Prepare slides
- For matching use PGE instead of PCRE.
- Modify 'output_is' such that GNU m4 is only tested when available.
- Add tests for new features
- Add test for dumping frozen file
The features that need to be implemented are arranged by chapters in the GNU m4 documentation.
- 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
- Nested quoted strings
- Option -P or --prefix-builtins
- trailing whitespace in macro calls
- warnings for inappropriate number of arguments
- implement option '--changeword'
- recognize unquoted parenthesis in macros
- implement indirect macro calls
- implement 'pushdef' and 'popdef'
- implement 'defn'
- Do 'input_stack' properly
- Special arguments to macros
- implement 'shift'
- implement 'ifelse' used as switch
- Write tests with recursion
- implement macro 'dumpdef'
- Implement debugging options
- implement tracing
- implement 'debugfile'
- everything
- File inclusion
- include path
- implement 'include'
- implement 'sinclude'
- Diversions
- macro b<translit> add as an op or port from GNU m4
- macros b<regexp> and b<patsubst> POSIX regexes
- incr, decr of large numbers
- radix support for `eval'
- Why isn't there a 'system' in Parrot?
- names for temporary files
- Macro b<__file__>
- Macro b<__line__>
- Needs to be fixed, as the rx_* ops are gone
- more tests
- Document the differences between Parrot m4 and GNU m4