case 11:
#line 170 "parser.yy" // lalr1.cc:859
{
- // Expression: vendor-class[1234].exists
- //
- // This token will find option 124 (DHCPv4) or 16 (DHCPv6), and will check
- // if enterprise-id equals specified value.
- TokenPtr exist(new TokenVendorClass(ctx.getUniverse(), yystack_[3].value.as< uint32_t > (), TokenOption::EXISTS));
- ctx.expression.push_back(exist);
-}
+ // Expression: vendor-class[1234].exists
+ //
+ // This token will find option 124 (DHCPv4) or 16 (DHCPv6), and will check
+ // if enterprise-id equals specified value.
+ TokenPtr exist(new TokenVendorClass(ctx.getUniverse(), yystack_[3].value.as< uint32_t > (), TokenOption::EXISTS));
+ ctx.expression.push_back(exist);
+ }
#line 809 "parser.cc" // lalr1.cc:859
break;
case 12:
#line 179 "parser.yy" // lalr1.cc:859
{
- // Expression: vendor[1234].exists
- //
- // This token will find option 125 (DHCPv4) or 17 (DHCPv6), and will check
- // if enterprise-id equals specified value.
- TokenPtr exist(new TokenVendor(ctx.getUniverse(), yystack_[3].value.as< uint32_t > (), TokenOption::EXISTS));
- ctx.expression.push_back(exist);
+ // Expression: vendor[1234].exists
+ //
+ // This token will find option 125 (DHCPv4) or 17 (DHCPv6), and will check
+ // if enterprise-id equals specified value.
+ TokenPtr exist(new TokenVendor(ctx.getUniverse(), yystack_[3].value.as< uint32_t > (), TokenOption::EXISTS));
+ ctx.expression.push_back(exist);
-}
+ }
#line 823 "parser.cc" // lalr1.cc:859
break;
case 13:
#line 189 "parser.yy" // lalr1.cc:859
{
- // Expression vendor[1234].option[123].exists
- //
- // This token will check if specified vendor option exists, has specified
- // enterprise-id and if has specified suboption.
- TokenPtr exist(new TokenVendor(ctx.getUniverse(), yystack_[8].value.as< uint32_t > (), TokenOption::EXISTS, yystack_[3].value.as< uint16_t > ()));
- ctx.expression.push_back(exist);
-}
+ // Expression vendor[1234].option[123].exists
+ //
+ // This token will check if specified vendor option exists, has specified
+ // enterprise-id and if has specified suboption.
+ TokenPtr exist(new TokenVendor(ctx.getUniverse(), yystack_[8].value.as< uint32_t > (), TokenOption::EXISTS, yystack_[3].value.as< uint16_t > ()));
+ ctx.expression.push_back(exist);
+ }
#line 836 "parser.cc" // lalr1.cc:859
break;
case 25:
#line 291 "parser.yy" // lalr1.cc:859
{
- // expression: vendor.enterprise
- //
- // This token will return enterprise-id number of received vendor option.
- TokenPtr vendor(new TokenVendor(ctx.getUniverse(), 0, TokenVendor::ENTERPRISE_ID));
- ctx.expression.push_back(vendor);
-}
+ // expression: vendor.enterprise
+ //
+ // This token will return enterprise-id number of received vendor option.
+ TokenPtr vendor(new TokenVendor(ctx.getUniverse(), 0, TokenVendor::ENTERPRISE_ID));
+ ctx.expression.push_back(vendor);
+ }
#line 980 "parser.cc" // lalr1.cc:859
break;
case 26:
#line 299 "parser.yy" // lalr1.cc:859
{
- // expression: vendor-class.enterprise
- //
- // This token will return enterprise-id number of received vendor class option.
- TokenPtr vendor(new TokenVendorClass(ctx.getUniverse(), 0,
- TokenVendor::ENTERPRISE_ID));
- ctx.expression.push_back(vendor);
-}
+ // expression: vendor-class.enterprise
+ //
+ // This token will return enterprise-id number of received vendor class option.
+ TokenPtr vendor(new TokenVendorClass(ctx.getUniverse(), 0,
+ TokenVendor::ENTERPRISE_ID));
+ ctx.expression.push_back(vendor);
+ }
#line 993 "parser.cc" // lalr1.cc:859
break;
case 27:
#line 308 "parser.yy" // lalr1.cc:859
{
- // expression: vendor[1234].option[56].exists
- // expression: vendor[1234].option[56].hex
- //
- // This token will search for vendor option with specified enterprise-id.
- // If found, will search for specified suboption and finally will return
- // if it exists ('exists') or its content ('hex')
- TokenPtr opt(new TokenVendor(ctx.getUniverse(), yystack_[8].value.as< uint32_t > (), yystack_[0].value.as< TokenOption::RepresentationType > (), yystack_[3].value.as< uint16_t > ()));
- ctx.expression.push_back(opt);
-}
+ // expression: vendor[1234].option[56].exists
+ // expression: vendor[1234].option[56].hex
+ //
+ // This token will search for vendor option with specified enterprise-id.
+ // If found, will search for specified suboption and finally will return
+ // if it exists ('exists') or its content ('hex')
+ TokenPtr opt(new TokenVendor(ctx.getUniverse(), yystack_[8].value.as< uint32_t > (), yystack_[0].value.as< TokenOption::RepresentationType > (), yystack_[3].value.as< uint16_t > ()));
+ ctx.expression.push_back(opt);
+ }
#line 1008 "parser.cc" // lalr1.cc:859
break;
case 28:
#line 319 "parser.yy" // lalr1.cc:859
{
- // expression: vendor-class[1234].data
- //
- // Vendor class option does not have suboptions, but chunks of data (typically 1,
- // but the option structure allows multiple of them). If chunk offset is not
- // specified, we assume the first (0th) is requested.
- TokenPtr vendor_class(new TokenVendorClass(ctx.getUniverse(), yystack_[3].value.as< uint32_t > (),
- TokenVendor::DATA, 0));
- ctx.expression.push_back(vendor_class);
-}
+ // expression: vendor-class[1234].data
+ //
+ // Vendor class option does not have suboptions, but chunks of data (typically 1,
+ // but the option structure allows multiple of them). If chunk offset is not
+ // specified, we assume the first (0th) is requested.
+ TokenPtr vendor_class(new TokenVendorClass(ctx.getUniverse(), yystack_[3].value.as< uint32_t > (),
+ TokenVendor::DATA, 0));
+ ctx.expression.push_back(vendor_class);
+ }
#line 1023 "parser.cc" // lalr1.cc:859
break;
case 29:
#line 330 "parser.yy" // lalr1.cc:859
{
- // expression: vendor-class[1234].data[5]
- //
- // Vendor class option does not have suboptions, but chunks of data (typically 1,
- // but the option structure allows multiple of them). This syntax specifies
- // which data chunk (tuple) we want.
- uint8_t index = ctx.convertUint8(yystack_[1].value.as< std::string > (), yystack_[1].location);
- TokenPtr vendor_class(new TokenVendorClass(ctx.getUniverse(), yystack_[6].value.as< uint32_t > (),
- TokenVendor::DATA, index));
- ctx.expression.push_back(vendor_class);
-}
+ // expression: vendor-class[1234].data[5]
+ //
+ // Vendor class option does not have suboptions, but chunks of data (typically 1,
+ // but the option structure allows multiple of them). This syntax specifies
+ // which data chunk (tuple) we want.
+ uint8_t index = ctx.convertUint8(yystack_[1].value.as< std::string > (), yystack_[1].location);
+ TokenPtr vendor_class(new TokenVendorClass(ctx.getUniverse(), yystack_[6].value.as< uint32_t > (),
+ TokenVendor::DATA, index));
+ ctx.expression.push_back(vendor_class);
+ }
#line 1039 "parser.cc" // lalr1.cc:859
break;
case 30:
-#line 345 "parser.yy" // lalr1.cc:859
+#line 344 "parser.yy" // lalr1.cc:859
{
yylhs.value.as< uint16_t > () = ctx.convertOptionCode(yystack_[0].value.as< std::string > (), yystack_[0].location);
}
break;
case 31:
-#line 349 "parser.yy" // lalr1.cc:859
+#line 348 "parser.yy" // lalr1.cc:859
{
yylhs.value.as< uint16_t > () = ctx.convertOptionName(yystack_[0].value.as< std::string > (), yystack_[0].location);
}
break;
case 32:
-#line 355 "parser.yy" // lalr1.cc:859
+#line 354 "parser.yy" // lalr1.cc:859
{
yylhs.value.as< TokenOption::RepresentationType > () = TokenOption::TEXTUAL;
}
break;
case 33:
-#line 359 "parser.yy" // lalr1.cc:859
+#line 358 "parser.yy" // lalr1.cc:859
{
yylhs.value.as< TokenOption::RepresentationType > () = TokenOption::HEXADECIMAL;
}
break;
case 34:
-#line 365 "parser.yy" // lalr1.cc:859
+#line 364 "parser.yy" // lalr1.cc:859
{
yylhs.value.as< uint32_t > () = ctx.convertUint32(yystack_[0].value.as< std::string > (), yystack_[0].location);
}
break;
case 35:
-#line 369 "parser.yy" // lalr1.cc:859
+#line 368 "parser.yy" // lalr1.cc:859
{
yylhs.value.as< uint32_t > () = 0;
}
break;
case 36:
-#line 374 "parser.yy" // lalr1.cc:859
+#line 373 "parser.yy" // lalr1.cc:859
{
yylhs.value.as< TokenPkt4::FieldType > () = TokenPkt4::CHADDR;
}
break;
case 37:
-#line 378 "parser.yy" // lalr1.cc:859
+#line 377 "parser.yy" // lalr1.cc:859
{
yylhs.value.as< TokenPkt4::FieldType > () = TokenPkt4::HLEN;
}
break;
case 38:
-#line 382 "parser.yy" // lalr1.cc:859
+#line 381 "parser.yy" // lalr1.cc:859
{
yylhs.value.as< TokenPkt4::FieldType > () = TokenPkt4::HTYPE;
}
break;
case 39:
-#line 386 "parser.yy" // lalr1.cc:859
+#line 385 "parser.yy" // lalr1.cc:859
{
yylhs.value.as< TokenPkt4::FieldType > () = TokenPkt4::CIADDR;
}
break;
case 40:
-#line 390 "parser.yy" // lalr1.cc:859
+#line 389 "parser.yy" // lalr1.cc:859
{
yylhs.value.as< TokenPkt4::FieldType > () = TokenPkt4::GIADDR;
}
break;
case 41:
-#line 394 "parser.yy" // lalr1.cc:859
+#line 393 "parser.yy" // lalr1.cc:859
{
yylhs.value.as< TokenPkt4::FieldType > () = TokenPkt4::YIADDR;
}
break;
case 42:
-#line 398 "parser.yy" // lalr1.cc:859
+#line 397 "parser.yy" // lalr1.cc:859
{
yylhs.value.as< TokenPkt4::FieldType > () = TokenPkt4::SIADDR;
}
break;
case 43:
-#line 404 "parser.yy" // lalr1.cc:859
+#line 403 "parser.yy" // lalr1.cc:859
{
TokenPtr str(new TokenString(yystack_[0].value.as< std::string > ()));
ctx.expression.push_back(str);
break;
case 44:
-#line 411 "parser.yy" // lalr1.cc:859
+#line 410 "parser.yy" // lalr1.cc:859
{
TokenPtr str(new TokenString(yystack_[0].value.as< std::string > ()));
ctx.expression.push_back(str);
break;
case 45:
-#line 416 "parser.yy" // lalr1.cc:859
+#line 415 "parser.yy" // lalr1.cc:859
{
TokenPtr str(new TokenString("all"));
ctx.expression.push_back(str);
break;
case 46:
-#line 422 "parser.yy" // lalr1.cc:859
+#line 421 "parser.yy" // lalr1.cc:859
{ yylhs.value.as< TokenRelay6Field::FieldType > () = TokenRelay6Field::PEERADDR; }
#line 1176 "parser.cc" // lalr1.cc:859
break;
case 47:
-#line 423 "parser.yy" // lalr1.cc:859
+#line 422 "parser.yy" // lalr1.cc:859
{ yylhs.value.as< TokenRelay6Field::FieldType > () = TokenRelay6Field::LINKADDR; }
#line 1182 "parser.cc" // lalr1.cc:859
break;
case 48:
-#line 427 "parser.yy" // lalr1.cc:859
+#line 426 "parser.yy" // lalr1.cc:859
{
yylhs.value.as< uint8_t > () = ctx.convertNestLevelNumber(yystack_[0].value.as< std::string > (), yystack_[0].location);
}
break;
case 49:
-#line 435 "parser.yy" // lalr1.cc:859
+#line 434 "parser.yy" // lalr1.cc:859
{ yylhs.value.as< TokenPkt6::FieldType > () = TokenPkt6::MSGTYPE; }
#line 1196 "parser.cc" // lalr1.cc:859
break;
case 50:
-#line 436 "parser.yy" // lalr1.cc:859
+#line 435 "parser.yy" // lalr1.cc:859
{ yylhs.value.as< TokenPkt6::FieldType > () = TokenPkt6::TRANSID; }
#line 1202 "parser.cc" // lalr1.cc:859
break;
0, 106, 106, 109, 110, 115, 120, 125, 130, 135,
155, 169, 178, 188, 199, 204, 209, 214, 219, 240,
255, 270, 275, 280, 285, 290, 298, 307, 318, 329,
- 344, 348, 354, 358, 364, 368, 373, 377, 381, 385,
- 389, 393, 397, 403, 410, 415, 422, 423, 426, 435,
- 436
+ 343, 347, 353, 357, 363, 367, 372, 376, 380, 384,
+ 388, 392, 396, 402, 409, 414, 421, 422, 425, 434,
+ 435
};
// Print the state stack on the debug stream.
#line 13 "parser.yy" // lalr1.cc:1167
} } // isc::eval
#line 1670 "parser.cc" // lalr1.cc:1167
-#line 439 "parser.yy" // lalr1.cc:1168
+#line 438 "parser.yy" // lalr1.cc:1168
void
isc::eval::EvalParser::error(const location_type& loc,