namespace {
-// The location of the current token. The lexer will keep updating it. This
-// variable will be useful for logging errors.
-isc::dhcp::location loc;
-
-/// @brief Location stack.
-std::vector<isc::dhcp::location> locs;
-
-/// @brief File name.
-std::string file;
-
-/// @brief File name stack.
-std::vector<std::string> files;
-
-/// @brief State stack.
-std::vector<struct yy_buffer_state*> states;
-
bool start_token_flag = false;
isc::dhcp::Parser6Context::ParserType start_token_value;
// This code run each time a pattern is matched. It updates the location
// by moving it ahead by yyleng bytes. yyleng specifies the length of the
// currently matched token.
-#define YY_USER_ACTION loc.columns(yyleng);
+#define YY_USER_ACTION driver.loc_.columns(yyleng);
%}
%%
// http://www.gnu.org/software/bison/manual/html_node/Multiple-start_002dsymbols.html
// Code run each time yylex is called.
- loc.step();
+ driver.loc_.step();
if (start_token_flag) {
start_token_flag = false;
switch (start_token_value) {
case Parser6Context::PARSER_DHCP6:
- return isc::dhcp::Dhcp6Parser::make_TOPLEVEL_DHCP6(loc);
+ return isc::dhcp::Dhcp6Parser::make_TOPLEVEL_DHCP6(driver.loc_);
case Parser6Context::PARSER_GENERIC_JSON:
default:
- return isc::dhcp::Dhcp6Parser::make_TOPLEVEL_GENERIC_JSON(loc);
+ return isc::dhcp::Dhcp6Parser::make_TOPLEVEL_GENERIC_JSON(driver.loc_);
}
}
%}
"/*" {
BEGIN(COMMENT);
- comment_start_line = loc.end.line;;
+ comment_start_line = driver.loc_.end.line;;
}
<COMMENT>"*/" BEGIN(INITIAL);
<*>{blank}+ {
// Ok, we found a with space. Let's ignore it and update loc variable.
- loc.step();
+ driver.loc_.step();
}
<*>[\n]+ {
// Newline found. Let's update the location and continue.
- loc.lines(yyleng);
- loc.step();
+ driver.loc_.lines(yyleng);
+ driver.loc_.step();
}
\"Dhcp6\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::CONFIG:
- return isc::dhcp::Dhcp6Parser::make_DHCP6(loc);
+ return isc::dhcp::Dhcp6Parser::make_DHCP6(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("Dhcp6", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("Dhcp6", driver.loc_);
}
}
\"interfaces-config\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP6:
- return isc::dhcp::Dhcp6Parser::make_INTERFACES_CONFIG(loc);
+ return isc::dhcp::Dhcp6Parser::make_INTERFACES_CONFIG(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("interfaces-config", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("interfaces-config", driver.loc_);
}
}
\"interfaces\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::INTERFACES_CONFIG:
- return isc::dhcp::Dhcp6Parser::make_INTERFACES(loc);
+ return isc::dhcp::Dhcp6Parser::make_INTERFACES(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("interfaces", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("interfaces", driver.loc_);
}
}
\"lease-database\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP6:
- return isc::dhcp::Dhcp6Parser::make_LEASE_DATABASE(loc);
+ return isc::dhcp::Dhcp6Parser::make_LEASE_DATABASE(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("lease-database", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("lease-database", driver.loc_);
}
}
\"hosts-database\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP6:
- return isc::dhcp::Dhcp6Parser::make_HOSTS_DATABASE(loc);
+ return isc::dhcp::Dhcp6Parser::make_HOSTS_DATABASE(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("hosts-database", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("hosts-database", driver.loc_);
}
}
case isc::dhcp::Parser6Context::LEASE_DATABASE:
case isc::dhcp::Parser6Context::HOSTS_DATABASE:
case isc::dhcp::Parser6Context::SERVER_ID:
- return isc::dhcp::Dhcp6Parser::make_TYPE(loc);
+ return isc::dhcp::Dhcp6Parser::make_TYPE(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("type", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("type", driver.loc_);
}
}
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::LEASE_DATABASE:
case isc::dhcp::Parser6Context::HOSTS_DATABASE:
- return isc::dhcp::Dhcp6Parser::make_USER(loc);
+ return isc::dhcp::Dhcp6Parser::make_USER(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("user", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("user", driver.loc_);
}
}
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::LEASE_DATABASE:
case isc::dhcp::Parser6Context::HOSTS_DATABASE:
- return isc::dhcp::Dhcp6Parser::make_PASSWORD(loc);
+ return isc::dhcp::Dhcp6Parser::make_PASSWORD(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("password", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("password", driver.loc_);
}
}
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::LEASE_DATABASE:
case isc::dhcp::Parser6Context::HOSTS_DATABASE:
- return isc::dhcp::Dhcp6Parser::make_HOST(loc);
+ return isc::dhcp::Dhcp6Parser::make_HOST(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("host", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("host", driver.loc_);
}
}
case isc::dhcp::Parser6Context::LEASE_DATABASE:
case isc::dhcp::Parser6Context::HOSTS_DATABASE:
case isc::dhcp::Parser6Context::SERVER_ID:
- return isc::dhcp::Dhcp6Parser::make_PERSIST(loc);
+ return isc::dhcp::Dhcp6Parser::make_PERSIST(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("persist", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("persist", driver.loc_);
}
}
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::LEASE_DATABASE:
case isc::dhcp::Parser6Context::HOSTS_DATABASE:
- return isc::dhcp::Dhcp6Parser::make_LFC_INTERVAL(loc);
+ return isc::dhcp::Dhcp6Parser::make_LFC_INTERVAL(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("lfc-interval", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("lfc-interval", driver.loc_);
}
}
\"preferred-lifetime\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP6:
- return isc::dhcp::Dhcp6Parser::make_PREFERRED_LIFETIME(loc);
+ return isc::dhcp::Dhcp6Parser::make_PREFERRED_LIFETIME(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("preferred-lifetime", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("preferred-lifetime", driver.loc_);
}
}
\"valid-lifetime\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP6:
- return isc::dhcp::Dhcp6Parser::make_VALID_LIFETIME(loc);
+ return isc::dhcp::Dhcp6Parser::make_VALID_LIFETIME(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("valid-lifetime", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("valid-lifetime", driver.loc_);
}
}
\"renew-timer\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP6:
- return isc::dhcp::Dhcp6Parser::make_RENEW_TIMER(loc);
+ return isc::dhcp::Dhcp6Parser::make_RENEW_TIMER(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("renew-timer", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("renew-timer", driver.loc_);
}
}
\"rebind-timer\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP6:
- return isc::dhcp::Dhcp6Parser::make_REBIND_TIMER(loc);
+ return isc::dhcp::Dhcp6Parser::make_REBIND_TIMER(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("rebind-timer", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("rebind-timer", driver.loc_);
}
}
\"subnet6\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP6:
- return isc::dhcp::Dhcp6Parser::make_SUBNET6(loc);
+ return isc::dhcp::Dhcp6Parser::make_SUBNET6(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("subnet6", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("subnet6", driver.loc_);
}
}
case isc::dhcp::Parser6Context::RESERVATIONS:
case isc::dhcp::Parser6Context::CLIENT_CLASSES:
case isc::dhcp::Parser6Context::CLIENT_CLASS:
- return isc::dhcp::Dhcp6Parser::make_OPTION_DATA(loc);
+ return isc::dhcp::Dhcp6Parser::make_OPTION_DATA(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("option-data", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("option-data", driver.loc_);
}
}
case isc::dhcp::Parser6Context::CLIENT_CLASSES:
case isc::dhcp::Parser6Context::CLIENT_CLASS:
case isc::dhcp::Parser6Context::LOGGERS:
- return isc::dhcp::Dhcp6Parser::make_NAME(loc);
+ return isc::dhcp::Dhcp6Parser::make_NAME(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("name", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("name", driver.loc_);
}
}
\"data\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::OPTION_DATA:
- return isc::dhcp::Dhcp6Parser::make_DATA(loc);
+ return isc::dhcp::Dhcp6Parser::make_DATA(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("data", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("data", driver.loc_);
}
}
\"pools\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::SUBNET6:
- return isc::dhcp::Dhcp6Parser::make_POOLS(loc);
+ return isc::dhcp::Dhcp6Parser::make_POOLS(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("pools", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("pools", driver.loc_);
}
}
\"pd-pools\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::SUBNET6:
- return isc::dhcp::Dhcp6Parser::make_PD_POOLS(loc);
+ return isc::dhcp::Dhcp6Parser::make_PD_POOLS(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("pd-pools", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("pd-pools", driver.loc_);
}
}
\"prefix\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::PD_POOLS:
- return isc::dhcp::Dhcp6Parser::make_PREFIX(loc);
+ return isc::dhcp::Dhcp6Parser::make_PREFIX(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("prefix", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("prefix", driver.loc_);
}
}
\"prefix-len\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::PD_POOLS:
- return isc::dhcp::Dhcp6Parser::make_PREFIX_LEN(loc);
+ return isc::dhcp::Dhcp6Parser::make_PREFIX_LEN(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("prefix-len", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("prefix-len", driver.loc_);
}
}
\"delegated-len\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::PD_POOLS:
- return isc::dhcp::Dhcp6Parser::make_DELEGATED_LEN(loc);
+ return isc::dhcp::Dhcp6Parser::make_DELEGATED_LEN(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("delegated-len", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("delegated-len", driver.loc_);
}
}
\"pool\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::POOLS:
- return isc::dhcp::Dhcp6Parser::make_POOL(loc);
+ return isc::dhcp::Dhcp6Parser::make_POOL(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("pool", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("pool", driver.loc_);
}
}
\"subnet\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::SUBNET6:
- return isc::dhcp::Dhcp6Parser::make_SUBNET(loc);
+ return isc::dhcp::Dhcp6Parser::make_SUBNET(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("subnet", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("subnet", driver.loc_);
}
}
\"interface\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::SUBNET6:
- return isc::dhcp::Dhcp6Parser::make_INTERFACE(loc);
+ return isc::dhcp::Dhcp6Parser::make_INTERFACE(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("interface", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("interface", driver.loc_);
}
}
\"id\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::SUBNET6:
- return isc::dhcp::Dhcp6Parser::make_ID(loc);
+ return isc::dhcp::Dhcp6Parser::make_ID(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("id", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("id", driver.loc_);
}
}
\"code\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::OPTION_DATA:
- return isc::dhcp::Dhcp6Parser::make_CODE(loc);
+ return isc::dhcp::Dhcp6Parser::make_CODE(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("code", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("code", driver.loc_);
}
}
\"mac-sources\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP6:
- return isc::dhcp::Dhcp6Parser::make_MAC_SOURCES(loc);
+ return isc::dhcp::Dhcp6Parser::make_MAC_SOURCES(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("mac-sources", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("mac-sources", driver.loc_);
}
}
\"relay-supplied-options\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP6:
- return isc::dhcp::Dhcp6Parser::make_RELAY_SUPPLIED_OPTIONS(loc);
+ return isc::dhcp::Dhcp6Parser::make_RELAY_SUPPLIED_OPTIONS(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("relay-supplied-options", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("relay-supplied-options", driver.loc_);
}
}
\"host-reservation-identifiers\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP6:
- return isc::dhcp::Dhcp6Parser::make_HOST_RESERVATION_IDENTIFIERS(loc);
+ return isc::dhcp::Dhcp6Parser::make_HOST_RESERVATION_IDENTIFIERS(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("host-reservation-identifiers", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("host-reservation-identifiers", driver.loc_);
}
}
\"Logging\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::CONFIG:
- return isc::dhcp::Dhcp6Parser::make_LOGGING(loc);
+ return isc::dhcp::Dhcp6Parser::make_LOGGING(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("Logging", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("Logging", driver.loc_);
}
}
\"loggers\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::LOGGING:
- return isc::dhcp::Dhcp6Parser::make_LOGGERS(loc);
+ return isc::dhcp::Dhcp6Parser::make_LOGGERS(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("loggers", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("loggers", driver.loc_);
}
}
\"output_options\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::LOGGERS:
- return isc::dhcp::Dhcp6Parser::make_OUTPUT_OPTIONS(loc);
+ return isc::dhcp::Dhcp6Parser::make_OUTPUT_OPTIONS(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("output_options", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("output_options", driver.loc_);
}
}
\"output\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::OUTPUT_OPTIONS:
- return isc::dhcp::Dhcp6Parser::make_OUTPUT(loc);
+ return isc::dhcp::Dhcp6Parser::make_OUTPUT(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("output", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("output", driver.loc_);
}
}
\"debuglevel\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::LOGGERS:
- return isc::dhcp::Dhcp6Parser::make_DEBUGLEVEL(loc);
+ return isc::dhcp::Dhcp6Parser::make_DEBUGLEVEL(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("debuglevel", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("debuglevel", driver.loc_);
}
}
\"severity\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::LOGGERS:
- return isc::dhcp::Dhcp6Parser::make_SEVERITY(loc);
+ return isc::dhcp::Dhcp6Parser::make_SEVERITY(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("severity", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("severity", driver.loc_);
}
}
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP6:
case isc::dhcp::Parser6Context::RESERVATIONS:
- return isc::dhcp::Dhcp6Parser::make_CLIENT_CLASSES(loc);
+ return isc::dhcp::Dhcp6Parser::make_CLIENT_CLASSES(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("client-classes", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("client-classes", driver.loc_);
}
}
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::SUBNET6:
case isc::dhcp::Parser6Context::CLIENT_CLASSES:
- return isc::dhcp::Dhcp6Parser::make_CLIENT_CLASS(loc);
+ return isc::dhcp::Dhcp6Parser::make_CLIENT_CLASS(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("client-class", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("client-class", driver.loc_);
}
}
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::CLIENT_CLASSES:
case isc::dhcp::Parser6Context::CLIENT_CLASS:
- return isc::dhcp::Dhcp6Parser::make_TEST(loc);
+ return isc::dhcp::Dhcp6Parser::make_TEST(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("test", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("test", driver.loc_);
}
}
\"reservations\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::SUBNET6:
- return isc::dhcp::Dhcp6Parser::make_RESERVATIONS(loc);
+ return isc::dhcp::Dhcp6Parser::make_RESERVATIONS(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("reservations", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("reservations", driver.loc_);
}
}
\"ip-addresses\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::RESERVATIONS:
- return isc::dhcp::Dhcp6Parser::make_IP_ADDRESSES(loc);
+ return isc::dhcp::Dhcp6Parser::make_IP_ADDRESSES(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("ip-addresses", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("ip-addresses", driver.loc_);
}
}
\"prefixes\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::RESERVATIONS:
- return isc::dhcp::Dhcp6Parser::make_PREFIXES(loc);
+ return isc::dhcp::Dhcp6Parser::make_PREFIXES(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("prefixes", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("prefixes", driver.loc_);
}
}
case isc::dhcp::Parser6Context::MAC_SOURCES:
case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS:
case isc::dhcp::Parser6Context::RESERVATIONS:
- return isc::dhcp::Dhcp6Parser::make_DUID(loc);
+ return isc::dhcp::Dhcp6Parser::make_DUID(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("duid", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("duid", driver.loc_);
}
}
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS:
case isc::dhcp::Parser6Context::RESERVATIONS:
- return isc::dhcp::Dhcp6Parser::make_HW_ADDRESS(loc);
+ return isc::dhcp::Dhcp6Parser::make_HW_ADDRESS(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("hw-address", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("hw-address", driver.loc_);
}
}
\"hostname\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::RESERVATIONS:
- return isc::dhcp::Dhcp6Parser::make_HOSTNAME(loc);
+ return isc::dhcp::Dhcp6Parser::make_HOSTNAME(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("hostname", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("hostname", driver.loc_);
}
}
\"space\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::OPTION_DATA:
- return isc::dhcp::Dhcp6Parser::make_SPACE(loc);
+ return isc::dhcp::Dhcp6Parser::make_SPACE(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("space", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("space", driver.loc_);
}
}
\"csv-format\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::OPTION_DATA:
- return isc::dhcp::Dhcp6Parser::make_CSV_FORMAT(loc);
+ return isc::dhcp::Dhcp6Parser::make_CSV_FORMAT(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("csv-format", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("csv-format", driver.loc_);
}
}
\"hooks-libraries\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP6:
- return isc::dhcp::Dhcp6Parser::make_HOOKS_LIBRARIES(loc);
+ return isc::dhcp::Dhcp6Parser::make_HOOKS_LIBRARIES(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("hooks-libraries", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("hooks-libraries", driver.loc_);
}
}
\"library\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::HOOKS_LIBRARIES:
- return isc::dhcp::Dhcp6Parser::make_LIBRARY(loc);
+ return isc::dhcp::Dhcp6Parser::make_LIBRARY(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("library", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("library", driver.loc_);
}
}
\"server-id\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP6:
- return isc::dhcp::Dhcp6Parser::make_SERVER_ID(loc);
+ return isc::dhcp::Dhcp6Parser::make_SERVER_ID(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("server-id", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("server-id", driver.loc_);
}
}
\"identifier\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::SERVER_ID:
- return isc::dhcp::Dhcp6Parser::make_IDENTIFIER(loc);
+ return isc::dhcp::Dhcp6Parser::make_IDENTIFIER(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("identifier", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("identifier", driver.loc_);
}
}
\"htype\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::SERVER_ID:
- return isc::dhcp::Dhcp6Parser::make_HTYPE(loc);
+ return isc::dhcp::Dhcp6Parser::make_HTYPE(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("htype", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("htype", driver.loc_);
}
}
\"time\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::SERVER_ID:
- return isc::dhcp::Dhcp6Parser::make_TIME(loc);
+ return isc::dhcp::Dhcp6Parser::make_TIME(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("time", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("time", driver.loc_);
}
}
\"enterprise-id\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::SERVER_ID:
- return isc::dhcp::Dhcp6Parser::make_ENTERPRISE_ID(loc);
+ return isc::dhcp::Dhcp6Parser::make_ENTERPRISE_ID(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("enterprise-id", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("enterprise-id", driver.loc_);
}
}
\"expired-leases-processing\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP6:
- return isc::dhcp::Dhcp6Parser::make_EXPIRED_LEASES_PROCESSING(loc);
+ return isc::dhcp::Dhcp6Parser::make_EXPIRED_LEASES_PROCESSING(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("expired-leases-processing", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("expired-leases-processing", driver.loc_);
}
}
\"dhcp4o6-port\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP6:
- return isc::dhcp::Dhcp6Parser::make_DHCP4O6_PORT(loc);
+ return isc::dhcp::Dhcp6Parser::make_DHCP4O6_PORT(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("dhcp4o6-port", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("dhcp4o6-port", driver.loc_);
}
}
\"dhcp-ddns\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP6:
- return isc::dhcp::Dhcp6Parser::make_DHCP_DDNS(loc);
+ return isc::dhcp::Dhcp6Parser::make_DHCP_DDNS(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("dhcp-ddns", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("dhcp-ddns", driver.loc_);
}
}
\"enable-updates\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP_DDNS:
- return isc::dhcp::Dhcp6Parser::make_ENABLE_UPDATES(loc);
+ return isc::dhcp::Dhcp6Parser::make_ENABLE_UPDATES(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("enable-updates", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("enable-updates", driver.loc_);
}
}
\"qualifying-suffix\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP_DDNS:
- return isc::dhcp::Dhcp6Parser::make_QUALIFYING_SUFFIX(loc);
+ return isc::dhcp::Dhcp6Parser::make_QUALIFYING_SUFFIX(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("qualifying-suffix", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("qualifying-suffix", driver.loc_);
}
}
\"Dhcp4\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::CONFIG:
- return isc::dhcp::Dhcp6Parser::make_DHCP4(loc);
+ return isc::dhcp::Dhcp6Parser::make_DHCP4(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("Dhcp4", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("Dhcp4", driver.loc_);
}
}
\"DhcpDdns\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::CONFIG:
- return isc::dhcp::Dhcp6Parser::make_DHCPDDNS(loc);
+ return isc::dhcp::Dhcp6Parser::make_DHCPDDNS(driver.loc_);
default:
- return isc::dhcp::Dhcp6Parser::make_STRING("DhcpDdns", loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING("DhcpDdns", driver.loc_);
}
}
switch (c) {
case '"':
// impossible condition
- driver.error(loc, "Bad quote in \"" + raw + "\"");
+ driver.error(driver.loc_, "Bad quote in \"" + raw + "\"");
case '\\':
++pos;
if (pos >= len) {
// impossible condition
- driver.error(loc, "Overflow escape in \"" + raw + "\"");
+ driver.error(driver.loc_, "Overflow escape in \"" + raw + "\"");
}
c = raw[pos];
switch (c) {
break;
case 'u':
// not yet implemented
- driver.error(loc, "Unsupported unicode escape in \"" + raw + "\"");
+ driver.error(driver.loc_, "Unsupported unicode escape in \"" + raw + "\"");
default:
// impossible condition
- driver.error(loc, "Bad escape in \"" + raw + "\"");
+ driver.error(driver.loc_, "Bad escape in \"" + raw + "\"");
}
break;
default:
if (c < 0x20) {
// impossible condition
- driver.error(loc, "Invalid control in \"" + raw + "\"");
+ driver.error(driver.loc_, "Invalid control in \"" + raw + "\"");
}
decoded.push_back(c);
}
}
- return isc::dhcp::Dhcp6Parser::make_STRING(decoded, loc);
+ return isc::dhcp::Dhcp6Parser::make_STRING(decoded, driver.loc_);
}
\"{JSONStringCharacter}*{ControlCharacter}{ControlCharacterFill}*\" {
// Bad string with a forbidden control character inside
- driver.error(loc, "Invalid control in " + std::string(yytext));
+ driver.error(driver.loc_, "Invalid control in " + std::string(yytext));
}
\"{JSONStringCharacter}*\\{BadJSONEscapeSequence}[^\x00-\x1f"]*\" {
// Bad string with a bad escape inside
- driver.error(loc, "Bad escape in " + std::string(yytext));
+ driver.error(driver.loc_, "Bad escape in " + std::string(yytext));
}
\"{JSONStringCharacter}*\\\" {
// Bad string with an open escape at the end
- driver.error(loc, "Overflow escape in " + std::string(yytext));
+ driver.error(driver.loc_, "Overflow escape in " + std::string(yytext));
}
-"[" { return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(loc); }
-"]" { return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(loc); }
-"{" { return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(loc); }
-"}" { return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(loc); }
-"," { return isc::dhcp::Dhcp6Parser::make_COMMA(loc); }
-":" { return isc::dhcp::Dhcp6Parser::make_COLON(loc); }
+"[" { return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); }
+"]" { return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); }
+"{" { return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); }
+"}" { return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); }
+"," { return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); }
+":" { return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); }
{int} {
// An integer was found.
// int64_t.
integer = boost::lexical_cast<int64_t>(tmp);
} catch (const boost::bad_lexical_cast &) {
- driver.error(loc, "Failed to convert " + tmp + " to an integer.");
+ driver.error(driver.loc_, "Failed to convert " + tmp + " to an integer.");
}
// The parser needs the string form as double conversion is no lossless
- return isc::dhcp::Dhcp6Parser::make_INTEGER(integer, loc);
+ return isc::dhcp::Dhcp6Parser::make_INTEGER(integer, driver.loc_);
}
[-+]?[0-9]*\.?[0-9]*([eE][-+]?[0-9]+)? {
try {
fp = boost::lexical_cast<double>(tmp);
} catch (const boost::bad_lexical_cast &) {
- driver.error(loc, "Failed to convert " + tmp + " to a floating point.");
+ driver.error(driver.loc_, "Failed to convert " + tmp + " to a floating point.");
}
- return isc::dhcp::Dhcp6Parser::make_FLOAT(fp, loc);
+ return isc::dhcp::Dhcp6Parser::make_FLOAT(fp, driver.loc_);
}
true|false {
string tmp(yytext);
- return isc::dhcp::Dhcp6Parser::make_BOOLEAN(tmp == "true", loc);
+ return isc::dhcp::Dhcp6Parser::make_BOOLEAN(tmp == "true", driver.loc_);
}
null {
- return isc::dhcp::Dhcp6Parser::make_NULL_TYPE(loc);
+ return isc::dhcp::Dhcp6Parser::make_NULL_TYPE(driver.loc_);
}
-<*>. driver.error (loc, "Invalid character: " + std::string(yytext));
+<*>. driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
<<EOF>> {
- if (states.empty()) {
- return isc::dhcp::Dhcp6Parser::make_END(loc);
+ if (driver.states_.empty()) {
+ return isc::dhcp::Dhcp6Parser::make_END(driver.loc_);
}
- loc = locs.back();
- locs.pop_back();
- file = files.back();
- files.pop_back();
+ driver.loc_ = driver.locs_.back();
+ driver.locs_.pop_back();
+ driver.file_ = driver.files_.back();
+ driver.files_.pop_back();
parser6__delete_buffer(YY_CURRENT_BUFFER);
- parser6__switch_to_buffer(states.back());
- states.pop_back();
+ parser6__switch_to_buffer(driver.states_.back());
+ driver.states_.pop_back();
BEGIN(DIR_EXIT);
}
void
Parser6Context::scanStringBegin(const std::string& str, ParserType parser_type)
{
- locs.clear();
- files.clear();
- states.clear();
static_cast<void>(parser6_lex_destroy());
start_token_flag = true;
start_token_value = parser_type;
- file = "<string>";
- loc.initialize(&file);
+ file_ = "<string>";
+ loc_.initialize(&file_);
yy_flex_debug = trace_scanning_;
YY_BUFFER_STATE buffer;
buffer = yy_scan_bytes(str.c_str(), str.size());
const std::string& filename,
ParserType parser_type)
{
- locs.clear();
- files.clear();
- states.clear();
static_cast<void>(parser6_lex_destroy());
start_token_flag = true;
start_token_value = parser_type;
- file = filename;
- loc.initialize(&file);
+ file_ = filename;
+ loc_.initialize(&file_);
yy_flex_debug = trace_scanning_;
YY_BUFFER_STATE buffer;
void
Parser6Context::includeFile(const std::string& filename) {
- if (states.size() > 10) {
+ if (states_.size() > 10) {
fatal("Too many nested include.");
}
if (!f) {
fatal("Can't open include file " + filename);
}
- states.push_back(YY_CURRENT_BUFFER);
+ states_.push_back(YY_CURRENT_BUFFER);
YY_BUFFER_STATE buffer;
buffer = parser6__create_buffer(f, 65536 /*buffer size*/);
if (!buffer) {
fatal( "Can't scan include file " + filename);
}
parser6__switch_to_buffer(buffer);
- files.push_back(file);
- file = filename;
- locs.push_back(loc);
- loc.initialize(&file);
+ files_.push_back(file_);
+ file_ = filename;
+ locs_.push_back(loc_);
+ loc_.initialize(&file_);
BEGIN(INITIAL);
}