Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

430 lines
13 KiB

  1. /* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
  2. This file is built by regcomp.pl from regcomp.sym.
  3. Any changes made here will be lost!
  4. */
  5. #define END 0 /* 0 End of program. */
  6. #define SUCCEED 1 /* 0x1 Return from a subroutine, basically. */
  7. #define BOL 2 /* 0x2 Match "" at beginning of line. */
  8. #define MBOL 3 /* 0x3 Same, assuming multiline. */
  9. #define SBOL 4 /* 0x4 Same, assuming singleline. */
  10. #define EOS 5 /* 0x5 Match "" at end of string. */
  11. #define EOL 6 /* 0x6 Match "" at end of line. */
  12. #define MEOL 7 /* 0x7 Same, assuming multiline. */
  13. #define SEOL 8 /* 0x8 Same, assuming singleline. */
  14. #define BOUND 9 /* 0x9 Match "" at any word boundary */
  15. #define BOUNDUTF8 10 /* 0xa Match "" at any word boundary */
  16. #define BOUNDL 11 /* 0xb Match "" at any word boundary */
  17. #define BOUNDLUTF8 12 /* 0xc Match "" at any word boundary */
  18. #define NBOUND 13 /* 0xd Match "" at any word non-boundary */
  19. #define NBOUNDUTF8 14 /* 0xe Match "" at any word non-boundary */
  20. #define NBOUNDL 15 /* 0xf Match "" at any word non-boundary */
  21. #define NBOUNDLUTF8 16 /* 0x10 Match "" at any word non-boundary */
  22. #define GPOS 17 /* 0x11 Matches where last m//g left off. */
  23. #define REG_ANY 18 /* 0x12 Match any one character (except newline). */
  24. #define ANYUTF8 19 /* 0x13 Match any one Unicode character (except newline). */
  25. #define SANY 20 /* 0x14 Match any one character. */
  26. #define SANYUTF8 21 /* 0x15 Match any one Unicode character. */
  27. #define ANYOF 22 /* 0x16 Match character in (or not in) this class. */
  28. #define ANYOFUTF8 23 /* 0x17 Match character in (or not in) this class. */
  29. #define ALNUM 24 /* 0x18 Match any alphanumeric character */
  30. #define ALNUMUTF8 25 /* 0x19 Match any alphanumeric character in utf8 */
  31. #define ALNUML 26 /* 0x1a Match any alphanumeric char in locale */
  32. #define ALNUMLUTF8 27 /* 0x1b Match any alphanumeric char in locale+utf8 */
  33. #define NALNUM 28 /* 0x1c Match any non-alphanumeric character */
  34. #define NALNUMUTF8 29 /* 0x1d Match any non-alphanumeric character in utf8 */
  35. #define NALNUML 30 /* 0x1e Match any non-alphanumeric char in locale */
  36. #define NALNUMLUTF8 31 /* 0x1f Match any non-alphanumeric char in locale+utf8 */
  37. #define SPACE 32 /* 0x20 Match any whitespace character */
  38. #define SPACEUTF8 33 /* 0x21 Match any whitespace character in utf8 */
  39. #define SPACEL 34 /* 0x22 Match any whitespace char in locale */
  40. #define SPACELUTF8 35 /* 0x23 Match any whitespace char in locale+utf8 */
  41. #define NSPACE 36 /* 0x24 Match any non-whitespace character */
  42. #define NSPACEUTF8 37 /* 0x25 Match any non-whitespace character in utf8 */
  43. #define NSPACEL 38 /* 0x26 Match any non-whitespace char in locale */
  44. #define NSPACELUTF8 39 /* 0x27 Match any non-whitespace char in locale+utf8 */
  45. #define DIGIT 40 /* 0x28 Match any numeric character */
  46. #define DIGITUTF8 41 /* 0x29 Match any numeric character in utf8 */
  47. #define DIGITL 42 /* 0x2a Match any numeric character in locale */
  48. #define DIGITLUTF8 43 /* 0x2b Match any numeric character in locale+utf8 */
  49. #define NDIGIT 44 /* 0x2c Match any non-numeric character */
  50. #define NDIGITUTF8 45 /* 0x2d Match any non-numeric character in utf8 */
  51. #define NDIGITL 46 /* 0x2e Match any non-numeric character in locale */
  52. #define NDIGITLUTF8 47 /* 0x2f Match any non-numeric character in locale+utf8 */
  53. #define CLUMP 48 /* 0x30 Match any combining character sequence */
  54. #define BRANCH 49 /* 0x31 Match this alternative, or the next... */
  55. #define BACK 50 /* 0x32 Match "", "next" ptr points backward. */
  56. #define EXACT 51 /* 0x33 Match this string (preceded by length). */
  57. #define EXACTF 52 /* 0x34 Match this string, folded (prec. by length). */
  58. #define EXACTFL 53 /* 0x35 Match this string, folded in locale (w/len). */
  59. #define NOTHING 54 /* 0x36 Match empty string. */
  60. #define TAIL 55 /* 0x37 Match empty string. Can jump here from outside. */
  61. #define STAR 56 /* 0x38 Match this (simple) thing 0 or more times. */
  62. #define PLUS 57 /* 0x39 Match this (simple) thing 1 or more times. */
  63. #define CURLY 58 /* 0x3a Match this simple thing {n,m} times. */
  64. #define CURLYN 59 /* 0x3b Match next-after-this simple thing */
  65. #define CURLYM 60 /* 0x3c Match this medium-complex thing {n,m} times. */
  66. #define CURLYX 61 /* 0x3d Match this complex thing {n,m} times. */
  67. #define WHILEM 62 /* 0x3e Do curly processing and see if rest matches. */
  68. #define OPEN 63 /* 0x3f Mark this point in input as start of #n. */
  69. #define CLOSE 64 /* 0x40 Analogous to OPEN. */
  70. #define REF 65 /* 0x41 Match some already matched string */
  71. #define REFF 66 /* 0x42 Match already matched string, folded */
  72. #define REFFL 67 /* 0x43 Match already matched string, folded in loc. */
  73. #define IFMATCH 68 /* 0x44 Succeeds if the following matches. */
  74. #define UNLESSM 69 /* 0x45 Fails if the following matches. */
  75. #define SUSPEND 70 /* 0x46 "Independent" sub-RE. */
  76. #define IFTHEN 71 /* 0x47 Switch, should be preceeded by switcher . */
  77. #define GROUPP 72 /* 0x48 Whether the group matched. */
  78. #define LONGJMP 73 /* 0x49 Jump far away. */
  79. #define BRANCHJ 74 /* 0x4a BRANCH with long offset. */
  80. #define EVAL 75 /* 0x4b Execute some Perl code. */
  81. #define MINMOD 76 /* 0x4c Next operator is not greedy. */
  82. #define LOGICAL 77 /* 0x4d Next opcode should set the flag only. */
  83. #define RENUM 78 /* 0x4e Group with independently numbered parens. */
  84. #define OPTIMIZED 79 /* 0x4f Placeholder for dump. */
  85. #ifndef DOINIT
  86. EXTCONST U8 PL_regkind[];
  87. #else
  88. EXTCONST U8 PL_regkind[] = {
  89. END, /* END */
  90. END, /* SUCCEED */
  91. BOL, /* BOL */
  92. BOL, /* MBOL */
  93. BOL, /* SBOL */
  94. EOL, /* EOS */
  95. EOL, /* EOL */
  96. EOL, /* MEOL */
  97. EOL, /* SEOL */
  98. BOUND, /* BOUND */
  99. BOUND, /* BOUNDUTF8 */
  100. BOUND, /* BOUNDL */
  101. BOUND, /* BOUNDLUTF8 */
  102. NBOUND, /* NBOUND */
  103. NBOUND, /* NBOUNDUTF8 */
  104. NBOUND, /* NBOUNDL */
  105. NBOUND, /* NBOUNDLUTF8 */
  106. GPOS, /* GPOS */
  107. REG_ANY, /* REG_ANY */
  108. REG_ANY, /* ANYUTF8 */
  109. REG_ANY, /* SANY */
  110. REG_ANY, /* SANYUTF8 */
  111. ANYOF, /* ANYOF */
  112. ANYOF, /* ANYOFUTF8 */
  113. ALNUM, /* ALNUM */
  114. ALNUM, /* ALNUMUTF8 */
  115. ALNUM, /* ALNUML */
  116. ALNUM, /* ALNUMLUTF8 */
  117. NALNUM, /* NALNUM */
  118. NALNUM, /* NALNUMUTF8 */
  119. NALNUM, /* NALNUML */
  120. NALNUM, /* NALNUMLUTF8 */
  121. SPACE, /* SPACE */
  122. SPACE, /* SPACEUTF8 */
  123. SPACE, /* SPACEL */
  124. SPACE, /* SPACELUTF8 */
  125. NSPACE, /* NSPACE */
  126. NSPACE, /* NSPACEUTF8 */
  127. NSPACE, /* NSPACEL */
  128. NSPACE, /* NSPACELUTF8 */
  129. DIGIT, /* DIGIT */
  130. DIGIT, /* DIGITUTF8 */
  131. DIGIT, /* DIGITL */
  132. DIGIT, /* DIGITLUTF8 */
  133. NDIGIT, /* NDIGIT */
  134. NDIGIT, /* NDIGITUTF8 */
  135. NDIGIT, /* NDIGITL */
  136. NDIGIT, /* NDIGITLUTF8 */
  137. CLUMP, /* CLUMP */
  138. BRANCH, /* BRANCH */
  139. BACK, /* BACK */
  140. EXACT, /* EXACT */
  141. EXACT, /* EXACTF */
  142. EXACT, /* EXACTFL */
  143. NOTHING, /* NOTHING */
  144. NOTHING, /* TAIL */
  145. STAR, /* STAR */
  146. PLUS, /* PLUS */
  147. CURLY, /* CURLY */
  148. CURLY, /* CURLYN */
  149. CURLY, /* CURLYM */
  150. CURLY, /* CURLYX */
  151. WHILEM, /* WHILEM */
  152. OPEN, /* OPEN */
  153. CLOSE, /* CLOSE */
  154. REF, /* REF */
  155. REF, /* REFF */
  156. REF, /* REFFL */
  157. BRANCHJ, /* IFMATCH */
  158. BRANCHJ, /* UNLESSM */
  159. BRANCHJ, /* SUSPEND */
  160. BRANCHJ, /* IFTHEN */
  161. GROUPP, /* GROUPP */
  162. LONGJMP, /* LONGJMP */
  163. BRANCHJ, /* BRANCHJ */
  164. EVAL, /* EVAL */
  165. MINMOD, /* MINMOD */
  166. LOGICAL, /* LOGICAL */
  167. BRANCHJ, /* RENUM */
  168. NOTHING, /* OPTIMIZED */
  169. };
  170. #endif
  171. #ifdef REG_COMP_C
  172. static const U8 regarglen[] = {
  173. 0, /* END */
  174. 0, /* SUCCEED */
  175. 0, /* BOL */
  176. 0, /* MBOL */
  177. 0, /* SBOL */
  178. 0, /* EOS */
  179. 0, /* EOL */
  180. 0, /* MEOL */
  181. 0, /* SEOL */
  182. 0, /* BOUND */
  183. 0, /* BOUNDUTF8 */
  184. 0, /* BOUNDL */
  185. 0, /* BOUNDLUTF8 */
  186. 0, /* NBOUND */
  187. 0, /* NBOUNDUTF8 */
  188. 0, /* NBOUNDL */
  189. 0, /* NBOUNDLUTF8 */
  190. 0, /* GPOS */
  191. 0, /* REG_ANY */
  192. 0, /* ANYUTF8 */
  193. 0, /* SANY */
  194. 0, /* SANYUTF8 */
  195. 0, /* ANYOF */
  196. EXTRA_SIZE(struct regnode_1), /* ANYOFUTF8 */
  197. 0, /* ALNUM */
  198. 0, /* ALNUMUTF8 */
  199. 0, /* ALNUML */
  200. 0, /* ALNUMLUTF8 */
  201. 0, /* NALNUM */
  202. 0, /* NALNUMUTF8 */
  203. 0, /* NALNUML */
  204. 0, /* NALNUMLUTF8 */
  205. 0, /* SPACE */
  206. 0, /* SPACEUTF8 */
  207. 0, /* SPACEL */
  208. 0, /* SPACELUTF8 */
  209. 0, /* NSPACE */
  210. 0, /* NSPACEUTF8 */
  211. 0, /* NSPACEL */
  212. 0, /* NSPACELUTF8 */
  213. 0, /* DIGIT */
  214. 0, /* DIGITUTF8 */
  215. 0, /* DIGITL */
  216. 0, /* DIGITLUTF8 */
  217. 0, /* NDIGIT */
  218. 0, /* NDIGITUTF8 */
  219. 0, /* NDIGITL */
  220. 0, /* NDIGITLUTF8 */
  221. 0, /* CLUMP */
  222. 0, /* BRANCH */
  223. 0, /* BACK */
  224. 0, /* EXACT */
  225. 0, /* EXACTF */
  226. 0, /* EXACTFL */
  227. 0, /* NOTHING */
  228. 0, /* TAIL */
  229. 0, /* STAR */
  230. 0, /* PLUS */
  231. EXTRA_SIZE(struct regnode_2), /* CURLY */
  232. EXTRA_SIZE(struct regnode_2), /* CURLYN */
  233. EXTRA_SIZE(struct regnode_2), /* CURLYM */
  234. EXTRA_SIZE(struct regnode_2), /* CURLYX */
  235. 0, /* WHILEM */
  236. EXTRA_SIZE(struct regnode_1), /* OPEN */
  237. EXTRA_SIZE(struct regnode_1), /* CLOSE */
  238. EXTRA_SIZE(struct regnode_1), /* REF */
  239. EXTRA_SIZE(struct regnode_1), /* REFF */
  240. EXTRA_SIZE(struct regnode_1), /* REFFL */
  241. EXTRA_SIZE(struct regnode_1), /* IFMATCH */
  242. EXTRA_SIZE(struct regnode_1), /* UNLESSM */
  243. EXTRA_SIZE(struct regnode_1), /* SUSPEND */
  244. EXTRA_SIZE(struct regnode_1), /* IFTHEN */
  245. EXTRA_SIZE(struct regnode_1), /* GROUPP */
  246. EXTRA_SIZE(struct regnode_1), /* LONGJMP */
  247. EXTRA_SIZE(struct regnode_1), /* BRANCHJ */
  248. EXTRA_SIZE(struct regnode_1), /* EVAL */
  249. 0, /* MINMOD */
  250. 0, /* LOGICAL */
  251. EXTRA_SIZE(struct regnode_1), /* RENUM */
  252. 0, /* OPTIMIZED */
  253. };
  254. static const char reg_off_by_arg[] = {
  255. 0, /* END */
  256. 0, /* SUCCEED */
  257. 0, /* BOL */
  258. 0, /* MBOL */
  259. 0, /* SBOL */
  260. 0, /* EOS */
  261. 0, /* EOL */
  262. 0, /* MEOL */
  263. 0, /* SEOL */
  264. 0, /* BOUND */
  265. 0, /* BOUNDUTF8 */
  266. 0, /* BOUNDL */
  267. 0, /* BOUNDLUTF8 */
  268. 0, /* NBOUND */
  269. 0, /* NBOUNDUTF8 */
  270. 0, /* NBOUNDL */
  271. 0, /* NBOUNDLUTF8 */
  272. 0, /* GPOS */
  273. 0, /* REG_ANY */
  274. 0, /* ANYUTF8 */
  275. 0, /* SANY */
  276. 0, /* SANYUTF8 */
  277. 0, /* ANYOF */
  278. 0, /* ANYOFUTF8 */
  279. 0, /* ALNUM */
  280. 0, /* ALNUMUTF8 */
  281. 0, /* ALNUML */
  282. 0, /* ALNUMLUTF8 */
  283. 0, /* NALNUM */
  284. 0, /* NALNUMUTF8 */
  285. 0, /* NALNUML */
  286. 0, /* NALNUMLUTF8 */
  287. 0, /* SPACE */
  288. 0, /* SPACEUTF8 */
  289. 0, /* SPACEL */
  290. 0, /* SPACELUTF8 */
  291. 0, /* NSPACE */
  292. 0, /* NSPACEUTF8 */
  293. 0, /* NSPACEL */
  294. 0, /* NSPACELUTF8 */
  295. 0, /* DIGIT */
  296. 0, /* DIGITUTF8 */
  297. 0, /* DIGITL */
  298. 0, /* DIGITLUTF8 */
  299. 0, /* NDIGIT */
  300. 0, /* NDIGITUTF8 */
  301. 0, /* NDIGITL */
  302. 0, /* NDIGITLUTF8 */
  303. 0, /* CLUMP */
  304. 0, /* BRANCH */
  305. 0, /* BACK */
  306. 0, /* EXACT */
  307. 0, /* EXACTF */
  308. 0, /* EXACTFL */
  309. 0, /* NOTHING */
  310. 0, /* TAIL */
  311. 0, /* STAR */
  312. 0, /* PLUS */
  313. 0, /* CURLY */
  314. 0, /* CURLYN */
  315. 0, /* CURLYM */
  316. 0, /* CURLYX */
  317. 0, /* WHILEM */
  318. 0, /* OPEN */
  319. 0, /* CLOSE */
  320. 0, /* REF */
  321. 0, /* REFF */
  322. 0, /* REFFL */
  323. 2, /* IFMATCH */
  324. 2, /* UNLESSM */
  325. 1, /* SUSPEND */
  326. 1, /* IFTHEN */
  327. 0, /* GROUPP */
  328. 1, /* LONGJMP */
  329. 1, /* BRANCHJ */
  330. 0, /* EVAL */
  331. 0, /* MINMOD */
  332. 0, /* LOGICAL */
  333. 1, /* RENUM */
  334. 0, /* OPTIMIZED */
  335. };
  336. #ifdef DEBUGGING
  337. static const char * const reg_name[] = {
  338. "END", /* 0 */
  339. "SUCCEED", /* 0x1 */
  340. "BOL", /* 0x2 */
  341. "MBOL", /* 0x3 */
  342. "SBOL", /* 0x4 */
  343. "EOS", /* 0x5 */
  344. "EOL", /* 0x6 */
  345. "MEOL", /* 0x7 */
  346. "SEOL", /* 0x8 */
  347. "BOUND", /* 0x9 */
  348. "BOUNDUTF8", /* 0xa */
  349. "BOUNDL", /* 0xb */
  350. "BOUNDLUTF8", /* 0xc */
  351. "NBOUND", /* 0xd */
  352. "NBOUNDUTF8", /* 0xe */
  353. "NBOUNDL", /* 0xf */
  354. "NBOUNDLUTF8", /* 0x10 */
  355. "GPOS", /* 0x11 */
  356. "REG_ANY", /* 0x12 */
  357. "ANYUTF8", /* 0x13 */
  358. "SANY", /* 0x14 */
  359. "SANYUTF8", /* 0x15 */
  360. "ANYOF", /* 0x16 */
  361. "ANYOFUTF8", /* 0x17 */
  362. "ALNUM", /* 0x18 */
  363. "ALNUMUTF8", /* 0x19 */
  364. "ALNUML", /* 0x1a */
  365. "ALNUMLUTF8", /* 0x1b */
  366. "NALNUM", /* 0x1c */
  367. "NALNUMUTF8", /* 0x1d */
  368. "NALNUML", /* 0x1e */
  369. "NALNUMLUTF8", /* 0x1f */
  370. "SPACE", /* 0x20 */
  371. "SPACEUTF8", /* 0x21 */
  372. "SPACEL", /* 0x22 */
  373. "SPACELUTF8", /* 0x23 */
  374. "NSPACE", /* 0x24 */
  375. "NSPACEUTF8", /* 0x25 */
  376. "NSPACEL", /* 0x26 */
  377. "NSPACELUTF8", /* 0x27 */
  378. "DIGIT", /* 0x28 */
  379. "DIGITUTF8", /* 0x29 */
  380. "DIGITL", /* 0x2a */
  381. "DIGITLUTF8", /* 0x2b */
  382. "NDIGIT", /* 0x2c */
  383. "NDIGITUTF8", /* 0x2d */
  384. "NDIGITL", /* 0x2e */
  385. "NDIGITLUTF8", /* 0x2f */
  386. "CLUMP", /* 0x30 */
  387. "BRANCH", /* 0x31 */
  388. "BACK", /* 0x32 */
  389. "EXACT", /* 0x33 */
  390. "EXACTF", /* 0x34 */
  391. "EXACTFL", /* 0x35 */
  392. "NOTHING", /* 0x36 */
  393. "TAIL", /* 0x37 */
  394. "STAR", /* 0x38 */
  395. "PLUS", /* 0x39 */
  396. "CURLY", /* 0x3a */
  397. "CURLYN", /* 0x3b */
  398. "CURLYM", /* 0x3c */
  399. "CURLYX", /* 0x3d */
  400. "WHILEM", /* 0x3e */
  401. "OPEN", /* 0x3f */
  402. "CLOSE", /* 0x40 */
  403. "REF", /* 0x41 */
  404. "REFF", /* 0x42 */
  405. "REFFL", /* 0x43 */
  406. "IFMATCH", /* 0x44 */
  407. "UNLESSM", /* 0x45 */
  408. "SUSPEND", /* 0x46 */
  409. "IFTHEN", /* 0x47 */
  410. "GROUPP", /* 0x48 */
  411. "LONGJMP", /* 0x49 */
  412. "BRANCHJ", /* 0x4a */
  413. "EVAL", /* 0x4b */
  414. "MINMOD", /* 0x4c */
  415. "LOGICAL", /* 0x4d */
  416. "RENUM", /* 0x4e */
  417. "OPTIMIZED", /* 0x4f */
  418. };
  419. static const int reg_num = 80;
  420. #endif /* DEBUGGING */
  421. #endif /* REG_COMP_C */