From fcc91b8da4cc619ccf45359da481ba92ca5e8a11 Mon Sep 17 00:00:00 2001 From: HEIHUAa <112499486+HEIHUAa@users.noreply.github.com> Date: Tue, 20 Oct 2026 12:56:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20Parser.hx?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hscript/Parser.hx | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/hscript/Parser.hx b/hscript/Parser.hx index 6490d682..2274bf64 100644 --- a/hscript/Parser.hx +++ b/hscript/Parser.hx @@ -1402,6 +1402,25 @@ class Parser { var tmp = "__a_" + (uid++); push(TDot); var e2 = parseExprNext(mk(EIdent(tmp),pmin(e1),pmax(e1)), true); + var tk2 = token(); + switch( tk2 ) { + case TOp(op): + var bop = Binop.fromString(op); + var isAssign = switch( bop ) { + case OpAssign | OpAddAssign | OpSubAssign | OpMultAssign | OpDivAssign | OpModAssign | OpAndAssign | OpOrAssign | OpXorAssign | OpShlAssign | OpShrAssign | OpUshrAssign | OpNcoalAssign: true; + default: false; + }; + if( isAssign ) { + var rhs = parseExpr(); + e2 = mk(EBinop(bop, e2, rhs), pmin(e2), pmax(rhs)); + } else if( op == "++" || op == "--" ) { + e2 = mk(EUnop(Unop.fromString(op), false, e2), pmin(e2), pmax(e2)); + } else { + push(tk2); + } + default: + push(tk2); + } var e = mk(EBlock([ mk(EVar(tmp, null, e1), pmin(e1), pmax(e1)), mk(ETernary(