Update compiler.h

This commit is contained in:
blueloveTH 2022-11-06 23:52:14 +08:00
parent 52ec435775
commit 532f915860

View File

@ -436,13 +436,13 @@ public:
if (l_value && matchAssignment()) { if (l_value && matchAssignment()) {
_TokenType assignment = parser->previous.type; _TokenType assignment = parser->previous.type;
matchNewLines(); matchNewLines();
if (assignment != TK("=")) { // name += / -= / *= ... = (expr); if (assignment == TK("=")) {
compileExpressionTuple();
} else { // name += / -= / *= ... = (expr);
emitCode(OP_DUP_TOP); emitCode(OP_DUP_TOP);
emitCode(OP_LOAD_ATTR, index); emitCode(OP_LOAD_ATTR, index);
compileExpression(); compileExpression();
emitAssignOp(assignment); emitAssignOp(assignment);
} else {
compileExpressionTuple();
} }
emitCode(OP_STORE_ATTR, index); emitCode(OP_STORE_ATTR, index);
} else { } else {
@ -485,10 +485,10 @@ public:
_TokenType assignment = parser->previous.type; _TokenType assignment = parser->previous.type;
matchNewLines(); matchNewLines();
if (assignment != TK("=")) { if (assignment == TK("=")) {
UNREACHABLE();
} else {
compileExpressionTuple(); compileExpressionTuple();
} else {
UNREACHABLE();
} }
emitCode(OP_STORE_SUBSCR); emitCode(OP_STORE_SUBSCR);
} else { } else {