huff, matchfirst is grumpy again.  I thought I tested this
support character literals in expressions
Support all tasm operators

note that tasm follows strict l-to-r evaluation, but admonishes programmers
to fully parenthesize calculations for compatibility with other
assemblers.
parse the .end directive (but ignore it)
leading space *required* when there's no label