]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[5704] Addressed review comments
authorThomas Markwalder <tmark@isc.org>
Thu, 9 Aug 2018 13:22:43 +0000 (09:22 -0400)
committerThomas Markwalder <tmark@isc.org>
Thu, 9 Aug 2018 13:22:43 +0000 (09:22 -0400)
    Updated config unit tests, rolled back eval/lexer.cc, etc...

src/bin/dhcp4/tests/config_parser_unittest.cc
src/bin/dhcp4/tests/get_config_unittest.cc
src/bin/dhcp6/tests/get_config_unittest.cc
src/lib/dhcpsrv/subnet_id.h
src/lib/dhcpsrv/testutils/generic_host_data_source_unittest.h
src/lib/eval/lexer.cc

index ae7cf19169a31baa5c9e1b2c9673e77f3e92c1dc..2335fd2bb230bed455ef65ce4823e07f6e9cdc35 100644 (file)
@@ -6156,12 +6156,6 @@ TEST_F(Dhcp4ParserTest, globalReservations) {
         "}\n";
 
     ConstElementPtr json;
-    try {
-    (json = parseDHCP4(config));
-    } catch (const std::exception& ex) {
-        std::cout << "TKM: " << ex.what() << std::endl;
-    }
-
     ASSERT_NO_THROW(json = parseDHCP4(config));
     extractConfig(config);
 
@@ -6192,7 +6186,7 @@ TEST_F(Dhcp4ParserTest, globalReservations) {
     ASSERT_TRUE(host);
     EXPECT_EQ("global2", host->getHostname());
 
-    // Check that options are assigned correctly.
+    // Check that options are stored correctly.
     Option4AddrLstPtr opt_dns =
         retrieveOption<Option4AddrLstPtr>(*host, DHO_NAME_SERVERS);
     ASSERT_TRUE(opt_dns);
index e041d91ac7703f54a8bd40325c28a781585f5eb7..e9468485fc1111db3559a39217f4824d2e60434a 100644 (file)
@@ -68,8 +68,6 @@ namespace {
 ///@{
 /// @brief extracted configurations
 const char* EXTRACTED_CONFIGS[] = {
-/// put this after const char* EXTRACTED_CONFIGS[] = {
-    // CONFIGURATION 0
 "{\n"
 "        \"interfaces-config\": {\n"
 "            \"interfaces\": [ \"*\" ],\n"
@@ -1854,13 +1852,73 @@ const char* EXTRACTED_CONFIGS[] = {
 "                ]\n"
 "            }\n"
 "        ]\n"
+"    }\n",
+    // CONFIGURATION 63
+"{\n"
+"        \"interfaces-config\": {\n"
+"            \"interfaces\": [ \"*\" ],\n"
+"            \"re-detect\": false\n"
+"        },\n"
+"        \"rebind-timer\": 2000,\n"
+"        \"renew-timer\": 1000,\n"
+"        \"reservations\": [\n"
+"            {\n"
+"                \"duid\": \"01:02:03:04:05:06:07:08:09:0A\",\n"
+"                \"hostname\": \"global1\",\n"
+"                \"ip-address\": \"192.0.200.1\",\n"
+"                \"option-data\": [\n"
+"                    {\n"
+"                        \"data\": \"192.0.3.15\",\n"
+"                        \"name\": \"name-servers\"\n"
+"                    },\n"
+"                    {\n"
+"                        \"data\": \"32\",\n"
+"                        \"name\": \"default-ip-ttl\"\n"
+"                    }\n"
+"                ]\n"
+"            },\n"
+"            {\n"
+"                \"hostname\": \"global2\",\n"
+"                \"hw-address\": \"01:02:03:04:05:06\",\n"
+"                \"option-data\": [\n"
+"                    {\n"
+"                        \"data\": \"192.0.3.95\",\n"
+"                        \"name\": \"name-servers\"\n"
+"                    },\n"
+"                    {\n"
+"                        \"data\": \"11\",\n"
+"                        \"name\": \"default-ip-ttl\"\n"
+"                    }\n"
+"                ]\n"
+"            }\n"
+"        ],\n"
+"        \"subnet4\": [\n"
+"            {\n"
+"                \"id\": 123,\n"
+"                \"pools\": [\n"
+"                    {\n"
+"                        \"pool\": \"192.0.2.1 - 192.0.2.100\"\n"
+"                    }\n"
+"                ],\n"
+"                \"reservations\": [ ],\n"
+"                \"subnet\": \"192.0.2.0/24\"\n"
+"            },\n"
+"            {\n"
+"                \"id\": 542,\n"
+"                \"pools\": [\n"
+"                    {\n"
+"                        \"pool\": \"192.0.4.101 - 192.0.4.150\"\n"
+"                    }\n"
+"                ],\n"
+"                \"subnet\": \"192.0.4.0/24\"\n"
+"            }\n"
+"        ],\n"
+"        \"valid-lifetime\": 4000\n"
 "    }\n"
 };
 
 /// @brief unparsed configurations
 const char* UNPARSED_CONFIGS[] = {
-///put this after const char* UNPARSED_CONFIGS[] = {
-    // CONFIGURATION 0
 "{\n"
 "        \"decline-probation-period\": 86400,\n"
 "        \"dhcp-ddns\": {\n"
@@ -7496,6 +7554,165 @@ const char* UNPARSED_CONFIGS[] = {
 "            }\n"
 "        ],\n"
 "        \"subnet4\": [ ]\n"
+"    }\n",
+    // CONFIGURATION 63
+"{\n"
+"        \"decline-probation-period\": 86400,\n"
+"        \"dhcp-ddns\": {\n"
+"            \"always-include-fqdn\": false,\n"
+"            \"enable-updates\": false,\n"
+"            \"generated-prefix\": \"myhost\",\n"
+"            \"hostname-char-replacement\": \"\",\n"
+"            \"hostname-char-set\": \"\",\n"
+"            \"max-queue-size\": 1024,\n"
+"            \"ncr-format\": \"JSON\",\n"
+"            \"ncr-protocol\": \"UDP\",\n"
+"            \"override-client-update\": false,\n"
+"            \"override-no-update\": false,\n"
+"            \"qualifying-suffix\": \"\",\n"
+"            \"replace-client-name\": \"never\",\n"
+"            \"sender-ip\": \"0.0.0.0\",\n"
+"            \"sender-port\": 0,\n"
+"            \"server-ip\": \"127.0.0.1\",\n"
+"            \"server-port\": 53001\n"
+"        },\n"
+"        \"dhcp4o6-port\": 0,\n"
+"        \"echo-client-id\": true,\n"
+"        \"expired-leases-processing\": {\n"
+"            \"flush-reclaimed-timer-wait-time\": 25,\n"
+"            \"hold-reclaimed-time\": 3600,\n"
+"            \"max-reclaim-leases\": 100,\n"
+"            \"max-reclaim-time\": 250,\n"
+"            \"reclaim-timer-wait-time\": 10,\n"
+"            \"unwarned-reclaim-cycles\": 5\n"
+"        },\n"
+"        \"hooks-libraries\": [ ],\n"
+"        \"host-reservation-identifiers\": [ \"hw-address\", \"duid\", \"circuit-id\", \"client-id\" ],\n"
+"        \"interfaces-config\": {\n"
+"            \"interfaces\": [ \"*\" ],\n"
+"            \"re-detect\": false\n"
+"        },\n"
+"        \"lease-database\": {\n"
+"            \"type\": \"memfile\"\n"
+"        },\n"
+"        \"option-data\": [ ],\n"
+"        \"option-def\": [ ],\n"
+"        \"rebind-timer\": 2000,\n"
+"        \"renew-timer\": 1000,\n"
+"        \"reservations\": [\n"
+"            {\n"
+"                \"boot-file-name\": \"\",\n"
+"                \"client-classes\": [ ],\n"
+"                \"hostname\": \"global2\",\n"
+"                \"hw-address\": \"01:02:03:04:05:06\",\n"
+"                \"next-server\": \"0.0.0.0\",\n"
+"                \"option-data\": [\n"
+"                    {\n"
+"                        \"always-send\": false,\n"
+"                        \"code\": 5,\n"
+"                        \"csv-format\": true,\n"
+"                        \"data\": \"192.0.3.95\",\n"
+"                        \"name\": \"name-servers\",\n"
+"                        \"space\": \"dhcp4\"\n"
+"                    },\n"
+"                    {\n"
+"                        \"always-send\": false,\n"
+"                        \"code\": 23,\n"
+"                        \"csv-format\": true,\n"
+"                        \"data\": \"11\",\n"
+"                        \"name\": \"default-ip-ttl\",\n"
+"                        \"space\": \"dhcp4\"\n"
+"                    }\n"
+"                ],\n"
+"                \"server-hostname\": \"\"\n"
+"            },\n"
+"            {\n"
+"                \"boot-file-name\": \"\",\n"
+"                \"client-classes\": [ ],\n"
+"                \"duid\": \"01:02:03:04:05:06:07:08:09:0a\",\n"
+"                \"hostname\": \"global1\",\n"
+"                \"ip-address\": \"192.0.200.1\",\n"
+"                \"next-server\": \"0.0.0.0\",\n"
+"                \"option-data\": [\n"
+"                    {\n"
+"                        \"always-send\": false,\n"
+"                        \"code\": 5,\n"
+"                        \"csv-format\": true,\n"
+"                        \"data\": \"192.0.3.15\",\n"
+"                        \"name\": \"name-servers\",\n"
+"                        \"space\": \"dhcp4\"\n"
+"                    },\n"
+"                    {\n"
+"                        \"always-send\": false,\n"
+"                        \"code\": 23,\n"
+"                        \"csv-format\": true,\n"
+"                        \"data\": \"32\",\n"
+"                        \"name\": \"default-ip-ttl\",\n"
+"                        \"space\": \"dhcp4\"\n"
+"                    }\n"
+"                ],\n"
+"                \"server-hostname\": \"\"\n"
+"            }\n"
+"        ],\n"
+"        \"sanity-checks\": {\n"
+"            \"lease-checks\": \"warn\"\n"
+"        },\n"
+"        \"shared-networks\": [ ],\n"
+"        \"subnet4\": [\n"
+"            {\n"
+"                \"4o6-interface\": \"\",\n"
+"                \"4o6-interface-id\": \"\",\n"
+"                \"4o6-subnet\": \"\",\n"
+"                \"boot-file-name\": \"\",\n"
+"                \"id\": 123,\n"
+"                \"match-client-id\": true,\n"
+"                \"next-server\": \"0.0.0.0\",\n"
+"                \"option-data\": [ ],\n"
+"                \"pools\": [\n"
+"                    {\n"
+"                        \"option-data\": [ ],\n"
+"                        \"pool\": \"192.0.2.1-192.0.2.100\"\n"
+"                    }\n"
+"                ],\n"
+"                \"rebind-timer\": 2000,\n"
+"                \"relay\": {\n"
+"                    \"ip-addresses\": [ ]\n"
+"                },\n"
+"                \"renew-timer\": 1000,\n"
+"                \"reservation-mode\": \"all\",\n"
+"                \"reservations\": [ ],\n"
+"                \"server-hostname\": \"\",\n"
+"                \"subnet\": \"192.0.2.0/24\",\n"
+"                \"valid-lifetime\": 4000\n"
+"            },\n"
+"            {\n"
+"                \"4o6-interface\": \"\",\n"
+"                \"4o6-interface-id\": \"\",\n"
+"                \"4o6-subnet\": \"\",\n"
+"                \"boot-file-name\": \"\",\n"
+"                \"id\": 542,\n"
+"                \"match-client-id\": true,\n"
+"                \"next-server\": \"0.0.0.0\",\n"
+"                \"option-data\": [ ],\n"
+"                \"pools\": [\n"
+"                    {\n"
+"                        \"option-data\": [ ],\n"
+"                        \"pool\": \"192.0.4.101-192.0.4.150\"\n"
+"                    }\n"
+"                ],\n"
+"                \"rebind-timer\": 2000,\n"
+"                \"relay\": {\n"
+"                    \"ip-addresses\": [ ]\n"
+"                },\n"
+"                \"renew-timer\": 1000,\n"
+"                \"reservation-mode\": \"all\",\n"
+"                \"reservations\": [ ],\n"
+"                \"server-hostname\": \"\",\n"
+"                \"subnet\": \"192.0.4.0/24\",\n"
+"                \"valid-lifetime\": 4000\n"
+"            }\n"
+"        ],\n"
+"        \"valid-lifetime\": 4000\n"
 "    }\n"
 };
 
index c8ef1b1cb9b9db4c3afcb1df314815e7d00afdc7..5221e35f833afd808a9c9bfb6f3aadd2159941fe 100644 (file)
@@ -69,8 +69,6 @@ namespace {
 ///@{
 /// @brief extracted configurations
 const char* EXTRACTED_CONFIGS[] = {
-/// put this after const char* EXTRACTED_CONFIGS[] = {
-    // CONFIGURATION 0
 "{\n"
 "        \"interfaces-config\": {\n"
 "            \"interfaces\": [ \"*\" ],\n"
@@ -1120,6 +1118,8 @@ const char* EXTRACTED_CONFIGS[] = {
 "            \"always-include-fqdn\": true,\n"
 "            \"enable-updates\": true,\n"
 "            \"generated-prefix\": \"test.prefix\",\n"
+"            \"hostname-char-replacement\": \"x\",\n"
+"            \"hostname-char-set\": \"[^A-Za-z0-9_-]\",\n"
 "            \"max-queue-size\": 2048,\n"
 "            \"ncr-format\": \"JSON\",\n"
 "            \"ncr-protocol\": \"UDP\",\n"
@@ -1728,13 +1728,76 @@ const char* EXTRACTED_CONFIGS[] = {
 "                ]\n"
 "            }\n"
 "        ]\n"
+"    }\n",
+    // CONFIGURATION 56
+"{\n"
+"        \"interfaces-config\": {\n"
+"            \"interfaces\": [ \"*\" ],\n"
+"            \"re-detect\": false\n"
+"        },\n"
+"        \"preferred-lifetime\": 3000,\n"
+"        \"rebind-timer\": 2000,\n"
+"        \"renew-timer\": 1000,\n"
+"        \"reservations\": [\n"
+"            {\n"
+"                \"duid\": \"01:02:03:04:05:06:07:08:09:0A\",\n"
+"                \"hostname\": \"\",\n"
+"                \"ip-addresses\": [ \"2001:db8:2::1234\" ],\n"
+"                \"option-data\": [\n"
+"                    {\n"
+"                        \"data\": \"2001:db8:2::1111\",\n"
+"                        \"name\": \"dns-servers\"\n"
+"                    },\n"
+"                    {\n"
+"                        \"data\": \"11\",\n"
+"                        \"name\": \"preference\"\n"
+"                    }\n"
+"                ]\n"
+"            },\n"
+"            {\n"
+"                \"hostname\": \"\",\n"
+"                \"hw-address\": \"01:02:03:04:05:06\",\n"
+"                \"ip-addresses\": [ \"2001:db8:2::abcd\" ],\n"
+"                \"option-data\": [\n"
+"                    {\n"
+"                        \"data\": \"2001:db8:2::abbc\",\n"
+"                        \"name\": \"dns-servers\"\n"
+"                    },\n"
+"                    {\n"
+"                        \"data\": \"25\",\n"
+"                        \"name\": \"preference\"\n"
+"                    }\n"
+"                ]\n"
+"            }\n"
+"        ],\n"
+"        \"subnet6\": [\n"
+"            {\n"
+"                \"id\": 123,\n"
+"                \"pools\": [\n"
+"                    {\n"
+"                        \"pool\": \"2001:db8:1::/80\"\n"
+"                    }\n"
+"                ],\n"
+"                \"reservations\": [ ],\n"
+"                \"subnet\": \"2001:db8:1::/64\"\n"
+"            },\n"
+"            {\n"
+"                \"id\": 234,\n"
+"                \"pools\": [ ],\n"
+"                \"subnet\": \"2001:db8:2::/64\"\n"
+"            },\n"
+"            {\n"
+"                \"id\": 542,\n"
+"                \"pools\": [ ],\n"
+"                \"subnet\": \"2001:db8:3::/64\"\n"
+"            }\n"
+"        ],\n"
+"        \"valid-lifetime\": 4000\n"
 "    }\n"
 };
 
 /// @brief unparsed configurations
 const char* UNPARSED_CONFIGS[] = {
-///put this after const char* UNPARSED_CONFIGS[] = {
-    // CONFIGURATION 0
 "{\n"
 "        \"decline-probation-period\": 86400,\n"
 "        \"dhcp-ddns\": {\n"
@@ -5150,8 +5213,8 @@ const char* UNPARSED_CONFIGS[] = {
 "            \"always-include-fqdn\": true,\n"
 "            \"enable-updates\": true,\n"
 "            \"generated-prefix\": \"test.prefix\",\n"
-"            \"hostname-char-replacement\": \"\",\n"
-"            \"hostname-char-set\": \"\",\n"
+"            \"hostname-char-replacement\": \"x\",\n"
+"            \"hostname-char-set\": \"[^A-Za-z0-9_-]\",\n"
 "            \"max-queue-size\": 2048,\n"
 "            \"ncr-format\": \"JSON\",\n"
 "            \"ncr-protocol\": \"UDP\",\n"
@@ -7057,6 +7120,176 @@ const char* UNPARSED_CONFIGS[] = {
 "            }\n"
 "        ],\n"
 "        \"subnet6\": [ ]\n"
+"    }\n",
+    // CONFIGURATION 56
+"{\n"
+"        \"decline-probation-period\": 86400,\n"
+"        \"dhcp-ddns\": {\n"
+"            \"always-include-fqdn\": false,\n"
+"            \"enable-updates\": false,\n"
+"            \"generated-prefix\": \"myhost\",\n"
+"            \"hostname-char-replacement\": \"\",\n"
+"            \"hostname-char-set\": \"\",\n"
+"            \"max-queue-size\": 1024,\n"
+"            \"ncr-format\": \"JSON\",\n"
+"            \"ncr-protocol\": \"UDP\",\n"
+"            \"override-client-update\": false,\n"
+"            \"override-no-update\": false,\n"
+"            \"qualifying-suffix\": \"\",\n"
+"            \"replace-client-name\": \"never\",\n"
+"            \"sender-ip\": \"0.0.0.0\",\n"
+"            \"sender-port\": 0,\n"
+"            \"server-ip\": \"127.0.0.1\",\n"
+"            \"server-port\": 53001\n"
+"        },\n"
+"        \"dhcp4o6-port\": 0,\n"
+"        \"expired-leases-processing\": {\n"
+"            \"flush-reclaimed-timer-wait-time\": 25,\n"
+"            \"hold-reclaimed-time\": 3600,\n"
+"            \"max-reclaim-leases\": 100,\n"
+"            \"max-reclaim-time\": 250,\n"
+"            \"reclaim-timer-wait-time\": 10,\n"
+"            \"unwarned-reclaim-cycles\": 5\n"
+"        },\n"
+"        \"hooks-libraries\": [ ],\n"
+"        \"host-reservation-identifiers\": [ \"hw-address\", \"duid\" ],\n"
+"        \"interfaces-config\": {\n"
+"            \"interfaces\": [ \"*\" ],\n"
+"            \"re-detect\": false\n"
+"        },\n"
+"        \"lease-database\": {\n"
+"            \"type\": \"memfile\"\n"
+"        },\n"
+"        \"mac-sources\": [ \"any\" ],\n"
+"        \"option-data\": [ ],\n"
+"        \"option-def\": [ ],\n"
+"        \"preferred-lifetime\": 3000,\n"
+"        \"rebind-timer\": 2000,\n"
+"        \"relay-supplied-options\": [ \"65\" ],\n"
+"        \"renew-timer\": 1000,\n"
+"        \"reservations\": [\n"
+"            {\n"
+"                \"client-classes\": [ ],\n"
+"                \"hostname\": \"\",\n"
+"                \"hw-address\": \"01:02:03:04:05:06\",\n"
+"                \"ip-addresses\": [ \"2001:db8:2::abcd\" ],\n"
+"                \"option-data\": [\n"
+"                    {\n"
+"                        \"always-send\": false,\n"
+"                        \"code\": 23,\n"
+"                        \"csv-format\": true,\n"
+"                        \"data\": \"2001:db8:2::abbc\",\n"
+"                        \"name\": \"dns-servers\",\n"
+"                        \"space\": \"dhcp6\"\n"
+"                    },\n"
+"                    {\n"
+"                        \"always-send\": false,\n"
+"                        \"code\": 7,\n"
+"                        \"csv-format\": true,\n"
+"                        \"data\": \"25\",\n"
+"                        \"name\": \"preference\",\n"
+"                        \"space\": \"dhcp6\"\n"
+"                    }\n"
+"                ],\n"
+"                \"prefixes\": [ ]\n"
+"            },\n"
+"            {\n"
+"                \"client-classes\": [ ],\n"
+"                \"duid\": \"01:02:03:04:05:06:07:08:09:0a\",\n"
+"                \"hostname\": \"\",\n"
+"                \"ip-addresses\": [ \"2001:db8:2::1234\" ],\n"
+"                \"option-data\": [\n"
+"                    {\n"
+"                        \"always-send\": false,\n"
+"                        \"code\": 23,\n"
+"                        \"csv-format\": true,\n"
+"                        \"data\": \"2001:db8:2::1111\",\n"
+"                        \"name\": \"dns-servers\",\n"
+"                        \"space\": \"dhcp6\"\n"
+"                    },\n"
+"                    {\n"
+"                        \"always-send\": false,\n"
+"                        \"code\": 7,\n"
+"                        \"csv-format\": true,\n"
+"                        \"data\": \"11\",\n"
+"                        \"name\": \"preference\",\n"
+"                        \"space\": \"dhcp6\"\n"
+"                    }\n"
+"                ],\n"
+"                \"prefixes\": [ ]\n"
+"            }\n"
+"        ],\n"
+"        \"sanity-checks\": {\n"
+"            \"lease-checks\": \"warn\"\n"
+"        },\n"
+"        \"server-id\": {\n"
+"            \"enterprise-id\": 0,\n"
+"            \"htype\": 0,\n"
+"            \"identifier\": \"\",\n"
+"            \"persist\": true,\n"
+"            \"time\": 0,\n"
+"            \"type\": \"LLT\"\n"
+"        },\n"
+"        \"shared-networks\": [ ],\n"
+"        \"subnet6\": [\n"
+"            {\n"
+"                \"id\": 123,\n"
+"                \"option-data\": [ ],\n"
+"                \"pd-pools\": [ ],\n"
+"                \"pools\": [\n"
+"                    {\n"
+"                        \"option-data\": [ ],\n"
+"                        \"pool\": \"2001:db8:1::/80\"\n"
+"                    }\n"
+"                ],\n"
+"                \"preferred-lifetime\": 3000,\n"
+"                \"rapid-commit\": false,\n"
+"                \"rebind-timer\": 2000,\n"
+"                \"relay\": {\n"
+"                    \"ip-addresses\": [ ]\n"
+"                },\n"
+"                \"renew-timer\": 1000,\n"
+"                \"reservation-mode\": \"all\",\n"
+"                \"reservations\": [ ],\n"
+"                \"subnet\": \"2001:db8:1::/64\",\n"
+"                \"valid-lifetime\": 4000\n"
+"            },\n"
+"            {\n"
+"                \"id\": 234,\n"
+"                \"option-data\": [ ],\n"
+"                \"pd-pools\": [ ],\n"
+"                \"pools\": [ ],\n"
+"                \"preferred-lifetime\": 3000,\n"
+"                \"rapid-commit\": false,\n"
+"                \"rebind-timer\": 2000,\n"
+"                \"relay\": {\n"
+"                    \"ip-addresses\": [ ]\n"
+"                },\n"
+"                \"renew-timer\": 1000,\n"
+"                \"reservation-mode\": \"all\",\n"
+"                \"reservations\": [ ],\n"
+"                \"subnet\": \"2001:db8:2::/64\",\n"
+"                \"valid-lifetime\": 4000\n"
+"            },\n"
+"            {\n"
+"                \"id\": 542,\n"
+"                \"option-data\": [ ],\n"
+"                \"pd-pools\": [ ],\n"
+"                \"pools\": [ ],\n"
+"                \"preferred-lifetime\": 3000,\n"
+"                \"rapid-commit\": false,\n"
+"                \"rebind-timer\": 2000,\n"
+"                \"relay\": {\n"
+"                    \"ip-addresses\": [ ]\n"
+"                },\n"
+"                \"renew-timer\": 1000,\n"
+"                \"reservation-mode\": \"all\",\n"
+"                \"reservations\": [ ],\n"
+"                \"subnet\": \"2001:db8:3::/64\",\n"
+"                \"valid-lifetime\": 4000\n"
+"            }\n"
+"        ],\n"
+"        \"valid-lifetime\": 4000\n"
 "    }\n"
 };
 
index 7d89a64c764cba077177fc4f09e448fc8ab9e4bc..77c2adf71d5c07945bd6b7d88e374c6f484312e7 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2014-2017 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2014-2018 Internet Systems Consortium, Inc. ("ISC")
 //
 // This Source Code Form is subject to the terms of the Mozilla Public
 // License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -22,8 +22,11 @@ namespace dhcp {
 /// type.
 typedef uint32_t SubnetID;
 
+/// @brief Special value is used for storing/recognizing global host reservations.
 static const SubnetID SUBNET_ID_GLOBAL = 0;
+/// @brief The largest valid value for auto-generated subnet IDs.
 static const SubnetID SUBNET_ID_MAX = std::numeric_limits<uint32_t>::max()-1;
+/// @brief Special value used to signify that a SubnetID is "not set"
 static const SubnetID SUBNET_ID_UNUSED = std::numeric_limits<uint32_t>::max();
 
 /// @brief Exception thrown upon attempt to add subnet with an ID that belongs
index 5e6175cd3d3fefaf804e839813e025272db6b564..46653bb38222156f63ef828935a8b7fec7f93c4e 100644 (file)
@@ -312,19 +312,19 @@ public:
     /// @param id Identifier type.
     void testBasic4(const Host::IdentifierType& id);
 
-    /// @brief Test that Verifies that an IPv4 host reservation with
+    /// @brief Test that verifies that an IPv4 host reservation with
     /// options can have the global subnet id value.
     ///
     /// Uses gtest macros to report failures.
     void testGlobalSubnetId4();
 
-    /// @brief Test that Verifies that an IPv6 host reservation with
+    /// @brief Test that verifies that an IPv6 host reservation with
     /// options can have the global subnet id value.
     ///
     /// Uses gtest macros to report failures.
     void testGlobalSubnetId6();
 
-    /// @brief Test that Verifies that an IPv4 host reservation with
+    /// @brief Test that verifies that an IPv4 host reservation with
     /// options can have a max value for dhcp4_subnet id
     ///
     /// Uses gtest macros to report failures.
index a43e2913f4d1c9de8915bef985b5b36d940c04bb..48c177a6d9c52957fae3f97d0a286ace52a2125c 100644 (file)
@@ -1,22 +1,27 @@
-#line 2 "lexer.cc"
+#line 1 "lexer.cc"
 
-#line 4 "lexer.cc"
+#line 3 "lexer.cc"
 
 #define  YY_INT_ALIGNED short int
 
 /* A lexical scanner generated by flex */
 
 /* %not-for-header */
-
 /* %if-c-only */
 /* %if-not-reentrant */
 #define yy_create_buffer eval_create_buffer
 #define yy_delete_buffer eval_delete_buffer
-#define yy_flex_debug eval_flex_debug
+#define yy_scan_buffer eval_scan_buffer
+#define yy_scan_string eval_scan_string
+#define yy_scan_bytes eval_scan_bytes
 #define yy_init_buffer eval_init_buffer
 #define yy_flush_buffer eval_flush_buffer
 #define yy_load_buffer_state eval_load_buffer_state
 #define yy_switch_to_buffer eval_switch_to_buffer
+#define yypush_buffer_state evalpush_buffer_state
+#define yypop_buffer_state evalpop_buffer_state
+#define yyensure_buffer_stack evalensure_buffer_stack
+#define yy_flex_debug eval_flex_debug
 #define yyin evalin
 #define yyleng evalleng
 #define yylex evallex
@@ -35,8 +40,8 @@
 
 #define FLEX_SCANNER
 #define YY_FLEX_MAJOR_VERSION 2
-#define YY_FLEX_MINOR_VERSION 5
-#define YY_FLEX_SUBMINOR_VERSION 37
+#define YY_FLEX_MINOR_VERSION 6
+#define YY_FLEX_SUBMINOR_VERSION 4
 #if YY_FLEX_SUBMINOR_VERSION > 0
 #define FLEX_BETA
 #endif
 /* %endif */
 
 /* %if-c-only */
-    
+#ifdef yy_create_buffer
+#define eval_create_buffer_ALREADY_DEFINED
+#else
+#define yy_create_buffer eval_create_buffer
+#endif
+
+#ifdef yy_delete_buffer
+#define eval_delete_buffer_ALREADY_DEFINED
+#else
+#define yy_delete_buffer eval_delete_buffer
+#endif
+
+#ifdef yy_scan_buffer
+#define eval_scan_buffer_ALREADY_DEFINED
+#else
+#define yy_scan_buffer eval_scan_buffer
+#endif
+
+#ifdef yy_scan_string
+#define eval_scan_string_ALREADY_DEFINED
+#else
+#define yy_scan_string eval_scan_string
+#endif
+
+#ifdef yy_scan_bytes
+#define eval_scan_bytes_ALREADY_DEFINED
+#else
+#define yy_scan_bytes eval_scan_bytes
+#endif
+
+#ifdef yy_init_buffer
+#define eval_init_buffer_ALREADY_DEFINED
+#else
+#define yy_init_buffer eval_init_buffer
+#endif
+
+#ifdef yy_flush_buffer
+#define eval_flush_buffer_ALREADY_DEFINED
+#else
+#define yy_flush_buffer eval_flush_buffer
+#endif
+
+#ifdef yy_load_buffer_state
+#define eval_load_buffer_state_ALREADY_DEFINED
+#else
+#define yy_load_buffer_state eval_load_buffer_state
+#endif
+
+#ifdef yy_switch_to_buffer
+#define eval_switch_to_buffer_ALREADY_DEFINED
+#else
+#define yy_switch_to_buffer eval_switch_to_buffer
+#endif
+
+#ifdef yypush_buffer_state
+#define evalpush_buffer_state_ALREADY_DEFINED
+#else
+#define yypush_buffer_state evalpush_buffer_state
+#endif
+
+#ifdef yypop_buffer_state
+#define evalpop_buffer_state_ALREADY_DEFINED
+#else
+#define yypop_buffer_state evalpop_buffer_state
+#endif
+
+#ifdef yyensure_buffer_stack
+#define evalensure_buffer_stack_ALREADY_DEFINED
+#else
+#define yyensure_buffer_stack evalensure_buffer_stack
+#endif
+
+#ifdef yylex
+#define evallex_ALREADY_DEFINED
+#else
+#define yylex evallex
+#endif
+
+#ifdef yyrestart
+#define evalrestart_ALREADY_DEFINED
+#else
+#define yyrestart evalrestart
+#endif
+
+#ifdef yylex_init
+#define evallex_init_ALREADY_DEFINED
+#else
+#define yylex_init evallex_init
+#endif
+
+#ifdef yylex_init_extra
+#define evallex_init_extra_ALREADY_DEFINED
+#else
+#define yylex_init_extra evallex_init_extra
+#endif
+
+#ifdef yylex_destroy
+#define evallex_destroy_ALREADY_DEFINED
+#else
+#define yylex_destroy evallex_destroy
+#endif
+
+#ifdef yyget_debug
+#define evalget_debug_ALREADY_DEFINED
+#else
+#define yyget_debug evalget_debug
+#endif
+
+#ifdef yyset_debug
+#define evalset_debug_ALREADY_DEFINED
+#else
+#define yyset_debug evalset_debug
+#endif
+
+#ifdef yyget_extra
+#define evalget_extra_ALREADY_DEFINED
+#else
+#define yyget_extra evalget_extra
+#endif
+
+#ifdef yyset_extra
+#define evalset_extra_ALREADY_DEFINED
+#else
+#define yyset_extra evalset_extra
+#endif
+
+#ifdef yyget_in
+#define evalget_in_ALREADY_DEFINED
+#else
+#define yyget_in evalget_in
+#endif
+
+#ifdef yyset_in
+#define evalset_in_ALREADY_DEFINED
+#else
+#define yyset_in evalset_in
+#endif
+
+#ifdef yyget_out
+#define evalget_out_ALREADY_DEFINED
+#else
+#define yyget_out evalget_out
+#endif
+
+#ifdef yyset_out
+#define evalset_out_ALREADY_DEFINED
+#else
+#define yyset_out evalset_out
+#endif
+
+#ifdef yyget_leng
+#define evalget_leng_ALREADY_DEFINED
+#else
+#define yyget_leng evalget_leng
+#endif
+
+#ifdef yyget_text
+#define evalget_text_ALREADY_DEFINED
+#else
+#define yyget_text evalget_text
+#endif
+
+#ifdef yyget_lineno
+#define evalget_lineno_ALREADY_DEFINED
+#else
+#define yyget_lineno evalget_lineno
+#endif
+
+#ifdef yyset_lineno
+#define evalset_lineno_ALREADY_DEFINED
+#else
+#define yyset_lineno evalset_lineno
+#endif
+
+#ifdef yywrap
+#define evalwrap_ALREADY_DEFINED
+#else
+#define yywrap evalwrap
+#endif
+
 /* %endif */
 
+#ifdef yyalloc
+#define evalalloc_ALREADY_DEFINED
+#else
+#define yyalloc evalalloc
+#endif
+
+#ifdef yyrealloc
+#define evalrealloc_ALREADY_DEFINED
+#else
+#define yyrealloc evalrealloc
+#endif
+
+#ifdef yyfree
+#define evalfree_ALREADY_DEFINED
+#else
+#define yyfree evalfree
+#endif
+
 /* %if-c-only */
 
+#ifdef yytext
+#define evaltext_ALREADY_DEFINED
+#else
+#define yytext evaltext
+#endif
+
+#ifdef yyleng
+#define evalleng_ALREADY_DEFINED
+#else
+#define yyleng evalleng
+#endif
+
+#ifdef yyin
+#define evalin_ALREADY_DEFINED
+#else
+#define yyin evalin
+#endif
+
+#ifdef yyout
+#define evalout_ALREADY_DEFINED
+#else
+#define yyout evalout
+#endif
+
+#ifdef yy_flex_debug
+#define eval_flex_debug_ALREADY_DEFINED
+#else
+#define yy_flex_debug eval_flex_debug
+#endif
+
+#ifdef yylineno
+#define evallineno_ALREADY_DEFINED
+#else
+#define yylineno evallineno
+#endif
+
 /* %endif */
 
 /* First, we deal with  platform-specific or compiler-specific issues. */
@@ -127,50 +365,39 @@ typedef unsigned int flex_uint32_t;
 #define UINT32_MAX             (4294967295U)
 #endif
 
+#ifndef SIZE_MAX
+#define SIZE_MAX               (~(size_t)0)
+#endif
+
 #endif /* ! C99 */
 
 #endif /* ! FLEXINT_H */
 
 /* %endif */
 
+/* begin standard C++ headers. */
 /* %if-c++-only */
 /* %endif */
 
-#ifdef __cplusplus
-
-/* The "const" storage-class-modifier is valid. */
-#define YY_USE_CONST
-
-#else  /* ! __cplusplus */
-
-/* C99 requires __STDC__ to be defined as 1. */
-#if defined (__STDC__)
-
-#define YY_USE_CONST
-
-#endif /* defined (__STDC__) */
-#endif /* ! __cplusplus */
-
-#ifdef YY_USE_CONST
+/* TODO: this is always defined, so inline it */
 #define yyconst const
+
+#if defined(__GNUC__) && __GNUC__ >= 3
+#define yynoreturn __attribute__((__noreturn__))
 #else
-#define yyconst
+#define yynoreturn
 #endif
 
 /* %not-for-header */
-
 /* Returned upon end-of-file. */
 #define YY_NULL 0
 /* %ok-for-header */
 
 /* %not-for-header */
-
-/* Promotes a possibly negative, possibly signed char to an unsigned
- * integer for use as an array index.  If the signed char is negative,
- * we want to instead treat it as an 8-bit unsigned char, hence the
- * double cast.
+/* Promotes a possibly negative, possibly signed char to an
+ *   integer in range [0..255] for use as an array index.
  */
-#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
+#define YY_SC_TO_UI(c) ((YY_CHAR) (c))
 /* %ok-for-header */
 
 /* %if-reentrant */
@@ -185,25 +412,29 @@ typedef unsigned int flex_uint32_t;
  * definition of BEGIN.
  */
 #define BEGIN (yy_start) = 1 + 2 *
-
 /* Translate the current start state into a value that can be later handed
  * to BEGIN to return to the state.  The YYSTATE alias is for lex
  * compatibility.
  */
 #define YY_START (((yy_start) - 1) / 2)
 #define YYSTATE YY_START
-
 /* Action number for EOF rule of a given start state. */
 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
-
 /* Special action meaning "start processing a new file". */
-#define YY_NEW_FILE evalrestart(evalin  )
-
+#define YY_NEW_FILE yyrestart( yyin  )
 #define YY_END_OF_BUFFER_CHAR 0
 
 /* Size of default input buffer. */
 #ifndef YY_BUF_SIZE
+#ifdef __ia64__
+/* On IA-64, the buffer size is 16k, not 8k.
+ * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
+ * Ditto for the __ia64__ case accordingly.
+ */
+#define YY_BUF_SIZE 32768
+#else
 #define YY_BUF_SIZE 16384
+#endif /* __ia64__ */
 #endif
 
 /* The state buf must be large enough to hold one state per character in the main buffer.
@@ -221,48 +452,54 @@ typedef size_t yy_size_t;
 #endif
 
 /* %if-not-reentrant */
-extern yy_size_t evalleng;
+extern int yyleng;
 /* %endif */
 
 /* %if-c-only */
 /* %if-not-reentrant */
-extern FILE *evalin, *evalout;
+extern FILE *yyin, *yyout;
 /* %endif */
 /* %endif */
 
 #define EOB_ACT_CONTINUE_SCAN 0
 #define EOB_ACT_END_OF_FILE 1
 #define EOB_ACT_LAST_MATCH 2
-
+    
     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
      *       access to the local variable yy_act. Since yyless() is a macro, it would break
-     *       existing scanners that call yyless() from OUTSIDE evallex. 
+     *       existing scanners that call yyless() from OUTSIDE yylex.
      *       One obvious solution it to make yy_act a global. I tried that, and saw
-     *       a 5% performance hit in a non-evallineno scanner, because yy_act is
+     *       a 5% performance hit in a non-yylineno scanner, because yy_act is
      *       normally declared as a register variable-- so it is not worth it.
      */
     #define  YY_LESS_LINENO(n) \
             do { \
                 int yyl;\
-                for ( yyl = n; yyl < evalleng; ++yyl )\
-                    if ( evaltext[yyl] == '\n' )\
-                        --evallineno;\
+                for ( yyl = n; yyl < yyleng; ++yyl )\
+                    if ( yytext[yyl] == '\n' )\
+                        --yylineno;\
+            }while(0)
+    #define YY_LINENO_REWIND_TO(dst) \
+            do {\
+                const char *p;\
+                for ( p = yy_cp-1; p >= (dst); --p)\
+                    if ( *p == '\n' )\
+                        --yylineno;\
             }while(0)
     
 /* Return all but the first "n" matched characters back to the input stream. */
 #define yyless(n) \
        do \
                { \
-               /* Undo effects of setting up evaltext. */ \
+               /* Undo effects of setting up yytext. */ \
         int yyless_macro_arg = (n); \
         YY_LESS_LINENO(yyless_macro_arg);\
                *yy_cp = (yy_hold_char); \
                YY_RESTORE_YY_MORE_OFFSET \
                (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
-               YY_DO_BEFORE_ACTION; /* set up evaltext again */ \
+               YY_DO_BEFORE_ACTION; /* set up yytext again */ \
                } \
        while ( 0 )
-
 #define unput(c) yyunput( c, (yytext_ptr)  )
 
 #ifndef YY_STRUCT_YY_BUFFER_STATE
@@ -282,12 +519,12 @@ struct yy_buffer_state
        /* Size of input buffer in bytes, not including room for EOB
         * characters.
         */
-       yy_size_t yy_buf_size;
+       int yy_buf_size;
 
        /* Number of characters read into yy_ch_buf, not including EOB
         * characters.
         */
-       yy_size_t yy_n_chars;
+       int yy_n_chars;
 
        /* Whether we "own" the buffer - i.e., we know we created it,
         * and can realloc() it to grow it, and should free() it to
@@ -310,7 +547,7 @@ struct yy_buffer_state
 
     int yy_bs_lineno; /**< The line count. */
     int yy_bs_column; /**< The column count. */
-    
+
        /* Whether to try to fill the input buffer when we reach the
         * end of it.
         */
@@ -327,8 +564,8 @@ struct yy_buffer_state
         * possible backing-up.
         *
         * When we actually see the EOF, we change the status to "new"
-        * (via evalrestart()), so that the user can continue scanning by
-        * just pointing evalin at a new input file.
+        * (via yyrestart()), so that the user can continue scanning by
+        * just pointing yyin at a new input file.
         */
 #define YY_BUFFER_EOF_PENDING 2
 
@@ -337,13 +574,12 @@ struct yy_buffer_state
 
 /* %if-c-only Standard (non-C++) definition */
 /* %not-for-header */
-
 /* %if-not-reentrant */
 
 /* Stack of input buffers. */
 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
-static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
+static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
 /* %endif */
 /* %ok-for-header */
 
@@ -358,7 +594,6 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
                           : NULL)
-
 /* Same as previous macro, but useful when we know that the buffer stack is not
  * NULL or when we need an lvalue. For internal use only.
  */
@@ -368,115 +603,112 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
 
 /* %if-not-reentrant */
 /* %not-for-header */
-
-/* yy_hold_char holds the character lost when evaltext is formed. */
+/* yy_hold_char holds the character lost when yytext is formed. */
 static char yy_hold_char;
-static yy_size_t yy_n_chars;           /* number of characters read into yy_ch_buf */
-yy_size_t evalleng;
+static int yy_n_chars;         /* number of characters read into yy_ch_buf */
+int yyleng;
 
 /* Points to current character in buffer. */
-static char *yy_c_buf_p = (char *) 0;
+static char *yy_c_buf_p = NULL;
 static int yy_init = 0;                /* whether we need to initialize */
 static int yy_start = 0;       /* start state number */
 
-/* Flag which is used to allow evalwrap()'s to do buffer switches
- * instead of setting up a fresh evalin.  A bit of a hack ...
+/* Flag which is used to allow yywrap()'s to do buffer switches
+ * instead of setting up a fresh yyin.  A bit of a hack ...
  */
 static int yy_did_buffer_switch_on_eof;
 /* %ok-for-header */
 
 /* %endif */
 
-void evalrestart (FILE *input_file  );
-void eval_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
-YY_BUFFER_STATE eval_create_buffer (FILE *file,int size  );
-void eval_delete_buffer (YY_BUFFER_STATE b  );
-void eval_flush_buffer (YY_BUFFER_STATE b  );
-void evalpush_buffer_state (YY_BUFFER_STATE new_buffer  );
-void evalpop_buffer_state (void );
+void yyrestart ( FILE *input_file  );
+void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer  );
+YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size  );
+void yy_delete_buffer ( YY_BUFFER_STATE b  );
+void yy_flush_buffer ( YY_BUFFER_STATE b  );
+void yypush_buffer_state ( YY_BUFFER_STATE new_buffer  );
+void yypop_buffer_state ( void );
 
-static void evalensure_buffer_stack (void );
-static void eval_load_buffer_state (void );
-static void eval_init_buffer (YY_BUFFER_STATE b,FILE *file  );
+static void yyensure_buffer_stack ( void );
+static void yy_load_buffer_state ( void );
+static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file  );
+#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
 
-#define YY_FLUSH_BUFFER eval_flush_buffer(YY_CURRENT_BUFFER )
-
-YY_BUFFER_STATE eval_scan_buffer (char *base,yy_size_t size  );
-YY_BUFFER_STATE eval_scan_string (yyconst char *yy_str  );
-YY_BUFFER_STATE eval_scan_bytes (yyconst char *bytes,yy_size_t len  );
+YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size  );
+YY_BUFFER_STATE yy_scan_string ( const char *yy_str  );
+YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len  );
 
 /* %endif */
 
-void *evalalloc (yy_size_t  );
-void *evalrealloc (void *,yy_size_t  );
-void evalfree (void *  );
-
-#define yy_new_buffer eval_create_buffer
+void *yyalloc ( yy_size_t  );
+void *yyrealloc ( void *, yy_size_t  );
+void yyfree ( void *  );
 
+#define yy_new_buffer yy_create_buffer
 #define yy_set_interactive(is_interactive) \
        { \
        if ( ! YY_CURRENT_BUFFER ){ \
-        evalensure_buffer_stack (); \
+        yyensure_buffer_stack (); \
                YY_CURRENT_BUFFER_LVALUE =    \
-            eval_create_buffer(evalin,YY_BUF_SIZE ); \
+            yy_create_buffer( yyin, YY_BUF_SIZE ); \
        } \
        YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
        }
-
 #define yy_set_bol(at_bol) \
        { \
        if ( ! YY_CURRENT_BUFFER ){\
-        evalensure_buffer_stack (); \
+        yyensure_buffer_stack (); \
                YY_CURRENT_BUFFER_LVALUE =    \
-            eval_create_buffer(evalin,YY_BUF_SIZE ); \
+            yy_create_buffer( yyin, YY_BUF_SIZE ); \
        } \
        YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
        }
-
 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
 
-/* %% [1.0] evaltext/evalin/evalout/yy_state_type/evallineno etc. def's & init go here */
+/* %% [1.0] yytext/yyin/yyout/yy_state_type/yylineno etc. def's & init go here */
 /* Begin user sect3 */
 
-#define evalwrap() 1
+#define evalwrap() (/*CONSTCOND*/1)
 #define YY_SKIP_YYWRAP
 
 #define FLEX_DEBUG
+typedef flex_uint8_t YY_CHAR;
 
-typedef unsigned char YY_CHAR;
-
-FILE *evalin = (FILE *) 0, *evalout = (FILE *) 0;
+FILE *yyin = NULL, *yyout = NULL;
 
 typedef int yy_state_type;
 
-extern int evallineno;
+extern int yylineno;
+int yylineno = 1;
 
-int evallineno = 1;
+extern char *yytext;
+#ifdef yytext_ptr
+#undef yytext_ptr
+#endif
+#define yytext_ptr yytext
 
-extern char *evaltext;
-#define yytext_ptr evaltext
+/* %% [1.5] DFA */
 
 /* %if-c-only Standard (non-C++) definition */
 
-static yy_state_type yy_get_previous_state (void );
-static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
-static int yy_get_next_buffer (void );
-static void yy_fatal_error (yyconst char msg[]  );
+static yy_state_type yy_get_previous_state ( void );
+static yy_state_type yy_try_NUL_trans ( yy_state_type current_state  );
+static int yy_get_next_buffer ( void );
+static void yynoreturn yy_fatal_error ( const char* msg  );
 
 /* %endif */
 
 /* Done after the current pattern has been matched and before the
- * corresponding action - sets up evaltext.
+ * corresponding action - sets up yytext.
  */
 #define YY_DO_BEFORE_ACTION \
        (yytext_ptr) = yy_bp; \
-/* %% [2.0] code to fiddle evaltext and evalleng for yymore() goes here \ */\
-       evalleng = (size_t) (yy_cp - yy_bp); \
+/* %% [2.0] code to fiddle yytext and yyleng for yymore() goes here \ */\
+       yyleng = (int) (yy_cp - yy_bp); \
        (yy_hold_char) = *yy_cp; \
        *yy_cp = '\0'; \
-/* %% [3.0] code to copy yytext_ptr to evaltext[] goes here, if %array \ */\
+/* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\
        (yy_c_buf_p) = yy_cp;
-
 /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */
 #define YY_NUM_RULES 53
 #define YY_END_OF_BUFFER 54
@@ -487,7 +719,7 @@ struct yy_trans_info
        flex_int32_t yy_verify;
        flex_int32_t yy_nxt;
        };
-static yyconst flex_int16_t yy_acclist[291] =
+static const flex_int16_t yy_acclist[291] =
     {   0,
        54,   52,   53,    1,   52,   53,    2,   53,   52,   53,
        46,   52,   53,   47,   52,   53,   51,   52,   53,   50,
@@ -522,7 +754,7 @@ static yyconst flex_int16_t yy_acclist[291] =
     16390,   37,16390,16390,   36,16390,16390,16390,   34,16390
     } ;
 
-static yyconst flex_int16_t yy_accept[208] =
+static const flex_int16_t yy_accept[208] =
     {   0,
         1,    1,    1,    2,    4,    7,    9,   11,   14,   17,
        20,   23,   25,   28,   31,   34,   36,   38,   41,   44,
@@ -549,7 +781,7 @@ static yyconst flex_int16_t yy_accept[208] =
       284,  285,  287,  288,  289,  291,  291
     } ;
 
-static yyconst flex_int32_t yy_ec[256] =
+static const YY_CHAR yy_ec[256] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -581,7 +813,7 @@ static yyconst flex_int32_t yy_ec[256] =
         1,    1,    1,    1,    1
     } ;
 
-static yyconst flex_int32_t yy_meta[45] =
+static const YY_CHAR yy_meta[45] =
     {   0,
         1,    1,    2,    1,    1,    1,    1,    1,    1,    3,
         4,    4,    4,    4,    5,    1,    4,    1,    1,    1,
@@ -590,7 +822,7 @@ static yyconst flex_int32_t yy_meta[45] =
         1,    1,    1,    1
     } ;
 
-static yyconst flex_int16_t yy_base[212] =
+static const flex_int16_t yy_base[212] =
     {   0,
         0,    0,  319,  320,  316,  314,  312,  320,  320,  320,
       320,   34,  320,   39,   36,  300,  298,   81,  115,  320,
@@ -618,7 +850,7 @@ static yyconst flex_int16_t yy_base[212] =
       215
     } ;
 
-static yyconst flex_int16_t yy_def[212] =
+static const flex_int16_t yy_def[212] =
     {   0,
       206,    1,  206,  206,  206,  206,  207,  206,  206,  206,
       206,  206,  206,  206,   14,  208,  206,  206,   18,  206,
@@ -646,7 +878,7 @@ static yyconst flex_int16_t yy_def[212] =
       206
     } ;
 
-static yyconst flex_int16_t yy_nxt[365] =
+static const flex_int16_t yy_nxt[365] =
     {   0,
         4,    5,    6,    7,    8,    9,   10,   11,   12,   13,
        14,   15,   15,   15,   16,   17,   18,   19,   19,   20,
@@ -690,7 +922,7 @@ static yyconst flex_int16_t yy_nxt[365] =
       206,  206,  206,  206
     } ;
 
-static yyconst flex_int16_t yy_chk[365] =
+static const flex_int16_t yy_chk[365] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -735,23 +967,23 @@ static yyconst flex_int16_t yy_chk[365] =
     } ;
 
 /* Table of booleans, true if rule could match eol. */
-static yyconst flex_int32_t yy_rule_can_match_eol[54] =
+static const flex_int32_t yy_rule_can_match_eol[54] =
     {   0,
 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,     };
 
-extern int eval_flex_debug;
-int eval_flex_debug = 1;
+extern int yy_flex_debug;
+int yy_flex_debug = 1;
 
-static yyconst flex_int16_t yy_rule_linenum[53] =
+static const flex_int16_t yy_rule_linenum[53] =
     {   0,
-      105,  110,  116,  126,  132,  150,  157,  171,  172,  173,
-      174,  175,  176,  177,  178,  179,  180,  181,  182,  183,
-      184,  185,  186,  187,  188,  189,  190,  191,  192,  193,
-      194,  195,  196,  197,  198,  199,  200,  201,  202,  203,
-      204,  205,  206,  207,  208,  209,  210,  211,  212,  213,
-      214,  215
+      106,  111,  117,  127,  133,  151,  158,  172,  173,  174,
+      175,  176,  177,  178,  179,  180,  181,  182,  183,  184,
+      185,  186,  187,  188,  189,  190,  191,  192,  193,  194,
+      195,  196,  197,  198,  199,  200,  201,  202,  203,  204,
+      205,  206,  207,  208,  209,  210,  211,  212,  213,  214,
+      215,  216
     } ;
 
 static yy_state_type *yy_state_buf=0, *yy_state_ptr=0;
@@ -764,7 +996,7 @@ static int *yy_full_state;
 #define YY_TRAILING_HEAD_MASK 0x4000
 #define REJECT \
 { \
-*yy_cp = (yy_hold_char); /* undo effects of setting up evaltext */ \
+*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ \
 yy_cp = (yy_full_match); /* restore poss. backed-over text */ \
 (yy_lp) = (yy_full_lp); /* restore orig. accepting pos. */ \
 (yy_state_ptr) = (yy_full_state); /* restore orig. state */ \
@@ -776,9 +1008,9 @@ goto find_rule; \
 #define yymore() yymore_used_but_not_detected
 #define YY_MORE_ADJ 0
 #define YY_RESTORE_YY_MORE_OFFSET
-char *evaltext;
+char *yytext;
 #line 1 "lexer.ll"
-/* Copyright (C) 2015-2017 Internet Systems Consortium, Inc. ("ISC")
+/* Copyright (C) 2015-2018 Internet Systems Consortium, Inc. ("ISC")
 
    This Source Code Form is subject to the terms of the Mozilla Public
    License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -803,8 +1035,8 @@ char *evaltext;
    2.5.31 through 2.5.33): it generates code that does
    not conform to C89.  See Debian bug 333231
    <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=333231>. */
-# undef evalwrap
-# define evalwrap() 1
+# undef yywrap
+# define yywrap() 1
 
 /* The location of the current token. The lexer will keep updating it. This
    variable will be useful for logging errors. */
@@ -817,9 +1049,10 @@ namespace {
 
 /* To avoid the call to exit... oops! */
 #define YY_FATAL_ERROR(msg) isc::eval::EvalContext::fatal(msg)
+#line 1052 "lexer.cc"
 /* noyywrap disables automatic rewinding for the next file to parse. Since we
    always parse only a single string, there's no need to do any wraps. And
-   using evalwrap requires linking with -lfl, which provides the default evalwrap
+   using yywrap requires linking with -lfl, which provides the default yywrap
    implementation that always returns 1 anyway. */
 /* nounput simplifies the lexer, by removing support for putting a character
    back into the input stream. We never use such capability anyway. */
@@ -838,10 +1071,11 @@ namespace {
    incorrect inputs (e.g., IP addresses) which must be checked. */
 #line 80 "lexer.ll"
 /* This code run each time a pattern is matched. It updates the location
-   by moving it ahead by evalleng bytes. evalleng specifies the length of the
+   by moving it ahead by yyleng bytes. yyleng specifies the length of the
    currently matched token. */
 #define YY_USER_ACTION  loc.columns(evalleng);
-#line 845 "lexer.cc"
+#line 1077 "lexer.cc"
+#line 1078 "lexer.cc"
 
 #define INITIAL 0
 
@@ -865,7 +1099,7 @@ namespace {
 /* %if-reentrant */
 /* %if-c-only */
 
-static int yy_init_globals (void );
+static int yy_init_globals ( void );
 
 /* %endif */
 /* %if-reentrant */
@@ -875,31 +1109,31 @@ static int yy_init_globals (void );
 /* Accessor methods to globals.
    These are made visible to non-reentrant scanners for convenience. */
 
-int evallex_destroy (void );
+int yylex_destroy ( void );
 
-int evalget_debug (void );
+int yyget_debug ( void );
 
-void evalset_debug (int debug_flag  );
+void yyset_debug ( int debug_flag  );
 
-YY_EXTRA_TYPE evalget_extra (void );
+YY_EXTRA_TYPE yyget_extra ( void );
 
-void evalset_extra (YY_EXTRA_TYPE user_defined  );
+void yyset_extra ( YY_EXTRA_TYPE user_defined  );
 
-FILE *evalget_in (void );
+FILE *yyget_in ( void );
 
-void evalset_in  (FILE * in_str  );
+void yyset_in  ( FILE * _in_str  );
 
-FILE *evalget_out (void );
+FILE *yyget_out ( void );
 
-void evalset_out  (FILE * out_str  );
+void yyset_out  ( FILE * _out_str  );
 
-yy_size_t evalget_leng (void );
+                       int yyget_leng ( void );
 
-char *evalget_text (void );
+char *yyget_text ( void );
 
-int evalget_lineno (void );
+int yyget_lineno ( void );
 
-void evalset_lineno (int line_number  );
+void yyset_lineno ( int _line_number  );
 
 /* %if-bison-bridge */
 /* %endif */
@@ -910,34 +1144,35 @@ void evalset_lineno (int line_number  );
 
 #ifndef YY_SKIP_YYWRAP
 #ifdef __cplusplus
-extern "C" int evalwrap (void );
+extern "C" int yywrap ( void );
 #else
-extern int evalwrap (void );
+extern int yywrap ( void );
 #endif
 #endif
 
 /* %not-for-header */
-
+#ifndef YY_NO_UNPUT
+    
+#endif
 /* %ok-for-header */
 
 /* %endif */
 
 #ifndef yytext_ptr
-static void yy_flex_strncpy (char *,yyconst char *,int );
+static void yy_flex_strncpy ( char *, const char *, int );
 #endif
 
 #ifdef YY_NEED_STRLEN
-static int yy_flex_strlen (yyconst char * );
+static int yy_flex_strlen ( const char * );
 #endif
 
 #ifndef YY_NO_INPUT
 /* %if-c-only Standard (non-C++) definition */
 /* %not-for-header */
-
 #ifdef __cplusplus
-static int yyinput (void );
+static int yyinput ( void );
 #else
-static int input (void );
+static int input ( void );
 #endif
 /* %ok-for-header */
 
@@ -950,7 +1185,12 @@ static int input (void );
 
 /* Amount of stuff to slurp up with each read. */
 #ifndef YY_READ_BUF_SIZE
+#ifdef __ia64__
+/* On IA-64, the buffer size is 16k, not 8k */
+#define YY_READ_BUF_SIZE 16384
+#else
 #define YY_READ_BUF_SIZE 8192
+#endif /* __ia64__ */
 #endif
 
 /* Copy whatever the last rule matched to the standard output. */
@@ -959,7 +1199,7 @@ static int input (void );
 /* This used to be an fputs(), but since the string might contain NUL's,
  * we now use fwrite().
  */
-#define ECHO do { if (fwrite( evaltext, evalleng, 1, evalout )) {} } while (0)
+#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
 /* %endif */
 /* %if-c++-only C++ definition */
 /* %endif */
@@ -974,20 +1214,20 @@ static int input (void );
        if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
                { \
                int c = '*'; \
-               size_t n; \
+               int n; \
                for ( n = 0; n < max_size && \
-                            (c = getc( evalin )) != EOF && c != '\n'; ++n ) \
+                            (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
                        buf[n] = (char) c; \
                if ( c == '\n' ) \
                        buf[n++] = (char) c; \
-               if ( c == EOF && ferror( evalin ) ) \
+               if ( c == EOF && ferror( yyin ) ) \
                        YY_FATAL_ERROR( "input in flex scanner failed" ); \
                result = n; \
                } \
        else \
                { \
                errno=0; \
-               while ( (result = fread(buf, 1, max_size, evalin))==0 && ferror(evalin)) \
+               while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
                        { \
                        if( errno != EINTR) \
                                { \
@@ -995,7 +1235,7 @@ static int input (void );
                                break; \
                                } \
                        errno=0; \
-                       clearerr(evalin); \
+                       clearerr(yyin); \
                        } \
                }\
 \
@@ -1028,11 +1268,9 @@ static int input (void );
 
 /* %if-tables-serialization structures and prototypes */
 /* %not-for-header */
-
 /* %ok-for-header */
 
 /* %not-for-header */
-
 /* %tables-yydmap generated elements */
 /* %endif */
 /* end tables serialization structures and prototypes */
@@ -1046,15 +1284,15 @@ static int input (void );
 #define YY_DECL_IS_OURS 1
 /* %if-c-only Standard (non-C++) definition */
 
-extern int evallex (void);
+extern int yylex (void);
 
-#define YY_DECL int evallex (void)
+#define YY_DECL int yylex (void)
 /* %endif */
 /* %if-c++-only C++ definition */
 /* %endif */
 #endif /* !YY_DECL */
 
-/* Code executed at the beginning of each rule, after evaltext and evalleng
+/* Code executed at the beginning of each rule, after yytext and yyleng
  * have been set up.
  */
 #ifndef YY_USER_ACTION
@@ -1063,7 +1301,7 @@ extern int evallex (void);
 
 /* Code executed at the end of each rule. */
 #ifndef YY_BREAK
-#define YY_BREAK break;
+#define YY_BREAK /*LINTED*/break;
 #endif
 
 /* %% [6.0] YY_RULE_SETUP definition goes here */
@@ -1071,38 +1309,14 @@ extern int evallex (void);
        YY_USER_ACTION
 
 /* %not-for-header */
-
 /** The main scanner function which does all the work.
  */
 YY_DECL
 {
-       register yy_state_type yy_current_state;
-       register char *yy_cp, *yy_bp;
-       register int yy_act;
+       yy_state_type yy_current_state;
+       char *yy_cp, *yy_bp;
+       int yy_act;
     
-/* %% [7.0] user's declarations go here */
-#line 86 "lexer.ll"
-
-
-
-    /* Code run each time evallex is called. */
-    loc.step();
-
-    if (start_token_flag) {
-        start_token_flag = false;
-        switch (start_token_value) {
-        case EvalContext::PARSER_BOOL:
-            return isc::eval::EvalParser::make_TOPLEVEL_BOOL(loc);
-        default:
-        case EvalContext::PARSER_STRING:
-            return isc::eval::EvalParser::make_TOPLEVEL_STRING(loc);
-        }
-    }
-
-
-
-#line 1105 "lexer.cc"
-
        if ( !(yy_init) )
                {
                (yy_init) = 1;
@@ -1113,42 +1327,67 @@ YY_DECL
 
         /* Create the reject buffer large enough to save one state per allowed character. */
         if ( ! (yy_state_buf) )
-            (yy_state_buf) = (yy_state_type *)evalalloc(YY_STATE_BUF_SIZE  );
+            (yy_state_buf) = (yy_state_type *)yyalloc(YY_STATE_BUF_SIZE  );
             if ( ! (yy_state_buf) )
-                YY_FATAL_ERROR( "out of dynamic memory in evallex()" );
+                YY_FATAL_ERROR( "out of dynamic memory in yylex()" );
 
                if ( ! (yy_start) )
                        (yy_start) = 1; /* first start state */
 
-               if ( ! evalin )
+               if ( ! yyin )
 /* %if-c-only */
-                       evalin = stdin;
+                       yyin = stdin;
 /* %endif */
 /* %if-c++-only */
 /* %endif */
 
-               if ( ! evalout )
+               if ( ! yyout )
 /* %if-c-only */
-                       evalout = stdout;
+                       yyout = stdout;
 /* %endif */
 /* %if-c++-only */
 /* %endif */
 
                if ( ! YY_CURRENT_BUFFER ) {
-                       evalensure_buffer_stack ();
+                       yyensure_buffer_stack ();
                        YY_CURRENT_BUFFER_LVALUE =
-                               eval_create_buffer(evalin,YY_BUF_SIZE );
+                               yy_create_buffer( yyin, YY_BUF_SIZE );
                }
 
-               eval_load_buffer_state( );
+               yy_load_buffer_state(  );
                }
 
-       while ( 1 )             /* loops until end-of-file is reached */
+       {
+/* %% [7.0] user's declarations go here */
+#line 86 "lexer.ll"
+
+
+
+#line 90 "lexer.ll"
+    /* Code run each time evallex is called. */
+    loc.step();
+
+    if (start_token_flag) {
+        start_token_flag = false;
+        switch (start_token_value) {
+        case EvalContext::PARSER_BOOL:
+            return isc::eval::EvalParser::make_TOPLEVEL_BOOL(loc);
+        default:
+        case EvalContext::PARSER_STRING:
+            return isc::eval::EvalParser::make_TOPLEVEL_STRING(loc);
+        }
+    }
+
+
+
+#line 1383 "lexer.cc"
+
+       while ( /*CONSTCOND*/1 )                /* loops until end-of-file is reached */
                {
 /* %% [8.0] yymore()-related code goes here */
                yy_cp = (yy_c_buf_p);
 
-               /* Support of evaltext. */
+               /* Support of yytext. */
                *yy_cp = (yy_hold_char);
 
                /* yy_bp points to the position in yy_ch_buf of the start of
@@ -1165,14 +1404,14 @@ YY_DECL
 yy_match:
                do
                        {
-                       register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
+                       YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
                        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                                {
                                yy_current_state = (int) yy_def[yy_current_state];
                                if ( yy_current_state >= 207 )
-                                       yy_c = yy_meta[(unsigned int) yy_c];
+                                       yy_c = yy_meta[yy_c];
                                }
-                       yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+                       yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
                        *(yy_state_ptr)++ = yy_current_state;
                        ++yy_cp;
                        }
@@ -1220,31 +1459,31 @@ find_rule: /* we branch to this label when backing up */
 
                YY_DO_BEFORE_ACTION;
 
-/* %% [11.0] code for evallineno update goes here */
+/* %% [11.0] code for yylineno update goes here */
 
                if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
                        {
                        int yyl;
-                       for ( yyl = 0; yyl < evalleng; ++yyl )
-                               if ( evaltext[yyl] == '\n' )
-                                          
-    evallineno++;
+                       for ( yyl = 0; yyl < yyleng; ++yyl )
+                               if ( yytext[yyl] == '\n' )
+                                       
+    yylineno++;
 ;
                        }
 
 do_action:     /* This label is used only to access EOF actions. */
 
 /* %% [12.0] debug code goes here */
-               if ( eval_flex_debug )
+               if ( yy_flex_debug )
                        {
                        if ( yy_act == 0 )
                                fprintf( stderr, "--scanner backing up\n" );
                        else if ( yy_act < 53 )
                                fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
-                                        (long)yy_rule_linenum[yy_act], evaltext );
+                                        (long)yy_rule_linenum[yy_act], yytext );
                        else if ( yy_act == 53 )
                                fprintf( stderr, "--accepting default rule (\"%s\")\n",
-                                        evaltext );
+                                        yytext );
                        else if ( yy_act == 54 )
                                fprintf( stderr, "--(end of buffer or a NUL)\n" );
                        else
@@ -1256,7 +1495,7 @@ do_action:        /* This label is used only to access EOF actions. */
 /* %% [13.0] actions go here */
 case 1:
 YY_RULE_SETUP
-#line 105 "lexer.ll"
+#line 106 "lexer.ll"
 {
     /* Ok, we found a with space. Let's ignore it and update loc variable. */
     loc.step();
@@ -1265,7 +1504,7 @@ YY_RULE_SETUP
 case 2:
 /* rule 2 can match eol */
 YY_RULE_SETUP
-#line 110 "lexer.ll"
+#line 111 "lexer.ll"
 {
     /* Newline found. Let's update the location and continue. */
     loc.lines(evalleng);
@@ -1274,7 +1513,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 116 "lexer.ll"
+#line 117 "lexer.ll"
 {
     /* A string has been matched. It contains the actual string and single quotes.
        We need to get those quotes out of the way and just use its content, e.g.
@@ -1287,7 +1526,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 126 "lexer.ll"
+#line 127 "lexer.ll"
 {
     /* A hex string has been matched. It contains the '0x' or '0X' header
        followed by at least one hexadecimal digit. */
@@ -1296,7 +1535,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 132 "lexer.ll"
+#line 133 "lexer.ll"
 {
     /* An integer was found. */
     std::string tmp(evaltext);
@@ -1318,7 +1557,7 @@ YY_RULE_SETUP
 case 6:
 /* rule 6 can match eol */
 YY_RULE_SETUP
-#line 150 "lexer.ll"
+#line 151 "lexer.ll"
 {
     /* This string specifies option name starting with a letter
        and further containing letters, digits, hyphens and
@@ -1328,7 +1567,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 157 "lexer.ll"
+#line 158 "lexer.ll"
 {
     /* IPv4 or IPv6 address */
     std::string tmp(evaltext);
@@ -1345,239 +1584,239 @@ YY_RULE_SETUP
        YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 171 "lexer.ll"
+#line 172 "lexer.ll"
 return isc::eval::EvalParser::make_EQUAL(loc);
        YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 172 "lexer.ll"
+#line 173 "lexer.ll"
 return isc::eval::EvalParser::make_OPTION(loc);
        YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 173 "lexer.ll"
+#line 174 "lexer.ll"
 return isc::eval::EvalParser::make_RELAY4(loc);
        YY_BREAK
 case 11:
 YY_RULE_SETUP
-#line 174 "lexer.ll"
+#line 175 "lexer.ll"
 return isc::eval::EvalParser::make_RELAY6(loc);
        YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 175 "lexer.ll"
+#line 176 "lexer.ll"
 return isc::eval::EvalParser::make_PEERADDR(loc);
        YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 176 "lexer.ll"
+#line 177 "lexer.ll"
 return isc::eval::EvalParser::make_LINKADDR(loc);
        YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 177 "lexer.ll"
+#line 178 "lexer.ll"
 return isc::eval::EvalParser::make_TEXT(loc);
        YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 178 "lexer.ll"
+#line 179 "lexer.ll"
 return isc::eval::EvalParser::make_HEX(loc);
        YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 179 "lexer.ll"
+#line 180 "lexer.ll"
 return isc::eval::EvalParser::make_EXISTS(loc);
        YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 180 "lexer.ll"
+#line 181 "lexer.ll"
 return isc::eval::EvalParser::make_PKT(loc);
        YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 181 "lexer.ll"
+#line 182 "lexer.ll"
 return isc::eval::EvalParser::make_IFACE(loc);
        YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 182 "lexer.ll"
+#line 183 "lexer.ll"
 return isc::eval::EvalParser::make_SRC(loc);
        YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 183 "lexer.ll"
+#line 184 "lexer.ll"
 return isc::eval::EvalParser::make_DST(loc);
        YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 184 "lexer.ll"
+#line 185 "lexer.ll"
 return isc::eval::EvalParser::make_LEN(loc);
        YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 185 "lexer.ll"
+#line 186 "lexer.ll"
 return isc::eval::EvalParser::make_PKT4(loc);
        YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 186 "lexer.ll"
+#line 187 "lexer.ll"
 return isc::eval::EvalParser::make_CHADDR(loc);
        YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 187 "lexer.ll"
+#line 188 "lexer.ll"
 return isc::eval::EvalParser::make_HLEN(loc);
        YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 188 "lexer.ll"
+#line 189 "lexer.ll"
 return isc::eval::EvalParser::make_HTYPE(loc);
        YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 189 "lexer.ll"
+#line 190 "lexer.ll"
 return isc::eval::EvalParser::make_CIADDR(loc);
        YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 190 "lexer.ll"
+#line 191 "lexer.ll"
 return isc::eval::EvalParser::make_GIADDR(loc);
        YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 191 "lexer.ll"
+#line 192 "lexer.ll"
 return isc::eval::EvalParser::make_YIADDR(loc);
        YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 192 "lexer.ll"
+#line 193 "lexer.ll"
 return isc::eval::EvalParser::make_SIADDR(loc);
        YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 193 "lexer.ll"
+#line 194 "lexer.ll"
 return isc::eval::EvalParser::make_PKT6(loc);
        YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 194 "lexer.ll"
+#line 195 "lexer.ll"
 return isc::eval::EvalParser::make_MSGTYPE(loc);
        YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 195 "lexer.ll"
+#line 196 "lexer.ll"
 return isc::eval::EvalParser::make_TRANSID(loc);
        YY_BREAK
 case 33:
 YY_RULE_SETUP
-#line 196 "lexer.ll"
+#line 197 "lexer.ll"
 return isc::eval::EvalParser::make_VENDOR(loc);
        YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 197 "lexer.ll"
+#line 198 "lexer.ll"
 return isc::eval::EvalParser::make_VENDOR_CLASS(loc);
        YY_BREAK
 case 35:
 YY_RULE_SETUP
-#line 198 "lexer.ll"
+#line 199 "lexer.ll"
 return isc::eval::EvalParser::make_DATA(loc);
        YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 199 "lexer.ll"
+#line 200 "lexer.ll"
 return isc::eval::EvalParser::make_ENTERPRISE(loc);
        YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 200 "lexer.ll"
+#line 201 "lexer.ll"
 return isc::eval::EvalParser::make_SUBSTRING(loc);
        YY_BREAK
 case 38:
 YY_RULE_SETUP
-#line 201 "lexer.ll"
+#line 202 "lexer.ll"
 return isc::eval::EvalParser::make_ALL(loc);
        YY_BREAK
 case 39:
 YY_RULE_SETUP
-#line 202 "lexer.ll"
+#line 203 "lexer.ll"
 return isc::eval::EvalParser::make_CONCAT(loc);
        YY_BREAK
 case 40:
 YY_RULE_SETUP
-#line 203 "lexer.ll"
+#line 204 "lexer.ll"
 return isc::eval::EvalParser::make_IFELSE(loc);
        YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 204 "lexer.ll"
+#line 205 "lexer.ll"
 return isc::eval::EvalParser::make_NOT(loc);
        YY_BREAK
 case 42:
 YY_RULE_SETUP
-#line 205 "lexer.ll"
+#line 206 "lexer.ll"
 return isc::eval::EvalParser::make_AND(loc);
        YY_BREAK
 case 43:
 YY_RULE_SETUP
-#line 206 "lexer.ll"
+#line 207 "lexer.ll"
 return isc::eval::EvalParser::make_OR(loc);
        YY_BREAK
 case 44:
 YY_RULE_SETUP
-#line 207 "lexer.ll"
+#line 208 "lexer.ll"
 return isc::eval::EvalParser::make_MEMBER(loc);
        YY_BREAK
 case 45:
 YY_RULE_SETUP
-#line 208 "lexer.ll"
+#line 209 "lexer.ll"
 return isc::eval::EvalParser::make_DOT(loc);
        YY_BREAK
 case 46:
 YY_RULE_SETUP
-#line 209 "lexer.ll"
+#line 210 "lexer.ll"
 return isc::eval::EvalParser::make_LPAREN(loc);
        YY_BREAK
 case 47:
 YY_RULE_SETUP
-#line 210 "lexer.ll"
+#line 211 "lexer.ll"
 return isc::eval::EvalParser::make_RPAREN(loc);
        YY_BREAK
 case 48:
 YY_RULE_SETUP
-#line 211 "lexer.ll"
+#line 212 "lexer.ll"
 return isc::eval::EvalParser::make_LBRACKET(loc);
        YY_BREAK
 case 49:
 YY_RULE_SETUP
-#line 212 "lexer.ll"
+#line 213 "lexer.ll"
 return isc::eval::EvalParser::make_RBRACKET(loc);
        YY_BREAK
 case 50:
 YY_RULE_SETUP
-#line 213 "lexer.ll"
+#line 214 "lexer.ll"
 return isc::eval::EvalParser::make_COMA(loc);
        YY_BREAK
 case 51:
 YY_RULE_SETUP
-#line 214 "lexer.ll"
+#line 215 "lexer.ll"
 return isc::eval::EvalParser::make_ANY(loc);
        YY_BREAK
 case 52:
 YY_RULE_SETUP
-#line 215 "lexer.ll"
+#line 216 "lexer.ll"
 driver.error (loc, "Invalid character: " + std::string(evaltext));
        YY_BREAK
 case YY_STATE_EOF(INITIAL):
-#line 216 "lexer.ll"
+#line 217 "lexer.ll"
 return isc::eval::EvalParser::make_END(loc);
        YY_BREAK
 case 53:
 YY_RULE_SETUP
-#line 217 "lexer.ll"
+#line 218 "lexer.ll"
 ECHO;
        YY_BREAK
-#line 1581 "lexer.cc"
+#line 1819 "lexer.cc"
 
        case YY_END_OF_BUFFER:
                {
@@ -1592,15 +1831,19 @@ ECHO;
                        {
                        /* We're scanning a new file or input source.  It's
                         * possible that this happened because the user
-                        * just pointed evalin at a new source and called
-                        * evallex().  If so, then we have to assure
+                        * just pointed yyin at a new source and called
+                        * yylex().  If so, then we have to assure
                         * consistency between YY_CURRENT_BUFFER and our
                         * globals.  Here is the right place to do so, because
                         * this is the first action (other than possibly a
                         * back-up) that will match for the new input source.
                         */
                        (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
-                       YY_CURRENT_BUFFER_LVALUE->yy_input_file = evalin;
+/* %if-c-only */
+                       YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
+/* %endif */
+/* %if-c++-only */
+/* %endif */
                        YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
                        }
 
@@ -1654,11 +1897,11 @@ ECHO;
                                {
                                (yy_did_buffer_switch_on_eof) = 0;
 
-                               if ( evalwrap( ) )
+                               if ( yywrap(  ) )
                                        {
                                        /* Note: because we've taken care in
                                         * yy_get_next_buffer() to have set up
-                                        * evaltext, we can now set up
+                                        * yytext, we can now set up
                                         * yy_c_buf_p so that if some total
                                         * hoser (like flex itself) wants to
                                         * call the scanner after we return the
@@ -1707,12 +1950,12 @@ ECHO;
                        "fatal flex scanner internal error--no action found" );
        } /* end of action switch */
                } /* end of scanning one token */
-} /* end of evallex */
+       } /* end of user's declarations */
+} /* end of yylex */
 /* %ok-for-header */
 
 /* %if-c++-only */
 /* %not-for-header */
-
 /* %ok-for-header */
 
 /* %endif */
@@ -1730,9 +1973,9 @@ static int yy_get_next_buffer (void)
 /* %if-c++-only */
 /* %endif */
 {
-       register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
-       register char *source = (yytext_ptr);
-       register int number_to_move, i;
+       char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+       char *source = (yytext_ptr);
+       int number_to_move, i;
        int ret_val;
 
        if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
@@ -1761,7 +2004,7 @@ static int yy_get_next_buffer (void)
        /* Try to read more data. */
 
        /* First move last chars to start of buffer. */
-       number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
+       number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
 
        for ( i = 0; i < number_to_move; ++i )
                *(dest++) = *(source++);
@@ -1774,7 +2017,7 @@ static int yy_get_next_buffer (void)
 
        else
                {
-                       yy_size_t num_to_read =
+                       int num_to_read =
                        YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
 
                while ( num_to_read <= 0 )
@@ -1800,7 +2043,7 @@ static int yy_get_next_buffer (void)
                if ( number_to_move == YY_MORE_ADJ )
                        {
                        ret_val = EOB_ACT_END_OF_FILE;
-                       evalrestart(evalin  );
+                       yyrestart( yyin  );
                        }
 
                else
@@ -1814,12 +2057,15 @@ static int yy_get_next_buffer (void)
        else
                ret_val = EOB_ACT_CONTINUE_SCAN;
 
-       if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
+       if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
                /* Extend the array by 50%, plus the number we really need. */
-               yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
-               YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) evalrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
+               int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
+               YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
+                       (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size  );
                if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
                        YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
+               /* "- 2" to take care of EOB's */
+               YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
        }
 
        (yy_n_chars) += number_to_move;
@@ -1835,14 +2081,13 @@ static int yy_get_next_buffer (void)
 
 /* %if-c-only */
 /* %not-for-header */
-
     static yy_state_type yy_get_previous_state (void)
 /* %endif */
 /* %if-c++-only */
 /* %endif */
 {
-       register yy_state_type yy_current_state;
-       register char *yy_cp;
+       yy_state_type yy_current_state;
+       char *yy_cp;
     
 /* %% [15.0] code to get the start state into yy_current_state goes here */
        yy_current_state = (yy_start);
@@ -1853,14 +2098,14 @@ static int yy_get_next_buffer (void)
        for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
                {
 /* %% [16.0] code to find the next state goes here */
-               register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
+               YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
                while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                        {
                        yy_current_state = (int) yy_def[yy_current_state];
                        if ( yy_current_state >= 207 )
-                               yy_c = yy_meta[(unsigned int) yy_c];
+                               yy_c = yy_meta[yy_c];
                        }
-               yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+               yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
                *(yy_state_ptr)++ = yy_current_state;
                }
 
@@ -1878,17 +2123,17 @@ static int yy_get_next_buffer (void)
 /* %if-c++-only */
 /* %endif */
 {
-       register int yy_is_jam;
+       int yy_is_jam;
     /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */
 
-       register YY_CHAR yy_c = 1;
+       YY_CHAR yy_c = 1;
        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                {
                yy_current_state = (int) yy_def[yy_current_state];
                if ( yy_current_state >= 207 )
-                       yy_c = yy_meta[(unsigned int) yy_c];
+                       yy_c = yy_meta[yy_c];
                }
-       yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+       yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
        yy_is_jam = (yy_current_state == 206);
        if ( ! yy_is_jam )
                *(yy_state_ptr)++ = yy_current_state;
@@ -1896,9 +2141,11 @@ static int yy_get_next_buffer (void)
                return yy_is_jam ? 0 : yy_current_state;
 }
 
+#ifndef YY_NO_UNPUT
 /* %if-c-only */
 
 /* %endif */
+#endif
 
 /* %if-c-only */
 #ifndef YY_NO_INPUT
@@ -1928,7 +2175,7 @@ static int yy_get_next_buffer (void)
 
                else
                        { /* need more input */
-                       yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
+                       int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
                        ++(yy_c_buf_p);
 
                        switch ( yy_get_next_buffer(  ) )
@@ -1945,14 +2192,14 @@ static int yy_get_next_buffer (void)
                                         */
 
                                        /* Reset buffer status. */
-                                       evalrestart(evalin );
+                                       yyrestart( yyin );
 
                                        /*FALLTHROUGH*/
 
                                case EOB_ACT_END_OF_FILE:
                                        {
-                                       if ( evalwrap( ) )
-                                               return EOF;
+                                       if ( yywrap(  ) )
+                                               return 0;
 
                                        if ( ! (yy_did_buffer_switch_on_eof) )
                                                YY_NEW_FILE;
@@ -1971,13 +2218,13 @@ static int yy_get_next_buffer (void)
                }
 
        c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
-       *(yy_c_buf_p) = '\0';   /* preserve evaltext */
+       *(yy_c_buf_p) = '\0';   /* preserve yytext */
        (yy_hold_char) = *++(yy_c_buf_p);
 
-/* %% [19.0] update BOL and evallineno */
+/* %% [19.0] update BOL and yylineno */
        if ( c == '\n' )
-                  
-    evallineno++;
+               
+    yylineno++;
 ;
 
        return c;
@@ -1992,28 +2239,31 @@ static int yy_get_next_buffer (void)
  * @note This function does not reset the start condition to @c INITIAL .
  */
 /* %if-c-only */
-    void evalrestart  (FILE * input_file )
+    void yyrestart  (FILE * input_file )
 /* %endif */
 /* %if-c++-only */
 /* %endif */
 {
     
        if ( ! YY_CURRENT_BUFFER ){
-        evalensure_buffer_stack ();
+        yyensure_buffer_stack ();
                YY_CURRENT_BUFFER_LVALUE =
-            eval_create_buffer(evalin,YY_BUF_SIZE );
+            yy_create_buffer( yyin, YY_BUF_SIZE );
        }
 
-       eval_init_buffer(YY_CURRENT_BUFFER,input_file );
-       eval_load_buffer_state( );
+       yy_init_buffer( YY_CURRENT_BUFFER, input_file );
+       yy_load_buffer_state(  );
 }
 
+/* %if-c++-only */
+/* %endif */
+
 /** Switch to a different input buffer.
  * @param new_buffer The new input buffer.
  * 
  */
 /* %if-c-only */
-    void eval_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
+    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
 /* %endif */
 /* %if-c++-only */
 /* %endif */
@@ -2021,10 +2271,10 @@ static int yy_get_next_buffer (void)
     
        /* TODO. We should be able to replace this entire function body
         * with
-        *              evalpop_buffer_state();
-        *              evalpush_buffer_state(new_buffer);
+        *              yypop_buffer_state();
+        *              yypush_buffer_state(new_buffer);
      */
-       evalensure_buffer_stack ();
+       yyensure_buffer_stack ();
        if ( YY_CURRENT_BUFFER == new_buffer )
                return;
 
@@ -2037,25 +2287,29 @@ static int yy_get_next_buffer (void)
                }
 
        YY_CURRENT_BUFFER_LVALUE = new_buffer;
-       eval_load_buffer_state( );
+       yy_load_buffer_state(  );
 
        /* We don't actually know whether we did this switch during
-        * EOF (evalwrap()) processing, but the only time this flag
-        * is looked at is after evalwrap() is called, so it's safe
+        * EOF (yywrap()) processing, but the only time this flag
+        * is looked at is after yywrap() is called, so it's safe
         * to go ahead and always set it.
         */
        (yy_did_buffer_switch_on_eof) = 1;
 }
 
 /* %if-c-only */
-static void eval_load_buffer_state  (void)
+static void yy_load_buffer_state  (void)
 /* %endif */
 /* %if-c++-only */
 /* %endif */
 {
        (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
        (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
-       evalin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
+/* %if-c-only */
+       yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
+/* %endif */
+/* %if-c++-only */
+/* %endif */
        (yy_hold_char) = *(yy_c_buf_p);
 }
 
@@ -2066,39 +2320,42 @@ static void eval_load_buffer_state  (void)
  * @return the allocated buffer state.
  */
 /* %if-c-only */
-    YY_BUFFER_STATE eval_create_buffer  (FILE * file, int  size )
+    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
 /* %endif */
 /* %if-c++-only */
 /* %endif */
 {
        YY_BUFFER_STATE b;
     
-       b = (YY_BUFFER_STATE) evalalloc(sizeof( struct yy_buffer_state )  );
+       b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  );
        if ( ! b )
-               YY_FATAL_ERROR( "out of dynamic memory in eval_create_buffer()" );
+               YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
 
        b->yy_buf_size = size;
 
        /* yy_ch_buf has to be 2 characters longer than the size given because
         * we need to put in 2 end-of-buffer characters.
         */
-       b->yy_ch_buf = (char *) evalalloc(b->yy_buf_size + 2  );
+       b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2)  );
        if ( ! b->yy_ch_buf )
-               YY_FATAL_ERROR( "out of dynamic memory in eval_create_buffer()" );
+               YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
 
        b->yy_is_our_buffer = 1;
 
-       eval_init_buffer(b,file );
+       yy_init_buffer( b, file );
 
        return b;
 }
 
+/* %if-c++-only */
+/* %endif */
+
 /** Destroy the buffer.
- * @param b a buffer created with eval_create_buffer()
+ * @param b a buffer created with yy_create_buffer()
  * 
  */
 /* %if-c-only */
-    void eval_delete_buffer (YY_BUFFER_STATE  b )
+    void yy_delete_buffer (YY_BUFFER_STATE  b )
 /* %endif */
 /* %if-c++-only */
 /* %endif */
@@ -2111,17 +2368,17 @@ static void eval_load_buffer_state  (void)
                YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
 
        if ( b->yy_is_our_buffer )
-               evalfree((void *) b->yy_ch_buf  );
+               yyfree( (void *) b->yy_ch_buf  );
 
-       evalfree((void *) b  );
+       yyfree( (void *) b  );
 }
 
 /* Initializes or reinitializes a buffer.
  * This function is sometimes called more than once on the same buffer,
- * such as during a evalrestart() or at EOF.
+ * such as during a yyrestart() or at EOF.
  */
 /* %if-c-only */
-    static void eval_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
+    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
 /* %endif */
 /* %if-c++-only */
 /* %endif */
@@ -2129,13 +2386,17 @@ static void eval_load_buffer_state  (void)
 {
        int oerrno = errno;
     
-       eval_flush_buffer(b );
+       yy_flush_buffer( b );
 
+/* %if-c-only */
        b->yy_input_file = file;
+/* %endif */
+/* %if-c++-only */
+/* %endif */
        b->yy_fill_buffer = 1;
 
-    /* If b is the current buffer, then eval_init_buffer was _probably_
-     * called from evalrestart() or through yy_get_next_buffer.
+    /* If b is the current buffer, then yy_init_buffer was _probably_
+     * called from yyrestart() or through yy_get_next_buffer.
      * In that case, we don't want to reset the lineno or column.
      */
     if (b != YY_CURRENT_BUFFER){
@@ -2158,7 +2419,7 @@ static void eval_load_buffer_state  (void)
  * 
  */
 /* %if-c-only */
-    void eval_flush_buffer (YY_BUFFER_STATE  b )
+    void yy_flush_buffer (YY_BUFFER_STATE  b )
 /* %endif */
 /* %if-c++-only */
 /* %endif */
@@ -2181,7 +2442,7 @@ static void eval_load_buffer_state  (void)
        b->yy_buffer_status = YY_BUFFER_NEW;
 
        if ( b == YY_CURRENT_BUFFER )
-               eval_load_buffer_state( );
+               yy_load_buffer_state(  );
 }
 
 /* %if-c-or-c++ */
@@ -2192,7 +2453,7 @@ static void eval_load_buffer_state  (void)
  *  
  */
 /* %if-c-only */
-void evalpush_buffer_state (YY_BUFFER_STATE new_buffer )
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
 /* %endif */
 /* %if-c++-only */
 /* %endif */
@@ -2200,9 +2461,9 @@ void evalpush_buffer_state (YY_BUFFER_STATE new_buffer )
        if (new_buffer == NULL)
                return;
 
-       evalensure_buffer_stack();
+       yyensure_buffer_stack();
 
-       /* This block is copied from eval_switch_to_buffer. */
+       /* This block is copied from yy_switch_to_buffer. */
        if ( YY_CURRENT_BUFFER )
                {
                /* Flush out information for old buffer. */
@@ -2216,8 +2477,8 @@ void evalpush_buffer_state (YY_BUFFER_STATE new_buffer )
                (yy_buffer_stack_top)++;
        YY_CURRENT_BUFFER_LVALUE = new_buffer;
 
-       /* copied from eval_switch_to_buffer. */
-       eval_load_buffer_state( );
+       /* copied from yy_switch_to_buffer. */
+       yy_load_buffer_state(  );
        (yy_did_buffer_switch_on_eof) = 1;
 }
 /* %endif */
@@ -2228,7 +2489,7 @@ void evalpush_buffer_state (YY_BUFFER_STATE new_buffer )
  *  
  */
 /* %if-c-only */
-void evalpop_buffer_state (void)
+void yypop_buffer_state (void)
 /* %endif */
 /* %if-c++-only */
 /* %endif */
@@ -2236,13 +2497,13 @@ void evalpop_buffer_state (void)
        if (!YY_CURRENT_BUFFER)
                return;
 
-       eval_delete_buffer(YY_CURRENT_BUFFER );
+       yy_delete_buffer(YY_CURRENT_BUFFER );
        YY_CURRENT_BUFFER_LVALUE = NULL;
        if ((yy_buffer_stack_top) > 0)
                --(yy_buffer_stack_top);
 
        if (YY_CURRENT_BUFFER) {
-               eval_load_buffer_state( );
+               yy_load_buffer_state(  );
                (yy_did_buffer_switch_on_eof) = 1;
        }
 }
@@ -2253,7 +2514,7 @@ void evalpop_buffer_state (void)
  *  Guarantees space for at least one push.
  */
 /* %if-c-only */
-static void evalensure_buffer_stack (void)
+static void yyensure_buffer_stack (void)
 /* %endif */
 /* %if-c++-only */
 /* %endif */
@@ -2266,15 +2527,15 @@ static void evalensure_buffer_stack (void)
                 * scanner will even need a stack. We use 2 instead of 1 to avoid an
                 * immediate realloc on the next call.
          */
-               num_to_alloc = 1;
-               (yy_buffer_stack) = (struct yy_buffer_state**)evalalloc
+      num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
+               (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
                                                                (num_to_alloc * sizeof(struct yy_buffer_state*)
                                                                );
                if ( ! (yy_buffer_stack) )
-                       YY_FATAL_ERROR( "out of dynamic memory in evalensure_buffer_stack()" );
-                                                                 
+                       YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+
                memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
-                               
+
                (yy_buffer_stack_max) = num_to_alloc;
                (yy_buffer_stack_top) = 0;
                return;
@@ -2283,15 +2544,15 @@ static void evalensure_buffer_stack (void)
        if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
 
                /* Increase the buffer to prepare for a possible push. */
-               int grow_size = 8 /* arbitrary grow size */;
+               yy_size_t grow_size = 8 /* arbitrary grow size */;
 
                num_to_alloc = (yy_buffer_stack_max) + grow_size;
-               (yy_buffer_stack) = (struct yy_buffer_state**)evalrealloc
+               (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
                                                                ((yy_buffer_stack),
                                                                num_to_alloc * sizeof(struct yy_buffer_state*)
                                                                );
                if ( ! (yy_buffer_stack) )
-                       YY_FATAL_ERROR( "out of dynamic memory in evalensure_buffer_stack()" );
+                       YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
 
                /* zero only the new slots.*/
                memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
@@ -2305,9 +2566,9 @@ static void evalensure_buffer_stack (void)
  * @param base the character buffer
  * @param size the size in bytes of the character buffer
  * 
- * @return the newly allocated buffer state object. 
+ * @return the newly allocated buffer state object.
  */
-YY_BUFFER_STATE eval_scan_buffer  (char * base, yy_size_t  size )
+YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
 {
        YY_BUFFER_STATE b;
     
@@ -2315,53 +2576,53 @@ YY_BUFFER_STATE eval_scan_buffer  (char * base, yy_size_t  size )
             base[size-2] != YY_END_OF_BUFFER_CHAR ||
             base[size-1] != YY_END_OF_BUFFER_CHAR )
                /* They forgot to leave room for the EOB's. */
-               return 0;
+               return NULL;
 
-       b = (YY_BUFFER_STATE) evalalloc(sizeof( struct yy_buffer_state )  );
+       b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  );
        if ( ! b )
-               YY_FATAL_ERROR( "out of dynamic memory in eval_scan_buffer()" );
+               YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
 
-       b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
+       b->yy_buf_size = (int) (size - 2);      /* "- 2" to take care of EOB's */
        b->yy_buf_pos = b->yy_ch_buf = base;
        b->yy_is_our_buffer = 0;
-       b->yy_input_file = 0;
+       b->yy_input_file = NULL;
        b->yy_n_chars = b->yy_buf_size;
        b->yy_is_interactive = 0;
        b->yy_at_bol = 1;
        b->yy_fill_buffer = 0;
        b->yy_buffer_status = YY_BUFFER_NEW;
 
-       eval_switch_to_buffer(b  );
+       yy_switch_to_buffer( b  );
 
        return b;
 }
 /* %endif */
 
 /* %if-c-only */
-/** Setup the input buffer state to scan a string. The next call to evallex() will
+/** Setup the input buffer state to scan a string. The next call to yylex() will
  * scan from a @e copy of @a str.
  * @param yystr a NUL-terminated string to scan
  * 
  * @return the newly allocated buffer state object.
  * @note If you want to scan bytes that may contain NUL values, then use
- *       eval_scan_bytes() instead.
+ *       yy_scan_bytes() instead.
  */
-YY_BUFFER_STATE eval_scan_string (yyconst char * yystr )
+YY_BUFFER_STATE yy_scan_string (const char * yystr )
 {
     
-       return eval_scan_bytes(yystr,strlen(yystr) );
+       return yy_scan_bytes( yystr, (int) strlen(yystr) );
 }
 /* %endif */
 
 /* %if-c-only */
-/** Setup the input buffer state to scan the given bytes. The next call to evallex() will
+/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
  * scan from a @e copy of @a bytes.
  * @param yybytes the byte buffer to scan
  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
  * 
  * @return the newly allocated buffer state object.
  */
-YY_BUFFER_STATE eval_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
+YY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, int  _yybytes_len )
 {
        YY_BUFFER_STATE b;
        char *buf;
@@ -2369,19 +2630,19 @@ YY_BUFFER_STATE eval_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_le
        int i;
     
        /* Get memory for full buffer, including space for trailing EOB's. */
-       n = _yybytes_len + 2;
-       buf = (char *) evalalloc(n  );
+       n = (yy_size_t) (_yybytes_len + 2);
+       buf = (char *) yyalloc( n  );
        if ( ! buf )
-               YY_FATAL_ERROR( "out of dynamic memory in eval_scan_bytes()" );
+               YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
 
        for ( i = 0; i < _yybytes_len; ++i )
                buf[i] = yybytes[i];
 
        buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
 
-       b = eval_scan_buffer(buf,n );
+       b = yy_scan_buffer( buf, n );
        if ( ! b )
-               YY_FATAL_ERROR( "bad buffer in eval_scan_bytes()" );
+               YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
 
        /* It's okay to grow etc. this buffer, and we should throw it
         * away when we're done.
@@ -2397,9 +2658,9 @@ YY_BUFFER_STATE eval_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_le
 #endif
 
 /* %if-c-only */
-static void yy_fatal_error (yyconst char* msg )
+static void yynoreturn yy_fatal_error (const char* msg )
 {
-       (void) fprintf( stderr, "%s\n", msg );
+                       fprintf( stderr, "%s\n", msg );
        exit( YY_EXIT_FAILURE );
 }
 /* %endif */
@@ -2412,14 +2673,14 @@ static void yy_fatal_error (yyconst char* msg )
 #define yyless(n) \
        do \
                { \
-               /* Undo effects of setting up evaltext. */ \
+               /* Undo effects of setting up yytext. */ \
         int yyless_macro_arg = (n); \
         YY_LESS_LINENO(yyless_macro_arg);\
-               evaltext[evalleng] = (yy_hold_char); \
-               (yy_c_buf_p) = evaltext + yyless_macro_arg; \
+               yytext[yyleng] = (yy_hold_char); \
+               (yy_c_buf_p) = yytext + yyless_macro_arg; \
                (yy_hold_char) = *(yy_c_buf_p); \
                *(yy_c_buf_p) = '\0'; \
-               evalleng = yyless_macro_arg; \
+               yyleng = yyless_macro_arg; \
                } \
        while ( 0 )
 
@@ -2432,82 +2693,82 @@ static void yy_fatal_error (yyconst char* msg )
 /** Get the current line number.
  * 
  */
-int evalget_lineno  (void)
+int yyget_lineno  (void)
 {
-        
-    return evallineno;
+    
+    return yylineno;
 }
 
 /** Get the input stream.
  * 
  */
-FILE *evalget_in  (void)
+FILE *yyget_in  (void)
 {
-        return evalin;
+        return yyin;
 }
 
 /** Get the output stream.
  * 
  */
-FILE *evalget_out  (void)
+FILE *yyget_out  (void)
 {
-        return evalout;
+        return yyout;
 }
 
 /** Get the length of the current token.
  * 
  */
-yy_size_t evalget_leng  (void)
+int yyget_leng  (void)
 {
-        return evalleng;
+        return yyleng;
 }
 
 /** Get the current token.
  * 
  */
 
-char *evalget_text  (void)
+char *yyget_text  (void)
 {
-        return evaltext;
+        return yytext;
 }
 
 /* %if-reentrant */
 /* %endif */
 
 /** Set the current line number.
- * @param line_number
+ * @param _line_number line number
  * 
  */
-void evalset_lineno (int  line_number )
+void yyset_lineno (int  _line_number )
 {
     
-    evallineno = line_number;
+    yylineno = _line_number;
 }
 
 /** Set the input stream. This does not discard the current
  * input buffer.
- * @param in_str A readable stream.
+ * @param _in_str A readable stream.
  * 
- * @see eval_switch_to_buffer
+ * @see yy_switch_to_buffer
  */
-void evalset_in (FILE *  in_str )
+void yyset_in (FILE *  _in_str )
 {
-        evalin = in_str ;
+        yyin = _in_str ;
 }
 
-void evalset_out (FILE *  out_str )
+void yyset_out (FILE *  _out_str )
 {
-        evalout = out_str ;
+        yyout = _out_str ;
 }
 
-int evalget_debug  (void)
+int yyget_debug  (void)
 {
-        return eval_flex_debug;
+        return yy_flex_debug;
 }
 
-void evalset_debug (int  bdebug )
+void yyset_debug (int  _bdebug )
 {
-        eval_flex_debug = bdebug ;
+        yy_flex_debug = _bdebug ;
 }
 
 /* %endif */
@@ -2521,16 +2782,16 @@ void evalset_debug (int  bdebug )
 static int yy_init_globals (void)
 {
         /* Initialization is the same as for the non-reentrant scanner.
-     * This function is called from evallex_destroy(), so don't allocate here.
+     * This function is called from yylex_destroy(), so don't allocate here.
      */
 
-    /* We do not touch evallineno unless the option is enabled. */
-    evallineno =  1;
+    /* We do not touch yylineno unless the option is enabled. */
+    yylineno =  1;
     
-    (yy_buffer_stack) = 0;
+    (yy_buffer_stack) = NULL;
     (yy_buffer_stack_top) = 0;
     (yy_buffer_stack_max) = 0;
-    (yy_c_buf_p) = (char *) 0;
+    (yy_c_buf_p) = NULL;
     (yy_init) = 0;
     (yy_start) = 0;
 
@@ -2541,41 +2802,41 @@ static int yy_init_globals (void)
 
 /* Defined in main.c */
 #ifdef YY_STDINIT
-    evalin = stdin;
-    evalout = stdout;
+    yyin = stdin;
+    yyout = stdout;
 #else
-    evalin = (FILE *) 0;
-    evalout = (FILE *) 0;
+    yyin = NULL;
+    yyout = NULL;
 #endif
 
     /* For future reference: Set errno on error, since we are called by
-     * evallex_init()
+     * yylex_init()
      */
     return 0;
 }
 /* %endif */
 
 /* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */
-/* evallex_destroy is for both reentrant and non-reentrant scanners. */
-int evallex_destroy  (void)
+/* yylex_destroy is for both reentrant and non-reentrant scanners. */
+int yylex_destroy  (void)
 {
     
     /* Pop the buffer stack, destroying each element. */
        while(YY_CURRENT_BUFFER){
-               eval_delete_buffer(YY_CURRENT_BUFFER  );
+               yy_delete_buffer( YY_CURRENT_BUFFER  );
                YY_CURRENT_BUFFER_LVALUE = NULL;
-               evalpop_buffer_state();
+               yypop_buffer_state();
        }
 
        /* Destroy the stack itself. */
-       evalfree((yy_buffer_stack) );
+       yyfree((yy_buffer_stack) );
        (yy_buffer_stack) = NULL;
 
-    evalfree ( (yy_state_buf) );
+    yyfree ( (yy_state_buf) );
     (yy_state_buf)  = NULL;
 
     /* Reset the globals. This is important in a non-reentrant scanner so the next time
-     * evallex() is called, initialization will occur. */
+     * yylex() is called, initialization will occur. */
     yy_init_globals( );
 
 /* %if-reentrant */
@@ -2589,18 +2850,19 @@ int evallex_destroy  (void)
  */
 
 #ifndef yytext_ptr
-static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
+static void yy_flex_strncpy (char* s1, const char * s2, int n )
 {
-       register int i;
+               
+       int i;
        for ( i = 0; i < n; ++i )
                s1[i] = s2[i];
 }
 #endif
 
 #ifdef YY_NEED_STRLEN
-static int yy_flex_strlen (yyconst char * s )
+static int yy_flex_strlen (const char * s )
 {
-       register int n;
+       int n;
        for ( n = 0; s[n]; ++n )
                ;
 
@@ -2608,13 +2870,14 @@ static int yy_flex_strlen (yyconst char * s )
 }
 #endif
 
-void *evalalloc (yy_size_t  size )
+void *yyalloc (yy_size_t  size )
 {
-       return (void *) malloc( size );
+                       return malloc(size);
 }
 
-void *evalrealloc  (void * ptr, yy_size_t  size )
+void *yyrealloc  (void * ptr, yy_size_t  size )
 {
+               
        /* The cast to (char *) in the following accommodates both
         * implementations that use char* generic pointers, and those
         * that use void* generic pointers.  It works with the latter
@@ -2622,12 +2885,12 @@ void *evalrealloc  (void * ptr, yy_size_t  size )
         * any pointer type to void*, and deal with argument conversions
         * as though doing an assignment.
         */
-       return (void *) realloc( (char *) ptr, size );
+       return realloc(ptr, size);
 }
 
-void evalfree (void * ptr )
+void yyfree (void * ptr )
 {
-       free( (char *) ptr );   /* see evalrealloc() for (char *) cast */
+                       free( (char *) ptr );   /* see yyrealloc() for (char *) cast */
 }
 
 /* %if-tables-serialization definitions */
@@ -2637,8 +2900,7 @@ void evalfree (void * ptr )
 
 /* %ok-for-header */
 
-#line 217 "lexer.ll"
-
+#line 218 "lexer.ll"
 
 
 using namespace isc::eval;