123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- //
- // Copyright (c) 2019 Vinnie Falco ([email protected])
- //
- // 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 <boost/url/detail/config.hpp>
- #include <boost/url/error_types.hpp>
- 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 <boost/url/grammar/impl/error.hpp>
- #endif
|