diff --git a/bshell/operator.c b/bshell/operator.c index 02ca884..cbabb9c 100644 --- a/bshell/operator.c +++ b/bshell/operator.c @@ -18,10 +18,6 @@ /* clang-format off */ 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(CONDITIONAL_ACCESS, MEMBER_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(RIGHT_SHIFT, BITWISE, LEFT, INFIX, BINARY), - OP(ASSIGN, ASSIGN, LEFT, INFIX, BINARY), - OP(ADD_ASSIGN, ASSIGN, LEFT, INFIX, BINARY), - OP(SUBTRACT_ASSIGN, ASSIGN, LEFT, INFIX, BINARY), - OP(MULTIPLY_ASSIGN, ASSIGN, LEFT, INFIX, BINARY), - OP(DIVIDE_ASSIGN, ASSIGN, LEFT, INFIX, BINARY), - OP(MODULO_ASSIGN, ASSIGN, LEFT, INFIX, BINARY), + OP(ASSIGN, ASSIGN, RIGHT, INFIX, BINARY), + OP(ADD_ASSIGN, ASSIGN, RIGHT, INFIX, BINARY), + OP(SUBTRACT_ASSIGN, ASSIGN, RIGHT, INFIX, BINARY), + OP(MULTIPLY_ASSIGN, ASSIGN, RIGHT, INFIX, BINARY), + OP(DIVIDE_ASSIGN, ASSIGN, RIGHT, 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]; diff --git a/bshell/operator.h b/bshell/operator.h index 7aba914..e3411fc 100644 --- a/bshell/operator.h +++ b/bshell/operator.h @@ -104,6 +104,7 @@ enum operator_id { OP_CAST, OP_SUBEXPR, OP_PAREN, + OP_SCRIPTBLOCK, OP_ARRAY_START, OP_HASHTABLE_START, };