// // Copyright (c) 2019 Vinnie Falco (vinnie.falco@gmail.com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // // Official repository: https://github.com/boostorg/url // #ifndef BOOST_URL_GRAMMAR_ERROR_HPP #define BOOST_URL_GRAMMAR_ERROR_HPP #include #include namespace boost { namespace urls { namespace grammar { /** Error codes returned when using rules @see @ref condition, @ref parse. */ enum class error { // VFALCO 3 space indent or // else Doxygen malfunctions // // (informational) // /** * More input is needed to match the rule * * A rule reached the end of the input, * resulting in a partial match. The error * is recoverable; the caller may obtain * more input if possible and attempt to * parse the character buffer again. * Custom rules should only return this * error if it is completely unambiguous * that the rule cannot be matched without * more input. */ need_more = 1, /** * The rule did not match the input. * * This error is returned when a rule fails * to match the input. The error is recoverable; * the caller may rewind the input pointer and * attempt to parse again using a different rule. */ mismatch, /** * A rule reached the end of a range * * This indicates that the input was consumed * when parsing a @ref range. The @ref range_rule * avoids rewinding the input buffer when * this error is returned. Thus the consumed * characters are be considered part of the * range without contributing additional * elements. */ end_of_range, /** * Leftover input remaining after match. */ leftover, //-------------------------------------------- // // condition::fatal // //-------------------------------------------- /** * A rule encountered unrecoverable invalid input. * * This error is returned when input is matching * but one of the requirements is violated. For * example if a percent escape is found, but * one or both characters that follow are not * valid hexadecimal digits. This is usually an * unrecoverable error. */ invalid, /** An integer overflowed during parsing. */ out_of_range, /** * An unspecified syntax error was found. */ syntax }; //------------------------------------------------ /** Error conditions for errors received from rules @see @ref error, @ref parse. */ enum class condition { /** * A fatal error in syntax was encountered. This indicates that parsing cannot continue. */ fatal = 1 }; } // grammar } // urls } // boost #include #endif