A generic AST node
@constructor Node
@property {Location|null} loc
@property {Comment[]} leadingComments
@property {Comment[]?} trailingComments
@property {String} kind
function Node(kind, docs, location) {
  this.kind = kind;
  if (docs) {
    this.leadingComments = docs;
  }
  if (location) {
    this.loc = location;
  }
}