Spec-Zone.ru › Ruby 3.4

класс Prism::Compiler

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

Например, чтобы создать представление дерева в виде 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 29
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 34
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
END_OF_DOCUMENT_MARKER
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 39
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_it_local_variable_read_node, visit_it_parameters_node, visit_keyword_hash_node, visit_keyword_rest_parameter_node, visit_lambda_node, visit_local_variable_and_write_node, visit_local_variable_operator_write_node, visit_local_variable_or_write_node, visit_local_variable_read_node, visit_local_variable_target_node, visit_local_variable_write_node, visit_match_last_line_node, visit_match_predicate_node, visit_match_required_node, visit_match_write_node, visit_missing_node, visit_module_node, visit_multi_target_node, visit_multi_write_node, visit_next_node, visit_nil_node, visit_no_keywords_parameter_node, visit_numbered_parameters_node, visit_numbered_reference_read_node, visit_optional_keyword_parameter_node, visit_optional_parameter_node, visit_or_node, visit_parameters_node, visit_parentheses_node, visit_pinned_expression_node, visit_pinned_variable_node, visit_post_execution_node, visit_pre_execution_node, visit_program_node, visit_range_node, visit_rational_node, visit_redo_node, visit_regular_expression_node, visit_required_keyword_parameter_node, visit_required_parameter_node, visit_rescue_modifier_node, visit_rescue_node, visit_rest_parameter_node, visit_retry_node, visit_return_node, visit_self_node, visit_shareable_constant_node, visit_singleton_class_node,
visit_source_encoding_node, visit_source_file_node, visit_source_line_node, visit_splat_node, visit_statements_node, visit_string_node, visit_super_node, visit_symbol_node, visit_true_node, visit_undef_node, visit_unless_node, visit_until_node, visit_when_node, visit_while_node, visit_x_string_node, visit_yield_node
visit_class_node (node)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Псевдоним для: 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–2024 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.

Spec-Zone.ru

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