123456789_123456789_123456789_123456789_123456789_

Class: Prism::DesugarCompiler

Relationships & Source Files
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
Instance Chain:
Inherits: Prism::MutationCompiler
Defined in: lib/prism/desugar_compiler.rb

Overview

DesugarCompiler is a compiler that desugars Ruby code into a more primitive form. This is useful for consumers that want to deal with fewer node types.

Instance Method Summary

MutationCompiler - Inherited

#visit_alias_global_variable_node
#visit_alias_method_node

Copy a AliasMethodNode node.

#visit_alternation_pattern_node
#visit_and_node

Copy a AndNode node.

#visit_arguments_node

Copy a ArgumentsNode node.

#visit_array_node

Copy a ArrayNode node.

#visit_array_pattern_node

Copy a ArrayPatternNode node.

#visit_assoc_node

Copy a AssocNode node.

#visit_assoc_splat_node

Copy a AssocSplatNode node.

#visit_back_reference_read_node
#visit_begin_node

Copy a BeginNode node.

#visit_block_argument_node

Copy a BlockArgumentNode node.

#visit_block_local_variable_node
#visit_block_node

Copy a BlockNode node.

#visit_block_parameter_node

Copy a BlockParameterNode node.

#visit_block_parameters_node

Copy a BlockParametersNode node.

#visit_break_node

Copy a BreakNode node.

#visit_call_and_write_node

Copy a CallAndWriteNode node.

#visit_call_node

Copy a CallNode node.

#visit_call_operator_write_node
#visit_call_or_write_node

Copy a CallOrWriteNode node.

#visit_call_target_node

Copy a CallTargetNode node.

#visit_capture_pattern_node

Copy a CapturePatternNode node.

#visit_case_match_node

Copy a CaseMatchNode node.

#visit_case_node

Copy a CaseNode node.

#visit_class_node

Copy 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_class_variable_target_node
#visit_class_variable_write_node
#visit_constant_and_write_node
#visit_constant_operator_write_node
#visit_constant_or_write_node

Copy a ConstantOrWriteNode node.

#visit_constant_path_and_write_node
#visit_constant_path_node

Copy 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_constant_read_node

Copy a ConstantReadNode node.

#visit_constant_target_node

Copy a ConstantTargetNode node.

#visit_constant_write_node

Copy a ConstantWriteNode node.

#visit_def_node

Copy a DefNode node.

#visit_defined_node

Copy a DefinedNode node.

#visit_else_node

Copy a ElseNode node.

#visit_embedded_statements_node
#visit_embedded_variable_node
#visit_ensure_node

Copy a EnsureNode node.

#visit_false_node

Copy a FalseNode node.

#visit_find_pattern_node

Copy a FindPatternNode node.

#visit_flip_flop_node

Copy a FlipFlopNode node.

#visit_float_node

Copy a FloatNode node.

#visit_for_node

Copy a ForNode node.

#visit_forwarding_arguments_node
#visit_forwarding_parameter_node
#visit_forwarding_super_node

Copy 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

Copy a HashNode node.

#visit_hash_pattern_node

Copy a HashPatternNode node.

#visit_if_node

Copy a IfNode node.

#visit_imaginary_node

Copy a ImaginaryNode node.

#visit_implicit_node

Copy a ImplicitNode node.

#visit_implicit_rest_node

Copy a ImplicitRestNode node.

#visit_in_node

Copy a InNode node.

#visit_index_and_write_node

Copy a IndexAndWriteNode node.

#visit_index_operator_write_node
#visit_index_or_write_node

Copy a IndexOrWriteNode node.

#visit_index_target_node

Copy 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

Copy 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

Copy a ItParametersNode node.

#visit_keyword_hash_node

Copy a KeywordHashNode node.

#visit_keyword_rest_parameter_node
#visit_lambda_node

Copy 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_local_variable_target_node
#visit_local_variable_write_node
#visit_match_last_line_node

Copy a MatchLastLineNode node.

#visit_match_predicate_node

Copy a MatchPredicateNode node.

#visit_match_required_node

Copy a MatchRequiredNode node.

#visit_match_write_node

Copy a MatchWriteNode node.

#visit_missing_node

Copy a MissingNode node.

#visit_module_node

Copy a ModuleNode node.

#visit_multi_target_node

Copy a MultiTargetNode node.

#visit_multi_write_node

Copy a MultiWriteNode node.

#visit_next_node

Copy a NextNode node.

#visit_nil_node

Copy 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_or_node

Copy a OrNode node.

#visit_parameters_node

Copy a ParametersNode node.

#visit_parentheses_node

Copy a ParenthesesNode node.

#visit_pinned_expression_node
#visit_pinned_variable_node

Copy a PinnedVariableNode node.

#visit_post_execution_node

Copy a PostExecutionNode node.

#visit_pre_execution_node

Copy a PreExecutionNode node.

#visit_program_node

Copy a ProgramNode node.

#visit_range_node

Copy a RangeNode node.

#visit_rational_node

Copy a RationalNode node.

#visit_redo_node

Copy a RedoNode node.

#visit_regular_expression_node
#visit_required_keyword_parameter_node
#visit_required_parameter_node
#visit_rescue_modifier_node

Copy a RescueModifierNode node.

#visit_rescue_node

Copy a RescueNode node.

#visit_rest_parameter_node

Copy a RestParameterNode node.

#visit_retry_node

Copy a RetryNode node.

#visit_return_node

Copy a ReturnNode node.

#visit_self_node

Copy a SelfNode node.

#visit_shareable_constant_node
#visit_singleton_class_node

Copy a SingletonClassNode node.

#visit_source_encoding_node

Copy a SourceEncodingNode node.

#visit_source_file_node

Copy a SourceFileNode node.

#visit_source_line_node

Copy a SourceLineNode node.

#visit_splat_node

Copy a SplatNode node.

#visit_statements_node

Copy a StatementsNode node.

#visit_string_node

Copy a StringNode node.

#visit_super_node

Copy a SuperNode node.

#visit_symbol_node

Copy a SymbolNode node.

#visit_true_node

Copy a TrueNode node.

#visit_undef_node

Copy a UndefNode node.

#visit_unless_node

Copy a UnlessNode node.

#visit_until_node

Copy a UntilNode node.

#visit_when_node

Copy a WhenNode node.

#visit_while_node

Copy a WhileNode node.

#visit_x_string_node

Copy a XStringNode node.

#visit_yield_node

Copy a YieldNode node.

Compiler - Inherited

#visit

Visit an individual node.

#visit_alias_global_variable_node

Compile a AliasGlobalVariableNode node.

#visit_alias_method_node

Compile a AliasMethodNode node.

#visit_all

Visit a list of nodes.

#visit_alternation_pattern_node

Compile a AlternationPatternNode node.

#visit_and_node

Compile a AndNode node.

#visit_arguments_node

Compile a ArgumentsNode node.

#visit_array_node

Compile a ArrayNode node.

#visit_array_pattern_node

Compile a ArrayPatternNode node.

#visit_assoc_node

Compile a AssocNode node.

#visit_assoc_splat_node

Compile a AssocSplatNode node.

#visit_back_reference_read_node

Compile a BackReferenceReadNode node.

#visit_begin_node

Compile a BeginNode node.

#visit_block_argument_node

Compile a BlockArgumentNode node.

#visit_block_local_variable_node

Compile a BlockLocalVariableNode node.

#visit_block_node

Compile a BlockNode node.

#visit_block_parameter_node

Compile a BlockParameterNode node.

#visit_block_parameters_node

Compile a BlockParametersNode node.

#visit_break_node

Compile a BreakNode node.

#visit_call_and_write_node

Compile a CallAndWriteNode node.

#visit_call_node

Compile a CallNode node.

#visit_call_operator_write_node

Compile a CallOperatorWriteNode node.

#visit_call_or_write_node

Compile a CallOrWriteNode node.

#visit_call_target_node

Compile a CallTargetNode node.

#visit_capture_pattern_node

Compile a CapturePatternNode node.

#visit_case_match_node

Compile a CaseMatchNode node.

#visit_case_node

Compile a CaseNode node.

#visit_child_nodes

Visit the child nodes of the given node.

#visit_class_node

Compile a ClassNode node.

#visit_class_variable_and_write_node
#visit_class_variable_operator_write_node
#visit_class_variable_or_write_node

Compile a ClassVariableOrWriteNode node.

#visit_class_variable_read_node

Compile a ClassVariableReadNode node.

#visit_class_variable_target_node

Compile a ClassVariableTargetNode node.

#visit_class_variable_write_node

Compile a ClassVariableWriteNode node.

#visit_constant_and_write_node

Compile a ConstantAndWriteNode node.

#visit_constant_operator_write_node
#visit_constant_or_write_node

Compile a ConstantOrWriteNode node.

#visit_constant_path_and_write_node

Compile a ConstantPathAndWriteNode node.

#visit_constant_path_node

Compile a ConstantPathNode node.

#visit_constant_path_operator_write_node
#visit_constant_path_or_write_node

Compile a ConstantPathOrWriteNode node.

#visit_constant_path_target_node

Compile a ConstantPathTargetNode node.

#visit_constant_path_write_node

Compile a ConstantPathWriteNode node.

#visit_constant_read_node

Compile a ConstantReadNode node.

#visit_constant_target_node

Compile a ConstantTargetNode node.

#visit_constant_write_node

Compile a ConstantWriteNode node.

#visit_def_node

Compile a DefNode node.

#visit_defined_node

Compile a DefinedNode node.

#visit_else_node

Compile a ElseNode node.

#visit_embedded_statements_node

Compile a EmbeddedStatementsNode node.

#visit_embedded_variable_node

Compile a EmbeddedVariableNode node.

#visit_ensure_node

Compile a EnsureNode node.

#visit_false_node

Compile a FalseNode node.

#visit_find_pattern_node

Compile a FindPatternNode node.

#visit_flip_flop_node

Compile a FlipFlopNode node.

#visit_float_node

Compile a FloatNode node.

#visit_for_node

Compile a ForNode node.

#visit_forwarding_arguments_node

Compile a ForwardingArgumentsNode node.

#visit_forwarding_parameter_node

Compile a ForwardingParameterNode node.

#visit_forwarding_super_node

Compile 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

Compile a GlobalVariableReadNode node.

#visit_global_variable_target_node

Compile a GlobalVariableTargetNode node.

#visit_global_variable_write_node

Compile a GlobalVariableWriteNode node.

#visit_hash_node

Compile a HashNode node.

#visit_hash_pattern_node

Compile a HashPatternNode node.

#visit_if_node

Compile a IfNode node.

#visit_imaginary_node

Compile a ImaginaryNode node.

#visit_implicit_node

Compile a ImplicitNode node.

#visit_implicit_rest_node

Compile a ImplicitRestNode node.

#visit_in_node

Compile a InNode node.

#visit_index_and_write_node

Compile a IndexAndWriteNode node.

#visit_index_operator_write_node

Compile a IndexOperatorWriteNode node.

#visit_index_or_write_node

Compile a IndexOrWriteNode node.

#visit_index_target_node

Compile 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

Compile a InstanceVariableReadNode node.

#visit_instance_variable_target_node
#visit_instance_variable_write_node
#visit_integer_node

Compile a IntegerNode node.

#visit_interpolated_match_last_line_node
#visit_interpolated_regular_expression_node
#visit_interpolated_string_node

Compile a InterpolatedStringNode node.

#visit_interpolated_symbol_node

Compile a InterpolatedSymbolNode node.

#visit_interpolated_x_string_node

Compile a InterpolatedXStringNode node.

#visit_it_local_variable_read_node

Compile a ItLocalVariableReadNode node.

#visit_it_parameters_node

Compile a ItParametersNode node.

#visit_keyword_hash_node

Compile a KeywordHashNode node.

#visit_keyword_rest_parameter_node

Compile a KeywordRestParameterNode node.

#visit_lambda_node

Compile a LambdaNode node.

#visit_local_variable_and_write_node
#visit_local_variable_operator_write_node
#visit_local_variable_or_write_node

Compile a LocalVariableOrWriteNode node.

#visit_local_variable_read_node

Compile a LocalVariableReadNode node.

#visit_local_variable_target_node

Compile a LocalVariableTargetNode node.

#visit_local_variable_write_node

Compile a LocalVariableWriteNode node.

#visit_match_last_line_node

Compile a MatchLastLineNode node.

#visit_match_predicate_node

Compile a MatchPredicateNode node.

#visit_match_required_node

Compile a MatchRequiredNode node.

#visit_match_write_node

Compile a MatchWriteNode node.

#visit_missing_node

Compile a MissingNode node.

#visit_module_node

Compile a ModuleNode node.

#visit_multi_target_node

Compile a MultiTargetNode node.

#visit_multi_write_node

Compile a MultiWriteNode node.

#visit_next_node

Compile a NextNode node.

#visit_nil_node

Compile a NilNode node.

#visit_no_keywords_parameter_node

Compile a NoKeywordsParameterNode node.

#visit_numbered_parameters_node

Compile a NumberedParametersNode node.

#visit_numbered_reference_read_node
#visit_optional_keyword_parameter_node
#visit_optional_parameter_node

Compile a OptionalParameterNode node.

#visit_or_node

Compile a OrNode node.

#visit_parameters_node

Compile a ParametersNode node.

#visit_parentheses_node

Compile a ParenthesesNode node.

#visit_pinned_expression_node

Compile a PinnedExpressionNode node.

#visit_pinned_variable_node

Compile a PinnedVariableNode node.

#visit_post_execution_node

Compile a PostExecutionNode node.

#visit_pre_execution_node

Compile a PreExecutionNode node.

#visit_program_node

Compile a ProgramNode node.

#visit_range_node

Compile a RangeNode node.

#visit_rational_node

Compile a RationalNode node.

#visit_redo_node

Compile a RedoNode node.

#visit_regular_expression_node

Compile a RegularExpressionNode node.

#visit_required_keyword_parameter_node
#visit_required_parameter_node

Compile a RequiredParameterNode node.

#visit_rescue_modifier_node

Compile a RescueModifierNode node.

#visit_rescue_node

Compile a RescueNode node.

#visit_rest_parameter_node

Compile a RestParameterNode node.

#visit_retry_node

Compile a RetryNode node.

#visit_return_node

Compile a ReturnNode node.

#visit_self_node

Compile a SelfNode node.

#visit_shareable_constant_node

Compile a ShareableConstantNode node.

#visit_singleton_class_node

Compile a SingletonClassNode node.

#visit_source_encoding_node

Compile a SourceEncodingNode node.

#visit_source_file_node

Compile a SourceFileNode node.

#visit_source_line_node

Compile a SourceLineNode node.

#visit_splat_node

Compile a SplatNode node.

#visit_statements_node

Compile a StatementsNode node.

#visit_string_node

Compile a StringNode node.

#visit_super_node

Compile a SuperNode node.

#visit_symbol_node

Compile a SymbolNode node.

#visit_true_node

Compile a TrueNode node.

#visit_undef_node

Compile a UndefNode node.

#visit_unless_node

Compile a UnlessNode node.

#visit_until_node

Compile a UntilNode node.

#visit_when_node

Compile a WhenNode node.

#visit_while_node

Compile a WhileNode node.

#visit_x_string_node

Compile a XStringNode node.

#visit_yield_node

Compile a YieldNode node.

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_class_variable_and_write_node(node)

@@foo &&= bar

becomes

@@foo && @@foo = bar

[ GitHub ]

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

def visit_class_variable_and_write_node(node)
  node.desugar
end

#visit_class_variable_operator_write_node(node)

@@foo += bar

becomes

@@foo = @@foo + bar

[ GitHub ]

  
# File 'lib/prism/desugar_compiler.rb', line 280

def visit_class_variable_operator_write_node(node)
  node.desugar
end

#visit_class_variable_or_write_node(node)

@@foo ||= bar

becomes

defined?(@@foo) ? @@foo : @@foo = bar

[ GitHub ]

  
# File 'lib/prism/desugar_compiler.rb', line 271

def visit_class_variable_or_write_node(node)
  node.desugar
end

#visit_constant_and_write_node(node)

Foo &&= bar

becomes

Foo && Foo = bar

[ GitHub ]

  
# File 'lib/prism/desugar_compiler.rb', line 289

def visit_constant_and_write_node(node)
  node.desugar
end

#visit_constant_operator_write_node(node)

Foo += bar

becomes

Foo = Foo + bar

[ GitHub ]

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

def visit_constant_operator_write_node(node)
  node.desugar
end

#visit_constant_or_write_node(node)

Foo ||= bar

becomes

defined?(Foo) ? Foo : Foo = bar

[ GitHub ]

  
# File 'lib/prism/desugar_compiler.rb', line 298

def visit_constant_or_write_node(node)
  node.desugar
end

#visit_global_variable_and_write_node(node)

$foo &&= bar

becomes

$foo && $foo = bar

[ GitHub ]

  
# File 'lib/prism/desugar_compiler.rb', line 316

def visit_global_variable_and_write_node(node)
  node.desugar
end

#visit_global_variable_operator_write_node(node)

$foo += bar

becomes

$foo = $foo + bar

[ GitHub ]

  
# File 'lib/prism/desugar_compiler.rb', line 334

def visit_global_variable_operator_write_node(node)
  node.desugar
end

#visit_global_variable_or_write_node(node)

$foo ||= bar

becomes

defined?($foo) ? $foo : $foo = bar

[ GitHub ]

  
# File 'lib/prism/desugar_compiler.rb', line 325

def visit_global_variable_or_write_node(node)
  node.desugar
end

#visit_instance_variable_and_write_node(node)

becomes

[ GitHub ]

  
# File 'lib/prism/desugar_compiler.rb', line 343

def visit_instance_variable_and_write_node(node)
  node.desugar
end

#visit_instance_variable_operator_write_node(node)

becomes

[ GitHub ]

  
# File 'lib/prism/desugar_compiler.rb', line 361

def visit_instance_variable_operator_write_node(node)
  node.desugar
end

#visit_instance_variable_or_write_node(node)

becomes

[ GitHub ]

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

def visit_instance_variable_or_write_node(node)
  node.desugar
end

#visit_local_variable_and_write_node(node)

foo &&= bar

becomes

foo && foo = bar

[ GitHub ]

  
# File 'lib/prism/desugar_compiler.rb', line 370

def visit_local_variable_and_write_node(node)
  node.desugar
end

#visit_local_variable_operator_write_node(node)

foo += bar

becomes

foo = foo + bar

[ GitHub ]

  
# File 'lib/prism/desugar_compiler.rb', line 388

def visit_local_variable_operator_write_node(node)
  node.desugar
end

#visit_local_variable_or_write_node(node)

foo ||= bar

becomes

foo || foo = bar

[ GitHub ]

  
# File 'lib/prism/desugar_compiler.rb', line 379

def visit_local_variable_or_write_node(node)
  node.desugar
end