did it
first batch of crazy refactoring
checkpoint.
checkpoint: parser is mostly functional now.
fix up mark/rewind, and make macros be textual substitution like they're supposed to be.
add EQU support.
some more parser tweaks and (no tests yet) checkpoint on compileLine.
refactoring: separate Line (for processing the text) from ParsedLine, which has the chunks.
clean up Operand a bit, and make compactible be a memo.
checkpoint: compileLine can do one simple thing.
remove Span from the object.
hook up most of the aliases, and one optimization. pause to improve macros.
add comparator expressions.
add comparison operators to expr. add if/else/endif directives. fix handling of labels inside macros.
move aliases into macros.
DataLine resolve and flatten.
restore a bunch of tests and make them work.
get rid of Operand.resolve.
factor Line into its own file.
factor out Operand and bits of Macro.