Class: Prism::Compiler
| Relationships & Source Files | |
| Extension / Inclusion / Inheritance Descendants | |
|
Subclasses:
|
|
| Super Chains via Extension / Inclusion / Inheritance | |
|
Class Chain:
self,
Visitor,
BasicVisitor
|
|
|
Instance Chain:
self,
Visitor,
BasicVisitor
|
|
| Inherits: |
Prism::Visitor
|
| Defined in: | lib/prism/compiler.rb |
Overview
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]]]]]]]]
Instance Method Summary
-
#visit(node)
Visit an individual node.
-
#visit_alias_global_variable_node(node)
Alias for #visit_child_nodes.
-
#visit_alias_method_node(node)
Alias for #visit_child_nodes.
-
#visit_all(nodes)
Visit a list of nodes.
-
#visit_alternation_pattern_node(node)
Alias for #visit_child_nodes.
-
#visit_and_node(node)
Alias for #visit_child_nodes.
-
#visit_arguments_node(node)
Alias for #visit_child_nodes.
-
#visit_array_node(node)
Alias for #visit_child_nodes.
-
#visit_array_pattern_node(node)
Alias for #visit_child_nodes.
-
#visit_assoc_node(node)
Alias for #visit_child_nodes.
-
#visit_assoc_splat_node(node)
Alias for #visit_child_nodes.
-
#visit_back_reference_read_node(node)
Alias for #visit_child_nodes.
-
#visit_begin_node(node)
Alias for #visit_child_nodes.
-
#visit_block_argument_node(node)
Alias for #visit_child_nodes.
-
#visit_block_local_variable_node(node)
Alias for #visit_child_nodes.
-
#visit_block_node(node)
Alias for #visit_child_nodes.
-
#visit_block_parameter_node(node)
Alias for #visit_child_nodes.
-
#visit_block_parameters_node(node)
Alias for #visit_child_nodes.
-
#visit_break_node(node)
Alias for #visit_child_nodes.
-
#visit_call_and_write_node(node)
Alias for #visit_child_nodes.
-
#visit_call_node(node)
Alias for #visit_child_nodes.
-
#visit_call_operator_write_node(node)
Alias for #visit_child_nodes.
-
#visit_call_or_write_node(node)
Alias for #visit_child_nodes.
-
#visit_call_target_node(node)
Alias for #visit_child_nodes.
-
#visit_capture_pattern_node(node)
Alias for #visit_child_nodes.
-
#visit_case_match_node(node)
Alias for #visit_child_nodes.
-
#visit_case_node(node)
Alias for #visit_child_nodes.
-
#visit_child_nodes(node)
(also: #visit_alias_global_variable_node, #visit_alias_method_node, #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_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_def_node, #visit_defined_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_in_node, #visit_index_and_write_node, #visit_index_operator_write_node, #visit_index_or_write_node, #visit_index_target_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)
Visit the child nodes of the given node.
-
#visit_class_node(node)
Alias for #visit_child_nodes.
-
#visit_class_variable_and_write_node(node)
Alias for #visit_child_nodes.
-
#visit_class_variable_operator_write_node(node)
Alias for #visit_child_nodes.
-
#visit_class_variable_or_write_node(node)
Alias for #visit_child_nodes.
-
#visit_class_variable_read_node(node)
Alias for #visit_child_nodes.
-
#visit_class_variable_target_node(node)
Alias for #visit_child_nodes.
-
#visit_class_variable_write_node(node)
Alias for #visit_child_nodes.
-
#visit_constant_and_write_node(node)
Alias for #visit_child_nodes.
-
#visit_constant_operator_write_node(node)
Alias for #visit_child_nodes.
-
#visit_constant_or_write_node(node)
Alias for #visit_child_nodes.
-
#visit_constant_path_and_write_node(node)
Alias for #visit_child_nodes.
-
#visit_constant_path_node(node)
Alias for #visit_child_nodes.
-
#visit_constant_path_operator_write_node(node)
Alias for #visit_child_nodes.
-
#visit_constant_path_or_write_node(node)
Alias for #visit_child_nodes.
-
#visit_constant_path_target_node(node)
Alias for #visit_child_nodes.
-
#visit_constant_path_write_node(node)
Alias for #visit_child_nodes.
-
#visit_constant_read_node(node)
Alias for #visit_child_nodes.
-
#visit_constant_target_node(node)
Alias for #visit_child_nodes.
-
#visit_constant_write_node(node)
Alias for #visit_child_nodes.
-
#visit_def_node(node)
Alias for #visit_child_nodes.
-
#visit_defined_node(node)
Alias for #visit_child_nodes.
-
#visit_else_node(node)
Alias for #visit_child_nodes.
-
#visit_embedded_statements_node(node)
Alias for #visit_child_nodes.
-
#visit_embedded_variable_node(node)
Alias for #visit_child_nodes.
-
#visit_ensure_node(node)
Alias for #visit_child_nodes.
-
#visit_false_node(node)
Alias for #visit_child_nodes.
-
#visit_find_pattern_node(node)
Alias for #visit_child_nodes.
-
#visit_flip_flop_node(node)
Alias for #visit_child_nodes.
-
#visit_float_node(node)
Alias for #visit_child_nodes.
-
#visit_for_node(node)
Alias for #visit_child_nodes.
-
#visit_forwarding_arguments_node(node)
Alias for #visit_child_nodes.
-
#visit_forwarding_parameter_node(node)
Alias for #visit_child_nodes.
-
#visit_forwarding_super_node(node)
Alias for #visit_child_nodes.
-
#visit_global_variable_and_write_node(node)
Alias for #visit_child_nodes.
-
#visit_global_variable_operator_write_node(node)
Alias for #visit_child_nodes.
-
#visit_global_variable_or_write_node(node)
Alias for #visit_child_nodes.
-
#visit_global_variable_read_node(node)
Alias for #visit_child_nodes.
-
#visit_global_variable_target_node(node)
Alias for #visit_child_nodes.
-
#visit_global_variable_write_node(node)
Alias for #visit_child_nodes.
-
#visit_hash_node(node)
Alias for #visit_child_nodes.
-
#visit_hash_pattern_node(node)
Alias for #visit_child_nodes.
-
#visit_if_node(node)
Alias for #visit_child_nodes.
-
#visit_imaginary_node(node)
Alias for #visit_child_nodes.
-
#visit_implicit_node(node)
Alias for #visit_child_nodes.
-
#visit_implicit_rest_node(node)
Alias for #visit_child_nodes.
-
#visit_in_node(node)
Alias for #visit_child_nodes.
-
#visit_index_and_write_node(node)
Alias for #visit_child_nodes.
-
#visit_index_operator_write_node(node)
Alias for #visit_child_nodes.
-
#visit_index_or_write_node(node)
Alias for #visit_child_nodes.
-
#visit_index_target_node(node)
Alias for #visit_child_nodes.
-
#visit_instance_variable_and_write_node(node)
Alias for #visit_child_nodes.
-
#visit_instance_variable_operator_write_node(node)
Alias for #visit_child_nodes.
-
#visit_instance_variable_or_write_node(node)
Alias for #visit_child_nodes.
-
#visit_instance_variable_read_node(node)
Alias for #visit_child_nodes.
-
#visit_instance_variable_target_node(node)
Alias for #visit_child_nodes.
-
#visit_instance_variable_write_node(node)
Alias for #visit_child_nodes.
-
#visit_integer_node(node)
Alias for #visit_child_nodes.
-
#visit_interpolated_match_last_line_node(node)
Alias for #visit_child_nodes.
-
#visit_interpolated_regular_expression_node(node)
Alias for #visit_child_nodes.
-
#visit_interpolated_string_node(node)
Alias for #visit_child_nodes.
-
#visit_interpolated_symbol_node(node)
Alias for #visit_child_nodes.
-
#visit_interpolated_x_string_node(node)
Alias for #visit_child_nodes.
-
#visit_it_local_variable_read_node(node)
Alias for #visit_child_nodes.
-
#visit_it_parameters_node(node)
Alias for #visit_child_nodes.
-
#visit_keyword_hash_node(node)
Alias for #visit_child_nodes.
-
#visit_keyword_rest_parameter_node(node)
Alias for #visit_child_nodes.
-
#visit_lambda_node(node)
Alias for #visit_child_nodes.
-
#visit_local_variable_and_write_node(node)
Alias for #visit_child_nodes.
-
#visit_local_variable_operator_write_node(node)
Alias for #visit_child_nodes.
-
#visit_local_variable_or_write_node(node)
Alias for #visit_child_nodes.
-
#visit_local_variable_read_node(node)
Alias for #visit_child_nodes.
-
#visit_local_variable_target_node(node)
Alias for #visit_child_nodes.
-
#visit_local_variable_write_node(node)
Alias for #visit_child_nodes.
-
#visit_match_last_line_node(node)
Alias for #visit_child_nodes.
-
#visit_match_predicate_node(node)
Alias for #visit_child_nodes.
-
#visit_match_required_node(node)
Alias for #visit_child_nodes.
-
#visit_match_write_node(node)
Alias for #visit_child_nodes.
-
#visit_missing_node(node)
Alias for #visit_child_nodes.
-
#visit_module_node(node)
Alias for #visit_child_nodes.
-
#visit_multi_target_node(node)
Alias for #visit_child_nodes.
-
#visit_multi_write_node(node)
Alias for #visit_child_nodes.
-
#visit_next_node(node)
Alias for #visit_child_nodes.
-
#visit_nil_node(node)
Alias for #visit_child_nodes.
-
#visit_no_keywords_parameter_node(node)
Alias for #visit_child_nodes.
-
#visit_numbered_parameters_node(node)
Alias for #visit_child_nodes.
-
#visit_numbered_reference_read_node(node)
Alias for #visit_child_nodes.
-
#visit_optional_keyword_parameter_node(node)
Alias for #visit_child_nodes.
-
#visit_optional_parameter_node(node)
Alias for #visit_child_nodes.
-
#visit_or_node(node)
Alias for #visit_child_nodes.
-
#visit_parameters_node(node)
Alias for #visit_child_nodes.
-
#visit_parentheses_node(node)
Alias for #visit_child_nodes.
-
#visit_pinned_expression_node(node)
Alias for #visit_child_nodes.
-
#visit_pinned_variable_node(node)
Alias for #visit_child_nodes.
-
#visit_post_execution_node(node)
Alias for #visit_child_nodes.
-
#visit_pre_execution_node(node)
Alias for #visit_child_nodes.
-
#visit_program_node(node)
Alias for #visit_child_nodes.
-
#visit_range_node(node)
Alias for #visit_child_nodes.
-
#visit_rational_node(node)
Alias for #visit_child_nodes.
-
#visit_redo_node(node)
Alias for #visit_child_nodes.
-
#visit_regular_expression_node(node)
Alias for #visit_child_nodes.
-
#visit_required_keyword_parameter_node(node)
Alias for #visit_child_nodes.
-
#visit_required_parameter_node(node)
Alias for #visit_child_nodes.
-
#visit_rescue_modifier_node(node)
Alias for #visit_child_nodes.
-
#visit_rescue_node(node)
Alias for #visit_child_nodes.
-
#visit_rest_parameter_node(node)
Alias for #visit_child_nodes.
-
#visit_retry_node(node)
Alias for #visit_child_nodes.
-
#visit_return_node(node)
Alias for #visit_child_nodes.
-
#visit_self_node(node)
Alias for #visit_child_nodes.
-
#visit_shareable_constant_node(node)
Alias for #visit_child_nodes.
-
#visit_singleton_class_node(node)
Alias for #visit_child_nodes.
-
#visit_source_encoding_node(node)
Alias for #visit_child_nodes.
-
#visit_source_file_node(node)
Alias for #visit_child_nodes.
-
#visit_source_line_node(node)
Alias for #visit_child_nodes.
-
#visit_splat_node(node)
Alias for #visit_child_nodes.
-
#visit_statements_node(node)
Alias for #visit_child_nodes.
-
#visit_string_node(node)
Alias for #visit_child_nodes.
-
#visit_super_node(node)
Alias for #visit_child_nodes.
-
#visit_symbol_node(node)
Alias for #visit_child_nodes.
-
#visit_true_node(node)
Alias for #visit_child_nodes.
-
#visit_undef_node(node)
Alias for #visit_child_nodes.
-
#visit_unless_node(node)
Alias for #visit_child_nodes.
-
#visit_until_node(node)
Alias for #visit_child_nodes.
-
#visit_when_node(node)
Alias for #visit_child_nodes.
-
#visit_while_node(node)
Alias for #visit_child_nodes.
-
#visit_x_string_node(node)
Alias for #visit_child_nodes.
-
#visit_yield_node(node)
Alias for #visit_child_nodes.
Visitor - Inherited
BasicVisitor - Inherited
| #visit | Calls |
| #visit_all | Visits each node in |
| #visit_child_nodes | Visits the child nodes of |
Instance Method Details
#visit(node)
Visit an individual node.
# File 'lib/prism/compiler.rb', line 29
def visit(node) node&.accept(self) end
#visit_alias_global_variable_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 44
alias visit_alias_global_variable_node visit_child_nodes
#visit_alias_method_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 47
alias visit_alias_method_node visit_child_nodes
#visit_all(nodes)
Visit a list of nodes.
# File 'lib/prism/compiler.rb', line 34
def visit_all(nodes) nodes.map { |node| node&.accept(self) } end
#visit_alternation_pattern_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 50
alias visit_alternation_pattern_node visit_child_nodes
#visit_and_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 53
alias visit_and_node visit_child_nodes
#visit_arguments_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 56
alias visit_arguments_node visit_child_nodes
#visit_array_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 59
alias visit_array_node visit_child_nodes
#visit_array_pattern_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 62
alias visit_array_pattern_node visit_child_nodes
#visit_assoc_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 65
alias visit_assoc_node visit_child_nodes
#visit_assoc_splat_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 68
alias visit_assoc_splat_node visit_child_nodes
#visit_back_reference_read_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 71
alias visit_back_reference_read_node visit_child_nodes
#visit_begin_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 74
alias visit_begin_node visit_child_nodes
#visit_block_argument_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 77
alias visit_block_argument_node visit_child_nodes
#visit_block_local_variable_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 80
alias visit_block_local_variable_node visit_child_nodes
#visit_block_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 83
alias visit_block_node visit_child_nodes
#visit_block_parameter_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 86
alias visit_block_parameter_node visit_child_nodes
#visit_block_parameters_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 89
alias visit_block_parameters_node visit_child_nodes
#visit_break_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 92
alias visit_break_node visit_child_nodes
#visit_call_and_write_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 95
alias visit_call_and_write_node visit_child_nodes
#visit_call_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 98
alias visit_call_node visit_child_nodes
#visit_call_operator_write_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 101
alias visit_call_operator_write_node visit_child_nodes
#visit_call_or_write_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 104
alias visit_call_or_write_node visit_child_nodes
#visit_call_target_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 107
alias visit_call_target_node visit_child_nodes
#visit_capture_pattern_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 110
alias visit_capture_pattern_node visit_child_nodes
#visit_case_match_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 113
alias visit_case_match_node visit_child_nodes
#visit_case_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 116
alias visit_case_node visit_child_nodes
#visit_child_nodes(node) Also known as: #visit_alias_global_variable_node, #visit_alias_method_node, #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_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_def_node, #visit_defined_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_in_node, #visit_index_and_write_node, #visit_index_operator_write_node, #visit_index_or_write_node, #visit_index_target_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
Visit the child nodes of the given node.
# File 'lib/prism/compiler.rb', line 39
def visit_child_nodes(node) node.compact_child_nodes.map { |node| node.accept(self) } end
#visit_class_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 119
alias visit_class_node visit_child_nodes
#visit_class_variable_and_write_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 122
alias visit_class_variable_and_write_node visit_child_nodes
#visit_class_variable_operator_write_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 125
alias visit_class_variable_operator_write_node visit_child_nodes
#visit_class_variable_or_write_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 128
alias visit_class_variable_or_write_node visit_child_nodes
#visit_class_variable_read_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 131
alias visit_class_variable_read_node visit_child_nodes
#visit_class_variable_target_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 134
alias visit_class_variable_target_node visit_child_nodes
#visit_class_variable_write_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 137
alias visit_class_variable_write_node visit_child_nodes
#visit_constant_and_write_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 140
alias visit_constant_and_write_node visit_child_nodes
#visit_constant_operator_write_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 143
alias visit_constant_operator_write_node visit_child_nodes
#visit_constant_or_write_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 146
alias visit_constant_or_write_node visit_child_nodes
#visit_constant_path_and_write_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 149
alias visit_constant_path_and_write_node visit_child_nodes
#visit_constant_path_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 152
alias visit_constant_path_node visit_child_nodes
#visit_constant_path_operator_write_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 155
alias visit_constant_path_operator_write_node visit_child_nodes
#visit_constant_path_or_write_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 158
alias visit_constant_path_or_write_node visit_child_nodes
#visit_constant_path_target_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 161
alias visit_constant_path_target_node visit_child_nodes
#visit_constant_path_write_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 164
alias visit_constant_path_write_node visit_child_nodes
#visit_constant_read_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 167
alias visit_constant_read_node visit_child_nodes
#visit_constant_target_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 170
alias visit_constant_target_node visit_child_nodes
#visit_constant_write_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 173
alias visit_constant_write_node visit_child_nodes
#visit_def_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 176
alias visit_def_node visit_child_nodes
#visit_defined_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 179
alias visit_defined_node visit_child_nodes
#visit_else_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 182
alias visit_else_node visit_child_nodes
#visit_embedded_statements_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 185
alias visit_child_nodes
#visit_embedded_variable_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 188
alias visit_child_nodes
#visit_ensure_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 191
alias visit_ensure_node visit_child_nodes
#visit_false_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 194
alias visit_false_node visit_child_nodes
#visit_find_pattern_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 197
alias visit_find_pattern_node visit_child_nodes
#visit_flip_flop_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 200
alias visit_flip_flop_node visit_child_nodes
#visit_float_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 203
alias visit_float_node visit_child_nodes
#visit_for_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 206
alias visit_for_node visit_child_nodes
#visit_forwarding_arguments_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 209
alias visit_forwarding_arguments_node visit_child_nodes
#visit_forwarding_parameter_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 212
alias visit_forwarding_parameter_node visit_child_nodes
#visit_forwarding_super_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 215
alias visit_forwarding_super_node visit_child_nodes
#visit_global_variable_and_write_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 218
alias visit_global_variable_and_write_node visit_child_nodes
#visit_global_variable_operator_write_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 221
alias visit_global_variable_operator_write_node visit_child_nodes
#visit_global_variable_or_write_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 224
alias visit_global_variable_or_write_node visit_child_nodes
#visit_global_variable_read_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 227
alias visit_global_variable_read_node visit_child_nodes
#visit_global_variable_target_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 230
alias visit_global_variable_target_node visit_child_nodes
#visit_global_variable_write_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 233
alias visit_global_variable_write_node visit_child_nodes
#visit_hash_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 236
alias visit_hash_node visit_child_nodes
#visit_hash_pattern_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 239
alias visit_hash_pattern_node visit_child_nodes
#visit_if_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 242
alias visit_if_node visit_child_nodes
#visit_imaginary_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 245
alias visit_imaginary_node visit_child_nodes
#visit_implicit_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 248
alias visit_implicit_node visit_child_nodes
#visit_implicit_rest_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 251
alias visit_implicit_rest_node visit_child_nodes
#visit_in_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 254
alias visit_in_node visit_child_nodes
#visit_index_and_write_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 257
alias visit_index_and_write_node visit_child_nodes
#visit_index_operator_write_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 260
alias visit_index_operator_write_node visit_child_nodes
#visit_index_or_write_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 263
alias visit_index_or_write_node visit_child_nodes
#visit_index_target_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 266
alias visit_index_target_node visit_child_nodes
#visit_instance_variable_and_write_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 269
alias visit_instance_variable_and_write_node visit_child_nodes
#visit_instance_variable_operator_write_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 272
alias visit_instance_variable_operator_write_node visit_child_nodes
#visit_instance_variable_or_write_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 275
alias visit_instance_variable_or_write_node visit_child_nodes
#visit_instance_variable_read_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 278
alias visit_instance_variable_read_node visit_child_nodes
#visit_instance_variable_target_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 281
alias visit_instance_variable_target_node visit_child_nodes
#visit_instance_variable_write_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 284
alias visit_instance_variable_write_node visit_child_nodes
#visit_integer_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 287
alias visit_integer_node visit_child_nodes
#visit_interpolated_match_last_line_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 290
alias visit_interpolated_match_last_line_node visit_child_nodes
#visit_interpolated_regular_expression_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 293
alias visit_interpolated_regular_expression_node visit_child_nodes
#visit_interpolated_string_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 296
alias visit_interpolated_string_node visit_child_nodes
#visit_interpolated_symbol_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 299
alias visit_interpolated_symbol_node visit_child_nodes
#visit_interpolated_x_string_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 302
alias visit_interpolated_x_string_node visit_child_nodes
#visit_it_local_variable_read_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 305
alias visit_it_local_variable_read_node visit_child_nodes
#visit_it_parameters_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 308
alias visit_it_parameters_node visit_child_nodes
#visit_keyword_hash_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 311
alias visit_keyword_hash_node visit_child_nodes
#visit_keyword_rest_parameter_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 314
alias visit_keyword_rest_parameter_node visit_child_nodes
#visit_lambda_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 317
alias visit_lambda_node visit_child_nodes
#visit_local_variable_and_write_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 320
alias visit_local_variable_and_write_node visit_child_nodes
#visit_local_variable_operator_write_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 323
alias visit_local_variable_operator_write_node visit_child_nodes
#visit_local_variable_or_write_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 326
alias visit_local_variable_or_write_node visit_child_nodes
#visit_local_variable_read_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 329
alias visit_local_variable_read_node visit_child_nodes
#visit_local_variable_target_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 332
alias visit_local_variable_target_node visit_child_nodes
#visit_local_variable_write_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 335
alias visit_local_variable_write_node visit_child_nodes
#visit_match_last_line_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 338
alias visit_match_last_line_node visit_child_nodes
#visit_match_predicate_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 341
alias visit_match_predicate_node visit_child_nodes
#visit_match_required_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 344
alias visit_match_required_node visit_child_nodes
#visit_match_write_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 347
alias visit_match_write_node visit_child_nodes
#visit_missing_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 350
alias visit_missing_node visit_child_nodes
#visit_module_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 353
alias visit_module_node visit_child_nodes
#visit_multi_target_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 356
alias visit_multi_target_node visit_child_nodes
#visit_multi_write_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 359
alias visit_multi_write_node visit_child_nodes
#visit_next_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 362
alias visit_next_node visit_child_nodes
#visit_nil_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 365
alias visit_nil_node visit_child_nodes
#visit_no_keywords_parameter_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 368
alias visit_no_keywords_parameter_node visit_child_nodes
#visit_numbered_parameters_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 371
alias visit_numbered_parameters_node visit_child_nodes
#visit_numbered_reference_read_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 374
alias visit_numbered_reference_read_node visit_child_nodes
#visit_optional_keyword_parameter_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 377
alias visit_optional_keyword_parameter_node visit_child_nodes
#visit_optional_parameter_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 380
alias visit_optional_parameter_node visit_child_nodes
#visit_or_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 383
alias visit_or_node visit_child_nodes
#visit_parameters_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 386
alias visit_parameters_node visit_child_nodes
#visit_parentheses_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 389
alias visit_parentheses_node visit_child_nodes
#visit_pinned_expression_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 392
alias visit_pinned_expression_node visit_child_nodes
#visit_pinned_variable_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 395
alias visit_pinned_variable_node visit_child_nodes
#visit_post_execution_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 398
alias visit_post_execution_node visit_child_nodes
#visit_pre_execution_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 401
alias visit_pre_execution_node visit_child_nodes
#visit_program_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 404
alias visit_program_node visit_child_nodes
#visit_range_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 407
alias visit_range_node visit_child_nodes
#visit_rational_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 410
alias visit_rational_node visit_child_nodes
#visit_redo_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 413
alias visit_redo_node visit_child_nodes
#visit_regular_expression_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 416
alias visit_regular_expression_node visit_child_nodes
#visit_required_keyword_parameter_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 419
alias visit_required_keyword_parameter_node visit_child_nodes
#visit_required_parameter_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 422
alias visit_required_parameter_node visit_child_nodes
#visit_rescue_modifier_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 425
alias visit_rescue_modifier_node visit_child_nodes
#visit_rescue_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 428
alias visit_rescue_node visit_child_nodes
#visit_rest_parameter_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 431
alias visit_rest_parameter_node visit_child_nodes
#visit_retry_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 434
alias visit_retry_node visit_child_nodes
#visit_return_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 437
alias visit_return_node visit_child_nodes
#visit_self_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 440
alias visit_self_node visit_child_nodes
#visit_singleton_class_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 446
alias visit_singleton_class_node visit_child_nodes
#visit_source_encoding_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 449
alias visit_source_encoding_node visit_child_nodes
#visit_source_file_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 452
alias visit_source_file_node visit_child_nodes
#visit_source_line_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 455
alias visit_source_line_node visit_child_nodes
#visit_splat_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 458
alias visit_splat_node visit_child_nodes
#visit_statements_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 461
alias visit_statements_node visit_child_nodes
#visit_string_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 464
alias visit_string_node visit_child_nodes
#visit_super_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 467
alias visit_super_node visit_child_nodes
#visit_symbol_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 470
alias visit_symbol_node visit_child_nodes
#visit_true_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 473
alias visit_true_node visit_child_nodes
#visit_undef_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 476
alias visit_undef_node visit_child_nodes
#visit_unless_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 479
alias visit_unless_node visit_child_nodes
#visit_until_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 482
alias visit_until_node visit_child_nodes
#visit_when_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 485
alias visit_when_node visit_child_nodes
#visit_while_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 488
alias visit_while_node visit_child_nodes
#visit_x_string_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 491
alias visit_x_string_node visit_child_nodes
#visit_yield_node(node)
Alias for #visit_child_nodes.
# File 'lib/prism/compiler.rb', line 494
alias visit_yield_node visit_child_nodes