mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 07:31:38 +00:00 
			
		
		
		
	Backport PEP 3110's new 'except' syntax to 2.6.
This commit is contained in:
		
							parent
							
								
									6eb7bede72
								
							
						
					
					
						commit
						6290305e67
					
				
					 6 changed files with 12 additions and 7 deletions
				
			
		| 
						 | 
					@ -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 @@ def com_try_except_finally(self, nodelist):
 | 
				
			||||||
        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 @@ def __getitem__(self, i):
 | 
				
			||||||
    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 @@ def testTry(self):
 | 
				
			||||||
            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…
	
	Add table
		Add a link
		
	
		Reference in a new issue