Don't allow invalid escape sequences
diff --git a/lexer.go b/lexer.go
index 679bb4d..c3a145c 100644
--- a/lexer.go
+++ b/lexer.go
@@ -358,6 +358,9 @@
 				return l.errorf("invalid unicode escape: \\u" + code)
 			}
 			growing_string += string(rune(intcode))
+		} else if l.follow("\\") {
+			l.pos += 1
+			return l.errorf("invalid escape sequence: \\" + string(l.peek()))
 		} else {
 			growing_string += string(l.peek())
 		}
diff --git a/lexer_test.go b/lexer_test.go
index e3b5daf..b7de9f5 100644
--- a/lexer_test.go
+++ b/lexer_test.go
@@ -292,6 +292,14 @@
 	})
 }
 
+func TestInvalidEsquapeSequence(t *testing.T) {
+	testFlow(t, "foo = \"\\x\"", []token{
+		token{tokenKey, "foo"},
+		token{tokenEqual, "="},
+		token{tokenError, "invalid escape sequence: \\x"},
+	})
+}
+
 func TestKeyEqualNumber(t *testing.T) {
 	testFlow(t, "foo = 42", []token{
 		token{tokenKey, "foo"},