} 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;
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");
}
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");
}
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");
}