[Python-checkins] r82401 - in python/branches/release26-maint: Lib/test/test_parser.py Misc/NEWS Modules/parsermodule.c

mark.dickinson python-checkins at python.org
Wed Jun 30 18:33:23 CEST 2010


Author: mark.dickinson
Date: Wed Jun 30 18:33:23 2010
New Revision: 82401

Log:
Merged revisions 82400 via svnmerge from 
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r82400 | mark.dickinson | 2010-06-30 17:27:57 +0100 (Wed, 30 Jun 2010) | 2 lines
  
  Issue #9125:  Update parser module for "except ... as ..." syntax.
........


Modified:
   python/branches/release26-maint/   (props changed)
   python/branches/release26-maint/Lib/test/test_parser.py
   python/branches/release26-maint/Misc/NEWS
   python/branches/release26-maint/Modules/parsermodule.c

Modified: python/branches/release26-maint/Lib/test/test_parser.py
==============================================================================
--- python/branches/release26-maint/Lib/test/test_parser.py	(original)
+++ python/branches/release26-maint/Lib/test/test_parser.py	Wed Jun 30 18:33:23 2010
@@ -210,6 +210,12 @@
         self.check_suite("try: pass\nexcept: pass\nelse: pass\n"
                          "finally: pass\n")
 
+    def test_except_clause(self):
+        self.check_suite("try: pass\nexcept: pass\n")
+        self.check_suite("try: pass\nexcept A: pass\n")
+        self.check_suite("try: pass\nexcept A, e: pass\n")
+        self.check_suite("try: pass\nexcept A as e: pass\n")
+
     def test_position(self):
         # An absolutely minimal test of position information.  Better
         # tests would be a big project.

Modified: python/branches/release26-maint/Misc/NEWS
==============================================================================
--- python/branches/release26-maint/Misc/NEWS	(original)
+++ python/branches/release26-maint/Misc/NEWS	Wed Jun 30 18:33:23 2010
@@ -73,6 +73,8 @@
 Library
 -------
 
+- Issue #9125: Add recognition of 'except ... as ...' syntax to parser module.
+
 - Issue #9085: email package version number bumped to its correct
   value of 4.0.2 (same as it was in 2.5).
 

Modified: python/branches/release26-maint/Modules/parsermodule.c
==============================================================================
--- python/branches/release26-maint/Modules/parsermodule.c	(original)
+++ python/branches/release26-maint/Modules/parsermodule.c	Wed Jun 30 18:33:23 2010
@@ -2126,10 +2126,13 @@
 
     if (res && (nch > 1))
         res = validate_test(CHILD(tree, 1));
-    if (res && (nch == 4))
-        res = (validate_comma(CHILD(tree, 2))
-               && validate_test(CHILD(tree, 3)));
-
+    if (res && (nch == 4)) {
+        if (TYPE(CHILD(tree, 2)) == NAME)
+            res = validate_name(CHILD(tree, 2), "as");
+        else
+            res = validate_comma(CHILD(tree, 2));
+        res = res && validate_test(CHILD(tree, 3));
+    }
     return (res);
 }
 


More information about the Python-checkins mailing list