123456789_123456789_123456789_123456789_123456789_

Class: Prism::Compiler

Relationships & Source Files
Extension / Inclusion / Inheritance Descendants
Subclasses:
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
Instance Chain:
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

Visitor - Inherited

#visit_alias_global_variable_node
#visit_alias_method_node

Visit a AliasMethodNode node.

#visit_alternation_pattern_node
#visit_and_node

Visit a AndNode node.

#visit_arguments_node

Visit a ArgumentsNode node.

#visit_array_node

Visit a ArrayNode node.

#visit_array_pattern_node

Visit a ArrayPatternNode node.

#visit_assoc_node

Visit a AssocNode node.

#visit_assoc_splat_node

Visit a AssocSplatNode node.

#visit_back_reference_read_node

Visit a BackReferenceReadNode node.

#visit_begin_node

Visit a BeginNode node.

#visit_block_argument_node

Visit a BlockArgumentNode node.

#visit_block_local_variable_node
#visit_block_node

Visit a BlockNode node.

#visit_block_parameter_node

Visit a BlockParameterNode node.

#visit_block_parameters_node

Visit a BlockParametersNode node.

#visit_break_node

Visit a BreakNode node.

#visit_call_and_write_node

Visit a CallAndWriteNode node.

#visit_call_node

Visit a CallNode node.

#visit_call_operator_write_node

Visit a CallOperatorWriteNode node.

#visit_call_or_write_node

Visit a CallOrWriteNode node.

#visit_call_target_node

Visit a CallTargetNode node.

#visit_capture_pattern_node

Visit a CapturePatternNode node.

#visit_case_match_node

Visit a CaseMatchNode node.

#visit_case_node

Visit a CaseNode node.

#visit_class_node

Visit a ClassNode 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 a ClassVariableReadNode node.

#visit_class_variable_target_node
#visit_class_variable_write_node
#visit_constant_and_write_node

Visit a ConstantAndWriteNode node.

#visit_constant_operator_write_node
#visit_constant_or_write_node

Visit a ConstantOrWriteNode node.

#visit_constant_path_and_write_node
#visit_constant_path_node

Visit a ConstantPathNode node.

#visit_constant_path_operator_write_node
#visit_constant_path_or_write_node
#visit_constant_path_target_node
#visit_constant_path_write_node

Visit a ConstantPathWriteNode node.

#visit_constant_read_node

Visit a ConstantReadNode node.

#visit_constant_target_node

Visit a ConstantTargetNode node.

#visit_constant_write_node

Visit a ConstantWriteNode node.

#visit_def_node

Visit a DefNode node.

#visit_defined_node

Visit a DefinedNode node.

#visit_else_node

Visit a ElseNode node.

#visit_embedded_statements_node
#visit_embedded_variable_node

Visit a EmbeddedVariableNode node.

#visit_ensure_node

Visit a EnsureNode node.

#visit_false_node

Visit a FalseNode node.

#visit_find_pattern_node

Visit a FindPatternNode node.

#visit_flip_flop_node

Visit a FlipFlopNode node.

#visit_float_node

Visit a FloatNode node.

#visit_for_node

Visit a ForNode node.

#visit_forwarding_arguments_node
#visit_forwarding_parameter_node
#visit_forwarding_super_node

Visit a ForwardingSuperNode 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 a HashNode node.

#visit_hash_pattern_node

Visit a HashPatternNode node.

#visit_if_node

Visit a IfNode node.

#visit_imaginary_node

Visit a ImaginaryNode node.

#visit_implicit_node

Visit a ImplicitNode node.

#visit_implicit_rest_node

Visit a ImplicitRestNode node.

#visit_in_node

Visit a InNode node.

#visit_index_and_write_node

Visit a IndexAndWriteNode node.

#visit_index_operator_write_node
#visit_index_or_write_node

Visit a IndexOrWriteNode node.

#visit_index_target_node

Visit a IndexTargetNode 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 a IntegerNode 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 a ItParametersNode node.

#visit_keyword_hash_node

Visit a KeywordHashNode node.

#visit_keyword_rest_parameter_node
#visit_lambda_node

Visit a LambdaNode 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 a LocalVariableReadNode node.

#visit_local_variable_target_node
#visit_local_variable_write_node
#visit_match_last_line_node

Visit a MatchLastLineNode node.

#visit_match_predicate_node

Visit a MatchPredicateNode node.

#visit_match_required_node

Visit a MatchRequiredNode node.

#visit_match_write_node

Visit a MatchWriteNode node.

#visit_missing_node

Visit a MissingNode node.

#visit_module_node

Visit a ModuleNode node.

#visit_multi_target_node

Visit a MultiTargetNode node.

#visit_multi_write_node

Visit a MultiWriteNode node.

#visit_next_node

Visit a NextNode node.

#visit_nil_node

Visit a NilNode 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 a OptionalParameterNode node.

#visit_or_node

Visit a OrNode node.

#visit_parameters_node

Visit a ParametersNode node.

#visit_parentheses_node

Visit a ParenthesesNode node.

#visit_pinned_expression_node

Visit a PinnedExpressionNode node.

#visit_pinned_variable_node

Visit a PinnedVariableNode node.

#visit_post_execution_node

Visit a PostExecutionNode node.

#visit_pre_execution_node

Visit a PreExecutionNode node.

#visit_program_node

Visit a ProgramNode node.

#visit_range_node

Visit a RangeNode node.

#visit_rational_node

Visit a RationalNode node.

#visit_redo_node

Visit a RedoNode node.

#visit_regular_expression_node

Visit a RegularExpressionNode node.

#visit_required_keyword_parameter_node
#visit_required_parameter_node

Visit a RequiredParameterNode node.

#visit_rescue_modifier_node

Visit a RescueModifierNode node.

#visit_rescue_node

Visit a RescueNode node.

#visit_rest_parameter_node

Visit a RestParameterNode node.

#visit_retry_node

Visit a RetryNode node.

#visit_return_node

Visit a ReturnNode node.

#visit_self_node

Visit a SelfNode node.

#visit_shareable_constant_node

Visit a ShareableConstantNode node.

#visit_singleton_class_node

Visit a SingletonClassNode node.

#visit_source_encoding_node

Visit a SourceEncodingNode node.

#visit_source_file_node

Visit a SourceFileNode node.

#visit_source_line_node

Visit a SourceLineNode node.

#visit_splat_node

Visit a SplatNode node.

#visit_statements_node

Visit a StatementsNode node.

#visit_string_node

Visit a StringNode node.

#visit_super_node

Visit a SuperNode node.

#visit_symbol_node

Visit a SymbolNode node.

#visit_true_node

Visit a TrueNode node.

#visit_undef_node

Visit a UndefNode node.

#visit_unless_node

Visit a UnlessNode node.

#visit_until_node

Visit a UntilNode node.

#visit_when_node

Visit a WhenNode node.

#visit_while_node

Visit a WhileNode node.

#visit_x_string_node

Visit a XStringNode node.

#visit_yield_node

Visit a YieldNode node.

BasicVisitor - Inherited

#visit

Calls accept on the given node if it is not nil, which in turn should call back into this visitor by calling the appropriate visit_* method.

#visit_all

Visits each node in nodes by calling accept on each one.

#visit_child_nodes

Visits the child nodes of node by calling accept on each one.

Instance Method Details

#visit(node)

Visit an individual node.

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 32

def visit(node)
  node&.accept(self)
end

#visit_alias_global_variable_node(node)

Compile a AliasGlobalVariableNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 47

def visit_alias_global_variable_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_alias_method_node(node)

Compile a AliasMethodNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 52

def visit_alias_method_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_all(nodes)

Visit a list of nodes.

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 37

def visit_all(nodes)
  nodes.map { |node| node&.accept(self) }
end

#visit_alternation_pattern_node(node)

Compile a AlternationPatternNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 57

def visit_alternation_pattern_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_and_node(node)

Compile a AndNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 62

def visit_and_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_arguments_node(node)

Compile a ArgumentsNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 67

def visit_arguments_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_array_node(node)

Compile a ArrayNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 72

def visit_array_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_array_pattern_node(node)

Compile a ArrayPatternNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 77

def visit_array_pattern_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_assoc_node(node)

Compile a AssocNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 82

def visit_assoc_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_assoc_splat_node(node)

Compile a AssocSplatNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 87

def visit_assoc_splat_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_back_reference_read_node(node)

Compile a BackReferenceReadNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 92

def visit_back_reference_read_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_begin_node(node)

Compile a BeginNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 97

def visit_begin_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_block_argument_node(node)

Compile a BlockArgumentNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 102

def visit_block_argument_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_block_local_variable_node(node)

Compile a BlockLocalVariableNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 107

def visit_block_local_variable_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_block_node(node)

Compile a BlockNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 112

def visit_block_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_block_parameter_node(node)

Compile a BlockParameterNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 117

def visit_block_parameter_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_block_parameters_node(node)

Compile a BlockParametersNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 122

def visit_block_parameters_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_break_node(node)

Compile a BreakNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 127

def visit_break_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_call_and_write_node(node)

Compile a CallAndWriteNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 132

def visit_call_and_write_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_call_node(node)

Compile a CallNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 137

def visit_call_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_call_operator_write_node(node)

Compile a CallOperatorWriteNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 142

def visit_call_operator_write_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_call_or_write_node(node)

Compile a CallOrWriteNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 147

def visit_call_or_write_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_call_target_node(node)

Compile a CallTargetNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 152

def visit_call_target_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_capture_pattern_node(node)

Compile a CapturePatternNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 157

def visit_capture_pattern_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_case_match_node(node)

Compile a CaseMatchNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 162

def visit_case_match_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_case_node(node)

Compile a CaseNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 167

def visit_case_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_child_nodes(node)

Visit the child nodes of the given node.

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 42

def visit_child_nodes(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_class_node(node)

Compile a ClassNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 172

def visit_class_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_class_variable_and_write_node(node)

Compile a ClassVariableAndWriteNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 177

def visit_class_variable_and_write_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_class_variable_operator_write_node(node)

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 182

def visit_class_variable_operator_write_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_class_variable_or_write_node(node)

Compile a ClassVariableOrWriteNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 187

def visit_class_variable_or_write_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_class_variable_read_node(node)

Compile a ClassVariableReadNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 192

def visit_class_variable_read_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_class_variable_target_node(node)

Compile a ClassVariableTargetNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 197

def visit_class_variable_target_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_class_variable_write_node(node)

Compile a ClassVariableWriteNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 202

def visit_class_variable_write_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_constant_and_write_node(node)

Compile a ConstantAndWriteNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 207

def visit_constant_and_write_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_constant_operator_write_node(node)

Compile a ConstantOperatorWriteNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 212

def visit_constant_operator_write_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_constant_or_write_node(node)

Compile a ConstantOrWriteNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 217

def visit_constant_or_write_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_constant_path_and_write_node(node)

Compile a ConstantPathAndWriteNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 222

def visit_constant_path_and_write_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_constant_path_node(node)

Compile a ConstantPathNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 227

def visit_constant_path_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_constant_path_operator_write_node(node)

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 232

def visit_constant_path_operator_write_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_constant_path_or_write_node(node)

Compile a ConstantPathOrWriteNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 237

def visit_constant_path_or_write_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_constant_path_target_node(node)

Compile a ConstantPathTargetNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 242

def visit_constant_path_target_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_constant_path_write_node(node)

Compile a ConstantPathWriteNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 247

def visit_constant_path_write_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_constant_read_node(node)

Compile a ConstantReadNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 252

def visit_constant_read_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_constant_target_node(node)

Compile a ConstantTargetNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 257

def visit_constant_target_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_constant_write_node(node)

Compile a ConstantWriteNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 262

def visit_constant_write_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_def_node(node)

Compile a DefNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 267

def visit_def_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_defined_node(node)

Compile a DefinedNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 272

def visit_defined_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_else_node(node)

Compile a ElseNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 277

def visit_else_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_embedded_statements_node(node)

Compile a EmbeddedStatementsNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 282

def visit_embedded_statements_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_embedded_variable_node(node)

Compile a EmbeddedVariableNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 287

def visit_embedded_variable_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_ensure_node(node)

Compile a EnsureNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 292

def visit_ensure_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_false_node(node)

Compile a FalseNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 297

def visit_false_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_find_pattern_node(node)

Compile a FindPatternNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 302

def visit_find_pattern_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_flip_flop_node(node)

Compile a FlipFlopNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 307

def visit_flip_flop_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_float_node(node)

Compile a FloatNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 312

def visit_float_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_for_node(node)

Compile a ForNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 317

def visit_for_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_forwarding_arguments_node(node)

Compile a ForwardingArgumentsNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 322

def visit_forwarding_arguments_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_forwarding_parameter_node(node)

Compile a ForwardingParameterNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 327

def visit_forwarding_parameter_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_forwarding_super_node(node)

Compile a ForwardingSuperNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 332

def visit_forwarding_super_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_global_variable_and_write_node(node)

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 337

def visit_global_variable_and_write_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_global_variable_operator_write_node(node)

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 342

def visit_global_variable_operator_write_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_global_variable_or_write_node(node)

Compile a GlobalVariableOrWriteNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 347

def visit_global_variable_or_write_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_global_variable_read_node(node)

Compile a GlobalVariableReadNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 352

def visit_global_variable_read_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_global_variable_target_node(node)

Compile a GlobalVariableTargetNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 357

def visit_global_variable_target_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_global_variable_write_node(node)

Compile a GlobalVariableWriteNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 362

def visit_global_variable_write_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_hash_node(node)

Compile a HashNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 367

def visit_hash_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_hash_pattern_node(node)

Compile a HashPatternNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 372

def visit_hash_pattern_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_if_node(node)

Compile a IfNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 377

def visit_if_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_imaginary_node(node)

Compile a ImaginaryNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 382

def visit_imaginary_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_implicit_node(node)

Compile a ImplicitNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 387

def visit_implicit_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_implicit_rest_node(node)

Compile a ImplicitRestNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 392

def visit_implicit_rest_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_in_node(node)

Compile a InNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 397

def visit_in_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_index_and_write_node(node)

Compile a IndexAndWriteNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 402

def visit_index_and_write_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_index_operator_write_node(node)

Compile a IndexOperatorWriteNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 407

def visit_index_operator_write_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_index_or_write_node(node)

Compile a IndexOrWriteNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 412

def visit_index_or_write_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_index_target_node(node)

Compile a IndexTargetNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 417

def visit_index_target_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_instance_variable_and_write_node(node)

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 422

def visit_instance_variable_and_write_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_instance_variable_operator_write_node(node)

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 427

def visit_instance_variable_operator_write_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_instance_variable_or_write_node(node)

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 432

def visit_instance_variable_or_write_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_instance_variable_read_node(node)

Compile a InstanceVariableReadNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 437

def visit_instance_variable_read_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_instance_variable_target_node(node)

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 442

def visit_instance_variable_target_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_instance_variable_write_node(node)

Compile a InstanceVariableWriteNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 447

def visit_instance_variable_write_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_integer_node(node)

Compile a IntegerNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 452

def visit_integer_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_interpolated_match_last_line_node(node)

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 457

def visit_interpolated_match_last_line_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_interpolated_regular_expression_node(node)

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 462

def visit_interpolated_regular_expression_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_interpolated_string_node(node)

Compile a InterpolatedStringNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 467

def visit_interpolated_string_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_interpolated_symbol_node(node)

Compile a InterpolatedSymbolNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 472

def visit_interpolated_symbol_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_interpolated_x_string_node(node)

Compile a InterpolatedXStringNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 477

def visit_interpolated_x_string_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_it_local_variable_read_node(node)

Compile a ItLocalVariableReadNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 482

def visit_it_local_variable_read_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_it_parameters_node(node)

Compile a ItParametersNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 487

def visit_it_parameters_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_keyword_hash_node(node)

Compile a KeywordHashNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 492

def visit_keyword_hash_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_keyword_rest_parameter_node(node)

Compile a KeywordRestParameterNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 497

def visit_keyword_rest_parameter_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_lambda_node(node)

Compile a LambdaNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 502

def visit_lambda_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_local_variable_and_write_node(node)

Compile a LocalVariableAndWriteNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 507

def visit_local_variable_and_write_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_local_variable_operator_write_node(node)

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 512

def visit_local_variable_operator_write_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_local_variable_or_write_node(node)

Compile a LocalVariableOrWriteNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 517

def visit_local_variable_or_write_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_local_variable_read_node(node)

Compile a LocalVariableReadNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 522

def visit_local_variable_read_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_local_variable_target_node(node)

Compile a LocalVariableTargetNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 527

def visit_local_variable_target_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_local_variable_write_node(node)

Compile a LocalVariableWriteNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 532

def visit_local_variable_write_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_match_last_line_node(node)

Compile a MatchLastLineNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 537

def visit_match_last_line_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_match_predicate_node(node)

Compile a MatchPredicateNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 542

def visit_match_predicate_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_match_required_node(node)

Compile a MatchRequiredNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 547

def visit_match_required_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_match_write_node(node)

Compile a MatchWriteNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 552

def visit_match_write_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_missing_node(node)

Compile a MissingNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 557

def visit_missing_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_module_node(node)

Compile a ModuleNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 562

def visit_module_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_multi_target_node(node)

Compile a MultiTargetNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 567

def visit_multi_target_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_multi_write_node(node)

Compile a MultiWriteNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 572

def visit_multi_write_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_next_node(node)

Compile a NextNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 577

def visit_next_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_nil_node(node)

Compile a NilNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 582

def visit_nil_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_no_keywords_parameter_node(node)

Compile a NoKeywordsParameterNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 587

def visit_no_keywords_parameter_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_numbered_parameters_node(node)

Compile a NumberedParametersNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 592

def visit_numbered_parameters_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_numbered_reference_read_node(node)

Compile a NumberedReferenceReadNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 597

def visit_numbered_reference_read_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_optional_keyword_parameter_node(node)

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 602

def visit_optional_keyword_parameter_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_optional_parameter_node(node)

Compile a OptionalParameterNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 607

def visit_optional_parameter_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_or_node(node)

Compile a OrNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 612

def visit_or_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_parameters_node(node)

Compile a ParametersNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 617

def visit_parameters_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_parentheses_node(node)

Compile a ParenthesesNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 622

def visit_parentheses_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_pinned_expression_node(node)

Compile a PinnedExpressionNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 627

def visit_pinned_expression_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_pinned_variable_node(node)

Compile a PinnedVariableNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 632

def visit_pinned_variable_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_post_execution_node(node)

Compile a PostExecutionNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 637

def visit_post_execution_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_pre_execution_node(node)

Compile a PreExecutionNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 642

def visit_pre_execution_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_program_node(node)

Compile a ProgramNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 647

def visit_program_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_range_node(node)

Compile a RangeNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 652

def visit_range_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_rational_node(node)

Compile a RationalNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 657

def visit_rational_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_redo_node(node)

Compile a RedoNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 662

def visit_redo_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_regular_expression_node(node)

Compile a RegularExpressionNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 667

def visit_regular_expression_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_required_keyword_parameter_node(node)

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 672

def visit_required_keyword_parameter_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_required_parameter_node(node)

Compile a RequiredParameterNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 677

def visit_required_parameter_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_rescue_modifier_node(node)

Compile a RescueModifierNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 682

def visit_rescue_modifier_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_rescue_node(node)

Compile a RescueNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 687

def visit_rescue_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_rest_parameter_node(node)

Compile a RestParameterNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 692

def visit_rest_parameter_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_retry_node(node)

Compile a RetryNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 697

def visit_retry_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_return_node(node)

Compile a ReturnNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 702

def visit_return_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_self_node(node)

Compile a SelfNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 707

def visit_self_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_shareable_constant_node(node)

Compile a ShareableConstantNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 712

def visit_shareable_constant_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_singleton_class_node(node)

Compile a SingletonClassNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 717

def visit_singleton_class_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_source_encoding_node(node)

Compile a SourceEncodingNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 722

def visit_source_encoding_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_source_file_node(node)

Compile a SourceFileNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 727

def visit_source_file_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_source_line_node(node)

Compile a SourceLineNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 732

def visit_source_line_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_splat_node(node)

Compile a SplatNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 737

def visit_splat_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_statements_node(node)

Compile a StatementsNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 742

def visit_statements_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_string_node(node)

Compile a StringNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 747

def visit_string_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_super_node(node)

Compile a SuperNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 752

def visit_super_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_symbol_node(node)

Compile a SymbolNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 757

def visit_symbol_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_true_node(node)

Compile a TrueNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 762

def visit_true_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_undef_node(node)

Compile a UndefNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 767

def visit_undef_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_unless_node(node)

Compile a UnlessNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 772

def visit_unless_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_until_node(node)

Compile a UntilNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 777

def visit_until_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_when_node(node)

Compile a WhenNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 782

def visit_when_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_while_node(node)

Compile a WhileNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 787

def visit_while_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_x_string_node(node)

Compile a XStringNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 792

def visit_x_string_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end

#visit_yield_node(node)

Compile a YieldNode node

[ GitHub ]

  
# File 'lib/prism/compiler.rb', line 797

def visit_yield_node(node)
  node.each_child_node.map { |node| node.accept(self) }
end