#line 155 "parser.yy"
{
TokenPtr neg(new TokenNot());
- ctx.expression.push_back(neg);
+ ctx.expression_.push_back(neg);
}
#line 851 "parser.cc"
break;
case 7: // $@1: %empty
#line 160 "parser.yy"
{
- unsigned target = ++ctx.label;
- ctx.labels.push_back(target);
+ unsigned target = ++ctx.label_;
+ ctx.labels_.push_back(target);
TokenPtr pobf(new TokenPopOrBranchFalse(target));
- ctx.expression.push_back(pobf);
+ ctx.expression_.push_back(pobf);
}
#line 862 "parser.cc"
break;
case 8: // bool_expr: bool_expr "and" $@1 bool_expr
#line 165 "parser.yy"
{
- unsigned target = ctx.labels.back();
- ctx.labels.pop_back();
+ unsigned target = ctx.labels_.back();
+ ctx.labels_.pop_back();
TokenPtr lab(new TokenLabel(target));
- ctx.expression.push_back(lab);
+ ctx.expression_.push_back(lab);
}
#line 873 "parser.cc"
break;
#line 172 "parser.yy"
{
TokenPtr neg(new TokenAnd());
- ctx.expression.push_back(neg);
+ ctx.expression_.push_back(neg);
}
#line 882 "parser.cc"
break;
case 10: // $@2: %empty
#line 177 "parser.yy"
{
- unsigned target = ++ctx.label;
- ctx.labels.push_back(target);
+ unsigned target = ++ctx.label_;
+ ctx.labels_.push_back(target);
TokenPtr pobt(new TokenPopOrBranchTrue(target));
- ctx.expression.push_back(pobt);
+ ctx.expression_.push_back(pobt);
}
#line 893 "parser.cc"
break;
case 11: // bool_expr: bool_expr "or" $@2 bool_expr
#line 182 "parser.yy"
{
- unsigned target = ctx.labels.back();
- ctx.labels.pop_back();
+ unsigned target = ctx.labels_.back();
+ ctx.labels_.pop_back();
TokenPtr lab(new TokenLabel(target));
- ctx.expression.push_back(lab);
+ ctx.expression_.push_back(lab);
}
#line 904 "parser.cc"
break;
#line 189 "parser.yy"
{
TokenPtr neg(new TokenOr());
- ctx.expression.push_back(neg);
+ ctx.expression_.push_back(neg);
}
#line 913 "parser.cc"
break;
#line 194 "parser.yy"
{
TokenPtr eq(new TokenEqual());
- ctx.expression.push_back(eq);
+ ctx.expression_.push_back(eq);
}
#line 922 "parser.cc"
break;
#line 199 "parser.yy"
{
TokenPtr opt(new TokenOption(yystack_[3].value.as < uint16_t > (), TokenOption::EXISTS));
- ctx.expression.push_back(opt);
+ ctx.expression_.push_back(opt);
}
#line 931 "parser.cc"
break;
#line 204 "parser.yy"
{
TokenPtr opt(new TokenSubOption(yystack_[8].value.as < uint16_t > (), yystack_[3].value.as < uint16_t > (), TokenOption::EXISTS));
- ctx.expression.push_back(opt);
+ ctx.expression_.push_back(opt);
}
#line 940 "parser.cc"
break;
case Option::V4:
{
TokenPtr opt(new TokenRelay4Option(yystack_[3].value.as < uint16_t > (), TokenOption::EXISTS));
- ctx.expression.push_back(opt);
+ ctx.expression_.push_back(opt);
break;
}
case Option::V6:
case Option::V6:
{
TokenPtr opt(new TokenRelay6Option(yystack_[8].value.as < int8_t > (), yystack_[3].value.as < uint16_t > (), TokenOption::EXISTS));
- ctx.expression.push_back(opt);
+ ctx.expression_.push_back(opt);
break;
}
case Option::V4:
// 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);
+ ctx.expression_.push_back(exist);
}
#line 995 "parser.cc"
break;
// 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);
+ ctx.expression_.push_back(exist);
}
#line 1008 "parser.cc"
break;
// 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);
+ ctx.expression_.push_back(exist);
}
#line 1022 "parser.cc"
break;
error(yystack_[1].location, "Not defined client class '" + cc + "'");
}
TokenPtr member(new TokenMember(cc));
- ctx.expression.push_back(member);
+ ctx.expression_.push_back(member);
}
#line 1041 "parser.cc"
break;
// This token will check if the regular expression matches
// the string expression.
TokenPtr match(new TokenMatch(yystack_[3].value.as < std::string > ()));
- ctx.expression.push_back(match);
+ ctx.expression_.push_back(match);
}
#line 1054 "parser.cc"
break;
#line 297 "parser.yy"
{
TokenPtr str(new TokenString(yystack_[0].value.as < std::string > ()));
- ctx.expression.push_back(str);
+ ctx.expression_.push_back(str);
}
#line 1063 "parser.cc"
break;
#line 302 "parser.yy"
{
TokenPtr hex(new TokenHexString(yystack_[0].value.as < std::string > ()));
- ctx.expression.push_back(hex);
+ ctx.expression_.push_back(hex);
}
#line 1072 "parser.cc"
break;
#line 307 "parser.yy"
{
TokenPtr ip(new TokenIpAddress(yystack_[0].value.as < std::string > ()));
- ctx.expression.push_back(ip);
+ ctx.expression_.push_back(ip);
}
#line 1081 "parser.cc"
break;
#line 312 "parser.yy"
{
TokenPtr opt(new TokenOption(yystack_[3].value.as < uint16_t > (), yystack_[0].value.as < TokenOption::RepresentationType > ()));
- ctx.expression.push_back(opt);
+ ctx.expression_.push_back(opt);
}
#line 1090 "parser.cc"
break;
#line 317 "parser.yy"
{
TokenPtr opt(new TokenSubOption(yystack_[8].value.as < uint16_t > (), yystack_[3].value.as < uint16_t > (), yystack_[0].value.as < TokenOption::RepresentationType > ()));
- ctx.expression.push_back(opt);
+ ctx.expression_.push_back(opt);
}
#line 1099 "parser.cc"
break;
case Option::V4:
{
TokenPtr opt(new TokenRelay4Option(yystack_[3].value.as < uint16_t > (), yystack_[0].value.as < TokenOption::RepresentationType > ()));
- ctx.expression.push_back(opt);
+ ctx.expression_.push_back(opt);
break;
}
case Option::V6:
case Option::V6:
{
TokenPtr opt(new TokenRelay6Option(yystack_[8].value.as < int8_t > (), yystack_[3].value.as < uint16_t > (), yystack_[0].value.as < TokenOption::RepresentationType > ()));
- ctx.expression.push_back(opt);
+ ctx.expression_.push_back(opt);
break;
}
case Option::V4:
#line 358 "parser.yy"
{
TokenPtr pkt_metadata(new TokenPkt(yystack_[0].value.as < TokenPkt::MetadataType > ()));
- ctx.expression.push_back(pkt_metadata);
+ ctx.expression_.push_back(pkt_metadata);
}
#line 1150 "parser.cc"
break;
case Option::V4:
{
TokenPtr pkt4_field(new TokenPkt4(yystack_[0].value.as < TokenPkt4::FieldType > ()));
- ctx.expression.push_back(pkt4_field);
+ ctx.expression_.push_back(pkt4_field);
break;
}
case Option::V6:
case Option::V6:
{
TokenPtr pkt6_field(new TokenPkt6(yystack_[0].value.as < TokenPkt6::FieldType > ()));
- ctx.expression.push_back(pkt6_field);
+ ctx.expression_.push_back(pkt6_field);
break;
}
case Option::V4:
case Option::V6:
{
TokenPtr relay6field(new TokenRelay6Field(yystack_[3].value.as < int8_t > (), yystack_[0].value.as < TokenRelay6Field::FieldType > ()));
- ctx.expression.push_back(relay6field);
+ ctx.expression_.push_back(relay6field);
break;
}
case Option::V4:
#line 406 "parser.yy"
{
TokenPtr sub(new TokenSubstring());
- ctx.expression.push_back(sub);
+ ctx.expression_.push_back(sub);
}
#line 1213 "parser.cc"
break;
#line 411 "parser.yy"
{
TokenPtr split(new TokenSplit());
- ctx.expression.push_back(split);
+ ctx.expression_.push_back(split);
}
#line 1222 "parser.cc"
break;
#line 416 "parser.yy"
{
TokenPtr conc(new TokenConcat());
- ctx.expression.push_back(conc);
+ ctx.expression_.push_back(conc);
}
#line 1231 "parser.cc"
break;
#line 421 "parser.yy"
{
TokenPtr conc(new TokenConcat());
- ctx.expression.push_back(conc);
+ ctx.expression_.push_back(conc);
}
#line 1240 "parser.cc"
break;
#line 426 "parser.yy"
{
TokenPtr lcase(new TokenLowerCase());
- ctx.expression.push_back(lcase);
+ ctx.expression_.push_back(lcase);
}
#line 1249 "parser.cc"
break;
#line 431 "parser.yy"
{
TokenPtr ucase(new TokenUpperCase());
- ctx.expression.push_back(ucase);
+ ctx.expression_.push_back(ucase);
}
#line 1258 "parser.cc"
break;
case 40: // $@3: %empty
#line 436 "parser.yy"
{
- unsigned target = ++ctx.label;
- ctx.labels.push_back(target);
+ unsigned target = ++ctx.label_;
+ ctx.labels_.push_back(target);
TokenPtr pabf(new TokenPopAndBranchFalse(target));
- ctx.expression.push_back(pabf);
+ ctx.expression_.push_back(pabf);
}
#line 1269 "parser.cc"
break;
case 41: // $@4: %empty
#line 441 "parser.yy"
{
- unsigned target = ctx.labels.back();
- ctx.labels.pop_back();
- unsigned target2 = ++ctx.label;
- ctx.labels.push_back(target2);
+ unsigned target = ctx.labels_.back();
+ ctx.labels_.pop_back();
+ unsigned target2 = ++ctx.label_;
+ ctx.labels_.push_back(target2);
TokenPtr branch(new TokenBranch(target2));
- ctx.expression.push_back(branch);
+ ctx.expression_.push_back(branch);
TokenPtr lab(new TokenLabel(target));
- ctx.expression.push_back(lab);
+ ctx.expression_.push_back(lab);
}
#line 1284 "parser.cc"
break;
case 42: // string_expr: "ifelse" "(" bool_expr "," $@3 string_expr "," $@4 string_expr ")"
#line 450 "parser.yy"
{
- unsigned target = ctx.labels.back();
- ctx.labels.pop_back();
+ unsigned target = ctx.labels_.back();
+ ctx.labels_.pop_back();
TokenPtr lab(new TokenLabel(target));
- ctx.expression.push_back(lab);
+ ctx.expression_.push_back(lab);
}
#line 1295 "parser.cc"
break;
#line 457 "parser.yy"
{
TokenPtr cond(new TokenIfElse());
- ctx.expression.push_back(cond);
+ ctx.expression_.push_back(cond);
}
#line 1304 "parser.cc"
break;
#line 462 "parser.yy"
{
TokenPtr tohex(new TokenToHexString());
- ctx.expression.push_back(tohex);
+ ctx.expression_.push_back(tohex);
}
#line 1313 "parser.cc"
break;
#line 467 "parser.yy"
{
TokenPtr addrtotext(new TokenIpAddressToText());
- ctx.expression.push_back(addrtotext);
+ ctx.expression_.push_back(addrtotext);
}
#line 1322 "parser.cc"
break;
#line 472 "parser.yy"
{
TokenPtr int8totext(new TokenInt8ToText());
- ctx.expression.push_back(int8totext);
+ ctx.expression_.push_back(int8totext);
}
#line 1331 "parser.cc"
break;
#line 477 "parser.yy"
{
TokenPtr int16totext(new TokenInt16ToText());
- ctx.expression.push_back(int16totext);
+ ctx.expression_.push_back(int16totext);
}
#line 1340 "parser.cc"
break;
#line 482 "parser.yy"
{
TokenPtr int32totext(new TokenInt32ToText());
- ctx.expression.push_back(int32totext);
+ ctx.expression_.push_back(int32totext);
}
#line 1349 "parser.cc"
break;
#line 487 "parser.yy"
{
TokenPtr uint8totext(new TokenUInt8ToText());
- ctx.expression.push_back(uint8totext);
+ ctx.expression_.push_back(uint8totext);
}
#line 1358 "parser.cc"
break;
#line 492 "parser.yy"
{
TokenPtr uint16totext(new TokenUInt16ToText());
- ctx.expression.push_back(uint16totext);
+ ctx.expression_.push_back(uint16totext);
}
#line 1367 "parser.cc"
break;
#line 497 "parser.yy"
{
TokenPtr uint32totext(new TokenUInt32ToText());
- ctx.expression.push_back(uint32totext);
+ ctx.expression_.push_back(uint32totext);
}
#line 1376 "parser.cc"
break;
// 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);
+ ctx.expression_.push_back(vendor);
}
#line 1389 "parser.cc"
break;
// received vendor class option.
TokenPtr vendor(new TokenVendorClass(ctx.getUniverse(), 0,
TokenVendor::ENTERPRISE_ID));
- ctx.expression.push_back(vendor);
+ ctx.expression_.push_back(vendor);
}
#line 1403 "parser.cc"
break;
// for specified suboption and finally will return
// its content.
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);
+ ctx.expression_.push_back(opt);
}
#line 1416 "parser.cc"
break;
// is requested.
TokenPtr vendor_class(new TokenVendorClass(ctx.getUniverse(), yystack_[3].value.as < uint32_t > (),
TokenVendor::DATA, 0));
- ctx.expression.push_back(vendor_class);
+ ctx.expression_.push_back(vendor_class);
}
#line 1433 "parser.cc"
break;
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);
+ ctx.expression_.push_back(vendor_class);
}
#line 1450 "parser.cc"
break;
#line 556 "parser.yy"
{
TokenPtr integer(new TokenInteger(yystack_[0].value.as < uint32_t > ()));
- ctx.expression.push_back(integer);
+ ctx.expression_.push_back(integer);
}
#line 1459 "parser.cc"
break;
#line 691 "parser.yy"
{
TokenPtr str(new TokenString(yystack_[0].value.as < std::string > ()));
- ctx.expression.push_back(str);
+ ctx.expression_.push_back(str);
}
#line 1676 "parser.cc"
break;
#line 698 "parser.yy"
{
TokenPtr str(new TokenString(yystack_[0].value.as < std::string > ()));
- ctx.expression.push_back(str);
+ ctx.expression_.push_back(str);
}
#line 1685 "parser.cc"
break;
#line 703 "parser.yy"
{
TokenPtr str(new TokenString("all"));
- ctx.expression.push_back(str);
+ ctx.expression_.push_back(str);
}
#line 1694 "parser.cc"
break;
#line 710 "parser.yy"
{
TokenPtr str(new TokenString(yystack_[0].value.as < std::string > ()));
- ctx.expression.push_back(str);
+ ctx.expression_.push_back(str);
}
#line 1703 "parser.cc"
break;
| NOT bool_expr
{
TokenPtr neg(new TokenNot());
- ctx.expression.push_back(neg);
+ ctx.expression_.push_back(neg);
}
| bool_expr AND
{
- unsigned target = ++ctx.label;
- ctx.labels.push_back(target);
+ unsigned target = ++ctx.label_;
+ ctx.labels_.push_back(target);
TokenPtr pobf(new TokenPopOrBranchFalse(target));
- ctx.expression.push_back(pobf);
+ ctx.expression_.push_back(pobf);
} bool_expr {
- unsigned target = ctx.labels.back();
- ctx.labels.pop_back();
+ unsigned target = ctx.labels_.back();
+ ctx.labels_.pop_back();
TokenPtr lab(new TokenLabel(target));
- ctx.expression.push_back(lab);
+ ctx.expression_.push_back(lab);
}
| bool_expr SAND bool_expr
{
TokenPtr neg(new TokenAnd());
- ctx.expression.push_back(neg);
+ ctx.expression_.push_back(neg);
}
| bool_expr OR
{
- unsigned target = ++ctx.label;
- ctx.labels.push_back(target);
+ unsigned target = ++ctx.label_;
+ ctx.labels_.push_back(target);
TokenPtr pobt(new TokenPopOrBranchTrue(target));
- ctx.expression.push_back(pobt);
+ ctx.expression_.push_back(pobt);
} bool_expr {
- unsigned target = ctx.labels.back();
- ctx.labels.pop_back();
+ unsigned target = ctx.labels_.back();
+ ctx.labels_.pop_back();
TokenPtr lab(new TokenLabel(target));
- ctx.expression.push_back(lab);
+ ctx.expression_.push_back(lab);
}
| bool_expr SOR bool_expr
{
TokenPtr neg(new TokenOr());
- ctx.expression.push_back(neg);
+ ctx.expression_.push_back(neg);
}
| string_expr EQUAL string_expr
{
TokenPtr eq(new TokenEqual());
- ctx.expression.push_back(eq);
+ ctx.expression_.push_back(eq);
}
| OPTION "[" option_code "]" "." EXISTS
{
TokenPtr opt(new TokenOption($3, TokenOption::EXISTS));
- ctx.expression.push_back(opt);
+ ctx.expression_.push_back(opt);
}
| OPTION "[" option_code "]" "." OPTION "[" sub_option_code "]" "." EXISTS
{
TokenPtr opt(new TokenSubOption($3, $8, TokenOption::EXISTS));
- ctx.expression.push_back(opt);
+ ctx.expression_.push_back(opt);
}
| RELAY4 "[" sub_option_code "]" "." EXISTS
{
case Option::V4:
{
TokenPtr opt(new TokenRelay4Option($3, TokenOption::EXISTS));
- ctx.expression.push_back(opt);
+ ctx.expression_.push_back(opt);
break;
}
case Option::V6:
case Option::V6:
{
TokenPtr opt(new TokenRelay6Option($3, $8, TokenOption::EXISTS));
- ctx.expression.push_back(opt);
+ ctx.expression_.push_back(opt);
break;
}
case Option::V4:
// 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(), $3, TokenOption::EXISTS));
- ctx.expression.push_back(exist);
+ ctx.expression_.push_back(exist);
}
| VENDOR "[" enterprise_id "]" "." 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(), $3, TokenOption::EXISTS));
- ctx.expression.push_back(exist);
+ ctx.expression_.push_back(exist);
}
| VENDOR "[" enterprise_id "]" "." OPTION "[" sub_option_code "]" "." EXISTS
{
// exists, has specified enterprise-id and if has
// specified suboption.
TokenPtr exist(new TokenVendor(ctx.getUniverse(), $3, TokenOption::EXISTS, $8));
- ctx.expression.push_back(exist);
+ ctx.expression_.push_back(exist);
}
| MEMBER "(" STRING ")"
{
error(@3, "Not defined client class '" + cc + "'");
}
TokenPtr member(new TokenMember(cc));
- ctx.expression.push_back(member);
+ ctx.expression_.push_back(member);
}
| MATCH "(" STRING "," string_expr ")"
{
// This token will check if the regular expression matches
// the string expression.
TokenPtr match(new TokenMatch($3));
- ctx.expression.push_back(match);
+ ctx.expression_.push_back(match);
}
;
string_expr : STRING
{
TokenPtr str(new TokenString($1));
- ctx.expression.push_back(str);
+ ctx.expression_.push_back(str);
}
| HEXSTRING
{
TokenPtr hex(new TokenHexString($1));
- ctx.expression.push_back(hex);
+ ctx.expression_.push_back(hex);
}
| IP_ADDRESS
{
TokenPtr ip(new TokenIpAddress($1));
- ctx.expression.push_back(ip);
+ ctx.expression_.push_back(ip);
}
| OPTION "[" option_code "]" "." option_repr_type
{
TokenPtr opt(new TokenOption($3, $6));
- ctx.expression.push_back(opt);
+ ctx.expression_.push_back(opt);
}
| OPTION "[" option_code "]" "." OPTION "[" sub_option_code "]" "." option_repr_type
{
TokenPtr opt(new TokenSubOption($3, $8, $11));
- ctx.expression.push_back(opt);
+ ctx.expression_.push_back(opt);
}
| RELAY4 "[" sub_option_code "]" "." option_repr_type
{
case Option::V4:
{
TokenPtr opt(new TokenRelay4Option($3, $6));
- ctx.expression.push_back(opt);
+ ctx.expression_.push_back(opt);
break;
}
case Option::V6:
case Option::V6:
{
TokenPtr opt(new TokenRelay6Option($3, $8, $11));
- ctx.expression.push_back(opt);
+ ctx.expression_.push_back(opt);
break;
}
case Option::V4:
| PKT "." pkt_metadata
{
TokenPtr pkt_metadata(new TokenPkt($3));
- ctx.expression.push_back(pkt_metadata);
+ ctx.expression_.push_back(pkt_metadata);
}
| PKT4 "." pkt4_field
{
case Option::V4:
{
TokenPtr pkt4_field(new TokenPkt4($3));
- ctx.expression.push_back(pkt4_field);
+ ctx.expression_.push_back(pkt4_field);
break;
}
case Option::V6:
case Option::V6:
{
TokenPtr pkt6_field(new TokenPkt6($3));
- ctx.expression.push_back(pkt6_field);
+ ctx.expression_.push_back(pkt6_field);
break;
}
case Option::V4:
case Option::V6:
{
TokenPtr relay6field(new TokenRelay6Field($3, $6));
- ctx.expression.push_back(relay6field);
+ ctx.expression_.push_back(relay6field);
break;
}
case Option::V4:
| SUBSTRING "(" string_expr "," start_expr "," length_expr ")"
{
TokenPtr sub(new TokenSubstring());
- ctx.expression.push_back(sub);
+ ctx.expression_.push_back(sub);
}
| SPLIT "(" string_expr "," string_expr "," int_expr ")"
{
TokenPtr split(new TokenSplit());
- ctx.expression.push_back(split);
+ ctx.expression_.push_back(split);
}
| CONCAT "(" string_expr "," string_expr ")"
{
TokenPtr conc(new TokenConcat());
- ctx.expression.push_back(conc);
+ ctx.expression_.push_back(conc);
}
| string_expr PLUS string_expr
{
TokenPtr conc(new TokenConcat());
- ctx.expression.push_back(conc);
+ ctx.expression_.push_back(conc);
}
| LCASE "(" string_expr ")"
{
TokenPtr lcase(new TokenLowerCase());
- ctx.expression.push_back(lcase);
+ ctx.expression_.push_back(lcase);
}
| UCASE "(" string_expr ")"
{
TokenPtr ucase(new TokenUpperCase());
- ctx.expression.push_back(ucase);
+ ctx.expression_.push_back(ucase);
}
| IFELSE "(" bool_expr ","
{
- unsigned target = ++ctx.label;
- ctx.labels.push_back(target);
+ unsigned target = ++ctx.label_;
+ ctx.labels_.push_back(target);
TokenPtr pabf(new TokenPopAndBranchFalse(target));
- ctx.expression.push_back(pabf);
+ ctx.expression_.push_back(pabf);
} string_expr "," {
- unsigned target = ctx.labels.back();
- ctx.labels.pop_back();
- unsigned target2 = ++ctx.label;
- ctx.labels.push_back(target2);
+ unsigned target = ctx.labels_.back();
+ ctx.labels_.pop_back();
+ unsigned target2 = ++ctx.label_;
+ ctx.labels_.push_back(target2);
TokenPtr branch(new TokenBranch(target2));
- ctx.expression.push_back(branch);
+ ctx.expression_.push_back(branch);
TokenPtr lab(new TokenLabel(target));
- ctx.expression.push_back(lab);
+ ctx.expression_.push_back(lab);
} string_expr ")" {
- unsigned target = ctx.labels.back();
- ctx.labels.pop_back();
+ unsigned target = ctx.labels_.back();
+ ctx.labels_.pop_back();
TokenPtr lab(new TokenLabel(target));
- ctx.expression.push_back(lab);
+ ctx.expression_.push_back(lab);
}
| SIFELSE "(" bool_expr "," string_expr "," string_expr ")"
{
TokenPtr cond(new TokenIfElse());
- ctx.expression.push_back(cond);
+ ctx.expression_.push_back(cond);
}
| TOHEXSTRING "(" string_expr "," string_expr ")"
{
TokenPtr tohex(new TokenToHexString());
- ctx.expression.push_back(tohex);
+ ctx.expression_.push_back(tohex);
}
| ADDRTOTEXT "(" string_expr ")"
{
TokenPtr addrtotext(new TokenIpAddressToText());
- ctx.expression.push_back(addrtotext);
+ ctx.expression_.push_back(addrtotext);
}
| INT8TOTEXT "(" string_expr ")"
{
TokenPtr int8totext(new TokenInt8ToText());
- ctx.expression.push_back(int8totext);
+ ctx.expression_.push_back(int8totext);
}
| INT16TOTEXT "(" string_expr ")"
{
TokenPtr int16totext(new TokenInt16ToText());
- ctx.expression.push_back(int16totext);
+ ctx.expression_.push_back(int16totext);
}
| INT32TOTEXT "(" string_expr ")"
{
TokenPtr int32totext(new TokenInt32ToText());
- ctx.expression.push_back(int32totext);
+ ctx.expression_.push_back(int32totext);
}
| UINT8TOTEXT "(" string_expr ")"
{
TokenPtr uint8totext(new TokenUInt8ToText());
- ctx.expression.push_back(uint8totext);
+ ctx.expression_.push_back(uint8totext);
}
| UINT16TOTEXT "(" string_expr ")"
{
TokenPtr uint16totext(new TokenUInt16ToText());
- ctx.expression.push_back(uint16totext);
+ ctx.expression_.push_back(uint16totext);
}
| UINT32TOTEXT "(" string_expr ")"
{
TokenPtr uint32totext(new TokenUInt32ToText());
- ctx.expression.push_back(uint32totext);
+ ctx.expression_.push_back(uint32totext);
}
| 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);
+ ctx.expression_.push_back(vendor);
}
| VENDOR_CLASS "." ENTERPRISE
{
// received vendor class option.
TokenPtr vendor(new TokenVendorClass(ctx.getUniverse(), 0,
TokenVendor::ENTERPRISE_ID));
- ctx.expression.push_back(vendor);
+ ctx.expression_.push_back(vendor);
}
| VENDOR "[" enterprise_id "]" "." OPTION "[" sub_option_code "]" "." option_repr_type
{
// for specified suboption and finally will return
// its content.
TokenPtr opt(new TokenVendor(ctx.getUniverse(), $3, $11, $8));
- ctx.expression.push_back(opt);
+ ctx.expression_.push_back(opt);
}
| VENDOR_CLASS "[" enterprise_id "]" "." DATA
{
// is requested.
TokenPtr vendor_class(new TokenVendorClass(ctx.getUniverse(), $3,
TokenVendor::DATA, 0));
- ctx.expression.push_back(vendor_class);
+ ctx.expression_.push_back(vendor_class);
}
| VENDOR_CLASS "[" enterprise_id "]" "." DATA "[" INTEGER "]"
{
uint8_t index = ctx.convertUint8($8, @8);
TokenPtr vendor_class(new TokenVendorClass(ctx.getUniverse(), $3,
TokenVendor::DATA, index));
- ctx.expression.push_back(vendor_class);
+ ctx.expression_.push_back(vendor_class);
}
| integer_expr
{
TokenPtr integer(new TokenInteger($1));
- ctx.expression.push_back(integer);
+ ctx.expression_.push_back(integer);
}
| "(" string_expr ")"
;
start_expr : INTEGER
{
TokenPtr str(new TokenString($1));
- ctx.expression.push_back(str);
+ ctx.expression_.push_back(str);
}
;
length_expr : INTEGER
{
TokenPtr str(new TokenString($1));
- ctx.expression.push_back(str);
+ ctx.expression_.push_back(str);
}
| ALL
{
TokenPtr str(new TokenString("all"));
- ctx.expression.push_back(str);
+ ctx.expression_.push_back(str);
}
;
int_expr : INTEGER
{
TokenPtr str(new TokenString($1));
- ctx.expression.push_back(str);
+ ctx.expression_.push_back(str);
}
;
EXPECT_TRUE(parsed_);
// There should be the expected number of tokens.
- ASSERT_EQ(exp_tokens, eval.expression.size());
+ ASSERT_EQ(exp_tokens, eval.expression_.size());
// checked that the first token is TokenRelay6Option and that
// is has the correct attributes
- checkTokenRelay6Option(eval.expression.at(0), exp_level, exp_code, exp_repr);
+ checkTokenRelay6Option(eval.expression_.at(0), exp_level, exp_code, exp_repr);
}
/// @brief check if the given token is a Pkt of specified type
EXPECT_TRUE(parsed_);
// There should be exactly the expected number of tokens.
- ASSERT_EQ(exp_tokens, eval.expression.size());
+ ASSERT_EQ(exp_tokens, eval.expression_.size());
// Check that the first token is TokenPkt instance and has correct type.
- checkTokenPkt(eval.expression.at(0), exp_type);
+ checkTokenPkt(eval.expression_.at(0), exp_type);
}
/// @brief checks if the given token is Pkt4 of specified type
EXPECT_TRUE(parsed_);
// There should be exactly the expected number of tokens.
- ASSERT_EQ(exp_tokens, eval.expression.size());
+ ASSERT_EQ(exp_tokens, eval.expression_.size());
// Check that the first token is TokenPkt4 instance and has correct type.
- checkTokenPkt4(eval.expression.at(0), exp_type);
+ checkTokenPkt4(eval.expression_.at(0), exp_type);
}
/// @brief checks if the given token is Pkt6 of specified type
EXPECT_TRUE(parsed_);
// There should be the requested number of tokens
- ASSERT_EQ(exp_tokens, eval.expression.size());
+ ASSERT_EQ(exp_tokens, eval.expression_.size());
// Check that the first token is TokenPkt6 instance and has correct type.
- checkTokenPkt6(eval.expression.at(0), exp_type);
+ checkTokenPkt6(eval.expression_.at(0), exp_type);
}
/// @brief checks if the given token is a TokenRelay with the
EXPECT_TRUE(parsed_);
// There should be the expected number of tokens.
- ASSERT_EQ(exp_tokens, eval.expression.size());
+ ASSERT_EQ(exp_tokens, eval.expression_.size());
// checked that the first token is TokenRelay6Field and that
// is has the correct attributes
- checkTokenRelay6Field(eval.expression.at(0), exp_level, exp_type);
+ checkTokenRelay6Field(eval.expression_.at(0), exp_level, exp_type);
}
/// @brief checks if the given token is a TokenMember with the
EXPECT_TRUE(parsed_);
// There should be the expected number of tokens.
- ASSERT_EQ(exp_tokens, eval.expression.size());
+ ASSERT_EQ(exp_tokens, eval.expression_.size());
// checked that the first token is TokenRelay6Field and that
// is has the correct attributes
- checkTokenMember(eval.expression.at(0), exp_client_class);
+ checkTokenMember(eval.expression_.at(0), exp_client_class);
}
/// @brief checks if the given token is a substring operator
EXPECT_TRUE(parsed_);
// We need at least one token, we will evaluate the first one.
- ASSERT_FALSE(eval.expression.empty());
+ ASSERT_FALSE(eval.expression_.empty());
- checkTokenVendor(eval.expression.at(0), vendor_id, option_code, expected_repr);
+ checkTokenVendor(eval.expression_.at(0), vendor_id, option_code, expected_repr);
}
/// @brief Checks if token is really a TokenVendor, that the vendor_id was
EXPECT_NO_THROW(parsed_ = eval.parseString(expr));
EXPECT_TRUE(parsed_);
- ASSERT_FALSE(eval.expression.empty());
+ ASSERT_FALSE(eval.expression_.empty());
boost::shared_ptr<TokenVendor> vendor =
- boost::dynamic_pointer_cast<TokenVendor>(eval.expression.at(0));
+ boost::dynamic_pointer_cast<TokenVendor>(eval.expression_.at(0));
ASSERT_TRUE(vendor);
EXPECT_EQ(TokenVendor::ENTERPRISE_ID, vendor->getField());
EXPECT_NO_THROW(parsed_ = eval.parseString(expr));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(1, eval.expression.size());
- checkTokenVendorClass(eval.expression.at(0), vendor_id, 0, TokenOption::EXISTS,
+ ASSERT_EQ(1, eval.expression_.size());
+ checkTokenVendorClass(eval.expression_.at(0), vendor_id, 0, TokenOption::EXISTS,
TokenVendor::EXISTS);
}
EXPECT_TRUE(parsed_);
// Make sure there's at least one token
- ASSERT_FALSE(eval.expression.empty());
+ ASSERT_FALSE(eval.expression_.empty());
// The first token should be TokenVendorClass, let's take a closer look.
- checkTokenVendorClass(eval.expression.at(0), vendor_id, index,
+ checkTokenVendorClass(eval.expression_.at(0), vendor_id, index,
TokenOption::HEXADECIMAL, TokenVendor::DATA);
}
EXPECT_TRUE(parsed_);
// Make sure there's at least one token
- ASSERT_FALSE(eval.expression.empty());
+ ASSERT_FALSE(eval.expression_.empty());
// The first token should be TokenVendorClass, let's take a closer look.
- checkTokenVendorClass(eval.expression.at(0), 0, 0, TokenOption::HEXADECIMAL,
+ checkTokenVendorClass(eval.expression_.at(0), 0, 0, TokenOption::HEXADECIMAL,
TokenVendor::ENTERPRISE_ID);
}
EXPECT_NO_THROW(parsed_ = eval.parseString("'foo' == 'bar'"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(3, eval.expression.size());
+ ASSERT_EQ(3, eval.expression_.size());
- TokenPtr tmp1 = eval.expression.at(0);
- TokenPtr tmp2 = eval.expression.at(1);
- TokenPtr tmp3 = eval.expression.at(2);
+ TokenPtr tmp1 = eval.expression_.at(0);
+ TokenPtr tmp2 = eval.expression_.at(1);
+ TokenPtr tmp3 = eval.expression_.at(2);
checkTokenString(tmp1, "foo");
checkTokenString(tmp2, "bar");
EXPECT_NO_THROW(parsed_ = eval.parseString(string(data, sizeof(data) - 1)));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(3, eval.expression.size());
+ ASSERT_EQ(3, eval.expression_.size());
- TokenPtr tmp1 = eval.expression.at(0);
- TokenPtr tmp2 = eval.expression.at(1);
- TokenPtr tmp3 = eval.expression.at(2);
+ TokenPtr tmp1 = eval.expression_.at(0);
+ TokenPtr tmp2 = eval.expression_.at(1);
+ TokenPtr tmp3 = eval.expression_.at(2);
char l_data[] = "12345~!@#$%^&*()_+{}[];:<>/?\\67890\t \0\b\r\f";
char r_data[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
EXPECT_NO_THROW(parsed_ = eval.parseString("0x666f6f == 'foo'"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(3, eval.expression.size());
+ ASSERT_EQ(3, eval.expression_.size());
- TokenPtr tmp = eval.expression.at(0);
+ TokenPtr tmp = eval.expression_.at(0);
checkTokenHexString(tmp, "foo");
}
EXPECT_NO_THROW(parsed_ = eval.parseString("0X7 == 'foo'"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(3, eval.expression.size());
+ ASSERT_EQ(3, eval.expression_.size());
- TokenPtr tmp = eval.expression.at(0);
+ TokenPtr tmp = eval.expression_.at(0);
checkTokenHexString(tmp, "\a");
}
EXPECT_NO_THROW(parsed_ = eval.parseString("10.0.0.1 == 'foo'"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(3, eval.expression.size());
+ ASSERT_EQ(3, eval.expression_.size());
- TokenPtr tmp = eval.expression.at(0);
+ TokenPtr tmp = eval.expression_.at(0);
checkTokenIpAddress(tmp, "10.0.0.1");
}
EXPECT_NO_THROW(parsed_ = eval.parseString("2001:db8::1 == 'foo'"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(3, eval.expression.size());
+ ASSERT_EQ(3, eval.expression_.size());
- TokenPtr tmp = eval.expression.at(0);
+ TokenPtr tmp = eval.expression_.at(0);
checkTokenIpAddress(tmp, "2001:db8::1");
}
EXPECT_NO_THROW(parsed_ = eval.parseString("::10.0.0.1 == 'foo'"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(3, eval.expression.size());
+ ASSERT_EQ(3, eval.expression_.size());
- TokenPtr tmp = eval.expression.at(0);
+ TokenPtr tmp = eval.expression_.at(0);
checkTokenIpAddress(tmp, "::10.0.0.1");
}
EXPECT_NO_THROW(parsed_ = eval.parseString(":: == 'foo'"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(3, eval.expression.size());
+ ASSERT_EQ(3, eval.expression_.size());
- TokenPtr tmp = eval.expression.at(0);
+ TokenPtr tmp = eval.expression_.at(0);
checkTokenIpAddress(tmp, "::");
}
EXPECT_NO_THROW(parsed_ = eval.parseString("2001:db8:: == 'foo'"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(3, eval.expression.size());
+ ASSERT_EQ(3, eval.expression_.size());
- TokenPtr tmp = eval.expression.at(0);
+ TokenPtr tmp = eval.expression_.at(0);
checkTokenIpAddress(tmp, "2001:db8::");
}
EXPECT_NO_THROW(parsed_ = eval.parseString("'foo' == 'bar'"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(3, eval.expression.size());
+ ASSERT_EQ(3, eval.expression_.size());
- TokenPtr tmp1 = eval.expression.at(0);
- TokenPtr tmp2 = eval.expression.at(1);
- TokenPtr tmp3 = eval.expression.at(2);
+ TokenPtr tmp1 = eval.expression_.at(0);
+ TokenPtr tmp2 = eval.expression_.at(1);
+ TokenPtr tmp3 = eval.expression_.at(2);
checkTokenString(tmp1, "foo");
checkTokenString(tmp2, "bar");
EXPECT_NO_THROW(parsed_ = eval.parseString("option[123].text == 'foo'"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(3, eval.expression.size());
- checkTokenOption(eval.expression.at(0), 123, TokenOption::TEXTUAL);
+ ASSERT_EQ(3, eval.expression_.size());
+ checkTokenOption(eval.expression_.at(0), 123, TokenOption::TEXTUAL);
}
// Test parsing of an option identified by name.
// Option 'host-name' is a standard DHCPv4 option defined in the libdhcp++.
EXPECT_NO_THROW(parsed_ = eval.parseString("option[host-name].text == 'foo'"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(3, eval.expression.size());
- checkTokenOption(eval.expression.at(0), 12, TokenOption::TEXTUAL);
+ ASSERT_EQ(3, eval.expression_.size());
+ checkTokenOption(eval.expression_.at(0), 12, TokenOption::TEXTUAL);
}
// Test parsing of an option existence
EXPECT_NO_THROW(parsed_ = eval.parseString("option[100].exists"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(1, eval.expression.size());
- checkTokenOption(eval.expression.at(0), 100, TokenOption::EXISTS);
+ ASSERT_EQ(1, eval.expression_.size());
+ checkTokenOption(eval.expression_.at(0), 100, TokenOption::EXISTS);
}
// Test checking that whitespace can surround option name.
// Option 'host-name' is a standard DHCPv4 option defined in the libdhcp++.
EXPECT_NO_THROW(parsed_ = eval.parseString("option[ host-name ].text == 'foo'"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(3, eval.expression.size());
- checkTokenOption(eval.expression.at(0), 12, TokenOption::TEXTUAL);
+ ASSERT_EQ(3, eval.expression_.size());
+ checkTokenOption(eval.expression_.at(0), 12, TokenOption::TEXTUAL);
}
// Test checking that newlines can surround option name.
EXPECT_NO_THROW(parsed_ =
eval.parseString("option[\n host-name \n ].text == \n'foo'"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(3, eval.expression.size());
- checkTokenOption(eval.expression.at(0), 12, TokenOption::TEXTUAL);
+ ASSERT_EQ(3, eval.expression_.size());
+ checkTokenOption(eval.expression_.at(0), 12, TokenOption::TEXTUAL);
}
// Test parsing of an option represented as hexadecimal string.
EXPECT_NO_THROW(parsed_ = eval.parseString("option[123].hex == 0x666F6F"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(3, eval.expression.size());
- checkTokenOption(eval.expression.at(0), 123, TokenOption::HEXADECIMAL);
+ ASSERT_EQ(3, eval.expression_.size());
+ checkTokenOption(eval.expression_.at(0), 123, TokenOption::HEXADECIMAL);
}
// This test checks that the relay4[code].hex can be used in expressions.
EXPECT_NO_THROW(parsed_ =
eval.parseString("relay4[13].hex == 'thirteen'"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(3, eval.expression.size());
+ ASSERT_EQ(3, eval.expression_.size());
- TokenPtr tmp1 = eval.expression.at(0);
- TokenPtr tmp2 = eval.expression.at(1);
- TokenPtr tmp3 = eval.expression.at(2);
+ TokenPtr tmp1 = eval.expression_.at(0);
+ TokenPtr tmp2 = eval.expression_.at(1);
+ TokenPtr tmp3 = eval.expression_.at(2);
checkTokenRelay4(tmp1, 13, TokenOption::HEXADECIMAL);
checkTokenString(tmp2, "thirteen");
EXPECT_NO_THROW(parsed_ = eval.parseString("relay4[13].exists"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(1, eval.expression.size());
- checkTokenRelay4(eval.expression.at(0), 13, TokenOption::EXISTS);
+ ASSERT_EQ(1, eval.expression_.size());
+ checkTokenRelay4(eval.expression_.at(0), 13, TokenOption::EXISTS);
}
// Verify that relay4[13] is not usable in v6
EvalContext eval0(Option::V4);
EXPECT_NO_THROW(parsed_ = eval0.parseString("option[123].exists"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(1, eval0.expression.size());
- TokenPtr token = eval0.expression.at(0);
+ ASSERT_EQ(1, eval0.expression_.size());
+ TokenPtr token = eval0.expression_.at(0);
ASSERT_TRUE(token);
boost::shared_ptr<TokenOption> opt =
boost::dynamic_pointer_cast<TokenOption>(token);
EvalContext evaln(Option::V4);
EXPECT_NO_THROW(parsed_ = evaln.parseString("not option[123].exists"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(2, evaln.expression.size());
- token = evaln.expression.at(1);
+ ASSERT_EQ(2, evaln.expression_.size());
+ token = evaln.expression_.at(1);
ASSERT_TRUE(token);
boost::shared_ptr<TokenNot> tnot =
boost::dynamic_pointer_cast<TokenNot>(token);
EXPECT_NO_THROW(parsed_ =
evalsa.parseString("option[123].exists sand option[123].exists"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(3, evalsa.expression.size());
- token = evalsa.expression.at(2);
+ ASSERT_EQ(3, evalsa.expression_.size());
+ token = evalsa.expression_.at(2);
ASSERT_TRUE(token);
boost::shared_ptr<TokenAnd> tand =
boost::dynamic_pointer_cast<TokenAnd>(token);
EXPECT_NO_THROW(parsed_ =
evalso.parseString("option[123].exists sor option[123].exists"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(3, evalso.expression.size());
- token = evalso.expression.at(2);
+ ASSERT_EQ(3, evalso.expression_.size());
+ token = evalso.expression_.at(2);
ASSERT_TRUE(token);
boost::shared_ptr<TokenOr> tor =
boost::dynamic_pointer_cast<TokenOr>(token);
EXPECT_NO_THROW(parsed_ =
evala.parseString("option[123].exists and option[123].exists"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(4, evala.expression.size());
- token = evala.expression.at(1);
+ ASSERT_EQ(4, evala.expression_.size());
+ token = evala.expression_.at(1);
checkTokenPopOrBranchFalse(token, 1);
- token = evala.expression.at(3);
+ token = evala.expression_.at(3);
checkTokenLabel(token, 1);
// or
EXPECT_NO_THROW(parsed_ =
evalo.parseString("option[123].exists or option[123].exists"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(4, evalo.expression.size());
- token = evalo.expression.at(1);
+ ASSERT_EQ(4, evalo.expression_.size());
+ token = evalo.expression_.at(1);
checkTokenPopOrBranchTrue(token, 1);
- token = evala.expression.at(3);
+ token = evala.expression_.at(3);
checkTokenLabel(token, 1);
}
EXPECT_NO_THROW(parsed_ =
evalnsa.parseString("not option[123].exists sand option[123].exists"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(4, evalnsa.expression.size());
- TokenPtr token = evalnsa.expression.at(3);
+ ASSERT_EQ(4, evalnsa.expression_.size());
+ TokenPtr token = evalnsa.expression_.at(3);
ASSERT_TRUE(token);
boost::shared_ptr<TokenAnd> tand =
boost::dynamic_pointer_cast<TokenAnd>(token);
evalsosa.parseString("option[123].exists sor option[123].exists "
"sand option[123].exists"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(5, evalsosa.expression.size());
- token = evalsosa.expression.at(4);
+ ASSERT_EQ(5, evalsosa.expression_.size());
+ token = evalsosa.expression_.at(4);
ASSERT_TRUE(token);
boost::shared_ptr<TokenOr> tor =
boost::dynamic_pointer_cast<TokenOr>(token);
EXPECT_NO_THROW(parsed_ =
evalna.parseString("not option[123].exists and option[123].exists"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(5, evalna.expression.size());
- token = evalna.expression.at(2);
+ ASSERT_EQ(5, evalna.expression_.size());
+ token = evalna.expression_.at(2);
checkTokenPopOrBranchFalse(token, 1);
- token = evalna.expression.at(4);
+ token = evalna.expression_.at(4);
checkTokenLabel(token, 1);
// and precedence > or precedence
evaloa.parseString("option[123].exists or option[123].exists "
"and option[123].exists"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(7, evaloa.expression.size());
- token = evaloa.expression.at(1);
+ ASSERT_EQ(7, evaloa.expression_.size());
+ token = evaloa.expression_.at(1);
checkTokenPopOrBranchTrue(token, 1);
- token = evaloa.expression.at(5);
+ token = evaloa.expression_.at(5);
checkTokenLabel(token, 2);
- token = evaloa.expression.at(6);
+ token = evaloa.expression_.at(6);
checkTokenLabel(token, 1);
}
EXPECT_NO_THROW(parsed_ =
evalnsa.parseString("not (option[123].exists sand option[123].exists)"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(4, evalnsa.expression.size());
- TokenPtr token = evalnsa.expression.at(3);
+ ASSERT_EQ(4, evalnsa.expression_.size());
+ TokenPtr token = evalnsa.expression_.at(3);
ASSERT_TRUE(token);
boost::shared_ptr<TokenNot> tnot =
boost::dynamic_pointer_cast<TokenNot>(token);
evalsosa.parseString("(option[123].exists sor option[123].exists) "
"sand option[123].exists"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(5, evalsosa.expression.size());
- token = evalsosa.expression.at(4);
+ ASSERT_EQ(5, evalsosa.expression_.size());
+ token = evalsosa.expression_.at(4);
ASSERT_TRUE(token);
boost::shared_ptr<TokenAnd> tand =
boost::dynamic_pointer_cast<TokenAnd>(token);
EXPECT_NO_THROW(parsed_ =
evalna.parseString("not (option[123].exists and option[123].exists)"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(5, evalna.expression.size());
- token = evalna.expression.at(1);
+ ASSERT_EQ(5, evalna.expression_.size());
+ token = evalna.expression_.at(1);
checkTokenPopOrBranchFalse(token, 1);
- token = evalna.expression.at(3);
+ token = evalna.expression_.at(3);
checkTokenLabel(token, 1);
- token = evalna.expression.at(4);
+ token = evalna.expression_.at(4);
ASSERT_TRUE(token);
tnot = boost::dynamic_pointer_cast<TokenNot>(token);
EXPECT_TRUE(tnot);
evaloa.parseString("(option[123].exists or option[123].exists) "
"and option[123].exists"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(7, evaloa.expression.size());
- token = evaloa.expression.at(1);
+ ASSERT_EQ(7, evaloa.expression_.size());
+ token = evaloa.expression_.at(1);
checkTokenPopOrBranchTrue(token, 1);
- token = evaloa.expression.at(3);
+ token = evaloa.expression_.at(3);
checkTokenLabel(token, 1);
- token = evaloa.expression.at(4);
+ token = evaloa.expression_.at(4);
checkTokenPopOrBranchFalse(token, 2);
- token = evaloa.expression.at(6);
+ token = evaloa.expression_.at(6);
checkTokenLabel(token, 2);
}
eval.parseString("substring('foobar',2,all) == 'obar'"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(6, eval.expression.size());
+ ASSERT_EQ(6, eval.expression_.size());
- TokenPtr tmp1 = eval.expression.at(0);
- TokenPtr tmp2 = eval.expression.at(1);
- TokenPtr tmp3 = eval.expression.at(2);
- TokenPtr tmp4 = eval.expression.at(3);
+ TokenPtr tmp1 = eval.expression_.at(0);
+ TokenPtr tmp2 = eval.expression_.at(1);
+ TokenPtr tmp3 = eval.expression_.at(2);
+ TokenPtr tmp4 = eval.expression_.at(3);
checkTokenString(tmp1, "foobar");
checkTokenString(tmp2, "2");
eval.parseString("concat('foo','bar') == 'foobar'"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(5, eval.expression.size());
+ ASSERT_EQ(5, eval.expression_.size());
- TokenPtr tmp1 = eval.expression.at(0);
- TokenPtr tmp2 = eval.expression.at(1);
- TokenPtr tmp3 = eval.expression.at(2);
+ TokenPtr tmp1 = eval.expression_.at(0);
+ TokenPtr tmp2 = eval.expression_.at(1);
+ TokenPtr tmp3 = eval.expression_.at(2);
checkTokenString(tmp1, "foo");
checkTokenString(tmp2, "bar");
eval.parseString("'foo' + 'bar' == 'foobar'"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(5, eval.expression.size());
+ ASSERT_EQ(5, eval.expression_.size());
- TokenPtr tmp1 = eval.expression.at(0);
- TokenPtr tmp2 = eval.expression.at(1);
- TokenPtr tmp3 = eval.expression.at(2);
+ TokenPtr tmp1 = eval.expression_.at(0);
+ TokenPtr tmp2 = eval.expression_.at(1);
+ TokenPtr tmp3 = eval.expression_.at(2);
checkTokenString(tmp1, "foo");
checkTokenString(tmp2, "bar");
EXPECT_NO_THROW(parsed_ =
eval.parseString("'a' + 'b' + 'c' == 'abc'"));
- ASSERT_EQ(7, eval.expression.size());
+ ASSERT_EQ(7, eval.expression_.size());
- TokenPtr tmp1 = eval.expression.at(0);
- TokenPtr tmp2 = eval.expression.at(1);
- TokenPtr tmp3 = eval.expression.at(2);
- TokenPtr tmp4 = eval.expression.at(3);
- TokenPtr tmp5 = eval.expression.at(4);
+ TokenPtr tmp1 = eval.expression_.at(0);
+ TokenPtr tmp2 = eval.expression_.at(1);
+ TokenPtr tmp3 = eval.expression_.at(2);
+ TokenPtr tmp4 = eval.expression_.at(3);
+ TokenPtr tmp5 = eval.expression_.at(4);
checkTokenString(tmp1, "a");
checkTokenString(tmp2, "b");
EXPECT_NO_THROW(parsed_ =
eval.parseString("'a' + ('b' + 'c') == 'abc'"));
- ASSERT_EQ(7, eval.expression.size());
+ ASSERT_EQ(7, eval.expression_.size());
- TokenPtr tmp1 = eval.expression.at(0);
- TokenPtr tmp2 = eval.expression.at(1);
- TokenPtr tmp3 = eval.expression.at(2);
- TokenPtr tmp4 = eval.expression.at(3);
- TokenPtr tmp5 = eval.expression.at(4);
+ TokenPtr tmp1 = eval.expression_.at(0);
+ TokenPtr tmp2 = eval.expression_.at(1);
+ TokenPtr tmp3 = eval.expression_.at(2);
+ TokenPtr tmp4 = eval.expression_.at(3);
+ TokenPtr tmp5 = eval.expression_.at(4);
checkTokenString(tmp1, "a");
checkTokenString(tmp2, "b");
EXPECT_NO_THROW(parsed_ =
eval.parseString("sifelse('foo' == 'bar', 'us', 'them') == 'you'"));
- ASSERT_EQ(8, eval.expression.size());
+ ASSERT_EQ(8, eval.expression_.size());
- TokenPtr tmp1 = eval.expression.at(2);
- TokenPtr tmp2 = eval.expression.at(3);
- TokenPtr tmp3 = eval.expression.at(4);
- TokenPtr tmp4 = eval.expression.at(5);
+ TokenPtr tmp1 = eval.expression_.at(2);
+ TokenPtr tmp2 = eval.expression_.at(3);
+ TokenPtr tmp3 = eval.expression_.at(4);
+ TokenPtr tmp4 = eval.expression_.at(5);
checkTokenEq(tmp1);
checkTokenString(tmp2, "us");
EXPECT_NO_THROW(parsed_ =
eval.parseString("ifelse('foo' == 'bar', 'us', 'them') == 'you'"));
- ASSERT_EQ(11, eval.expression.size());
+ ASSERT_EQ(11, eval.expression_.size());
- TokenPtr tmp1 = eval.expression.at(0);
- TokenPtr tmp2 = eval.expression.at(1);
- TokenPtr tmp3 = eval.expression.at(2);
- TokenPtr tmp4 = eval.expression.at(3);
- TokenPtr tmp5 = eval.expression.at(4);
- TokenPtr tmp6 = eval.expression.at(5);
- TokenPtr tmp7 = eval.expression.at(6);
- TokenPtr tmp8 = eval.expression.at(7);
- TokenPtr tmp9 = eval.expression.at(8);
- TokenPtr tmp10 = eval.expression.at(9);
- TokenPtr tmp11 = eval.expression.at(10);
+ TokenPtr tmp1 = eval.expression_.at(0);
+ TokenPtr tmp2 = eval.expression_.at(1);
+ TokenPtr tmp3 = eval.expression_.at(2);
+ TokenPtr tmp4 = eval.expression_.at(3);
+ TokenPtr tmp5 = eval.expression_.at(4);
+ TokenPtr tmp6 = eval.expression_.at(5);
+ TokenPtr tmp7 = eval.expression_.at(6);
+ TokenPtr tmp8 = eval.expression_.at(7);
+ TokenPtr tmp9 = eval.expression_.at(8);
+ TokenPtr tmp10 = eval.expression_.at(9);
+ TokenPtr tmp11 = eval.expression_.at(10);
checkTokenString(tmp1, "foo");
checkTokenString(tmp2, "bar");
EXPECT_NO_THROW(parsed_ =
eval.parseString("'foo' + sifelse('a' == 'a', 'bar', '') == 'foobar'"));
- ASSERT_EQ(10, eval.expression.size());
+ ASSERT_EQ(10, eval.expression_.size());
- TokenPtr tmp1 = eval.expression.at(0);
- TokenPtr tmp2 = eval.expression.at(1);
- TokenPtr tmp3 = eval.expression.at(2);
- TokenPtr tmp4 = eval.expression.at(3);
- TokenPtr tmp5 = eval.expression.at(4);
- TokenPtr tmp6 = eval.expression.at(5);
- TokenPtr tmp7 = eval.expression.at(6);
- TokenPtr tmp8 = eval.expression.at(7);
- TokenPtr tmp9 = eval.expression.at(8);
- TokenPtr tmp10 = eval.expression.at(9);
+ TokenPtr tmp1 = eval.expression_.at(0);
+ TokenPtr tmp2 = eval.expression_.at(1);
+ TokenPtr tmp3 = eval.expression_.at(2);
+ TokenPtr tmp4 = eval.expression_.at(3);
+ TokenPtr tmp5 = eval.expression_.at(4);
+ TokenPtr tmp6 = eval.expression_.at(5);
+ TokenPtr tmp7 = eval.expression_.at(6);
+ TokenPtr tmp8 = eval.expression_.at(7);
+ TokenPtr tmp9 = eval.expression_.at(8);
+ TokenPtr tmp10 = eval.expression_.at(9);
checkTokenString(tmp1, "foo");
checkTokenString(tmp2, "a");
EXPECT_NO_THROW(parsed_ =
eval.parseString("'foo' + ifelse('a' == 'a', 'bar', '') == 'foobar'"));
- ASSERT_EQ(13, eval.expression.size());
-
- TokenPtr tmp1 = eval.expression.at(0);
- TokenPtr tmp2 = eval.expression.at(1);
- TokenPtr tmp3 = eval.expression.at(2);
- TokenPtr tmp4 = eval.expression.at(3);
- TokenPtr tmp5 = eval.expression.at(4);
- TokenPtr tmp6 = eval.expression.at(5);
- TokenPtr tmp7 = eval.expression.at(6);
- TokenPtr tmp8 = eval.expression.at(7);
- TokenPtr tmp9 = eval.expression.at(8);
- TokenPtr tmp10 = eval.expression.at(9);
- TokenPtr tmp11 = eval.expression.at(10);
- TokenPtr tmp12 = eval.expression.at(11);
- TokenPtr tmp13 = eval.expression.at(12);
+ ASSERT_EQ(13, eval.expression_.size());
+
+ TokenPtr tmp1 = eval.expression_.at(0);
+ TokenPtr tmp2 = eval.expression_.at(1);
+ TokenPtr tmp3 = eval.expression_.at(2);
+ TokenPtr tmp4 = eval.expression_.at(3);
+ TokenPtr tmp5 = eval.expression_.at(4);
+ TokenPtr tmp6 = eval.expression_.at(5);
+ TokenPtr tmp7 = eval.expression_.at(6);
+ TokenPtr tmp8 = eval.expression_.at(7);
+ TokenPtr tmp9 = eval.expression_.at(8);
+ TokenPtr tmp10 = eval.expression_.at(9);
+ TokenPtr tmp11 = eval.expression_.at(10);
+ TokenPtr tmp12 = eval.expression_.at(11);
+ TokenPtr tmp13 = eval.expression_.at(12);
checkTokenString(tmp1, "foo");
checkTokenString(tmp2, "a");
eval.parseString("hexstring(0x666f,'-') == '66-6f'"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(5, eval.expression.size());
+ ASSERT_EQ(5, eval.expression_.size());
- TokenPtr tmp1 = eval.expression.at(0);
- TokenPtr tmp2 = eval.expression.at(1);
- TokenPtr tmp3 = eval.expression.at(2);
+ TokenPtr tmp1 = eval.expression_.at(0);
+ TokenPtr tmp2 = eval.expression_.at(1);
+ TokenPtr tmp3 = eval.expression_.at(2);
checkTokenHexString(tmp1, "fo");
checkTokenString(tmp2, "-");
EXPECT_NO_THROW(parsed_ = eval.parseString("lcase('LoWeR') == 'lower'"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(4, eval.expression.size());
+ ASSERT_EQ(4, eval.expression_.size());
- TokenPtr tmp1 = eval.expression.at(0);
- TokenPtr tmp2 = eval.expression.at(1);
- TokenPtr tmp3 = eval.expression.at(2);
- TokenPtr tmp4 = eval.expression.at(3);
+ TokenPtr tmp1 = eval.expression_.at(0);
+ TokenPtr tmp2 = eval.expression_.at(1);
+ TokenPtr tmp3 = eval.expression_.at(2);
+ TokenPtr tmp4 = eval.expression_.at(3);
checkTokenString(tmp1, "LoWeR");
checkTokenLowerCase(tmp2, "lower");
EXPECT_NO_THROW(parsed_ = eval.parseString(string(data, sizeof(data) - 1)));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(4, eval.expression.size());
+ ASSERT_EQ(4, eval.expression_.size());
- TokenPtr tmp1 = eval.expression.at(0);
- TokenPtr tmp2 = eval.expression.at(1);
- TokenPtr tmp3 = eval.expression.at(2);
- TokenPtr tmp4 = eval.expression.at(3);
+ TokenPtr tmp1 = eval.expression_.at(0);
+ TokenPtr tmp2 = eval.expression_.at(1);
+ TokenPtr tmp3 = eval.expression_.at(2);
+ TokenPtr tmp4 = eval.expression_.at(3);
char expected_data[] = "12345~!@#$%^&*()_+LoWeR{}[];:<>/?\\67890\t \0\b\r\f";
char expected_updated_data[] = "12345~!@#$%^&*()_+lower{}[];:<>/?\\67890\t \0\b\r\f";
EXPECT_NO_THROW(parsed_ = eval.parseString("ucase('uPpEr') == 'UPPER'"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(4, eval.expression.size());
+ ASSERT_EQ(4, eval.expression_.size());
- TokenPtr tmp1 = eval.expression.at(0);
- TokenPtr tmp2 = eval.expression.at(1);
- TokenPtr tmp3 = eval.expression.at(2);
- TokenPtr tmp4 = eval.expression.at(3);
+ TokenPtr tmp1 = eval.expression_.at(0);
+ TokenPtr tmp2 = eval.expression_.at(1);
+ TokenPtr tmp3 = eval.expression_.at(2);
+ TokenPtr tmp4 = eval.expression_.at(3);
checkTokenString(tmp1, "uPpEr");
checkTokenUpperCase(tmp2, "UPPER");
EXPECT_NO_THROW(parsed_ = eval.parseString(string(data, sizeof(data) - 1)));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(4, eval.expression.size());
+ ASSERT_EQ(4, eval.expression_.size());
- TokenPtr tmp1 = eval.expression.at(0);
- TokenPtr tmp2 = eval.expression.at(1);
- TokenPtr tmp3 = eval.expression.at(2);
- TokenPtr tmp4 = eval.expression.at(3);
+ TokenPtr tmp1 = eval.expression_.at(0);
+ TokenPtr tmp2 = eval.expression_.at(1);
+ TokenPtr tmp3 = eval.expression_.at(2);
+ TokenPtr tmp4 = eval.expression_.at(3);
char expected_data[] = "12345~!@#$%^&*()_+uPpEr{}[];:<>/?\\67890\t \0\b\r\f";
char expected_updated_data[] = "12345~!@#$%^&*()_+UPPER{}[];:<>/?\\67890\t \0\b\r\f";
EXPECT_NO_THROW(parsed_ = eval.parseString("addrtotext(10.0.0.1) == '10.0.0.1'"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(4, eval.expression.size());
+ ASSERT_EQ(4, eval.expression_.size());
- TokenPtr tmp1 = eval.expression.at(0);
- TokenPtr tmp2 = eval.expression.at(1);
- TokenPtr tmp3 = eval.expression.at(2);
- TokenPtr tmp4 = eval.expression.at(3);
+ TokenPtr tmp1 = eval.expression_.at(0);
+ TokenPtr tmp2 = eval.expression_.at(1);
+ TokenPtr tmp3 = eval.expression_.at(2);
+ TokenPtr tmp4 = eval.expression_.at(3);
checkTokenIpAddress(tmp1, "10.0.0.1");
checkTokenIpAddressToText(tmp2, "10.0.0.1");
EXPECT_NO_THROW(parsed_ = eval.parseString("addrtotext(2001:db8::1) == '2001:db8::1'"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(4, eval.expression.size());
+ ASSERT_EQ(4, eval.expression_.size());
- TokenPtr tmp1 = eval.expression.at(0);
- TokenPtr tmp2 = eval.expression.at(1);
- TokenPtr tmp3 = eval.expression.at(2);
- TokenPtr tmp4 = eval.expression.at(3);
+ TokenPtr tmp1 = eval.expression_.at(0);
+ TokenPtr tmp2 = eval.expression_.at(1);
+ TokenPtr tmp3 = eval.expression_.at(2);
+ TokenPtr tmp4 = eval.expression_.at(3);
checkTokenIpAddress(tmp1, "2001:db8::1");
checkTokenIpAddressToText(tmp2, "2001:db8::1");
EXPECT_NO_THROW(parsed_ = eval.parseString("int8totext(255) == '-1'"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(4, eval.expression.size());
+ ASSERT_EQ(4, eval.expression_.size());
- TokenPtr tmp1 = eval.expression.at(0);
- TokenPtr tmp2 = eval.expression.at(1);
- TokenPtr tmp3 = eval.expression.at(2);
- TokenPtr tmp4 = eval.expression.at(3);
+ TokenPtr tmp1 = eval.expression_.at(0);
+ TokenPtr tmp2 = eval.expression_.at(1);
+ TokenPtr tmp3 = eval.expression_.at(2);
+ TokenPtr tmp4 = eval.expression_.at(3);
checkTokenInteger(tmp1, 255);
checkTokenIntToText<int8_t, TokenInt8ToText>(tmp2, "-1");
EXPECT_NO_THROW(parsed_ = eval.parseString("int16totext(65535) == '-1'"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(4, eval.expression.size());
+ ASSERT_EQ(4, eval.expression_.size());
- TokenPtr tmp1 = eval.expression.at(0);
- TokenPtr tmp2 = eval.expression.at(1);
- TokenPtr tmp3 = eval.expression.at(2);
- TokenPtr tmp4 = eval.expression.at(3);
+ TokenPtr tmp1 = eval.expression_.at(0);
+ TokenPtr tmp2 = eval.expression_.at(1);
+ TokenPtr tmp3 = eval.expression_.at(2);
+ TokenPtr tmp4 = eval.expression_.at(3);
checkTokenInteger(tmp1, 65535);
checkTokenIntToText<int16_t, TokenInt16ToText>(tmp2, "-1");
EXPECT_NO_THROW(parsed_ = eval.parseString("int32totext(4294967295) == '-1'"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(4, eval.expression.size());
+ ASSERT_EQ(4, eval.expression_.size());
- TokenPtr tmp1 = eval.expression.at(0);
- TokenPtr tmp2 = eval.expression.at(1);
- TokenPtr tmp3 = eval.expression.at(2);
- TokenPtr tmp4 = eval.expression.at(3);
+ TokenPtr tmp1 = eval.expression_.at(0);
+ TokenPtr tmp2 = eval.expression_.at(1);
+ TokenPtr tmp3 = eval.expression_.at(2);
+ TokenPtr tmp4 = eval.expression_.at(3);
checkTokenInteger(tmp1, 4294967295);
checkTokenIntToText<int32_t, TokenInt32ToText>(tmp2, "-1");
EXPECT_NO_THROW(parsed_ = eval.parseString("uint8totext(255) == '255'"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(4, eval.expression.size());
+ ASSERT_EQ(4, eval.expression_.size());
- TokenPtr tmp1 = eval.expression.at(0);
- TokenPtr tmp2 = eval.expression.at(1);
- TokenPtr tmp3 = eval.expression.at(2);
- TokenPtr tmp4 = eval.expression.at(3);
+ TokenPtr tmp1 = eval.expression_.at(0);
+ TokenPtr tmp2 = eval.expression_.at(1);
+ TokenPtr tmp3 = eval.expression_.at(2);
+ TokenPtr tmp4 = eval.expression_.at(3);
checkTokenInteger(tmp1, 255);
checkTokenIntToText<uint8_t, TokenUInt8ToText>(tmp2, "255");
EXPECT_NO_THROW(parsed_ = eval.parseString("uint16totext(65535) == '65535'"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(4, eval.expression.size());
+ ASSERT_EQ(4, eval.expression_.size());
- TokenPtr tmp1 = eval.expression.at(0);
- TokenPtr tmp2 = eval.expression.at(1);
- TokenPtr tmp3 = eval.expression.at(2);
- TokenPtr tmp4 = eval.expression.at(3);
+ TokenPtr tmp1 = eval.expression_.at(0);
+ TokenPtr tmp2 = eval.expression_.at(1);
+ TokenPtr tmp3 = eval.expression_.at(2);
+ TokenPtr tmp4 = eval.expression_.at(3);
checkTokenInteger(tmp1, 65535);
checkTokenIntToText<uint16_t, TokenUInt16ToText>(tmp2, "65535");
EXPECT_NO_THROW(parsed_ = eval.parseString("uint32totext(4294967295) == '4294967295'"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(4, eval.expression.size());
+ ASSERT_EQ(4, eval.expression_.size());
- TokenPtr tmp1 = eval.expression.at(0);
- TokenPtr tmp2 = eval.expression.at(1);
- TokenPtr tmp3 = eval.expression.at(2);
- TokenPtr tmp4 = eval.expression.at(3);
+ TokenPtr tmp1 = eval.expression_.at(0);
+ TokenPtr tmp2 = eval.expression_.at(1);
+ TokenPtr tmp3 = eval.expression_.at(2);
+ TokenPtr tmp4 = eval.expression_.at(3);
checkTokenInteger(tmp1, 4294967295);
checkTokenIntToText<uint32_t, TokenUInt32ToText>(tmp2, "4294967295");
EXPECT_NO_THROW(parsed_ = eval.parseString("option[123].option[234].text == 'foo'"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(3, eval.expression.size());
- checkTokenSubOption(eval.expression.at(0), 123, 234, TokenOption::TEXTUAL);
+ ASSERT_EQ(3, eval.expression_.size());
+ checkTokenSubOption(eval.expression_.at(0), 123, 234, TokenOption::TEXTUAL);
}
// Test the parsing of a sub-option with parent by name.
EXPECT_NO_THROW(parsed_ = eval.parseString("option[host-name].option[123].text == 'foo'"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(3, eval.expression.size());
- checkTokenSubOption(eval.expression.at(0), 12, 123, TokenOption::TEXTUAL);
+ ASSERT_EQ(3, eval.expression_.size());
+ checkTokenSubOption(eval.expression_.at(0), 12, 123, TokenOption::TEXTUAL);
}
// Test the parsing of a sub-option existence
EXPECT_NO_THROW(parsed_ = eval.parseString("option[100].option[200].exists"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(1, eval.expression.size());
- checkTokenSubOption(eval.expression.at(0), 100, 200, TokenOption::EXISTS);
+ ASSERT_EQ(1, eval.expression_.size());
+ checkTokenSubOption(eval.expression_.at(0), 100, 200, TokenOption::EXISTS);
}
// Test parsing of a sub-option represented as hexadecimal string.
EXPECT_NO_THROW(parsed_ = eval.parseString("option[123].option[234].hex == 0x666F6F"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(3, eval.expression.size());
- checkTokenSubOption(eval.expression.at(0), 123, 234, TokenOption::HEXADECIMAL);
+ ASSERT_EQ(3, eval.expression_.size());
+ checkTokenSubOption(eval.expression_.at(0), 123, 234, TokenOption::HEXADECIMAL);
}
// Checks if integer expressions can be parsed and checked for equality.
EXPECT_NO_THROW(parsed_ = eval.parseString("1 == 2"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(3, eval.expression.size());
+ ASSERT_EQ(3, eval.expression_.size());
- TokenPtr tmp = eval.expression.at(0);
+ TokenPtr tmp = eval.expression_.at(0);
ASSERT_TRUE(tmp);
checkTokenInteger(tmp, 1);
- tmp = eval.expression.at(1);
+ tmp = eval.expression_.at(1);
ASSERT_TRUE(tmp);
checkTokenInteger(tmp, 2);
EXPECT_NO_THROW(parsed_ = eval.parseString("match('foo.*', 'foobar')"));
EXPECT_TRUE(parsed_);
- ASSERT_EQ(2, eval.expression.size());
+ ASSERT_EQ(2, eval.expression_.size());
- TokenPtr tmp = eval.expression.at(0);
+ TokenPtr tmp = eval.expression_.at(0);
ASSERT_TRUE(tmp);
checkTokenString(tmp, "foobar");
- tmp = eval.expression.at(1);
+ tmp = eval.expression_.at(1);
checkTokenMatch(tmp, "foo.*");
Pkt4Ptr pkt4(new Pkt4(DHCPDISCOVER, 12345));