@@ -64,88 +64,89 @@ def __repr__(self):
6464
6565MAXREPEAT = _NamedIntConstant (MAXREPEAT , 'MAXREPEAT' )
6666
67- def _makecodes (names ):
68- names = names .strip ().split ()
67+ def _makecodes (* names ):
6968 items = [_NamedIntConstant (i , name ) for i , name in enumerate (names )]
7069 globals ().update ({item .name : item for item in items })
7170 return items
7271
7372# operators
74- # failure=0 success=1 (just because it looks better that way :-)
75- OPCODES = _makecodes ("""
76- FAILURE SUCCESS
77-
78- ANY ANY_ALL
79- ASSERT ASSERT_NOT
80- AT
81- BRANCH
82- CALL
83- CATEGORY
84- CHARSET BIGCHARSET
85- GROUPREF GROUPREF_EXISTS
86- IN
87- INFO
88- JUMP
89- LITERAL
90- MARK
91- MAX_UNTIL
92- MIN_UNTIL
93- NOT_LITERAL
94- NEGATE
95- RANGE
96- REPEAT
97- REPEAT_ONE
98- SUBPATTERN
99- MIN_REPEAT_ONE
100- ATOMIC_GROUP
101- POSSESSIVE_REPEAT
102- POSSESSIVE_REPEAT_ONE
103-
104- GROUPREF_IGNORE
105- IN_IGNORE
106- LITERAL_IGNORE
107- NOT_LITERAL_IGNORE
108-
109- GROUPREF_LOC_IGNORE
110- IN_LOC_IGNORE
111- LITERAL_LOC_IGNORE
112- NOT_LITERAL_LOC_IGNORE
113-
114- GROUPREF_UNI_IGNORE
115- IN_UNI_IGNORE
116- LITERAL_UNI_IGNORE
117- NOT_LITERAL_UNI_IGNORE
118- RANGE_UNI_IGNORE
119-
120- MIN_REPEAT MAX_REPEAT
121- """ )
73+ OPCODES = _makecodes (
74+ # failure=0 success=1 (just because it looks better that way :-)
75+ 'FAILURE' , 'SUCCESS' ,
76+
77+ 'ANY' , 'ANY_ALL' ,
78+ 'ASSERT' , 'ASSERT_NOT' ,
79+ 'AT' ,
80+ 'BRANCH' ,
81+ 'CALL' ,
82+ 'CATEGORY' ,
83+ 'CHARSET' , 'BIGCHARSET' ,
84+ 'GROUPREF' , 'GROUPREF_EXISTS' ,
85+ 'IN' ,
86+ 'INFO' ,
87+ 'JUMP' ,
88+ 'LITERAL' ,
89+ 'MARK' ,
90+ 'MAX_UNTIL' ,
91+ 'MIN_UNTIL' ,
92+ 'NOT_LITERAL' ,
93+ 'NEGATE' ,
94+ 'RANGE' ,
95+ 'REPEAT' ,
96+ 'REPEAT_ONE' ,
97+ 'SUBPATTERN' ,
98+ 'MIN_REPEAT_ONE' ,
99+ 'ATOMIC_GROUP' ,
100+ 'POSSESSIVE_REPEAT' ,
101+ 'POSSESSIVE_REPEAT_ONE' ,
102+
103+ 'GROUPREF_IGNORE' ,
104+ 'IN_IGNORE' ,
105+ 'LITERAL_IGNORE' ,
106+ 'NOT_LITERAL_IGNORE' ,
107+
108+ 'GROUPREF_LOC_IGNORE' ,
109+ 'IN_LOC_IGNORE' ,
110+ 'LITERAL_LOC_IGNORE' ,
111+ 'NOT_LITERAL_LOC_IGNORE' ,
112+
113+ 'GROUPREF_UNI_IGNORE' ,
114+ 'IN_UNI_IGNORE' ,
115+ 'LITERAL_UNI_IGNORE' ,
116+ 'NOT_LITERAL_UNI_IGNORE' ,
117+ 'RANGE_UNI_IGNORE' ,
118+
119+ # The following opcodes are only occurred in the parser output,
120+ # but not in the compiled code.
121+ 'MIN_REPEAT' , 'MAX_REPEAT' ,
122+ )
122123del OPCODES [- 2 :] # remove MIN_REPEAT and MAX_REPEAT
123124
124125# positions
125- ATCODES = _makecodes ("""
126- AT_BEGINNING AT_BEGINNING_LINE AT_BEGINNING_STRING
127- AT_BOUNDARY AT_NON_BOUNDARY
128- AT_END AT_END_LINE AT_END_STRING
126+ ATCODES = _makecodes (
127+ ' AT_BEGINNING' , ' AT_BEGINNING_LINE' , ' AT_BEGINNING_STRING' ,
128+ ' AT_BOUNDARY' , ' AT_NON_BOUNDARY' ,
129+ ' AT_END' , ' AT_END_LINE' , ' AT_END_STRING' ,
129130
130- AT_LOC_BOUNDARY AT_LOC_NON_BOUNDARY
131+ ' AT_LOC_BOUNDARY' , ' AT_LOC_NON_BOUNDARY' ,
131132
132- AT_UNI_BOUNDARY AT_UNI_NON_BOUNDARY
133- """ )
133+ ' AT_UNI_BOUNDARY' , ' AT_UNI_NON_BOUNDARY' ,
134+ )
134135
135136# categories
136- CHCODES = _makecodes ("""
137- CATEGORY_DIGIT CATEGORY_NOT_DIGIT
138- CATEGORY_SPACE CATEGORY_NOT_SPACE
139- CATEGORY_WORD CATEGORY_NOT_WORD
140- CATEGORY_LINEBREAK CATEGORY_NOT_LINEBREAK
141-
142- CATEGORY_LOC_WORD CATEGORY_LOC_NOT_WORD
143-
144- CATEGORY_UNI_DIGIT CATEGORY_UNI_NOT_DIGIT
145- CATEGORY_UNI_SPACE CATEGORY_UNI_NOT_SPACE
146- CATEGORY_UNI_WORD CATEGORY_UNI_NOT_WORD
147- CATEGORY_UNI_LINEBREAK CATEGORY_UNI_NOT_LINEBREAK
148- """ )
137+ CHCODES = _makecodes (
138+ ' CATEGORY_DIGIT' , ' CATEGORY_NOT_DIGIT' ,
139+ ' CATEGORY_SPACE' , ' CATEGORY_NOT_SPACE' ,
140+ ' CATEGORY_WORD' , ' CATEGORY_NOT_WORD' ,
141+ ' CATEGORY_LINEBREAK' , ' CATEGORY_NOT_LINEBREAK' ,
142+
143+ ' CATEGORY_LOC_WORD' , ' CATEGORY_LOC_NOT_WORD' ,
144+
145+ ' CATEGORY_UNI_DIGIT' , ' CATEGORY_UNI_NOT_DIGIT' ,
146+ ' CATEGORY_UNI_SPACE' , ' CATEGORY_UNI_NOT_SPACE' ,
147+ ' CATEGORY_UNI_WORD' , ' CATEGORY_UNI_NOT_WORD' ,
148+ ' CATEGORY_UNI_LINEBREAK' , ' CATEGORY_UNI_NOT_LINEBREAK' ,
149+ )
149150
150151
151152# replacement operations for "ignore case" mode
0 commit comments