[New-bugs-announce] [issue30299] Display the bytecode when compiled a regular expression in debug mode

Serhiy Storchaka report at bugs.python.org
Sun May 7 11:27:38 EDT 2017


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 <report at bugs.python.org>
<http://bugs.python.org/issue30299>
_______________________________________


More information about the New-bugs-announce mailing list