REAL
Regular Expression Algorithmic Library — constexpr C++20 regex
Loading...
Searching...
No Matches
real::regex_error Class Reference

The exception every rejected pattern throws: a message with the pattern offset it was found at, plus an error_kind a caller can branch on without parsing what. In a constexpr context (static_regex) reaching the throw is a compile-time error, the message appearing in the diagnostic trace. More...

#include <program.hpp>

Inheritance diagram for real::regex_error:
[legend]
Collaboration diagram for real::regex_error:
[legend]

Public Member Functions

 regex_error (const std::string &message, std::size_t position, error_kind kind=error_kind::syntax)
 Builds the error.
 
error_kind kind () const noexcept
 Whether the pattern is malformed (syntax) or well-formed but unsupported by REAL.
 
const char * what () const noexcept override
 Returns the formatted error message (with position).
 
std::size_t position () const noexcept
 Returns the byte offset in the pattern where the error was found.
 

Private Attributes

std::string message_
 Formatted message returned by what().
 
std::size_t position_
 Offset in the pattern text.
 
error_kind kind_
 Malformed (syntax) vs unsupported-by-REAL.
 

Detailed Description

The exception every rejected pattern throws: a message with the pattern offset it was found at, plus an error_kind a caller can branch on without parsing what. In a constexpr context (static_regex) reaching the throw is a compile-time error, the message appearing in the diagnostic trace.

Constructor & Destructor Documentation

◆ regex_error()

real::regex_error::regex_error ( const std::string &  message,
std::size_t  position,
error_kind  kind = error_kind::syntax 
)
inline

Builds the error.

Parameters
[in]messageHuman-readable cause.
[in]positionByte offset in the pattern where the error was found.
[in]kindWhether the pattern is malformed or merely unsupported (default syntax).

Member Function Documentation

◆ kind()

error_kind real::regex_error::kind ( ) const
inlinenoexcept

Whether the pattern is malformed (syntax) or well-formed but unsupported by REAL.

Returns
The classification.

◆ position()

std::size_t real::regex_error::position ( ) const
inlinenoexcept

Returns the byte offset in the pattern where the error was found.

Returns
The offset into the pattern text.

◆ what()

const char * real::regex_error::what ( ) const
inlineoverridenoexcept

Returns the formatted error message (with position).

Returns
The message, valid for this object's lifetime.

The documentation for this class was generated from the following file: