code: def visit_Assignment(self, node):
          
          var_name = node.left.identifier.name
          var_symbol = self.table[var_name]
  
          if var_symbol is not None and not var_symbol.is_mutable:
              raise SementicError(f"Re-assignment of immutable variable `{var_name}`.")
  
          self.visit(node.left)
          self.visit(node.right)
docs: Visitor for `Assignment` AST node.