From: Alan T. DeKok Date: Sun, 5 Dec 2021 20:06:55 +0000 (-0500) Subject: add "&=" and "|=" X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=28c966e8fa15704f36dabc2f378680324f29031e;p=thirdparty%2Ffreeradius-server.git add "&=" and "|=" --- diff --git a/src/lib/util/token.c b/src/lib/util/token.c index 706cb400ac..a6f4a2c0e5 100644 --- a/src/lib/util/token.c +++ b/src/lib/util/token.c @@ -46,6 +46,8 @@ fr_table_num_ordered_t const fr_tokens_table[] = { { L("!*"), T_OP_CMP_FALSE }, { L("=="), T_OP_CMP_EQ }, { L("^="), T_OP_PREPEND }, + { L("|="), T_OP_OR_EQ }, + { L("&="), T_OP_AND_EQ }, { L("="), T_OP_EQ }, { L("!="), T_OP_NE }, { L(">="), T_OP_GE }, @@ -93,6 +95,8 @@ char const *fr_tokens[T_TOKEN_LAST] = { [T_OP_SUB_EQ] = "-=", [T_OP_SET] = ":=", [T_OP_EQ] = "=", + [T_OP_OR_EQ] = "|=", + [T_OP_AND_EQ] = "&=", [T_OP_NE] = "!=", [T_OP_GE] = ">=", @@ -148,6 +152,8 @@ const bool fr_assignment_op[T_TOKEN_LAST] = { T(SET), T(EQ), T(PREPEND), + T(OR_EQ), + T(AND_EQ), }; const bool fr_equality_op[T_TOKEN_LAST] = { diff --git a/src/lib/util/token.h b/src/lib/util/token.h index 13519353b9..2614f32f2a 100644 --- a/src/lib/util/token.h +++ b/src/lib/util/token.h @@ -64,6 +64,9 @@ typedef enum fr_token { T_OP_SUB_EQ, /* -= */ T_OP_SET, /* := */ T_OP_PREPEND, /* ^= */ +#define T_OP_XOR_EQ T_OP_PREPEND + T_OP_OR_EQ, /* |= */ + T_OP_AND_EQ, /* &= */ T_OP_EQ, /* = */