Message293198
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. |
|
Date |
User |
Action |
Args |
2017-05-07 15:27:38 | serhiy.storchaka | set | recipients:
+ serhiy.storchaka, ezio.melotti, mrabarnett |
2017-05-07 15:27:38 | serhiy.storchaka | set | messageid: <1494170858.78.0.223872265764.issue30299@psf.upfronthosting.co.za> |
2017-05-07 15:27:38 | serhiy.storchaka | link | issue30299 messages |
2017-05-07 15:27:38 | serhiy.storchaka | create | |
|