Improve handling of unmatched parens
Add some test cases for invalid syntax to be caught by lexer