From: Alan T. DeKok Date: Sun, 19 Dec 2021 13:23:36 +0000 (-0500) Subject: minor rearrangements, and update arrays for new operators X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1fd27b910d8296a19e4ef252f8cfa3bd20467645;p=thirdparty%2Ffreeradius-server.git minor rearrangements, and update arrays for new operators --- diff --git a/src/lib/util/token.c b/src/lib/util/token.c index b6a3959293a..c459c160168 100644 --- a/src/lib/util/token.c +++ b/src/lib/util/token.c @@ -155,16 +155,20 @@ const char fr_token_quote[T_TOKEN_LAST] = { #define T(_x) [T_OP_ ## _x] = true const bool fr_assignment_op[T_TOKEN_LAST] = { - T(INCRM), + T(INCRM), /* only used by LDAP :( */ + T(ADD_EQ), T(SUB_EQ), - T(SET), - T(EQ), - T(PREPEND), - T(OR_EQ), + T(MUL_EQ), + T(DIV_EQ), T(AND_EQ), + T(OR_EQ), T(RSHIFT_EQ), T(LSHIFT_EQ), + + T(SET), + T(EQ), + T(PREPEND), }; const bool fr_equality_op[T_TOKEN_LAST] = { diff --git a/src/lib/util/token.h b/src/lib/util/token.h index 8f5f2e92c39..ba9a757fdbf 100644 --- a/src/lib/util/token.h +++ b/src/lib/util/token.h @@ -45,6 +45,9 @@ typedef enum fr_token { T_COMMA, /* , */ T_SEMICOLON, /* ; */ + /* + * Binary operations + */ T_ADD, /* + */ T_SUB, /* - */ T_MUL, /* * */ @@ -55,29 +58,34 @@ typedef enum fr_token { T_RSHIFT, /* >> */ T_LSHIFT, /* << */ - T_LAND, /* && */ - T_LOR, /* || */ - - /* - * Only used by LDAP ??? - */ - T_OP_INCRM, /* ++ */ - /* - * Assignment operators. + * Assignment operators associated with binary + * operations. */ T_OP_ADD_EQ, /* += */ T_OP_SUB_EQ, /* -= */ - T_OP_SET, /* := */ - T_OP_PREPEND, /* ^= */ -#define T_OP_XOR_EQ T_OP_PREPEND + T_OP_MUL_EQ, /* *= */ + T_OP_DIV_EQ, /* /= */ T_OP_OR_EQ, /* |= */ T_OP_AND_EQ, /* &= */ T_OP_RSHIFT_EQ, /* >>= */ T_OP_LSHIFT_EQ, /* <<= */ + /* + * Assignment operators associated with + * other operations. + */ T_OP_EQ, /* = */ + T_OP_SET, /* := */ + T_OP_PREPEND, /* ^= */ +#define T_OP_XOR_EQ T_OP_PREPEND + + /* + * Logical / short-circuit operators. + */ + T_LAND, /* && */ + T_LOR, /* || */ /* * Comparison operators. @@ -93,6 +101,11 @@ typedef enum fr_token { T_OP_CMP_FALSE, /* !* */ T_OP_CMP_EQ, /* == */ + /* + * Only used by LDAP ??? + */ + T_OP_INCRM, /* ++ */ + /* * T_HASH MUST be after all of various assignment * operators. See fr_token_quote[].