@@ -64,88 +64,89 @@ def __repr__(self):
64
64
65
65
MAXREPEAT = _NamedIntConstant (MAXREPEAT , 'MAXREPEAT' )
66
66
67
- def _makecodes (names ):
68
- names = names .strip ().split ()
67
+ def _makecodes (* names ):
69
68
items = [_NamedIntConstant (i , name ) for i , name in enumerate (names )]
70
69
globals ().update ({item .name : item for item in items })
71
70
return items
72
71
73
72
# 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
+ )
122
123
del OPCODES [- 2 :] # remove MIN_REPEAT and MAX_REPEAT
123
124
124
125
# 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' ,
129
130
130
- AT_LOC_BOUNDARY AT_LOC_NON_BOUNDARY
131
+ ' AT_LOC_BOUNDARY' , ' AT_LOC_NON_BOUNDARY' ,
131
132
132
- AT_UNI_BOUNDARY AT_UNI_NON_BOUNDARY
133
- """ )
133
+ ' AT_UNI_BOUNDARY' , ' AT_UNI_NON_BOUNDARY' ,
134
+ )
134
135
135
136
# 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
+ )
149
150
150
151
151
152
# replacement operations for "ignore case" mode
0 commit comments