py: Improve memory management for parser; add lexer error for bad line cont.
diff --git a/py/lexer.c b/py/lexer.c
index d420523..f7f9c63 100644
--- a/py/lexer.c
+++ b/py/lexer.c
@@ -299,8 +299,15 @@
// backslash (outside string literals) must appear just before a physical newline
next_char(lex);
if (!is_physical_newline(lex)) {
- // TODO SyntaxError
- assert(0);
+ // SyntaxError: unexpected character after line continuation character
+ tok->src_name = lex->name;
+ tok->src_line = lex->line;
+ tok->src_column = lex->column;
+ tok->kind = MP_TOKEN_BAD_LINE_CONTINUATION;
+ vstr_reset(&lex->vstr);
+ tok->str = vstr_str(&lex->vstr);
+ tok->len = 0;
+ return;
} else {
next_char(lex);
}