]> git.proxmox.com Git - mirror_edk2.git/blame - AppPkg/Applications/Python/Python-2.7.10/Lib/sre_constants.py
EmbeddedPkg: Extend NvVarStoreFormattedLib LIBRARY_CLASS
[mirror_edk2.git] / AppPkg / Applications / Python / Python-2.7.10 / Lib / sre_constants.py
CommitLineData
3257aa99
DM
1#\r
2# Secret Labs' Regular Expression Engine\r
3#\r
4# various symbols used by the regular expression engine.\r
5# run this script to update the _sre include files!\r
6#\r
7# Copyright (c) 1998-2001 by Secret Labs AB. All rights reserved.\r
8#\r
9# See the sre.py file for information on usage and redistribution.\r
10#\r
11\r
12"""Internal support module for sre"""\r
13\r
14# update when constants are added or removed\r
15\r
16MAGIC = 20031017\r
17\r
18try:\r
19 from _sre import MAXREPEAT\r
20except ImportError:\r
21 import _sre\r
22 MAXREPEAT = _sre.MAXREPEAT = 65535\r
23\r
24# SRE standard exception (access as sre.error)\r
25# should this really be here?\r
26\r
27class error(Exception):\r
28 pass\r
29\r
30# operators\r
31\r
32FAILURE = "failure"\r
33SUCCESS = "success"\r
34\r
35ANY = "any"\r
36ANY_ALL = "any_all"\r
37ASSERT = "assert"\r
38ASSERT_NOT = "assert_not"\r
39AT = "at"\r
40BIGCHARSET = "bigcharset"\r
41BRANCH = "branch"\r
42CALL = "call"\r
43CATEGORY = "category"\r
44CHARSET = "charset"\r
45GROUPREF = "groupref"\r
46GROUPREF_IGNORE = "groupref_ignore"\r
47GROUPREF_EXISTS = "groupref_exists"\r
48IN = "in"\r
49IN_IGNORE = "in_ignore"\r
50INFO = "info"\r
51JUMP = "jump"\r
52LITERAL = "literal"\r
53LITERAL_IGNORE = "literal_ignore"\r
54MARK = "mark"\r
55MAX_REPEAT = "max_repeat"\r
56MAX_UNTIL = "max_until"\r
57MIN_REPEAT = "min_repeat"\r
58MIN_UNTIL = "min_until"\r
59NEGATE = "negate"\r
60NOT_LITERAL = "not_literal"\r
61NOT_LITERAL_IGNORE = "not_literal_ignore"\r
62RANGE = "range"\r
63REPEAT = "repeat"\r
64REPEAT_ONE = "repeat_one"\r
65SUBPATTERN = "subpattern"\r
66MIN_REPEAT_ONE = "min_repeat_one"\r
67\r
68# positions\r
69AT_BEGINNING = "at_beginning"\r
70AT_BEGINNING_LINE = "at_beginning_line"\r
71AT_BEGINNING_STRING = "at_beginning_string"\r
72AT_BOUNDARY = "at_boundary"\r
73AT_NON_BOUNDARY = "at_non_boundary"\r
74AT_END = "at_end"\r
75AT_END_LINE = "at_end_line"\r
76AT_END_STRING = "at_end_string"\r
77AT_LOC_BOUNDARY = "at_loc_boundary"\r
78AT_LOC_NON_BOUNDARY = "at_loc_non_boundary"\r
79AT_UNI_BOUNDARY = "at_uni_boundary"\r
80AT_UNI_NON_BOUNDARY = "at_uni_non_boundary"\r
81\r
82# categories\r
83CATEGORY_DIGIT = "category_digit"\r
84CATEGORY_NOT_DIGIT = "category_not_digit"\r
85CATEGORY_SPACE = "category_space"\r
86CATEGORY_NOT_SPACE = "category_not_space"\r
87CATEGORY_WORD = "category_word"\r
88CATEGORY_NOT_WORD = "category_not_word"\r
89CATEGORY_LINEBREAK = "category_linebreak"\r
90CATEGORY_NOT_LINEBREAK = "category_not_linebreak"\r
91CATEGORY_LOC_WORD = "category_loc_word"\r
92CATEGORY_LOC_NOT_WORD = "category_loc_not_word"\r
93CATEGORY_UNI_DIGIT = "category_uni_digit"\r
94CATEGORY_UNI_NOT_DIGIT = "category_uni_not_digit"\r
95CATEGORY_UNI_SPACE = "category_uni_space"\r
96CATEGORY_UNI_NOT_SPACE = "category_uni_not_space"\r
97CATEGORY_UNI_WORD = "category_uni_word"\r
98CATEGORY_UNI_NOT_WORD = "category_uni_not_word"\r
99CATEGORY_UNI_LINEBREAK = "category_uni_linebreak"\r
100CATEGORY_UNI_NOT_LINEBREAK = "category_uni_not_linebreak"\r
101\r
102OPCODES = [\r
103\r
104 # failure=0 success=1 (just because it looks better that way :-)\r
105 FAILURE, SUCCESS,\r
106\r
107 ANY, ANY_ALL,\r
108 ASSERT, ASSERT_NOT,\r
109 AT,\r
110 BRANCH,\r
111 CALL,\r
112 CATEGORY,\r
113 CHARSET, BIGCHARSET,\r
114 GROUPREF, GROUPREF_EXISTS, GROUPREF_IGNORE,\r
115 IN, IN_IGNORE,\r
116 INFO,\r
117 JUMP,\r
118 LITERAL, LITERAL_IGNORE,\r
119 MARK,\r
120 MAX_UNTIL,\r
121 MIN_UNTIL,\r
122 NOT_LITERAL, NOT_LITERAL_IGNORE,\r
123 NEGATE,\r
124 RANGE,\r
125 REPEAT,\r
126 REPEAT_ONE,\r
127 SUBPATTERN,\r
128 MIN_REPEAT_ONE\r
129\r
130]\r
131\r
132ATCODES = [\r
133 AT_BEGINNING, AT_BEGINNING_LINE, AT_BEGINNING_STRING, AT_BOUNDARY,\r
134 AT_NON_BOUNDARY, AT_END, AT_END_LINE, AT_END_STRING,\r
135 AT_LOC_BOUNDARY, AT_LOC_NON_BOUNDARY, AT_UNI_BOUNDARY,\r
136 AT_UNI_NON_BOUNDARY\r
137]\r
138\r
139CHCODES = [\r
140 CATEGORY_DIGIT, CATEGORY_NOT_DIGIT, CATEGORY_SPACE,\r
141 CATEGORY_NOT_SPACE, CATEGORY_WORD, CATEGORY_NOT_WORD,\r
142 CATEGORY_LINEBREAK, CATEGORY_NOT_LINEBREAK, CATEGORY_LOC_WORD,\r
143 CATEGORY_LOC_NOT_WORD, CATEGORY_UNI_DIGIT, CATEGORY_UNI_NOT_DIGIT,\r
144 CATEGORY_UNI_SPACE, CATEGORY_UNI_NOT_SPACE, CATEGORY_UNI_WORD,\r
145 CATEGORY_UNI_NOT_WORD, CATEGORY_UNI_LINEBREAK,\r
146 CATEGORY_UNI_NOT_LINEBREAK\r
147]\r
148\r
149def makedict(list):\r
150 d = {}\r
151 i = 0\r
152 for item in list:\r
153 d[item] = i\r
154 i = i + 1\r
155 return d\r
156\r
157OPCODES = makedict(OPCODES)\r
158ATCODES = makedict(ATCODES)\r
159CHCODES = makedict(CHCODES)\r
160\r
161# replacement operations for "ignore case" mode\r
162OP_IGNORE = {\r
163 GROUPREF: GROUPREF_IGNORE,\r
164 IN: IN_IGNORE,\r
165 LITERAL: LITERAL_IGNORE,\r
166 NOT_LITERAL: NOT_LITERAL_IGNORE\r
167}\r
168\r
169AT_MULTILINE = {\r
170 AT_BEGINNING: AT_BEGINNING_LINE,\r
171 AT_END: AT_END_LINE\r
172}\r
173\r
174AT_LOCALE = {\r
175 AT_BOUNDARY: AT_LOC_BOUNDARY,\r
176 AT_NON_BOUNDARY: AT_LOC_NON_BOUNDARY\r
177}\r
178\r
179AT_UNICODE = {\r
180 AT_BOUNDARY: AT_UNI_BOUNDARY,\r
181 AT_NON_BOUNDARY: AT_UNI_NON_BOUNDARY\r
182}\r
183\r
184CH_LOCALE = {\r
185 CATEGORY_DIGIT: CATEGORY_DIGIT,\r
186 CATEGORY_NOT_DIGIT: CATEGORY_NOT_DIGIT,\r
187 CATEGORY_SPACE: CATEGORY_SPACE,\r
188 CATEGORY_NOT_SPACE: CATEGORY_NOT_SPACE,\r
189 CATEGORY_WORD: CATEGORY_LOC_WORD,\r
190 CATEGORY_NOT_WORD: CATEGORY_LOC_NOT_WORD,\r
191 CATEGORY_LINEBREAK: CATEGORY_LINEBREAK,\r
192 CATEGORY_NOT_LINEBREAK: CATEGORY_NOT_LINEBREAK\r
193}\r
194\r
195CH_UNICODE = {\r
196 CATEGORY_DIGIT: CATEGORY_UNI_DIGIT,\r
197 CATEGORY_NOT_DIGIT: CATEGORY_UNI_NOT_DIGIT,\r
198 CATEGORY_SPACE: CATEGORY_UNI_SPACE,\r
199 CATEGORY_NOT_SPACE: CATEGORY_UNI_NOT_SPACE,\r
200 CATEGORY_WORD: CATEGORY_UNI_WORD,\r
201 CATEGORY_NOT_WORD: CATEGORY_UNI_NOT_WORD,\r
202 CATEGORY_LINEBREAK: CATEGORY_UNI_LINEBREAK,\r
203 CATEGORY_NOT_LINEBREAK: CATEGORY_UNI_NOT_LINEBREAK\r
204}\r
205\r
206# flags\r
207SRE_FLAG_TEMPLATE = 1 # template mode (disable backtracking)\r
208SRE_FLAG_IGNORECASE = 2 # case insensitive\r
209SRE_FLAG_LOCALE = 4 # honour system locale\r
210SRE_FLAG_MULTILINE = 8 # treat target as multiline string\r
211SRE_FLAG_DOTALL = 16 # treat target as a single string\r
212SRE_FLAG_UNICODE = 32 # use unicode locale\r
213SRE_FLAG_VERBOSE = 64 # ignore whitespace and comments\r
214SRE_FLAG_DEBUG = 128 # debugging\r
215\r
216# flags for INFO primitive\r
217SRE_INFO_PREFIX = 1 # has prefix\r
218SRE_INFO_LITERAL = 2 # entire pattern is literal (given by prefix)\r
219SRE_INFO_CHARSET = 4 # pattern starts with character from given set\r
220\r
221if __name__ == "__main__":\r
222 def dump(f, d, prefix):\r
223 items = d.items()\r
224 items.sort(key=lambda a: a[1])\r
225 for k, v in items:\r
226 f.write("#define %s_%s %s\n" % (prefix, k.upper(), v))\r
227 f = open("sre_constants.h", "w")\r
228 f.write("""\\r
229/*\r
230 * Secret Labs' Regular Expression Engine\r
231 *\r
232 * regular expression matching engine\r
233 *\r
234 * NOTE: This file is generated by sre_constants.py. If you need\r
235 * to change anything in here, edit sre_constants.py and run it.\r
236 *\r
237 * Copyright (c) 1997-2001 by Secret Labs AB. All rights reserved.\r
238 *\r
239 * See the _sre.c file for information on usage and redistribution.\r
240 */\r
241\r
242""")\r
243\r
244 f.write("#define SRE_MAGIC %d\n" % MAGIC)\r
245\r
246 dump(f, OPCODES, "SRE_OP")\r
247 dump(f, ATCODES, "SRE")\r
248 dump(f, CHCODES, "SRE")\r
249\r
250 f.write("#define SRE_FLAG_TEMPLATE %d\n" % SRE_FLAG_TEMPLATE)\r
251 f.write("#define SRE_FLAG_IGNORECASE %d\n" % SRE_FLAG_IGNORECASE)\r
252 f.write("#define SRE_FLAG_LOCALE %d\n" % SRE_FLAG_LOCALE)\r
253 f.write("#define SRE_FLAG_MULTILINE %d\n" % SRE_FLAG_MULTILINE)\r
254 f.write("#define SRE_FLAG_DOTALL %d\n" % SRE_FLAG_DOTALL)\r
255 f.write("#define SRE_FLAG_UNICODE %d\n" % SRE_FLAG_UNICODE)\r
256 f.write("#define SRE_FLAG_VERBOSE %d\n" % SRE_FLAG_VERBOSE)\r
257\r
258 f.write("#define SRE_INFO_PREFIX %d\n" % SRE_INFO_PREFIX)\r
259 f.write("#define SRE_INFO_LITERAL %d\n" % SRE_INFO_LITERAL)\r
260 f.write("#define SRE_INFO_CHARSET %d\n" % SRE_INFO_CHARSET)\r
261\r
262 f.close()\r
263 print "done"\r