Turns out we can use character literals, but not string literals. I'm not sure the scanner can differentiate between binary and unary operators so that logic has been pushed back to AST generation.