brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.0 KiB · f1a1237 Raw
98 lines · cpp
1//===----------------------------------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9// <regex>10 11// class regex_error12//     : public runtime_error13// {14// public:15//     explicit regex_error(regex_constants::error_type ecode);16//     regex_constants::error_type code() const;17// };18 19#include <regex>20#include <cassert>21#include "test_macros.h"22 23int main(int, char**)24{25    {26        std::regex_error e(std::regex_constants::error_collate);27        assert(e.code() == std::regex_constants::error_collate);28        LIBCPP_ASSERT(e.what() == std::string("The expression contained an invalid collating element name."));29    }30    {31        std::regex_error e(std::regex_constants::error_ctype);32        assert(e.code() == std::regex_constants::error_ctype);33        LIBCPP_ASSERT(e.what() == std::string("The expression contained an invalid character class name."));34    }35    {36        std::regex_error e(std::regex_constants::error_escape);37        assert(e.code() == std::regex_constants::error_escape);38        LIBCPP_ASSERT(e.what() == std::string("The expression contained an invalid escaped character, or a "39               "trailing escape."));40    }41    {42        std::regex_error e(std::regex_constants::error_backref);43        assert(e.code() == std::regex_constants::error_backref);44        LIBCPP_ASSERT(e.what() == std::string("The expression contained an invalid back reference."));45    }46    {47        std::regex_error e(std::regex_constants::error_brack);48        assert(e.code() == std::regex_constants::error_brack);49        LIBCPP_ASSERT(e.what() == std::string("The expression contained mismatched [ and ]."));50    }51    {52        std::regex_error e(std::regex_constants::error_paren);53        assert(e.code() == std::regex_constants::error_paren);54        LIBCPP_ASSERT(e.what() == std::string("The expression contained mismatched ( and )."));55    }56    {57        std::regex_error e(std::regex_constants::error_brace);58        assert(e.code() == std::regex_constants::error_brace);59        LIBCPP_ASSERT(e.what() == std::string("The expression contained mismatched { and }."));60    }61    {62        std::regex_error e(std::regex_constants::error_badbrace);63        assert(e.code() == std::regex_constants::error_badbrace);64        LIBCPP_ASSERT(e.what() == std::string("The expression contained an invalid range in a {} expression."));65    }66    {67        std::regex_error e(std::regex_constants::error_range);68        assert(e.code() == std::regex_constants::error_range);69        LIBCPP_ASSERT(e.what() == std::string("The expression contained an invalid character range, "70               "such as [b-a] in most encodings."));71    }72    {73        std::regex_error e(std::regex_constants::error_space);74        assert(e.code() == std::regex_constants::error_space);75        LIBCPP_ASSERT(e.what() == std::string("There was insufficient memory to convert the expression into "76               "a finite state machine."));77    }78    {79        std::regex_error e(std::regex_constants::error_badrepeat);80        assert(e.code() == std::regex_constants::error_badrepeat);81        LIBCPP_ASSERT(e.what() == std::string("One of *?+{ was not preceded by a valid regular expression."));82    }83    {84        std::regex_error e(std::regex_constants::error_complexity);85        assert(e.code() == std::regex_constants::error_complexity);86        LIBCPP_ASSERT(e.what() == std::string("The complexity of an attempted match against a regular "87               "expression exceeded a pre-set level."));88    }89    {90        std::regex_error e(std::regex_constants::error_stack);91        assert(e.code() == std::regex_constants::error_stack);92        LIBCPP_ASSERT(e.what() == std::string("There was insufficient memory to determine whether the regular "93               "expression could match the specified character sequence."));94    }95 96  return 0;97}98