Converted macros.cpp over to the new DSL, and fixed bugs in the DSL. Fixes #118