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