Coverage Report

Created: 2025-06-13 06:46

/src/Fast-DDS/thirdparty/taocpp-pegtl/pegtl/input_error.hpp
Line
Count
Source (jump to first uncovered line)
1
// Copyright (c) 2014-2020 Dr. Colin Hirsch and Daniel Frey
2
// Please see LICENSE for license or visit https://github.com/taocpp/PEGTL/
3
4
#ifndef TAO_PEGTL_INPUT_ERROR_HPP
5
#define TAO_PEGTL_INPUT_ERROR_HPP
6
7
#include <cerrno>
8
#include <sstream>
9
#include <stdexcept>
10
11
#include "config.hpp"
12
13
namespace tao
14
{
15
   namespace TAO_PEGTL_NAMESPACE
16
   {
17
      struct input_error
18
         : std::runtime_error
19
      {
20
         input_error( const std::string& message, const int in_errorno )
21
            : std::runtime_error( message ),
22
              errorno( in_errorno )
23
0
         {
24
0
         }
25
26
         int errorno;
27
      };
28
29
   }  // namespace TAO_PEGTL_NAMESPACE
30
31
}  // namespace tao
32
33
#define TAO_PEGTL_INTERNAL_UNWRAP( ... ) __VA_ARGS__
34
35
#define TAO_PEGTL_THROW_INPUT_ERROR( MESSAGE )                                          \
36
   do {                                                                                 \
37
      const int errorno = errno;                                                        \
38
      std::ostringstream oss;                                                           \
39
      oss << "pegtl: " << TAO_PEGTL_INTERNAL_UNWRAP( MESSAGE ) << " errno " << errorno; \
40
      throw tao::TAO_PEGTL_NAMESPACE::input_error( oss.str(), errorno );                \
41
   } while( false )
42
43
#define TAO_PEGTL_THROW_INPUT_WIN32_ERROR( MESSAGE )                                             \
44
   do {                                                                                          \
45
      const int errorno = GetLastError();                                                        \
46
      std::ostringstream oss;                                                                    \
47
      oss << "pegtl: " << TAO_PEGTL_INTERNAL_UNWRAP( MESSAGE ) << " GetLastError() " << errorno; \
48
      throw tao::TAO_PEGTL_NAMESPACE::input_error( oss.str(), errorno );                         \
49
   } while( false )
50
51
#endif