Skip to content

Commit 0c9809c

Browse files
author
Минин Степан Александрович
committed
feat(TopDownParser): AssignmentExpression
Desugar Compound Assignment Closes #233
1 parent b2992f6 commit 0c9809c

1 file changed

Lines changed: 7 additions & 1 deletion

File tree

src/Domain/HydraScript.Domain.FrontEnd/Parser/Impl/TopDownParser.Expression.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,13 @@ private Expression Expression()
1919
if (expr is MemberExpression lhs && CurrentIs("Assign"))
2020
{
2121
var assign = Expect("Assign");
22-
return new AssignmentExpression(lhs, Expression())
22+
var source = assign.Value is "="
23+
? Expression()
24+
: new BinaryExpression(
25+
lhs.Empty() ? lhs.Id.Clone() : lhs.Clone(),
26+
assign.Value[..^1],
27+
Expression());
28+
return new AssignmentExpression(lhs, source)
2329
{ Segment = assign.Segment };
2430
}
2531

0 commit comments

Comments
 (0)