class SyntaxTree::Command

def copy(message: nil, arguments: nil, block: nil, location: nil)

def copy(message: nil, arguments: nil, block: nil, location: nil)
  node =
    Command.new(
      message: message || self.message,
      arguments: arguments || self.arguments,
      block: block || self.block,
      location: location || self.location
    )
  node.comments.concat(comments.map(&:copy))
  node
end