summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Heimes <christian@cheimes.de>2007-11-23 12:12:02 +0000
committerChristian Heimes <christian@cheimes.de>2007-11-23 12:12:02 +0000
commit02c9ab568d1458e4c1ea2ca700c5d25bb31e8002 (patch)
treeedf8d08a2f2aea45d78c32c95ece0c825fcfa32d
parent729ab15370c8e7781f4781428364d203eb9f6416 (diff)
downloadcpython-git-02c9ab568d1458e4c1ea2ca700c5d25bb31e8002.tar.gz
Fixed problems in the last commit. Filenames and line numbers weren't reported correctly.
Backquotes still don't report the correct file. The AST nodes only contain the line number but not the file name.
-rw-r--r--Parser/tokenizer.c20
-rw-r--r--Python/ast.c12
2 files changed, 19 insertions, 13 deletions
diff --git a/Parser/tokenizer.c b/Parser/tokenizer.c
index 432f94f6f3..4ff2b98589 100644
--- a/Parser/tokenizer.c
+++ b/Parser/tokenizer.c
@@ -983,15 +983,7 @@ PyToken_TwoChars(int c1, int c2)
break;
case '<':
switch (c2) {
- case '>':
- {
-#ifndef PGEN
- if (Py_Py3kWarningFlag)
- PyErr_WarnEx(PyExc_DeprecationWarning,
- "<> not supported in 3.x", 1);
-#endif
- return NOTEQUAL;
- }
+ case '>': return NOTEQUAL;
case '=': return LESSEQUAL;
case '<': return LEFTSHIFT;
}
@@ -1485,6 +1477,16 @@ tok_get(register struct tok_state *tok, char **p_start, char **p_end)
{
int c2 = tok_nextc(tok);
int token = PyToken_TwoChars(c, c2);
+#ifndef PGEN
+ if (token == NOTEQUAL && c == '<') {
+ if (PyErr_WarnExplicit(PyExc_DeprecationWarning,
+ "<> not supported in 3.x",
+ tok->filename, tok->lineno,
+ NULL, NULL)) {
+ return ERRORTOKEN;
+ }
+ }
+#endif
if (token != OP) {
int c3 = tok_nextc(tok);
int token3 = PyToken_ThreeChars(c, c2, c3);
diff --git a/Python/ast.c b/Python/ast.c
index 5555cf7ddf..9354b59cb0 100644
--- a/Python/ast.c
+++ b/Python/ast.c
@@ -1336,10 +1336,14 @@ ast_for_atom(struct compiling *c, const node *n)
return Dict(keys, values, LINENO(n), n->n_col_offset, c->c_arena);
}
case BACKQUOTE: { /* repr */
- if (Py_Py3kWarningFlag &&
- PyErr_Warn(PyExc_DeprecationWarning,
- "backquote not supported in 3.x") < 0)
- return NULL;
+ if (Py_Py3kWarningFlag) {
+ if (PyErr_WarnExplicit(PyExc_DeprecationWarning,
+ "backquote not supported in 3.x",
+ "<unknown>", LINENO(n),
+ NULL, NULL)) {
+ ; //return NULL;
+ }
+ }
expr_ty expression = ast_for_testlist(c, CHILD(n, 1));
if (!expression)
return NULL;