syntax_type.hpp 4.3 KB

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