Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit c7f7d38

Browse files
Issue #22434: Constants in sre_constants are now named constants (enum-like).
1 parent bf764a1 commit c7f7d38

4 files changed

Lines changed: 130 additions & 189 deletions

File tree

Lib/sre_compile.py

Lines changed: 37 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import _sre
1414
import sre_parse
1515
from sre_constants import *
16-
from _sre import MAXREPEAT
1716

1817
assert _sre.MAGIC == MAGIC, "SRE module mismatch"
1918

@@ -38,65 +37,65 @@ def _compile(code, pattern, flags):
3837
for op, av in pattern:
3938
if op in LITERAL_CODES:
4039
if flags & SRE_FLAG_IGNORECASE:
41-
emit(OPCODES[OP_IGNORE[op]])
40+
emit(OP_IGNORE[op])
4241
emit(_sre.getlower(av, flags))
4342
else:
44-
emit(OPCODES[op])
43+
emit(op)
4544
emit(av)
4645
elif op is IN:
4746
if flags & SRE_FLAG_IGNORECASE:
48-
emit(OPCODES[OP_IGNORE[op]])
47+
emit(OP_IGNORE[op])
4948
def fixup(literal, flags=flags):
5049
return _sre.getlower(literal, flags)
5150
else:
52-
emit(OPCODES[op])
51+
emit(op)
5352
fixup = None
5453
skip = _len(code); emit(0)
5554
_compile_charset(av, flags, code, fixup)
5655
code[skip] = _len(code) - skip
5756
elif op is ANY:
5857
if flags & SRE_FLAG_DOTALL:
59-
emit(OPCODES[ANY_ALL])
58+
emit(ANY_ALL)
6059
else:
61-
emit(OPCODES[ANY])
60+
emit(ANY)
6261
elif op in REPEATING_CODES:
6362
if flags & SRE_FLAG_TEMPLATE:
6463
raise error("internal: unsupported template operator")
6564
elif _simple(av) and op is not REPEAT:
6665
if op is MAX_REPEAT:
67-
emit(OPCODES[REPEAT_ONE])
66+
emit(REPEAT_ONE)
6867
else:
69-
emit(OPCODES[MIN_REPEAT_ONE])
68+
emit(MIN_REPEAT_ONE)
7069
skip = _len(code); emit(0)
7170
emit(av[0])
7271
emit(av[1])
7372
_compile(code, av[2], flags)
74-
emit(OPCODES[SUCCESS])
73+
emit(SUCCESS)
7574
code[skip] = _len(code) - skip
7675
else:
77-
emit(OPCODES[REPEAT])
76+
emit(REPEAT)
7877
skip = _len(code); emit(0)
7978
emit(av[0])
8079
emit(av[1])
8180
_compile(code, av[2], flags)
8281
code[skip] = _len(code) - skip
8382
if op is MAX_REPEAT:
84-
emit(OPCODES[MAX_UNTIL])
83+
emit(MAX_UNTIL)
8584
else:
86-
emit(OPCODES[MIN_UNTIL])
85+
emit(MIN_UNTIL)
8786
elif op is SUBPATTERN:
8887
if av[0]:
89-
emit(OPCODES[MARK])
88+
emit(MARK)
9089
emit((av[0]-1)*2)
9190
# _compile_info(code, av[1], flags)
9291
_compile(code, av[1], flags)
9392
if av[0]:
94-
emit(OPCODES[MARK])
93+
emit(MARK)
9594
emit((av[0]-1)*2+1)
9695
elif op in SUCCESS_CODES:
97-
emit(OPCODES[op])
96+
emit(op)
9897
elif op in ASSERT_CODES:
99-
emit(OPCODES[op])
98+
emit(op)
10099
skip = _len(code); emit(0)
101100
if av[0] >= 0:
102101
emit(0) # look ahead
@@ -106,57 +105,57 @@ def fixup(literal, flags=flags):
106105
raise error("look-behind requires fixed-width pattern")
107106
emit(lo) # look behind
108107
_compile(code, av[1], flags)
109-
emit(OPCODES[SUCCESS])
108+
emit(SUCCESS)
110109
code[skip] = _len(code) - skip
111110
elif op is CALL:
112-
emit(OPCODES[op])
111+
emit(op)
113112
skip = _len(code); emit(0)
114113
_compile(code, av, flags)
115-
emit(OPCODES[SUCCESS])
114+
emit(SUCCESS)
116115
code[skip] = _len(code) - skip
117116
elif op is AT:
118-
emit(OPCODES[op])
117+
emit(op)
119118
if flags & SRE_FLAG_MULTILINE:
120119
av = AT_MULTILINE.get(av, av)
121120
if flags & SRE_FLAG_LOCALE:
122121
av = AT_LOCALE.get(av, av)
123122
elif flags & SRE_FLAG_UNICODE:
124123
av = AT_UNICODE.get(av, av)
125-
emit(ATCODES[av])
124+
emit(av)
126125
elif op is BRANCH:
127-
emit(OPCODES[op])
126+
emit(op)
128127
tail = []
129128
tailappend = tail.append
130129
for av in av[1]:
131130
skip = _len(code); emit(0)
132131
# _compile_info(code, av, flags)
133132
_compile(code, av, flags)
134-
emit(OPCODES[JUMP])
133+
emit(JUMP)
135134
tailappend(_len(code)); emit(0)
136135
code[skip] = _len(code) - skip
137136
emit(0) # end of branch
138137
for tail in tail:
139138
code[tail] = _len(code) - tail
140139
elif op is CATEGORY:
141-
emit(OPCODES[op])
140+
emit(op)
142141
if flags & SRE_FLAG_LOCALE:
143142
av = CH_LOCALE[av]
144143
elif flags & SRE_FLAG_UNICODE:
145144
av = CH_UNICODE[av]
146-
emit(CHCODES[av])
145+
emit(av)
147146
elif op is GROUPREF:
148147
if flags & SRE_FLAG_IGNORECASE:
149-
emit(OPCODES[OP_IGNORE[op]])
148+
emit(OP_IGNORE[op])
150149
else:
151-
emit(OPCODES[op])
150+
emit(op)
152151
emit(av-1)
153152
elif op is GROUPREF_EXISTS:
154-
emit(OPCODES[op])
153+
emit(op)
155154
emit(av[0]-1)
156155
skipyes = _len(code); emit(0)
157156
_compile(code, av[1], flags)
158157
if av[2]:
159-
emit(OPCODES[JUMP])
158+
emit(JUMP)
160159
skipno = _len(code); emit(0)
161160
code[skipyes] = _len(code) - skipyes + 1
162161
_compile(code, av[2], flags)
@@ -170,7 +169,7 @@ def _compile_charset(charset, flags, code, fixup=None):
170169
# compile charset subprogram
171170
emit = code.append
172171
for op, av in _optimize_charset(charset, fixup):
173-
emit(OPCODES[op])
172+
emit(op)
174173
if op is NEGATE:
175174
pass
176175
elif op is LITERAL:
@@ -184,14 +183,14 @@ def _compile_charset(charset, flags, code, fixup=None):
184183
code.extend(av)
185184
elif op is CATEGORY:
186185
if flags & SRE_FLAG_LOCALE:
187-
emit(CHCODES[CH_LOCALE[av]])
186+
emit(CH_LOCALE[av])
188187
elif flags & SRE_FLAG_UNICODE:
189-
emit(CHCODES[CH_UNICODE[av]])
188+
emit(CH_UNICODE[av])
190189
else:
191-
emit(CHCODES[av])
190+
emit(av)
192191
else:
193192
raise error("internal: unsupported set operator")
194-
emit(OPCODES[FAILURE])
193+
emit(FAILURE)
195194

196195
def _optimize_charset(charset, fixup):
197196
# internal: optimize character set
@@ -414,7 +413,7 @@ def _compile_info(code, pattern, flags):
414413
## print "*** CHARSET", charset
415414
# add an info block
416415
emit = code.append
417-
emit(OPCODES[INFO])
416+
emit(INFO)
418417
skip = len(code); emit(0)
419418
# literal flag
420419
mask = 0
@@ -460,7 +459,7 @@ def _code(p, flags):
460459
# compile the pattern
461460
_compile(code, p.data, flags)
462461

463-
code.append(OPCODES[SUCCESS])
462+
code.append(SUCCESS)
464463

465464
return code
466465

@@ -475,7 +474,7 @@ def compile(p, flags=0):
475474

476475
code = _code(p, flags)
477476

478-
# print code
477+
# print(code)
479478

480479
# map in either direction
481480
groupindex = p.pattern.groupdict

0 commit comments

Comments
 (0)