From: Thomas Markwalder Date: Thu, 9 Aug 2018 13:22:43 +0000 (-0400) Subject: [5704] Addressed review comments X-Git-Tag: gitlab29-base~62^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dcbbfbfa3d7405f84cdd40109975fef1865b7186;p=thirdparty%2Fkea.git [5704] Addressed review comments Updated config unit tests, rolled back eval/lexer.cc, etc... --- diff --git a/src/bin/dhcp4/tests/config_parser_unittest.cc b/src/bin/dhcp4/tests/config_parser_unittest.cc index ae7cf19169..2335fd2bb2 100644 --- a/src/bin/dhcp4/tests/config_parser_unittest.cc +++ b/src/bin/dhcp4/tests/config_parser_unittest.cc @@ -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(*host, DHO_NAME_SERVERS); ASSERT_TRUE(opt_dns); diff --git a/src/bin/dhcp4/tests/get_config_unittest.cc b/src/bin/dhcp4/tests/get_config_unittest.cc index e041d91ac7..e9468485fc 100644 --- a/src/bin/dhcp4/tests/get_config_unittest.cc +++ b/src/bin/dhcp4/tests/get_config_unittest.cc @@ -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" }; diff --git a/src/bin/dhcp6/tests/get_config_unittest.cc b/src/bin/dhcp6/tests/get_config_unittest.cc index c8ef1b1cb9..5221e35f83 100644 --- a/src/bin/dhcp6/tests/get_config_unittest.cc +++ b/src/bin/dhcp6/tests/get_config_unittest.cc @@ -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" }; diff --git a/src/lib/dhcpsrv/subnet_id.h b/src/lib/dhcpsrv/subnet_id.h index 7d89a64c76..77c2adf71d 100644 --- a/src/lib/dhcpsrv/subnet_id.h +++ b/src/lib/dhcpsrv/subnet_id.h @@ -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::max()-1; +/// @brief Special value used to signify that a SubnetID is "not set" static const SubnetID SUBNET_ID_UNUSED = std::numeric_limits::max(); /// @brief Exception thrown upon attempt to add subnet with an ID that belongs diff --git a/src/lib/dhcpsrv/testutils/generic_host_data_source_unittest.h b/src/lib/dhcpsrv/testutils/generic_host_data_source_unittest.h index 5e6175cd3d..46653bb382 100644 --- a/src/lib/dhcpsrv/testutils/generic_host_data_source_unittest.h +++ b/src/lib/dhcpsrv/testutils/generic_host_data_source_unittest.h @@ -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. diff --git a/src/lib/eval/lexer.cc b/src/lib/eval/lexer.cc index a43e2913f4..48c177a6d9 100644 --- a/src/lib/eval/lexer.cc +++ b/src/lib/eval/lexer.cc @@ -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 @@ -45,11 +50,244 @@ /* %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 . */ -# 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;