factor Line into its own file.
factor out Operand and bits of Macro.
macro tests in their own file.
new files.
rename dependency back to resolvable.
move builtin macros to a new file.
bit more work on compile. validation phase.
one test program compiles!
one more test.
merge validation in with parsing.
hook up pack().
move SymbolRegex out of objects.
finish compile, with shrinking code sizes.
don't track all the heavy pline stuff once we're building line# tables.
allow "if" to be used in macros.
move optimization to the resolve phase, once we know all symbols. fill in the instruction then, too.
more passing tests!
down to one failing test!
fix error handling during resolve phase, and only allow the add/sub optimization on pc/sp.
have macros remember tracking info for args that are passed in, so that if an error is caused by an arg, the error points back to the call site.