]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
add more tokens
authorAlan T. DeKok <aland@freeradius.org>
Thu, 16 Dec 2021 18:49:28 +0000 (13:49 -0500)
committerAlan T. DeKok <aland@freeradius.org>
Thu, 16 Dec 2021 19:33:15 +0000 (14:33 -0500)
they're not parsed yet, but they can be useful

src/lib/util/token.c
src/lib/util/token.h

index a6f4a2c0e53e75fad62272125f3550688e6990c9..b6a3959293a5ca2073ef00aa60a7dff53735633c 100644 (file)
@@ -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),
 };
 
 
index 2614f32f2ad7638246edc1c174adda2431af36e8..8f5f2e92c395899973648812f76d50da9c6a2be8 100644 (file)
@@ -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,                        /* = */
 
        /*