mirror of https://github.com/python/cpython
Backport PEP 3110's new 'except' syntax to 2.6.
This commit is contained in:
parent
6eb7bede72
commit
6290305e67
|
@ -85,7 +85,7 @@ try_stmt: ('try' ':' suite
|
||||||
with_stmt: 'with' test [ with_var ] ':' suite
|
with_stmt: 'with' test [ with_var ] ':' suite
|
||||||
with_var: 'as' expr
|
with_var: 'as' expr
|
||||||
# NB compile.c makes sure that the default except clause is last
|
# NB compile.c makes sure that the default except clause is last
|
||||||
except_clause: 'except' [test [',' test]]
|
except_clause: 'except' [test [('as' | ',') test]]
|
||||||
suite: simple_stmt | NEWLINE INDENT stmt+ DEDENT
|
suite: simple_stmt | NEWLINE INDENT stmt+ DEDENT
|
||||||
|
|
||||||
# Backward compatibility cruft to support:
|
# Backward compatibility cruft to support:
|
||||||
|
|
|
@ -930,7 +930,7 @@ class Transformer:
|
||||||
for i in range(3, len(nodelist), 3):
|
for i in range(3, len(nodelist), 3):
|
||||||
node = nodelist[i]
|
node = nodelist[i]
|
||||||
if node[0] == symbol.except_clause:
|
if node[0] == symbol.except_clause:
|
||||||
# except_clause: 'except' [expr [',' expr]] */
|
# except_clause: 'except' [expr [(',' | 'as') expr]] */
|
||||||
if len(node) > 2:
|
if len(node) > 2:
|
||||||
expr1 = self.com_node(node[2])
|
expr1 = self.com_node(node[2])
|
||||||
if len(node) > 4:
|
if len(node) > 4:
|
||||||
|
|
|
@ -600,7 +600,7 @@ hello world
|
||||||
def testTry(self):
|
def testTry(self):
|
||||||
### try_stmt: 'try' ':' suite (except_clause ':' suite)+ ['else' ':' suite]
|
### try_stmt: 'try' ':' suite (except_clause ':' suite)+ ['else' ':' suite]
|
||||||
### | 'try' ':' suite 'finally' ':' suite
|
### | 'try' ':' suite 'finally' ':' suite
|
||||||
### except_clause: 'except' [expr [',' expr]]
|
### except_clause: 'except' [expr [('as' | ',') expr]]
|
||||||
try:
|
try:
|
||||||
1/0
|
1/0
|
||||||
except ZeroDivisionError:
|
except ZeroDivisionError:
|
||||||
|
@ -609,7 +609,7 @@ hello world
|
||||||
pass
|
pass
|
||||||
try: 1/0
|
try: 1/0
|
||||||
except EOFError: pass
|
except EOFError: pass
|
||||||
except TypeError, msg: pass
|
except TypeError as msg: pass
|
||||||
except RuntimeError, msg: pass
|
except RuntimeError, msg: pass
|
||||||
except: pass
|
except: pass
|
||||||
else: pass
|
else: pass
|
||||||
|
|
|
@ -12,6 +12,10 @@ What's New in Python 2.6 alpha 1?
|
||||||
Core and builtins
|
Core and builtins
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
|
- except clauses may now be spelled either "except E, target:" or
|
||||||
|
"except E as target:". This is to provide forwards compatibility with
|
||||||
|
Python 3.0.
|
||||||
|
|
||||||
- Deprecate BaseException.message as per PEP 352.
|
- Deprecate BaseException.message as per PEP 352.
|
||||||
|
|
||||||
- Bug #1303614: don't expose object's __dict__ when the dict is
|
- Bug #1303614: don't expose object's __dict__ when the dict is
|
||||||
|
|
|
@ -2765,7 +2765,7 @@ ast_for_for_stmt(struct compiling *c, const node *n)
|
||||||
static excepthandler_ty
|
static excepthandler_ty
|
||||||
ast_for_except_clause(struct compiling *c, const node *exc, node *body)
|
ast_for_except_clause(struct compiling *c, const node *exc, node *body)
|
||||||
{
|
{
|
||||||
/* except_clause: 'except' [test [',' test]] */
|
/* except_clause: 'except' [test [(',' | 'as') test]] */
|
||||||
REQ(exc, except_clause);
|
REQ(exc, except_clause);
|
||||||
REQ(body, suite);
|
REQ(body, suite);
|
||||||
|
|
||||||
|
|
|
@ -931,7 +931,8 @@ static arc arcs_42_1[2] = {
|
||||||
{26, 2},
|
{26, 2},
|
||||||
{0, 1},
|
{0, 1},
|
||||||
};
|
};
|
||||||
static arc arcs_42_2[2] = {
|
static arc arcs_42_2[3] = {
|
||||||
|
{78, 3},
|
||||||
{27, 3},
|
{27, 3},
|
||||||
{0, 2},
|
{0, 2},
|
||||||
};
|
};
|
||||||
|
@ -944,7 +945,7 @@ static arc arcs_42_4[1] = {
|
||||||
static state states_42[5] = {
|
static state states_42[5] = {
|
||||||
{1, arcs_42_0},
|
{1, arcs_42_0},
|
||||||
{2, arcs_42_1},
|
{2, arcs_42_1},
|
||||||
{2, arcs_42_2},
|
{3, arcs_42_2},
|
||||||
{1, arcs_42_3},
|
{1, arcs_42_3},
|
||||||
{1, arcs_42_4},
|
{1, arcs_42_4},
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue