single-quoted strings or end-of-file in triple-quoted strings.
closes patch 586561.
#define E_TOODEEP 20 /* Too many indentation levels */
#define E_DEDENT 21 /* No matching outer block for dedent */
#define E_DECODE 22 /* Error in decoding into Unicode */
+#define E_EOFS 23 /* EOF in triple-quoted string */
+#define E_EOLS 24 /* EOL in single-quoted string */
#ifdef __cplusplus
}
c = tok_nextc(tok);
if (c == '\n') {
if (!triple) {
- tok->done = E_TOKEN;
+ tok->done = E_EOLS;
tok_backup(tok, c);
return ERRORTOKEN;
}
tripcount = 0;
}
else if (c == EOF) {
- tok->done = E_TOKEN;
+ if (triple)
+ tok->done = E_EOFS;
+ else
+ tok->done = E_EOLS;
tok->cur = tok->inp;
return ERRORTOKEN;
}
tripcount = 0;
c = tok_nextc(tok);
if (c == EOF) {
- tok->done = E_TOKEN;
+ tok->done = E_EOLS;
tok->cur = tok->inp;
return ERRORTOKEN;
}
case E_TOKEN:
msg = "invalid token";
break;
+ case E_EOFS:
+ msg = "EOF while scanning triple-quoted string";
+ break;
+ case E_EOLS:
+ msg = "EOL while scanning single-quoted string";
+ break;
case E_INTR:
PyErr_SetNone(PyExc_KeyboardInterrupt);
Py_XDECREF(v);