feat(parser): desugar AugAssign statements

This commit is contained in:
2026-05-31 18:54:55 +02:00
parent 7eb1e13b70
commit 112ed0e816

View File

@@ -64,6 +64,9 @@ class PythonParser:
case ast.Assign():
return self.parse_assign(node)
case ast.AugAssign():
return self.parse_aug_assign(node)
case ast.FunctionDef():
return self.parse_function(node)
@@ -129,6 +132,21 @@ class PythonParser:
value=value,
)
def parse_aug_assign(self, node: ast.AugAssign) -> AssignStmt:
location: Location = Location.from_ast(node)
target: Expr = self.parse_expr(node.target)
value: Expr = self.parse_expr(node.value)
return AssignStmt(
location=location,
targets=[target],
value=BinaryExpr(
location=location,
left=target,
operator=node.op,
right=value,
),
)
def parse_function(self, node: ast.FunctionDef) -> Function:
loc: Location = Location.from_ast(node)
match node: