code: def visit_VariableDeclaration(self, node):
          
          var_name = node.assignment.left.identifier.name
          var_is_mutable = node.assignment.left.is_mutable
          var_symbol = VariableSymbol(var_name, var_is_mutable)
  
          if self.table[var_name] is not None:
              raise SementicError(f"Variable `{var_name}` is already declared.")
  
          self.table[var_symbol.name] = var_symbol
  
          self.visit(node.assignment.left)
          self.visit(node.assignment.right)
docs: Visitor for `VariableDeclaration` AST node.