operator: add script-block pseudo-operator
This commit is contained in:
+14
-10
@@ -18,10 +18,6 @@
|
|||||||
|
|
||||||
/* clang-format off */
|
/* clang-format off */
|
||||||
static const struct operator_info operators[] = {
|
static const struct operator_info operators[] = {
|
||||||
OP(SUBEXPR, PARENTHESIS, LEFT, PREFIX, UNARY),
|
|
||||||
OP(ARRAY_START, PARENTHESIS, LEFT, PREFIX, UNARY),
|
|
||||||
OP(PAREN, PARENTHESIS, LEFT, PREFIX, UNARY),
|
|
||||||
OP(HASHTABLE_START, PARENTHESIS, LEFT, PREFIX, UNARY),
|
|
||||||
OP(ACCESS, MEMBER_ACCESS, LEFT, INFIX, BINARY),
|
OP(ACCESS, MEMBER_ACCESS, LEFT, INFIX, BINARY),
|
||||||
OP(CONDITIONAL_ACCESS, MEMBER_ACCESS, LEFT, INFIX, BINARY),
|
OP(CONDITIONAL_ACCESS, MEMBER_ACCESS, LEFT, INFIX, BINARY),
|
||||||
OP(STATIC_ACCESS, STATIC_ACCESS, LEFT, INFIX, BINARY),
|
OP(STATIC_ACCESS, STATIC_ACCESS, LEFT, INFIX, BINARY),
|
||||||
@@ -73,12 +69,20 @@ static const struct operator_info operators[] = {
|
|||||||
OP(LEFT_SHIFT, BITWISE, LEFT, INFIX, BINARY),
|
OP(LEFT_SHIFT, BITWISE, LEFT, INFIX, BINARY),
|
||||||
OP(RIGHT_SHIFT, BITWISE, LEFT, INFIX, BINARY),
|
OP(RIGHT_SHIFT, BITWISE, LEFT, INFIX, BINARY),
|
||||||
|
|
||||||
OP(ASSIGN, ASSIGN, LEFT, INFIX, BINARY),
|
OP(ASSIGN, ASSIGN, RIGHT, INFIX, BINARY),
|
||||||
OP(ADD_ASSIGN, ASSIGN, LEFT, INFIX, BINARY),
|
OP(ADD_ASSIGN, ASSIGN, RIGHT, INFIX, BINARY),
|
||||||
OP(SUBTRACT_ASSIGN, ASSIGN, LEFT, INFIX, BINARY),
|
OP(SUBTRACT_ASSIGN, ASSIGN, RIGHT, INFIX, BINARY),
|
||||||
OP(MULTIPLY_ASSIGN, ASSIGN, LEFT, INFIX, BINARY),
|
OP(MULTIPLY_ASSIGN, ASSIGN, RIGHT, INFIX, BINARY),
|
||||||
OP(DIVIDE_ASSIGN, ASSIGN, LEFT, INFIX, BINARY),
|
OP(DIVIDE_ASSIGN, ASSIGN, RIGHT, INFIX, BINARY),
|
||||||
OP(MODULO_ASSIGN, ASSIGN, LEFT, INFIX, BINARY),
|
OP(MODULO_ASSIGN, ASSIGN, RIGHT, INFIX, BINARY),
|
||||||
|
|
||||||
|
/* these are not real operators, and are just used internally by the
|
||||||
|
* parser. */
|
||||||
|
OP(SUBEXPR, PARENTHESIS, LEFT, PREFIX, UNARY),
|
||||||
|
OP(ARRAY_START, PARENTHESIS, LEFT, PREFIX, UNARY),
|
||||||
|
OP(PAREN, PARENTHESIS, LEFT, PREFIX, UNARY),
|
||||||
|
OP(HASHTABLE_START, PARENTHESIS, LEFT, PREFIX, UNARY),
|
||||||
|
OP(SCRIPTBLOCK, PARENTHESIS, LEFT, PREFIX, UNARY),
|
||||||
};
|
};
|
||||||
static const size_t nr_operators = sizeof operators / sizeof operators[0];
|
static const size_t nr_operators = sizeof operators / sizeof operators[0];
|
||||||
|
|
||||||
|
|||||||
@@ -104,6 +104,7 @@ enum operator_id {
|
|||||||
OP_CAST,
|
OP_CAST,
|
||||||
OP_SUBEXPR,
|
OP_SUBEXPR,
|
||||||
OP_PAREN,
|
OP_PAREN,
|
||||||
|
OP_SCRIPTBLOCK,
|
||||||
OP_ARRAY_START,
|
OP_ARRAY_START,
|
||||||
OP_HASHTABLE_START,
|
OP_HASHTABLE_START,
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user