]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-106510: Fix DEBUG output for atomic group (GH-106511)
authorSerhiy Storchaka <storchaka@gmail.com>
Sat, 8 Jul 2023 11:31:25 +0000 (14:31 +0300)
committerGitHub <noreply@github.com>
Sat, 8 Jul 2023 11:31:25 +0000 (14:31 +0300)
Lib/re/_parser.py
Lib/test/test_re.py
Misc/NEWS.d/next/Library/2023-07-07-13-47-28.gh-issue-106510.9n5BdC.rst [new file with mode: 0644]

index 6c8a4eccc0e0bb207149db3c6f579f6a298d22f5..22d10ab6e31d37f1ec2e59c787d9b46d9d1707dc 100644 (file)
@@ -113,7 +113,6 @@ class SubPattern:
         self.width = None
 
     def dump(self, level=0):
-        nl = True
         seqtypes = (tuple, list)
         for op, av in self.data:
             print(level*"  " + str(op), end='')
@@ -135,6 +134,9 @@ class SubPattern:
                 if item_no:
                     print(level*"  " + "ELSE")
                     item_no.dump(level+1)
+            elif isinstance(av, SubPattern):
+                print()
+                av.dump(level+1)
             elif isinstance(av, seqtypes):
                 nl = False
                 for a in av:
index 8f26d0aacf4eee1cc24bb9223544c572ef56bfca..b1699b0f83dbdddb3f1f7ccdc10cb3221c885434 100644 (file)
@@ -2489,7 +2489,10 @@ ELSE
 
     def test_atomic_group(self):
         self.assertEqual(get_debug_out(r'(?>ab?)'), '''\
-ATOMIC_GROUP [(LITERAL, 97), (MAX_REPEAT, (0, 1, [(LITERAL, 98)]))]
+ATOMIC_GROUP
+  LITERAL 97
+  MAX_REPEAT 0 1
+    LITERAL 98
 
  0. INFO 4 0b0 1 2 (to 5)
  5: ATOMIC_GROUP 11 (to 17)
diff --git a/Misc/NEWS.d/next/Library/2023-07-07-13-47-28.gh-issue-106510.9n5BdC.rst b/Misc/NEWS.d/next/Library/2023-07-07-13-47-28.gh-issue-106510.9n5BdC.rst
new file mode 100644 (file)
index 0000000..e0646fa
--- /dev/null
@@ -0,0 +1 @@
+Improve debug output for atomic groups in regular expressions.