sre_engine/
constants.rs

1/*
2 * Secret Labs' Regular Expression Engine
3 *
4 * regular expression matching engine
5 *
6 * NOTE: This file is generated by sre_constants.py.  If you need
7 * to change anything in here, edit sre_constants.py and run it.
8 *
9 * Copyright (c) 1997-2001 by Secret Labs AB.  All rights reserved.
10 *
11 * See the _sre.c file for information on usage and redistribution.
12 */
13
14use bitflags::bitflags;
15
16pub const SRE_MAGIC: usize = 20171005;
17#[derive(num_enum::TryFromPrimitive, Debug)]
18#[repr(u32)]
19#[allow(non_camel_case_types, clippy::upper_case_acronyms)]
20pub enum SreOpcode {
21    FAILURE = 0,
22    SUCCESS = 1,
23    ANY = 2,
24    ANY_ALL = 3,
25    ASSERT = 4,
26    ASSERT_NOT = 5,
27    AT = 6,
28    BRANCH = 7,
29    CALL = 8,
30    CATEGORY = 9,
31    CHARSET = 10,
32    BIGCHARSET = 11,
33    GROUPREF = 12,
34    GROUPREF_EXISTS = 13,
35    IN = 14,
36    INFO = 15,
37    JUMP = 16,
38    LITERAL = 17,
39    MARK = 18,
40    MAX_UNTIL = 19,
41    MIN_UNTIL = 20,
42    NOT_LITERAL = 21,
43    NEGATE = 22,
44    RANGE = 23,
45    REPEAT = 24,
46    REPEAT_ONE = 25,
47    SUBPATTERN = 26,
48    MIN_REPEAT_ONE = 27,
49    GROUPREF_IGNORE = 28,
50    IN_IGNORE = 29,
51    LITERAL_IGNORE = 30,
52    NOT_LITERAL_IGNORE = 31,
53    GROUPREF_LOC_IGNORE = 32,
54    IN_LOC_IGNORE = 33,
55    LITERAL_LOC_IGNORE = 34,
56    NOT_LITERAL_LOC_IGNORE = 35,
57    GROUPREF_UNI_IGNORE = 36,
58    IN_UNI_IGNORE = 37,
59    LITERAL_UNI_IGNORE = 38,
60    NOT_LITERAL_UNI_IGNORE = 39,
61    RANGE_UNI_IGNORE = 40,
62}
63#[derive(num_enum::TryFromPrimitive, Debug)]
64#[repr(u32)]
65#[allow(non_camel_case_types, clippy::upper_case_acronyms)]
66pub enum SreAtCode {
67    BEGINNING = 0,
68    BEGINNING_LINE = 1,
69    BEGINNING_STRING = 2,
70    BOUNDARY = 3,
71    NON_BOUNDARY = 4,
72    END = 5,
73    END_LINE = 6,
74    END_STRING = 7,
75    LOC_BOUNDARY = 8,
76    LOC_NON_BOUNDARY = 9,
77    UNI_BOUNDARY = 10,
78    UNI_NON_BOUNDARY = 11,
79}
80#[derive(num_enum::TryFromPrimitive, Debug)]
81#[repr(u32)]
82#[allow(non_camel_case_types, clippy::upper_case_acronyms)]
83pub enum SreCatCode {
84    DIGIT = 0,
85    NOT_DIGIT = 1,
86    SPACE = 2,
87    NOT_SPACE = 3,
88    WORD = 4,
89    NOT_WORD = 5,
90    LINEBREAK = 6,
91    NOT_LINEBREAK = 7,
92    LOC_WORD = 8,
93    LOC_NOT_WORD = 9,
94    UNI_DIGIT = 10,
95    UNI_NOT_DIGIT = 11,
96    UNI_SPACE = 12,
97    UNI_NOT_SPACE = 13,
98    UNI_WORD = 14,
99    UNI_NOT_WORD = 15,
100    UNI_LINEBREAK = 16,
101    UNI_NOT_LINEBREAK = 17,
102}
103bitflags! {
104    #[derive(Clone, Copy, Debug, PartialEq, Eq)]
105    pub struct SreFlag: u16 {
106        const TEMPLATE = 1;
107        const IGNORECASE = 2;
108        const LOCALE = 4;
109        const MULTILINE = 8;
110        const DOTALL = 16;
111        const UNICODE = 32;
112        const VERBOSE = 64;
113        const DEBUG = 128;
114        const ASCII = 256;
115    }
116}
117bitflags! {
118    pub struct SreInfo: u32 {
119        const PREFIX = 1;
120        const LITERAL = 2;
121        const CHARSET = 4;
122    }
123}