Any non-operator expression can be a part of an operator expression. This cleans up and makes clearer the precendence relationships for parsing.
Move tests into a separate file for more manageable file organization.