class · Ruby 4.0
Prism::Compiler
< Prism::Visitor
154 instance methods
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:
Example
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]]]]]]]]
Instance methods 154
#visit
#visit_alias_global_variable_node
#visit_alias_method_node
#visit_all
#visit_alternation_pattern_node
#visit_and_node
#visit_arguments_node
#visit_array_node
#visit_array_pattern_node
#visit_assoc_node
#visit_assoc_splat_node
#visit_back_reference_read_node
#visit_begin_node
#visit_block_argument_node
#visit_block_local_variable_node
#visit_block_node
#visit_block_parameter_node
#visit_block_parameters_node
#visit_break_node
#visit_call_and_write_node
#visit_call_node
#visit_call_operator_write_node
#visit_call_or_write_node
#visit_call_target_node
#visit_capture_pattern_node
#visit_case_match_node
#visit_case_node
#visit_child_nodes
#visit_class_node
#visit_class_variable_and_write_node
#visit_class_variable_operator_write_node
#visit_class_variable_or_write_node
#visit_class_variable_read_node
#visit_class_variable_target_node
#visit_class_variable_write_node
#visit_constant_and_write_node
#visit_constant_operator_write_node
#visit_constant_or_write_node
#visit_constant_path_and_write_node
#visit_constant_path_node
#visit_constant_path_operator_write_node
#visit_constant_path_or_write_node
#visit_constant_path_target_node
#visit_constant_path_write_node
#visit_constant_read_node
#visit_constant_target_node
#visit_constant_write_node
#visit_defined_node
#visit_def_node
#visit_else_node
#visit_embedded_statements_node
#visit_embedded_variable_node
#visit_ensure_node
#visit_false_node
#visit_find_pattern_node
#visit_flip_flop_node
#visit_float_node
#visit_for_node
#visit_forwarding_arguments_node
#visit_forwarding_parameter_node
#visit_forwarding_super_node
#visit_global_variable_and_write_node
#visit_global_variable_operator_write_node
#visit_global_variable_or_write_node
#visit_global_variable_read_node
#visit_global_variable_target_node
#visit_global_variable_write_node
#visit_hash_node
#visit_hash_pattern_node
#visit_if_node
#visit_imaginary_node
#visit_implicit_node
#visit_implicit_rest_node
#visit_index_and_write_node
#visit_index_operator_write_node
#visit_index_or_write_node
#visit_index_target_node
#visit_in_node
#visit_instance_variable_and_write_node
#visit_instance_variable_operator_write_node
#visit_instance_variable_or_write_node
#visit_instance_variable_read_node
#visit_instance_variable_target_node
#visit_instance_variable_write_node
#visit_integer_node
#visit_interpolated_match_last_line_node
#visit_interpolated_regular_expression_node
#visit_interpolated_string_node
#visit_interpolated_symbol_node
#visit_interpolated_x_string_node
#visit_it_local_variable_read_node
#visit_it_parameters_node
#visit_keyword_hash_node
#visit_keyword_rest_parameter_node
#visit_lambda_node
#visit_local_variable_and_write_node
#visit_local_variable_operator_write_node
#visit_local_variable_or_write_node
#visit_local_variable_read_node
#visit_local_variable_target_node
#visit_local_variable_write_node
#visit_match_last_line_node
#visit_match_predicate_node
#visit_match_required_node
#visit_match_write_node
#visit_missing_node
#visit_module_node
#visit_multi_target_node
#visit_multi_write_node
#visit_next_node
#visit_nil_node
#visit_no_keywords_parameter_node
#visit_numbered_parameters_node
#visit_numbered_reference_read_node
#visit_optional_keyword_parameter_node
#visit_optional_parameter_node
#visit_or_node
#visit_parameters_node
#visit_parentheses_node
#visit_pinned_expression_node
#visit_pinned_variable_node
#visit_post_execution_node
#visit_pre_execution_node
#visit_program_node
#visit_range_node
#visit_rational_node
#visit_redo_node
#visit_regular_expression_node
#visit_required_keyword_parameter_node
#visit_required_parameter_node
#visit_rescue_modifier_node
#visit_rescue_node
#visit_rest_parameter_node
#visit_retry_node
#visit_return_node
#visit_self_node
#visit_shareable_constant_node
#visit_singleton_class_node
#visit_source_encoding_node
#visit_source_file_node
#visit_source_line_node
#visit_splat_node
#visit_statements_node
#visit_string_node
#visit_super_node
#visit_symbol_node
#visit_true_node
#visit_undef_node
#visit_unless_node
#visit_until_node
#visit_when_node
#visit_while_node
#visit_x_string_node
#visit_yield_node