class Prism::Compiler - Documentation for Ruby 4.1
Description: class Prism::Compiler: A compiler is a visitor that returns the value of each node as it visits. This is as opposed to a visitor which will only walk the tree.
Keywords: ruby,class,Prism::Compiler

🔍

No recent searches

# class Prism::Compiler

A compiler is a visitor that returns the value of each node as it visits. This is as opposed to a visitor which will only walk the tree. This can be useful when you are trying to compile a tree into a different format.

For example, to build a representation of the tree as s-expressions, you could write:

    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]]]]]]]]