Skip to content
On this page
class · Ruby 4.0

Prism::Translation::Ripper

< Prism::Compiler 181 instance methods 5 class methods

This class provides a compatibility layer between prism and Ripper. It functions by parsing the entire tree first and then walking it and executing each of the Ripper callbacks as it goes. To use this class, you treat Prism::Translation::Ripper effectively as you would treat the Ripper class.

Note that this class will serve the most common use cases, but Ripper’s API is extensive and undocumented. It relies on reporting the state of the parser at any given time. We do our best to replicate that here, but because it is a different architecture it is not possible to perfectly replicate the behavior of Ripper.

The main known difference is that we may omit dispatching some events in some cases. This impacts the following events:

  • on_assign_error

  • on_comma

  • on_ignored_nl

  • on_ignored_sp

  • on_kw

  • on_label_end

  • on_lbrace

  • on_lbracket

  • on_lparen

  • on_nl

  • on_op

  • on_operator_ambiguous

  • on_rbrace

  • on_rbracket

  • on_rparen

  • on_semicolon

  • on_sp

  • on_symbeg

  • on_tstring_beg

  • on_tstring_end

Class methods 5

Instance methods 181

#bounds #command? #compile_error #dedent_string #error? #parse #result #trailing_comma? #visit_alias_global_variable_node #visit_alias_global_variable_node_value #visit_alias_method_node #visit_alternation_pattern_node #visit_and_node #visit_arguments #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_begin_node_clauses #visit_block_argument_node #visit_block_local_variable_node #visit_block_node #visit_block_parameter_node #visit_block_parameters_node #visit_body_node #visit_break_node #visit_call_and_write_node #visit_call_node #visit_call_node_arguments #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_path_write_node_target #visit_constant_read_node #visit_constant_target_node #visit_constant_write_node #visit_defined_node #visit_def_node #visit_destructured_parameter_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_heredoc_node #visit_heredoc_node_whitespace #visit_heredoc_string_node #visit_heredoc_x_string_node #visit_if_node #visit_imaginary_node #visit_implicit_node #visit_implicit_rest_node #visit_index_and_write_node #visit_index_operator_write_node #visit_index_or_write_node #visit_index_target_node #visit_in_node #visit_instance_variable_and_write_node #visit_instance_variable_operator_write_node #visit_instance_variable_or_write_node #visit_instance_variable_read_node #visit_instance_variable_target_node #visit_instance_variable_write_node #visit_integer_node #visit_interpolated_match_last_line_node #visit_interpolated_regular_expression_node #visit_interpolated_string_node #visit_interpolated_symbol_node #visit_interpolated_x_string_node #visit_it_local_variable_read_node #visit_it_parameters_node #visit_keyword_hash_node #visit_keyword_rest_parameter_node #visit_lambda_node #visit_local_variable_and_write_node #visit_local_variable_operator_write_node #visit_local_variable_or_write_node #visit_local_variable_read_node #visit_local_variable_target_node #visit_local_variable_write_node #visit_match_last_line_node #visit_match_predicate_node #visit_match_required_node #visit_match_write_node #visit_missing_node #visit_module_node #visit_multi_target_node #visit_multi_target_node_targets #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_number_node #visit_optional_keyword_parameter_node #visit_optional_parameter_node #visit_or_node #visit_parameters_node #visit_parentheses_node #visit_pattern_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_statements_node_body #visit_string_content #visit_string_node #visit_super_node #visit_symbol_node #visit_token #visit_true_node #visit_undef_node #visit_unless_node #visit_until_node #visit_when_node #visit_while_node #visit_words_sep #visit_write_value #visit_x_string_node #visit_yield_node #void_stmt? #warn #warning
Constants

A list of all of the Ruby binary operators.

This array contains name of all ripper events.

A list of all of the Ruby keywords.

This array contains name of parser events.

This contains a table of all of the parser events and their corresponding arity.

This array contains name of scanner events.

This contains a table of all of the scanner events and their corresponding arity.

Attributes
Read

The current column number of the parser.

Read

The filename of the source being parsed.

Read

The current line number of the parser.

Read

The source that is being parsed.