New submission from Serhiy Storchaka: Proposed patch makes compiling a regular expression in debug mode (with the re.DEBUG flag) displaying the bytecode in human readable form (in addition to the syntax tree). For example:
>>> re.compile('test_[a-z_]+', re.DEBUG) LITERAL 116 LITERAL 101 LITERAL 115 LITERAL 116 LITERAL 95 MAX_REPEAT 1 MAXREPEAT IN RANGE (97, 122) LITERAL 95 0. INFO 16 0b1 6 MAXREPEAT (to 17) prefix_skip 5 prefix [0x74, 0x65, 0x73, 0x74, 0x5f] ('test_') overlap [0, 0, 0, 1, 0] 17: LITERAL 0x74 ('t') 19. LITERAL 0x65 ('e') 21. LITERAL 0x73 ('s') 23. LITERAL 0x74 ('t') 25. LITERAL 0x5f ('_') 27. REPEAT_ONE 12 1 MAXREPEAT (to 40) 31. IN 7 (to 39) 33. RANGE 0x61 0x7a ('a'-'z') 36. LITERAL 0x5f ('_') 38. FAILURE 39: SUCCESS 40: SUCCESS re.compile('test_[a-z_]+', re.DEBUG) This feature is needed mainly for our own needs. It can help optimizing regular expression compilation. ---------- components: Library (Lib), Regular Expressions messages: 293198 nosy: ezio.melotti, mrabarnett, serhiy.storchaka priority: normal severity: normal stage: patch review status: open title: Display the bytecode when compiled a regular expression in debug mode type: enhancement versions: Python 3.7 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue30299> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com