]> git.kaiwu.me - njs.git/commitdiff
njs_parser_is_lvalue().
authorIgor Sysoev <igor@sysoev.ru>
Thu, 4 Aug 2016 11:43:20 +0000 (14:43 +0300)
committerIgor Sysoev <igor@sysoev.ru>
Thu, 4 Aug 2016 11:43:20 +0000 (14:43 +0300)
njs/njs_parser.h
njs/njs_parser_expression.c

index 36662697ba4796ebabc1c3cb5f658d94b81de631..3b35902f7f99aacba1aa468a2800f43500903014 100644 (file)
@@ -213,11 +213,8 @@ typedef enum {
 } njs_variable_node_state_t;
 
 
-typedef enum {
-    NJS_LVALUE_NONE = 0,
-    NJS_LVALUE_ENABLED,
-    NJS_LVALUE_ASSIGNED,
-} njs_lvalue_state_t;
+#define njs_parser_is_lvalue(node)                                            \
+    ((node)->token == NJS_TOKEN_NAME || (node)->token == NJS_TOKEN_PROPERTY)
 
 
 typedef struct njs_parser_node_s    njs_parser_node_t;
index dc552e83c32f50be8d6688fc0fa8116d7147d514..8aba527a33459a4b3c4b05e9cae8f2a23afcdf92 100644 (file)
@@ -437,9 +437,7 @@ njs_parser_assignment_expression(njs_vm_t *vm, njs_parser_t *parser,
 
         node = parser->node;
 
-        if (parser->node->token != NJS_TOKEN_NAME
-            && parser->node->token != NJS_TOKEN_PROPERTY)
-        {
+        if (!njs_parser_is_lvalue(parser->node)) {
             return njs_parser_invalid_lvalue(vm, parser, "assignment");
         }
 
@@ -811,9 +809,7 @@ njs_parser_inc_dec_expression(njs_vm_t *vm, njs_parser_t *parser,
         return next;
     }
 
-    if (parser->node->token != NJS_TOKEN_NAME
-        && parser->node->token != NJS_TOKEN_PROPERTY)
-    {
+    if (!njs_parser_is_lvalue(parser->node)) {
         return njs_parser_invalid_lvalue(vm, parser, "prefix operation");
     }
 
@@ -865,9 +861,7 @@ njs_parser_post_inc_dec_expression(njs_vm_t *vm, njs_parser_t *parser,
         return token;
     }
 
-    if (parser->node->token != NJS_TOKEN_NAME
-        && parser->node->token != NJS_TOKEN_PROPERTY)
-    {
+    if (!njs_parser_is_lvalue(parser->node)) {
         return njs_parser_invalid_lvalue(vm, parser, "postfix operation");
     }