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_PARKED_PACKET_LIMIT = 354,
587 TOKEN_SHARED_NETWORKS = 355,
590 TOKEN_USER_CONTEXT = 358,
593 TOKEN_INTERFACE = 361,
595 TOKEN_RESERVATION_MODE = 363,
596 TOKEN_DISABLED = 364,
597 TOKEN_OUT_OF_POOL = 365,
600 TOKEN_RESERVATIONS_GLOBAL = 368,
601 TOKEN_RESERVATIONS_IN_SUBNET = 369,
602 TOKEN_RESERVATIONS_OUT_OF_POOL = 370,
603 TOKEN_HOST_RESERVATION_IDENTIFIERS = 371,
604 TOKEN_CLIENT_CLASSES = 372,
605 TOKEN_REQUIRE_CLIENT_CLASSES = 373,
607 TOKEN_ONLY_IF_REQUIRED = 375,
608 TOKEN_CLIENT_CLASS = 376,
609 TOKEN_RESERVATIONS = 377,
611 TOKEN_HW_ADDRESS = 379,
612 TOKEN_CIRCUIT_ID = 380,
613 TOKEN_CLIENT_ID = 381,
614 TOKEN_HOSTNAME = 382,
617 TOKEN_IP_ADDRESS = 385,
618 TOKEN_IP_ADDRESSES = 386,
619 TOKEN_HOOKS_LIBRARIES = 387,
621 TOKEN_PARAMETERS = 389,
622 TOKEN_EXPIRED_LEASES_PROCESSING = 390,
623 TOKEN_RECLAIM_TIMER_WAIT_TIME = 391,
624 TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 392,
625 TOKEN_HOLD_RECLAIMED_TIME = 393,
626 TOKEN_MAX_RECLAIM_LEASES = 394,
627 TOKEN_MAX_RECLAIM_TIME = 395,
628 TOKEN_UNWARNED_RECLAIM_CYCLES = 396,
629 TOKEN_DHCP4O6_PORT = 397,
630 TOKEN_DHCP_MULTI_THREADING = 398,
631 TOKEN_ENABLE_MULTI_THREADING = 399,
632 TOKEN_THREAD_POOL_SIZE = 400,
633 TOKEN_PACKET_QUEUE_SIZE = 401,
634 TOKEN_CONTROL_SOCKET = 402,
635 TOKEN_SOCKET_TYPE = 403,
636 TOKEN_SOCKET_NAME = 404,
637 TOKEN_DHCP_QUEUE_CONTROL = 405,
638 TOKEN_ENABLE_QUEUE = 406,
639 TOKEN_QUEUE_TYPE = 407,
640 TOKEN_CAPACITY = 408,
641 TOKEN_DHCP_DDNS = 409,
642 TOKEN_ENABLE_UPDATES = 410,
643 TOKEN_QUALIFYING_SUFFIX = 411,
644 TOKEN_SERVER_IP = 412,
645 TOKEN_SERVER_PORT = 413,
646 TOKEN_SENDER_IP = 414,
647 TOKEN_SENDER_PORT = 415,
648 TOKEN_MAX_QUEUE_SIZE = 416,
649 TOKEN_NCR_PROTOCOL = 417,
650 TOKEN_NCR_FORMAT = 418,
651 TOKEN_OVERRIDE_NO_UPDATE = 419,
652 TOKEN_OVERRIDE_CLIENT_UPDATE = 420,
653 TOKEN_REPLACE_CLIENT_NAME = 421,
654 TOKEN_GENERATED_PREFIX = 422,
657 TOKEN_WHEN_PRESENT = 425,
660 TOKEN_WHEN_NOT_PRESENT = 428,
661 TOKEN_HOSTNAME_CHAR_SET = 429,
662 TOKEN_HOSTNAME_CHAR_REPLACEMENT = 430,
663 TOKEN_IP_RESERVATIONS_UNIQUE = 431,
665 TOKEN_OUTPUT_OPTIONS = 433,
667 TOKEN_DEBUGLEVEL = 435,
668 TOKEN_SEVERITY = 436,
673 TOKEN_COMPATIBILITY = 441,
674 TOKEN_LENIENT_OPTION_PARSING = 442,
675 TOKEN_TOPLEVEL_JSON = 443,
676 TOKEN_TOPLEVEL_DHCP4 = 444,
677 TOKEN_SUB_DHCP4 = 445,
678 TOKEN_SUB_INTERFACES4 = 446,
679 TOKEN_SUB_SUBNET4 = 447,
680 TOKEN_SUB_POOL4 = 448,
681 TOKEN_SUB_RESERVATION = 449,
682 TOKEN_SUB_OPTION_DEFS = 450,
683 TOKEN_SUB_OPTION_DEF = 451,
684 TOKEN_SUB_OPTION_DATA = 452,
685 TOKEN_SUB_HOOKS_LIBRARY = 453,
686 TOKEN_SUB_DHCP_DDNS = 454,
687 TOKEN_SUB_CONFIG_CONTROL = 455,
715 S_LSQUARE_BRACKET = 5,
716 S_RSQUARE_BRACKET = 6,
717 S_LCURLY_BRACKET = 7,
718 S_RCURLY_BRACKET = 8,
721 S_CONFIG_CONTROL = 11,
722 S_CONFIG_DATABASES = 12,
723 S_CONFIG_FETCH_WAIT_TIME = 13,
724 S_INTERFACES_CONFIG = 14,
726 S_DHCP_SOCKET_TYPE = 16,
729 S_OUTBOUND_INTERFACE = 19,
730 S_SAME_AS_INBOUND = 20,
733 S_SANITY_CHECKS = 23,
735 S_ECHO_CLIENT_ID = 25,
736 S_MATCH_CLIENT_ID = 26,
737 S_AUTHORITATIVE = 27,
739 S_SERVER_HOSTNAME = 29,
740 S_BOOT_FILE_NAME = 30,
741 S_LEASE_DATABASE = 31,
742 S_HOSTS_DATABASE = 32,
743 S_HOSTS_DATABASES = 33,
756 S_CONNECT_TIMEOUT = 46,
757 S_CONTACT_POINTS = 47,
760 S_SERIAL_CONSISTENCY = 50,
761 S_MAX_RECONNECT_TRIES = 51,
762 S_RECONNECT_WAIT_TIME = 52,
764 S_STOP_RETRY_EXIT = 54,
765 S_SERVE_RETRY_EXIT = 55,
766 S_SERVE_RETRY_CONTINUE = 56,
767 S_REQUEST_TIMEOUT = 57,
768 S_TCP_KEEPALIVE = 58,
770 S_MAX_ROW_ERRORS = 60,
771 S_VALID_LIFETIME = 61,
772 S_MIN_VALID_LIFETIME = 62,
773 S_MAX_VALID_LIFETIME = 63,
776 S_CALCULATE_TEE_TIMES = 66,
779 S_CACHE_THRESHOLD = 69,
780 S_CACHE_MAX_AGE = 70,
781 S_DECLINE_PROBATION_PERIOD = 71,
783 S_STATISTIC_DEFAULT_SAMPLE_COUNT = 73,
784 S_STATISTIC_DEFAULT_SAMPLE_AGE = 74,
785 S_DDNS_SEND_UPDATES = 75,
786 S_DDNS_OVERRIDE_NO_UPDATE = 76,
787 S_DDNS_OVERRIDE_CLIENT_UPDATE = 77,
788 S_DDNS_REPLACE_CLIENT_NAME = 78,
789 S_DDNS_GENERATED_PREFIX = 79,
790 S_DDNS_QUALIFYING_SUFFIX = 80,
791 S_DDNS_UPDATE_ON_RENEW = 81,
792 S_DDNS_USE_CONFLICT_RESOLUTION = 82,
793 S_STORE_EXTENDED_INFO = 83,
795 S_SUBNET_4O6_INTERFACE = 85,
796 S_SUBNET_4O6_INTERFACE_ID = 86,
797 S_SUBNET_4O6_SUBNET = 87,
809 S_PARKED_PACKET_LIMIT = 99,
810 S_SHARED_NETWORKS = 100,
813 S_USER_CONTEXT = 103,
818 S_RESERVATION_MODE = 108,
823 S_RESERVATIONS_GLOBAL = 113,
824 S_RESERVATIONS_IN_SUBNET = 114,
825 S_RESERVATIONS_OUT_OF_POOL = 115,
826 S_HOST_RESERVATION_IDENTIFIERS = 116,
827 S_CLIENT_CLASSES = 117,
828 S_REQUIRE_CLIENT_CLASSES = 118,
830 S_ONLY_IF_REQUIRED = 120,
831 S_CLIENT_CLASS = 121,
832 S_RESERVATIONS = 122,
841 S_IP_ADDRESSES = 131,
842 S_HOOKS_LIBRARIES = 132,
845 S_EXPIRED_LEASES_PROCESSING = 135,
846 S_RECLAIM_TIMER_WAIT_TIME = 136,
847 S_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 137,
848 S_HOLD_RECLAIMED_TIME = 138,
849 S_MAX_RECLAIM_LEASES = 139,
850 S_MAX_RECLAIM_TIME = 140,
851 S_UNWARNED_RECLAIM_CYCLES = 141,
852 S_DHCP4O6_PORT = 142,
853 S_DHCP_MULTI_THREADING = 143,
854 S_ENABLE_MULTI_THREADING = 144,
855 S_THREAD_POOL_SIZE = 145,
856 S_PACKET_QUEUE_SIZE = 146,
857 S_CONTROL_SOCKET = 147,
860 S_DHCP_QUEUE_CONTROL = 150,
861 S_ENABLE_QUEUE = 151,
865 S_ENABLE_UPDATES = 155,
866 S_QUALIFYING_SUFFIX = 156,
871 S_MAX_QUEUE_SIZE = 161,
872 S_NCR_PROTOCOL = 162,
874 S_OVERRIDE_NO_UPDATE = 164,
875 S_OVERRIDE_CLIENT_UPDATE = 165,
876 S_REPLACE_CLIENT_NAME = 166,
877 S_GENERATED_PREFIX = 167,
880 S_WHEN_PRESENT = 170,
883 S_WHEN_NOT_PRESENT = 173,
884 S_HOSTNAME_CHAR_SET = 174,
885 S_HOSTNAME_CHAR_REPLACEMENT = 175,
886 S_IP_RESERVATIONS_UNIQUE = 176,
888 S_OUTPUT_OPTIONS = 178,
896 S_COMPATIBILITY = 186,
897 S_LENIENT_OPTION_PARSING = 187,
898 S_TOPLEVEL_JSON = 188,
899 S_TOPLEVEL_DHCP4 = 189,
901 S_SUB_INTERFACES4 = 191,
904 S_SUB_RESERVATION = 194,
905 S_SUB_OPTION_DEFS = 195,
906 S_SUB_OPTION_DEF = 196,
907 S_SUB_OPTION_DATA = 197,
908 S_SUB_HOOKS_LIBRARY = 198,
909 S_SUB_DHCP_DDNS = 199,
910 S_SUB_CONFIG_CONTROL = 200,
936 S_not_empty_map = 226,
937 S_list_generic = 227,
939 S_list_content = 229,
940 S_not_empty_list = 230,
941 S_list_strings = 231,
943 S_list_strings_content = 233,
944 S_not_empty_list_strings = 234,
945 S_unknown_map_entry = 235,
948 S_global_object = 238,
952 S_global_params = 242,
953 S_global_param = 243,
954 S_valid_lifetime = 244,
955 S_min_valid_lifetime = 245,
956 S_max_valid_lifetime = 246,
958 S_rebind_timer = 248,
959 S_calculate_tee_times = 249,
962 S_cache_threshold = 252,
963 S_cache_max_age = 253,
964 S_decline_probation_period = 254,
967 S_parked_packet_limit = 257,
968 S_echo_client_id = 258,
969 S_match_client_id = 259,
970 S_authoritative = 260,
971 S_ddns_send_updates = 261,
972 S_ddns_override_no_update = 262,
973 S_ddns_override_client_update = 263,
974 S_ddns_replace_client_name = 264,
976 S_ddns_replace_client_name_value = 266,
977 S_ddns_generated_prefix = 267,
979 S_ddns_qualifying_suffix = 269,
981 S_ddns_update_on_renew = 271,
982 S_ddns_use_conflict_resolution = 272,
983 S_hostname_char_set = 273,
985 S_hostname_char_replacement = 275,
987 S_store_extended_info = 277,
988 S_statistic_default_sample_count = 278,
989 S_statistic_default_sample_age = 279,
990 S_ip_reservations_unique = 280,
991 S_interfaces_config = 281,
993 S_interfaces_config_params = 283,
994 S_interfaces_config_param = 284,
995 S_sub_interfaces4 = 285,
997 S_interfaces_list = 287,
999 S_dhcp_socket_type = 289,
1001 S_socket_type = 291,
1002 S_outbound_interface = 292,
1004 S_outbound_interface_value = 294,
1006 S_lease_database = 296,
1008 S_sanity_checks = 298,
1010 S_sanity_checks_params = 300,
1011 S_sanity_checks_param = 301,
1012 S_lease_checks = 302,
1014 S_hosts_database = 304,
1016 S_hosts_databases = 306,
1018 S_database_list = 308,
1019 S_not_empty_database_list = 309,
1022 S_database_map_params = 312,
1023 S_database_map_param = 313,
1024 S_database_type = 314,
1037 S_lfc_interval = 327,
1039 S_connect_timeout = 329,
1040 S_request_timeout = 330,
1041 S_tcp_keepalive = 331,
1042 S_tcp_nodelay = 332,
1043 S_contact_points = 333,
1047 S_consistency = 337,
1049 S_serial_consistency = 339,
1051 S_max_reconnect_tries = 341,
1052 S_reconnect_wait_time = 342,
1055 S_on_fail_mode = 345,
1056 S_max_row_errors = 346,
1057 S_host_reservation_identifiers = 347,
1059 S_host_reservation_identifiers_list = 349,
1060 S_host_reservation_identifier = 350,
1062 S_hw_address_id = 352,
1066 S_dhcp_multi_threading = 356,
1068 S_multi_threading_params = 358,
1069 S_multi_threading_param = 359,
1070 S_enable_multi_threading = 360,
1071 S_thread_pool_size = 361,
1072 S_packet_queue_size = 362,
1073 S_hooks_libraries = 363,
1075 S_hooks_libraries_list = 365,
1076 S_not_empty_hooks_libraries_list = 366,
1077 S_hooks_library = 367,
1079 S_sub_hooks_library = 369,
1081 S_hooks_params = 371,
1082 S_hooks_param = 372,
1087 S_expired_leases_processing = 377,
1089 S_expired_leases_params = 379,
1090 S_expired_leases_param = 380,
1091 S_reclaim_timer_wait_time = 381,
1092 S_flush_reclaimed_timer_wait_time = 382,
1093 S_hold_reclaimed_time = 383,
1094 S_max_reclaim_leases = 384,
1095 S_max_reclaim_time = 385,
1096 S_unwarned_reclaim_cycles = 386,
1097 S_subnet4_list = 387,
1099 S_subnet4_list_content = 389,
1100 S_not_empty_subnet4_list = 390,
1103 S_sub_subnet4 = 393,
1105 S_subnet4_params = 395,
1106 S_subnet4_param = 396,
1109 S_subnet_4o6_interface = 399,
1111 S_subnet_4o6_interface_id = 401,
1113 S_subnet_4o6_subnet = 403,
1117 S_client_class = 407,
1119 S_require_client_classes = 409,
1121 S_reservations_global = 411,
1122 S_reservations_in_subnet = 412,
1123 S_reservations_out_of_pool = 413,
1124 S_reservation_mode = 414,
1128 S_shared_networks = 418,
1130 S_shared_networks_content = 420,
1131 S_shared_networks_list = 421,
1132 S_shared_network = 422,
1134 S_shared_network_params = 424,
1135 S_shared_network_param = 425,
1136 S_option_def_list = 426,
1138 S_sub_option_def_list = 428,
1140 S_option_def_list_content = 430,
1141 S_not_empty_option_def_list = 431,
1142 S_option_def_entry = 432,
1144 S_sub_option_def = 434,
1146 S_option_def_params = 436,
1147 S_not_empty_option_def_params = 437,
1148 S_option_def_param = 438,
1149 S_option_def_name = 439,
1151 S_option_def_code = 441,
1152 S_option_def_type = 442,
1154 S_option_def_record_types = 444,
1158 S_option_def_space = 448,
1159 S_option_def_encapsulate = 449,
1161 S_option_def_array = 451,
1162 S_option_data_list = 452,
1164 S_option_data_list_content = 454,
1165 S_not_empty_option_data_list = 455,
1166 S_option_data_entry = 456,
1168 S_sub_option_data = 458,
1170 S_option_data_params = 460,
1171 S_not_empty_option_data_params = 461,
1172 S_option_data_param = 462,
1173 S_option_data_name = 463,
1174 S_option_data_data = 464,
1176 S_option_data_code = 466,
1177 S_option_data_space = 467,
1178 S_option_data_csv_format = 468,
1179 S_option_data_always_send = 469,
1182 S_pools_list_content = 472,
1183 S_not_empty_pools_list = 473,
1184 S_pool_list_entry = 474,
1188 S_pool_params = 478,
1192 S_user_context = 482,
1196 S_reservations = 486,
1198 S_reservations_list = 488,
1199 S_not_empty_reservations_list = 489,
1200 S_reservation = 490,
1202 S_sub_reservation = 492,
1204 S_reservation_params = 494,
1205 S_not_empty_reservation_params = 495,
1206 S_reservation_param = 496,
1207 S_next_server = 497,
1209 S_server_hostname = 499,
1211 S_boot_file_name = 501,
1215 S_ip_addresses = 505,
1221 S_client_id_value = 511,
1223 S_circuit_id_value = 513,
1225 S_flex_id_value = 515,
1229 S_reservation_client_classes = 519,
1234 S_client_classes = 524,
1236 S_client_classes_list = 526,
1237 S_client_class_entry = 527,
1239 S_client_class_params = 529,
1240 S_not_empty_client_class_params = 530,
1241 S_client_class_param = 531,
1242 S_client_class_name = 532,
1243 S_client_class_test = 533,
1245 S_only_if_required = 535,
1246 S_dhcp4o6_port = 536,
1247 S_control_socket = 537,
1249 S_control_socket_params = 539,
1250 S_control_socket_param = 540,
1251 S_control_socket_type = 541,
1253 S_control_socket_name = 543,
1255 S_dhcp_queue_control = 545,
1257 S_queue_control_params = 547,
1258 S_queue_control_param = 548,
1259 S_enable_queue = 549,
1263 S_arbitrary_map_entry = 553,
1267 S_sub_dhcp_ddns = 557,
1269 S_dhcp_ddns_params = 559,
1270 S_dhcp_ddns_param = 560,
1271 S_enable_updates = 561,
1274 S_server_port = 564,
1277 S_sender_port = 567,
1278 S_max_queue_size = 568,
1279 S_ncr_protocol = 569,
1281 S_ncr_protocol_value = 571,
1284 S_dep_qualifying_suffix = 574,
1286 S_dep_override_no_update = 576,
1287 S_dep_override_client_update = 577,
1288 S_dep_replace_client_name = 578,
1290 S_dep_generated_prefix = 580,
1292 S_dep_hostname_char_set = 582,
1294 S_dep_hostname_char_replacement = 584,
1296 S_config_control = 586,
1298 S_sub_config_control = 588,
1300 S_config_control_params = 590,
1301 S_config_control_param = 591,
1302 S_config_databases = 592,
1304 S_config_fetch_wait_time = 594,
1307 S_loggers_entries = 597,
1308 S_logger_entry = 598,
1310 S_logger_params = 600,
1311 S_logger_param = 601,
1315 S_output_options_list = 605,
1317 S_output_options_list_content = 607,
1318 S_output_entry = 608,
1320 S_output_params_list = 610,
1321 S_output_params = 611,
1329 S_compatibility = 619,
1331 S_compatibility_params = 621,
1332 S_compatibility_param = 622,
1333 S_lenient_option_parsing = 623
1349 template <
typename Base>
1361#if 201103L <= YY_CPLUSPLUS
1364 : Base (std::move (that))
1368 switch (this->kind ())
1379 value.move<
ElementPtr > (std::move (that.value));
1383 value.move<
bool > (std::move (that.value));
1387 value.move<
double > (std::move (that.value));
1391 value.move< int64_t > (std::move (that.value));
1395 value.move< std::string > (std::move (that.value));
1406 basic_symbol (
const basic_symbol& that);
1409#if 201103L <= YY_CPLUSPLUS
1410 basic_symbol (
typename Base::kind_type t,
location_type&& l)
1421#if 201103L <= YY_CPLUSPLUS
1424 , value (std::move (v))
1435#if 201103L <= YY_CPLUSPLUS
1438 , value (std::move (v))
1449#if 201103L <= YY_CPLUSPLUS
1452 , value (std::move (v))
1463#if 201103L <= YY_CPLUSPLUS
1466 , value (std::move (v))
1477#if 201103L <= YY_CPLUSPLUS
1480 , value (std::move (v))
1522 value.template destroy< ElementPtr > ();
1526 value.template destroy< bool > ();
1530 value.template destroy< double > ();
1534 value.template destroy< int64_t > ();
1538 value.template destroy< std::string > ();
1570#if YY_CPLUSPLUS < 201103L
1582#if 201103L <= YY_CPLUSPLUS
1627#if 201103L <= YY_CPLUSPLUS
1629 : super_type(
token_type (tok), std::move (l))
1638#if 201103L <= YY_CPLUSPLUS
1640 : super_type(
token_type (tok), std::move (v), std::move (l))
1648#if 201103L <= YY_CPLUSPLUS
1650 : super_type(
token_type (tok), std::move (v), std::move (l))
1658#if 201103L <= YY_CPLUSPLUS
1660 : super_type(
token_type (tok), std::move (v), std::move (l))
1668#if 201103L <= YY_CPLUSPLUS
1670 : super_type(
token_type (tok), std::move (v), std::move (l))
1684#if 201103L <= YY_CPLUSPLUS
1697 virtual int parse ();
1726#if 201103L <= YY_CPLUSPLUS
1741#if 201103L <= YY_CPLUSPLUS
1756#if 201103L <= YY_CPLUSPLUS
1771#if 201103L <= YY_CPLUSPLUS
1786#if 201103L <= YY_CPLUSPLUS
1801#if 201103L <= YY_CPLUSPLUS
1816#if 201103L <= YY_CPLUSPLUS
1831#if 201103L <= YY_CPLUSPLUS
1846#if 201103L <= YY_CPLUSPLUS
1861#if 201103L <= YY_CPLUSPLUS
1876#if 201103L <= YY_CPLUSPLUS
1891#if 201103L <= YY_CPLUSPLUS
1906#if 201103L <= YY_CPLUSPLUS
1921#if 201103L <= YY_CPLUSPLUS
1936#if 201103L <= YY_CPLUSPLUS
1951#if 201103L <= YY_CPLUSPLUS
1966#if 201103L <= YY_CPLUSPLUS
1981#if 201103L <= YY_CPLUSPLUS
1996#if 201103L <= YY_CPLUSPLUS
2011#if 201103L <= YY_CPLUSPLUS
2026#if 201103L <= YY_CPLUSPLUS
2041#if 201103L <= YY_CPLUSPLUS
2056#if 201103L <= YY_CPLUSPLUS
2071#if 201103L <= YY_CPLUSPLUS
2086#if 201103L <= YY_CPLUSPLUS
2101#if 201103L <= YY_CPLUSPLUS
2116#if 201103L <= YY_CPLUSPLUS
2131#if 201103L <= YY_CPLUSPLUS
2146#if 201103L <= YY_CPLUSPLUS
2161#if 201103L <= YY_CPLUSPLUS
2176#if 201103L <= YY_CPLUSPLUS
2191#if 201103L <= YY_CPLUSPLUS
2206#if 201103L <= YY_CPLUSPLUS
2221#if 201103L <= YY_CPLUSPLUS
2236#if 201103L <= YY_CPLUSPLUS
2251#if 201103L <= YY_CPLUSPLUS
2266#if 201103L <= YY_CPLUSPLUS
2281#if 201103L <= YY_CPLUSPLUS
2296#if 201103L <= YY_CPLUSPLUS
2311#if 201103L <= YY_CPLUSPLUS
2326#if 201103L <= YY_CPLUSPLUS
2341#if 201103L <= YY_CPLUSPLUS
2356#if 201103L <= YY_CPLUSPLUS
2371#if 201103L <= YY_CPLUSPLUS
2386#if 201103L <= YY_CPLUSPLUS
2401#if 201103L <= YY_CPLUSPLUS
2416#if 201103L <= YY_CPLUSPLUS
2431#if 201103L <= YY_CPLUSPLUS
2446#if 201103L <= YY_CPLUSPLUS
2461#if 201103L <= YY_CPLUSPLUS
2476#if 201103L <= YY_CPLUSPLUS
2491#if 201103L <= YY_CPLUSPLUS
2506#if 201103L <= YY_CPLUSPLUS
2521#if 201103L <= YY_CPLUSPLUS
2536#if 201103L <= YY_CPLUSPLUS
2551#if 201103L <= YY_CPLUSPLUS
2566#if 201103L <= YY_CPLUSPLUS
2581#if 201103L <= YY_CPLUSPLUS
2596#if 201103L <= YY_CPLUSPLUS
2611#if 201103L <= YY_CPLUSPLUS
2626#if 201103L <= YY_CPLUSPLUS
2641#if 201103L <= YY_CPLUSPLUS
2656#if 201103L <= YY_CPLUSPLUS
2671#if 201103L <= YY_CPLUSPLUS
2686#if 201103L <= YY_CPLUSPLUS
2701#if 201103L <= YY_CPLUSPLUS
2716#if 201103L <= YY_CPLUSPLUS
2731#if 201103L <= YY_CPLUSPLUS
2746#if 201103L <= YY_CPLUSPLUS
2761#if 201103L <= YY_CPLUSPLUS
2776#if 201103L <= YY_CPLUSPLUS
2791#if 201103L <= YY_CPLUSPLUS
2806#if 201103L <= YY_CPLUSPLUS
2821#if 201103L <= YY_CPLUSPLUS
2836#if 201103L <= YY_CPLUSPLUS
2851#if 201103L <= YY_CPLUSPLUS
2866#if 201103L <= YY_CPLUSPLUS
2881#if 201103L <= YY_CPLUSPLUS
2896#if 201103L <= YY_CPLUSPLUS
2911#if 201103L <= YY_CPLUSPLUS
2926#if 201103L <= YY_CPLUSPLUS
2941#if 201103L <= YY_CPLUSPLUS
2956#if 201103L <= YY_CPLUSPLUS
2971#if 201103L <= YY_CPLUSPLUS
2986#if 201103L <= YY_CPLUSPLUS
3001#if 201103L <= YY_CPLUSPLUS
3016#if 201103L <= YY_CPLUSPLUS
3031#if 201103L <= YY_CPLUSPLUS
3046#if 201103L <= YY_CPLUSPLUS
3061#if 201103L <= YY_CPLUSPLUS
3076#if 201103L <= YY_CPLUSPLUS
3091#if 201103L <= YY_CPLUSPLUS
3106#if 201103L <= YY_CPLUSPLUS
3121#if 201103L <= YY_CPLUSPLUS
3136#if 201103L <= YY_CPLUSPLUS
3151#if 201103L <= YY_CPLUSPLUS
3166#if 201103L <= YY_CPLUSPLUS
3181#if 201103L <= YY_CPLUSPLUS
3196#if 201103L <= YY_CPLUSPLUS
3211#if 201103L <= YY_CPLUSPLUS
3226#if 201103L <= YY_CPLUSPLUS
3241#if 201103L <= YY_CPLUSPLUS
3256#if 201103L <= YY_CPLUSPLUS
3271#if 201103L <= YY_CPLUSPLUS
3286#if 201103L <= YY_CPLUSPLUS
3301#if 201103L <= YY_CPLUSPLUS
3316#if 201103L <= YY_CPLUSPLUS
3331#if 201103L <= YY_CPLUSPLUS
3346#if 201103L <= YY_CPLUSPLUS
3361#if 201103L <= YY_CPLUSPLUS
3376#if 201103L <= YY_CPLUSPLUS
3391#if 201103L <= YY_CPLUSPLUS
3406#if 201103L <= YY_CPLUSPLUS
3421#if 201103L <= YY_CPLUSPLUS
3436#if 201103L <= YY_CPLUSPLUS
3451#if 201103L <= YY_CPLUSPLUS
3466#if 201103L <= YY_CPLUSPLUS
3481#if 201103L <= YY_CPLUSPLUS
3496#if 201103L <= YY_CPLUSPLUS
3511#if 201103L <= YY_CPLUSPLUS
3526#if 201103L <= YY_CPLUSPLUS
3541#if 201103L <= YY_CPLUSPLUS
3556#if 201103L <= YY_CPLUSPLUS
3571#if 201103L <= YY_CPLUSPLUS
3586#if 201103L <= YY_CPLUSPLUS
3601#if 201103L <= YY_CPLUSPLUS
3616#if 201103L <= YY_CPLUSPLUS
3631#if 201103L <= YY_CPLUSPLUS
3646#if 201103L <= YY_CPLUSPLUS
3661#if 201103L <= YY_CPLUSPLUS
3676#if 201103L <= YY_CPLUSPLUS
3691#if 201103L <= YY_CPLUSPLUS
3706#if 201103L <= YY_CPLUSPLUS
3721#if 201103L <= YY_CPLUSPLUS
3736#if 201103L <= YY_CPLUSPLUS
3751#if 201103L <= YY_CPLUSPLUS
3766#if 201103L <= YY_CPLUSPLUS
3781#if 201103L <= YY_CPLUSPLUS
3796#if 201103L <= YY_CPLUSPLUS
3811#if 201103L <= YY_CPLUSPLUS
3826#if 201103L <= YY_CPLUSPLUS
3841#if 201103L <= YY_CPLUSPLUS
3856#if 201103L <= YY_CPLUSPLUS
3871#if 201103L <= YY_CPLUSPLUS
3886#if 201103L <= YY_CPLUSPLUS
3901#if 201103L <= YY_CPLUSPLUS
3916#if 201103L <= YY_CPLUSPLUS
3931#if 201103L <= YY_CPLUSPLUS
3946#if 201103L <= YY_CPLUSPLUS
3961#if 201103L <= YY_CPLUSPLUS
3976#if 201103L <= YY_CPLUSPLUS
3991#if 201103L <= YY_CPLUSPLUS
4006#if 201103L <= YY_CPLUSPLUS
4021#if 201103L <= YY_CPLUSPLUS
4036#if 201103L <= YY_CPLUSPLUS
4051#if 201103L <= YY_CPLUSPLUS
4066#if 201103L <= YY_CPLUSPLUS
4081#if 201103L <= YY_CPLUSPLUS
4096#if 201103L <= YY_CPLUSPLUS
4111#if 201103L <= YY_CPLUSPLUS
4126#if 201103L <= YY_CPLUSPLUS
4141#if 201103L <= YY_CPLUSPLUS
4156#if 201103L <= YY_CPLUSPLUS
4171#if 201103L <= YY_CPLUSPLUS
4186#if 201103L <= YY_CPLUSPLUS
4201#if 201103L <= YY_CPLUSPLUS
4216#if 201103L <= YY_CPLUSPLUS
4231#if 201103L <= YY_CPLUSPLUS
4246#if 201103L <= YY_CPLUSPLUS
4261#if 201103L <= YY_CPLUSPLUS
4276#if 201103L <= YY_CPLUSPLUS
4291#if 201103L <= YY_CPLUSPLUS
4306#if 201103L <= YY_CPLUSPLUS
4321#if 201103L <= YY_CPLUSPLUS
4336#if 201103L <= YY_CPLUSPLUS
4351#if 201103L <= YY_CPLUSPLUS
4366#if 201103L <= YY_CPLUSPLUS
4381#if 201103L <= YY_CPLUSPLUS
4396#if 201103L <= YY_CPLUSPLUS
4411#if 201103L <= YY_CPLUSPLUS
4426#if 201103L <= YY_CPLUSPLUS
4441#if 201103L <= YY_CPLUSPLUS
4456#if 201103L <= YY_CPLUSPLUS
4471#if 201103L <= YY_CPLUSPLUS
4486#if 201103L <= YY_CPLUSPLUS
4501#if 201103L <= YY_CPLUSPLUS
4516#if 201103L <= YY_CPLUSPLUS
4531#if 201103L <= YY_CPLUSPLUS
4546#if 201103L <= YY_CPLUSPLUS
4561#if 201103L <= YY_CPLUSPLUS
4576#if 201103L <= YY_CPLUSPLUS
4591#if 201103L <= YY_CPLUSPLUS
4606#if 201103L <= YY_CPLUSPLUS
4621#if 201103L <= YY_CPLUSPLUS
4636#if 201103L <= YY_CPLUSPLUS
4651#if 201103L <= YY_CPLUSPLUS
4666#if 201103L <= YY_CPLUSPLUS
4681#if 201103L <= YY_CPLUSPLUS
4696#if 201103L <= YY_CPLUSPLUS
4711#if 201103L <= YY_CPLUSPLUS
4726#if 201103L <= YY_CPLUSPLUS
4741#if 201103L <= YY_CPLUSPLUS
4756#if 201103L <= YY_CPLUSPLUS
4771#if 201103L <= YY_CPLUSPLUS
4786#if 201103L <= YY_CPLUSPLUS
4822#if YY_CPLUSPLUS < 201103L
4831 typedef short state_type;
4834 int yy_syntax_error_arguments_ (
const context& yyctx,
4839 virtual std::string yysyntax_error_ (
const context& yyctx)
const;
4843 static state_type yy_lr_goto_state_ (state_type yystate,
int yysym);
4847 static bool yy_pact_value_is_default_ (
int yyvalue);
4851 static bool yy_table_value_is_error_ (
int yyvalue);
4853 static const short yypact_ninf_;
4854 static const signed char yytable_ninf_;
4862 static std::string yytnamerr_ (
const char *yystr);
4865 static const char*
const yytname_[];
4871 static const short yypact_[];
4876 static const short yydefact_[];
4879 static const short yypgoto_[];
4882 static const short yydefgoto_[];
4887 static const short yytable_[];
4889 static const short yycheck_[];
4893 static const short yystos_[];
4896 static const short yyr1_[];
4899 static const signed char yyr2_[];
4904 static const short yyrline_[];
4906 virtual void yy_reduce_print_ (
int r)
const;
4908 virtual void yy_stack_print_ ()
const;
4913 std::ostream* yycdebug_;
4918 template <
typename Base>
4919 void yy_print_ (std::ostream& yyo,
const basic_symbol<Base>& yysym)
const;
4926 template <
typename Base>
4927 void yy_destroy_ (
const char* yymsg, basic_symbol<Base>& yysym)
const;
4937 typedef state_type kind_type;
4949 void move (by_state& that);
4957 enum { empty_state = 0 };
4965 struct stack_symbol_type : basic_symbol<by_state>
4968 typedef basic_symbol<by_state> super_type;
4970 stack_symbol_type ();
4972 stack_symbol_type (
YY_RVREF (stack_symbol_type) that);
4974 stack_symbol_type (state_type s,
YY_MOVE_REF (symbol_type) sym);
4975#if YY_CPLUSPLUS < 201103L
4978 stack_symbol_type& operator= (stack_symbol_type& that);
4982 stack_symbol_type& operator= (
const stack_symbol_type& that);
4987 template <
typename T,
typename S = std::vector<T> >
4992 typedef typename S::iterator iterator;
4993 typedef typename S::const_iterator const_iterator;
4994 typedef typename S::size_type size_type;
4995 typedef typename std::ptrdiff_t index_type;
4997 stack (size_type n = 200)
5001#if 201103L <= YY_CPLUSPLUS
5003 stack (
const stack&) =
delete;
5005 stack& operator= (
const stack&) =
delete;
5012 operator[] (index_type i)
const
5014 return seq_[size_type (size () - 1 - i)];
5021 operator[] (index_type i)
5023 return seq_[size_type (size () - 1 - i)];
5032 seq_.push_back (T ());
5033 operator[] (0).move (t);
5055 return index_type (seq_.size ());
5062 return seq_.begin ();
5076 slice (
const stack& stack, index_type range)
5082 operator[] (index_type i)
const
5084 return stack_[range_ - i];
5088 const stack& stack_;
5093#if YY_CPLUSPLUS < 201103L
5095 stack (
const stack&);
5097 stack& operator= (
const stack&);
5105 typedef stack<stack_symbol_type> stack_type;
5108 stack_type yystack_;
5115 void yypush_ (
const char* m,
YY_MOVE_REF (stack_symbol_type) sym);
5123 void yypush_ (
const char* m, state_type s,
YY_MOVE_REF (symbol_type) sym);
5126 void yypop_ (
int n = 1);
5144 Dhcp4Parser::yytranslate_ (
int t)
5152 0, 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, 2, 2, 2, 2,
5160 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5161 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5162 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5163 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5164 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5165 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5166 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5167 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5168 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5169 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5170 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5171 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5172 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5173 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5174 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5175 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5176 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5177 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
5178 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
5179 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
5180 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
5181 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
5182 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
5183 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
5184 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
5185 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
5186 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
5187 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
5188 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
5189 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
5190 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
5191 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
5192 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
5193 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
5194 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
5195 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
5196 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
5197 195, 196, 197, 198, 199, 200, 201, 202, 203, 204
5200 const int code_max = 459;
5204 else if (t <= code_max)
5211 template <
typename Base>
5217 switch (this->kind ())
5255 template <
typename Base>
5259 return this->kind ();
5262 template <
typename Base>
5269 template <
typename Base>
5273 super_type::move (s);
5274 switch (this->kind ())
5317#if 201103L <= YY_CPLUSPLUS
5320 : kind_ (that.kind_)
5328 : kind_ (that.kind_)
5333 : kind_ (yytranslate_ (t))
5362 return this->kind ();
5365#line 14 "dhcp4_parser.yy"
5367#line 5368 "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.
static symbol_type make_PARKED_PACKET_LIMIT(const location_type &l)
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_PARKED_PACKET_LIMIT
@ 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).