Coverage Report

Created: 2026-06-30 07:33

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/kea/src/bin/d2/d2_parser.h
Line
Count
Source
1
// A Bison parser, made by GNU Bison 3.8.2.
2
3
// Skeleton interface for Bison LALR(1) parsers in C++
4
5
// Copyright (C) 2002-2015, 2018-2021 Free Software Foundation, Inc.
6
7
// This program is free software: you can redistribute it and/or modify
8
// it under the terms of the GNU General Public License as published by
9
// the Free Software Foundation, either version 3 of the License, or
10
// (at your option) any later version.
11
12
// This program is distributed in the hope that it will be useful,
13
// but WITHOUT ANY WARRANTY; without even the implied warranty of
14
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
// GNU General Public License for more details.
16
17
// You should have received a copy of the GNU General Public License
18
// along with this program.  If not, see <https://www.gnu.org/licenses/>.
19
20
// As a special exception, you may create a larger work that contains
21
// part or all of the Bison parser skeleton and distribute that work
22
// under terms of your choice, so long as that work isn't itself a
23
// parser generator using the skeleton or a modified version thereof
24
// as a parser skeleton.  Alternatively, if you modify or redistribute
25
// the parser skeleton itself, you may (at your option) remove this
26
// special exception, which will cause the skeleton and the resulting
27
// Bison output files to be licensed under the GNU General Public
28
// License without this special exception.
29
30
// This special exception was added by the Free Software Foundation in
31
// version 2.2 of Bison.
32
33
34
/**
35
 ** \file d2_parser.h
36
 ** Define the isc::d2::parser class.
37
 */
38
39
// C++ LALR(1) parser skeleton written by Akim Demaille.
40
41
// DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
42
// especially those whose name start with YY_ or yy_.  They are
43
// private implementation details that can be changed or removed.
44
45
#ifndef YY_D2_PARSER_D2_PARSER_H_INCLUDED
46
# define YY_D2_PARSER_D2_PARSER_H_INCLUDED
47
// "%code requires" blocks.
48
#line 17 "d2_parser.yy"
49
50
#include <config.h>
51
#include <string>
52
#include <cc/data.h>
53
#include <d2srv/d2_config.h>
54
#include <boost/lexical_cast.hpp>
55
#include <d2/parser_context_decl.h>
56
57
using namespace isc::d2;
58
using namespace isc::data;
59
using namespace std;
60
61
#line 62 "d2_parser.h"
62
63
# include <cassert>
64
# include <cstdlib> // std::abort
65
# include <iostream>
66
# include <stdexcept>
67
# include <string>
68
# include <vector>
69
70
#if defined __cplusplus
71
# define YY_CPLUSPLUS __cplusplus
72
#else
73
# define YY_CPLUSPLUS 199711L
74
#endif
75
76
// Support move semantics when possible.
77
#if 201103L <= YY_CPLUSPLUS
78
11.6M
# define YY_MOVE           std::move
79
# define YY_MOVE_OR_COPY   move
80
# define YY_MOVE_REF(Type) Type&&
81
# define YY_RVREF(Type)    Type&&
82
# define YY_COPY(Type)     Type
83
#else
84
# define YY_MOVE
85
# define YY_MOVE_OR_COPY   copy
86
# define YY_MOVE_REF(Type) Type&
87
# define YY_RVREF(Type)    const Type&
88
# define YY_COPY(Type)     const Type&
89
#endif
90
91
// Support noexcept when possible.
92
#if 201103L <= YY_CPLUSPLUS
93
# define YY_NOEXCEPT noexcept
94
# define YY_NOTHROW
95
#else
96
# define YY_NOEXCEPT
97
# define YY_NOTHROW throw ()
98
#endif
99
100
// Support constexpr when possible.
101
#if 201703 <= YY_CPLUSPLUS
102
# define YY_CONSTEXPR constexpr
103
#else
104
# define YY_CONSTEXPR
105
#endif
106
# include "location.hh"
107
#include <typeinfo>
108
#ifndef D2_PARSER__ASSERT
109
# include <cassert>
110
14.5M
# define D2_PARSER__ASSERT assert
111
#endif
112
113
114
#ifndef YY_ATTRIBUTE_PURE
115
# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
116
#  define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
117
# else
118
#  define YY_ATTRIBUTE_PURE
119
# endif
120
#endif
121
122
#ifndef YY_ATTRIBUTE_UNUSED
123
# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
124
#  define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
125
# else
126
#  define YY_ATTRIBUTE_UNUSED
127
# endif
128
#endif
129
130
/* Suppress unused-variable warnings by "using" E.  */
131
#if ! defined lint || defined __GNUC__
132
0
# define YY_USE(E) ((void) (E))
133
#else
134
# define YY_USE(E) /* empty */
135
#endif
136
137
/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
138
#if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
139
# if __GNUC__ * 100 + __GNUC_MINOR__ < 407
140
#  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
141
    _Pragma ("GCC diagnostic push")                                     \
142
    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
143
# else
144
#  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
145
    _Pragma ("GCC diagnostic push")                                     \
146
    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")              \
147
    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
148
# endif
149
# define YY_IGNORE_MAYBE_UNINITIALIZED_END      \
150
    _Pragma ("GCC diagnostic pop")
151
#else
152
# define YY_INITIAL_VALUE(Value) Value
153
#endif
154
#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
155
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
156
# define YY_IGNORE_MAYBE_UNINITIALIZED_END
157
#endif
158
#ifndef YY_INITIAL_VALUE
159
# define YY_INITIAL_VALUE(Value) /* Nothing. */
160
#endif
161
162
#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
163
# define YY_IGNORE_USELESS_CAST_BEGIN                          \
164
    _Pragma ("GCC diagnostic push")                            \
165
    _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
166
# define YY_IGNORE_USELESS_CAST_END            \
167
    _Pragma ("GCC diagnostic pop")
168
#endif
169
#ifndef YY_IGNORE_USELESS_CAST_BEGIN
170
# define YY_IGNORE_USELESS_CAST_BEGIN
171
# define YY_IGNORE_USELESS_CAST_END
172
#endif
173
174
# ifndef YY_CAST
175
#  ifdef __cplusplus
176
4.12M
#   define YY_CAST(Type, Val) static_cast<Type> (Val)
177
#   define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
178
#  else
179
#   define YY_CAST(Type, Val) ((Type) (Val))
180
#   define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
181
#  endif
182
# endif
183
# ifndef YY_NULLPTR
184
#  if defined __cplusplus
185
#   if 201103L <= __cplusplus
186
#    define YY_NULLPTR nullptr
187
#   else
188
#    define YY_NULLPTR 0
189
#   endif
190
#  else
191
#   define YY_NULLPTR ((void*)0)
192
#  endif
193
# endif
194
195
/* Debug traces.  */
196
#ifndef D2_PARSER_DEBUG
197
# if defined YYDEBUG
198
#if YYDEBUG
199
#   define D2_PARSER_DEBUG 1
200
#  else
201
#   define D2_PARSER_DEBUG 0
202
#  endif
203
# else /* ! defined YYDEBUG */
204
#  define D2_PARSER_DEBUG 1
205
# endif /* ! defined YYDEBUG */
206
#endif  /* ! defined D2_PARSER_DEBUG */
207
208
#line 14 "d2_parser.yy"
209
namespace isc { namespace d2 {
210
#line 211 "d2_parser.h"
211
212
213
214
215
  /// A Bison parser.
216
  class D2Parser
217
  {
218
  public:
219
#ifdef D2_PARSER_STYPE
220
# ifdef __GNUC__
221
#  pragma GCC message "bison: do not #define D2_PARSER_STYPE in C++, use %define api.value.type"
222
# endif
223
    typedef D2_PARSER_STYPE value_type;
224
#else
225
  /// A buffer to store and retrieve objects.
226
  ///
227
  /// Sort of a variant, but does not keep track of the nature
228
  /// of the stored data, since that knowledge is available
229
  /// via the current parser state.
230
  class value_type
231
  {
232
  public:
233
    /// Type of *this.
234
    typedef value_type self_type;
235
236
    /// Empty construction.
237
    value_type () YY_NOEXCEPT
238
      : yyraw_ ()
239
7.99M
      , yytypeid_ (YY_NULLPTR)
240
7.99M
    {}
241
242
    /// Construct and fill.
243
    template <typename T>
244
    value_type (YY_RVREF (T) t)
245
69.9k
      : yytypeid_ (&typeid (T))
246
69.9k
    {
247
69.9k
      D2_PARSER__ASSERT (sizeof (T) <= size);
248
69.9k
      new (yyas_<T> ()) T (YY_MOVE (t));
249
69.9k
    }
isc::d2::D2Parser::value_type::value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&&)
Line
Count
Source
245
50.5k
      : yytypeid_ (&typeid (T))
246
50.5k
    {
247
50.5k
      D2_PARSER__ASSERT (sizeof (T) <= size);
248
50.5k
      new (yyas_<T> ()) T (YY_MOVE (t));
249
50.5k
    }
isc::d2::D2Parser::value_type::value_type<long>(long&&)
Line
Count
Source
245
16.6k
      : yytypeid_ (&typeid (T))
246
16.6k
    {
247
16.6k
      D2_PARSER__ASSERT (sizeof (T) <= size);
248
16.6k
      new (yyas_<T> ()) T (YY_MOVE (t));
249
16.6k
    }
isc::d2::D2Parser::value_type::value_type<double>(double&&)
Line
Count
Source
245
2.22k
      : yytypeid_ (&typeid (T))
246
2.22k
    {
247
2.22k
      D2_PARSER__ASSERT (sizeof (T) <= size);
248
2.22k
      new (yyas_<T> ()) T (YY_MOVE (t));
249
2.22k
    }
isc::d2::D2Parser::value_type::value_type<bool>(bool&&)
Line
Count
Source
245
517
      : yytypeid_ (&typeid (T))
246
517
    {
247
517
      D2_PARSER__ASSERT (sizeof (T) <= size);
248
517
      new (yyas_<T> ()) T (YY_MOVE (t));
249
517
    }
250
251
#if 201103L <= YY_CPLUSPLUS
252
    /// Non copyable.
253
    value_type (const self_type&) = delete;
254
    /// Non copyable.
255
    self_type& operator= (const self_type&) = delete;
256
#endif
257
258
    /// Destruction, allowed only if empty.
259
    ~value_type () YY_NOEXCEPT
260
8.06M
    {
261
8.06M
      D2_PARSER__ASSERT (!yytypeid_);
262
8.06M
    }
263
264
# if 201103L <= YY_CPLUSPLUS
265
    /// Instantiate a \a T in here from \a t.
266
    template <typename T, typename... U>
267
    T&
268
    emplace (U&&... u)
269
595k
    {
270
595k
      D2_PARSER__ASSERT (!yytypeid_);
271
595k
      D2_PARSER__ASSERT (sizeof (T) <= size);
272
595k
      yytypeid_ = & typeid (T);
273
595k
      return *new (yyas_<T> ()) T (std::forward <U>(u)...);
274
595k
    }
boost::shared_ptr<isc::data::Element>& isc::d2::D2Parser::value_type::emplace<boost::shared_ptr<isc::data::Element>, boost::shared_ptr<isc::data::Element> >(boost::shared_ptr<isc::data::Element>&&)
Line
Count
Source
269
186k
    {
270
186k
      D2_PARSER__ASSERT (!yytypeid_);
271
      D2_PARSER__ASSERT (sizeof (T) <= size);
272
186k
      yytypeid_ = & typeid (T);
273
186k
      return *new (yyas_<T> ()) T (std::forward <U>(u)...);
274
186k
    }
bool& isc::d2::D2Parser::value_type::emplace<bool, bool>(bool&&)
Line
Count
Source
269
1.50k
    {
270
1.50k
      D2_PARSER__ASSERT (!yytypeid_);
271
      D2_PARSER__ASSERT (sizeof (T) <= size);
272
1.50k
      yytypeid_ = & typeid (T);
273
1.50k
      return *new (yyas_<T> ()) T (std::forward <U>(u)...);
274
1.50k
    }
double& isc::d2::D2Parser::value_type::emplace<double, double>(double&&)
Line
Count
Source
269
6.56k
    {
270
6.56k
      D2_PARSER__ASSERT (!yytypeid_);
271
      D2_PARSER__ASSERT (sizeof (T) <= size);
272
6.56k
      yytypeid_ = & typeid (T);
273
6.56k
      return *new (yyas_<T> ()) T (std::forward <U>(u)...);
274
6.56k
    }
long& isc::d2::D2Parser::value_type::emplace<long, long>(long&&)
Line
Count
Source
269
49.0k
    {
270
49.0k
      D2_PARSER__ASSERT (!yytypeid_);
271
      D2_PARSER__ASSERT (sizeof (T) <= size);
272
49.0k
      yytypeid_ = & typeid (T);
273
49.0k
      return *new (yyas_<T> ()) T (std::forward <U>(u)...);
274
49.0k
    }
std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >& isc::d2::D2Parser::value_type::emplace<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&&)
Line
Count
Source
269
166k
    {
270
166k
      D2_PARSER__ASSERT (!yytypeid_);
271
      D2_PARSER__ASSERT (sizeof (T) <= size);
272
166k
      yytypeid_ = & typeid (T);
273
166k
      return *new (yyas_<T> ()) T (std::forward <U>(u)...);
274
166k
    }
boost::shared_ptr<isc::data::Element>& isc::d2::D2Parser::value_type::emplace<boost::shared_ptr<isc::data::Element>>()
Line
Count
Source
269
186k
    {
270
186k
      D2_PARSER__ASSERT (!yytypeid_);
271
      D2_PARSER__ASSERT (sizeof (T) <= size);
272
186k
      yytypeid_ = & typeid (T);
273
186k
      return *new (yyas_<T> ()) T (std::forward <U>(u)...);
274
186k
    }
Unexecuted instantiation: bool& isc::d2::D2Parser::value_type::emplace<bool>()
Unexecuted instantiation: double& isc::d2::D2Parser::value_type::emplace<double>()
Unexecuted instantiation: long& isc::d2::D2Parser::value_type::emplace<long>()
Unexecuted instantiation: std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >& isc::d2::D2Parser::value_type::emplace<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >>()
275
# else
276
    /// Instantiate an empty \a T in here.
277
    template <typename T>
278
    T&
279
    emplace ()
280
    {
281
      D2_PARSER__ASSERT (!yytypeid_);
282
      D2_PARSER__ASSERT (sizeof (T) <= size);
283
      yytypeid_ = & typeid (T);
284
      return *new (yyas_<T> ()) T ();
285
    }
286
287
    /// Instantiate a \a T in here from \a t.
288
    template <typename T>
289
    T&
290
    emplace (const T& t)
291
    {
292
      D2_PARSER__ASSERT (!yytypeid_);
293
      D2_PARSER__ASSERT (sizeof (T) <= size);
294
      yytypeid_ = & typeid (T);
295
      return *new (yyas_<T> ()) T (t);
296
    }
297
# endif
298
299
    /// Instantiate an empty \a T in here.
300
    /// Obsolete, use emplace.
301
    template <typename T>
302
    T&
303
    build ()
304
    {
305
      return emplace<T> ();
306
    }
307
308
    /// Instantiate a \a T in here from \a t.
309
    /// Obsolete, use emplace.
310
    template <typename T>
311
    T&
312
    build (const T& t)
313
    {
314
      return emplace<T> (t);
315
    }
316
317
    /// Accessor to a built \a T.
318
    template <typename T>
319
    T&
320
    as () YY_NOEXCEPT
321
1.51M
    {
322
1.51M
      D2_PARSER__ASSERT (yytypeid_);
323
1.51M
      D2_PARSER__ASSERT (*yytypeid_ == typeid (T));
324
1.51M
      D2_PARSER__ASSERT (sizeof (T) <= size);
325
1.51M
      return *yyas_<T> ();
326
1.51M
    }
boost::shared_ptr<isc::data::Element>& isc::d2::D2Parser::value_type::as<boost::shared_ptr<isc::data::Element> >()
Line
Count
Source
321
930k
    {
322
930k
      D2_PARSER__ASSERT (yytypeid_);
323
930k
      D2_PARSER__ASSERT (*yytypeid_ == typeid (T));
324
      D2_PARSER__ASSERT (sizeof (T) <= size);
325
930k
      return *yyas_<T> ();
326
930k
    }
bool& isc::d2::D2Parser::value_type::as<bool>()
Line
Count
Source
321
4.01k
    {
322
4.01k
      D2_PARSER__ASSERT (yytypeid_);
323
4.01k
      D2_PARSER__ASSERT (*yytypeid_ == typeid (T));
324
      D2_PARSER__ASSERT (sizeof (T) <= size);
325
4.01k
      return *yyas_<T> ();
326
4.01k
    }
double& isc::d2::D2Parser::value_type::as<double>()
Line
Count
Source
321
17.5k
    {
322
17.5k
      D2_PARSER__ASSERT (yytypeid_);
323
17.5k
      D2_PARSER__ASSERT (*yytypeid_ == typeid (T));
324
      D2_PARSER__ASSERT (sizeof (T) <= size);
325
17.5k
      return *yyas_<T> ();
326
17.5k
    }
long& isc::d2::D2Parser::value_type::as<long>()
Line
Count
Source
321
131k
    {
322
131k
      D2_PARSER__ASSERT (yytypeid_);
323
131k
      D2_PARSER__ASSERT (*yytypeid_ == typeid (T));
324
      D2_PARSER__ASSERT (sizeof (T) <= size);
325
131k
      return *yyas_<T> ();
326
131k
    }
std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >& isc::d2::D2Parser::value_type::as<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Line
Count
Source
321
434k
    {
322
434k
      D2_PARSER__ASSERT (yytypeid_);
323
434k
      D2_PARSER__ASSERT (*yytypeid_ == typeid (T));
324
      D2_PARSER__ASSERT (sizeof (T) <= size);
325
434k
      return *yyas_<T> ();
326
434k
    }
327
328
    /// Const accessor to a built \a T (for %printer).
329
    template <typename T>
330
    const T&
331
    as () const YY_NOEXCEPT
332
0
    {
333
0
      D2_PARSER__ASSERT (yytypeid_);
334
0
      D2_PARSER__ASSERT (*yytypeid_ == typeid (T));
335
0
      D2_PARSER__ASSERT (sizeof (T) <= size);
336
0
      return *yyas_<T> ();
337
0
    }
Unexecuted instantiation: std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const& isc::d2::D2Parser::value_type::as<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >() const
Unexecuted instantiation: long const& isc::d2::D2Parser::value_type::as<long>() const
Unexecuted instantiation: double const& isc::d2::D2Parser::value_type::as<double>() const
Unexecuted instantiation: bool const& isc::d2::D2Parser::value_type::as<bool>() const
Unexecuted instantiation: boost::shared_ptr<isc::data::Element> const& isc::d2::D2Parser::value_type::as<boost::shared_ptr<isc::data::Element> >() const
338
339
    /// Swap the content with \a that, of same type.
340
    ///
341
    /// Both variants must be built beforehand, because swapping the actual
342
    /// data requires reading it (with as()), and this is not possible on
343
    /// unconstructed variants: it would require some dynamic testing, which
344
    /// should not be the variant's responsibility.
345
    /// Swapping between built and (possibly) non-built is done with
346
    /// self_type::move ().
347
    template <typename T>
348
    void
349
    swap (self_type& that) YY_NOEXCEPT
350
    {
351
      D2_PARSER__ASSERT (yytypeid_);
352
      D2_PARSER__ASSERT (*yytypeid_ == *that.yytypeid_);
353
      std::swap (as<T> (), that.as<T> ());
354
    }
355
356
    /// Move the content of \a that to this.
357
    ///
358
    /// Destroys \a that.
359
    template <typename T>
360
    void
361
    move (self_type& that)
362
    {
363
# if 201103L <= YY_CPLUSPLUS
364
      emplace<T> (std::move (that.as<T> ()));
365
# else
366
      emplace<T> ();
367
      swap<T> (that);
368
# endif
369
      that.destroy<T> ();
370
    }
371
372
# if 201103L <= YY_CPLUSPLUS
373
    /// Move the content of \a that to this.
374
    template <typename T>
375
    void
376
    move (self_type&& that)
377
409k
    {
378
409k
      emplace<T> (std::move (that.as<T> ()));
379
409k
      that.destroy<T> ();
380
409k
    }
void isc::d2::D2Parser::value_type::move<boost::shared_ptr<isc::data::Element> >(isc::d2::D2Parser::value_type&&)
Line
Count
Source
377
186k
    {
378
186k
      emplace<T> (std::move (that.as<T> ()));
379
186k
      that.destroy<T> ();
380
186k
    }
void isc::d2::D2Parser::value_type::move<bool>(isc::d2::D2Parser::value_type&&)
Line
Count
Source
377
1.50k
    {
378
1.50k
      emplace<T> (std::move (that.as<T> ()));
379
1.50k
      that.destroy<T> ();
380
1.50k
    }
void isc::d2::D2Parser::value_type::move<double>(isc::d2::D2Parser::value_type&&)
Line
Count
Source
377
6.56k
    {
378
6.56k
      emplace<T> (std::move (that.as<T> ()));
379
6.56k
      that.destroy<T> ();
380
6.56k
    }
void isc::d2::D2Parser::value_type::move<long>(isc::d2::D2Parser::value_type&&)
Line
Count
Source
377
49.0k
    {
378
49.0k
      emplace<T> (std::move (that.as<T> ()));
379
49.0k
      that.destroy<T> ();
380
49.0k
    }
void isc::d2::D2Parser::value_type::move<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(isc::d2::D2Parser::value_type&&)
Line
Count
Source
377
166k
    {
378
166k
      emplace<T> (std::move (that.as<T> ()));
379
166k
      that.destroy<T> ();
380
166k
    }
381
#endif
382
383
    /// Copy the content of \a that to this.
384
    template <typename T>
385
    void
386
    copy (const self_type& that)
387
    {
388
      emplace<T> (that.as<T> ());
389
    }
390
391
    /// Destroy the stored \a T.
392
    template <typename T>
393
    void
394
    destroy ()
395
665k
    {
396
665k
      as<T> ().~T ();
397
665k
      yytypeid_ = YY_NULLPTR;
398
665k
    }
void isc::d2::D2Parser::value_type::destroy<boost::shared_ptr<isc::data::Element> >()
Line
Count
Source
395
372k
    {
396
372k
      as<T> ().~T ();
397
372k
      yytypeid_ = YY_NULLPTR;
398
372k
    }
void isc::d2::D2Parser::value_type::destroy<bool>()
Line
Count
Source
395
2.01k
    {
396
2.01k
      as<T> ().~T ();
397
2.01k
      yytypeid_ = YY_NULLPTR;
398
2.01k
    }
void isc::d2::D2Parser::value_type::destroy<double>()
Line
Count
Source
395
8.78k
    {
396
8.78k
      as<T> ().~T ();
397
8.78k
      yytypeid_ = YY_NULLPTR;
398
8.78k
    }
void isc::d2::D2Parser::value_type::destroy<long>()
Line
Count
Source
395
65.6k
    {
396
65.6k
      as<T> ().~T ();
397
65.6k
      yytypeid_ = YY_NULLPTR;
398
65.6k
    }
void isc::d2::D2Parser::value_type::destroy<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Line
Count
Source
395
216k
    {
396
216k
      as<T> ().~T ();
397
216k
      yytypeid_ = YY_NULLPTR;
398
216k
    }
399
400
  private:
401
#if YY_CPLUSPLUS < 201103L
402
    /// Non copyable.
403
    value_type (const self_type&);
404
    /// Non copyable.
405
    self_type& operator= (const self_type&);
406
#endif
407
408
    /// Accessor to raw memory as \a T.
409
    template <typename T>
410
    T*
411
    yyas_ () YY_NOEXCEPT
412
2.18M
    {
413
2.18M
      void *yyp = yyraw_;
414
2.18M
      return static_cast<T*> (yyp);
415
2.18M
     }
boost::shared_ptr<isc::data::Element>* isc::d2::D2Parser::value_type::yyas_<boost::shared_ptr<isc::data::Element> >()
Line
Count
Source
412
1.30M
    {
413
1.30M
      void *yyp = yyraw_;
414
1.30M
      return static_cast<T*> (yyp);
415
1.30M
     }
bool* isc::d2::D2Parser::value_type::yyas_<bool>()
Line
Count
Source
412
6.02k
    {
413
6.02k
      void *yyp = yyraw_;
414
6.02k
      return static_cast<T*> (yyp);
415
6.02k
     }
double* isc::d2::D2Parser::value_type::yyas_<double>()
Line
Count
Source
412
26.3k
    {
413
26.3k
      void *yyp = yyraw_;
414
26.3k
      return static_cast<T*> (yyp);
415
26.3k
     }
long* isc::d2::D2Parser::value_type::yyas_<long>()
Line
Count
Source
412
197k
    {
413
197k
      void *yyp = yyraw_;
414
197k
      return static_cast<T*> (yyp);
415
197k
     }
std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >* isc::d2::D2Parser::value_type::yyas_<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Line
Count
Source
412
651k
    {
413
651k
      void *yyp = yyraw_;
414
651k
      return static_cast<T*> (yyp);
415
651k
     }
416
417
    /// Const accessor to raw memory as \a T.
418
    template <typename T>
419
    const T*
420
    yyas_ () const YY_NOEXCEPT
421
0
    {
422
0
      const void *yyp = yyraw_;
423
0
      return static_cast<const T*> (yyp);
424
0
     }
Unexecuted instantiation: std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const* isc::d2::D2Parser::value_type::yyas_<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >() const
Unexecuted instantiation: long const* isc::d2::D2Parser::value_type::yyas_<long>() const
Unexecuted instantiation: double const* isc::d2::D2Parser::value_type::yyas_<double>() const
Unexecuted instantiation: bool const* isc::d2::D2Parser::value_type::yyas_<bool>() const
Unexecuted instantiation: boost::shared_ptr<isc::data::Element> const* isc::d2::D2Parser::value_type::yyas_<boost::shared_ptr<isc::data::Element> >() const
425
426
    /// An auxiliary type to compute the largest semantic type.
427
    union union_type
428
    {
429
      // value
430
      // map_value
431
      // ncr_protocol_value
432
      // control_socket_type_value
433
      // auth_type_value
434
      char dummy1[sizeof (ElementPtr)];
435
436
      // "boolean"
437
      char dummy2[sizeof (bool)];
438
439
      // "floating point"
440
      char dummy3[sizeof (double)];
441
442
      // "integer"
443
      char dummy4[sizeof (int64_t)];
444
445
      // "constant string"
446
      char dummy5[sizeof (std::string)];
447
    };
448
449
    /// The size of the largest semantic type.
450
    enum { size = sizeof (union_type) };
451
452
    /// A buffer to store semantic values.
453
    union
454
    {
455
      /// Strongest alignment constraints.
456
      long double yyalign_me_;
457
      /// A buffer large enough to store any of the semantic values.
458
      char yyraw_[size];
459
    };
460
461
    /// Whether the content is built: if defined, the name of the stored type.
462
    const std::type_info *yytypeid_;
463
  };
464
465
#endif
466
    /// Backward compatibility (Bison 3.8).
467
    typedef value_type semantic_type;
468
469
    /// Symbol locations.
470
    typedef location location_type;
471
472
    /// Syntax errors thrown from user actions.
473
    struct syntax_error : std::runtime_error
474
    {
475
      syntax_error (const location_type& l, const std::string& m)
476
        : std::runtime_error (m)
477
        , location (l)
478
0
      {}
479
480
      syntax_error (const syntax_error& s)
481
        : std::runtime_error (s.what ())
482
        , location (s.location)
483
0
      {}
484
485
      ~syntax_error () YY_NOEXCEPT YY_NOTHROW;
486
487
      location_type location;
488
    };
489
490
    /// Token kinds.
491
    struct token
492
    {
493
      enum token_kind_type
494
      {
495
        TOKEN_D2_PARSER_EMPTY = -2,
496
    TOKEN_END = 0,                 // "end of file"
497
    TOKEN_D2_PARSER_error = 256,   // error
498
    TOKEN_D2_PARSER_UNDEF = 257,   // "invalid token"
499
    TOKEN_COMMA = 258,             // ","
500
    TOKEN_COLON = 259,             // ":"
501
    TOKEN_LSQUARE_BRACKET = 260,   // "["
502
    TOKEN_RSQUARE_BRACKET = 261,   // "]"
503
    TOKEN_LCURLY_BRACKET = 262,    // "{"
504
    TOKEN_RCURLY_BRACKET = 263,    // "}"
505
    TOKEN_NULL_TYPE = 264,         // "null"
506
    TOKEN_DHCPDDNS = 265,          // "DhcpDdns"
507
    TOKEN_IP_ADDRESS = 266,        // "ip-address"
508
    TOKEN_PORT = 267,              // "port"
509
    TOKEN_DNS_SERVER_TIMEOUT = 268, // "dns-server-timeout"
510
    TOKEN_NCR_PROTOCOL = 269,      // "ncr-protocol"
511
    TOKEN_UDP = 270,               // "UDP"
512
    TOKEN_TCP = 271,               // "TCP"
513
    TOKEN_NCR_FORMAT = 272,        // "ncr-format"
514
    TOKEN_JSON = 273,              // "JSON"
515
    TOKEN_USER_CONTEXT = 274,      // "user-context"
516
    TOKEN_COMMENT = 275,           // "comment"
517
    TOKEN_FORWARD_DDNS = 276,      // "forward-ddns"
518
    TOKEN_REVERSE_DDNS = 277,      // "reverse-ddns"
519
    TOKEN_DDNS_DOMAINS = 278,      // "ddns-domains"
520
    TOKEN_KEY_NAME = 279,          // "key-name"
521
    TOKEN_DNS_SERVERS = 280,       // "dns-servers"
522
    TOKEN_HOSTNAME = 281,          // "hostname"
523
    TOKEN_TSIG_KEYS = 282,         // "tsig-keys"
524
    TOKEN_ALGORITHM = 283,         // "algorithm"
525
    TOKEN_DIGEST_BITS = 284,       // "digest-bits"
526
    TOKEN_SECRET = 285,            // "secret"
527
    TOKEN_SECRET_FILE = 286,       // "secret-file"
528
    TOKEN_CONTROL_SOCKET = 287,    // "control-socket"
529
    TOKEN_CONTROL_SOCKETS = 288,   // "control-sockets"
530
    TOKEN_SOCKET_TYPE = 289,       // "socket-type"
531
    TOKEN_UNIX = 290,              // "unix"
532
    TOKEN_HTTP = 291,              // "http"
533
    TOKEN_HTTPS = 292,             // "https"
534
    TOKEN_SOCKET_NAME = 293,       // "socket-name"
535
    TOKEN_SOCKET_ADDRESS = 294,    // "socket-address"
536
    TOKEN_SOCKET_PORT = 295,       // "socket-port"
537
    TOKEN_AUTHENTICATION = 296,    // "authentication"
538
    TOKEN_TYPE = 297,              // "type"
539
    TOKEN_BASIC = 298,             // "basic"
540
    TOKEN_REALM = 299,             // "realm"
541
    TOKEN_DIRECTORY = 300,         // "directory"
542
    TOKEN_CLIENTS = 301,           // "clients"
543
    TOKEN_USER = 302,              // "user"
544
    TOKEN_USER_FILE = 303,         // "user-file"
545
    TOKEN_PASSWORD = 304,          // "password"
546
    TOKEN_PASSWORD_FILE = 305,     // "password-file"
547
    TOKEN_TRUST_ANCHOR = 306,      // "trust-anchor"
548
    TOKEN_CERT_FILE = 307,         // "cert-file"
549
    TOKEN_KEY_FILE = 308,          // "key-file"
550
    TOKEN_CERT_REQUIRED = 309,     // "cert-required"
551
    TOKEN_HOOKS_LIBRARIES = 310,   // "hooks-libraries"
552
    TOKEN_LIBRARY = 311,           // "library"
553
    TOKEN_PARAMETERS = 312,        // "parameters"
554
    TOKEN_LOGGERS = 313,           // "loggers"
555
    TOKEN_NAME = 314,              // "name"
556
    TOKEN_OUTPUT_OPTIONS = 315,    // "output-options"
557
    TOKEN_OUTPUT = 316,            // "output"
558
    TOKEN_DEBUGLEVEL = 317,        // "debuglevel"
559
    TOKEN_SEVERITY = 318,          // "severity"
560
    TOKEN_FLUSH = 319,             // "flush"
561
    TOKEN_MAXSIZE = 320,           // "maxsize"
562
    TOKEN_MAXVER = 321,            // "maxver"
563
    TOKEN_PATTERN = 322,           // "pattern"
564
    TOKEN_TOPLEVEL_JSON = 323,     // TOPLEVEL_JSON
565
    TOKEN_TOPLEVEL_DHCPDDNS = 324, // TOPLEVEL_DHCPDDNS
566
    TOKEN_SUB_DHCPDDNS = 325,      // SUB_DHCPDDNS
567
    TOKEN_SUB_TSIG_KEY = 326,      // SUB_TSIG_KEY
568
    TOKEN_SUB_TSIG_KEYS = 327,     // SUB_TSIG_KEYS
569
    TOKEN_SUB_DDNS_DOMAIN = 328,   // SUB_DDNS_DOMAIN
570
    TOKEN_SUB_DDNS_DOMAINS = 329,  // SUB_DDNS_DOMAINS
571
    TOKEN_SUB_DNS_SERVER = 330,    // SUB_DNS_SERVER
572
    TOKEN_SUB_DNS_SERVERS = 331,   // SUB_DNS_SERVERS
573
    TOKEN_SUB_HOOKS_LIBRARY = 332, // SUB_HOOKS_LIBRARY
574
    TOKEN_STRING = 333,            // "constant string"
575
    TOKEN_INTEGER = 334,           // "integer"
576
    TOKEN_FLOAT = 335,             // "floating point"
577
    TOKEN_BOOLEAN = 336            // "boolean"
578
      };
579
      /// Backward compatibility alias (Bison 3.6).
580
      typedef token_kind_type yytokentype;
581
    };
582
583
    /// Token kind, as returned by yylex.
584
    typedef token::token_kind_type token_kind_type;
585
586
    /// Backward compatibility alias (Bison 3.6).
587
    typedef token_kind_type token_type;
588
589
    /// Symbol kinds.
590
    struct symbol_kind
591
    {
592
      enum symbol_kind_type
593
      {
594
        YYNTOKENS = 82, ///< Number of tokens.
595
        S_YYEMPTY = -2,
596
        S_YYEOF = 0,                             // "end of file"
597
        S_YYerror = 1,                           // error
598
        S_YYUNDEF = 2,                           // "invalid token"
599
        S_COMMA = 3,                             // ","
600
        S_COLON = 4,                             // ":"
601
        S_LSQUARE_BRACKET = 5,                   // "["
602
        S_RSQUARE_BRACKET = 6,                   // "]"
603
        S_LCURLY_BRACKET = 7,                    // "{"
604
        S_RCURLY_BRACKET = 8,                    // "}"
605
        S_NULL_TYPE = 9,                         // "null"
606
        S_DHCPDDNS = 10,                         // "DhcpDdns"
607
        S_IP_ADDRESS = 11,                       // "ip-address"
608
        S_PORT = 12,                             // "port"
609
        S_DNS_SERVER_TIMEOUT = 13,               // "dns-server-timeout"
610
        S_NCR_PROTOCOL = 14,                     // "ncr-protocol"
611
        S_UDP = 15,                              // "UDP"
612
        S_TCP = 16,                              // "TCP"
613
        S_NCR_FORMAT = 17,                       // "ncr-format"
614
        S_JSON = 18,                             // "JSON"
615
        S_USER_CONTEXT = 19,                     // "user-context"
616
        S_COMMENT = 20,                          // "comment"
617
        S_FORWARD_DDNS = 21,                     // "forward-ddns"
618
        S_REVERSE_DDNS = 22,                     // "reverse-ddns"
619
        S_DDNS_DOMAINS = 23,                     // "ddns-domains"
620
        S_KEY_NAME = 24,                         // "key-name"
621
        S_DNS_SERVERS = 25,                      // "dns-servers"
622
        S_HOSTNAME = 26,                         // "hostname"
623
        S_TSIG_KEYS = 27,                        // "tsig-keys"
624
        S_ALGORITHM = 28,                        // "algorithm"
625
        S_DIGEST_BITS = 29,                      // "digest-bits"
626
        S_SECRET = 30,                           // "secret"
627
        S_SECRET_FILE = 31,                      // "secret-file"
628
        S_CONTROL_SOCKET = 32,                   // "control-socket"
629
        S_CONTROL_SOCKETS = 33,                  // "control-sockets"
630
        S_SOCKET_TYPE = 34,                      // "socket-type"
631
        S_UNIX = 35,                             // "unix"
632
        S_HTTP = 36,                             // "http"
633
        S_HTTPS = 37,                            // "https"
634
        S_SOCKET_NAME = 38,                      // "socket-name"
635
        S_SOCKET_ADDRESS = 39,                   // "socket-address"
636
        S_SOCKET_PORT = 40,                      // "socket-port"
637
        S_AUTHENTICATION = 41,                   // "authentication"
638
        S_TYPE = 42,                             // "type"
639
        S_BASIC = 43,                            // "basic"
640
        S_REALM = 44,                            // "realm"
641
        S_DIRECTORY = 45,                        // "directory"
642
        S_CLIENTS = 46,                          // "clients"
643
        S_USER = 47,                             // "user"
644
        S_USER_FILE = 48,                        // "user-file"
645
        S_PASSWORD = 49,                         // "password"
646
        S_PASSWORD_FILE = 50,                    // "password-file"
647
        S_TRUST_ANCHOR = 51,                     // "trust-anchor"
648
        S_CERT_FILE = 52,                        // "cert-file"
649
        S_KEY_FILE = 53,                         // "key-file"
650
        S_CERT_REQUIRED = 54,                    // "cert-required"
651
        S_HOOKS_LIBRARIES = 55,                  // "hooks-libraries"
652
        S_LIBRARY = 56,                          // "library"
653
        S_PARAMETERS = 57,                       // "parameters"
654
        S_LOGGERS = 58,                          // "loggers"
655
        S_NAME = 59,                             // "name"
656
        S_OUTPUT_OPTIONS = 60,                   // "output-options"
657
        S_OUTPUT = 61,                           // "output"
658
        S_DEBUGLEVEL = 62,                       // "debuglevel"
659
        S_SEVERITY = 63,                         // "severity"
660
        S_FLUSH = 64,                            // "flush"
661
        S_MAXSIZE = 65,                          // "maxsize"
662
        S_MAXVER = 66,                           // "maxver"
663
        S_PATTERN = 67,                          // "pattern"
664
        S_TOPLEVEL_JSON = 68,                    // TOPLEVEL_JSON
665
        S_TOPLEVEL_DHCPDDNS = 69,                // TOPLEVEL_DHCPDDNS
666
        S_SUB_DHCPDDNS = 70,                     // SUB_DHCPDDNS
667
        S_SUB_TSIG_KEY = 71,                     // SUB_TSIG_KEY
668
        S_SUB_TSIG_KEYS = 72,                    // SUB_TSIG_KEYS
669
        S_SUB_DDNS_DOMAIN = 73,                  // SUB_DDNS_DOMAIN
670
        S_SUB_DDNS_DOMAINS = 74,                 // SUB_DDNS_DOMAINS
671
        S_SUB_DNS_SERVER = 75,                   // SUB_DNS_SERVER
672
        S_SUB_DNS_SERVERS = 76,                  // SUB_DNS_SERVERS
673
        S_SUB_HOOKS_LIBRARY = 77,                // SUB_HOOKS_LIBRARY
674
        S_STRING = 78,                           // "constant string"
675
        S_INTEGER = 79,                          // "integer"
676
        S_FLOAT = 80,                            // "floating point"
677
        S_BOOLEAN = 81,                          // "boolean"
678
        S_YYACCEPT = 82,                         // $accept
679
        S_start = 83,                            // start
680
        S_84_1 = 84,                             // $@1
681
        S_85_2 = 85,                             // $@2
682
        S_86_3 = 86,                             // $@3
683
        S_87_4 = 87,                             // $@4
684
        S_88_5 = 88,                             // $@5
685
        S_89_6 = 89,                             // $@6
686
        S_90_7 = 90,                             // $@7
687
        S_91_8 = 91,                             // $@8
688
        S_92_9 = 92,                             // $@9
689
        S_93_10 = 93,                            // $@10
690
        S_value = 94,                            // value
691
        S_sub_json = 95,                         // sub_json
692
        S_map2 = 96,                             // map2
693
        S_97_11 = 97,                            // $@11
694
        S_map_value = 98,                        // map_value
695
        S_map_content = 99,                      // map_content
696
        S_not_empty_map = 100,                   // not_empty_map
697
        S_list_generic = 101,                    // list_generic
698
        S_102_12 = 102,                          // $@12
699
        S_list_content = 103,                    // list_content
700
        S_not_empty_list = 104,                  // not_empty_list
701
        S_unknown_map_entry = 105,               // unknown_map_entry
702
        S_syntax_map = 106,                      // syntax_map
703
        S_107_13 = 107,                          // $@13
704
        S_global_object = 108,                   // global_object
705
        S_109_14 = 109,                          // $@14
706
        S_global_object_comma = 110,             // global_object_comma
707
        S_sub_dhcpddns = 111,                    // sub_dhcpddns
708
        S_112_15 = 112,                          // $@15
709
        S_dhcpddns_params = 113,                 // dhcpddns_params
710
        S_dhcpddns_param = 114,                  // dhcpddns_param
711
        S_ip_address = 115,                      // ip_address
712
        S_116_16 = 116,                          // $@16
713
        S_port = 117,                            // port
714
        S_dns_server_timeout = 118,              // dns_server_timeout
715
        S_ncr_protocol = 119,                    // ncr_protocol
716
        S_120_17 = 120,                          // $@17
717
        S_ncr_protocol_value = 121,              // ncr_protocol_value
718
        S_ncr_format = 122,                      // ncr_format
719
        S_123_18 = 123,                          // $@18
720
        S_user_context = 124,                    // user_context
721
        S_125_19 = 125,                          // $@19
722
        S_comment = 126,                         // comment
723
        S_127_20 = 127,                          // $@20
724
        S_forward_ddns = 128,                    // forward_ddns
725
        S_129_21 = 129,                          // $@21
726
        S_reverse_ddns = 130,                    // reverse_ddns
727
        S_131_22 = 131,                          // $@22
728
        S_ddns_mgr_params = 132,                 // ddns_mgr_params
729
        S_not_empty_ddns_mgr_params = 133,       // not_empty_ddns_mgr_params
730
        S_ddns_mgr_param = 134,                  // ddns_mgr_param
731
        S_ddns_domains = 135,                    // ddns_domains
732
        S_136_23 = 136,                          // $@23
733
        S_sub_ddns_domains = 137,                // sub_ddns_domains
734
        S_138_24 = 138,                          // $@24
735
        S_ddns_domain_list = 139,                // ddns_domain_list
736
        S_not_empty_ddns_domain_list = 140,      // not_empty_ddns_domain_list
737
        S_ddns_domain = 141,                     // ddns_domain
738
        S_142_25 = 142,                          // $@25
739
        S_sub_ddns_domain = 143,                 // sub_ddns_domain
740
        S_144_26 = 144,                          // $@26
741
        S_ddns_domain_params = 145,              // ddns_domain_params
742
        S_ddns_domain_param = 146,               // ddns_domain_param
743
        S_ddns_domain_name = 147,                // ddns_domain_name
744
        S_148_27 = 148,                          // $@27
745
        S_ddns_key_name = 149,                   // ddns_key_name
746
        S_150_28 = 150,                          // $@28
747
        S_dns_servers = 151,                     // dns_servers
748
        S_152_29 = 152,                          // $@29
749
        S_sub_dns_servers = 153,                 // sub_dns_servers
750
        S_154_30 = 154,                          // $@30
751
        S_dns_server_list = 155,                 // dns_server_list
752
        S_dns_server = 156,                      // dns_server
753
        S_157_31 = 157,                          // $@31
754
        S_sub_dns_server = 158,                  // sub_dns_server
755
        S_159_32 = 159,                          // $@32
756
        S_dns_server_params = 160,               // dns_server_params
757
        S_dns_server_param = 161,                // dns_server_param
758
        S_dns_server_hostname = 162,             // dns_server_hostname
759
        S_163_33 = 163,                          // $@33
760
        S_dns_server_ip_address = 164,           // dns_server_ip_address
761
        S_165_34 = 165,                          // $@34
762
        S_dns_server_port = 166,                 // dns_server_port
763
        S_tsig_keys = 167,                       // tsig_keys
764
        S_168_35 = 168,                          // $@35
765
        S_sub_tsig_keys = 169,                   // sub_tsig_keys
766
        S_170_36 = 170,                          // $@36
767
        S_tsig_keys_list = 171,                  // tsig_keys_list
768
        S_not_empty_tsig_keys_list = 172,        // not_empty_tsig_keys_list
769
        S_tsig_key = 173,                        // tsig_key
770
        S_174_37 = 174,                          // $@37
771
        S_sub_tsig_key = 175,                    // sub_tsig_key
772
        S_176_38 = 176,                          // $@38
773
        S_tsig_key_params = 177,                 // tsig_key_params
774
        S_tsig_key_param = 178,                  // tsig_key_param
775
        S_tsig_key_name = 179,                   // tsig_key_name
776
        S_180_39 = 180,                          // $@39
777
        S_tsig_key_algorithm = 181,              // tsig_key_algorithm
778
        S_182_40 = 182,                          // $@40
779
        S_tsig_key_digest_bits = 183,            // tsig_key_digest_bits
780
        S_tsig_key_secret = 184,                 // tsig_key_secret
781
        S_185_41 = 185,                          // $@41
782
        S_tsig_key_secret_file = 186,            // tsig_key_secret_file
783
        S_187_42 = 187,                          // $@42
784
        S_control_socket = 188,                  // control_socket
785
        S_189_43 = 189,                          // $@43
786
        S_control_sockets = 190,                 // control_sockets
787
        S_191_44 = 191,                          // $@44
788
        S_control_socket_list = 192,             // control_socket_list
789
        S_not_empty_control_socket_list = 193,   // not_empty_control_socket_list
790
        S_control_socket_entry = 194,            // control_socket_entry
791
        S_195_45 = 195,                          // $@45
792
        S_control_socket_params = 196,           // control_socket_params
793
        S_control_socket_param = 197,            // control_socket_param
794
        S_control_socket_type = 198,             // control_socket_type
795
        S_199_46 = 199,                          // $@46
796
        S_control_socket_type_value = 200,       // control_socket_type_value
797
        S_control_socket_name = 201,             // control_socket_name
798
        S_202_47 = 202,                          // $@47
799
        S_control_socket_address = 203,          // control_socket_address
800
        S_204_48 = 204,                          // $@48
801
        S_control_socket_port = 205,             // control_socket_port
802
        S_trust_anchor = 206,                    // trust_anchor
803
        S_207_49 = 207,                          // $@49
804
        S_cert_file = 208,                       // cert_file
805
        S_209_50 = 209,                          // $@50
806
        S_key_file = 210,                        // key_file
807
        S_211_51 = 211,                          // $@51
808
        S_cert_required = 212,                   // cert_required
809
        S_authentication = 213,                  // authentication
810
        S_214_52 = 214,                          // $@52
811
        S_auth_params = 215,                     // auth_params
812
        S_auth_param = 216,                      // auth_param
813
        S_auth_type = 217,                       // auth_type
814
        S_218_53 = 218,                          // $@53
815
        S_auth_type_value = 219,                 // auth_type_value
816
        S_realm = 220,                           // realm
817
        S_221_54 = 221,                          // $@54
818
        S_directory = 222,                       // directory
819
        S_223_55 = 223,                          // $@55
820
        S_clients = 224,                         // clients
821
        S_225_56 = 225,                          // $@56
822
        S_clients_list = 226,                    // clients_list
823
        S_not_empty_clients_list = 227,          // not_empty_clients_list
824
        S_basic_auth = 228,                      // basic_auth
825
        S_229_57 = 229,                          // $@57
826
        S_clients_params = 230,                  // clients_params
827
        S_clients_param = 231,                   // clients_param
828
        S_user = 232,                            // user
829
        S_233_58 = 233,                          // $@58
830
        S_user_file = 234,                       // user_file
831
        S_235_59 = 235,                          // $@59
832
        S_password = 236,                        // password
833
        S_237_60 = 237,                          // $@60
834
        S_password_file = 238,                   // password_file
835
        S_239_61 = 239,                          // $@61
836
        S_hooks_libraries = 240,                 // hooks_libraries
837
        S_241_62 = 241,                          // $@62
838
        S_hooks_libraries_list = 242,            // hooks_libraries_list
839
        S_not_empty_hooks_libraries_list = 243,  // not_empty_hooks_libraries_list
840
        S_hooks_library = 244,                   // hooks_library
841
        S_245_63 = 245,                          // $@63
842
        S_sub_hooks_library = 246,               // sub_hooks_library
843
        S_247_64 = 247,                          // $@64
844
        S_hooks_params = 248,                    // hooks_params
845
        S_hooks_param = 249,                     // hooks_param
846
        S_library = 250,                         // library
847
        S_251_65 = 251,                          // $@65
848
        S_parameters = 252,                      // parameters
849
        S_253_66 = 253,                          // $@66
850
        S_loggers = 254,                         // loggers
851
        S_255_67 = 255,                          // $@67
852
        S_loggers_entries = 256,                 // loggers_entries
853
        S_logger_entry = 257,                    // logger_entry
854
        S_258_68 = 258,                          // $@68
855
        S_logger_params = 259,                   // logger_params
856
        S_logger_param = 260,                    // logger_param
857
        S_name = 261,                            // name
858
        S_262_69 = 262,                          // $@69
859
        S_debuglevel = 263,                      // debuglevel
860
        S_severity = 264,                        // severity
861
        S_265_70 = 265,                          // $@70
862
        S_output_options_list = 266,             // output_options_list
863
        S_267_71 = 267,                          // $@71
864
        S_output_options_list_content = 268,     // output_options_list_content
865
        S_output_entry = 269,                    // output_entry
866
        S_270_72 = 270,                          // $@72
867
        S_output_params_list = 271,              // output_params_list
868
        S_output_params = 272,                   // output_params
869
        S_output = 273,                          // output
870
        S_274_73 = 274,                          // $@73
871
        S_flush = 275,                           // flush
872
        S_maxsize = 276,                         // maxsize
873
        S_maxver = 277,                          // maxver
874
        S_pattern = 278,                         // pattern
875
        S_279_74 = 279                           // $@74
876
      };
877
    };
878
879
    /// (Internal) symbol kind.
880
    typedef symbol_kind::symbol_kind_type symbol_kind_type;
881
882
    /// The number of tokens.
883
    static const symbol_kind_type YYNTOKENS = symbol_kind::YYNTOKENS;
884
885
    /// A complete symbol.
886
    ///
887
    /// Expects its Base type to provide access to the symbol kind
888
    /// via kind ().
889
    ///
890
    /// Provide access to semantic value and location.
891
    template <typename Base>
892
    struct basic_symbol : Base
893
    {
894
      /// Alias to Base.
895
      typedef Base super_type;
896
897
      /// Default constructor.
898
      basic_symbol () YY_NOEXCEPT
899
4.33M
        : value ()
900
4.33M
        , location ()
901
4.33M
      {}
isc::d2::D2Parser::basic_symbol<isc::d2::D2Parser::by_kind>::basic_symbol()
Line
Count
Source
899
7.93k
        : value ()
900
7.93k
        , location ()
901
7.93k
      {}
isc::d2::D2Parser::basic_symbol<isc::d2::D2Parser::by_state>::basic_symbol()
Line
Count
Source
899
4.32M
        : value ()
900
4.32M
        , location ()
901
4.32M
      {}
902
903
#if 201103L <= YY_CPLUSPLUS
904
      /// Move constructor.
905
      basic_symbol (basic_symbol&& that)
906
        : Base (std::move (that))
907
        , value ()
908
        , location (std::move (that.location))
909
      {
910
        switch (this->kind ())
911
    {
912
      case symbol_kind::S_value: // value
913
      case symbol_kind::S_map_value: // map_value
914
      case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value
915
      case symbol_kind::S_control_socket_type_value: // control_socket_type_value
916
      case symbol_kind::S_auth_type_value: // auth_type_value
917
        value.move< ElementPtr > (std::move (that.value));
918
        break;
919
920
      case symbol_kind::S_BOOLEAN: // "boolean"
921
        value.move< bool > (std::move (that.value));
922
        break;
923
924
      case symbol_kind::S_FLOAT: // "floating point"
925
        value.move< double > (std::move (that.value));
926
        break;
927
928
      case symbol_kind::S_INTEGER: // "integer"
929
        value.move< int64_t > (std::move (that.value));
930
        break;
931
932
      case symbol_kind::S_STRING: // "constant string"
933
        value.move< std::string > (std::move (that.value));
934
        break;
935
936
      default:
937
        break;
938
    }
939
940
      }
941
#endif
942
943
      /// Copy constructor.
944
      basic_symbol (const basic_symbol& that);
945
946
      /// Constructors for typed symbols.
947
#if 201103L <= YY_CPLUSPLUS
948
      basic_symbol (typename Base::kind_type t, location_type&& l)
949
3.65M
        : Base (t)
950
3.65M
        , location (std::move (l))
951
3.65M
      {}
isc::d2::D2Parser::basic_symbol<isc::d2::D2Parser::by_kind>::basic_symbol(isc::d2::D2Parser::token::token_kind_type, isc::d2::location&&)
Line
Count
Source
949
559k
        : Base (t)
950
559k
        , location (std::move (l))
951
559k
      {}
isc::d2::D2Parser::basic_symbol<isc::d2::D2Parser::by_state>::basic_symbol(short, isc::d2::location&&)
Line
Count
Source
949
3.09M
        : Base (t)
950
3.09M
        , location (std::move (l))
951
3.09M
      {}
952
#else
953
      basic_symbol (typename Base::kind_type t, const location_type& l)
954
        : Base (t)
955
        , location (l)
956
      {}
957
#endif
958
959
#if 201103L <= YY_CPLUSPLUS
960
      basic_symbol (typename Base::kind_type t, ElementPtr&& v, location_type&& l)
961
        : Base (t)
962
        , value (std::move (v))
963
        , location (std::move (l))
964
      {}
965
#else
966
      basic_symbol (typename Base::kind_type t, const ElementPtr& v, const location_type& l)
967
        : Base (t)
968
        , value (v)
969
        , location (l)
970
      {}
971
#endif
972
973
#if 201103L <= YY_CPLUSPLUS
974
      basic_symbol (typename Base::kind_type t, bool&& v, location_type&& l)
975
517
        : Base (t)
976
517
        , value (std::move (v))
977
517
        , location (std::move (l))
978
517
      {}
979
#else
980
      basic_symbol (typename Base::kind_type t, const bool& v, const location_type& l)
981
        : Base (t)
982
        , value (v)
983
        , location (l)
984
      {}
985
#endif
986
987
#if 201103L <= YY_CPLUSPLUS
988
      basic_symbol (typename Base::kind_type t, double&& v, location_type&& l)
989
2.22k
        : Base (t)
990
2.22k
        , value (std::move (v))
991
2.22k
        , location (std::move (l))
992
2.22k
      {}
993
#else
994
      basic_symbol (typename Base::kind_type t, const double& v, const location_type& l)
995
        : Base (t)
996
        , value (v)
997
        , location (l)
998
      {}
999
#endif
1000
1001
#if 201103L <= YY_CPLUSPLUS
1002
      basic_symbol (typename Base::kind_type t, int64_t&& v, location_type&& l)
1003
16.6k
        : Base (t)
1004
16.6k
        , value (std::move (v))
1005
16.6k
        , location (std::move (l))
1006
16.6k
      {}
1007
#else
1008
      basic_symbol (typename Base::kind_type t, const int64_t& v, const location_type& l)
1009
        : Base (t)
1010
        , value (v)
1011
        , location (l)
1012
      {}
1013
#endif
1014
1015
#if 201103L <= YY_CPLUSPLUS
1016
      basic_symbol (typename Base::kind_type t, std::string&& v, location_type&& l)
1017
50.5k
        : Base (t)
1018
50.5k
        , value (std::move (v))
1019
50.5k
        , location (std::move (l))
1020
50.5k
      {}
1021
#else
1022
      basic_symbol (typename Base::kind_type t, const std::string& v, const location_type& l)
1023
        : Base (t)
1024
        , value (v)
1025
        , location (l)
1026
      {}
1027
#endif
1028
1029
      /// Destroy the symbol.
1030
      ~basic_symbol ()
1031
8.06M
      {
1032
8.06M
        clear ();
1033
8.06M
      }
isc::d2::D2Parser::basic_symbol<isc::d2::D2Parser::by_kind>::~basic_symbol()
Line
Count
Source
1031
637k
      {
1032
637k
        clear ();
1033
637k
      }
isc::d2::D2Parser::basic_symbol<isc::d2::D2Parser::by_state>::~basic_symbol()
Line
Count
Source
1031
7.42M
      {
1032
7.42M
        clear ();
1033
7.42M
      }
1034
1035
1036
1037
      /// Destroy contents, and record that is empty.
1038
      void clear () YY_NOEXCEPT
1039
8.06M
      {
1040
        // User destructor.
1041
8.06M
        symbol_kind_type yykind = this->kind ();
1042
8.06M
        basic_symbol<Base>& yysym = *this;
1043
8.06M
        (void) yysym;
1044
8.06M
        switch (yykind)
1045
8.06M
        {
1046
8.06M
       default:
1047
8.06M
          break;
1048
8.06M
        }
1049
1050
        // Value type destructor.
1051
8.06M
switch (yykind)
1052
8.06M
    {
1053
184k
      case symbol_kind::S_value: // value
1054
185k
      case symbol_kind::S_map_value: // map_value
1055
185k
      case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value
1056
186k
      case symbol_kind::S_control_socket_type_value: // control_socket_type_value
1057
186k
      case symbol_kind::S_auth_type_value: // auth_type_value
1058
186k
        value.template destroy< ElementPtr > ();
1059
186k
        break;
1060
1061
517
      case symbol_kind::S_BOOLEAN: // "boolean"
1062
517
        value.template destroy< bool > ();
1063
517
        break;
1064
1065
2.22k
      case symbol_kind::S_FLOAT: // "floating point"
1066
2.22k
        value.template destroy< double > ();
1067
2.22k
        break;
1068
1069
16.6k
      case symbol_kind::S_INTEGER: // "integer"
1070
16.6k
        value.template destroy< int64_t > ();
1071
16.6k
        break;
1072
1073
50.5k
      case symbol_kind::S_STRING: // "constant string"
1074
50.5k
        value.template destroy< std::string > ();
1075
50.5k
        break;
1076
1077
7.80M
      default:
1078
7.80M
        break;
1079
8.06M
    }
1080
1081
8.06M
        Base::clear ();
1082
8.06M
      }
isc::d2::D2Parser::basic_symbol<isc::d2::D2Parser::by_kind>::clear()
Line
Count
Source
1039
637k
      {
1040
        // User destructor.
1041
637k
        symbol_kind_type yykind = this->kind ();
1042
637k
        basic_symbol<Base>& yysym = *this;
1043
637k
        (void) yysym;
1044
637k
        switch (yykind)
1045
637k
        {
1046
637k
       default:
1047
637k
          break;
1048
637k
        }
1049
1050
        // Value type destructor.
1051
637k
switch (yykind)
1052
637k
    {
1053
0
      case symbol_kind::S_value: // value
1054
0
      case symbol_kind::S_map_value: // map_value
1055
0
      case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value
1056
0
      case symbol_kind::S_control_socket_type_value: // control_socket_type_value
1057
0
      case symbol_kind::S_auth_type_value: // auth_type_value
1058
0
        value.template destroy< ElementPtr > ();
1059
0
        break;
1060
1061
25
      case symbol_kind::S_BOOLEAN: // "boolean"
1062
25
        value.template destroy< bool > ();
1063
25
        break;
1064
1065
56
      case symbol_kind::S_FLOAT: // "floating point"
1066
56
        value.template destroy< double > ();
1067
56
        break;
1068
1069
386
      case symbol_kind::S_INTEGER: // "integer"
1070
386
        value.template destroy< int64_t > ();
1071
386
        break;
1072
1073
674
      case symbol_kind::S_STRING: // "constant string"
1074
674
        value.template destroy< std::string > ();
1075
674
        break;
1076
1077
636k
      default:
1078
636k
        break;
1079
637k
    }
1080
1081
637k
        Base::clear ();
1082
637k
      }
isc::d2::D2Parser::basic_symbol<isc::d2::D2Parser::by_state>::clear()
Line
Count
Source
1039
7.42M
      {
1040
        // User destructor.
1041
7.42M
        symbol_kind_type yykind = this->kind ();
1042
7.42M
        basic_symbol<Base>& yysym = *this;
1043
7.42M
        (void) yysym;
1044
7.42M
        switch (yykind)
1045
7.42M
        {
1046
7.42M
       default:
1047
7.42M
          break;
1048
7.42M
        }
1049
1050
        // Value type destructor.
1051
7.42M
switch (yykind)
1052
7.42M
    {
1053
184k
      case symbol_kind::S_value: // value
1054
185k
      case symbol_kind::S_map_value: // map_value
1055
185k
      case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value
1056
186k
      case symbol_kind::S_control_socket_type_value: // control_socket_type_value
1057
186k
      case symbol_kind::S_auth_type_value: // auth_type_value
1058
186k
        value.template destroy< ElementPtr > ();
1059
186k
        break;
1060
1061
492
      case symbol_kind::S_BOOLEAN: // "boolean"
1062
492
        value.template destroy< bool > ();
1063
492
        break;
1064
1065
2.16k
      case symbol_kind::S_FLOAT: // "floating point"
1066
2.16k
        value.template destroy< double > ();
1067
2.16k
        break;
1068
1069
16.2k
      case symbol_kind::S_INTEGER: // "integer"
1070
16.2k
        value.template destroy< int64_t > ();
1071
16.2k
        break;
1072
1073
49.9k
      case symbol_kind::S_STRING: // "constant string"
1074
49.9k
        value.template destroy< std::string > ();
1075
49.9k
        break;
1076
1077
7.16M
      default:
1078
7.16M
        break;
1079
7.42M
    }
1080
1081
7.42M
        Base::clear ();
1082
7.42M
      }
1083
1084
      /// The user-facing name of this symbol.
1085
      std::string name () const YY_NOEXCEPT
1086
0
      {
1087
0
        return D2Parser::symbol_name (this->kind ());
1088
0
      }
Unexecuted instantiation: isc::d2::D2Parser::basic_symbol<isc::d2::D2Parser::by_state>::name() const
Unexecuted instantiation: isc::d2::D2Parser::basic_symbol<isc::d2::D2Parser::by_kind>::name() const
1089
1090
      /// Backward compatibility (Bison 3.6).
1091
      symbol_kind_type type_get () const YY_NOEXCEPT;
1092
1093
      /// Whether empty.
1094
      bool empty () const YY_NOEXCEPT;
1095
1096
      /// Destructive move, \a s is emptied into this.
1097
      void move (basic_symbol& s);
1098
1099
      /// The semantic value.
1100
      value_type value;
1101
1102
      /// The location.
1103
      location_type location;
1104
1105
    private:
1106
#if YY_CPLUSPLUS < 201103L
1107
      /// Assignment operator.
1108
      basic_symbol& operator= (const basic_symbol& that);
1109
#endif
1110
    };
1111
1112
    /// Type access provider for token (enum) based symbols.
1113
    struct by_kind
1114
    {
1115
      /// The symbol kind as needed by the constructor.
1116
      typedef token_kind_type kind_type;
1117
1118
      /// Default constructor.
1119
      by_kind () YY_NOEXCEPT;
1120
1121
#if 201103L <= YY_CPLUSPLUS
1122
      /// Move constructor.
1123
      by_kind (by_kind&& that) YY_NOEXCEPT;
1124
#endif
1125
1126
      /// Copy constructor.
1127
      by_kind (const by_kind& that) YY_NOEXCEPT;
1128
1129
      /// Constructor from (external) token numbers.
1130
      by_kind (kind_type t) YY_NOEXCEPT;
1131
1132
1133
1134
      /// Record that this symbol is empty.
1135
      void clear () YY_NOEXCEPT;
1136
1137
      /// Steal the symbol kind from \a that.
1138
      void move (by_kind& that);
1139
1140
      /// The (internal) type number (corresponding to \a type).
1141
      /// \a empty when empty.
1142
      symbol_kind_type kind () const YY_NOEXCEPT;
1143
1144
      /// Backward compatibility (Bison 3.6).
1145
      symbol_kind_type type_get () const YY_NOEXCEPT;
1146
1147
      /// The symbol kind.
1148
      /// \a S_YYEMPTY when empty.
1149
      symbol_kind_type kind_;
1150
    };
1151
1152
    /// Backward compatibility for a private implementation detail (Bison 3.6).
1153
    typedef by_kind by_type;
1154
1155
    /// "External" symbols: returned by the scanner.
1156
    struct symbol_type : basic_symbol<by_kind>
1157
    {
1158
      /// Superclass.
1159
      typedef basic_symbol<by_kind> super_type;
1160
1161
      /// Empty symbol.
1162
7.93k
      symbol_type () YY_NOEXCEPT {}
1163
1164
      /// Constructor for valueless symbols, and symbols from each type.
1165
#if 201103L <= YY_CPLUSPLUS
1166
      symbol_type (int tok, location_type l)
1167
559k
        : super_type (token_kind_type (tok), std::move (l))
1168
#else
1169
      symbol_type (int tok, const location_type& l)
1170
        : super_type (token_kind_type (tok), l)
1171
#endif
1172
559k
      {
1173
559k
#if !defined _MSC_VER || defined __clang__
1174
559k
        D2_PARSER__ASSERT (tok == token::TOKEN_END
1175
559k
                   || (token::TOKEN_D2_PARSER_error <= tok && tok <= token::TOKEN_SUB_HOOKS_LIBRARY));
1176
559k
#endif
1177
559k
      }
1178
#if 201103L <= YY_CPLUSPLUS
1179
      symbol_type (int tok, bool v, location_type l)
1180
517
        : super_type (token_kind_type (tok), std::move (v), std::move (l))
1181
#else
1182
      symbol_type (int tok, const bool& v, const location_type& l)
1183
        : super_type (token_kind_type (tok), v, l)
1184
#endif
1185
517
      {
1186
517
#if !defined _MSC_VER || defined __clang__
1187
517
        D2_PARSER__ASSERT (tok == token::TOKEN_BOOLEAN);
1188
517
#endif
1189
517
      }
1190
#if 201103L <= YY_CPLUSPLUS
1191
      symbol_type (int tok, double v, location_type l)
1192
2.22k
        : super_type (token_kind_type (tok), std::move (v), std::move (l))
1193
#else
1194
      symbol_type (int tok, const double& v, const location_type& l)
1195
        : super_type (token_kind_type (tok), v, l)
1196
#endif
1197
2.22k
      {
1198
2.22k
#if !defined _MSC_VER || defined __clang__
1199
2.22k
        D2_PARSER__ASSERT (tok == token::TOKEN_FLOAT);
1200
2.22k
#endif
1201
2.22k
      }
1202
#if 201103L <= YY_CPLUSPLUS
1203
      symbol_type (int tok, int64_t v, location_type l)
1204
16.6k
        : super_type (token_kind_type (tok), std::move (v), std::move (l))
1205
#else
1206
      symbol_type (int tok, const int64_t& v, const location_type& l)
1207
        : super_type (token_kind_type (tok), v, l)
1208
#endif
1209
16.6k
      {
1210
16.6k
#if !defined _MSC_VER || defined __clang__
1211
16.6k
        D2_PARSER__ASSERT (tok == token::TOKEN_INTEGER);
1212
16.6k
#endif
1213
16.6k
      }
1214
#if 201103L <= YY_CPLUSPLUS
1215
      symbol_type (int tok, std::string v, location_type l)
1216
50.5k
        : super_type (token_kind_type (tok), std::move (v), std::move (l))
1217
#else
1218
      symbol_type (int tok, const std::string& v, const location_type& l)
1219
        : super_type (token_kind_type (tok), v, l)
1220
#endif
1221
50.5k
      {
1222
50.5k
#if !defined _MSC_VER || defined __clang__
1223
50.5k
        D2_PARSER__ASSERT (tok == token::TOKEN_STRING);
1224
50.5k
#endif
1225
50.5k
      }
1226
    };
1227
1228
    /// Build a parser object.
1229
    D2Parser (isc::d2::D2ParserContext& ctx_yyarg);
1230
    virtual ~D2Parser ();
1231
1232
#if 201103L <= YY_CPLUSPLUS
1233
    /// Non copyable.
1234
    D2Parser (const D2Parser&) = delete;
1235
    /// Non copyable.
1236
    D2Parser& operator= (const D2Parser&) = delete;
1237
#endif
1238
1239
    /// Parse.  An alias for parse ().
1240
    /// \returns  0 iff parsing succeeded.
1241
    int operator() ();
1242
1243
    /// Parse.
1244
    /// \returns  0 iff parsing succeeded.
1245
    virtual int parse ();
1246
1247
#if D2_PARSER_DEBUG
1248
    /// The current debugging stream.
1249
    std::ostream& debug_stream () const YY_ATTRIBUTE_PURE;
1250
    /// Set the current debugging stream.
1251
    void set_debug_stream (std::ostream &);
1252
1253
    /// Type for debugging levels.
1254
    typedef int debug_level_type;
1255
    /// The current debugging level.
1256
    debug_level_type debug_level () const YY_ATTRIBUTE_PURE;
1257
    /// Set the current debugging level.
1258
    void set_debug_level (debug_level_type l);
1259
#endif
1260
1261
    /// Report a syntax error.
1262
    /// \param loc    where the syntax error is found.
1263
    /// \param msg    a description of the syntax error.
1264
    virtual void error (const location_type& loc, const std::string& msg);
1265
1266
    /// Report a syntax error.
1267
    void error (const syntax_error& err);
1268
1269
    /// The user-facing name of the symbol whose (internal) number is
1270
    /// YYSYMBOL.  No bounds checking.
1271
    static std::string symbol_name (symbol_kind_type yysymbol);
1272
1273
    // Implementation of make_symbol for each token kind.
1274
#if 201103L <= YY_CPLUSPLUS
1275
      static
1276
      symbol_type
1277
      make_END (location_type l)
1278
1.55k
      {
1279
1.55k
        return symbol_type (token::TOKEN_END, std::move (l));
1280
1.55k
      }
1281
#else
1282
      static
1283
      symbol_type
1284
      make_END (const location_type& l)
1285
      {
1286
        return symbol_type (token::TOKEN_END, l);
1287
      }
1288
#endif
1289
#if 201103L <= YY_CPLUSPLUS
1290
      static
1291
      symbol_type
1292
      make_D2_PARSER_error (location_type l)
1293
0
      {
1294
0
        return symbol_type (token::TOKEN_D2_PARSER_error, std::move (l));
1295
0
      }
1296
#else
1297
      static
1298
      symbol_type
1299
      make_D2_PARSER_error (const location_type& l)
1300
      {
1301
        return symbol_type (token::TOKEN_D2_PARSER_error, l);
1302
      }
1303
#endif
1304
#if 201103L <= YY_CPLUSPLUS
1305
      static
1306
      symbol_type
1307
      make_D2_PARSER_UNDEF (location_type l)
1308
0
      {
1309
0
        return symbol_type (token::TOKEN_D2_PARSER_UNDEF, std::move (l));
1310
0
      }
1311
#else
1312
      static
1313
      symbol_type
1314
      make_D2_PARSER_UNDEF (const location_type& l)
1315
      {
1316
        return symbol_type (token::TOKEN_D2_PARSER_UNDEF, l);
1317
      }
1318
#endif
1319
#if 201103L <= YY_CPLUSPLUS
1320
      static
1321
      symbol_type
1322
      make_COMMA (location_type l)
1323
38.9k
      {
1324
38.9k
        return symbol_type (token::TOKEN_COMMA, std::move (l));
1325
38.9k
      }
1326
#else
1327
      static
1328
      symbol_type
1329
      make_COMMA (const location_type& l)
1330
      {
1331
        return symbol_type (token::TOKEN_COMMA, l);
1332
      }
1333
#endif
1334
#if 201103L <= YY_CPLUSPLUS
1335
      static
1336
      symbol_type
1337
      make_COLON (location_type l)
1338
42.2k
      {
1339
42.2k
        return symbol_type (token::TOKEN_COLON, std::move (l));
1340
42.2k
      }
1341
#else
1342
      static
1343
      symbol_type
1344
      make_COLON (const location_type& l)
1345
      {
1346
        return symbol_type (token::TOKEN_COLON, l);
1347
      }
1348
#endif
1349
#if 201103L <= YY_CPLUSPLUS
1350
      static
1351
      symbol_type
1352
      make_LSQUARE_BRACKET (location_type l)
1353
259k
      {
1354
259k
        return symbol_type (token::TOKEN_LSQUARE_BRACKET, std::move (l));
1355
259k
      }
1356
#else
1357
      static
1358
      symbol_type
1359
      make_LSQUARE_BRACKET (const location_type& l)
1360
      {
1361
        return symbol_type (token::TOKEN_LSQUARE_BRACKET, l);
1362
      }
1363
#endif
1364
#if 201103L <= YY_CPLUSPLUS
1365
      static
1366
      symbol_type
1367
      make_RSQUARE_BRACKET (location_type l)
1368
152k
      {
1369
152k
        return symbol_type (token::TOKEN_RSQUARE_BRACKET, std::move (l));
1370
152k
      }
1371
#else
1372
      static
1373
      symbol_type
1374
      make_RSQUARE_BRACKET (const location_type& l)
1375
      {
1376
        return symbol_type (token::TOKEN_RSQUARE_BRACKET, l);
1377
      }
1378
#endif
1379
#if 201103L <= YY_CPLUSPLUS
1380
      static
1381
      symbol_type
1382
      make_LCURLY_BRACKET (location_type l)
1383
32.0k
      {
1384
32.0k
        return symbol_type (token::TOKEN_LCURLY_BRACKET, std::move (l));
1385
32.0k
      }
1386
#else
1387
      static
1388
      symbol_type
1389
      make_LCURLY_BRACKET (const location_type& l)
1390
      {
1391
        return symbol_type (token::TOKEN_LCURLY_BRACKET, l);
1392
      }
1393
#endif
1394
#if 201103L <= YY_CPLUSPLUS
1395
      static
1396
      symbol_type
1397
      make_RCURLY_BRACKET (location_type l)
1398
11.7k
      {
1399
11.7k
        return symbol_type (token::TOKEN_RCURLY_BRACKET, std::move (l));
1400
11.7k
      }
1401
#else
1402
      static
1403
      symbol_type
1404
      make_RCURLY_BRACKET (const location_type& l)
1405
      {
1406
        return symbol_type (token::TOKEN_RCURLY_BRACKET, l);
1407
      }
1408
#endif
1409
#if 201103L <= YY_CPLUSPLUS
1410
      static
1411
      symbol_type
1412
      make_NULL_TYPE (location_type l)
1413
491
      {
1414
491
        return symbol_type (token::TOKEN_NULL_TYPE, std::move (l));
1415
491
      }
1416
#else
1417
      static
1418
      symbol_type
1419
      make_NULL_TYPE (const location_type& l)
1420
      {
1421
        return symbol_type (token::TOKEN_NULL_TYPE, l);
1422
      }
1423
#endif
1424
#if 201103L <= YY_CPLUSPLUS
1425
      static
1426
      symbol_type
1427
      make_DHCPDDNS (location_type l)
1428
153
      {
1429
153
        return symbol_type (token::TOKEN_DHCPDDNS, std::move (l));
1430
153
      }
1431
#else
1432
      static
1433
      symbol_type
1434
      make_DHCPDDNS (const location_type& l)
1435
      {
1436
        return symbol_type (token::TOKEN_DHCPDDNS, l);
1437
      }
1438
#endif
1439
#if 201103L <= YY_CPLUSPLUS
1440
      static
1441
      symbol_type
1442
      make_IP_ADDRESS (location_type l)
1443
674
      {
1444
674
        return symbol_type (token::TOKEN_IP_ADDRESS, std::move (l));
1445
674
      }
1446
#else
1447
      static
1448
      symbol_type
1449
      make_IP_ADDRESS (const location_type& l)
1450
      {
1451
        return symbol_type (token::TOKEN_IP_ADDRESS, l);
1452
      }
1453
#endif
1454
#if 201103L <= YY_CPLUSPLUS
1455
      static
1456
      symbol_type
1457
      make_PORT (location_type l)
1458
687
      {
1459
687
        return symbol_type (token::TOKEN_PORT, std::move (l));
1460
687
      }
1461
#else
1462
      static
1463
      symbol_type
1464
      make_PORT (const location_type& l)
1465
      {
1466
        return symbol_type (token::TOKEN_PORT, l);
1467
      }
1468
#endif
1469
#if 201103L <= YY_CPLUSPLUS
1470
      static
1471
      symbol_type
1472
      make_DNS_SERVER_TIMEOUT (location_type l)
1473
120
      {
1474
120
        return symbol_type (token::TOKEN_DNS_SERVER_TIMEOUT, std::move (l));
1475
120
      }
1476
#else
1477
      static
1478
      symbol_type
1479
      make_DNS_SERVER_TIMEOUT (const location_type& l)
1480
      {
1481
        return symbol_type (token::TOKEN_DNS_SERVER_TIMEOUT, l);
1482
      }
1483
#endif
1484
#if 201103L <= YY_CPLUSPLUS
1485
      static
1486
      symbol_type
1487
      make_NCR_PROTOCOL (location_type l)
1488
18
      {
1489
18
        return symbol_type (token::TOKEN_NCR_PROTOCOL, std::move (l));
1490
18
      }
1491
#else
1492
      static
1493
      symbol_type
1494
      make_NCR_PROTOCOL (const location_type& l)
1495
      {
1496
        return symbol_type (token::TOKEN_NCR_PROTOCOL, l);
1497
      }
1498
#endif
1499
#if 201103L <= YY_CPLUSPLUS
1500
      static
1501
      symbol_type
1502
      make_UDP (location_type l)
1503
3
      {
1504
3
        return symbol_type (token::TOKEN_UDP, std::move (l));
1505
3
      }
1506
#else
1507
      static
1508
      symbol_type
1509
      make_UDP (const location_type& l)
1510
      {
1511
        return symbol_type (token::TOKEN_UDP, l);
1512
      }
1513
#endif
1514
#if 201103L <= YY_CPLUSPLUS
1515
      static
1516
      symbol_type
1517
      make_TCP (location_type l)
1518
2
      {
1519
2
        return symbol_type (token::TOKEN_TCP, std::move (l));
1520
2
      }
1521
#else
1522
      static
1523
      symbol_type
1524
      make_TCP (const location_type& l)
1525
      {
1526
        return symbol_type (token::TOKEN_TCP, l);
1527
      }
1528
#endif
1529
#if 201103L <= YY_CPLUSPLUS
1530
      static
1531
      symbol_type
1532
      make_NCR_FORMAT (location_type l)
1533
18
      {
1534
18
        return symbol_type (token::TOKEN_NCR_FORMAT, std::move (l));
1535
18
      }
1536
#else
1537
      static
1538
      symbol_type
1539
      make_NCR_FORMAT (const location_type& l)
1540
      {
1541
        return symbol_type (token::TOKEN_NCR_FORMAT, l);
1542
      }
1543
#endif
1544
#if 201103L <= YY_CPLUSPLUS
1545
      static
1546
      symbol_type
1547
      make_JSON (location_type l)
1548
4
      {
1549
4
        return symbol_type (token::TOKEN_JSON, std::move (l));
1550
4
      }
1551
#else
1552
      static
1553
      symbol_type
1554
      make_JSON (const location_type& l)
1555
      {
1556
        return symbol_type (token::TOKEN_JSON, l);
1557
      }
1558
#endif
1559
#if 201103L <= YY_CPLUSPLUS
1560
      static
1561
      symbol_type
1562
      make_USER_CONTEXT (location_type l)
1563
1.91k
      {
1564
1.91k
        return symbol_type (token::TOKEN_USER_CONTEXT, std::move (l));
1565
1.91k
      }
1566
#else
1567
      static
1568
      symbol_type
1569
      make_USER_CONTEXT (const location_type& l)
1570
      {
1571
        return symbol_type (token::TOKEN_USER_CONTEXT, l);
1572
      }
1573
#endif
1574
#if 201103L <= YY_CPLUSPLUS
1575
      static
1576
      symbol_type
1577
      make_COMMENT (location_type l)
1578
1.24k
      {
1579
1.24k
        return symbol_type (token::TOKEN_COMMENT, std::move (l));
1580
1.24k
      }
1581
#else
1582
      static
1583
      symbol_type
1584
      make_COMMENT (const location_type& l)
1585
      {
1586
        return symbol_type (token::TOKEN_COMMENT, l);
1587
      }
1588
#endif
1589
#if 201103L <= YY_CPLUSPLUS
1590
      static
1591
      symbol_type
1592
      make_FORWARD_DDNS (location_type l)
1593
37
      {
1594
37
        return symbol_type (token::TOKEN_FORWARD_DDNS, std::move (l));
1595
37
      }
1596
#else
1597
      static
1598
      symbol_type
1599
      make_FORWARD_DDNS (const location_type& l)
1600
      {
1601
        return symbol_type (token::TOKEN_FORWARD_DDNS, l);
1602
      }
1603
#endif
1604
#if 201103L <= YY_CPLUSPLUS
1605
      static
1606
      symbol_type
1607
      make_REVERSE_DDNS (location_type l)
1608
11
      {
1609
11
        return symbol_type (token::TOKEN_REVERSE_DDNS, std::move (l));
1610
11
      }
1611
#else
1612
      static
1613
      symbol_type
1614
      make_REVERSE_DDNS (const location_type& l)
1615
      {
1616
        return symbol_type (token::TOKEN_REVERSE_DDNS, l);
1617
      }
1618
#endif
1619
#if 201103L <= YY_CPLUSPLUS
1620
      static
1621
      symbol_type
1622
      make_DDNS_DOMAINS (location_type l)
1623
26
      {
1624
26
        return symbol_type (token::TOKEN_DDNS_DOMAINS, std::move (l));
1625
26
      }
1626
#else
1627
      static
1628
      symbol_type
1629
      make_DDNS_DOMAINS (const location_type& l)
1630
      {
1631
        return symbol_type (token::TOKEN_DDNS_DOMAINS, l);
1632
      }
1633
#endif
1634
#if 201103L <= YY_CPLUSPLUS
1635
      static
1636
      symbol_type
1637
      make_KEY_NAME (location_type l)
1638
625
      {
1639
625
        return symbol_type (token::TOKEN_KEY_NAME, std::move (l));
1640
625
      }
1641
#else
1642
      static
1643
      symbol_type
1644
      make_KEY_NAME (const location_type& l)
1645
      {
1646
        return symbol_type (token::TOKEN_KEY_NAME, l);
1647
      }
1648
#endif
1649
#if 201103L <= YY_CPLUSPLUS
1650
      static
1651
      symbol_type
1652
      make_DNS_SERVERS (location_type l)
1653
169
      {
1654
169
        return symbol_type (token::TOKEN_DNS_SERVERS, std::move (l));
1655
169
      }
1656
#else
1657
      static
1658
      symbol_type
1659
      make_DNS_SERVERS (const location_type& l)
1660
      {
1661
        return symbol_type (token::TOKEN_DNS_SERVERS, l);
1662
      }
1663
#endif
1664
#if 201103L <= YY_CPLUSPLUS
1665
      static
1666
      symbol_type
1667
      make_HOSTNAME (location_type l)
1668
86
      {
1669
86
        return symbol_type (token::TOKEN_HOSTNAME, std::move (l));
1670
86
      }
1671
#else
1672
      static
1673
      symbol_type
1674
      make_HOSTNAME (const location_type& l)
1675
      {
1676
        return symbol_type (token::TOKEN_HOSTNAME, l);
1677
      }
1678
#endif
1679
#if 201103L <= YY_CPLUSPLUS
1680
      static
1681
      symbol_type
1682
      make_TSIG_KEYS (location_type l)
1683
11
      {
1684
11
        return symbol_type (token::TOKEN_TSIG_KEYS, std::move (l));
1685
11
      }
1686
#else
1687
      static
1688
      symbol_type
1689
      make_TSIG_KEYS (const location_type& l)
1690
      {
1691
        return symbol_type (token::TOKEN_TSIG_KEYS, l);
1692
      }
1693
#endif
1694
#if 201103L <= YY_CPLUSPLUS
1695
      static
1696
      symbol_type
1697
      make_ALGORITHM (location_type l)
1698
753
      {
1699
753
        return symbol_type (token::TOKEN_ALGORITHM, std::move (l));
1700
753
      }
1701
#else
1702
      static
1703
      symbol_type
1704
      make_ALGORITHM (const location_type& l)
1705
      {
1706
        return symbol_type (token::TOKEN_ALGORITHM, l);
1707
      }
1708
#endif
1709
#if 201103L <= YY_CPLUSPLUS
1710
      static
1711
      symbol_type
1712
      make_DIGEST_BITS (location_type l)
1713
151
      {
1714
151
        return symbol_type (token::TOKEN_DIGEST_BITS, std::move (l));
1715
151
      }
1716
#else
1717
      static
1718
      symbol_type
1719
      make_DIGEST_BITS (const location_type& l)
1720
      {
1721
        return symbol_type (token::TOKEN_DIGEST_BITS, l);
1722
      }
1723
#endif
1724
#if 201103L <= YY_CPLUSPLUS
1725
      static
1726
      symbol_type
1727
      make_SECRET (location_type l)
1728
623
      {
1729
623
        return symbol_type (token::TOKEN_SECRET, std::move (l));
1730
623
      }
1731
#else
1732
      static
1733
      symbol_type
1734
      make_SECRET (const location_type& l)
1735
      {
1736
        return symbol_type (token::TOKEN_SECRET, l);
1737
      }
1738
#endif
1739
#if 201103L <= YY_CPLUSPLUS
1740
      static
1741
      symbol_type
1742
      make_SECRET_FILE (location_type l)
1743
23
      {
1744
23
        return symbol_type (token::TOKEN_SECRET_FILE, std::move (l));
1745
23
      }
1746
#else
1747
      static
1748
      symbol_type
1749
      make_SECRET_FILE (const location_type& l)
1750
      {
1751
        return symbol_type (token::TOKEN_SECRET_FILE, l);
1752
      }
1753
#endif
1754
#if 201103L <= YY_CPLUSPLUS
1755
      static
1756
      symbol_type
1757
      make_CONTROL_SOCKET (location_type l)
1758
56
      {
1759
56
        return symbol_type (token::TOKEN_CONTROL_SOCKET, std::move (l));
1760
56
      }
1761
#else
1762
      static
1763
      symbol_type
1764
      make_CONTROL_SOCKET (const location_type& l)
1765
      {
1766
        return symbol_type (token::TOKEN_CONTROL_SOCKET, l);
1767
      }
1768
#endif
1769
#if 201103L <= YY_CPLUSPLUS
1770
      static
1771
      symbol_type
1772
      make_CONTROL_SOCKETS (location_type l)
1773
83
      {
1774
83
        return symbol_type (token::TOKEN_CONTROL_SOCKETS, std::move (l));
1775
83
      }
1776
#else
1777
      static
1778
      symbol_type
1779
      make_CONTROL_SOCKETS (const location_type& l)
1780
      {
1781
        return symbol_type (token::TOKEN_CONTROL_SOCKETS, l);
1782
      }
1783
#endif
1784
#if 201103L <= YY_CPLUSPLUS
1785
      static
1786
      symbol_type
1787
      make_SOCKET_TYPE (location_type l)
1788
228
      {
1789
228
        return symbol_type (token::TOKEN_SOCKET_TYPE, std::move (l));
1790
228
      }
1791
#else
1792
      static
1793
      symbol_type
1794
      make_SOCKET_TYPE (const location_type& l)
1795
      {
1796
        return symbol_type (token::TOKEN_SOCKET_TYPE, l);
1797
      }
1798
#endif
1799
#if 201103L <= YY_CPLUSPLUS
1800
      static
1801
      symbol_type
1802
      make_UNIX (location_type l)
1803
214
      {
1804
214
        return symbol_type (token::TOKEN_UNIX, std::move (l));
1805
214
      }
1806
#else
1807
      static
1808
      symbol_type
1809
      make_UNIX (const location_type& l)
1810
      {
1811
        return symbol_type (token::TOKEN_UNIX, l);
1812
      }
1813
#endif
1814
#if 201103L <= YY_CPLUSPLUS
1815
      static
1816
      symbol_type
1817
      make_HTTP (location_type l)
1818
1
      {
1819
1
        return symbol_type (token::TOKEN_HTTP, std::move (l));
1820
1
      }
1821
#else
1822
      static
1823
      symbol_type
1824
      make_HTTP (const location_type& l)
1825
      {
1826
        return symbol_type (token::TOKEN_HTTP, l);
1827
      }
1828
#endif
1829
#if 201103L <= YY_CPLUSPLUS
1830
      static
1831
      symbol_type
1832
      make_HTTPS (location_type l)
1833
2
      {
1834
2
        return symbol_type (token::TOKEN_HTTPS, std::move (l));
1835
2
      }
1836
#else
1837
      static
1838
      symbol_type
1839
      make_HTTPS (const location_type& l)
1840
      {
1841
        return symbol_type (token::TOKEN_HTTPS, l);
1842
      }
1843
#endif
1844
#if 201103L <= YY_CPLUSPLUS
1845
      static
1846
      symbol_type
1847
      make_SOCKET_NAME (location_type l)
1848
432
      {
1849
432
        return symbol_type (token::TOKEN_SOCKET_NAME, std::move (l));
1850
432
      }
1851
#else
1852
      static
1853
      symbol_type
1854
      make_SOCKET_NAME (const location_type& l)
1855
      {
1856
        return symbol_type (token::TOKEN_SOCKET_NAME, l);
1857
      }
1858
#endif
1859
#if 201103L <= YY_CPLUSPLUS
1860
      static
1861
      symbol_type
1862
      make_SOCKET_ADDRESS (location_type l)
1863
8
      {
1864
8
        return symbol_type (token::TOKEN_SOCKET_ADDRESS, std::move (l));
1865
8
      }
1866
#else
1867
      static
1868
      symbol_type
1869
      make_SOCKET_ADDRESS (const location_type& l)
1870
      {
1871
        return symbol_type (token::TOKEN_SOCKET_ADDRESS, l);
1872
      }
1873
#endif
1874
#if 201103L <= YY_CPLUSPLUS
1875
      static
1876
      symbol_type
1877
      make_SOCKET_PORT (location_type l)
1878
4
      {
1879
4
        return symbol_type (token::TOKEN_SOCKET_PORT, std::move (l));
1880
4
      }
1881
#else
1882
      static
1883
      symbol_type
1884
      make_SOCKET_PORT (const location_type& l)
1885
      {
1886
        return symbol_type (token::TOKEN_SOCKET_PORT, l);
1887
      }
1888
#endif
1889
#if 201103L <= YY_CPLUSPLUS
1890
      static
1891
      symbol_type
1892
      make_AUTHENTICATION (location_type l)
1893
0
      {
1894
0
        return symbol_type (token::TOKEN_AUTHENTICATION, std::move (l));
1895
0
      }
1896
#else
1897
      static
1898
      symbol_type
1899
      make_AUTHENTICATION (const location_type& l)
1900
      {
1901
        return symbol_type (token::TOKEN_AUTHENTICATION, l);
1902
      }
1903
#endif
1904
#if 201103L <= YY_CPLUSPLUS
1905
      static
1906
      symbol_type
1907
      make_TYPE (location_type l)
1908
0
      {
1909
0
        return symbol_type (token::TOKEN_TYPE, std::move (l));
1910
0
      }
1911
#else
1912
      static
1913
      symbol_type
1914
      make_TYPE (const location_type& l)
1915
      {
1916
        return symbol_type (token::TOKEN_TYPE, l);
1917
      }
1918
#endif
1919
#if 201103L <= YY_CPLUSPLUS
1920
      static
1921
      symbol_type
1922
      make_BASIC (location_type l)
1923
0
      {
1924
0
        return symbol_type (token::TOKEN_BASIC, std::move (l));
1925
0
      }
1926
#else
1927
      static
1928
      symbol_type
1929
      make_BASIC (const location_type& l)
1930
      {
1931
        return symbol_type (token::TOKEN_BASIC, l);
1932
      }
1933
#endif
1934
#if 201103L <= YY_CPLUSPLUS
1935
      static
1936
      symbol_type
1937
      make_REALM (location_type l)
1938
0
      {
1939
0
        return symbol_type (token::TOKEN_REALM, std::move (l));
1940
0
      }
1941
#else
1942
      static
1943
      symbol_type
1944
      make_REALM (const location_type& l)
1945
      {
1946
        return symbol_type (token::TOKEN_REALM, l);
1947
      }
1948
#endif
1949
#if 201103L <= YY_CPLUSPLUS
1950
      static
1951
      symbol_type
1952
      make_DIRECTORY (location_type l)
1953
0
      {
1954
0
        return symbol_type (token::TOKEN_DIRECTORY, std::move (l));
1955
0
      }
1956
#else
1957
      static
1958
      symbol_type
1959
      make_DIRECTORY (const location_type& l)
1960
      {
1961
        return symbol_type (token::TOKEN_DIRECTORY, l);
1962
      }
1963
#endif
1964
#if 201103L <= YY_CPLUSPLUS
1965
      static
1966
      symbol_type
1967
      make_CLIENTS (location_type l)
1968
0
      {
1969
0
        return symbol_type (token::TOKEN_CLIENTS, std::move (l));
1970
0
      }
1971
#else
1972
      static
1973
      symbol_type
1974
      make_CLIENTS (const location_type& l)
1975
      {
1976
        return symbol_type (token::TOKEN_CLIENTS, l);
1977
      }
1978
#endif
1979
#if 201103L <= YY_CPLUSPLUS
1980
      static
1981
      symbol_type
1982
      make_USER (location_type l)
1983
0
      {
1984
0
        return symbol_type (token::TOKEN_USER, std::move (l));
1985
0
      }
1986
#else
1987
      static
1988
      symbol_type
1989
      make_USER (const location_type& l)
1990
      {
1991
        return symbol_type (token::TOKEN_USER, l);
1992
      }
1993
#endif
1994
#if 201103L <= YY_CPLUSPLUS
1995
      static
1996
      symbol_type
1997
      make_USER_FILE (location_type l)
1998
0
      {
1999
0
        return symbol_type (token::TOKEN_USER_FILE, std::move (l));
2000
0
      }
2001
#else
2002
      static
2003
      symbol_type
2004
      make_USER_FILE (const location_type& l)
2005
      {
2006
        return symbol_type (token::TOKEN_USER_FILE, l);
2007
      }
2008
#endif
2009
#if 201103L <= YY_CPLUSPLUS
2010
      static
2011
      symbol_type
2012
      make_PASSWORD (location_type l)
2013
0
      {
2014
0
        return symbol_type (token::TOKEN_PASSWORD, std::move (l));
2015
0
      }
2016
#else
2017
      static
2018
      symbol_type
2019
      make_PASSWORD (const location_type& l)
2020
      {
2021
        return symbol_type (token::TOKEN_PASSWORD, l);
2022
      }
2023
#endif
2024
#if 201103L <= YY_CPLUSPLUS
2025
      static
2026
      symbol_type
2027
      make_PASSWORD_FILE (location_type l)
2028
0
      {
2029
0
        return symbol_type (token::TOKEN_PASSWORD_FILE, std::move (l));
2030
0
      }
2031
#else
2032
      static
2033
      symbol_type
2034
      make_PASSWORD_FILE (const location_type& l)
2035
      {
2036
        return symbol_type (token::TOKEN_PASSWORD_FILE, l);
2037
      }
2038
#endif
2039
#if 201103L <= YY_CPLUSPLUS
2040
      static
2041
      symbol_type
2042
      make_TRUST_ANCHOR (location_type l)
2043
0
      {
2044
0
        return symbol_type (token::TOKEN_TRUST_ANCHOR, std::move (l));
2045
0
      }
2046
#else
2047
      static
2048
      symbol_type
2049
      make_TRUST_ANCHOR (const location_type& l)
2050
      {
2051
        return symbol_type (token::TOKEN_TRUST_ANCHOR, l);
2052
      }
2053
#endif
2054
#if 201103L <= YY_CPLUSPLUS
2055
      static
2056
      symbol_type
2057
      make_CERT_FILE (location_type l)
2058
1
      {
2059
1
        return symbol_type (token::TOKEN_CERT_FILE, std::move (l));
2060
1
      }
2061
#else
2062
      static
2063
      symbol_type
2064
      make_CERT_FILE (const location_type& l)
2065
      {
2066
        return symbol_type (token::TOKEN_CERT_FILE, l);
2067
      }
2068
#endif
2069
#if 201103L <= YY_CPLUSPLUS
2070
      static
2071
      symbol_type
2072
      make_KEY_FILE (location_type l)
2073
5
      {
2074
5
        return symbol_type (token::TOKEN_KEY_FILE, std::move (l));
2075
5
      }
2076
#else
2077
      static
2078
      symbol_type
2079
      make_KEY_FILE (const location_type& l)
2080
      {
2081
        return symbol_type (token::TOKEN_KEY_FILE, l);
2082
      }
2083
#endif
2084
#if 201103L <= YY_CPLUSPLUS
2085
      static
2086
      symbol_type
2087
      make_CERT_REQUIRED (location_type l)
2088
0
      {
2089
0
        return symbol_type (token::TOKEN_CERT_REQUIRED, std::move (l));
2090
0
      }
2091
#else
2092
      static
2093
      symbol_type
2094
      make_CERT_REQUIRED (const location_type& l)
2095
      {
2096
        return symbol_type (token::TOKEN_CERT_REQUIRED, l);
2097
      }
2098
#endif
2099
#if 201103L <= YY_CPLUSPLUS
2100
      static
2101
      symbol_type
2102
      make_HOOKS_LIBRARIES (location_type l)
2103
550
      {
2104
550
        return symbol_type (token::TOKEN_HOOKS_LIBRARIES, std::move (l));
2105
550
      }
2106
#else
2107
      static
2108
      symbol_type
2109
      make_HOOKS_LIBRARIES (const location_type& l)
2110
      {
2111
        return symbol_type (token::TOKEN_HOOKS_LIBRARIES, l);
2112
      }
2113
#endif
2114
#if 201103L <= YY_CPLUSPLUS
2115
      static
2116
      symbol_type
2117
      make_LIBRARY (location_type l)
2118
1.17k
      {
2119
1.17k
        return symbol_type (token::TOKEN_LIBRARY, std::move (l));
2120
1.17k
      }
2121
#else
2122
      static
2123
      symbol_type
2124
      make_LIBRARY (const location_type& l)
2125
      {
2126
        return symbol_type (token::TOKEN_LIBRARY, l);
2127
      }
2128
#endif
2129
#if 201103L <= YY_CPLUSPLUS
2130
      static
2131
      symbol_type
2132
      make_PARAMETERS (location_type l)
2133
9
      {
2134
9
        return symbol_type (token::TOKEN_PARAMETERS, std::move (l));
2135
9
      }
2136
#else
2137
      static
2138
      symbol_type
2139
      make_PARAMETERS (const location_type& l)
2140
      {
2141
        return symbol_type (token::TOKEN_PARAMETERS, l);
2142
      }
2143
#endif
2144
#if 201103L <= YY_CPLUSPLUS
2145
      static
2146
      symbol_type
2147
      make_LOGGERS (location_type l)
2148
98
      {
2149
98
        return symbol_type (token::TOKEN_LOGGERS, std::move (l));
2150
98
      }
2151
#else
2152
      static
2153
      symbol_type
2154
      make_LOGGERS (const location_type& l)
2155
      {
2156
        return symbol_type (token::TOKEN_LOGGERS, l);
2157
      }
2158
#endif
2159
#if 201103L <= YY_CPLUSPLUS
2160
      static
2161
      symbol_type
2162
      make_NAME (location_type l)
2163
2.48k
      {
2164
2.48k
        return symbol_type (token::TOKEN_NAME, std::move (l));
2165
2.48k
      }
2166
#else
2167
      static
2168
      symbol_type
2169
      make_NAME (const location_type& l)
2170
      {
2171
        return symbol_type (token::TOKEN_NAME, l);
2172
      }
2173
#endif
2174
#if 201103L <= YY_CPLUSPLUS
2175
      static
2176
      symbol_type
2177
      make_OUTPUT_OPTIONS (location_type l)
2178
7
      {
2179
7
        return symbol_type (token::TOKEN_OUTPUT_OPTIONS, std::move (l));
2180
7
      }
2181
#else
2182
      static
2183
      symbol_type
2184
      make_OUTPUT_OPTIONS (const location_type& l)
2185
      {
2186
        return symbol_type (token::TOKEN_OUTPUT_OPTIONS, l);
2187
      }
2188
#endif
2189
#if 201103L <= YY_CPLUSPLUS
2190
      static
2191
      symbol_type
2192
      make_OUTPUT (location_type l)
2193
2
      {
2194
2
        return symbol_type (token::TOKEN_OUTPUT, std::move (l));
2195
2
      }
2196
#else
2197
      static
2198
      symbol_type
2199
      make_OUTPUT (const location_type& l)
2200
      {
2201
        return symbol_type (token::TOKEN_OUTPUT, l);
2202
      }
2203
#endif
2204
#if 201103L <= YY_CPLUSPLUS
2205
      static
2206
      symbol_type
2207
      make_DEBUGLEVEL (location_type l)
2208
4
      {
2209
4
        return symbol_type (token::TOKEN_DEBUGLEVEL, std::move (l));
2210
4
      }
2211
#else
2212
      static
2213
      symbol_type
2214
      make_DEBUGLEVEL (const location_type& l)
2215
      {
2216
        return symbol_type (token::TOKEN_DEBUGLEVEL, l);
2217
      }
2218
#endif
2219
#if 201103L <= YY_CPLUSPLUS
2220
      static
2221
      symbol_type
2222
      make_SEVERITY (location_type l)
2223
93
      {
2224
93
        return symbol_type (token::TOKEN_SEVERITY, std::move (l));
2225
93
      }
2226
#else
2227
      static
2228
      symbol_type
2229
      make_SEVERITY (const location_type& l)
2230
      {
2231
        return symbol_type (token::TOKEN_SEVERITY, l);
2232
      }
2233
#endif
2234
#if 201103L <= YY_CPLUSPLUS
2235
      static
2236
      symbol_type
2237
      make_FLUSH (location_type l)
2238
0
      {
2239
0
        return symbol_type (token::TOKEN_FLUSH, std::move (l));
2240
0
      }
2241
#else
2242
      static
2243
      symbol_type
2244
      make_FLUSH (const location_type& l)
2245
      {
2246
        return symbol_type (token::TOKEN_FLUSH, l);
2247
      }
2248
#endif
2249
#if 201103L <= YY_CPLUSPLUS
2250
      static
2251
      symbol_type
2252
      make_MAXSIZE (location_type l)
2253
0
      {
2254
0
        return symbol_type (token::TOKEN_MAXSIZE, std::move (l));
2255
0
      }
2256
#else
2257
      static
2258
      symbol_type
2259
      make_MAXSIZE (const location_type& l)
2260
      {
2261
        return symbol_type (token::TOKEN_MAXSIZE, l);
2262
      }
2263
#endif
2264
#if 201103L <= YY_CPLUSPLUS
2265
      static
2266
      symbol_type
2267
      make_MAXVER (location_type l)
2268
0
      {
2269
0
        return symbol_type (token::TOKEN_MAXVER, std::move (l));
2270
0
      }
2271
#else
2272
      static
2273
      symbol_type
2274
      make_MAXVER (const location_type& l)
2275
      {
2276
        return symbol_type (token::TOKEN_MAXVER, l);
2277
      }
2278
#endif
2279
#if 201103L <= YY_CPLUSPLUS
2280
      static
2281
      symbol_type
2282
      make_PATTERN (location_type l)
2283
0
      {
2284
0
        return symbol_type (token::TOKEN_PATTERN, std::move (l));
2285
0
      }
2286
#else
2287
      static
2288
      symbol_type
2289
      make_PATTERN (const location_type& l)
2290
      {
2291
        return symbol_type (token::TOKEN_PATTERN, l);
2292
      }
2293
#endif
2294
#if 201103L <= YY_CPLUSPLUS
2295
      static
2296
      symbol_type
2297
      make_TOPLEVEL_JSON (location_type l)
2298
3.03k
      {
2299
3.03k
        return symbol_type (token::TOKEN_TOPLEVEL_JSON, std::move (l));
2300
3.03k
      }
2301
#else
2302
      static
2303
      symbol_type
2304
      make_TOPLEVEL_JSON (const location_type& l)
2305
      {
2306
        return symbol_type (token::TOKEN_TOPLEVEL_JSON, l);
2307
      }
2308
#endif
2309
#if 201103L <= YY_CPLUSPLUS
2310
      static
2311
      symbol_type
2312
      make_TOPLEVEL_DHCPDDNS (location_type l)
2313
447
      {
2314
447
        return symbol_type (token::TOKEN_TOPLEVEL_DHCPDDNS, std::move (l));
2315
447
      }
2316
#else
2317
      static
2318
      symbol_type
2319
      make_TOPLEVEL_DHCPDDNS (const location_type& l)
2320
      {
2321
        return symbol_type (token::TOKEN_TOPLEVEL_DHCPDDNS, l);
2322
      }
2323
#endif
2324
#if 201103L <= YY_CPLUSPLUS
2325
      static
2326
      symbol_type
2327
      make_SUB_DHCPDDNS (location_type l)
2328
1.58k
      {
2329
1.58k
        return symbol_type (token::TOKEN_SUB_DHCPDDNS, std::move (l));
2330
1.58k
      }
2331
#else
2332
      static
2333
      symbol_type
2334
      make_SUB_DHCPDDNS (const location_type& l)
2335
      {
2336
        return symbol_type (token::TOKEN_SUB_DHCPDDNS, l);
2337
      }
2338
#endif
2339
#if 201103L <= YY_CPLUSPLUS
2340
      static
2341
      symbol_type
2342
      make_SUB_TSIG_KEY (location_type l)
2343
417
      {
2344
417
        return symbol_type (token::TOKEN_SUB_TSIG_KEY, std::move (l));
2345
417
      }
2346
#else
2347
      static
2348
      symbol_type
2349
      make_SUB_TSIG_KEY (const location_type& l)
2350
      {
2351
        return symbol_type (token::TOKEN_SUB_TSIG_KEY, l);
2352
      }
2353
#endif
2354
#if 201103L <= YY_CPLUSPLUS
2355
      static
2356
      symbol_type
2357
      make_SUB_TSIG_KEYS (location_type l)
2358
784
      {
2359
784
        return symbol_type (token::TOKEN_SUB_TSIG_KEYS, std::move (l));
2360
784
      }
2361
#else
2362
      static
2363
      symbol_type
2364
      make_SUB_TSIG_KEYS (const location_type& l)
2365
      {
2366
        return symbol_type (token::TOKEN_SUB_TSIG_KEYS, l);
2367
      }
2368
#endif
2369
#if 201103L <= YY_CPLUSPLUS
2370
      static
2371
      symbol_type
2372
      make_SUB_DDNS_DOMAIN (location_type l)
2373
388
      {
2374
388
        return symbol_type (token::TOKEN_SUB_DDNS_DOMAIN, std::move (l));
2375
388
      }
2376
#else
2377
      static
2378
      symbol_type
2379
      make_SUB_DDNS_DOMAIN (const location_type& l)
2380
      {
2381
        return symbol_type (token::TOKEN_SUB_DDNS_DOMAIN, l);
2382
      }
2383
#endif
2384
#if 201103L <= YY_CPLUSPLUS
2385
      static
2386
      symbol_type
2387
      make_SUB_DDNS_DOMAINS (location_type l)
2388
466
      {
2389
466
        return symbol_type (token::TOKEN_SUB_DDNS_DOMAINS, std::move (l));
2390
466
      }
2391
#else
2392
      static
2393
      symbol_type
2394
      make_SUB_DDNS_DOMAINS (const location_type& l)
2395
      {
2396
        return symbol_type (token::TOKEN_SUB_DDNS_DOMAINS, l);
2397
      }
2398
#endif
2399
#if 201103L <= YY_CPLUSPLUS
2400
      static
2401
      symbol_type
2402
      make_SUB_DNS_SERVER (location_type l)
2403
538
      {
2404
538
        return symbol_type (token::TOKEN_SUB_DNS_SERVER, std::move (l));
2405
538
      }
2406
#else
2407
      static
2408
      symbol_type
2409
      make_SUB_DNS_SERVER (const location_type& l)
2410
      {
2411
        return symbol_type (token::TOKEN_SUB_DNS_SERVER, l);
2412
      }
2413
#endif
2414
#if 201103L <= YY_CPLUSPLUS
2415
      static
2416
      symbol_type
2417
      make_SUB_DNS_SERVERS (location_type l)
2418
0
      {
2419
0
        return symbol_type (token::TOKEN_SUB_DNS_SERVERS, std::move (l));
2420
0
      }
2421
#else
2422
      static
2423
      symbol_type
2424
      make_SUB_DNS_SERVERS (const location_type& l)
2425
      {
2426
        return symbol_type (token::TOKEN_SUB_DNS_SERVERS, l);
2427
      }
2428
#endif
2429
#if 201103L <= YY_CPLUSPLUS
2430
      static
2431
      symbol_type
2432
      make_SUB_HOOKS_LIBRARY (location_type l)
2433
273
      {
2434
273
        return symbol_type (token::TOKEN_SUB_HOOKS_LIBRARY, std::move (l));
2435
273
      }
2436
#else
2437
      static
2438
      symbol_type
2439
      make_SUB_HOOKS_LIBRARY (const location_type& l)
2440
      {
2441
        return symbol_type (token::TOKEN_SUB_HOOKS_LIBRARY, l);
2442
      }
2443
#endif
2444
#if 201103L <= YY_CPLUSPLUS
2445
      static
2446
      symbol_type
2447
      make_STRING (std::string v, location_type l)
2448
50.5k
      {
2449
50.5k
        return symbol_type (token::TOKEN_STRING, std::move (v), std::move (l));
2450
50.5k
      }
2451
#else
2452
      static
2453
      symbol_type
2454
      make_STRING (const std::string& v, const location_type& l)
2455
      {
2456
        return symbol_type (token::TOKEN_STRING, v, l);
2457
      }
2458
#endif
2459
#if 201103L <= YY_CPLUSPLUS
2460
      static
2461
      symbol_type
2462
      make_INTEGER (int64_t v, location_type l)
2463
16.6k
      {
2464
16.6k
        return symbol_type (token::TOKEN_INTEGER, std::move (v), std::move (l));
2465
16.6k
      }
2466
#else
2467
      static
2468
      symbol_type
2469
      make_INTEGER (const int64_t& v, const location_type& l)
2470
      {
2471
        return symbol_type (token::TOKEN_INTEGER, v, l);
2472
      }
2473
#endif
2474
#if 201103L <= YY_CPLUSPLUS
2475
      static
2476
      symbol_type
2477
      make_FLOAT (double v, location_type l)
2478
2.22k
      {
2479
2.22k
        return symbol_type (token::TOKEN_FLOAT, std::move (v), std::move (l));
2480
2.22k
      }
2481
#else
2482
      static
2483
      symbol_type
2484
      make_FLOAT (const double& v, const location_type& l)
2485
      {
2486
        return symbol_type (token::TOKEN_FLOAT, v, l);
2487
      }
2488
#endif
2489
#if 201103L <= YY_CPLUSPLUS
2490
      static
2491
      symbol_type
2492
      make_BOOLEAN (bool v, location_type l)
2493
517
      {
2494
517
        return symbol_type (token::TOKEN_BOOLEAN, std::move (v), std::move (l));
2495
517
      }
2496
#else
2497
      static
2498
      symbol_type
2499
      make_BOOLEAN (const bool& v, const location_type& l)
2500
      {
2501
        return symbol_type (token::TOKEN_BOOLEAN, v, l);
2502
      }
2503
#endif
2504
2505
2506
    class context
2507
    {
2508
    public:
2509
      context (const D2Parser& yyparser, const symbol_type& yyla);
2510
2.86k
      const symbol_type& lookahead () const YY_NOEXCEPT { return yyla_; }
2511
2.86k
      symbol_kind_type token () const YY_NOEXCEPT { return yyla_.kind (); }
2512
0
      const location_type& location () const YY_NOEXCEPT { return yyla_.location; }
2513
2514
      /// Put in YYARG at most YYARGN of the expected tokens, and return the
2515
      /// number of tokens stored in YYARG.  If YYARG is null, return the
2516
      /// number of expected tokens (guaranteed to be less than YYNTOKENS).
2517
      int expected_tokens (symbol_kind_type yyarg[], int yyargn) const;
2518
2519
    private:
2520
      const D2Parser& yyparser_;
2521
      const symbol_type& yyla_;
2522
    };
2523
2524
  private:
2525
#if YY_CPLUSPLUS < 201103L
2526
    /// Non copyable.
2527
    D2Parser (const D2Parser&);
2528
    /// Non copyable.
2529
    D2Parser& operator= (const D2Parser&);
2530
#endif
2531
2532
2533
    /// Stored state numbers (used for stacks).
2534
    typedef short state_type;
2535
2536
    /// The arguments of the error message.
2537
    int yy_syntax_error_arguments_ (const context& yyctx,
2538
                                    symbol_kind_type yyarg[], int yyargn) const;
2539
2540
    /// Generate an error message.
2541
    /// \param yyctx     the context in which the error occurred.
2542
    virtual std::string yysyntax_error_ (const context& yyctx) const;
2543
    /// Compute post-reduction state.
2544
    /// \param yystate   the current state
2545
    /// \param yysym     the nonterminal to push on the stack
2546
    static state_type yy_lr_goto_state_ (state_type yystate, int yysym);
2547
2548
    /// Whether the given \c yypact_ value indicates a defaulted state.
2549
    /// \param yyvalue   the value to check
2550
    static bool yy_pact_value_is_default_ (int yyvalue) YY_NOEXCEPT;
2551
2552
    /// Whether the given \c yytable_ value indicates a syntax error.
2553
    /// \param yyvalue   the value to check
2554
    static bool yy_table_value_is_error_ (int yyvalue) YY_NOEXCEPT;
2555
2556
    static const short yypact_ninf_;
2557
    static const signed char yytable_ninf_;
2558
2559
    /// Convert a scanner token kind \a t to a symbol kind.
2560
    /// In theory \a t should be a token_kind_type, but character literals
2561
    /// are valid, yet not members of the token_kind_type enum.
2562
    static symbol_kind_type yytranslate_ (int t) YY_NOEXCEPT;
2563
2564
    /// Convert the symbol name \a n to a form suitable for a diagnostic.
2565
    static std::string yytnamerr_ (const char *yystr);
2566
2567
    /// For a symbol, its name in clear.
2568
    static const char* const yytname_[];
2569
2570
2571
    // Tables.
2572
    // YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
2573
    // STATE-NUM.
2574
    static const short yypact_[];
2575
2576
    // YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
2577
    // Performed when YYTABLE does not specify something else to do.  Zero
2578
    // means the default is an error.
2579
    static const short yydefact_[];
2580
2581
    // YYPGOTO[NTERM-NUM].
2582
    static const short yypgoto_[];
2583
2584
    // YYDEFGOTO[NTERM-NUM].
2585
    static const short yydefgoto_[];
2586
2587
    // YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
2588
    // positive, shift that token.  If negative, reduce the rule whose
2589
    // number is the opposite.  If YYTABLE_NINF, syntax error.
2590
    static const short yytable_[];
2591
2592
    static const short yycheck_[];
2593
2594
    // YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
2595
    // state STATE-NUM.
2596
    static const short yystos_[];
2597
2598
    // YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM.
2599
    static const short yyr1_[];
2600
2601
    // YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM.
2602
    static const signed char yyr2_[];
2603
2604
2605
#if D2_PARSER_DEBUG
2606
    // YYRLINE[YYN] -- Source line where rule number YYN was defined.
2607
    static const short yyrline_[];
2608
    /// Report on the debug stream that the rule \a r is going to be reduced.
2609
    virtual void yy_reduce_print_ (int r) const;
2610
    /// Print the state stack on the debug stream.
2611
    virtual void yy_stack_print_ () const;
2612
2613
    /// Debugging level.
2614
    int yydebug_;
2615
    /// Debug stream.
2616
    std::ostream* yycdebug_;
2617
2618
    /// \brief Display a symbol kind, value and location.
2619
    /// \param yyo    The output stream.
2620
    /// \param yysym  The symbol.
2621
    template <typename Base>
2622
    void yy_print_ (std::ostream& yyo, const basic_symbol<Base>& yysym) const;
2623
#endif
2624
2625
    /// \brief Reclaim the memory associated to a symbol.
2626
    /// \param yymsg     Why this token is reclaimed.
2627
    ///                  If null, print nothing.
2628
    /// \param yysym     The symbol.
2629
    template <typename Base>
2630
    void yy_destroy_ (const char* yymsg, basic_symbol<Base>& yysym) const;
2631
2632
  private:
2633
    /// Type access provider for state based symbols.
2634
    struct by_state
2635
    {
2636
      /// Default constructor.
2637
      by_state () YY_NOEXCEPT;
2638
2639
      /// The symbol kind as needed by the constructor.
2640
      typedef state_type kind_type;
2641
2642
      /// Constructor.
2643
      by_state (kind_type s) YY_NOEXCEPT;
2644
2645
      /// Copy constructor.
2646
      by_state (const by_state& that) YY_NOEXCEPT;
2647
2648
      /// Record that this symbol is empty.
2649
      void clear () YY_NOEXCEPT;
2650
2651
      /// Steal the symbol kind from \a that.
2652
      void move (by_state& that);
2653
2654
      /// The symbol kind (corresponding to \a state).
2655
      /// \a symbol_kind::S_YYEMPTY when empty.
2656
      symbol_kind_type kind () const YY_NOEXCEPT;
2657
2658
      /// The state number used to denote an empty symbol.
2659
      /// We use the initial state, as it does not have a value.
2660
      enum { empty_state = 0 };
2661
2662
      /// The state.
2663
      /// \a empty when empty.
2664
      state_type state;
2665
    };
2666
2667
    /// "Internal" symbol: element of the stack.
2668
    struct stack_symbol_type : basic_symbol<by_state>
2669
    {
2670
      /// Superclass.
2671
      typedef basic_symbol<by_state> super_type;
2672
      /// Construct an empty symbol.
2673
      stack_symbol_type ();
2674
      /// Move or copy construction.
2675
      stack_symbol_type (YY_RVREF (stack_symbol_type) that);
2676
      /// Steal the contents from \a sym to build this.
2677
      stack_symbol_type (state_type s, YY_MOVE_REF (symbol_type) sym);
2678
#if YY_CPLUSPLUS < 201103L
2679
      /// Assignment, needed by push_back by some old implementations.
2680
      /// Moves the contents of that.
2681
      stack_symbol_type& operator= (stack_symbol_type& that);
2682
2683
      /// Assignment, needed by push_back by other implementations.
2684
      /// Needed by some other old implementations.
2685
      stack_symbol_type& operator= (const stack_symbol_type& that);
2686
#endif
2687
    };
2688
2689
    /// A stack with random access from its top.
2690
    template <typename T, typename S = std::vector<T> >
2691
    class stack
2692
    {
2693
    public:
2694
      // Hide our reversed order.
2695
      typedef typename S::iterator iterator;
2696
      typedef typename S::const_iterator const_iterator;
2697
      typedef typename S::size_type size_type;
2698
      typedef typename std::ptrdiff_t index_type;
2699
2700
      stack (size_type n = 200) YY_NOEXCEPT
2701
7.93k
        : seq_ (n)
2702
7.93k
      {}
2703
2704
#if 201103L <= YY_CPLUSPLUS
2705
      /// Non copyable.
2706
      stack (const stack&) = delete;
2707
      /// Non copyable.
2708
      stack& operator= (const stack&) = delete;
2709
#endif
2710
2711
      /// Random access.
2712
      ///
2713
      /// Index 0 returns the topmost element.
2714
      const T&
2715
      operator[] (index_type i) const
2716
1.77M
      {
2717
1.77M
        return seq_[size_type (size () - 1 - i)];
2718
1.77M
      }
2719
2720
      /// Random access.
2721
      ///
2722
      /// Index 0 returns the topmost element.
2723
      T&
2724
      operator[] (index_type i)
2725
8.04M
      {
2726
8.04M
        return seq_[size_type (size () - 1 - i)];
2727
8.04M
      }
2728
2729
      /// Steal the contents of \a t.
2730
      ///
2731
      /// Close to move-semantics.
2732
      void
2733
      push (YY_MOVE_REF (T) t)
2734
1.67M
      {
2735
1.67M
        seq_.push_back (T ());
2736
1.67M
        operator[] (0).move (t);
2737
1.67M
      }
2738
2739
      /// Pop elements from the stack.
2740
      void
2741
      pop (std::ptrdiff_t n = 1) YY_NOEXCEPT
2742
1.36M
      {
2743
3.02M
        for (; 0 < n; --n)
2744
1.66M
          seq_.pop_back ();
2745
1.36M
      }
2746
2747
      /// Pop all elements from the stack.
2748
      void
2749
      clear () YY_NOEXCEPT
2750
7.93k
      {
2751
7.93k
        seq_.clear ();
2752
7.93k
      }
2753
2754
      /// Number of elements on the stack.
2755
      index_type
2756
      size () const YY_NOEXCEPT
2757
10.1M
      {
2758
10.1M
        return index_type (seq_.size ());
2759
10.1M
      }
2760
2761
      /// Iterator on top of the stack (going downwards).
2762
      const_iterator
2763
      begin () const YY_NOEXCEPT
2764
0
      {
2765
0
        return seq_.begin ();
2766
0
      }
2767
2768
      /// Bottom of the stack.
2769
      const_iterator
2770
      end () const YY_NOEXCEPT
2771
0
      {
2772
0
        return seq_.end ();
2773
0
      }
2774
2775
      /// Present a slice of the top of a stack.
2776
      class slice
2777
      {
2778
      public:
2779
        slice (const stack& stack, index_type range) YY_NOEXCEPT
2780
1.04M
          : stack_ (stack)
2781
1.04M
          , range_ (range)
2782
1.04M
        {}
2783
2784
        const T&
2785
        operator[] (index_type i) const
2786
1.76M
        {
2787
1.76M
          return stack_[range_ - i];
2788
1.76M
        }
2789
2790
      private:
2791
        const stack& stack_;
2792
        index_type range_;
2793
      };
2794
2795
    private:
2796
#if YY_CPLUSPLUS < 201103L
2797
      /// Non copyable.
2798
      stack (const stack&);
2799
      /// Non copyable.
2800
      stack& operator= (const stack&);
2801
#endif
2802
      /// The wrapped container.
2803
      S seq_;
2804
    };
2805
2806
2807
    /// Stack type.
2808
    typedef stack<stack_symbol_type> stack_type;
2809
2810
    /// The stack.
2811
    stack_type yystack_;
2812
2813
    /// Push a new state on the stack.
2814
    /// \param m    a debug message to display
2815
    ///             if null, no trace is output.
2816
    /// \param sym  the symbol
2817
    /// \warning the contents of \a s.value is stolen.
2818
    void yypush_ (const char* m, YY_MOVE_REF (stack_symbol_type) sym);
2819
2820
    /// Push a new look ahead token on the state on the stack.
2821
    /// \param m    a debug message to display
2822
    ///             if null, no trace is output.
2823
    /// \param s    the state
2824
    /// \param sym  the symbol (for its value and location).
2825
    /// \warning the contents of \a sym.value is stolen.
2826
    void yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym);
2827
2828
    /// Pop \a n symbols from the stack.
2829
    void yypop_ (int n = 1) YY_NOEXCEPT;
2830
2831
    /// Constants.
2832
    enum
2833
    {
2834
      yylast_ = 461,     ///< Last index in yytable_.
2835
      yynnts_ = 198,  ///< Number of nonterminal symbols.
2836
      yyfinal_ = 22 ///< Termination state number.
2837
    };
2838
2839
2840
    // User arguments.
2841
    isc::d2::D2ParserContext& ctx;
2842
2843
  };
2844
2845
  inline
2846
  D2Parser::symbol_kind_type
2847
  D2Parser::yytranslate_ (int t) YY_NOEXCEPT
2848
629k
  {
2849
    // YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to
2850
    // TOKEN-NUM as returned by yylex.
2851
629k
    static
2852
629k
    const signed char
2853
629k
    translate_table[] =
2854
629k
    {
2855
629k
       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2856
629k
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2857
629k
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2858
629k
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2859
629k
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2860
629k
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2861
629k
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2862
629k
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2863
629k
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2864
629k
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2865
629k
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2866
629k
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2867
629k
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2868
629k
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2869
629k
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2870
629k
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2871
629k
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2872
629k
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2873
629k
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2874
629k
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2875
629k
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2876
629k
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2877
629k
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2878
629k
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2879
629k
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2880
629k
       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
2881
629k
       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
2882
629k
      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
2883
629k
      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
2884
629k
      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2885
629k
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2886
629k
      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
2887
629k
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
2888
629k
      75,    76,    77,    78,    79,    80,    81
2889
629k
    };
2890
    // Last valid token kind.
2891
629k
    const int code_max = 336;
2892
2893
629k
    if (t <= 0)
2894
1.55k
      return symbol_kind::S_YYEOF;
2895
627k
    else if (t <= code_max)
2896
627k
      return static_cast <symbol_kind_type> (translate_table[t]);
2897
0
    else
2898
0
      return symbol_kind::S_YYUNDEF;
2899
629k
  }
2900
2901
  // basic_symbol.
2902
  template <typename Base>
2903
  D2Parser::basic_symbol<Base>::basic_symbol (const basic_symbol& that)
2904
    : Base (that)
2905
    , value ()
2906
    , location (that.location)
2907
  {
2908
    switch (this->kind ())
2909
    {
2910
      case symbol_kind::S_value: // value
2911
      case symbol_kind::S_map_value: // map_value
2912
      case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value
2913
      case symbol_kind::S_control_socket_type_value: // control_socket_type_value
2914
      case symbol_kind::S_auth_type_value: // auth_type_value
2915
        value.copy< ElementPtr > (YY_MOVE (that.value));
2916
        break;
2917
2918
      case symbol_kind::S_BOOLEAN: // "boolean"
2919
        value.copy< bool > (YY_MOVE (that.value));
2920
        break;
2921
2922
      case symbol_kind::S_FLOAT: // "floating point"
2923
        value.copy< double > (YY_MOVE (that.value));
2924
        break;
2925
2926
      case symbol_kind::S_INTEGER: // "integer"
2927
        value.copy< int64_t > (YY_MOVE (that.value));
2928
        break;
2929
2930
      case symbol_kind::S_STRING: // "constant string"
2931
        value.copy< std::string > (YY_MOVE (that.value));
2932
        break;
2933
2934
      default:
2935
        break;
2936
    }
2937
2938
  }
2939
2940
2941
2942
2943
  template <typename Base>
2944
  D2Parser::symbol_kind_type
2945
  D2Parser::basic_symbol<Base>::type_get () const YY_NOEXCEPT
2946
  {
2947
    return this->kind ();
2948
  }
2949
2950
2951
  template <typename Base>
2952
  bool
2953
  D2Parser::basic_symbol<Base>::empty () const YY_NOEXCEPT
2954
800k
  {
2955
800k
    return this->kind () == symbol_kind::S_YYEMPTY;
2956
800k
  }
Unexecuted instantiation: isc::d2::D2Parser::basic_symbol<isc::d2::D2Parser::by_state>::empty() const
isc::d2::D2Parser::basic_symbol<isc::d2::D2Parser::by_kind>::empty() const
Line
Count
Source
2954
800k
  {
2955
800k
    return this->kind () == symbol_kind::S_YYEMPTY;
2956
800k
  }
2957
2958
  template <typename Base>
2959
  void
2960
  D2Parser::basic_symbol<Base>::move (basic_symbol& s)
2961
2.30M
  {
2962
2.30M
    super_type::move (s);
2963
2.30M
    switch (this->kind ())
2964
2.30M
    {
2965
184k
      case symbol_kind::S_value: // value
2966
185k
      case symbol_kind::S_map_value: // map_value
2967
185k
      case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value
2968
186k
      case symbol_kind::S_control_socket_type_value: // control_socket_type_value
2969
186k
      case symbol_kind::S_auth_type_value: // auth_type_value
2970
186k
        value.move< ElementPtr > (YY_MOVE (s.value));
2971
186k
        break;
2972
2973
1.00k
      case symbol_kind::S_BOOLEAN: // "boolean"
2974
1.00k
        value.move< bool > (YY_MOVE (s.value));
2975
1.00k
        break;
2976
2977
4.39k
      case symbol_kind::S_FLOAT: // "floating point"
2978
4.39k
        value.move< double > (YY_MOVE (s.value));
2979
4.39k
        break;
2980
2981
32.8k
      case symbol_kind::S_INTEGER: // "integer"
2982
32.8k
        value.move< int64_t > (YY_MOVE (s.value));
2983
32.8k
        break;
2984
2985
100k
      case symbol_kind::S_STRING: // "constant string"
2986
100k
        value.move< std::string > (YY_MOVE (s.value));
2987
100k
        break;
2988
2989
1.97M
      default:
2990
1.97M
        break;
2991
2.30M
    }
2992
2993
2.30M
    location = YY_MOVE (s.location);
2994
2.30M
  }
isc::d2::D2Parser::basic_symbol<isc::d2::D2Parser::by_state>::move(isc::d2::D2Parser::basic_symbol<isc::d2::D2Parser::by_state>&)
Line
Count
Source
2961
1.67M
  {
2962
1.67M
    super_type::move (s);
2963
1.67M
    switch (this->kind ())
2964
1.67M
    {
2965
184k
      case symbol_kind::S_value: // value
2966
185k
      case symbol_kind::S_map_value: // map_value
2967
185k
      case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value
2968
186k
      case symbol_kind::S_control_socket_type_value: // control_socket_type_value
2969
186k
      case symbol_kind::S_auth_type_value: // auth_type_value
2970
186k
        value.move< ElementPtr > (YY_MOVE (s.value));
2971
186k
        break;
2972
2973
492
      case symbol_kind::S_BOOLEAN: // "boolean"
2974
492
        value.move< bool > (YY_MOVE (s.value));
2975
492
        break;
2976
2977
2.16k
      case symbol_kind::S_FLOAT: // "floating point"
2978
2.16k
        value.move< double > (YY_MOVE (s.value));
2979
2.16k
        break;
2980
2981
16.2k
      case symbol_kind::S_INTEGER: // "integer"
2982
16.2k
        value.move< int64_t > (YY_MOVE (s.value));
2983
16.2k
        break;
2984
2985
49.9k
      case symbol_kind::S_STRING: // "constant string"
2986
49.9k
        value.move< std::string > (YY_MOVE (s.value));
2987
49.9k
        break;
2988
2989
1.41M
      default:
2990
1.41M
        break;
2991
1.67M
    }
2992
2993
1.67M
    location = YY_MOVE (s.location);
2994
1.67M
  }
isc::d2::D2Parser::basic_symbol<isc::d2::D2Parser::by_kind>::move(isc::d2::D2Parser::basic_symbol<isc::d2::D2Parser::by_kind>&)
Line
Count
Source
2961
629k
  {
2962
629k
    super_type::move (s);
2963
629k
    switch (this->kind ())
2964
629k
    {
2965
0
      case symbol_kind::S_value: // value
2966
0
      case symbol_kind::S_map_value: // map_value
2967
0
      case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value
2968
0
      case symbol_kind::S_control_socket_type_value: // control_socket_type_value
2969
0
      case symbol_kind::S_auth_type_value: // auth_type_value
2970
0
        value.move< ElementPtr > (YY_MOVE (s.value));
2971
0
        break;
2972
2973
517
      case symbol_kind::S_BOOLEAN: // "boolean"
2974
517
        value.move< bool > (YY_MOVE (s.value));
2975
517
        break;
2976
2977
2.22k
      case symbol_kind::S_FLOAT: // "floating point"
2978
2.22k
        value.move< double > (YY_MOVE (s.value));
2979
2.22k
        break;
2980
2981
16.6k
      case symbol_kind::S_INTEGER: // "integer"
2982
16.6k
        value.move< int64_t > (YY_MOVE (s.value));
2983
16.6k
        break;
2984
2985
50.5k
      case symbol_kind::S_STRING: // "constant string"
2986
50.5k
        value.move< std::string > (YY_MOVE (s.value));
2987
50.5k
        break;
2988
2989
559k
      default:
2990
559k
        break;
2991
629k
    }
2992
2993
629k
    location = YY_MOVE (s.location);
2994
629k
  }
2995
2996
  // by_kind.
2997
  inline
2998
  D2Parser::by_kind::by_kind () YY_NOEXCEPT
2999
7.93k
    : kind_ (symbol_kind::S_YYEMPTY)
3000
7.93k
  {}
3001
3002
#if 201103L <= YY_CPLUSPLUS
3003
  inline
3004
  D2Parser::by_kind::by_kind (by_kind&& that) YY_NOEXCEPT
3005
    : kind_ (that.kind_)
3006
  {
3007
    that.clear ();
3008
  }
3009
#endif
3010
3011
  inline
3012
  D2Parser::by_kind::by_kind (const by_kind& that) YY_NOEXCEPT
3013
    : kind_ (that.kind_)
3014
  {}
3015
3016
  inline
3017
  D2Parser::by_kind::by_kind (token_kind_type t) YY_NOEXCEPT
3018
629k
    : kind_ (yytranslate_ (t))
3019
629k
  {}
3020
3021
3022
3023
  inline
3024
  void
3025
  D2Parser::by_kind::clear () YY_NOEXCEPT
3026
1.26M
  {
3027
1.26M
    kind_ = symbol_kind::S_YYEMPTY;
3028
1.26M
  }
3029
3030
  inline
3031
  void
3032
  D2Parser::by_kind::move (by_kind& that)
3033
629k
  {
3034
629k
    kind_ = that.kind_;
3035
629k
    that.clear ();
3036
629k
  }
3037
3038
  inline
3039
  D2Parser::symbol_kind_type
3040
  D2Parser::by_kind::kind () const YY_NOEXCEPT
3041
5.06M
  {
3042
5.06M
    return kind_;
3043
5.06M
  }
3044
3045
3046
  inline
3047
  D2Parser::symbol_kind_type
3048
  D2Parser::by_kind::type_get () const YY_NOEXCEPT
3049
0
  {
3050
0
    return this->kind ();
3051
0
  }
3052
3053
3054
#line 14 "d2_parser.yy"
3055
} } // isc::d2
3056
#line 3057 "d2_parser.h"
3057
3058
3059
3060
3061
#endif // !YY_D2_PARSER_D2_PARSER_H_INCLUDED