class SyntaxTree::Node

you’re trying to monkey-patch or strictly type.
exclusively here to make it easier to operate with the tree in cases where
This is the parent node of all of the syntax tree nodes. It’s pretty much

def accept(visitor)

def accept(visitor)
  raise NotImplementedError
end

def child_nodes

def child_nodes
  raise NotImplementedError
end

def construct_keys

def construct_keys
  PrettierPrint.format(+"") { |q| accept(MatchVisitor.new(q)) }
end

def deconstruct

def deconstruct
  raise NotImplementedError
end

def deconstruct_keys(keys)

def deconstruct_keys(keys)
  raise NotImplementedError
end

def end_char

def end_char
  location.end_char
end

def format(q)

def format(q)
  raise NotImplementedError
end

def pretty_print(q)

def pretty_print(q)
  accept(PrettyPrintVisitor.new(q))
end

def start_char

def start_char
  location.start_char
end

def to_json(*opts)

def to_json(*opts)
  accept(JSONVisitor.new).to_json(*opts)
end

def to_mermaid

def to_mermaid
  accept(MermaidVisitor.new)
end