| // -*- C++ -*- |
| //===----------------------------------------------------------------------===// |
| // |
| // The LLVM Compiler Infrastructure |
| // |
| // This file is dual licensed under the MIT and the University of Illinois Open |
| // Source Licenses. See LICENSE.TXT for details. |
| // |
| //===----------------------------------------------------------------------===// |
| |
| // <regex> |
| |
| // class regex_error |
| // : public runtime_error |
| // { |
| // public: |
| // explicit regex_error(regex_constants::error_type ecode); |
| // regex_constants::error_type code() const; |
| // }; |
| |
| #include <regex> |
| #include <cassert> |
| #include "test_macros.h" |
| |
| int main() |
| { |
| { |
| std::regex_error e(std::regex_constants::error_collate); |
| assert(e.code() == std::regex_constants::error_collate); |
| assert(e.what() == std::string("The expression contained an invalid collating element name.")); |
| } |
| { |
| std::regex_error e(std::regex_constants::error_ctype); |
| assert(e.code() == std::regex_constants::error_ctype); |
| assert(e.what() == std::string("The expression contained an invalid character class name.")); |
| } |
| { |
| std::regex_error e(std::regex_constants::error_escape); |
| assert(e.code() == std::regex_constants::error_escape); |
| assert(e.what() == std::string("The expression contained an invalid escaped character, or a " |
| "trailing escape.")); |
| } |
| { |
| std::regex_error e(std::regex_constants::error_backref); |
| assert(e.code() == std::regex_constants::error_backref); |
| assert(e.what() == std::string("The expression contained an invalid back reference.")); |
| } |
| { |
| std::regex_error e(std::regex_constants::error_brack); |
| assert(e.code() == std::regex_constants::error_brack); |
| assert(e.what() == std::string("The expression contained mismatched [ and ].")); |
| } |
| { |
| std::regex_error e(std::regex_constants::error_paren); |
| assert(e.code() == std::regex_constants::error_paren); |
| assert(e.what() == std::string("The expression contained mismatched ( and ).")); |
| } |
| { |
| std::regex_error e(std::regex_constants::error_brace); |
| assert(e.code() == std::regex_constants::error_brace); |
| assert(e.what() == std::string("The expression contained mismatched { and }.")); |
| } |
| { |
| std::regex_error e(std::regex_constants::error_badbrace); |
| assert(e.code() == std::regex_constants::error_badbrace); |
| assert(e.what() == std::string("The expression contained an invalid range in a {} expression.")); |
| } |
| { |
| std::regex_error e(std::regex_constants::error_range); |
| assert(e.code() == std::regex_constants::error_range); |
| assert(e.what() == std::string("The expression contained an invalid character range, " |
| "such as [b-a] in most encodings.")); |
| } |
| { |
| std::regex_error e(std::regex_constants::error_space); |
| assert(e.code() == std::regex_constants::error_space); |
| assert(e.what() == std::string("There was insufficient memory to convert the expression into " |
| "a finite state machine.")); |
| } |
| { |
| std::regex_error e(std::regex_constants::error_badrepeat); |
| assert(e.code() == std::regex_constants::error_badrepeat); |
| assert(e.what() == std::string("One of *?+{ was not preceded by a valid regular expression.")); |
| } |
| { |
| std::regex_error e(std::regex_constants::error_complexity); |
| assert(e.code() == std::regex_constants::error_complexity); |
| assert(e.what() == std::string("The complexity of an attempted match against a regular " |
| "expression exceeded a pre-set level.")); |
| } |
| { |
| std::regex_error e(std::regex_constants::error_stack); |
| assert(e.code() == std::regex_constants::error_stack); |
| assert(e.what() == std::string("There was insufficient memory to determine whether the regular " |
| "expression could match the specified character sequence.")); |
| } |
| } |