45#ifndef YY_PARSER4_DHCP4_PARSER_H_INCLUDED
46# define YY_PARSER4_DHCP4_PARSER_H_INCLUDED
48#line 17 "dhcp4_parser.yy"
53#include <boost/lexical_cast.hpp>
60#line 61 "dhcp4_parser.h"
69#if defined __cplusplus
70# define YY_CPLUSPLUS __cplusplus
72# define YY_CPLUSPLUS 199711L
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
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&
91#if 201103L <= YY_CPLUSPLUS
92# define YY_NOEXCEPT noexcept
96# define YY_NOTHROW throw ()
100#if 201703 <= YY_CPLUSPLUS
101# define YY_CONSTEXPR constexpr
105# include "location.hh"
107#ifndef PARSER4__ASSERT
109# define PARSER4__ASSERT assert
113#ifndef YY_ATTRIBUTE_PURE
114# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
115# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
117# define YY_ATTRIBUTE_PURE
121#ifndef YY_ATTRIBUTE_UNUSED
122# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
123# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
125# define YY_ATTRIBUTE_UNUSED
130#if ! defined lint || defined __GNUC__
131# define YY_USE(E) ((void) (E))
136#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
138# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
139 _Pragma ("GCC diagnostic push") \
140 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
141 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
142# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
143 _Pragma ("GCC diagnostic pop")
145# define YY_INITIAL_VALUE(Value) Value
147#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
148# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
149# define YY_IGNORE_MAYBE_UNINITIALIZED_END
151#ifndef YY_INITIAL_VALUE
152# define YY_INITIAL_VALUE(Value)
155#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
156# define YY_IGNORE_USELESS_CAST_BEGIN \
157 _Pragma ("GCC diagnostic push") \
158 _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
159# define YY_IGNORE_USELESS_CAST_END \
160 _Pragma ("GCC diagnostic pop")
162#ifndef YY_IGNORE_USELESS_CAST_BEGIN
163# define YY_IGNORE_USELESS_CAST_BEGIN
164# define YY_IGNORE_USELESS_CAST_END
169# define YY_CAST(Type, Val) static_cast<Type> (Val)
170# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
172# define YY_CAST(Type, Val) ((Type) (Val))
173# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
177# if defined __cplusplus
178# if 201103L <= __cplusplus
179# define YY_NULLPTR nullptr
184# define YY_NULLPTR ((void*)0)
192# define PARSER4_DEBUG 1
194# define PARSER4_DEBUG 0
197# define PARSER4_DEBUG 1
201#line 14 "dhcp4_parser.yy"
202namespace isc {
namespace dhcp {
203#line 204 "dhcp4_parser.h"
227 , yytypeid_ (YY_NULLPTR)
231 template <
typename T>
233 : yytypeid_ (&typeid (T))
236 new (yyas_<T> ()) T (
YY_MOVE (t));
239#if 201103L <= YY_CPLUSPLUS
252# if 201103L <= YY_CPLUSPLUS
254 template <
typename T,
typename... U>
260 yytypeid_ = &
typeid (T);
261 return *
new (yyas_<T> ()) T (std::forward <U>(u)...);
265 template <
typename T>
271 yytypeid_ = &
typeid (T);
272 return *
new (yyas_<T> ()) T ();
276 template <
typename T>
282 yytypeid_ = &
typeid (T);
283 return *
new (yyas_<T> ()) T (t);
289 template <
typename T>
293 return emplace<T> ();
298 template <
typename T>
302 return emplace<T> (t);
306 template <
typename T>
317 template <
typename T>
335 template <
typename T>
341 std::swap (as<T> (), that.as<T> ());
347 template <
typename T>
351# if 201103L <= YY_CPLUSPLUS
352 emplace<T> (std::move (that.
as<T> ()));
360# if 201103L <= YY_CPLUSPLUS
362 template <
typename T>
366 emplace<T> (std::move (that.as<T> ()));
372 template <
typename T>
376 emplace<T> (that.
as<T> ());
380 template <
typename T>
385 yytypeid_ = YY_NULLPTR;
389#if YY_CPLUSPLUS < 201103L
397 template <
typename T>
401 void *yyp = yybuffer_.yyraw;
402 return static_cast<T*
> (yyp);
406 template <
typename T>
410 const void *yyp = yybuffer_.yyraw;
411 return static_cast<const T*
> (yyp);
429 char dummy2[
sizeof (bool)];
432 char dummy3[
sizeof (double)];
435 char dummy4[
sizeof (int64_t)];
438 char dummy5[
sizeof (std::string)];
442 enum { size =
sizeof (union_type) };
454 const std::type_info *yytypeid_;
458 typedef PARSER4_STYPE semantic_type;
467 : std::runtime_error (m)
472 : std::runtime_error (s.what ())
486 TOKEN_PARSER4_EMPTY = -2,
488 TOKEN_PARSER4_error = 256,
489 TOKEN_PARSER4_UNDEF = 257,
492 TOKEN_LSQUARE_BRACKET = 260,
493 TOKEN_RSQUARE_BRACKET = 261,
494 TOKEN_LCURLY_BRACKET = 262,
495 TOKEN_RCURLY_BRACKET = 263,
496 TOKEN_NULL_TYPE = 264,
498 TOKEN_CONFIG_CONTROL = 266,
499 TOKEN_CONFIG_DATABASES = 267,
500 TOKEN_CONFIG_FETCH_WAIT_TIME = 268,
501 TOKEN_INTERFACES_CONFIG = 269,
502 TOKEN_INTERFACES = 270,
503 TOKEN_DHCP_SOCKET_TYPE = 271,
506 TOKEN_OUTBOUND_INTERFACE = 274,
507 TOKEN_SAME_AS_INBOUND = 275,
508 TOKEN_USE_ROUTING = 276,
509 TOKEN_RE_DETECT = 277,
510 TOKEN_SANITY_CHECKS = 278,
511 TOKEN_LEASE_CHECKS = 279,
512 TOKEN_ECHO_CLIENT_ID = 280,
513 TOKEN_MATCH_CLIENT_ID = 281,
514 TOKEN_AUTHORITATIVE = 282,
515 TOKEN_NEXT_SERVER = 283,
516 TOKEN_SERVER_HOSTNAME = 284,
517 TOKEN_BOOT_FILE_NAME = 285,
518 TOKEN_LEASE_DATABASE = 286,
519 TOKEN_HOSTS_DATABASE = 287,
520 TOKEN_HOSTS_DATABASES = 288,
524 TOKEN_POSTGRESQL = 292,
527 TOKEN_PASSWORD = 295,
531 TOKEN_LFC_INTERVAL = 299,
532 TOKEN_READONLY = 300,
533 TOKEN_CONNECT_TIMEOUT = 301,
534 TOKEN_CONTACT_POINTS = 302,
535 TOKEN_KEYSPACE = 303,
536 TOKEN_CONSISTENCY = 304,
537 TOKEN_SERIAL_CONSISTENCY = 305,
538 TOKEN_MAX_RECONNECT_TRIES = 306,
539 TOKEN_RECONNECT_WAIT_TIME = 307,
541 TOKEN_STOP_RETRY_EXIT = 309,
542 TOKEN_SERVE_RETRY_EXIT = 310,
543 TOKEN_SERVE_RETRY_CONTINUE = 311,
544 TOKEN_REQUEST_TIMEOUT = 312,
545 TOKEN_TCP_KEEPALIVE = 313,
546 TOKEN_TCP_NODELAY = 314,
547 TOKEN_MAX_ROW_ERRORS = 315,
548 TOKEN_VALID_LIFETIME = 316,
549 TOKEN_MIN_VALID_LIFETIME = 317,
550 TOKEN_MAX_VALID_LIFETIME = 318,
551 TOKEN_RENEW_TIMER = 319,
552 TOKEN_REBIND_TIMER = 320,
553 TOKEN_CALCULATE_TEE_TIMES = 321,
554 TOKEN_T1_PERCENT = 322,
555 TOKEN_T2_PERCENT = 323,
556 TOKEN_CACHE_THRESHOLD = 324,
557 TOKEN_CACHE_MAX_AGE = 325,
558 TOKEN_DECLINE_PROBATION_PERIOD = 326,
559 TOKEN_SERVER_TAG = 327,
560 TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT = 328,
561 TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE = 329,
562 TOKEN_DDNS_SEND_UPDATES = 330,
563 TOKEN_DDNS_OVERRIDE_NO_UPDATE = 331,
564 TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE = 332,
565 TOKEN_DDNS_REPLACE_CLIENT_NAME = 333,
566 TOKEN_DDNS_GENERATED_PREFIX = 334,
567 TOKEN_DDNS_QUALIFYING_SUFFIX = 335,
568 TOKEN_DDNS_UPDATE_ON_RENEW = 336,
569 TOKEN_DDNS_USE_CONFLICT_RESOLUTION = 337,
570 TOKEN_STORE_EXTENDED_INFO = 338,
572 TOKEN_SUBNET_4O6_INTERFACE = 340,
573 TOKEN_SUBNET_4O6_INTERFACE_ID = 341,
574 TOKEN_SUBNET_4O6_SUBNET = 342,
575 TOKEN_OPTION_DEF = 343,
576 TOKEN_OPTION_DATA = 344,
581 TOKEN_CSV_FORMAT = 349,
582 TOKEN_ALWAYS_SEND = 350,
583 TOKEN_RECORD_TYPES = 351,
584 TOKEN_ENCAPSULATE = 352,
586 TOKEN_SHARED_NETWORKS = 354,
589 TOKEN_USER_CONTEXT = 357,
592 TOKEN_INTERFACE = 360,
594 TOKEN_RESERVATION_MODE = 362,
595 TOKEN_DISABLED = 363,
596 TOKEN_OUT_OF_POOL = 364,
599 TOKEN_RESERVATIONS_GLOBAL = 367,
600 TOKEN_RESERVATIONS_IN_SUBNET = 368,
601 TOKEN_RESERVATIONS_OUT_OF_POOL = 369,
602 TOKEN_HOST_RESERVATION_IDENTIFIERS = 370,
603 TOKEN_CLIENT_CLASSES = 371,
604 TOKEN_REQUIRE_CLIENT_CLASSES = 372,
606 TOKEN_ONLY_IF_REQUIRED = 374,
607 TOKEN_CLIENT_CLASS = 375,
608 TOKEN_RESERVATIONS = 376,
610 TOKEN_HW_ADDRESS = 378,
611 TOKEN_CIRCUIT_ID = 379,
612 TOKEN_CLIENT_ID = 380,
613 TOKEN_HOSTNAME = 381,
616 TOKEN_IP_ADDRESS = 384,
617 TOKEN_IP_ADDRESSES = 385,
618 TOKEN_HOOKS_LIBRARIES = 386,
620 TOKEN_PARAMETERS = 388,
621 TOKEN_EXPIRED_LEASES_PROCESSING = 389,
622 TOKEN_RECLAIM_TIMER_WAIT_TIME = 390,
623 TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 391,
624 TOKEN_HOLD_RECLAIMED_TIME = 392,
625 TOKEN_MAX_RECLAIM_LEASES = 393,
626 TOKEN_MAX_RECLAIM_TIME = 394,
627 TOKEN_UNWARNED_RECLAIM_CYCLES = 395,
628 TOKEN_DHCP4O6_PORT = 396,
629 TOKEN_DHCP_MULTI_THREADING = 397,
630 TOKEN_ENABLE_MULTI_THREADING = 398,
631 TOKEN_THREAD_POOL_SIZE = 399,
632 TOKEN_PACKET_QUEUE_SIZE = 400,
633 TOKEN_CONTROL_SOCKET = 401,
634 TOKEN_SOCKET_TYPE = 402,
635 TOKEN_SOCKET_NAME = 403,
636 TOKEN_DHCP_QUEUE_CONTROL = 404,
637 TOKEN_ENABLE_QUEUE = 405,
638 TOKEN_QUEUE_TYPE = 406,
639 TOKEN_CAPACITY = 407,
640 TOKEN_DHCP_DDNS = 408,
641 TOKEN_ENABLE_UPDATES = 409,
642 TOKEN_QUALIFYING_SUFFIX = 410,
643 TOKEN_SERVER_IP = 411,
644 TOKEN_SERVER_PORT = 412,
645 TOKEN_SENDER_IP = 413,
646 TOKEN_SENDER_PORT = 414,
647 TOKEN_MAX_QUEUE_SIZE = 415,
648 TOKEN_NCR_PROTOCOL = 416,
649 TOKEN_NCR_FORMAT = 417,
650 TOKEN_OVERRIDE_NO_UPDATE = 418,
651 TOKEN_OVERRIDE_CLIENT_UPDATE = 419,
652 TOKEN_REPLACE_CLIENT_NAME = 420,
653 TOKEN_GENERATED_PREFIX = 421,
656 TOKEN_WHEN_PRESENT = 424,
659 TOKEN_WHEN_NOT_PRESENT = 427,
660 TOKEN_HOSTNAME_CHAR_SET = 428,
661 TOKEN_HOSTNAME_CHAR_REPLACEMENT = 429,
662 TOKEN_IP_RESERVATIONS_UNIQUE = 430,
664 TOKEN_OUTPUT_OPTIONS = 432,
666 TOKEN_DEBUGLEVEL = 434,
667 TOKEN_SEVERITY = 435,
672 TOKEN_COMPATIBILITY = 440,
673 TOKEN_LENIENT_OPTION_PARSING = 441,
674 TOKEN_TOPLEVEL_JSON = 442,
675 TOKEN_TOPLEVEL_DHCP4 = 443,
676 TOKEN_SUB_DHCP4 = 444,
677 TOKEN_SUB_INTERFACES4 = 445,
678 TOKEN_SUB_SUBNET4 = 446,
679 TOKEN_SUB_POOL4 = 447,
680 TOKEN_SUB_RESERVATION = 448,
681 TOKEN_SUB_OPTION_DEFS = 449,
682 TOKEN_SUB_OPTION_DEF = 450,
683 TOKEN_SUB_OPTION_DATA = 451,
684 TOKEN_SUB_HOOKS_LIBRARY = 452,
685 TOKEN_SUB_DHCP_DDNS = 453,
686 TOKEN_SUB_CONFIG_CONTROL = 454,
714 S_LSQUARE_BRACKET = 5,
715 S_RSQUARE_BRACKET = 6,
716 S_LCURLY_BRACKET = 7,
717 S_RCURLY_BRACKET = 8,
720 S_CONFIG_CONTROL = 11,
721 S_CONFIG_DATABASES = 12,
722 S_CONFIG_FETCH_WAIT_TIME = 13,
723 S_INTERFACES_CONFIG = 14,
725 S_DHCP_SOCKET_TYPE = 16,
728 S_OUTBOUND_INTERFACE = 19,
729 S_SAME_AS_INBOUND = 20,
732 S_SANITY_CHECKS = 23,
734 S_ECHO_CLIENT_ID = 25,
735 S_MATCH_CLIENT_ID = 26,
736 S_AUTHORITATIVE = 27,
738 S_SERVER_HOSTNAME = 29,
739 S_BOOT_FILE_NAME = 30,
740 S_LEASE_DATABASE = 31,
741 S_HOSTS_DATABASE = 32,
742 S_HOSTS_DATABASES = 33,
755 S_CONNECT_TIMEOUT = 46,
756 S_CONTACT_POINTS = 47,
759 S_SERIAL_CONSISTENCY = 50,
760 S_MAX_RECONNECT_TRIES = 51,
761 S_RECONNECT_WAIT_TIME = 52,
763 S_STOP_RETRY_EXIT = 54,
764 S_SERVE_RETRY_EXIT = 55,
765 S_SERVE_RETRY_CONTINUE = 56,
766 S_REQUEST_TIMEOUT = 57,
767 S_TCP_KEEPALIVE = 58,
769 S_MAX_ROW_ERRORS = 60,
770 S_VALID_LIFETIME = 61,
771 S_MIN_VALID_LIFETIME = 62,
772 S_MAX_VALID_LIFETIME = 63,
775 S_CALCULATE_TEE_TIMES = 66,
778 S_CACHE_THRESHOLD = 69,
779 S_CACHE_MAX_AGE = 70,
780 S_DECLINE_PROBATION_PERIOD = 71,
782 S_STATISTIC_DEFAULT_SAMPLE_COUNT = 73,
783 S_STATISTIC_DEFAULT_SAMPLE_AGE = 74,
784 S_DDNS_SEND_UPDATES = 75,
785 S_DDNS_OVERRIDE_NO_UPDATE = 76,
786 S_DDNS_OVERRIDE_CLIENT_UPDATE = 77,
787 S_DDNS_REPLACE_CLIENT_NAME = 78,
788 S_DDNS_GENERATED_PREFIX = 79,
789 S_DDNS_QUALIFYING_SUFFIX = 80,
790 S_DDNS_UPDATE_ON_RENEW = 81,
791 S_DDNS_USE_CONFLICT_RESOLUTION = 82,
792 S_STORE_EXTENDED_INFO = 83,
794 S_SUBNET_4O6_INTERFACE = 85,
795 S_SUBNET_4O6_INTERFACE_ID = 86,
796 S_SUBNET_4O6_SUBNET = 87,
808 S_SHARED_NETWORKS = 99,
811 S_USER_CONTEXT = 102,
816 S_RESERVATION_MODE = 107,
821 S_RESERVATIONS_GLOBAL = 112,
822 S_RESERVATIONS_IN_SUBNET = 113,
823 S_RESERVATIONS_OUT_OF_POOL = 114,
824 S_HOST_RESERVATION_IDENTIFIERS = 115,
825 S_CLIENT_CLASSES = 116,
826 S_REQUIRE_CLIENT_CLASSES = 117,
828 S_ONLY_IF_REQUIRED = 119,
829 S_CLIENT_CLASS = 120,
830 S_RESERVATIONS = 121,
839 S_IP_ADDRESSES = 130,
840 S_HOOKS_LIBRARIES = 131,
843 S_EXPIRED_LEASES_PROCESSING = 134,
844 S_RECLAIM_TIMER_WAIT_TIME = 135,
845 S_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 136,
846 S_HOLD_RECLAIMED_TIME = 137,
847 S_MAX_RECLAIM_LEASES = 138,
848 S_MAX_RECLAIM_TIME = 139,
849 S_UNWARNED_RECLAIM_CYCLES = 140,
850 S_DHCP4O6_PORT = 141,
851 S_DHCP_MULTI_THREADING = 142,
852 S_ENABLE_MULTI_THREADING = 143,
853 S_THREAD_POOL_SIZE = 144,
854 S_PACKET_QUEUE_SIZE = 145,
855 S_CONTROL_SOCKET = 146,
858 S_DHCP_QUEUE_CONTROL = 149,
859 S_ENABLE_QUEUE = 150,
863 S_ENABLE_UPDATES = 154,
864 S_QUALIFYING_SUFFIX = 155,
869 S_MAX_QUEUE_SIZE = 160,
870 S_NCR_PROTOCOL = 161,
872 S_OVERRIDE_NO_UPDATE = 163,
873 S_OVERRIDE_CLIENT_UPDATE = 164,
874 S_REPLACE_CLIENT_NAME = 165,
875 S_GENERATED_PREFIX = 166,
878 S_WHEN_PRESENT = 169,
881 S_WHEN_NOT_PRESENT = 172,
882 S_HOSTNAME_CHAR_SET = 173,
883 S_HOSTNAME_CHAR_REPLACEMENT = 174,
884 S_IP_RESERVATIONS_UNIQUE = 175,
886 S_OUTPUT_OPTIONS = 177,
894 S_COMPATIBILITY = 185,
895 S_LENIENT_OPTION_PARSING = 186,
896 S_TOPLEVEL_JSON = 187,
897 S_TOPLEVEL_DHCP4 = 188,
899 S_SUB_INTERFACES4 = 190,
902 S_SUB_RESERVATION = 193,
903 S_SUB_OPTION_DEFS = 194,
904 S_SUB_OPTION_DEF = 195,
905 S_SUB_OPTION_DATA = 196,
906 S_SUB_HOOKS_LIBRARY = 197,
907 S_SUB_DHCP_DDNS = 198,
908 S_SUB_CONFIG_CONTROL = 199,
934 S_not_empty_map = 225,
935 S_list_generic = 226,
937 S_list_content = 228,
938 S_not_empty_list = 229,
939 S_list_strings = 230,
941 S_list_strings_content = 232,
942 S_not_empty_list_strings = 233,
943 S_unknown_map_entry = 234,
946 S_global_object = 237,
950 S_global_params = 241,
951 S_global_param = 242,
952 S_valid_lifetime = 243,
953 S_min_valid_lifetime = 244,
954 S_max_valid_lifetime = 245,
956 S_rebind_timer = 247,
957 S_calculate_tee_times = 248,
960 S_cache_threshold = 251,
961 S_cache_max_age = 252,
962 S_decline_probation_period = 253,
965 S_echo_client_id = 256,
966 S_match_client_id = 257,
967 S_authoritative = 258,
968 S_ddns_send_updates = 259,
969 S_ddns_override_no_update = 260,
970 S_ddns_override_client_update = 261,
971 S_ddns_replace_client_name = 262,
973 S_ddns_replace_client_name_value = 264,
974 S_ddns_generated_prefix = 265,
976 S_ddns_qualifying_suffix = 267,
978 S_ddns_update_on_renew = 269,
979 S_ddns_use_conflict_resolution = 270,
980 S_hostname_char_set = 271,
982 S_hostname_char_replacement = 273,
984 S_store_extended_info = 275,
985 S_statistic_default_sample_count = 276,
986 S_statistic_default_sample_age = 277,
987 S_ip_reservations_unique = 278,
988 S_interfaces_config = 279,
990 S_interfaces_config_params = 281,
991 S_interfaces_config_param = 282,
992 S_sub_interfaces4 = 283,
994 S_interfaces_list = 285,
996 S_dhcp_socket_type = 287,
999 S_outbound_interface = 290,
1001 S_outbound_interface_value = 292,
1003 S_lease_database = 294,
1005 S_sanity_checks = 296,
1007 S_sanity_checks_params = 298,
1008 S_sanity_checks_param = 299,
1009 S_lease_checks = 300,
1011 S_hosts_database = 302,
1013 S_hosts_databases = 304,
1015 S_database_list = 306,
1016 S_not_empty_database_list = 307,
1019 S_database_map_params = 310,
1020 S_database_map_param = 311,
1021 S_database_type = 312,
1034 S_lfc_interval = 325,
1036 S_connect_timeout = 327,
1037 S_request_timeout = 328,
1038 S_tcp_keepalive = 329,
1039 S_tcp_nodelay = 330,
1040 S_contact_points = 331,
1044 S_consistency = 335,
1046 S_serial_consistency = 337,
1048 S_max_reconnect_tries = 339,
1049 S_reconnect_wait_time = 340,
1052 S_on_fail_mode = 343,
1053 S_max_row_errors = 344,
1054 S_host_reservation_identifiers = 345,
1056 S_host_reservation_identifiers_list = 347,
1057 S_host_reservation_identifier = 348,
1059 S_hw_address_id = 350,
1063 S_dhcp_multi_threading = 354,
1065 S_multi_threading_params = 356,
1066 S_multi_threading_param = 357,
1067 S_enable_multi_threading = 358,
1068 S_thread_pool_size = 359,
1069 S_packet_queue_size = 360,
1070 S_hooks_libraries = 361,
1072 S_hooks_libraries_list = 363,
1073 S_not_empty_hooks_libraries_list = 364,
1074 S_hooks_library = 365,
1076 S_sub_hooks_library = 367,
1078 S_hooks_params = 369,
1079 S_hooks_param = 370,
1084 S_expired_leases_processing = 375,
1086 S_expired_leases_params = 377,
1087 S_expired_leases_param = 378,
1088 S_reclaim_timer_wait_time = 379,
1089 S_flush_reclaimed_timer_wait_time = 380,
1090 S_hold_reclaimed_time = 381,
1091 S_max_reclaim_leases = 382,
1092 S_max_reclaim_time = 383,
1093 S_unwarned_reclaim_cycles = 384,
1094 S_subnet4_list = 385,
1096 S_subnet4_list_content = 387,
1097 S_not_empty_subnet4_list = 388,
1100 S_sub_subnet4 = 391,
1102 S_subnet4_params = 393,
1103 S_subnet4_param = 394,
1106 S_subnet_4o6_interface = 397,
1108 S_subnet_4o6_interface_id = 399,
1110 S_subnet_4o6_subnet = 401,
1114 S_client_class = 405,
1116 S_require_client_classes = 407,
1118 S_reservations_global = 409,
1119 S_reservations_in_subnet = 410,
1120 S_reservations_out_of_pool = 411,
1121 S_reservation_mode = 412,
1125 S_shared_networks = 416,
1127 S_shared_networks_content = 418,
1128 S_shared_networks_list = 419,
1129 S_shared_network = 420,
1131 S_shared_network_params = 422,
1132 S_shared_network_param = 423,
1133 S_option_def_list = 424,
1135 S_sub_option_def_list = 426,
1137 S_option_def_list_content = 428,
1138 S_not_empty_option_def_list = 429,
1139 S_option_def_entry = 430,
1141 S_sub_option_def = 432,
1143 S_option_def_params = 434,
1144 S_not_empty_option_def_params = 435,
1145 S_option_def_param = 436,
1146 S_option_def_name = 437,
1148 S_option_def_code = 439,
1149 S_option_def_type = 440,
1151 S_option_def_record_types = 442,
1155 S_option_def_space = 446,
1156 S_option_def_encapsulate = 447,
1158 S_option_def_array = 449,
1159 S_option_data_list = 450,
1161 S_option_data_list_content = 452,
1162 S_not_empty_option_data_list = 453,
1163 S_option_data_entry = 454,
1165 S_sub_option_data = 456,
1167 S_option_data_params = 458,
1168 S_not_empty_option_data_params = 459,
1169 S_option_data_param = 460,
1170 S_option_data_name = 461,
1171 S_option_data_data = 462,
1173 S_option_data_code = 464,
1174 S_option_data_space = 465,
1175 S_option_data_csv_format = 466,
1176 S_option_data_always_send = 467,
1179 S_pools_list_content = 470,
1180 S_not_empty_pools_list = 471,
1181 S_pool_list_entry = 472,
1185 S_pool_params = 476,
1189 S_user_context = 480,
1193 S_reservations = 484,
1195 S_reservations_list = 486,
1196 S_not_empty_reservations_list = 487,
1197 S_reservation = 488,
1199 S_sub_reservation = 490,
1201 S_reservation_params = 492,
1202 S_not_empty_reservation_params = 493,
1203 S_reservation_param = 494,
1204 S_next_server = 495,
1206 S_server_hostname = 497,
1208 S_boot_file_name = 499,
1212 S_ip_addresses = 503,
1218 S_client_id_value = 509,
1220 S_circuit_id_value = 511,
1222 S_flex_id_value = 513,
1226 S_reservation_client_classes = 517,
1231 S_client_classes = 522,
1233 S_client_classes_list = 524,
1234 S_client_class_entry = 525,
1236 S_client_class_params = 527,
1237 S_not_empty_client_class_params = 528,
1238 S_client_class_param = 529,
1239 S_client_class_name = 530,
1240 S_client_class_test = 531,
1242 S_only_if_required = 533,
1243 S_dhcp4o6_port = 534,
1244 S_control_socket = 535,
1246 S_control_socket_params = 537,
1247 S_control_socket_param = 538,
1248 S_control_socket_type = 539,
1250 S_control_socket_name = 541,
1252 S_dhcp_queue_control = 543,
1254 S_queue_control_params = 545,
1255 S_queue_control_param = 546,
1256 S_enable_queue = 547,
1260 S_arbitrary_map_entry = 551,
1264 S_sub_dhcp_ddns = 555,
1266 S_dhcp_ddns_params = 557,
1267 S_dhcp_ddns_param = 558,
1268 S_enable_updates = 559,
1271 S_server_port = 562,
1274 S_sender_port = 565,
1275 S_max_queue_size = 566,
1276 S_ncr_protocol = 567,
1278 S_ncr_protocol_value = 569,
1281 S_dep_qualifying_suffix = 572,
1283 S_dep_override_no_update = 574,
1284 S_dep_override_client_update = 575,
1285 S_dep_replace_client_name = 576,
1287 S_dep_generated_prefix = 578,
1289 S_dep_hostname_char_set = 580,
1291 S_dep_hostname_char_replacement = 582,
1293 S_config_control = 584,
1295 S_sub_config_control = 586,
1297 S_config_control_params = 588,
1298 S_config_control_param = 589,
1299 S_config_databases = 590,
1301 S_config_fetch_wait_time = 592,
1304 S_loggers_entries = 595,
1305 S_logger_entry = 596,
1307 S_logger_params = 598,
1308 S_logger_param = 599,
1312 S_output_options_list = 603,
1314 S_output_options_list_content = 605,
1315 S_output_entry = 606,
1317 S_output_params_list = 608,
1318 S_output_params = 609,
1326 S_compatibility = 617,
1328 S_compatibility_params = 619,
1329 S_compatibility_param = 620,
1330 S_lenient_option_parsing = 621
1346 template <
typename Base>
1358#if 201103L <= YY_CPLUSPLUS
1361 : Base (std::move (that))
1365 switch (this->kind ())
1376 value.move<
ElementPtr > (std::move (that.value));
1380 value.move<
bool > (std::move (that.value));
1384 value.move<
double > (std::move (that.value));
1388 value.move< int64_t > (std::move (that.value));
1392 value.move< std::string > (std::move (that.value));
1403 basic_symbol (
const basic_symbol& that);
1406#if 201103L <= YY_CPLUSPLUS
1407 basic_symbol (
typename Base::kind_type t,
location_type&& l)
1418#if 201103L <= YY_CPLUSPLUS
1421 , value (std::move (v))
1432#if 201103L <= YY_CPLUSPLUS
1435 , value (std::move (v))
1446#if 201103L <= YY_CPLUSPLUS
1449 , value (std::move (v))
1460#if 201103L <= YY_CPLUSPLUS
1463 , value (std::move (v))
1474#if 201103L <= YY_CPLUSPLUS
1477 , value (std::move (v))
1519 value.template destroy< ElementPtr > ();
1523 value.template destroy< bool > ();
1527 value.template destroy< double > ();
1531 value.template destroy< int64_t > ();
1535 value.template destroy< std::string > ();
1567#if YY_CPLUSPLUS < 201103L
1579#if 201103L <= YY_CPLUSPLUS
1624#if 201103L <= YY_CPLUSPLUS
1626 : super_type(
token_type (tok), std::move (l))
1635#if 201103L <= YY_CPLUSPLUS
1637 : super_type(
token_type (tok), std::move (v), std::move (l))
1645#if 201103L <= YY_CPLUSPLUS
1647 : super_type(
token_type (tok), std::move (v), std::move (l))
1655#if 201103L <= YY_CPLUSPLUS
1657 : super_type(
token_type (tok), std::move (v), std::move (l))
1665#if 201103L <= YY_CPLUSPLUS
1667 : super_type(
token_type (tok), std::move (v), std::move (l))
1681#if 201103L <= YY_CPLUSPLUS
1694 virtual int parse ();
1723#if 201103L <= YY_CPLUSPLUS
1738#if 201103L <= YY_CPLUSPLUS
1753#if 201103L <= YY_CPLUSPLUS
1768#if 201103L <= YY_CPLUSPLUS
1783#if 201103L <= YY_CPLUSPLUS
1798#if 201103L <= YY_CPLUSPLUS
1813#if 201103L <= YY_CPLUSPLUS
1828#if 201103L <= YY_CPLUSPLUS
1843#if 201103L <= YY_CPLUSPLUS
1858#if 201103L <= YY_CPLUSPLUS
1873#if 201103L <= YY_CPLUSPLUS
1888#if 201103L <= YY_CPLUSPLUS
1903#if 201103L <= YY_CPLUSPLUS
1918#if 201103L <= YY_CPLUSPLUS
1933#if 201103L <= YY_CPLUSPLUS
1948#if 201103L <= YY_CPLUSPLUS
1963#if 201103L <= YY_CPLUSPLUS
1978#if 201103L <= YY_CPLUSPLUS
1993#if 201103L <= YY_CPLUSPLUS
2008#if 201103L <= YY_CPLUSPLUS
2023#if 201103L <= YY_CPLUSPLUS
2038#if 201103L <= YY_CPLUSPLUS
2053#if 201103L <= YY_CPLUSPLUS
2068#if 201103L <= YY_CPLUSPLUS
2083#if 201103L <= YY_CPLUSPLUS
2098#if 201103L <= YY_CPLUSPLUS
2113#if 201103L <= YY_CPLUSPLUS
2128#if 201103L <= YY_CPLUSPLUS
2143#if 201103L <= YY_CPLUSPLUS
2158#if 201103L <= YY_CPLUSPLUS
2173#if 201103L <= YY_CPLUSPLUS
2188#if 201103L <= YY_CPLUSPLUS
2203#if 201103L <= YY_CPLUSPLUS
2218#if 201103L <= YY_CPLUSPLUS
2233#if 201103L <= YY_CPLUSPLUS
2248#if 201103L <= YY_CPLUSPLUS
2263#if 201103L <= YY_CPLUSPLUS
2278#if 201103L <= YY_CPLUSPLUS
2293#if 201103L <= YY_CPLUSPLUS
2308#if 201103L <= YY_CPLUSPLUS
2323#if 201103L <= YY_CPLUSPLUS
2338#if 201103L <= YY_CPLUSPLUS
2353#if 201103L <= YY_CPLUSPLUS
2368#if 201103L <= YY_CPLUSPLUS
2383#if 201103L <= YY_CPLUSPLUS
2398#if 201103L <= YY_CPLUSPLUS
2413#if 201103L <= YY_CPLUSPLUS
2428#if 201103L <= YY_CPLUSPLUS
2443#if 201103L <= YY_CPLUSPLUS
2458#if 201103L <= YY_CPLUSPLUS
2473#if 201103L <= YY_CPLUSPLUS
2488#if 201103L <= YY_CPLUSPLUS
2503#if 201103L <= YY_CPLUSPLUS
2518#if 201103L <= YY_CPLUSPLUS
2533#if 201103L <= YY_CPLUSPLUS
2548#if 201103L <= YY_CPLUSPLUS
2563#if 201103L <= YY_CPLUSPLUS
2578#if 201103L <= YY_CPLUSPLUS
2593#if 201103L <= YY_CPLUSPLUS
2608#if 201103L <= YY_CPLUSPLUS
2623#if 201103L <= YY_CPLUSPLUS
2638#if 201103L <= YY_CPLUSPLUS
2653#if 201103L <= YY_CPLUSPLUS
2668#if 201103L <= YY_CPLUSPLUS
2683#if 201103L <= YY_CPLUSPLUS
2698#if 201103L <= YY_CPLUSPLUS
2713#if 201103L <= YY_CPLUSPLUS
2728#if 201103L <= YY_CPLUSPLUS
2743#if 201103L <= YY_CPLUSPLUS
2758#if 201103L <= YY_CPLUSPLUS
2773#if 201103L <= YY_CPLUSPLUS
2788#if 201103L <= YY_CPLUSPLUS
2803#if 201103L <= YY_CPLUSPLUS
2818#if 201103L <= YY_CPLUSPLUS
2833#if 201103L <= YY_CPLUSPLUS
2848#if 201103L <= YY_CPLUSPLUS
2863#if 201103L <= YY_CPLUSPLUS
2878#if 201103L <= YY_CPLUSPLUS
2893#if 201103L <= YY_CPLUSPLUS
2908#if 201103L <= YY_CPLUSPLUS
2923#if 201103L <= YY_CPLUSPLUS
2938#if 201103L <= YY_CPLUSPLUS
2953#if 201103L <= YY_CPLUSPLUS
2968#if 201103L <= YY_CPLUSPLUS
2983#if 201103L <= YY_CPLUSPLUS
2998#if 201103L <= YY_CPLUSPLUS
3013#if 201103L <= YY_CPLUSPLUS
3028#if 201103L <= YY_CPLUSPLUS
3043#if 201103L <= YY_CPLUSPLUS
3058#if 201103L <= YY_CPLUSPLUS
3073#if 201103L <= YY_CPLUSPLUS
3088#if 201103L <= YY_CPLUSPLUS
3103#if 201103L <= YY_CPLUSPLUS
3118#if 201103L <= YY_CPLUSPLUS
3133#if 201103L <= YY_CPLUSPLUS
3148#if 201103L <= YY_CPLUSPLUS
3163#if 201103L <= YY_CPLUSPLUS
3178#if 201103L <= YY_CPLUSPLUS
3193#if 201103L <= YY_CPLUSPLUS
3208#if 201103L <= YY_CPLUSPLUS
3223#if 201103L <= YY_CPLUSPLUS
3238#if 201103L <= YY_CPLUSPLUS
3253#if 201103L <= YY_CPLUSPLUS
3268#if 201103L <= YY_CPLUSPLUS
3283#if 201103L <= YY_CPLUSPLUS
3298#if 201103L <= YY_CPLUSPLUS
3313#if 201103L <= YY_CPLUSPLUS
3328#if 201103L <= YY_CPLUSPLUS
3343#if 201103L <= YY_CPLUSPLUS
3358#if 201103L <= YY_CPLUSPLUS
3373#if 201103L <= YY_CPLUSPLUS
3388#if 201103L <= YY_CPLUSPLUS
3403#if 201103L <= YY_CPLUSPLUS
3418#if 201103L <= YY_CPLUSPLUS
3433#if 201103L <= YY_CPLUSPLUS
3448#if 201103L <= YY_CPLUSPLUS
3463#if 201103L <= YY_CPLUSPLUS
3478#if 201103L <= YY_CPLUSPLUS
3493#if 201103L <= YY_CPLUSPLUS
3508#if 201103L <= YY_CPLUSPLUS
3523#if 201103L <= YY_CPLUSPLUS
3538#if 201103L <= YY_CPLUSPLUS
3553#if 201103L <= YY_CPLUSPLUS
3568#if 201103L <= YY_CPLUSPLUS
3583#if 201103L <= YY_CPLUSPLUS
3598#if 201103L <= YY_CPLUSPLUS
3613#if 201103L <= YY_CPLUSPLUS
3628#if 201103L <= YY_CPLUSPLUS
3643#if 201103L <= YY_CPLUSPLUS
3658#if 201103L <= YY_CPLUSPLUS
3673#if 201103L <= YY_CPLUSPLUS
3688#if 201103L <= YY_CPLUSPLUS
3703#if 201103L <= YY_CPLUSPLUS
3718#if 201103L <= YY_CPLUSPLUS
3733#if 201103L <= YY_CPLUSPLUS
3748#if 201103L <= YY_CPLUSPLUS
3763#if 201103L <= YY_CPLUSPLUS
3778#if 201103L <= YY_CPLUSPLUS
3793#if 201103L <= YY_CPLUSPLUS
3808#if 201103L <= YY_CPLUSPLUS
3823#if 201103L <= YY_CPLUSPLUS
3838#if 201103L <= YY_CPLUSPLUS
3853#if 201103L <= YY_CPLUSPLUS
3868#if 201103L <= YY_CPLUSPLUS
3883#if 201103L <= YY_CPLUSPLUS
3898#if 201103L <= YY_CPLUSPLUS
3913#if 201103L <= YY_CPLUSPLUS
3928#if 201103L <= YY_CPLUSPLUS
3943#if 201103L <= YY_CPLUSPLUS
3958#if 201103L <= YY_CPLUSPLUS
3973#if 201103L <= YY_CPLUSPLUS
3988#if 201103L <= YY_CPLUSPLUS
4003#if 201103L <= YY_CPLUSPLUS
4018#if 201103L <= YY_CPLUSPLUS
4033#if 201103L <= YY_CPLUSPLUS
4048#if 201103L <= YY_CPLUSPLUS
4063#if 201103L <= YY_CPLUSPLUS
4078#if 201103L <= YY_CPLUSPLUS
4093#if 201103L <= YY_CPLUSPLUS
4108#if 201103L <= YY_CPLUSPLUS
4123#if 201103L <= YY_CPLUSPLUS
4138#if 201103L <= YY_CPLUSPLUS
4153#if 201103L <= YY_CPLUSPLUS
4168#if 201103L <= YY_CPLUSPLUS
4183#if 201103L <= YY_CPLUSPLUS
4198#if 201103L <= YY_CPLUSPLUS
4213#if 201103L <= YY_CPLUSPLUS
4228#if 201103L <= YY_CPLUSPLUS
4243#if 201103L <= YY_CPLUSPLUS
4258#if 201103L <= YY_CPLUSPLUS
4273#if 201103L <= YY_CPLUSPLUS
4288#if 201103L <= YY_CPLUSPLUS
4303#if 201103L <= YY_CPLUSPLUS
4318#if 201103L <= YY_CPLUSPLUS
4333#if 201103L <= YY_CPLUSPLUS
4348#if 201103L <= YY_CPLUSPLUS
4363#if 201103L <= YY_CPLUSPLUS
4378#if 201103L <= YY_CPLUSPLUS
4393#if 201103L <= YY_CPLUSPLUS
4408#if 201103L <= YY_CPLUSPLUS
4423#if 201103L <= YY_CPLUSPLUS
4438#if 201103L <= YY_CPLUSPLUS
4453#if 201103L <= YY_CPLUSPLUS
4468#if 201103L <= YY_CPLUSPLUS
4483#if 201103L <= YY_CPLUSPLUS
4498#if 201103L <= YY_CPLUSPLUS
4513#if 201103L <= YY_CPLUSPLUS
4528#if 201103L <= YY_CPLUSPLUS
4543#if 201103L <= YY_CPLUSPLUS
4558#if 201103L <= YY_CPLUSPLUS
4573#if 201103L <= YY_CPLUSPLUS
4588#if 201103L <= YY_CPLUSPLUS
4603#if 201103L <= YY_CPLUSPLUS
4618#if 201103L <= YY_CPLUSPLUS
4633#if 201103L <= YY_CPLUSPLUS
4648#if 201103L <= YY_CPLUSPLUS
4663#if 201103L <= YY_CPLUSPLUS
4678#if 201103L <= YY_CPLUSPLUS
4693#if 201103L <= YY_CPLUSPLUS
4708#if 201103L <= YY_CPLUSPLUS
4723#if 201103L <= YY_CPLUSPLUS
4738#if 201103L <= YY_CPLUSPLUS
4753#if 201103L <= YY_CPLUSPLUS
4768#if 201103L <= YY_CPLUSPLUS
4804#if YY_CPLUSPLUS < 201103L
4813 typedef short state_type;
4816 int yy_syntax_error_arguments_ (
const context& yyctx,
4821 virtual std::string yysyntax_error_ (
const context& yyctx)
const;
4825 static state_type yy_lr_goto_state_ (state_type yystate,
int yysym);
4829 static bool yy_pact_value_is_default_ (
int yyvalue);
4833 static bool yy_table_value_is_error_ (
int yyvalue);
4835 static const short yypact_ninf_;
4836 static const signed char yytable_ninf_;
4844 static std::string yytnamerr_ (
const char *yystr);
4847 static const char*
const yytname_[];
4853 static const short yypact_[];
4858 static const short yydefact_[];
4861 static const short yypgoto_[];
4864 static const short yydefgoto_[];
4869 static const short yytable_[];
4871 static const short yycheck_[];
4875 static const short yystos_[];
4878 static const short yyr1_[];
4881 static const signed char yyr2_[];
4886 static const short yyrline_[];
4888 virtual void yy_reduce_print_ (
int r)
const;
4890 virtual void yy_stack_print_ ()
const;
4895 std::ostream* yycdebug_;
4900 template <
typename Base>
4901 void yy_print_ (std::ostream& yyo,
const basic_symbol<Base>& yysym)
const;
4908 template <
typename Base>
4909 void yy_destroy_ (
const char* yymsg, basic_symbol<Base>& yysym)
const;
4919 typedef state_type kind_type;
4931 void move (by_state& that);
4939 enum { empty_state = 0 };
4947 struct stack_symbol_type : basic_symbol<by_state>
4950 typedef basic_symbol<by_state> super_type;
4952 stack_symbol_type ();
4954 stack_symbol_type (
YY_RVREF (stack_symbol_type) that);
4956 stack_symbol_type (state_type s,
YY_MOVE_REF (symbol_type) sym);
4957#if YY_CPLUSPLUS < 201103L
4960 stack_symbol_type& operator= (stack_symbol_type& that);
4964 stack_symbol_type& operator= (
const stack_symbol_type& that);
4969 template <
typename T,
typename S = std::vector<T> >
4974 typedef typename S::iterator iterator;
4975 typedef typename S::const_iterator const_iterator;
4976 typedef typename S::size_type size_type;
4977 typedef typename std::ptrdiff_t index_type;
4979 stack (size_type n = 200)
4983#if 201103L <= YY_CPLUSPLUS
4985 stack (
const stack&) =
delete;
4987 stack& operator= (
const stack&) =
delete;
4994 operator[] (index_type i)
const
4996 return seq_[size_type (size () - 1 - i)];
5003 operator[] (index_type i)
5005 return seq_[size_type (size () - 1 - i)];
5014 seq_.push_back (T ());
5015 operator[] (0).move (t);
5037 return index_type (seq_.size ());
5044 return seq_.begin ();
5058 slice (
const stack& stack, index_type range)
5064 operator[] (index_type i)
const
5066 return stack_[range_ - i];
5070 const stack& stack_;
5075#if YY_CPLUSPLUS < 201103L
5077 stack (
const stack&);
5079 stack& operator= (
const stack&);
5087 typedef stack<stack_symbol_type> stack_type;
5090 stack_type yystack_;
5097 void yypush_ (
const char* m,
YY_MOVE_REF (stack_symbol_type) sym);
5105 void yypush_ (
const char* m, state_type s,
YY_MOVE_REF (symbol_type) sym);
5108 void yypop_ (
int n = 1);
5126 Dhcp4Parser::yytranslate_ (
int t)
5134 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5135 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5136 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5137 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5138 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5139 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5140 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5141 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5142 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5143 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5144 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5145 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5146 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5147 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5148 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5149 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5150 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5151 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5152 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5153 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5154 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5155 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5156 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5157 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5158 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5159 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
5160 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
5161 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
5162 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
5163 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
5164 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
5165 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
5166 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
5167 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
5168 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
5169 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
5170 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
5171 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
5172 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
5173 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
5174 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
5175 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
5176 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
5177 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
5178 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
5179 195, 196, 197, 198, 199, 200, 201, 202, 203
5182 const int code_max = 458;
5186 else if (t <= code_max)
5193 template <
typename Base>
5199 switch (this->kind ())
5237 template <
typename Base>
5241 return this->kind ();
5244 template <
typename Base>
5251 template <
typename Base>
5255 super_type::move (s);
5256 switch (this->kind ())
5299#if 201103L <= YY_CPLUSPLUS
5302 : kind_ (that.kind_)
5310 : kind_ (that.kind_)
5315 : kind_ (yytranslate_ (t))
5344 return this->kind ();
5347#line 14 "dhcp4_parser.yy"
5349#line 5350 "dhcp4_parser.h"
symbol_kind_type token() const YY_NOEXCEPT
const symbol_type & lookahead() const YY_NOEXCEPT
const location_type & location() const YY_NOEXCEPT
A buffer to store and retrieve objects.
T & emplace(const T &t)
Instantiate a T in here from t.
T & build(const T &t)
Instantiate a T in here from t.
long double yyalign_me
Strongest alignment constraints.
void copy(const self_type &that)
Copy the content of that to this.
semantic_type(YY_RVREF(T) t)
Construct and fill.
void destroy()
Destroy the stored T.
semantic_type() YY_NOEXCEPT
Empty construction.
char yyraw[size]
A buffer large enough to store any of the semantic values.
T & emplace()
Instantiate an empty T in here.
void move(self_type &that)
Move the content of that to this.
const T & as() const YY_NOEXCEPT
Const accessor to a built T (for printer).
T & as() YY_NOEXCEPT
Accessor to a built T.
T & build()
Instantiate an empty T in here.
~semantic_type() YY_NOEXCEPT
Destruction, allowed only if empty.
void swap(self_type &that) YY_NOEXCEPT
Swap the content with that, of same type.
semantic_type self_type
Type of *this.
Present a slice of the top of a stack.
slice(const stack &stack, index_type range)
static symbol_type make_SAME_AS_INBOUND(const location_type &l)
static symbol_type make_SOCKET_NAME(const location_type &l)
static symbol_type make_KEYSPACE(const location_type &l)
static symbol_type make_PERSIST(const location_type &l)
static symbol_type make_FLUSH_RECLAIMED_TIMER_WAIT_TIME(const location_type &l)
static symbol_type make_SUBNET_4O6_INTERFACE_ID(const location_type &l)
static symbol_type make_SUB_INTERFACES4(const location_type &l)
static symbol_type make_END(const location_type &l)
static symbol_type make_STATISTIC_DEFAULT_SAMPLE_COUNT(const location_type &l)
static symbol_type make_IP_RESERVATIONS_UNIQUE(const location_type &l)
static symbol_type make_CONTROL_SOCKET(const location_type &l)
static symbol_type make_THREAD_POOL_SIZE(const location_type &l)
static symbol_type make_GENERATED_PREFIX(const location_type &l)
static symbol_type make_SUB_OPTION_DATA(const location_type &l)
static symbol_type make_NAME(const location_type &l)
static symbol_type make_MATCH_CLIENT_ID(const location_type &l)
static symbol_type make_SERIAL_CONSISTENCY(const location_type &l)
static symbol_type make_MAX_RECLAIM_LEASES(const location_type &l)
static symbol_type make_STORE_EXTENDED_INFO(const location_type &l)
static symbol_type make_OVERRIDE_CLIENT_UPDATE(const location_type &l)
static symbol_type make_LFC_INTERVAL(const location_type &l)
static symbol_type make_HOLD_RECLAIMED_TIME(const location_type &l)
static symbol_type make_MEMFILE(const location_type &l)
static symbol_type make_CONNECT_TIMEOUT(const location_type &l)
static symbol_type make_OPTION_DEF(const location_type &l)
static symbol_type make_NULL_TYPE(const location_type &l)
static symbol_type make_OUTPUT_OPTIONS(const location_type &l)
static symbol_type make_ALL(const location_type &l)
static symbol_type make_SENDER_PORT(const location_type &l)
static symbol_type make_CACHE_MAX_AGE(const location_type &l)
static symbol_type make_NCR_PROTOCOL(const location_type &l)
static symbol_type make_CALCULATE_TEE_TIMES(const location_type &l)
static symbol_type make_RE_DETECT(const location_type &l)
static symbol_type make_RELAY(const location_type &l)
static symbol_type make_MAX_VALID_LIFETIME(const location_type &l)
static symbol_type make_SERVER_HOSTNAME(const location_type &l)
static symbol_type make_CQL(const location_type &l)
virtual void error(const location_type &loc, const std::string &msg)
Report a syntax error.
static symbol_type make_TEST(const location_type &l)
static symbol_type make_RECONNECT_WAIT_TIME(const location_type &l)
static symbol_type make_DHCP_MULTI_THREADING(const location_type &l)
static symbol_type make_ARRAY(const location_type &l)
static symbol_type make_SOCKET_TYPE(const location_type &l)
static symbol_type make_SPACE(const location_type &l)
static symbol_type make_HW_ADDRESS(const location_type &l)
static symbol_type make_USE_ROUTING(const location_type &l)
static symbol_type make_MAX_RECLAIM_TIME(const location_type &l)
static symbol_type make_HOSTNAME_CHAR_REPLACEMENT(const location_type &l)
static symbol_type make_VALID_LIFETIME(const location_type &l)
static symbol_type make_MAXVER(const location_type &l)
static symbol_type make_BOOLEAN(const bool &v, const location_type &l)
virtual int parse()
Parse.
static symbol_type make_INTERFACE(const location_type &l)
static symbol_type make_REBIND_TIMER(const location_type &l)
static symbol_type make_BOOT_FILE_NAME(const location_type &l)
static symbol_type make_SEVERITY(const location_type &l)
static symbol_type make_RESERVATIONS_IN_SUBNET(const location_type &l)
static symbol_type make_IP_ADDRESSES(const location_type &l)
static symbol_type make_DDNS_UPDATE_ON_RENEW(const location_type &l)
static symbol_type make_CONTACT_POINTS(const location_type &l)
static symbol_type make_INTERFACES_CONFIG(const location_type &l)
static symbol_type make_UDP(const location_type &l)
static symbol_type make_TCP(const location_type &l)
static symbol_type make_SUBNET4(const location_type &l)
static symbol_type make_COLON(const location_type &l)
static symbol_type make_SERVE_RETRY_CONTINUE(const location_type &l)
static symbol_type make_HOSTS_DATABASES(const location_type &l)
token_kind_type token_type
Backward compatibility alias (Bison 3.6).
static symbol_type make_SUB_DHCP_DDNS(const location_type &l)
static symbol_type make_DDNS_SEND_UPDATES(const location_type &l)
static symbol_type make_CONSISTENCY(const location_type &l)
static symbol_type make_OVERRIDE_NO_UPDATE(const location_type &l)
static symbol_type make_LENIENT_OPTION_PARSING(const location_type &l)
static symbol_type make_MIN_VALID_LIFETIME(const location_type &l)
static symbol_type make_DDNS_QUALIFYING_SUFFIX(const location_type &l)
static symbol_type make_DECLINE_PROBATION_PERIOD(const location_type &l)
static symbol_type make_IP_ADDRESS(const location_type &l)
static symbol_type make_SUB_HOOKS_LIBRARY(const location_type &l)
static symbol_type make_ENABLE_QUEUE(const location_type &l)
static symbol_type make_SUBNET(const location_type &l)
static symbol_type make_FLOAT(const double &v, const location_type &l)
static symbol_type make_HOSTNAME(const location_type &l)
static symbol_type make_DDNS_REPLACE_CLIENT_NAME(const location_type &l)
static symbol_type make_SUB_RESERVATION(const location_type &l)
static symbol_type make_SUB_OPTION_DEFS(const location_type &l)
static symbol_type make_OPTION_DATA(const location_type &l)
static symbol_type make_POSTGRESQL(const location_type &l)
static symbol_type make_LOGGERS(const location_type &l)
std::ostream & debug_stream() const YY_ATTRIBUTE_PURE
The current debugging stream.
static symbol_type make_MYSQL(const location_type &l)
static symbol_type make_UNWARNED_RECLAIM_CYCLES(const location_type &l)
void set_debug_stream(std::ostream &)
Set the current debugging stream.
static symbol_type make_LEASE_CHECKS(const location_type &l)
static symbol_type make_USER(const location_type &l)
static symbol_type make_GLOBAL(const location_type &l)
static symbol_type make_SERVER_IP(const location_type &l)
static symbol_type make_OUT_OF_POOL(const location_type &l)
static symbol_type make_HOSTS_DATABASE(const location_type &l)
static symbol_type make_QUEUE_TYPE(const location_type &l)
static symbol_type make_T1_PERCENT(const location_type &l)
static symbol_type make_RECLAIM_TIMER_WAIT_TIME(const location_type &l)
static symbol_type make_STOP_RETRY_EXIT(const location_type &l)
static symbol_type make_DDNS_OVERRIDE_NO_UPDATE(const location_type &l)
static symbol_type make_ALWAYS_SEND(const location_type &l)
static symbol_type make_PARSER4_UNDEF(const location_type &l)
static symbol_type make_ECHO_CLIENT_ID(const location_type &l)
static symbol_type make_POOL(const location_type &l)
static symbol_type make_DATA(const location_type &l)
location location_type
Symbol locations.
static symbol_type make_ENABLE_MULTI_THREADING(const location_type &l)
static symbol_type make_CSV_FORMAT(const location_type &l)
static symbol_type make_SERVER_PORT(const location_type &l)
static symbol_type make_SUB_SUBNET4(const location_type &l)
static symbol_type make_WHEN_NOT_PRESENT(const location_type &l)
static symbol_type make_LIBRARY(const location_type &l)
static symbol_type make_TCP_KEEPALIVE(const location_type &l)
static symbol_type make_ON_FAIL(const location_type &l)
static symbol_type make_JSON(const location_type &l)
static symbol_type make_LCURLY_BRACKET(const location_type &l)
static symbol_type make_RECORD_TYPES(const location_type &l)
static symbol_type make_INTEGER(const int64_t &v, const location_type &l)
token::yytokentype token_kind_type
Token kind, as returned by yylex.
static symbol_type make_DUID(const location_type &l)
static symbol_type make_PARAMETERS(const location_type &l)
static symbol_type make_SUBNET_4O6_INTERFACE(const location_type &l)
static symbol_type make_DHCP4(const location_type &l)
static symbol_type make_CAPACITY(const location_type &l)
static symbol_type make_STRING(const std::string &v, const location_type &l)
static symbol_type make_SUB_OPTION_DEF(const location_type &l)
static symbol_type make_PARSER4_error(const location_type &l)
static symbol_type make_TYPE(const location_type &l)
static symbol_type make_ONLY_IF_REQUIRED(const location_type &l)
static symbol_type make_PASSWORD(const location_type &l)
static symbol_type make_CONFIG_DATABASES(const location_type &l)
static symbol_type make_AUTHORITATIVE(const location_type &l)
static symbol_type make_HOST_RESERVATION_IDENTIFIERS(const location_type &l)
static symbol_type make_RESERVATION_MODE(const location_type &l)
static symbol_type make_MAX_ROW_ERRORS(const location_type &l)
static symbol_type make_INTERFACES(const location_type &l)
static symbol_type make_T2_PERCENT(const location_type &l)
static symbol_type make_READONLY(const location_type &l)
static symbol_type make_DDNS_USE_CONFLICT_RESOLUTION(const location_type &l)
static symbol_type make_LSQUARE_BRACKET(const location_type &l)
static symbol_type make_ENABLE_UPDATES(const location_type &l)
static symbol_type make_SERVER_TAG(const location_type &l)
static symbol_type make_DEBUGLEVEL(const location_type &l)
symbol_kind::symbol_kind_type symbol_kind_type
(Internal) symbol kind.
static symbol_type make_DHCP_QUEUE_CONTROL(const location_type &l)
static symbol_type make_TCP_NODELAY(const location_type &l)
static symbol_type make_MAXSIZE(const location_type &l)
static symbol_type make_PORT(const location_type &l)
static symbol_type make_FLEX_ID(const location_type &l)
static symbol_type make_CLIENT_CLASS(const location_type &l)
static symbol_type make_NEXT_SERVER(const location_type &l)
static symbol_type make_SANITY_CHECKS(const location_type &l)
static symbol_type make_EXPIRED_LEASES_PROCESSING(const location_type &l)
static symbol_type make_RAW(const location_type &l)
static symbol_type make_OUTBOUND_INTERFACE(const location_type &l)
static const symbol_kind_type YYNTOKENS
The number of tokens.
static symbol_type make_REPLACE_CLIENT_NAME(const location_type &l)
static symbol_type make_RESERVATIONS_OUT_OF_POOL(const location_type &l)
static symbol_type make_ID(const location_type &l)
static symbol_type make_PATTERN(const location_type &l)
static symbol_type make_SUB_POOL4(const location_type &l)
static symbol_type make_NEVER(const location_type &l)
static symbol_type make_TOPLEVEL_JSON(const location_type &l)
static symbol_type make_RESERVATIONS_GLOBAL(const location_type &l)
static symbol_type make_RCURLY_BRACKET(const location_type &l)
static symbol_type make_COMMENT(const location_type &l)
static symbol_type make_RESERVATIONS(const location_type &l)
static symbol_type make_HOOKS_LIBRARIES(const location_type &l)
static symbol_type make_HOSTNAME_CHAR_SET(const location_type &l)
static symbol_type make_REQUEST_TIMEOUT(const location_type &l)
static symbol_type make_MAX_QUEUE_SIZE(const location_type &l)
debug_level_type debug_level() const YY_ATTRIBUTE_PURE
The current debugging level.
static symbol_type make_SERVE_RETRY_EXIT(const location_type &l)
static symbol_type make_COMPATIBILITY(const location_type &l)
static symbol_type make_POOLS(const location_type &l)
static symbol_type make_DHCP_DDNS(const location_type &l)
static symbol_type make_ALWAYS(const location_type &l)
static symbol_type make_CLIENT_ID(const location_type &l)
static symbol_type make_SUB_CONFIG_CONTROL(const location_type &l)
static symbol_type make_TOPLEVEL_DHCP4(const location_type &l)
static symbol_type make_MAX_RECONNECT_TRIES(const location_type &l)
static symbol_type make_FLUSH(const location_type &l)
static symbol_type make_HOST(const location_type &l)
static symbol_type make_WHEN_PRESENT(const location_type &l)
static symbol_type make_SENDER_IP(const location_type &l)
static symbol_type make_DHCP_SOCKET_TYPE(const location_type &l)
static symbol_type make_CONFIG_CONTROL(const location_type &l)
static symbol_type make_CONFIG_FETCH_WAIT_TIME(const location_type &l)
static symbol_type make_DHCP4O6_PORT(const location_type &l)
static symbol_type make_QUALIFYING_SUFFIX(const location_type &l)
static symbol_type make_CODE(const location_type &l)
static symbol_type make_SHARED_NETWORKS(const location_type &l)
static symbol_type make_DDNS_GENERATED_PREFIX(const location_type &l)
static symbol_type make_USER_CONTEXT(const location_type &l)
static symbol_type make_NCR_FORMAT(const location_type &l)
static symbol_type make_DISABLED(const location_type &l)
static std::string symbol_name(symbol_kind_type yysymbol)
The user-facing name of the symbol whose (internal) number is YYSYMBOL.
Dhcp4Parser(isc::dhcp::Parser4Context &ctx_yyarg)
Build a parser object.
static symbol_type make_REQUIRE_CLIENT_CLASSES(const location_type &l)
static symbol_type make_COMMA(const location_type &l)
static symbol_type make_SUB_DHCP4(const location_type &l)
static symbol_type make_SUBNET_4O6_SUBNET(const location_type &l)
static symbol_type make_OUTPUT(const location_type &l)
static symbol_type make_RSQUARE_BRACKET(const location_type &l)
static symbol_type make_RENEW_TIMER(const location_type &l)
static symbol_type make_DDNS_OVERRIDE_CLIENT_UPDATE(const location_type &l)
static symbol_type make_CLIENT_CLASSES(const location_type &l)
static symbol_type make_ENCAPSULATE(const location_type &l)
static symbol_type make_STATISTIC_DEFAULT_SAMPLE_AGE(const location_type &l)
static symbol_type make_CIRCUIT_ID(const location_type &l)
static symbol_type make_CACHE_THRESHOLD(const location_type &l)
int debug_level_type
Type for debugging levels.
void set_debug_level(debug_level_type l)
Set the current debugging level.
static symbol_type make_PACKET_QUEUE_SIZE(const location_type &l)
static symbol_type make_LEASE_DATABASE(const location_type &l)
Evaluation context, an interface to the expression evaluation.
Forward declaration of the ParserContext class.
#define YY_CAST(Type, Val)
#define YY_MOVE_REF(Type)
#define YY_ATTRIBUTE_PURE
boost::shared_ptr< Element > ElementPtr
Defines the logger used by the top-level component of kea-lfc.
~basic_symbol()
Destroy the symbol.
location_type location
The location.
Base super_type
Alias to Base.
basic_symbol(typename Base::kind_type t, const std::string &v, const location_type &l)
bool empty() const YY_NOEXCEPT
Whether empty.
basic_symbol(typename Base::kind_type t, const ElementPtr &v, const location_type &l)
basic_symbol(typename Base::kind_type t, const location_type &l)
Constructors for typed symbols.
void move(basic_symbol &s)
Destructive move, s is emptied into this.
basic_symbol()
Default constructor.
basic_symbol(typename Base::kind_type t, const int64_t &v, const location_type &l)
semantic_type value
The semantic value.
symbol_kind_type type_get() const YY_NOEXCEPT
Backward compatibility (Bison 3.6).
basic_symbol(typename Base::kind_type t, const bool &v, const location_type &l)
basic_symbol(typename Base::kind_type t, const double &v, const location_type &l)
std::string name() const YY_NOEXCEPT
The user-facing name of this symbol.
void clear() YY_NOEXCEPT
Destroy contents, and record that is empty.
Type access provider for token (enum) based symbols.
by_kind()
Default constructor.
void move(by_kind &that)
Steal the symbol kind from that.
symbol_kind_type kind() const YY_NOEXCEPT
The (internal) type number (corresponding to type).
symbol_kind_type kind_
The symbol kind.
void clear() YY_NOEXCEPT
Record that this symbol is empty.
token_kind_type kind_type
The symbol kind as needed by the constructor.
symbol_kind_type type_get() const YY_NOEXCEPT
Backward compatibility (Bison 3.6).
@ S_ddns_replace_client_name_value
@ YYNTOKENS
Number of tokens.
@ S_outbound_interface_value
"External" symbols: returned by the scanner.
basic_symbol< by_kind > super_type
Superclass.
symbol_type()
Empty symbol.
Syntax errors thrown from user actions.
~syntax_error() YY_NOEXCEPT YY_NOTHROW
syntax_error(const syntax_error &s)
syntax_error(const location_type &l, const std::string &m)
@ TOKEN_SUBNET_4O6_INTERFACE_ID
@ TOKEN_SUBNET_4O6_SUBNET
@ TOKEN_HOSTNAME_CHAR_REPLACEMENT
@ TOKEN_MAX_RECONNECT_TRIES
@ TOKEN_DDNS_OVERRIDE_NO_UPDATE
@ TOKEN_IP_RESERVATIONS_UNIQUE
@ TOKEN_DDNS_REPLACE_CLIENT_NAME
@ TOKEN_CALCULATE_TEE_TIMES
@ TOKEN_MIN_VALID_LIFETIME
@ TOKEN_CONFIG_FETCH_WAIT_TIME
@ TOKEN_SERVE_RETRY_CONTINUE
@ TOKEN_DHCP_MULTI_THREADING
@ TOKEN_DHCP_QUEUE_CONTROL
@ TOKEN_RESERVATIONS_GLOBAL
@ TOKEN_OVERRIDE_NO_UPDATE
@ TOKEN_EXPIRED_LEASES_PROCESSING
@ TOKEN_ENABLE_MULTI_THREADING
@ TOKEN_RECONNECT_WAIT_TIME
@ TOKEN_UNWARNED_RECLAIM_CYCLES
@ TOKEN_DDNS_GENERATED_PREFIX
@ TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT
@ TOKEN_MAX_VALID_LIFETIME
@ TOKEN_DDNS_UPDATE_ON_RENEW
@ TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME
@ TOKEN_INTERFACES_CONFIG
@ TOKEN_DECLINE_PROBATION_PERIOD
@ TOKEN_PACKET_QUEUE_SIZE
@ TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE
@ TOKEN_RESERVATIONS_OUT_OF_POOL
@ TOKEN_MAX_RECLAIM_LEASES
@ TOKEN_RESERVATIONS_IN_SUBNET
@ TOKEN_OVERRIDE_CLIENT_UPDATE
@ TOKEN_SUB_CONFIG_CONTROL
@ TOKEN_DDNS_SEND_UPDATES
@ TOKEN_OUTBOUND_INTERFACE
@ TOKEN_DDNS_QUALIFYING_SUFFIX
@ TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE
@ TOKEN_SUB_HOOKS_LIBRARY
@ TOKEN_RECLAIM_TIMER_WAIT_TIME
@ TOKEN_SERIAL_CONSISTENCY
@ TOKEN_STORE_EXTENDED_INFO
@ TOKEN_HOLD_RECLAIMED_TIME
@ TOKEN_LENIENT_OPTION_PARSING
@ TOKEN_HOSTNAME_CHAR_SET
@ TOKEN_DDNS_USE_CONFLICT_RESOLUTION
@ TOKEN_REPLACE_CLIENT_NAME
@ TOKEN_REQUIRE_CLIENT_CLASSES
@ TOKEN_QUALIFYING_SUFFIX
@ TOKEN_SUBNET_4O6_INTERFACE
@ TOKEN_HOST_RESERVATION_IDENTIFIERS
token_kind_type yytokentype
Backward compatibility alias (Bison 3.6).