Browse Source

[5363] Updated syntax

Francis Dupont 7 years ago
parent
commit
4def975710
2 changed files with 7 additions and 0 deletions
  1. 1 0
      src/lib/eval/lexer.ll
  2. 6 0
      src/lib/eval/parser.yy

+ 1 - 0
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);

+ 6 - 0
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