From: Francis Dupont Date: Thu, 28 Sep 2017 12:13:00 +0000 (+0200) Subject: [5363] Updated syntax X-Git-Tag: trac5381_base~3^2~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4def975710dce1e252d66bea5d58edb9f2ffbf14;p=thirdparty%2Fkea.git [5363] Updated syntax --- diff --git a/src/lib/eval/lexer.ll b/src/lib/eval/lexer.ll index f49aa19543..9a914f7147 100644 --- a/src/lib/eval/lexer.ll +++ b/src/lib/eval/lexer.ll @@ -196,6 +196,7 @@ addr6 [0-9a-fA-F]*\:[0-9a-fA-F]*\:[0-9a-fA-F:.]* "substring" return isc::eval::EvalParser::make_SUBSTRING(loc); "all" return isc::eval::EvalParser::make_ALL(loc); "concat" return isc::eval::EvalParser::make_CONCAT(loc); +"ifelse" return isc::eval::EvalParser::make_IFELSE(loc); "not" return isc::eval::EvalParser::make_NOT(loc); "and" return isc::eval::EvalParser::make_AND(loc); "or" return isc::eval::EvalParser::make_OR(loc); diff --git a/src/lib/eval/parser.yy b/src/lib/eval/parser.yy index 142b872b51..96f8c52668 100644 --- a/src/lib/eval/parser.yy +++ b/src/lib/eval/parser.yy @@ -72,6 +72,7 @@ using namespace isc::eval; ALL "all" COMA "," CONCAT "concat" + IFELSE "ifelse" PKT6 "pkt6" MSGTYPE "msgtype" TRANSID "transid" @@ -327,6 +328,11 @@ string_expr : STRING TokenPtr conc(new TokenConcat()); ctx.expression.push_back(conc); } + | IFELSE "(" bool_expr "," string_expr "," string_expr ")" + { + TokenPtr cond(new TokenIfElse()); + ctx.expression.push_back(cond); + } | VENDOR "." ENTERPRISE { // expression: vendor.enterprise