From 112ed0e8162e7ba56e9b7463b4ca3fe5472fc956 Mon Sep 17 00:00:00 2001 From: LordBaryhobal Date: Sun, 31 May 2026 18:54:55 +0200 Subject: [PATCH] feat(parser): desugar AugAssign statements --- midas/parser/python.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/midas/parser/python.py b/midas/parser/python.py index bc6a9fe..6a01b32 100644 --- a/midas/parser/python.py +++ b/midas/parser/python.py @@ -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: