2
0
mirror of https://gitlab.isc.org/isc-projects/kea synced 2025-08-30 05:27:55 +00:00

[#2970] Regen flex

This commit is contained in:
Francis Dupont 2023-08-03 15:49:05 +00:00
parent d251fc3f0b
commit 48d91e07aa
12 changed files with 887 additions and 875 deletions

View File

@ -1520,13 +1520,13 @@ int yy_flex_debug = 1;
static const flex_int16_t yy_rule_linenum[70] =
{ 0,
134, 136, 138, 143, 144, 149, 150, 151, 163, 166,
171, 178, 187, 196, 205, 218, 231, 240, 249, 258,
267, 276, 285, 294, 303, 312, 321, 330, 339, 348,
357, 366, 375, 384, 393, 402, 411, 420, 429, 438,
447, 456, 465, 474, 483, 492, 501, 510, 519, 528,
537, 638, 654, 703, 711, 726, 727, 728, 729, 730,
731, 733, 751, 764, 769, 773, 775, 777, 779
135, 137, 139, 144, 145, 150, 151, 152, 164, 167,
172, 179, 188, 197, 206, 219, 232, 241, 250, 259,
268, 277, 286, 295, 304, 313, 322, 331, 340, 349,
358, 367, 376, 385, 394, 403, 412, 421, 430, 439,
448, 457, 466, 475, 484, 493, 502, 511, 520, 529,
538, 639, 655, 704, 712, 727, 728, 729, 730, 731,
732, 734, 752, 765, 770, 774, 776, 778, 780
} ;
/* The intent behind this definition is that it'll catch
@ -1538,7 +1538,7 @@ static const flex_int16_t yy_rule_linenum[70] =
#define YY_RESTORE_YY_MORE_OFFSET
char *yytext;
#line 1 "agent_lexer.ll"
/* Copyright (C) 2017-2022 Internet Systems Consortium, Inc. ("ISC")
/* Copyright (C) 2017-2023 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
@ -1551,6 +1551,7 @@ char *yytext;
#include <cctype>
#include <cerrno>
#include <climits>
#include <cstdint>
#include <cstdlib>
#include <string>
#include <agent/parser_context.h>
@ -1582,7 +1583,7 @@ using isc::agent::AgentParser;
/* To avoid the call to exit... oops! */
#define YY_FATAL_ERROR(msg) isc::agent::ParserContext::fatal(msg)
#line 1585 "agent_lexer.cc"
#line 1586 "agent_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 yywrap requires linking with -lfl, which provides the default yywrap
@ -1603,13 +1604,13 @@ using isc::agent::AgentParser;
can be used during actual token definitions. Note some can match
incorrect inputs (e.g., IP addresses) which must be checked. */
/* for errors */
#line 97 "agent_lexer.ll"
#line 98 "agent_lexer.ll"
/* 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 driver.loc_.columns(yyleng);
#line 1611 "agent_lexer.cc"
#line 1612 "agent_lexer.cc"
#line 1613 "agent_lexer.cc"
#define INITIAL 0
#define COMMENT 1
@ -1891,11 +1892,11 @@ YY_DECL
{
/* %% [7.0] user's declarations go here */
#line 103 "agent_lexer.ll"
#line 104 "agent_lexer.ll"
#line 107 "agent_lexer.ll"
#line 108 "agent_lexer.ll"
/* This part of the code is copied over to the verbatim to the top
of the generated yylex function. Explanation:
http://www.gnu.org/software/bison/manual/html_node/Multiple-start_002dsymbols.html */
@ -1923,7 +1924,7 @@ YY_DECL
}
#line 1926 "agent_lexer.cc"
#line 1927 "agent_lexer.cc"
while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
{
@ -2001,17 +2002,17 @@ do_action: /* This label is used only to access EOF actions. */
case 1:
YY_RULE_SETUP
#line 134 "agent_lexer.ll"
#line 135 "agent_lexer.ll"
;
YY_BREAK
case 2:
YY_RULE_SETUP
#line 136 "agent_lexer.ll"
#line 137 "agent_lexer.ll"
;
YY_BREAK
case 3:
YY_RULE_SETUP
#line 138 "agent_lexer.ll"
#line 139 "agent_lexer.ll"
{
BEGIN(COMMENT);
comment_start_line = driver.loc_.end.line;;
@ -2019,33 +2020,33 @@ YY_RULE_SETUP
YY_BREAK
case 4:
YY_RULE_SETUP
#line 143 "agent_lexer.ll"
#line 144 "agent_lexer.ll"
BEGIN(INITIAL);
YY_BREAK
case 5:
YY_RULE_SETUP
#line 144 "agent_lexer.ll"
#line 145 "agent_lexer.ll"
;
YY_BREAK
case YY_STATE_EOF(COMMENT):
#line 145 "agent_lexer.ll"
#line 146 "agent_lexer.ll"
{
isc_throw(ParseError, "Comment not closed. (/* in line " << comment_start_line);
}
YY_BREAK
case 6:
YY_RULE_SETUP
#line 149 "agent_lexer.ll"
#line 150 "agent_lexer.ll"
BEGIN(DIR_ENTER);
YY_BREAK
case 7:
YY_RULE_SETUP
#line 150 "agent_lexer.ll"
#line 151 "agent_lexer.ll"
BEGIN(DIR_INCLUDE);
YY_BREAK
case 8:
YY_RULE_SETUP
#line 151 "agent_lexer.ll"
#line 152 "agent_lexer.ll"
{
/* Include directive. */
@ -2059,19 +2060,19 @@ YY_RULE_SETUP
case YY_STATE_EOF(DIR_ENTER):
case YY_STATE_EOF(DIR_INCLUDE):
case YY_STATE_EOF(DIR_EXIT):
#line 160 "agent_lexer.ll"
#line 161 "agent_lexer.ll"
{
isc_throw(ParseError, "Directive not closed.");
}
YY_BREAK
case 9:
YY_RULE_SETUP
#line 163 "agent_lexer.ll"
#line 164 "agent_lexer.ll"
BEGIN(INITIAL);
YY_BREAK
case 10:
YY_RULE_SETUP
#line 166 "agent_lexer.ll"
#line 167 "agent_lexer.ll"
{
/* Ok, we found a with space. Let's ignore it and update loc variable. */
driver.loc_.step();
@ -2080,7 +2081,7 @@ YY_RULE_SETUP
case 11:
/* rule 11 can match eol */
YY_RULE_SETUP
#line 171 "agent_lexer.ll"
#line 172 "agent_lexer.ll"
{
/* Newline found. Let's update the location and continue. */
driver.loc_.lines(yyleng);
@ -2089,7 +2090,7 @@ YY_RULE_SETUP
YY_BREAK
case 12:
YY_RULE_SETUP
#line 178 "agent_lexer.ll"
#line 179 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::CONFIG:
@ -2101,7 +2102,7 @@ YY_RULE_SETUP
YY_BREAK
case 13:
YY_RULE_SETUP
#line 187 "agent_lexer.ll"
#line 188 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::AGENT:
@ -2113,7 +2114,7 @@ YY_RULE_SETUP
YY_BREAK
case 14:
YY_RULE_SETUP
#line 196 "agent_lexer.ll"
#line 197 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::AGENT:
@ -2125,7 +2126,7 @@ YY_RULE_SETUP
YY_BREAK
case 15:
YY_RULE_SETUP
#line 205 "agent_lexer.ll"
#line 206 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::AGENT:
@ -2141,7 +2142,7 @@ YY_RULE_SETUP
YY_BREAK
case 16:
YY_RULE_SETUP
#line 218 "agent_lexer.ll"
#line 219 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::AGENT:
@ -2157,7 +2158,7 @@ YY_RULE_SETUP
YY_BREAK
case 17:
YY_RULE_SETUP
#line 231 "agent_lexer.ll"
#line 232 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::AGENT:
@ -2169,7 +2170,7 @@ YY_RULE_SETUP
YY_BREAK
case 18:
YY_RULE_SETUP
#line 240 "agent_lexer.ll"
#line 241 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::AUTHENTICATION:
@ -2181,7 +2182,7 @@ YY_RULE_SETUP
YY_BREAK
case 19:
YY_RULE_SETUP
#line 249 "agent_lexer.ll"
#line 250 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::AUTH_TYPE:
@ -2193,7 +2194,7 @@ YY_RULE_SETUP
YY_BREAK
case 20:
YY_RULE_SETUP
#line 258 "agent_lexer.ll"
#line 259 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::AUTHENTICATION:
@ -2205,7 +2206,7 @@ YY_RULE_SETUP
YY_BREAK
case 21:
YY_RULE_SETUP
#line 267 "agent_lexer.ll"
#line 268 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::AUTHENTICATION:
@ -2217,7 +2218,7 @@ YY_RULE_SETUP
YY_BREAK
case 22:
YY_RULE_SETUP
#line 276 "agent_lexer.ll"
#line 277 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::AUTHENTICATION:
@ -2229,7 +2230,7 @@ YY_RULE_SETUP
YY_BREAK
case 23:
YY_RULE_SETUP
#line 285 "agent_lexer.ll"
#line 286 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::CLIENTS:
@ -2241,7 +2242,7 @@ YY_RULE_SETUP
YY_BREAK
case 24:
YY_RULE_SETUP
#line 294 "agent_lexer.ll"
#line 295 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::CLIENTS:
@ -2253,7 +2254,7 @@ YY_RULE_SETUP
YY_BREAK
case 25:
YY_RULE_SETUP
#line 303 "agent_lexer.ll"
#line 304 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::CLIENTS:
@ -2265,7 +2266,7 @@ YY_RULE_SETUP
YY_BREAK
case 26:
YY_RULE_SETUP
#line 312 "agent_lexer.ll"
#line 313 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::CLIENTS:
@ -2277,7 +2278,7 @@ YY_RULE_SETUP
YY_BREAK
case 27:
YY_RULE_SETUP
#line 321 "agent_lexer.ll"
#line 322 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::AGENT:
@ -2289,7 +2290,7 @@ YY_RULE_SETUP
YY_BREAK
case 28:
YY_RULE_SETUP
#line 330 "agent_lexer.ll"
#line 331 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::AGENT:
@ -2301,7 +2302,7 @@ YY_RULE_SETUP
YY_BREAK
case 29:
YY_RULE_SETUP
#line 339 "agent_lexer.ll"
#line 340 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::AGENT:
@ -2313,7 +2314,7 @@ YY_RULE_SETUP
YY_BREAK
case 30:
YY_RULE_SETUP
#line 348 "agent_lexer.ll"
#line 349 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::AGENT:
@ -2325,7 +2326,7 @@ YY_RULE_SETUP
YY_BREAK
case 31:
YY_RULE_SETUP
#line 357 "agent_lexer.ll"
#line 358 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::AGENT:
@ -2337,7 +2338,7 @@ YY_RULE_SETUP
YY_BREAK
case 32:
YY_RULE_SETUP
#line 366 "agent_lexer.ll"
#line 367 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::CONTROL_SOCKETS:
@ -2349,7 +2350,7 @@ YY_RULE_SETUP
YY_BREAK
case 33:
YY_RULE_SETUP
#line 375 "agent_lexer.ll"
#line 376 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::CONTROL_SOCKETS:
@ -2361,7 +2362,7 @@ YY_RULE_SETUP
YY_BREAK
case 34:
YY_RULE_SETUP
#line 384 "agent_lexer.ll"
#line 385 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::CONTROL_SOCKETS:
@ -2373,7 +2374,7 @@ YY_RULE_SETUP
YY_BREAK
case 35:
YY_RULE_SETUP
#line 393 "agent_lexer.ll"
#line 394 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::SERVER:
@ -2385,7 +2386,7 @@ YY_RULE_SETUP
YY_BREAK
case 36:
YY_RULE_SETUP
#line 402 "agent_lexer.ll"
#line 403 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::SERVER:
@ -2397,7 +2398,7 @@ YY_RULE_SETUP
YY_BREAK
case 37:
YY_RULE_SETUP
#line 411 "agent_lexer.ll"
#line 412 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::SOCKET_TYPE:
@ -2409,7 +2410,7 @@ YY_RULE_SETUP
YY_BREAK
case 38:
YY_RULE_SETUP
#line 420 "agent_lexer.ll"
#line 421 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::AGENT:
@ -2421,7 +2422,7 @@ YY_RULE_SETUP
YY_BREAK
case 39:
YY_RULE_SETUP
#line 429 "agent_lexer.ll"
#line 430 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::HOOKS_LIBRARIES:
@ -2433,7 +2434,7 @@ YY_RULE_SETUP
YY_BREAK
case 40:
YY_RULE_SETUP
#line 438 "agent_lexer.ll"
#line 439 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::HOOKS_LIBRARIES:
@ -2445,7 +2446,7 @@ YY_RULE_SETUP
YY_BREAK
case 41:
YY_RULE_SETUP
#line 447 "agent_lexer.ll"
#line 448 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::AGENT:
@ -2457,7 +2458,7 @@ YY_RULE_SETUP
YY_BREAK
case 42:
YY_RULE_SETUP
#line 456 "agent_lexer.ll"
#line 457 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::LOGGERS:
@ -2469,7 +2470,7 @@ YY_RULE_SETUP
YY_BREAK
case 43:
YY_RULE_SETUP
#line 465 "agent_lexer.ll"
#line 466 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::LOGGERS:
@ -2481,7 +2482,7 @@ YY_RULE_SETUP
YY_BREAK
case 44:
YY_RULE_SETUP
#line 474 "agent_lexer.ll"
#line 475 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::OUTPUT_OPTIONS:
@ -2493,7 +2494,7 @@ YY_RULE_SETUP
YY_BREAK
case 45:
YY_RULE_SETUP
#line 483 "agent_lexer.ll"
#line 484 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::OUTPUT_OPTIONS:
@ -2505,7 +2506,7 @@ YY_RULE_SETUP
YY_BREAK
case 46:
YY_RULE_SETUP
#line 492 "agent_lexer.ll"
#line 493 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::OUTPUT_OPTIONS:
@ -2517,7 +2518,7 @@ YY_RULE_SETUP
YY_BREAK
case 47:
YY_RULE_SETUP
#line 501 "agent_lexer.ll"
#line 502 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::OUTPUT_OPTIONS:
@ -2529,7 +2530,7 @@ YY_RULE_SETUP
YY_BREAK
case 48:
YY_RULE_SETUP
#line 510 "agent_lexer.ll"
#line 511 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::OUTPUT_OPTIONS:
@ -2541,7 +2542,7 @@ YY_RULE_SETUP
YY_BREAK
case 49:
YY_RULE_SETUP
#line 519 "agent_lexer.ll"
#line 520 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::LOGGERS:
@ -2553,7 +2554,7 @@ YY_RULE_SETUP
YY_BREAK
case 50:
YY_RULE_SETUP
#line 528 "agent_lexer.ll"
#line 529 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::LOGGERS:
@ -2565,7 +2566,7 @@ YY_RULE_SETUP
YY_BREAK
case 51:
YY_RULE_SETUP
#line 537 "agent_lexer.ll"
#line 538 "agent_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.
@ -2670,7 +2671,7 @@ YY_RULE_SETUP
case 52:
/* rule 52 can match eol */
YY_RULE_SETUP
#line 638 "agent_lexer.ll"
#line 639 "agent_lexer.ll"
{
/* Bad string with a forbidden control character inside */
std::string raw(yytext+1);
@ -2690,7 +2691,7 @@ YY_RULE_SETUP
case 53:
/* rule 53 can match eol */
YY_RULE_SETUP
#line 654 "agent_lexer.ll"
#line 655 "agent_lexer.ll"
{
/* Bad string with a bad escape inside */
std::string raw(yytext+1);
@ -2742,7 +2743,7 @@ YY_RULE_SETUP
YY_BREAK
case 54:
YY_RULE_SETUP
#line 703 "agent_lexer.ll"
#line 704 "agent_lexer.ll"
{
/* Bad string with an open escape at the end */
std::string raw(yytext+1);
@ -2753,7 +2754,7 @@ YY_RULE_SETUP
YY_BREAK
case 55:
YY_RULE_SETUP
#line 711 "agent_lexer.ll"
#line 712 "agent_lexer.ll"
{
/* Bad string with an open unicode escape at the end */
std::string raw(yytext+1);
@ -2771,37 +2772,37 @@ YY_RULE_SETUP
YY_BREAK
case 56:
YY_RULE_SETUP
#line 726 "agent_lexer.ll"
#line 727 "agent_lexer.ll"
{ return AgentParser::make_LSQUARE_BRACKET(driver.loc_); }
YY_BREAK
case 57:
YY_RULE_SETUP
#line 727 "agent_lexer.ll"
#line 728 "agent_lexer.ll"
{ return AgentParser::make_RSQUARE_BRACKET(driver.loc_); }
YY_BREAK
case 58:
YY_RULE_SETUP
#line 728 "agent_lexer.ll"
#line 729 "agent_lexer.ll"
{ return AgentParser::make_LCURLY_BRACKET(driver.loc_); }
YY_BREAK
case 59:
YY_RULE_SETUP
#line 729 "agent_lexer.ll"
#line 730 "agent_lexer.ll"
{ return AgentParser::make_RCURLY_BRACKET(driver.loc_); }
YY_BREAK
case 60:
YY_RULE_SETUP
#line 730 "agent_lexer.ll"
#line 731 "agent_lexer.ll"
{ return AgentParser::make_COMMA(driver.loc_); }
YY_BREAK
case 61:
YY_RULE_SETUP
#line 731 "agent_lexer.ll"
#line 732 "agent_lexer.ll"
{ return AgentParser::make_COLON(driver.loc_); }
YY_BREAK
case 62:
YY_RULE_SETUP
#line 733 "agent_lexer.ll"
#line 734 "agent_lexer.ll"
{
/* An integer was found. */
std::string tmp(yytext);
@ -2822,7 +2823,7 @@ YY_RULE_SETUP
YY_BREAK
case 63:
YY_RULE_SETUP
#line 751 "agent_lexer.ll"
#line 752 "agent_lexer.ll"
{
/* A floating point was found. */
std::string tmp(yytext);
@ -2838,7 +2839,7 @@ YY_RULE_SETUP
YY_BREAK
case 64:
YY_RULE_SETUP
#line 764 "agent_lexer.ll"
#line 765 "agent_lexer.ll"
{
string tmp(yytext);
return AgentParser::make_BOOLEAN(tmp == "true", driver.loc_);
@ -2846,33 +2847,33 @@ YY_RULE_SETUP
YY_BREAK
case 65:
YY_RULE_SETUP
#line 769 "agent_lexer.ll"
#line 770 "agent_lexer.ll"
{
return AgentParser::make_NULL_TYPE(driver.loc_);
}
YY_BREAK
case 66:
YY_RULE_SETUP
#line 773 "agent_lexer.ll"
#line 774 "agent_lexer.ll"
driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
YY_BREAK
case 67:
YY_RULE_SETUP
#line 775 "agent_lexer.ll"
#line 776 "agent_lexer.ll"
driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
YY_BREAK
case 68:
YY_RULE_SETUP
#line 777 "agent_lexer.ll"
#line 778 "agent_lexer.ll"
driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
YY_BREAK
case 69:
YY_RULE_SETUP
#line 779 "agent_lexer.ll"
#line 780 "agent_lexer.ll"
driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
YY_BREAK
case YY_STATE_EOF(INITIAL):
#line 781 "agent_lexer.ll"
#line 782 "agent_lexer.ll"
{
if (driver.states_.empty()) {
return AgentParser::make_END(driver.loc_);
@ -2898,10 +2899,10 @@ case YY_STATE_EOF(INITIAL):
YY_BREAK
case 70:
YY_RULE_SETUP
#line 804 "agent_lexer.ll"
#line 805 "agent_lexer.ll"
ECHO;
YY_BREAK
#line 2904 "agent_lexer.cc"
#line 2905 "agent_lexer.cc"
case YY_END_OF_BUFFER:
{
@ -4006,7 +4007,7 @@ void yyfree (void * ptr )
/* %ok-for-header */
#line 804 "agent_lexer.ll"
#line 805 "agent_lexer.ll"
using namespace isc::dhcp;

View File

@ -1,3 +1,4 @@
// Generated 202308031547
// A Bison parser, made by GNU Bison 3.8.2.
// Locations for Bison parsers in C++

View File

@ -1078,13 +1078,13 @@ int yy_flex_debug = 1;
static const flex_int16_t yy_rule_linenum[68] =
{ 0,
136, 138, 140, 145, 146, 151, 152, 153, 165, 168,
173, 179, 188, 199, 210, 219, 228, 237, 247, 257,
267, 284, 301, 310, 319, 329, 341, 351, 362, 371,
381, 391, 401, 410, 419, 428, 437, 446, 455, 464,
473, 482, 491, 500, 509, 518, 531, 540, 549, 650,
666, 715, 723, 738, 739, 740, 741, 742, 743, 745,
763, 776, 781, 785, 787, 789, 791
137, 139, 141, 146, 147, 152, 153, 154, 166, 169,
174, 180, 189, 200, 211, 220, 229, 238, 248, 258,
268, 285, 302, 311, 320, 330, 342, 352, 363, 372,
382, 392, 402, 411, 420, 429, 438, 447, 456, 465,
474, 483, 492, 501, 510, 519, 532, 541, 550, 651,
667, 716, 724, 739, 740, 741, 742, 743, 744, 746,
764, 777, 782, 786, 788, 790, 792
} ;
/* The intent behind this definition is that it'll catch
@ -1109,6 +1109,7 @@ char *yytext;
#include <cctype>
#include <cerrno>
#include <climits>
#include <cstdint>
#include <cstdlib>
#include <string>
#include <d2/parser_context.h>
@ -1136,7 +1137,7 @@ unsigned int comment_start_line = 0;
/* To avoid the call to exit... oops! */
#define YY_FATAL_ERROR(msg) isc::d2::D2ParserContext::fatal(msg)
#line 1139 "d2_lexer.cc"
#line 1140 "d2_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 yywrap requires linking with -lfl, which provides the default yywrap
@ -1157,13 +1158,13 @@ unsigned int comment_start_line = 0;
can be used during actual token definitions. Note some can match
incorrect inputs (e.g., IP addresses) which must be checked. */
/* for errors */
#line 93 "d2_lexer.ll"
#line 94 "d2_lexer.ll"
/* 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 driver.loc_.columns(yyleng);
#line 1165 "d2_lexer.cc"
#line 1166 "d2_lexer.cc"
#line 1167 "d2_lexer.cc"
#define INITIAL 0
#define COMMENT 1
@ -1445,11 +1446,11 @@ YY_DECL
{
/* %% [7.0] user's declarations go here */
#line 99 "d2_lexer.ll"
#line 100 "d2_lexer.ll"
#line 103 "d2_lexer.ll"
#line 104 "d2_lexer.ll"
/* This part of the code is copied over to the verbatim to the top
of the generated yylex function. Explanation:
http://www.gnu.org/software/bison/manual/html_node/Multiple-start_002dsymbols.html */
@ -1483,7 +1484,7 @@ YY_DECL
}
#line 1486 "d2_lexer.cc"
#line 1487 "d2_lexer.cc"
while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
{
@ -1561,17 +1562,17 @@ do_action: /* This label is used only to access EOF actions. */
case 1:
YY_RULE_SETUP
#line 136 "d2_lexer.ll"
#line 137 "d2_lexer.ll"
;
YY_BREAK
case 2:
YY_RULE_SETUP
#line 138 "d2_lexer.ll"
#line 139 "d2_lexer.ll"
;
YY_BREAK
case 3:
YY_RULE_SETUP
#line 140 "d2_lexer.ll"
#line 141 "d2_lexer.ll"
{
BEGIN(COMMENT);
comment_start_line = driver.loc_.end.line;;
@ -1579,33 +1580,33 @@ YY_RULE_SETUP
YY_BREAK
case 4:
YY_RULE_SETUP
#line 145 "d2_lexer.ll"
#line 146 "d2_lexer.ll"
BEGIN(INITIAL);
YY_BREAK
case 5:
YY_RULE_SETUP
#line 146 "d2_lexer.ll"
#line 147 "d2_lexer.ll"
;
YY_BREAK
case YY_STATE_EOF(COMMENT):
#line 147 "d2_lexer.ll"
#line 148 "d2_lexer.ll"
{
isc_throw(D2ParseError, "Comment not closed. (/* in line " << comment_start_line);
}
YY_BREAK
case 6:
YY_RULE_SETUP
#line 151 "d2_lexer.ll"
#line 152 "d2_lexer.ll"
BEGIN(DIR_ENTER);
YY_BREAK
case 7:
YY_RULE_SETUP
#line 152 "d2_lexer.ll"
#line 153 "d2_lexer.ll"
BEGIN(DIR_INCLUDE);
YY_BREAK
case 8:
YY_RULE_SETUP
#line 153 "d2_lexer.ll"
#line 154 "d2_lexer.ll"
{
/* Include directive. */
@ -1619,19 +1620,19 @@ YY_RULE_SETUP
case YY_STATE_EOF(DIR_ENTER):
case YY_STATE_EOF(DIR_INCLUDE):
case YY_STATE_EOF(DIR_EXIT):
#line 162 "d2_lexer.ll"
#line 163 "d2_lexer.ll"
{
isc_throw(D2ParseError, "Directive not closed.");
}
YY_BREAK
case 9:
YY_RULE_SETUP
#line 165 "d2_lexer.ll"
#line 166 "d2_lexer.ll"
BEGIN(INITIAL);
YY_BREAK
case 10:
YY_RULE_SETUP
#line 168 "d2_lexer.ll"
#line 169 "d2_lexer.ll"
{
/* Ok, we found a with space. Let's ignore it and update loc variable. */
driver.loc_.step();
@ -1640,7 +1641,7 @@ YY_RULE_SETUP
case 11:
/* rule 11 can match eol */
YY_RULE_SETUP
#line 173 "d2_lexer.ll"
#line 174 "d2_lexer.ll"
{
/* Newline found. Let's update the location and continue. */
driver.loc_.lines(yyleng);
@ -1649,7 +1650,7 @@ YY_RULE_SETUP
YY_BREAK
case 12:
YY_RULE_SETUP
#line 179 "d2_lexer.ll"
#line 180 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::CONFIG:
@ -1661,7 +1662,7 @@ YY_RULE_SETUP
YY_BREAK
case 13:
YY_RULE_SETUP
#line 188 "d2_lexer.ll"
#line 189 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::DHCPDDNS:
@ -1675,7 +1676,7 @@ YY_RULE_SETUP
YY_BREAK
case 14:
YY_RULE_SETUP
#line 199 "d2_lexer.ll"
#line 200 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::DHCPDDNS:
@ -1689,7 +1690,7 @@ YY_RULE_SETUP
YY_BREAK
case 15:
YY_RULE_SETUP
#line 210 "d2_lexer.ll"
#line 211 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::DHCPDDNS:
@ -1701,7 +1702,7 @@ YY_RULE_SETUP
YY_BREAK
case 16:
YY_RULE_SETUP
#line 219 "d2_lexer.ll"
#line 220 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::DHCPDDNS:
@ -1713,7 +1714,7 @@ YY_RULE_SETUP
YY_BREAK
case 17:
YY_RULE_SETUP
#line 228 "d2_lexer.ll"
#line 229 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::DHCPDDNS:
@ -1725,7 +1726,7 @@ YY_RULE_SETUP
YY_BREAK
case 18:
YY_RULE_SETUP
#line 237 "d2_lexer.ll"
#line 238 "d2_lexer.ll"
{
/* dhcp-ddns value keywords are case insensitive */
if (driver.ctx_ == isc::d2::D2ParserContext::NCR_PROTOCOL) {
@ -1738,7 +1739,7 @@ YY_RULE_SETUP
YY_BREAK
case 19:
YY_RULE_SETUP
#line 247 "d2_lexer.ll"
#line 248 "d2_lexer.ll"
{
/* dhcp-ddns value keywords are case insensitive */
if (driver.ctx_ == isc::d2::D2ParserContext::NCR_PROTOCOL) {
@ -1751,7 +1752,7 @@ YY_RULE_SETUP
YY_BREAK
case 20:
YY_RULE_SETUP
#line 257 "d2_lexer.ll"
#line 258 "d2_lexer.ll"
{
/* dhcp-ddns value keywords are case insensitive */
if (driver.ctx_ == isc::d2::D2ParserContext::NCR_FORMAT) {
@ -1764,7 +1765,7 @@ YY_RULE_SETUP
YY_BREAK
case 21:
YY_RULE_SETUP
#line 267 "d2_lexer.ll"
#line 268 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::DHCPDDNS:
@ -1784,7 +1785,7 @@ YY_RULE_SETUP
YY_BREAK
case 22:
YY_RULE_SETUP
#line 284 "d2_lexer.ll"
#line 285 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::DHCPDDNS:
@ -1804,7 +1805,7 @@ YY_RULE_SETUP
YY_BREAK
case 23:
YY_RULE_SETUP
#line 301 "d2_lexer.ll"
#line 302 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::DHCPDDNS:
@ -1816,7 +1817,7 @@ YY_RULE_SETUP
YY_BREAK
case 24:
YY_RULE_SETUP
#line 310 "d2_lexer.ll"
#line 311 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::DHCPDDNS:
@ -1828,7 +1829,7 @@ YY_RULE_SETUP
YY_BREAK
case 25:
YY_RULE_SETUP
#line 319 "d2_lexer.ll"
#line 320 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::FORWARD_DDNS:
@ -1841,7 +1842,7 @@ YY_RULE_SETUP
YY_BREAK
case 26:
YY_RULE_SETUP
#line 329 "d2_lexer.ll"
#line 330 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::DDNS_DOMAIN:
@ -1856,7 +1857,7 @@ YY_RULE_SETUP
YY_BREAK
case 27:
YY_RULE_SETUP
#line 341 "d2_lexer.ll"
#line 342 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::DDNS_DOMAIN:
@ -1869,7 +1870,7 @@ YY_RULE_SETUP
YY_BREAK
case 28:
YY_RULE_SETUP
#line 351 "d2_lexer.ll"
#line 352 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::DNS_SERVER:
@ -1882,7 +1883,7 @@ YY_RULE_SETUP
YY_BREAK
case 29:
YY_RULE_SETUP
#line 362 "d2_lexer.ll"
#line 363 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::DHCPDDNS:
@ -1894,7 +1895,7 @@ YY_RULE_SETUP
YY_BREAK
case 30:
YY_RULE_SETUP
#line 371 "d2_lexer.ll"
#line 372 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::TSIG_KEY:
@ -1907,7 +1908,7 @@ YY_RULE_SETUP
YY_BREAK
case 31:
YY_RULE_SETUP
#line 381 "d2_lexer.ll"
#line 382 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::TSIG_KEY:
@ -1920,7 +1921,7 @@ YY_RULE_SETUP
YY_BREAK
case 32:
YY_RULE_SETUP
#line 391 "d2_lexer.ll"
#line 392 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::TSIG_KEY:
@ -1933,7 +1934,7 @@ YY_RULE_SETUP
YY_BREAK
case 33:
YY_RULE_SETUP
#line 401 "d2_lexer.ll"
#line 402 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::DHCPDDNS:
@ -1945,7 +1946,7 @@ YY_RULE_SETUP
YY_BREAK
case 34:
YY_RULE_SETUP
#line 410 "d2_lexer.ll"
#line 411 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::CONTROL_SOCKET:
@ -1957,7 +1958,7 @@ YY_RULE_SETUP
YY_BREAK
case 35:
YY_RULE_SETUP
#line 419 "d2_lexer.ll"
#line 420 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::CONTROL_SOCKET:
@ -1969,7 +1970,7 @@ YY_RULE_SETUP
YY_BREAK
case 36:
YY_RULE_SETUP
#line 428 "d2_lexer.ll"
#line 429 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::DHCPDDNS:
@ -1981,7 +1982,7 @@ YY_RULE_SETUP
YY_BREAK
case 37:
YY_RULE_SETUP
#line 437 "d2_lexer.ll"
#line 438 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::HOOKS_LIBRARIES:
@ -1993,7 +1994,7 @@ YY_RULE_SETUP
YY_BREAK
case 38:
YY_RULE_SETUP
#line 446 "d2_lexer.ll"
#line 447 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::HOOKS_LIBRARIES:
@ -2005,7 +2006,7 @@ YY_RULE_SETUP
YY_BREAK
case 39:
YY_RULE_SETUP
#line 455 "d2_lexer.ll"
#line 456 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::DHCPDDNS:
@ -2017,7 +2018,7 @@ YY_RULE_SETUP
YY_BREAK
case 40:
YY_RULE_SETUP
#line 464 "d2_lexer.ll"
#line 465 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::LOGGERS:
@ -2029,7 +2030,7 @@ YY_RULE_SETUP
YY_BREAK
case 41:
YY_RULE_SETUP
#line 473 "d2_lexer.ll"
#line 474 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::OUTPUT_OPTIONS:
@ -2041,7 +2042,7 @@ YY_RULE_SETUP
YY_BREAK
case 42:
YY_RULE_SETUP
#line 482 "d2_lexer.ll"
#line 483 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::OUTPUT_OPTIONS:
@ -2053,7 +2054,7 @@ YY_RULE_SETUP
YY_BREAK
case 43:
YY_RULE_SETUP
#line 491 "d2_lexer.ll"
#line 492 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::OUTPUT_OPTIONS:
@ -2065,7 +2066,7 @@ YY_RULE_SETUP
YY_BREAK
case 44:
YY_RULE_SETUP
#line 500 "d2_lexer.ll"
#line 501 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::OUTPUT_OPTIONS:
@ -2077,7 +2078,7 @@ YY_RULE_SETUP
YY_BREAK
case 45:
YY_RULE_SETUP
#line 509 "d2_lexer.ll"
#line 510 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::OUTPUT_OPTIONS:
@ -2089,7 +2090,7 @@ YY_RULE_SETUP
YY_BREAK
case 46:
YY_RULE_SETUP
#line 518 "d2_lexer.ll"
#line 519 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::LOGGERS:
@ -2105,7 +2106,7 @@ YY_RULE_SETUP
YY_BREAK
case 47:
YY_RULE_SETUP
#line 531 "d2_lexer.ll"
#line 532 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::LOGGERS:
@ -2117,7 +2118,7 @@ YY_RULE_SETUP
YY_BREAK
case 48:
YY_RULE_SETUP
#line 540 "d2_lexer.ll"
#line 541 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::LOGGERS:
@ -2129,7 +2130,7 @@ YY_RULE_SETUP
YY_BREAK
case 49:
YY_RULE_SETUP
#line 549 "d2_lexer.ll"
#line 550 "d2_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.
@ -2234,7 +2235,7 @@ YY_RULE_SETUP
case 50:
/* rule 50 can match eol */
YY_RULE_SETUP
#line 650 "d2_lexer.ll"
#line 651 "d2_lexer.ll"
{
/* Bad string with a forbidden control character inside */
std::string raw(yytext+1);
@ -2254,7 +2255,7 @@ YY_RULE_SETUP
case 51:
/* rule 51 can match eol */
YY_RULE_SETUP
#line 666 "d2_lexer.ll"
#line 667 "d2_lexer.ll"
{
/* Bad string with a bad escape inside */
std::string raw(yytext+1);
@ -2306,7 +2307,7 @@ YY_RULE_SETUP
YY_BREAK
case 52:
YY_RULE_SETUP
#line 715 "d2_lexer.ll"
#line 716 "d2_lexer.ll"
{
/* Bad string with an open escape at the end */
std::string raw(yytext+1);
@ -2317,7 +2318,7 @@ YY_RULE_SETUP
YY_BREAK
case 53:
YY_RULE_SETUP
#line 723 "d2_lexer.ll"
#line 724 "d2_lexer.ll"
{
/* Bad string with an open unicode escape at the end */
std::string raw(yytext+1);
@ -2335,37 +2336,37 @@ YY_RULE_SETUP
YY_BREAK
case 54:
YY_RULE_SETUP
#line 738 "d2_lexer.ll"
#line 739 "d2_lexer.ll"
{ return isc::d2::D2Parser::make_LSQUARE_BRACKET(driver.loc_); }
YY_BREAK
case 55:
YY_RULE_SETUP
#line 739 "d2_lexer.ll"
#line 740 "d2_lexer.ll"
{ return isc::d2::D2Parser::make_RSQUARE_BRACKET(driver.loc_); }
YY_BREAK
case 56:
YY_RULE_SETUP
#line 740 "d2_lexer.ll"
#line 741 "d2_lexer.ll"
{ return isc::d2::D2Parser::make_LCURLY_BRACKET(driver.loc_); }
YY_BREAK
case 57:
YY_RULE_SETUP
#line 741 "d2_lexer.ll"
#line 742 "d2_lexer.ll"
{ return isc::d2::D2Parser::make_RCURLY_BRACKET(driver.loc_); }
YY_BREAK
case 58:
YY_RULE_SETUP
#line 742 "d2_lexer.ll"
#line 743 "d2_lexer.ll"
{ return isc::d2::D2Parser::make_COMMA(driver.loc_); }
YY_BREAK
case 59:
YY_RULE_SETUP
#line 743 "d2_lexer.ll"
#line 744 "d2_lexer.ll"
{ return isc::d2::D2Parser::make_COLON(driver.loc_); }
YY_BREAK
case 60:
YY_RULE_SETUP
#line 745 "d2_lexer.ll"
#line 746 "d2_lexer.ll"
{
/* An integer was found. */
std::string tmp(yytext);
@ -2386,7 +2387,7 @@ YY_RULE_SETUP
YY_BREAK
case 61:
YY_RULE_SETUP
#line 763 "d2_lexer.ll"
#line 764 "d2_lexer.ll"
{
/* A floating point was found. */
std::string tmp(yytext);
@ -2402,7 +2403,7 @@ YY_RULE_SETUP
YY_BREAK
case 62:
YY_RULE_SETUP
#line 776 "d2_lexer.ll"
#line 777 "d2_lexer.ll"
{
string tmp(yytext);
return isc::d2::D2Parser::make_BOOLEAN(tmp == "true", driver.loc_);
@ -2410,33 +2411,33 @@ YY_RULE_SETUP
YY_BREAK
case 63:
YY_RULE_SETUP
#line 781 "d2_lexer.ll"
#line 782 "d2_lexer.ll"
{
return isc::d2::D2Parser::make_NULL_TYPE(driver.loc_);
}
YY_BREAK
case 64:
YY_RULE_SETUP
#line 785 "d2_lexer.ll"
#line 786 "d2_lexer.ll"
driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
YY_BREAK
case 65:
YY_RULE_SETUP
#line 787 "d2_lexer.ll"
#line 788 "d2_lexer.ll"
driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
YY_BREAK
case 66:
YY_RULE_SETUP
#line 789 "d2_lexer.ll"
#line 790 "d2_lexer.ll"
driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
YY_BREAK
case 67:
YY_RULE_SETUP
#line 791 "d2_lexer.ll"
#line 792 "d2_lexer.ll"
driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
YY_BREAK
case YY_STATE_EOF(INITIAL):
#line 793 "d2_lexer.ll"
#line 794 "d2_lexer.ll"
{
if (driver.states_.empty()) {
return isc::d2::D2Parser::make_END(driver.loc_);
@ -2462,10 +2463,10 @@ case YY_STATE_EOF(INITIAL):
YY_BREAK
case 68:
YY_RULE_SETUP
#line 816 "d2_lexer.ll"
#line 817 "d2_lexer.ll"
ECHO;
YY_BREAK
#line 2468 "d2_lexer.cc"
#line 2469 "d2_lexer.cc"
case YY_END_OF_BUFFER:
{
@ -3570,7 +3571,7 @@ void yyfree (void * ptr )
/* %ok-for-header */
#line 816 "d2_lexer.ll"
#line 817 "d2_lexer.ll"
using namespace isc::dhcp;

View File

@ -1,3 +1,4 @@
// Generated 202308031547
// A Bison parser, made by GNU Bison 3.8.2.
// Locations for Bison parsers in C++

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,4 @@
// Generated 202308031547
// A Bison parser, made by GNU Bison 3.8.2.
// Locations for Bison parsers in C++

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,4 @@
// Generated 202308031547
// A Bison parser, made by GNU Bison 3.8.2.
// Locations for Bison parsers in C++

View File

@ -1,3 +1,4 @@
// Generated 202308031548
// A Bison parser, made by GNU Bison 3.8.2.
// Locations for Bison parsers in C++

View File

@ -1440,13 +1440,13 @@ int yy_flex_debug = 1;
static const flex_int16_t yy_rule_linenum[63] =
{ 0,
134, 136, 138, 143, 144, 149, 150, 151, 163, 166,
171, 178, 187, 199, 211, 221, 231, 241, 250, 259,
268, 277, 286, 295, 304, 313, 322, 331, 340, 349,
358, 367, 376, 385, 394, 403, 412, 421, 430, 439,
448, 457, 466, 475, 576, 592, 641, 649, 664, 665,
666, 667, 668, 669, 671, 689, 702, 707, 711, 713,
715, 717
135, 137, 139, 144, 145, 150, 151, 152, 164, 167,
172, 179, 188, 200, 212, 222, 232, 242, 251, 260,
269, 278, 287, 296, 305, 314, 323, 332, 341, 350,
359, 368, 377, 386, 395, 404, 413, 422, 431, 440,
449, 458, 467, 476, 577, 593, 642, 650, 665, 666,
667, 668, 669, 670, 672, 690, 703, 708, 712, 714,
716, 718
} ;
/* The intent behind this definition is that it'll catch
@ -1458,7 +1458,7 @@ static const flex_int16_t yy_rule_linenum[63] =
#define YY_RESTORE_YY_MORE_OFFSET
char *yytext;
#line 1 "netconf_lexer.ll"
/* Copyright (C) 2018-2020 Internet Systems Consortium, Inc. ("ISC")
/* Copyright (C) 2018-2023 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
@ -1471,6 +1471,7 @@ char *yytext;
#include <cctype>
#include <cerrno>
#include <climits>
#include <cstdint>
#include <cstdlib>
#include <string>
#include <netconf/parser_context.h>
@ -1502,7 +1503,7 @@ using isc::netconf::NetconfParser;
/* To avoid the call to exit... oops! */
#define YY_FATAL_ERROR(msg) isc::netconf::ParserContext::fatal(msg)
#line 1505 "netconf_lexer.cc"
#line 1506 "netconf_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 yywrap requires linking with -lfl, which provides the default yywrap
@ -1523,13 +1524,13 @@ using isc::netconf::NetconfParser;
can be used during actual token definitions. Note some can match
incorrect inputs (e.g., IP addresses) which must be checked. */
/* for errors */
#line 97 "netconf_lexer.ll"
#line 98 "netconf_lexer.ll"
/* 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 driver.loc_.columns(yyleng);
#line 1531 "netconf_lexer.cc"
#line 1532 "netconf_lexer.cc"
#line 1533 "netconf_lexer.cc"
#define INITIAL 0
#define COMMENT 1
@ -1811,11 +1812,11 @@ YY_DECL
{
/* %% [7.0] user's declarations go here */
#line 103 "netconf_lexer.ll"
#line 104 "netconf_lexer.ll"
#line 107 "netconf_lexer.ll"
#line 108 "netconf_lexer.ll"
/* This part of the code is copied over to the verbatim to the top
of the generated yylex function. Explanation:
http://www.gnu.org/software/bison/manual/html_node/Multiple-start_002dsymbols.html */
@ -1843,7 +1844,7 @@ YY_DECL
}
#line 1846 "netconf_lexer.cc"
#line 1847 "netconf_lexer.cc"
while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
{
@ -1921,17 +1922,17 @@ do_action: /* This label is used only to access EOF actions. */
case 1:
YY_RULE_SETUP
#line 134 "netconf_lexer.ll"
#line 135 "netconf_lexer.ll"
;
YY_BREAK
case 2:
YY_RULE_SETUP
#line 136 "netconf_lexer.ll"
#line 137 "netconf_lexer.ll"
;
YY_BREAK
case 3:
YY_RULE_SETUP
#line 138 "netconf_lexer.ll"
#line 139 "netconf_lexer.ll"
{
BEGIN(COMMENT);
comment_start_line = driver.loc_.end.line;;
@ -1939,33 +1940,33 @@ YY_RULE_SETUP
YY_BREAK
case 4:
YY_RULE_SETUP
#line 143 "netconf_lexer.ll"
#line 144 "netconf_lexer.ll"
BEGIN(INITIAL);
YY_BREAK
case 5:
YY_RULE_SETUP
#line 144 "netconf_lexer.ll"
#line 145 "netconf_lexer.ll"
;
YY_BREAK
case YY_STATE_EOF(COMMENT):
#line 145 "netconf_lexer.ll"
#line 146 "netconf_lexer.ll"
{
isc_throw(ParseError, "Comment not closed. (/* in line " << comment_start_line);
}
YY_BREAK
case 6:
YY_RULE_SETUP
#line 149 "netconf_lexer.ll"
#line 150 "netconf_lexer.ll"
BEGIN(DIR_ENTER);
YY_BREAK
case 7:
YY_RULE_SETUP
#line 150 "netconf_lexer.ll"
#line 151 "netconf_lexer.ll"
BEGIN(DIR_INCLUDE);
YY_BREAK
case 8:
YY_RULE_SETUP
#line 151 "netconf_lexer.ll"
#line 152 "netconf_lexer.ll"
{
/* Include directive. */
@ -1979,19 +1980,19 @@ YY_RULE_SETUP
case YY_STATE_EOF(DIR_ENTER):
case YY_STATE_EOF(DIR_INCLUDE):
case YY_STATE_EOF(DIR_EXIT):
#line 160 "netconf_lexer.ll"
#line 161 "netconf_lexer.ll"
{
isc_throw(ParseError, "Directive not closed.");
}
YY_BREAK
case 9:
YY_RULE_SETUP
#line 163 "netconf_lexer.ll"
#line 164 "netconf_lexer.ll"
BEGIN(INITIAL);
YY_BREAK
case 10:
YY_RULE_SETUP
#line 166 "netconf_lexer.ll"
#line 167 "netconf_lexer.ll"
{
/* Ok, we found a with space. Let's ignore it and update loc variable. */
driver.loc_.step();
@ -2000,7 +2001,7 @@ YY_RULE_SETUP
case 11:
/* rule 11 can match eol */
YY_RULE_SETUP
#line 171 "netconf_lexer.ll"
#line 172 "netconf_lexer.ll"
{
/* Newline found. Let's update the location and continue. */
driver.loc_.lines(yyleng);
@ -2009,7 +2010,7 @@ YY_RULE_SETUP
YY_BREAK
case 12:
YY_RULE_SETUP
#line 178 "netconf_lexer.ll"
#line 179 "netconf_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::CONFIG:
@ -2021,7 +2022,7 @@ YY_RULE_SETUP
YY_BREAK
case 13:
YY_RULE_SETUP
#line 187 "netconf_lexer.ll"
#line 188 "netconf_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::NETCONF:
@ -2036,7 +2037,7 @@ YY_RULE_SETUP
YY_BREAK
case 14:
YY_RULE_SETUP
#line 199 "netconf_lexer.ll"
#line 200 "netconf_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::NETCONF:
@ -2051,7 +2052,7 @@ YY_RULE_SETUP
YY_BREAK
case 15:
YY_RULE_SETUP
#line 211 "netconf_lexer.ll"
#line 212 "netconf_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::NETCONF:
@ -2064,7 +2065,7 @@ YY_RULE_SETUP
YY_BREAK
case 16:
YY_RULE_SETUP
#line 221 "netconf_lexer.ll"
#line 222 "netconf_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::NETCONF:
@ -2077,7 +2078,7 @@ YY_RULE_SETUP
YY_BREAK
case 17:
YY_RULE_SETUP
#line 231 "netconf_lexer.ll"
#line 232 "netconf_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::NETCONF:
@ -2090,7 +2091,7 @@ YY_RULE_SETUP
YY_BREAK
case 18:
YY_RULE_SETUP
#line 241 "netconf_lexer.ll"
#line 242 "netconf_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::NETCONF:
@ -2102,7 +2103,7 @@ YY_RULE_SETUP
YY_BREAK
case 19:
YY_RULE_SETUP
#line 250 "netconf_lexer.ll"
#line 251 "netconf_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::MANAGED_SERVERS:
@ -2114,7 +2115,7 @@ YY_RULE_SETUP
YY_BREAK
case 20:
YY_RULE_SETUP
#line 259 "netconf_lexer.ll"
#line 260 "netconf_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::MANAGED_SERVERS:
@ -2126,7 +2127,7 @@ YY_RULE_SETUP
YY_BREAK
case 21:
YY_RULE_SETUP
#line 268 "netconf_lexer.ll"
#line 269 "netconf_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::MANAGED_SERVERS:
@ -2138,7 +2139,7 @@ YY_RULE_SETUP
YY_BREAK
case 22:
YY_RULE_SETUP
#line 277 "netconf_lexer.ll"
#line 278 "netconf_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::MANAGED_SERVERS:
@ -2150,7 +2151,7 @@ YY_RULE_SETUP
YY_BREAK
case 23:
YY_RULE_SETUP
#line 286 "netconf_lexer.ll"
#line 287 "netconf_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::SERVER:
@ -2162,7 +2163,7 @@ YY_RULE_SETUP
YY_BREAK
case 24:
YY_RULE_SETUP
#line 295 "netconf_lexer.ll"
#line 296 "netconf_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::SERVER:
@ -2174,7 +2175,7 @@ YY_RULE_SETUP
YY_BREAK
case 25:
YY_RULE_SETUP
#line 304 "netconf_lexer.ll"
#line 305 "netconf_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::SOCKET_TYPE:
@ -2186,7 +2187,7 @@ YY_RULE_SETUP
YY_BREAK
case 26:
YY_RULE_SETUP
#line 313 "netconf_lexer.ll"
#line 314 "netconf_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::SOCKET_TYPE:
@ -2198,7 +2199,7 @@ YY_RULE_SETUP
YY_BREAK
case 27:
YY_RULE_SETUP
#line 322 "netconf_lexer.ll"
#line 323 "netconf_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::SOCKET_TYPE:
@ -2210,7 +2211,7 @@ YY_RULE_SETUP
YY_BREAK
case 28:
YY_RULE_SETUP
#line 331 "netconf_lexer.ll"
#line 332 "netconf_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::CONTROL_SOCKET:
@ -2222,7 +2223,7 @@ YY_RULE_SETUP
YY_BREAK
case 29:
YY_RULE_SETUP
#line 340 "netconf_lexer.ll"
#line 341 "netconf_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::CONTROL_SOCKET:
@ -2234,7 +2235,7 @@ YY_RULE_SETUP
YY_BREAK
case 30:
YY_RULE_SETUP
#line 349 "netconf_lexer.ll"
#line 350 "netconf_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::CONTROL_SOCKET:
@ -2246,7 +2247,7 @@ YY_RULE_SETUP
YY_BREAK
case 31:
YY_RULE_SETUP
#line 358 "netconf_lexer.ll"
#line 359 "netconf_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::NETCONF:
@ -2258,7 +2259,7 @@ YY_RULE_SETUP
YY_BREAK
case 32:
YY_RULE_SETUP
#line 367 "netconf_lexer.ll"
#line 368 "netconf_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::HOOKS_LIBRARIES:
@ -2270,7 +2271,7 @@ YY_RULE_SETUP
YY_BREAK
case 33:
YY_RULE_SETUP
#line 376 "netconf_lexer.ll"
#line 377 "netconf_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::HOOKS_LIBRARIES:
@ -2282,7 +2283,7 @@ YY_RULE_SETUP
YY_BREAK
case 34:
YY_RULE_SETUP
#line 385 "netconf_lexer.ll"
#line 386 "netconf_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::NETCONF:
@ -2294,7 +2295,7 @@ YY_RULE_SETUP
YY_BREAK
case 35:
YY_RULE_SETUP
#line 394 "netconf_lexer.ll"
#line 395 "netconf_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::LOGGERS:
@ -2306,7 +2307,7 @@ YY_RULE_SETUP
YY_BREAK
case 36:
YY_RULE_SETUP
#line 403 "netconf_lexer.ll"
#line 404 "netconf_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::LOGGERS:
@ -2318,7 +2319,7 @@ YY_RULE_SETUP
YY_BREAK
case 37:
YY_RULE_SETUP
#line 412 "netconf_lexer.ll"
#line 413 "netconf_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::OUTPUT_OPTIONS:
@ -2330,7 +2331,7 @@ YY_RULE_SETUP
YY_BREAK
case 38:
YY_RULE_SETUP
#line 421 "netconf_lexer.ll"
#line 422 "netconf_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::OUTPUT_OPTIONS:
@ -2342,7 +2343,7 @@ YY_RULE_SETUP
YY_BREAK
case 39:
YY_RULE_SETUP
#line 430 "netconf_lexer.ll"
#line 431 "netconf_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::OUTPUT_OPTIONS:
@ -2354,7 +2355,7 @@ YY_RULE_SETUP
YY_BREAK
case 40:
YY_RULE_SETUP
#line 439 "netconf_lexer.ll"
#line 440 "netconf_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::OUTPUT_OPTIONS:
@ -2366,7 +2367,7 @@ YY_RULE_SETUP
YY_BREAK
case 41:
YY_RULE_SETUP
#line 448 "netconf_lexer.ll"
#line 449 "netconf_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::OUTPUT_OPTIONS:
@ -2378,7 +2379,7 @@ YY_RULE_SETUP
YY_BREAK
case 42:
YY_RULE_SETUP
#line 457 "netconf_lexer.ll"
#line 458 "netconf_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::LOGGERS:
@ -2390,7 +2391,7 @@ YY_RULE_SETUP
YY_BREAK
case 43:
YY_RULE_SETUP
#line 466 "netconf_lexer.ll"
#line 467 "netconf_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::LOGGERS:
@ -2402,7 +2403,7 @@ YY_RULE_SETUP
YY_BREAK
case 44:
YY_RULE_SETUP
#line 475 "netconf_lexer.ll"
#line 476 "netconf_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.
@ -2507,7 +2508,7 @@ YY_RULE_SETUP
case 45:
/* rule 45 can match eol */
YY_RULE_SETUP
#line 576 "netconf_lexer.ll"
#line 577 "netconf_lexer.ll"
{
/* Bad string with a forbidden control character inside */
std::string raw(yytext+1);
@ -2527,7 +2528,7 @@ YY_RULE_SETUP
case 46:
/* rule 46 can match eol */
YY_RULE_SETUP
#line 592 "netconf_lexer.ll"
#line 593 "netconf_lexer.ll"
{
/* Bad string with a bad escape inside */
std::string raw(yytext+1);
@ -2579,7 +2580,7 @@ YY_RULE_SETUP
YY_BREAK
case 47:
YY_RULE_SETUP
#line 641 "netconf_lexer.ll"
#line 642 "netconf_lexer.ll"
{
/* Bad string with an open escape at the end */
std::string raw(yytext+1);
@ -2590,7 +2591,7 @@ YY_RULE_SETUP
YY_BREAK
case 48:
YY_RULE_SETUP
#line 649 "netconf_lexer.ll"
#line 650 "netconf_lexer.ll"
{
/* Bad string with an open unicode escape at the end */
std::string raw(yytext+1);
@ -2608,37 +2609,37 @@ YY_RULE_SETUP
YY_BREAK
case 49:
YY_RULE_SETUP
#line 664 "netconf_lexer.ll"
#line 665 "netconf_lexer.ll"
{ return NetconfParser::make_LSQUARE_BRACKET(driver.loc_); }
YY_BREAK
case 50:
YY_RULE_SETUP
#line 665 "netconf_lexer.ll"
#line 666 "netconf_lexer.ll"
{ return NetconfParser::make_RSQUARE_BRACKET(driver.loc_); }
YY_BREAK
case 51:
YY_RULE_SETUP
#line 666 "netconf_lexer.ll"
#line 667 "netconf_lexer.ll"
{ return NetconfParser::make_LCURLY_BRACKET(driver.loc_); }
YY_BREAK
case 52:
YY_RULE_SETUP
#line 667 "netconf_lexer.ll"
#line 668 "netconf_lexer.ll"
{ return NetconfParser::make_RCURLY_BRACKET(driver.loc_); }
YY_BREAK
case 53:
YY_RULE_SETUP
#line 668 "netconf_lexer.ll"
#line 669 "netconf_lexer.ll"
{ return NetconfParser::make_COMMA(driver.loc_); }
YY_BREAK
case 54:
YY_RULE_SETUP
#line 669 "netconf_lexer.ll"
#line 670 "netconf_lexer.ll"
{ return NetconfParser::make_COLON(driver.loc_); }
YY_BREAK
case 55:
YY_RULE_SETUP
#line 671 "netconf_lexer.ll"
#line 672 "netconf_lexer.ll"
{
/* An integer was found. */
std::string tmp(yytext);
@ -2659,7 +2660,7 @@ YY_RULE_SETUP
YY_BREAK
case 56:
YY_RULE_SETUP
#line 689 "netconf_lexer.ll"
#line 690 "netconf_lexer.ll"
{
/* A floating point was found. */
std::string tmp(yytext);
@ -2675,7 +2676,7 @@ YY_RULE_SETUP
YY_BREAK
case 57:
YY_RULE_SETUP
#line 702 "netconf_lexer.ll"
#line 703 "netconf_lexer.ll"
{
string tmp(yytext);
return NetconfParser::make_BOOLEAN(tmp == "true", driver.loc_);
@ -2683,33 +2684,33 @@ YY_RULE_SETUP
YY_BREAK
case 58:
YY_RULE_SETUP
#line 707 "netconf_lexer.ll"
#line 708 "netconf_lexer.ll"
{
return NetconfParser::make_NULL_TYPE(driver.loc_);
}
YY_BREAK
case 59:
YY_RULE_SETUP
#line 711 "netconf_lexer.ll"
#line 712 "netconf_lexer.ll"
driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
YY_BREAK
case 60:
YY_RULE_SETUP
#line 713 "netconf_lexer.ll"
#line 714 "netconf_lexer.ll"
driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
YY_BREAK
case 61:
YY_RULE_SETUP
#line 715 "netconf_lexer.ll"
#line 716 "netconf_lexer.ll"
driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
YY_BREAK
case 62:
YY_RULE_SETUP
#line 717 "netconf_lexer.ll"
#line 718 "netconf_lexer.ll"
driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
YY_BREAK
case YY_STATE_EOF(INITIAL):
#line 719 "netconf_lexer.ll"
#line 720 "netconf_lexer.ll"
{
if (driver.states_.empty()) {
return NetconfParser::make_END(driver.loc_);
@ -2735,10 +2736,10 @@ case YY_STATE_EOF(INITIAL):
YY_BREAK
case 63:
YY_RULE_SETUP
#line 742 "netconf_lexer.ll"
#line 743 "netconf_lexer.ll"
ECHO;
YY_BREAK
#line 2741 "netconf_lexer.cc"
#line 2742 "netconf_lexer.cc"
case YY_END_OF_BUFFER:
{
@ -3843,7 +3844,7 @@ void yyfree (void * ptr )
/* %ok-for-header */
#line 742 "netconf_lexer.ll"
#line 743 "netconf_lexer.ll"
using namespace isc::dhcp;

View File

@ -984,13 +984,13 @@ int yy_flex_debug = 1;
static const flex_int16_t yy_rule_linenum[63] =
{ 0,
106, 111, 117, 127, 133, 151, 175, 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, 217, 218, 219, 220, 221,
222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
242, 243
107, 112, 118, 128, 134, 152, 176, 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, 217, 218, 219, 220, 221, 222,
223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
243, 244
} ;
/* The intent behind this definition is that it'll catch
@ -1002,7 +1002,7 @@ static const flex_int16_t yy_rule_linenum[63] =
#define YY_RESTORE_YY_MORE_OFFSET
char *yytext;
#line 1 "lexer.ll"
/* Copyright (C) 2015-2022 Internet Systems Consortium, Inc. ("ISC")
/* Copyright (C) 2015-2023 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
@ -1014,6 +1014,7 @@ char *yytext;
#include <cerrno>
#include <climits>
#include <cstdint>
#include <cstdlib>
#include <string>
#include <eval/eval_context.h>
@ -1041,7 +1042,7 @@ namespace {
/* To avoid the call to exit... oops! */
#define YY_FATAL_ERROR(msg) isc::eval::EvalContext::fatal(msg)
#line 1044 "lexer.cc"
#line 1045 "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 yywrap requires linking with -lfl, which provides the default yywrap
@ -1061,13 +1062,13 @@ namespace {
/* These are not token expressions yet, just convenience expressions that
can be used during actual token definitions. Note some can match
incorrect inputs (e.g., IP addresses) which must be checked. */
#line 80 "lexer.ll"
#line 81 "lexer.ll"
/* 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(evalleng);
#line 1069 "lexer.cc"
#line 1070 "lexer.cc"
#line 1071 "lexer.cc"
#define INITIAL 0
@ -1345,11 +1346,11 @@ YY_DECL
{
/* %% [7.0] user's declarations go here */
#line 86 "lexer.ll"
#line 87 "lexer.ll"
#line 90 "lexer.ll"
#line 91 "lexer.ll"
/* Code run each time evallex is called. */
loc.step();
@ -1366,7 +1367,7 @@ YY_DECL
#line 1369 "lexer.cc"
#line 1370 "lexer.cc"
while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
{
@ -1454,7 +1455,7 @@ do_action: /* This label is used only to access EOF actions. */
case 1:
YY_RULE_SETUP
#line 106 "lexer.ll"
#line 107 "lexer.ll"
{
/* Ok, we found a with space. Let's ignore it and update loc variable. */
loc.step();
@ -1463,7 +1464,7 @@ YY_RULE_SETUP
case 2:
/* rule 2 can match eol */
YY_RULE_SETUP
#line 111 "lexer.ll"
#line 112 "lexer.ll"
{
/* Newline found. Let's update the location and continue. */
loc.lines(evalleng);
@ -1472,7 +1473,7 @@ YY_RULE_SETUP
YY_BREAK
case 3:
YY_RULE_SETUP
#line 117 "lexer.ll"
#line 118 "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.
@ -1485,7 +1486,7 @@ YY_RULE_SETUP
YY_BREAK
case 4:
YY_RULE_SETUP
#line 127 "lexer.ll"
#line 128 "lexer.ll"
{
/* A hex string has been matched. It contains the '0x' or '0X' header
followed by at least one hexadecimal digit. */
@ -1494,7 +1495,7 @@ YY_RULE_SETUP
YY_BREAK
case 5:
YY_RULE_SETUP
#line 133 "lexer.ll"
#line 134 "lexer.ll"
{
/* An integer was found. */
std::string tmp(evaltext);
@ -1520,7 +1521,7 @@ YY_LINENO_REWIND_TO(yy_cp - 1);
(yy_c_buf_p) = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
#line 151 "lexer.ll"
#line 152 "lexer.ll"
{
/* This string specifies option name starting with a letter
and further containing letters, digits, hyphens and
@ -1547,7 +1548,7 @@ YY_RULE_SETUP
YY_BREAK
case 7:
YY_RULE_SETUP
#line 175 "lexer.ll"
#line 176 "lexer.ll"
{
/* IPv4 or IPv6 address */
std::string tmp(evaltext);
@ -1564,289 +1565,289 @@ YY_RULE_SETUP
YY_BREAK
case 8:
YY_RULE_SETUP
#line 189 "lexer.ll"
#line 190 "lexer.ll"
return isc::eval::EvalParser::make_EQUAL(loc);
YY_BREAK
case 9:
YY_RULE_SETUP
#line 190 "lexer.ll"
#line 191 "lexer.ll"
return isc::eval::EvalParser::make_OPTION(loc);
YY_BREAK
case 10:
YY_RULE_SETUP
#line 191 "lexer.ll"
#line 192 "lexer.ll"
return isc::eval::EvalParser::make_RELAY4(loc);
YY_BREAK
case 11:
YY_RULE_SETUP
#line 192 "lexer.ll"
#line 193 "lexer.ll"
return isc::eval::EvalParser::make_RELAY6(loc);
YY_BREAK
case 12:
YY_RULE_SETUP
#line 193 "lexer.ll"
#line 194 "lexer.ll"
return isc::eval::EvalParser::make_PEERADDR(loc);
YY_BREAK
case 13:
YY_RULE_SETUP
#line 194 "lexer.ll"
#line 195 "lexer.ll"
return isc::eval::EvalParser::make_LINKADDR(loc);
YY_BREAK
case 14:
YY_RULE_SETUP
#line 195 "lexer.ll"
#line 196 "lexer.ll"
return isc::eval::EvalParser::make_TEXT(loc);
YY_BREAK
case 15:
YY_RULE_SETUP
#line 196 "lexer.ll"
#line 197 "lexer.ll"
return isc::eval::EvalParser::make_HEX(loc);
YY_BREAK
case 16:
YY_RULE_SETUP
#line 197 "lexer.ll"
#line 198 "lexer.ll"
return isc::eval::EvalParser::make_EXISTS(loc);
YY_BREAK
case 17:
YY_RULE_SETUP
#line 198 "lexer.ll"
#line 199 "lexer.ll"
return isc::eval::EvalParser::make_PKT(loc);
YY_BREAK
case 18:
YY_RULE_SETUP
#line 199 "lexer.ll"
#line 200 "lexer.ll"
return isc::eval::EvalParser::make_IFACE(loc);
YY_BREAK
case 19:
YY_RULE_SETUP
#line 200 "lexer.ll"
#line 201 "lexer.ll"
return isc::eval::EvalParser::make_SRC(loc);
YY_BREAK
case 20:
YY_RULE_SETUP
#line 201 "lexer.ll"
#line 202 "lexer.ll"
return isc::eval::EvalParser::make_DST(loc);
YY_BREAK
case 21:
YY_RULE_SETUP
#line 202 "lexer.ll"
#line 203 "lexer.ll"
return isc::eval::EvalParser::make_LEN(loc);
YY_BREAK
case 22:
YY_RULE_SETUP
#line 203 "lexer.ll"
#line 204 "lexer.ll"
return isc::eval::EvalParser::make_PKT4(loc);
YY_BREAK
case 23:
YY_RULE_SETUP
#line 204 "lexer.ll"
#line 205 "lexer.ll"
return isc::eval::EvalParser::make_CHADDR(loc);
YY_BREAK
case 24:
YY_RULE_SETUP
#line 205 "lexer.ll"
#line 206 "lexer.ll"
return isc::eval::EvalParser::make_HLEN(loc);
YY_BREAK
case 25:
YY_RULE_SETUP
#line 206 "lexer.ll"
#line 207 "lexer.ll"
return isc::eval::EvalParser::make_HTYPE(loc);
YY_BREAK
case 26:
YY_RULE_SETUP
#line 207 "lexer.ll"
#line 208 "lexer.ll"
return isc::eval::EvalParser::make_CIADDR(loc);
YY_BREAK
case 27:
YY_RULE_SETUP
#line 208 "lexer.ll"
#line 209 "lexer.ll"
return isc::eval::EvalParser::make_GIADDR(loc);
YY_BREAK
case 28:
YY_RULE_SETUP
#line 209 "lexer.ll"
#line 210 "lexer.ll"
return isc::eval::EvalParser::make_YIADDR(loc);
YY_BREAK
case 29:
YY_RULE_SETUP
#line 210 "lexer.ll"
#line 211 "lexer.ll"
return isc::eval::EvalParser::make_SIADDR(loc);
YY_BREAK
case 30:
YY_RULE_SETUP
#line 211 "lexer.ll"
#line 212 "lexer.ll"
return isc::eval::EvalParser::make_PKT6(loc);
YY_BREAK
case 31:
YY_RULE_SETUP
#line 212 "lexer.ll"
#line 213 "lexer.ll"
return isc::eval::EvalParser::make_MSGTYPE(loc);
YY_BREAK
case 32:
YY_RULE_SETUP
#line 213 "lexer.ll"
#line 214 "lexer.ll"
return isc::eval::EvalParser::make_TRANSID(loc);
YY_BREAK
case 33:
YY_RULE_SETUP
#line 214 "lexer.ll"
#line 215 "lexer.ll"
return isc::eval::EvalParser::make_VENDOR(loc);
YY_BREAK
case 34:
YY_RULE_SETUP
#line 215 "lexer.ll"
#line 216 "lexer.ll"
return isc::eval::EvalParser::make_VENDOR_CLASS(loc);
YY_BREAK
case 35:
YY_RULE_SETUP
#line 216 "lexer.ll"
#line 217 "lexer.ll"
return isc::eval::EvalParser::make_DATA(loc);
YY_BREAK
case 36:
YY_RULE_SETUP
#line 217 "lexer.ll"
#line 218 "lexer.ll"
return isc::eval::EvalParser::make_ENTERPRISE(loc);
YY_BREAK
case 37:
YY_RULE_SETUP
#line 218 "lexer.ll"
#line 219 "lexer.ll"
return isc::eval::EvalParser::make_SUBSTRING(loc);
YY_BREAK
case 38:
YY_RULE_SETUP
#line 219 "lexer.ll"
#line 220 "lexer.ll"
return isc::eval::EvalParser::make_SPLIT(loc);
YY_BREAK
case 39:
YY_RULE_SETUP
#line 220 "lexer.ll"
#line 221 "lexer.ll"
return isc::eval::EvalParser::make_ALL(loc);
YY_BREAK
case 40:
YY_RULE_SETUP
#line 221 "lexer.ll"
#line 222 "lexer.ll"
return isc::eval::EvalParser::make_CONCAT(loc);
YY_BREAK
case 41:
YY_RULE_SETUP
#line 222 "lexer.ll"
#line 223 "lexer.ll"
return isc::eval::EvalParser::make_IFELSE(loc);
YY_BREAK
case 42:
YY_RULE_SETUP
#line 223 "lexer.ll"
#line 224 "lexer.ll"
return isc::eval::EvalParser::make_TOHEXSTRING(loc);
YY_BREAK
case 43:
YY_RULE_SETUP
#line 224 "lexer.ll"
#line 225 "lexer.ll"
return isc::eval::EvalParser::make_ADDRTOTEXT(loc);
YY_BREAK
case 44:
YY_RULE_SETUP
#line 225 "lexer.ll"
#line 226 "lexer.ll"
return isc::eval::EvalParser::make_INT8TOTEXT(loc);
YY_BREAK
case 45:
YY_RULE_SETUP
#line 226 "lexer.ll"
#line 227 "lexer.ll"
return isc::eval::EvalParser::make_INT16TOTEXT(loc);
YY_BREAK
case 46:
YY_RULE_SETUP
#line 227 "lexer.ll"
#line 228 "lexer.ll"
return isc::eval::EvalParser::make_INT32TOTEXT(loc);
YY_BREAK
case 47:
YY_RULE_SETUP
#line 228 "lexer.ll"
#line 229 "lexer.ll"
return isc::eval::EvalParser::make_UINT8TOTEXT(loc);
YY_BREAK
case 48:
YY_RULE_SETUP
#line 229 "lexer.ll"
#line 230 "lexer.ll"
return isc::eval::EvalParser::make_UINT16TOTEXT(loc);
YY_BREAK
case 49:
YY_RULE_SETUP
#line 230 "lexer.ll"
#line 231 "lexer.ll"
return isc::eval::EvalParser::make_UINT32TOTEXT(loc);
YY_BREAK
case 50:
YY_RULE_SETUP
#line 231 "lexer.ll"
#line 232 "lexer.ll"
return isc::eval::EvalParser::make_NOT(loc);
YY_BREAK
case 51:
YY_RULE_SETUP
#line 232 "lexer.ll"
#line 233 "lexer.ll"
return isc::eval::EvalParser::make_AND(loc);
YY_BREAK
case 52:
YY_RULE_SETUP
#line 233 "lexer.ll"
#line 234 "lexer.ll"
return isc::eval::EvalParser::make_OR(loc);
YY_BREAK
case 53:
YY_RULE_SETUP
#line 234 "lexer.ll"
#line 235 "lexer.ll"
return isc::eval::EvalParser::make_MEMBER(loc);
YY_BREAK
case 54:
YY_RULE_SETUP
#line 235 "lexer.ll"
#line 236 "lexer.ll"
return isc::eval::EvalParser::make_DOT(loc);
YY_BREAK
case 55:
YY_RULE_SETUP
#line 236 "lexer.ll"
#line 237 "lexer.ll"
return isc::eval::EvalParser::make_LPAREN(loc);
YY_BREAK
case 56:
YY_RULE_SETUP
#line 237 "lexer.ll"
#line 238 "lexer.ll"
return isc::eval::EvalParser::make_RPAREN(loc);
YY_BREAK
case 57:
YY_RULE_SETUP
#line 238 "lexer.ll"
#line 239 "lexer.ll"
return isc::eval::EvalParser::make_LBRACKET(loc);
YY_BREAK
case 58:
YY_RULE_SETUP
#line 239 "lexer.ll"
#line 240 "lexer.ll"
return isc::eval::EvalParser::make_RBRACKET(loc);
YY_BREAK
case 59:
YY_RULE_SETUP
#line 240 "lexer.ll"
#line 241 "lexer.ll"
return isc::eval::EvalParser::make_COMA(loc);
YY_BREAK
case 60:
YY_RULE_SETUP
#line 241 "lexer.ll"
#line 242 "lexer.ll"
return isc::eval::EvalParser::make_ANY(loc);
YY_BREAK
case 61:
YY_RULE_SETUP
#line 242 "lexer.ll"
#line 243 "lexer.ll"
return isc::eval::EvalParser::make_PLUS(loc);
YY_BREAK
case 62:
YY_RULE_SETUP
#line 243 "lexer.ll"
#line 244 "lexer.ll"
driver.error (loc, "Invalid character: " + std::string(evaltext));
YY_BREAK
case YY_STATE_EOF(INITIAL):
#line 244 "lexer.ll"
#line 245 "lexer.ll"
return isc::eval::EvalParser::make_END(loc);
YY_BREAK
case 63:
YY_RULE_SETUP
#line 245 "lexer.ll"
#line 246 "lexer.ll"
ECHO;
YY_BREAK
#line 1849 "lexer.cc"
#line 1850 "lexer.cc"
case YY_END_OF_BUFFER:
{
@ -2958,7 +2959,7 @@ void yyfree (void * ptr )
/* %ok-for-header */
#line 245 "lexer.ll"
#line 246 "lexer.ll"
using namespace isc::eval;

View File

@ -1,3 +1,4 @@
// Generated 202308031547
// A Bison parser, made by GNU Bison 3.8.2.
// Locations for Bison parsers in C++