1 ///////////////////////////////////////////////////////////////////////////////
2 // parser_enum.hpp
3 //
4 //  Copyright 2008 Eric Niebler. Distributed under the Boost
5 //  Software License, Version 1.0. (See accompanying file
6 //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
7 
8 #ifndef BOOST_XPRESSIVE_DETAIL_DYNAMIC_PARSER_ENUM_HPP_EAN_10_04_2005
9 #define BOOST_XPRESSIVE_DETAIL_DYNAMIC_PARSER_ENUM_HPP_EAN_10_04_2005
10 
11 // MS compatible compilers support #pragma once
12 #if defined(_MSC_VER)
13 # pragma once
14 #endif
15 
16 namespace boost { namespace xpressive { namespace regex_constants
17 {
18 
19 ///////////////////////////////////////////////////////////////////////////////
20 // compiler_token_type
21 //
22 enum compiler_token_type
23 {
24     token_literal,
25     token_any,                          // .
26     token_escape,                       //
27     token_group_begin,                  // (
28     token_group_end,                    // )
29     token_alternate,                    // |
30     token_invalid_quantifier,           // {
31     token_charset_begin,                // [
32     token_charset_end,                  // ]
33     token_charset_invert,               // ^
34     token_charset_hyphen,               // -
35     token_charset_backspace,            // \b
36     token_posix_charset_begin,          // [:
37     token_posix_charset_end,            // :]
38     token_equivalence_class_begin,      // [=
39     token_equivalence_class_end,        // =]
40     token_collation_element_begin,      // [.
41     token_collation_element_end,        // .]
42 
43     token_quote_meta_begin,             // \Q
44     token_quote_meta_end,               // \E
45 
46     token_no_mark,                      // ?:
47     token_positive_lookahead,           // ?=
48     token_negative_lookahead,           // ?!
49     token_positive_lookbehind,          // ?<=
50     token_negative_lookbehind,          // ?<!
51     token_independent_sub_expression,   // ?>
52     token_comment,                      // ?#
53     token_recurse,                      // ?R
54     token_rule_assign,                  // ?$[name]=
55     token_rule_ref,                     // ?$[name]
56     token_named_mark,                   // ?P<name>
57     token_named_mark_ref,               // ?P=name
58 
59     token_assert_begin_sequence,        // \A
60     token_assert_end_sequence,          // \Z
61     token_assert_begin_line,            // ^
62     token_assert_end_line,              // $
63     token_assert_word_begin,            // \<
64     token_assert_word_end,              // \>
65     token_assert_word_boundary,         // \b
66     token_assert_not_word_boundary,     // \B
67 
68     token_escape_newline,               // \n
69     token_escape_escape,                // \e
70     token_escape_formfeed,              // \f
71     token_escape_horizontal_tab,        // \t
72     token_escape_vertical_tab,          // \v
73     token_escape_bell,                  // \a
74     token_escape_control,               // \c
75 
76     token_end_of_pattern
77 };
78 
79 }}} // namespace boost::xpressive::regex_constants
80 
81 #endif
82