From: Alan T. DeKok Date: Thu, 16 Dec 2021 18:49:28 +0000 (-0500) Subject: add more tokens X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7b069fe5ce3b77a84a5f94e47fdf840978fa32f7;p=thirdparty%2Ffreeradius-server.git add more tokens they're not parsed yet, but they can be useful --- diff --git a/src/lib/util/token.c b/src/lib/util/token.c index a6f4a2c0e5..b6a3959293 100644 --- a/src/lib/util/token.c +++ b/src/lib/util/token.c @@ -32,7 +32,7 @@ RCSID("$Id$") fr_table_num_ordered_t const fr_tokens_table[] = { { L("=~"), T_OP_REG_EQ }, /* order is important! */ - { L("!~"), T_OP_REG_NE }, + { L("!~"), T_OP_REG_NE }, { L("{"), T_LCBRACE }, { L("}"), T_RCBRACE }, { L("("), T_LBRACE }, @@ -89,6 +89,12 @@ char const *fr_tokens[T_TOKEN_LAST] = { [T_AND] = "&", [T_OR] = "|", + [T_RSHIFT] = ">>", + [T_LSHIFT] = "<<", + + [T_LAND] = "&&", + [T_LOR] = "||", + [T_OP_INCRM] = "++", [T_OP_ADD_EQ] = "+=", @@ -98,6 +104,9 @@ char const *fr_tokens[T_TOKEN_LAST] = { [T_OP_OR_EQ] = "|=", [T_OP_AND_EQ] = "&=", + [T_OP_RSHIFT_EQ] = ">>=", + [T_OP_LSHIFT_EQ] = "<<=", + [T_OP_NE] = "!=", [T_OP_GE] = ">=", [T_OP_GT] = ">", @@ -154,6 +163,8 @@ const bool fr_assignment_op[T_TOKEN_LAST] = { T(PREPEND), T(OR_EQ), T(AND_EQ), + T(RSHIFT_EQ), + T(LSHIFT_EQ), }; const bool fr_equality_op[T_TOKEN_LAST] = { @@ -179,6 +190,8 @@ const bool fr_binary_op[T_TOKEN_LAST] = { T(DIV), T(AND), T(OR), + T(RSHIFT), + T(LSHIFT), }; diff --git a/src/lib/util/token.h b/src/lib/util/token.h index 2614f32f2a..8f5f2e92c3 100644 --- a/src/lib/util/token.h +++ b/src/lib/util/token.h @@ -52,6 +52,12 @@ typedef enum fr_token { T_AND, /* & */ T_OR, /* | */ + T_RSHIFT, /* >> */ + T_LSHIFT, /* << */ + + T_LAND, /* && */ + T_LOR, /* || */ + /* * Only used by LDAP ??? */ @@ -68,6 +74,9 @@ typedef enum fr_token { T_OP_OR_EQ, /* |= */ T_OP_AND_EQ, /* &= */ + T_OP_RSHIFT_EQ, /* >>= */ + T_OP_LSHIFT_EQ, /* <<= */ + T_OP_EQ, /* = */ /*