class Prism::Compiler

Ein Compiler ist ein Besucher, der beim Besuch den Wert jedes Knotens zurückgibt. Dies steht im Gegensatz zu einem reinen Besucher, der nur den Baum durchläuft. Dies kann nützlich sein, wenn Sie versuchen, einen Baum in ein anderes Format zu kompilieren.

Um beispielsweise eine Darstellung des Baumes als s-Ausdrücke zu erstellen, könnten Sie schreiben:

class SExpressions < Prism::Compiler
  def visit_arguments_node(node) = [:arguments, super]
  def visit_call_node(node) = [:call, super]
  def visit_integer_node(node) = [:integer]
  def visit_program_node(node) = [:program, super]
end

Prism.parse("1 + 2").value.accept(SExpressions.new)
# => [:program, [[[:call, [[:integer], [:arguments, [[:integer]]]]]]]]