Spec-Zone.ru › Ruby 3.3

класс Prism::Compiler

Родитель:
Object

Компилятор — это посетитель, который возвращает значение каждого узла при его посещении. В отличие от посетителя, который только проходит по дереву. Это может быть полезно, когда вы пытаетесь скомпилировать дерево в другой формат.

Например, чтобы создать представление дерева в виде s-выражений, вы можете написать:

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]]]]]]]]

Общедоступные методы экземпляра

visit(node) Показать исходный код
# File lib/prism/compiler.rb, line 28
def visit(node)
  node&.accept(self)
end

Посещение отдельного узла.

visit_alias_global_variable_node(node)

Компиляция узла AliasGlobalVariableNode

Псевдоним для: visit_child_nodes
visit_alias_method_node(node)

Компиляция узла AliasMethodNode

Псевдоним для: visit_child_nodes
visit_all(nodes) Показать исходный код
# File lib/prism/compiler.rb, line 33
def visit_all(nodes)
  nodes.map { |node| node&.accept(self) }
end

Посещение списка узлов.

visit_alternation_pattern_node(node)

Компиляция узла AlternationPatternNode

Псевдоним для: visit_child_nodes
visit_and_node(node)

Компиляция узла AndNode

Псевдоним для: visit_child_nodes
visit_arguments_node(node)

Компиляция узла ArgumentsNode

Псевдоним для: visit_child_nodes
visit_array_node(node)

Компиляция узла ArrayNode

Псевдоним для: visit_child_nodes
visit_array_pattern_node(node)

Компиляция узла ArrayPatternNode

Псевдоним для: visit_child_nodes
visit_assoc_node(node)

Компиляция узла AssocNode

Псевдоним для: visit_child_nodes
visit_assoc_splat_node(node)

Компиляция узла AssocSplatNode

Псевдоним для: visit_child_nodes
visit_back_reference_read_node(node)

Компиляция узла BackReferenceReadNode

Псевдоним для: visit_child_nodes
visit_begin_node(node)

Компиляция узла BeginNode

Псевдоним для: visit_child_nodes
visit_block_argument_node(node)

Компиляция узла BlockArgumentNode

Псевдоним для: visit_child_nodes
visit_block_local_variable_node(node)

Компиляция узла BlockLocalVariableNode

Псевдоним для: visit_child_nodes
visit_block_node(node)

Компиляция узла BlockNode

Псевдоним для: visit_child_nodes
visit_block_parameter_node(node)

Компиляция узла BlockParameterNode

Псевдоним для: visit_child_nodes
visit_block_parameters_node(node)

Компиляция узла BlockParametersNode

Псевдоним для: visit_child_nodes
visit_break_node(node)

Компиляция узла BreakNode

Псевдоним для: visit_child_nodes
visit_call_and_write_node(node)

Компиляция узла CallAndWriteNode

Псевдоним для: visit_child_nodes
visit_call_node(node)

Компиляция узла CallNode

Псевдоним для: visit_child_nodes
visit_call_operator_write_node(node)

Компиляция узла CallOperatorWriteNode

Псевдоним для: visit_child_nodes
visit_call_or_write_node(node)

Компиляция узла CallOrWriteNode

Псевдоним для: visit_child_nodes
visit_call_target_node(node)

Компиляция узла CallTargetNode

Псевдоним для: visit_child_nodes
visit_capture_pattern_node(node)

Компиляция узла CapturePatternNode

Псевдоним для: visit_child_nodes
visit_case_match_node(node)

Компиляция узла CaseMatchNode

Псевдоним для: visit_child_nodes
visit_case_node(node)

Компиляция узла CaseNode

Псевдоним для: visit_child_nodes
visit_child_nodes(node) Показать исходный код
# File lib/prism/compiler.rb, line 38
def visit_child_nodes(node)
  node.compact_child_nodes.map { |node| node.accept(self) }
end

Обработка дочерних узлов заданного узла.

Также алиасы: 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_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_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_class_node(node)

Компилировать узел ClassNode

Alias for: visit_child_nodes
visit_class_variable_and_write_node(node)

Компилировать узел ClassVariableAndWriteNode

Alias for: visit_child_nodes
visit_class_variable_operator_write_node(node)

Компилировать узел ClassVariableOperatorWriteNode

Alias for: visit_child_nodes
visit_class_variable_or_write_node(node)

Компилировать узел ClassVariableOrWriteNode

Alias for: visit_child_nodes
visit_class_variable_read_node(node)

Компилировать узел ClassVariableReadNode

Alias for: visit_child_nodes
visit_class_variable_target_node(node)

Компилировать узел ClassVariableTargetNode

Alias for: visit_child_nodes
visit_class_variable_write_node(node)

Компилировать узел ClassVariableWriteNode

Alias for: visit_child_nodes
visit_constant_and_write_node(node)

Компилировать узел ConstantAndWriteNode

Alias for: visit_child_nodes
visit_constant_operator_write_node(node)

Компилировать узел ConstantOperatorWriteNode

Alias for: visit_child_nodes
visit_constant_or_write_node(node)

Компилировать узел ConstantOrWriteNode

Alias for: visit_child_nodes
visit_constant_path_and_write_node(node)

Компилировать узел ConstantPathAndWriteNode

Alias for: visit_child_nodes
visit_constant_path_node(node)

Компилировать узел ConstantPathNode

Alias for: visit_child_nodes
visit_constant_path_operator_write_node(node)

Компилировать узел ConstantPathOperatorWriteNode

Alias for: visit_child_nodes
visit_constant_path_or_write_node(node)

Компилировать узел ConstantPathOrWriteNode

Alias for: visit_child_nodes
visit_constant_path_target_node(node)

Компилировать узел ConstantPathTargetNode

Alias for: visit_child_nodes
visit_constant_path_write_node(node)

Компилировать узел ConstantPathWriteNode

Alias for: visit_child_nodes
visit_constant_read_node(node)

Компилировать узел ConstantReadNode

Alias for: visit_child_nodes
visit_constant_target_node(node)

Компилировать узел ConstantTargetNode

Alias for: visit_child_nodes
visit_constant_write_node(node)

Компилировать узел ConstantWriteNode

Alias for: visit_child_nodes
visit_def_node(node)

Компилировать узел DefNode

Alias for: visit_child_nodes
visit_defined_node(node)

Компилировать узел DefinedNode

Alias for: visit_child_nodes
visit_else_node(node)

Компилировать узел ElseNode

Alias for: visit_child_nodes
visit_embedded_statements_node(node)

Компилировать узел EmbeddedStatementsNode

Alias for: visit_child_nodes
visit_embedded_variable_node(node)

Компилировать узел EmbeddedVariableNode

Alias for: visit_child_nodes
visit_ensure_node(node)

Компилировать узел EnsureNode

Alias for: visit_child_nodes
visit_false_node(node)

Компилировать узел FalseNode

Alias for: visit_child_nodes
visit_find_pattern_node(node)

Компилировать узел FindPatternNode

Alias for: visit_child_nodes
visit_flip_flop_node(node)

Компилировать узел FlipFlopNode

Alias for: visit_child_nodes
visit_float_node(node)

Компилировать узел FloatNode

Alias for: visit_child_nodes
visit_for_node(node)

Компилировать узел ForNode

Alias for: visit_child_nodes
visit_forwarding_arguments_node(node)

Компилировать узел ForwardingArgumentsNode

Alias for: visit_child_nodes
visit_forwarding_parameter_node(node)

Компилировать узел ForwardingParameterNode

Alias for: visit_child_nodes
visit_forwarding_super_node(node)

Компилировать узел ForwardingSuperNode

Alias for: visit_child_nodes
visit_global_variable_and_write_node(node)

Компилировать узел GlobalVariableAndWriteNode

Alias for: visit_child_nodes
visit_global_variable_operator_write_node(node)

Компилировать узел GlobalVariableOperatorWriteNode

Alias for: visit_child_nodes
visit_global_variable_or_write_node(node)

Компилировать узел GlobalVariableOrWriteNode

Alias for: visit_child_nodes
visit_global_variable_read_node(node)

Компилировать узел GlobalVariableReadNode

Alias for: visit_child_nodes
visit_global_variable_target_node(node)

Компилировать узел GlobalVariableTargetNode

Alias for: visit_child_nodes
visit_global_variable_write_node(node)

Компилировать узел GlobalVariableWriteNode

Alias for: visit_child_nodes
visit_hash_node(node)

Компилировать узел HashNode

Alias for: visit_child_nodes
visit_hash_pattern_node(node)

Компилировать узел HashPatternNode

Alias for: visit_child_nodes
visit_if_node(node)

Компилировать узел IfNode

Alias for: visit_child_nodes
visit_imaginary_node(node)

Компилировать узел ImaginaryNode

Alias for: visit_child_nodes
visit_implicit_node(node)

Компилировать узел ImplicitNode

Alias for: visit_child_nodes
visit_implicit_rest_node(node)

Компилировать узел ImplicitRestNode

Alias for: visit_child_nodes
visit_in_node(node)

Компилировать узел InNode

Alias for: visit_child_nodes
visit_index_and_write_node(node)

Компилировать узел IndexAndWriteNode

Alias for: visit_child_nodes
visit_index_operator_write_node(node)

Компилировать узел IndexOperatorWriteNode

Alias for: visit_child_nodes
visit_index_or_write_node(node)

Компилировать узел IndexOrWriteNode

Alias for: visit_child_nodes
visit_index_target_node(node)

Компилировать узел IndexTargetNode

Alias for: visit_child_nodes
visit_instance_variable_and_write_node(node)

Компилировать узел InstanceVariableAndWriteNode

Alias for: visit_child_nodes
visit_instance_variable_operator_write_node(node)

Компилировать узел InstanceVariableOperatorWriteNode

Alias for: visit_child_nodes
visit_instance_variable_or_write_node(node)

Компилировать узел InstanceVariableOrWriteNode

Alias for: visit_child_nodes
visit_instance_variable_read_node(node)

Компилировать узел InstanceVariableReadNode

Alias for: visit_child_nodes
visit_instance_variable_target_node(node)

Компилировать узел InstanceVariableTargetNode

Alias for: visit_child_nodes
visit_instance_variable_write_node(node)

Компилировать узел InstanceVariableWriteNode

Alias for: visit_child_nodes
visit_integer_node(node)

Компилировать узел IntegerNode

Alias for: visit_child_nodes
visit_interpolated_match_last_line_node(node)

Компилировать узел InterpolatedMatchLastLineNode

Alias for: visit_child_nodes
visit_interpolated_regular_expression_node(node)

Компилировать узел InterpolatedRegularExpressionNode

Alias for: visit_child_nodes
visit_interpolated_string_node(node)

Компилировать узел InterpolatedStringNode

Alias for: visit_child_nodes
visit_interpolated_symbol_node(node)

Компилировать узел InterpolatedSymbolNode

Alias for: visit_child_nodes
visit_interpolated_x_string_node(node)

Компилировать узел InterpolatedXStringNode

Alias for: visit_child_nodes
visit_keyword_hash_node(node)

Компилировать узел KeywordHashNode

Alias for: visit_child_nodes
visit_keyword_rest_parameter_node(node)

Компилировать узел KeywordRestParameterNode

Alias for: visit_child_nodes
visit_lambda_node(node)

Компилировать узел LambdaNode

Alias for: visit_child_nodes
visit_local_variable_and_write_node(node)

Компилировать узел LocalVariableAndWriteNode

Alias for: visit_child_nodes
visit_local_variable_operator_write_node(node)

Компилировать узел LocalVariableOperatorWriteNode

Alias for: visit_child_nodes
visit_local_variable_or_write_node(node)

Компилировать узел LocalVariableOrWriteNode

Alias for: visit_child_nodes
visit_local_variable_read_node(node)

Компилировать узел LocalVariableReadNode

Alias for: visit_child_nodes
visit_local_variable_target_node(node)

Компилировать узел LocalVariableTargetNode

Alias for: visit_child_nodes
visit_local_variable_write_node(node)

Компилировать узел LocalVariableWriteNode

Alias for: visit_child_nodes
visit_match_last_line_node(node)

Компилировать узел MatchLastLineNode

Alias for: visit_child_nodes
visit_match_predicate_node(node)

Компилировать узел MatchPredicateNode

Alias for: visit_child_nodes
visit_match_required_node(node)

Компилировать узел MatchRequiredNode

Alias for: visit_child_nodes
visit_match_write_node(node)

Компилировать узел MatchWriteNode

Alias for: visit_child_nodes
visit_missing_node(node)

Компилировать узел MissingNode

Alias for: visit_child_nodes
visit_module_node(node)

Компилировать узел ModuleNode

Alias for: visit_child_nodes
visit_multi_target_node(node)

Компилировать узел MultiTargetNode

Alias for: visit_child_nodes
visit_multi_write_node(node)

Компилировать узел MultiWriteNode

Alias for: visit_child_nodes
visit_next_node(node)

Компилировать узел NextNode

Alias for: visit_child_nodes
visit_nil_node(node)

Компилировать узел NilNode

Alias for: visit_child_nodes
visit_no_keywords_parameter_node(node)

Компилировать узел NoKeywordsParameterNode

Alias for: visit_child_nodes
visit_numbered_parameters_node(node)

Компилировать узел NumberedParametersNode

Alias for: visit_child_nodes
visit_numbered_reference_read_node(node)

Компилировать узел NumberedReferenceReadNode

Alias for: visit_child_nodes
visit_optional_keyword_parameter_node(node)

Компилировать узел OptionalKeywordParameterNode

Alias for: visit_child_nodes
visit_optional_parameter_node(node)

Компилировать узел OptionalParameterNode

Alias for: visit_child_nodes
visit_or_node(node)

Компилировать узел OrNode

Alias for: visit_child_nodes
visit_parameters_node(node)

Компилировать узел ParametersNode

Alias for: visit_child_nodes
visit_parentheses_node(node)

Компилировать узел ParenthesesNode

Alias for: visit_child_nodes
visit_pinned_expression_node(node)

Компилировать узел PinnedExpressionNode

Alias for: visit_child_nodes
visit_pinned_variable_node(node)

Компилировать узел PinnedVariableNode

Alias for: visit_child_nodes
visit_post_execution_node(node)

Компилировать узел PostExecutionNode

Alias for: visit_child_nodes
visit_pre_execution_node(node)

Компилировать узел PreExecutionNode

Alias for: visit_child_nodes
END_OF_DOCUMENT_MARKER
visit_program_node(node)

Компилировать узел ProgramNode

Alias for: visit_child_nodes
visit_range_node(node)

Компилировать узел RangeNode

Alias for: visit_child_nodes
visit_rational_node(node)

Компилировать узел RationalNode

Alias for: visit_child_nodes
visit_redo_node(node)

Компилировать узел RedoNode

Alias for: visit_child_nodes
visit_regular_expression_node(node)

Компилировать узел RegularExpressionNode

Alias for: visit_child_nodes
visit_required_keyword_parameter_node(node)

Компилировать узел RequiredKeywordParameterNode

Alias for: visit_child_nodes
visit_required_parameter_node(node)

Компилировать узел RequiredParameterNode

Alias for: visit_child_nodes
visit_rescue_modifier_node(node)

Компилировать узел RescueModifierNode

Alias for: visit_child_nodes
visit_rescue_node(node)

Компилировать узел RescueNode

Alias for: visit_child_nodes
visit_rest_parameter_node(node)

Компилировать узел RestParameterNode

Alias for: visit_child_nodes
visit_retry_node(node)

Компилировать узел RetryNode

Alias for: visit_child_nodes
visit_return_node(node)

Компилировать узел ReturnNode

Alias for: visit_child_nodes
visit_self_node(node)

Компилировать узел SelfNode

Alias for: visit_child_nodes
visit_singleton_class_node(node)

Компилировать узел SingletonClassNode

Alias for: visit_child_nodes
visit_source_encoding_node(node)

Компилировать узел SourceEncodingNode

Alias for: visit_child_nodes
visit_source_file_node(node)

Компилировать узел SourceFileNode

Alias for: visit_child_nodes
visit_source_line_node(node)

Компилировать узел SourceLineNode

Alias for: visit_child_nodes
visit_splat_node(node)

Компилировать узел SplatNode

Alias for: visit_child_nodes
visit_statements_node(node)

Компилировать узел StatementsNode

Alias for: visit_child_nodes
visit_string_node(node)

Компилировать узел StringNode

Alias for: visit_child_nodes
visit_super_node(node)

Компилировать узел SuperNode

Alias for: visit_child_nodes
visit_symbol_node(node)

Компилировать узел SymbolNode

Alias for: visit_child_nodes
visit_true_node(node)

Компилировать узел TrueNode

Alias for: visit_child_nodes
visit_undef_node(node)

Компилировать узел UndefNode

Alias for: visit_child_nodes
visit_unless_node(node)

Компилировать узел UnlessNode

Alias for: visit_child_nodes
visit_until_node(node)

Компилировать узел UntilNode

Псевдоним для: visit_child_nodes
visit_when_node(node)

Компилировать узел WhenNode

Псевдоним для: visit_child_nodes
visit_while_node(node)

Компилировать узел WhileNode

Псевдоним для: visit_child_nodes
visit_x_string_node(node)

Компилировать узел XStringNode

Псевдоним для: visit_child_nodes
visit_yield_node(node)

Компилировать узел YieldNode

Псевдоним для: visit_child_nodes

Ruby Core © 1993–2022 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API