From: Igor Sysoev Date: Thu, 4 Aug 2016 11:43:20 +0000 (+0300) Subject: njs_parser_is_lvalue(). X-Git-Tag: 0.1.1~20 X-Git-Url: http://www.kaiwu.me/postgresql/commit/?a=commitdiff_plain;h=c1fd724736de6801311777014ab293c92d061848;p=njs.git njs_parser_is_lvalue(). --- diff --git a/njs/njs_parser.h b/njs/njs_parser.h index 36662697..3b35902f 100644 --- a/njs/njs_parser.h +++ b/njs/njs_parser.h @@ -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; diff --git a/njs/njs_parser_expression.c b/njs/njs_parser_expression.c index dc552e83..8aba527a 100644 --- a/njs/njs_parser_expression.c +++ b/njs/njs_parser_expression.c @@ -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"); }