1 /*
2  *
3  * Copyright (c) 2003
4  * John Maddock
5  *
6  * Use, modification and distribution are subject to the
7  * Boost Software License, Version 1.0. (See accompanying file
8  * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9  *
10  */
11 
12  /*
13   *   LOCATION:    see http://www.boost.org for most recent version.
14   *   FILE         syntax_type.hpp
15   *   VERSION      see <boost/version.hpp>
16   *   DESCRIPTION: Declares regular expression synatx type enumerator.
17   */
18 
19 #ifndef BOOST_REGEX_SYNTAX_TYPE_HPP
20 #define BOOST_REGEX_SYNTAX_TYPE_HPP
21 
22 namespace boost{
23 namespace regex_constants{
24 
25 typedef unsigned char syntax_type;
26 
27 //
28 // values chosen are binary compatible with previous version:
29 //
30 static const syntax_type syntax_char = 0;
31 static const syntax_type syntax_open_mark = 1;
32 static const syntax_type syntax_close_mark = 2;
33 static const syntax_type syntax_dollar = 3;
34 static const syntax_type syntax_caret = 4;
35 static const syntax_type syntax_dot = 5;
36 static const syntax_type syntax_star = 6;
37 static const syntax_type syntax_plus = 7;
38 static const syntax_type syntax_question = 8;
39 static const syntax_type syntax_open_set = 9;
40 static const syntax_type syntax_close_set = 10;
41 static const syntax_type syntax_or = 11;
42 static const syntax_type syntax_escape = 12;
43 static const syntax_type syntax_dash = 14;
44 static const syntax_type syntax_open_brace = 15;
45 static const syntax_type syntax_close_brace = 16;
46 static const syntax_type syntax_digit = 17;
47 static const syntax_type syntax_comma = 27;
48 static const syntax_type syntax_equal = 37;
49 static const syntax_type syntax_colon = 36;
50 static const syntax_type syntax_not = 53;
51 
52 // extensions:
53 
54 static const syntax_type syntax_hash = 13;
55 static const syntax_type syntax_newline = 26;
56 
57 // escapes:
58 
59 typedef syntax_type escape_syntax_type;
60 
61 static const escape_syntax_type escape_type_word_assert = 18;
62 static const escape_syntax_type escape_type_not_word_assert = 19;
63 static const escape_syntax_type escape_type_control_f = 29;
64 static const escape_syntax_type escape_type_control_n = 30;
65 static const escape_syntax_type escape_type_control_r = 31;
66 static const escape_syntax_type escape_type_control_t = 32;
67 static const escape_syntax_type escape_type_control_v = 33;
68 static const escape_syntax_type escape_type_ascii_control = 35;
69 static const escape_syntax_type escape_type_hex = 34;
70 static const escape_syntax_type escape_type_unicode = 0; // not used
71 static const escape_syntax_type escape_type_identity = 0; // not used
72 static const escape_syntax_type escape_type_backref = syntax_digit;
73 static const escape_syntax_type escape_type_decimal = syntax_digit; // not used
74 static const escape_syntax_type escape_type_class = 22;
75 static const escape_syntax_type escape_type_not_class = 23;
76 
77 // extensions:
78 
79 static const escape_syntax_type escape_type_left_word = 20;
80 static const escape_syntax_type escape_type_right_word = 21;
81 static const escape_syntax_type escape_type_start_buffer = 24;                 // for \`
82 static const escape_syntax_type escape_type_end_buffer = 25;                   // for \'
83 static const escape_syntax_type escape_type_control_a = 28;                    // for \a
84 static const escape_syntax_type escape_type_e = 38;                            // for \e
85 static const escape_syntax_type escape_type_E = 47;                            // for \Q\E
86 static const escape_syntax_type escape_type_Q = 48;                            // for \Q\E
87 static const escape_syntax_type escape_type_X = 49;                            // for \X
88 static const escape_syntax_type escape_type_C = 50;                            // for \C
89 static const escape_syntax_type escape_type_Z = 51;                            // for \Z
90 static const escape_syntax_type escape_type_G = 52;                            // for \G
91 
92 static const escape_syntax_type escape_type_property = 54;                     // for \p
93 static const escape_syntax_type escape_type_not_property = 55;                 // for \P
94 static const escape_syntax_type escape_type_named_char = 56;                   // for \N
95 static const escape_syntax_type escape_type_extended_backref = 57;             // for \g
96 static const escape_syntax_type escape_type_reset_start_mark = 58;             // for \K
97 static const escape_syntax_type escape_type_line_ending = 59;                  // for \R
98 
99 static const escape_syntax_type syntax_max = 60;
100 
101 }
102 }
103 
104 
105 #endif
106