|
@@ -745,11 +745,11 @@ int yy_flex_debug = 1;
|
|
|
|
|
|
static yyconst flex_int16_t yy_rule_linenum[51] =
|
|
static yyconst flex_int16_t yy_rule_linenum[51] =
|
|
{ 0,
|
|
{ 0,
|
|
- 82, 86, 92, 102, 108, 122, 129, 143, 144, 145,
|
|
|
|
- 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
|
|
|
|
- 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
|
|
|
|
- 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
|
|
|
|
- 176, 177, 178, 179, 180, 181, 182, 183, 184, 185
|
|
|
|
|
|
+ 82, 86, 92, 102, 108, 126, 133, 147, 148, 149,
|
|
|
|
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
|
|
|
|
+ 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
|
|
|
|
+ 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
|
|
|
|
+ 180, 181, 182, 183, 184, 185, 186, 187, 188, 189
|
|
} ;
|
|
} ;
|
|
|
|
|
|
static yy_state_type *yy_state_buf=0, *yy_state_ptr=0;
|
|
static yy_state_type *yy_state_buf=0, *yy_state_ptr=0;
|
|
@@ -1286,7 +1286,11 @@ YY_RULE_SETUP
|
|
std::string tmp(yytext);
|
|
std::string tmp(yytext);
|
|
|
|
|
|
try {
|
|
try {
|
|
- static_cast<void>(boost::lexical_cast<int>(tmp));
|
|
|
|
|
|
+ // In substring we want to use negative values (e.g. -1).
|
|
|
|
+ // In enterprise-id we need to use values up to 0xffffffff.
|
|
|
|
+ // To cover both of those use cases, we need at least
|
|
|
|
+ // int64_t.
|
|
|
|
+ static_cast<void>(boost::lexical_cast<int64_t>(tmp));
|
|
} catch (const boost::bad_lexical_cast &) {
|
|
} catch (const boost::bad_lexical_cast &) {
|
|
driver.error(loc, "Failed to convert " + tmp + " to an integer.");
|
|
driver.error(loc, "Failed to convert " + tmp + " to an integer.");
|
|
}
|
|
}
|
|
@@ -1298,7 +1302,7 @@ YY_RULE_SETUP
|
|
case 6:
|
|
case 6:
|
|
/* rule 6 can match eol */
|
|
/* rule 6 can match eol */
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 122 "lexer.ll"
|
|
|
|
|
|
+#line 126 "lexer.ll"
|
|
{
|
|
{
|
|
// This string specifies option name starting with a letter
|
|
// This string specifies option name starting with a letter
|
|
// and further containing letters, digits, hyphens and
|
|
// and further containing letters, digits, hyphens and
|
|
@@ -1308,7 +1312,7 @@ YY_RULE_SETUP
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 7:
|
|
case 7:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 129 "lexer.ll"
|
|
|
|
|
|
+#line 133 "lexer.ll"
|
|
{
|
|
{
|
|
// IPv4 or IPv6 address
|
|
// IPv4 or IPv6 address
|
|
std::string tmp(yytext);
|
|
std::string tmp(yytext);
|
|
@@ -1325,229 +1329,229 @@ YY_RULE_SETUP
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 8:
|
|
case 8:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 143 "lexer.ll"
|
|
|
|
|
|
+#line 147 "lexer.ll"
|
|
return isc::eval::EvalParser::make_EQUAL(loc);
|
|
return isc::eval::EvalParser::make_EQUAL(loc);
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 9:
|
|
case 9:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 144 "lexer.ll"
|
|
|
|
|
|
+#line 148 "lexer.ll"
|
|
return isc::eval::EvalParser::make_OPTION(loc);
|
|
return isc::eval::EvalParser::make_OPTION(loc);
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 10:
|
|
case 10:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 145 "lexer.ll"
|
|
|
|
|
|
+#line 149 "lexer.ll"
|
|
return isc::eval::EvalParser::make_RELAY4(loc);
|
|
return isc::eval::EvalParser::make_RELAY4(loc);
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 11:
|
|
case 11:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 146 "lexer.ll"
|
|
|
|
|
|
+#line 150 "lexer.ll"
|
|
return isc::eval::EvalParser::make_RELAY6(loc);
|
|
return isc::eval::EvalParser::make_RELAY6(loc);
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 12:
|
|
case 12:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 147 "lexer.ll"
|
|
|
|
|
|
+#line 151 "lexer.ll"
|
|
return isc::eval::EvalParser::make_PEERADDR(loc);
|
|
return isc::eval::EvalParser::make_PEERADDR(loc);
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 13:
|
|
case 13:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 148 "lexer.ll"
|
|
|
|
|
|
+#line 152 "lexer.ll"
|
|
return isc::eval::EvalParser::make_LINKADDR(loc);
|
|
return isc::eval::EvalParser::make_LINKADDR(loc);
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 14:
|
|
case 14:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 149 "lexer.ll"
|
|
|
|
|
|
+#line 153 "lexer.ll"
|
|
return isc::eval::EvalParser::make_TEXT(loc);
|
|
return isc::eval::EvalParser::make_TEXT(loc);
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 15:
|
|
case 15:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 150 "lexer.ll"
|
|
|
|
|
|
+#line 154 "lexer.ll"
|
|
return isc::eval::EvalParser::make_HEX(loc);
|
|
return isc::eval::EvalParser::make_HEX(loc);
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 16:
|
|
case 16:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 151 "lexer.ll"
|
|
|
|
|
|
+#line 155 "lexer.ll"
|
|
return isc::eval::EvalParser::make_EXISTS(loc);
|
|
return isc::eval::EvalParser::make_EXISTS(loc);
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 17:
|
|
case 17:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 152 "lexer.ll"
|
|
|
|
|
|
+#line 156 "lexer.ll"
|
|
return isc::eval::EvalParser::make_PKT(loc);
|
|
return isc::eval::EvalParser::make_PKT(loc);
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 18:
|
|
case 18:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 153 "lexer.ll"
|
|
|
|
|
|
+#line 157 "lexer.ll"
|
|
return isc::eval::EvalParser::make_IFACE(loc);
|
|
return isc::eval::EvalParser::make_IFACE(loc);
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 19:
|
|
case 19:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 154 "lexer.ll"
|
|
|
|
|
|
+#line 158 "lexer.ll"
|
|
return isc::eval::EvalParser::make_SRC(loc);
|
|
return isc::eval::EvalParser::make_SRC(loc);
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 20:
|
|
case 20:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 155 "lexer.ll"
|
|
|
|
|
|
+#line 159 "lexer.ll"
|
|
return isc::eval::EvalParser::make_DST(loc);
|
|
return isc::eval::EvalParser::make_DST(loc);
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 21:
|
|
case 21:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 156 "lexer.ll"
|
|
|
|
|
|
+#line 160 "lexer.ll"
|
|
return isc::eval::EvalParser::make_LEN(loc);
|
|
return isc::eval::EvalParser::make_LEN(loc);
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 22:
|
|
case 22:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 157 "lexer.ll"
|
|
|
|
|
|
+#line 161 "lexer.ll"
|
|
return isc::eval::EvalParser::make_PKT4(loc);
|
|
return isc::eval::EvalParser::make_PKT4(loc);
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 23:
|
|
case 23:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 158 "lexer.ll"
|
|
|
|
|
|
+#line 162 "lexer.ll"
|
|
return isc::eval::EvalParser::make_CHADDR(loc);
|
|
return isc::eval::EvalParser::make_CHADDR(loc);
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 24:
|
|
case 24:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 159 "lexer.ll"
|
|
|
|
|
|
+#line 163 "lexer.ll"
|
|
return isc::eval::EvalParser::make_HLEN(loc);
|
|
return isc::eval::EvalParser::make_HLEN(loc);
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 25:
|
|
case 25:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 160 "lexer.ll"
|
|
|
|
|
|
+#line 164 "lexer.ll"
|
|
return isc::eval::EvalParser::make_HTYPE(loc);
|
|
return isc::eval::EvalParser::make_HTYPE(loc);
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 26:
|
|
case 26:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 161 "lexer.ll"
|
|
|
|
|
|
+#line 165 "lexer.ll"
|
|
return isc::eval::EvalParser::make_CIADDR(loc);
|
|
return isc::eval::EvalParser::make_CIADDR(loc);
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 27:
|
|
case 27:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 162 "lexer.ll"
|
|
|
|
|
|
+#line 166 "lexer.ll"
|
|
return isc::eval::EvalParser::make_GIADDR(loc);
|
|
return isc::eval::EvalParser::make_GIADDR(loc);
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 28:
|
|
case 28:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 163 "lexer.ll"
|
|
|
|
|
|
+#line 167 "lexer.ll"
|
|
return isc::eval::EvalParser::make_YIADDR(loc);
|
|
return isc::eval::EvalParser::make_YIADDR(loc);
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 29:
|
|
case 29:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 164 "lexer.ll"
|
|
|
|
|
|
+#line 168 "lexer.ll"
|
|
return isc::eval::EvalParser::make_SIADDR(loc);
|
|
return isc::eval::EvalParser::make_SIADDR(loc);
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 30:
|
|
case 30:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 165 "lexer.ll"
|
|
|
|
|
|
+#line 169 "lexer.ll"
|
|
return isc::eval::EvalParser::make_PKT6(loc);
|
|
return isc::eval::EvalParser::make_PKT6(loc);
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 31:
|
|
case 31:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 166 "lexer.ll"
|
|
|
|
|
|
+#line 170 "lexer.ll"
|
|
return isc::eval::EvalParser::make_MSGTYPE(loc);
|
|
return isc::eval::EvalParser::make_MSGTYPE(loc);
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 32:
|
|
case 32:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 167 "lexer.ll"
|
|
|
|
|
|
+#line 171 "lexer.ll"
|
|
return isc::eval::EvalParser::make_TRANSID(loc);
|
|
return isc::eval::EvalParser::make_TRANSID(loc);
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 33:
|
|
case 33:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 168 "lexer.ll"
|
|
|
|
|
|
+#line 172 "lexer.ll"
|
|
return isc::eval::EvalParser::make_VENDOR(loc);
|
|
return isc::eval::EvalParser::make_VENDOR(loc);
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 34:
|
|
case 34:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 169 "lexer.ll"
|
|
|
|
|
|
+#line 173 "lexer.ll"
|
|
return isc::eval::EvalParser::make_VENDOR_CLASS(loc);
|
|
return isc::eval::EvalParser::make_VENDOR_CLASS(loc);
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 35:
|
|
case 35:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 170 "lexer.ll"
|
|
|
|
|
|
+#line 174 "lexer.ll"
|
|
return isc::eval::EvalParser::make_DATA(loc);
|
|
return isc::eval::EvalParser::make_DATA(loc);
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 36:
|
|
case 36:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 171 "lexer.ll"
|
|
|
|
|
|
+#line 175 "lexer.ll"
|
|
return isc::eval::EvalParser::make_ENTERPRISE(loc);
|
|
return isc::eval::EvalParser::make_ENTERPRISE(loc);
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 37:
|
|
case 37:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 172 "lexer.ll"
|
|
|
|
|
|
+#line 176 "lexer.ll"
|
|
return isc::eval::EvalParser::make_SUBSTRING(loc);
|
|
return isc::eval::EvalParser::make_SUBSTRING(loc);
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 38:
|
|
case 38:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 173 "lexer.ll"
|
|
|
|
|
|
+#line 177 "lexer.ll"
|
|
return isc::eval::EvalParser::make_ALL(loc);
|
|
return isc::eval::EvalParser::make_ALL(loc);
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 39:
|
|
case 39:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 174 "lexer.ll"
|
|
|
|
|
|
+#line 178 "lexer.ll"
|
|
return isc::eval::EvalParser::make_CONCAT(loc);
|
|
return isc::eval::EvalParser::make_CONCAT(loc);
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 40:
|
|
case 40:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 175 "lexer.ll"
|
|
|
|
|
|
+#line 179 "lexer.ll"
|
|
return isc::eval::EvalParser::make_NOT(loc);
|
|
return isc::eval::EvalParser::make_NOT(loc);
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 41:
|
|
case 41:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 176 "lexer.ll"
|
|
|
|
|
|
+#line 180 "lexer.ll"
|
|
return isc::eval::EvalParser::make_AND(loc);
|
|
return isc::eval::EvalParser::make_AND(loc);
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 42:
|
|
case 42:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 177 "lexer.ll"
|
|
|
|
|
|
+#line 181 "lexer.ll"
|
|
return isc::eval::EvalParser::make_OR(loc);
|
|
return isc::eval::EvalParser::make_OR(loc);
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 43:
|
|
case 43:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 178 "lexer.ll"
|
|
|
|
|
|
+#line 182 "lexer.ll"
|
|
return isc::eval::EvalParser::make_DOT(loc);
|
|
return isc::eval::EvalParser::make_DOT(loc);
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 44:
|
|
case 44:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 179 "lexer.ll"
|
|
|
|
|
|
+#line 183 "lexer.ll"
|
|
return isc::eval::EvalParser::make_LPAREN(loc);
|
|
return isc::eval::EvalParser::make_LPAREN(loc);
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 45:
|
|
case 45:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 180 "lexer.ll"
|
|
|
|
|
|
+#line 184 "lexer.ll"
|
|
return isc::eval::EvalParser::make_RPAREN(loc);
|
|
return isc::eval::EvalParser::make_RPAREN(loc);
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 46:
|
|
case 46:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 181 "lexer.ll"
|
|
|
|
|
|
+#line 185 "lexer.ll"
|
|
return isc::eval::EvalParser::make_LBRACKET(loc);
|
|
return isc::eval::EvalParser::make_LBRACKET(loc);
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 47:
|
|
case 47:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 182 "lexer.ll"
|
|
|
|
|
|
+#line 186 "lexer.ll"
|
|
return isc::eval::EvalParser::make_RBRACKET(loc);
|
|
return isc::eval::EvalParser::make_RBRACKET(loc);
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 48:
|
|
case 48:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 183 "lexer.ll"
|
|
|
|
|
|
+#line 187 "lexer.ll"
|
|
return isc::eval::EvalParser::make_COMA(loc);
|
|
return isc::eval::EvalParser::make_COMA(loc);
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 49:
|
|
case 49:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 184 "lexer.ll"
|
|
|
|
|
|
+#line 188 "lexer.ll"
|
|
return isc::eval::EvalParser::make_ANY(loc);
|
|
return isc::eval::EvalParser::make_ANY(loc);
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 50:
|
|
case 50:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 185 "lexer.ll"
|
|
|
|
|
|
+#line 189 "lexer.ll"
|
|
driver.error (loc, "Invalid character: " + std::string(yytext));
|
|
driver.error (loc, "Invalid character: " + std::string(yytext));
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case YY_STATE_EOF(INITIAL):
|
|
case YY_STATE_EOF(INITIAL):
|
|
-#line 186 "lexer.ll"
|
|
|
|
|
|
+#line 190 "lexer.ll"
|
|
return isc::eval::EvalParser::make_END(loc);
|
|
return isc::eval::EvalParser::make_END(loc);
|
|
YY_BREAK
|
|
YY_BREAK
|
|
case 51:
|
|
case 51:
|
|
YY_RULE_SETUP
|
|
YY_RULE_SETUP
|
|
-#line 187 "lexer.ll"
|
|
|
|
|
|
+#line 191 "lexer.ll"
|
|
ECHO;
|
|
ECHO;
|
|
YY_BREAK
|
|
YY_BREAK
|
|
-#line 1551 "lexer.cc"
|
|
|
|
|
|
+#line 1555 "lexer.cc"
|
|
|
|
|
|
case YY_END_OF_BUFFER:
|
|
case YY_END_OF_BUFFER:
|
|
{
|
|
{
|
|
@@ -2630,7 +2634,7 @@ void yyfree (void * ptr )
|
|
|
|
|
|
/* %ok-for-header */
|
|
/* %ok-for-header */
|
|
|
|
|
|
-#line 187 "lexer.ll"
|
|
|
|
|
|
+#line 191 "lexer.ll"
|
|
|
|
|
|
|
|
|
|
|
|
|