summaryrefslogtreecommitdiff
path: root/py/lexer.c
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2014-01-12 13:55:24 +0000
committerDamien George <damien.p.george@gmail.com>2014-01-12 13:55:24 +0000
commit69a818d4183c10e082b3a7a02b258d8aaff42986 (patch)
treee558ee6b44cce5f298292d57154c153300239556 /py/lexer.c
parent97eb73cf84876ec0c5fcf51ffc1190aaf2ee5780 (diff)
py: Improve memory management for parser; add lexer error for bad line cont.
Diffstat (limited to 'py/lexer.c')
-rw-r--r--py/lexer.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/py/lexer.c b/py/lexer.c
index d4205236c..f7f9c631f 100644
--- a/py/lexer.c
+++ b/py/lexer.c
@@ -299,8 +299,15 @@ static void mp_lexer_next_token_into(mp_lexer_t *lex, mp_token_t *tok, bool firs
// 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);
}