diff options
| author | Damien George <damien.p.george@gmail.com> | 2014-01-12 13:55:24 +0000 |
|---|---|---|
| committer | Damien George <damien.p.george@gmail.com> | 2014-01-12 13:55:24 +0000 |
| commit | 69a818d4183c10e082b3a7a02b258d8aaff42986 (patch) | |
| tree | e558ee6b44cce5f298292d57154c153300239556 /py/lexer.c | |
| parent | 97eb73cf84876ec0c5fcf51ffc1190aaf2ee5780 (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.c | 11 |
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); } |
