D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
proc
/
self
/
root
/
opt
/
alt
/
ruby34
/
share
/
ri
/
system
/
Prism
/
Compiler
/
Filename :
cdesc-Compiler.ri
back
Copy
U:RDoc::NormalClass[iI" Compiler:ETI"Prism::Compiler;TI"Visitor;To:RDoc::Markup::Document:@parts[o;;[ o:RDoc::Markup::Paragraph;[I"OA compiler is a visitor that returns the value of each node as it visits. ;TI"PThis is as opposed to a visitor which will only walk the tree. This can be ;TI"Juseful when you are trying to compile a tree into a different format.;To:RDoc::Markup::BlankLine o; ;[I"NFor example, to build a representation of the tree as s-expressions, you ;TI"could write:;T@o:RDoc::Markup::Verbatim;[I"*class SExpressions < Prism::Compiler ;TI"< def visit_arguments_node(node) = [:arguments, super] ;TI"2 def visit_call_node(node) = [:call, super] ;TI"1 def visit_integer_node(node) = [:integer] ;TI"8 def visit_program_node(node) = [:program, super] ;TI" end ;TI" ;TI"9Prism.parse("1 + 2").value.accept(SExpressions.new) ;TI"K# => [:program, [[[:call, [[:integer], [:arguments, [[:integer]]]]]]]];T:@format0: @fileI"lib/prism/compiler.rb;T:0@omit_headings_from_table_of_contents_below0; 0;0[ [ [ [[I" class;T[[:public[ [:protected[ [:private[ [I" instance;T[[;[�[I" visit;TI"lib/prism/compiler.rb;T[I"%visit_alias_global_variable_node;T@8[I"visit_alias_method_node;T@8[I"visit_all;T@8[I"#visit_alternation_pattern_node;T@8[I"visit_and_node;T@8[I"visit_arguments_node;T@8[I"visit_array_node;T@8[I"visit_array_pattern_node;T@8[I"visit_assoc_node;T@8[I"visit_assoc_splat_node;T@8[I"#visit_back_reference_read_node;T@8[I"visit_begin_node;T@8[I"visit_block_argument_node;T@8[I"$visit_block_local_variable_node;T@8[I"visit_block_node;T@8[I"visit_block_parameter_node;T@8[I" visit_block_parameters_node;T@8[I"visit_break_node;T@8[I"visit_call_and_write_node;T@8[I"visit_call_node;T@8[I"#visit_call_operator_write_node;T@8[I"visit_call_or_write_node;T@8[I"visit_call_target_node;T@8[I"visit_capture_pattern_node;T@8[I"visit_case_match_node;T@8[I"visit_case_node;T@8[I"visit_child_nodes;T@8[I"visit_class_node;T@8[I"(visit_class_variable_and_write_node;T@8[I"-visit_class_variable_operator_write_node;T@8[I"'visit_class_variable_or_write_node;T@8[I"#visit_class_variable_read_node;T@8[I"%visit_class_variable_target_node;T@8[I"$visit_class_variable_write_node;T@8[I""visit_constant_and_write_node;T@8[I"'visit_constant_operator_write_node;T@8[I"!visit_constant_or_write_node;T@8[I"'visit_constant_path_and_write_node;T@8[I"visit_constant_path_node;T@8[I",visit_constant_path_operator_write_node;T@8[I"&visit_constant_path_or_write_node;T@8[I"$visit_constant_path_target_node;T@8[I"#visit_constant_path_write_node;T@8[I"visit_constant_read_node;T@8[I"visit_constant_target_node;T@8[I"visit_constant_write_node;T@8[I"visit_def_node;T@8[I"visit_defined_node;T@8[I"visit_else_node;T@8[I"#visit_embedded_statements_node;T@8[I"!visit_embedded_variable_node;T@8[I"visit_ensure_node;T@8[I"visit_false_node;T@8[I"visit_find_pattern_node;T@8[I"visit_flip_flop_node;T@8[I"visit_float_node;T@8[I"visit_for_node;T@8[I"$visit_forwarding_arguments_node;T@8[I"$visit_forwarding_parameter_node;T@8[I" visit_forwarding_super_node;T@8[I")visit_global_variable_and_write_node;T@8[I".visit_global_variable_operator_write_node;T@8[I"(visit_global_variable_or_write_node;T@8[I"$visit_global_variable_read_node;T@8[I"&visit_global_variable_target_node;T@8[I"%visit_global_variable_write_node;T@8[I"visit_hash_node;T@8[I"visit_hash_pattern_node;T@8[I"visit_if_node;T@8[I"visit_imaginary_node;T@8[I"visit_implicit_node;T@8[I"visit_implicit_rest_node;T@8[I"visit_in_node;T@8[I"visit_index_and_write_node;T@8[I"$visit_index_operator_write_node;T@8[I"visit_index_or_write_node;T@8[I"visit_index_target_node;T@8[I"+visit_instance_variable_and_write_node;T@8[I"0visit_instance_variable_operator_write_node;T@8[I"*visit_instance_variable_or_write_node;T@8[I"&visit_instance_variable_read_node;T@8[I"(visit_instance_variable_target_node;T@8[I"'visit_instance_variable_write_node;T@8[I"visit_integer_node;T@8[I",visit_interpolated_match_last_line_node;T@8[I"/visit_interpolated_regular_expression_node;T@8[I"#visit_interpolated_string_node;T@8[I"#visit_interpolated_symbol_node;T@8[I"%visit_interpolated_x_string_node;T@8[I"&visit_it_local_variable_read_node;T@8[I"visit_it_parameters_node;T@8[I"visit_keyword_hash_node;T@8[I"&visit_keyword_rest_parameter_node;T@8[I"visit_lambda_node;T@8[I"(visit_local_variable_and_write_node;T@8[I"-visit_local_variable_operator_write_node;T@8[I"'visit_local_variable_or_write_node;T@8[I"#visit_local_variable_read_node;T@8[I"%visit_local_variable_target_node;T@8[I"$visit_local_variable_write_node;T@8[I"visit_match_last_line_node;T@8[I"visit_match_predicate_node;T@8[I"visit_match_required_node;T@8[I"visit_match_write_node;T@8[I"visit_missing_node;T@8[I"visit_module_node;T@8[I"visit_multi_target_node;T@8[I"visit_multi_write_node;T@8[I"visit_next_node;T@8[I"visit_nil_node;T@8[I"%visit_no_keywords_parameter_node;T@8[I"#visit_numbered_parameters_node;T@8[I"'visit_numbered_reference_read_node;T@8[I"*visit_optional_keyword_parameter_node;T@8[I""visit_optional_parameter_node;T@8[I"visit_or_node;T@8[I"visit_parameters_node;T@8[I"visit_parentheses_node;T@8[I"!visit_pinned_expression_node;T@8[I"visit_pinned_variable_node;T@8[I"visit_post_execution_node;T@8[I"visit_pre_execution_node;T@8[I"visit_program_node;T@8[I"visit_range_node;T@8[I"visit_rational_node;T@8[I"visit_redo_node;T@8[I""visit_regular_expression_node;T@8[I"*visit_required_keyword_parameter_node;T@8[I""visit_required_parameter_node;T@8[I"visit_rescue_modifier_node;T@8[I"visit_rescue_node;T@8[I"visit_rest_parameter_node;T@8[I"visit_retry_node;T@8[I"visit_return_node;T@8[I"visit_self_node;T@8[I""visit_shareable_constant_node;T@8[I"visit_singleton_class_node;T@8[I"visit_source_encoding_node;T@8[I"visit_source_file_node;T@8[I"visit_source_line_node;T@8[I"visit_splat_node;T@8[I"visit_statements_node;T@8[I"visit_string_node;T@8[I"visit_super_node;T@8[I"visit_symbol_node;T@8[I"visit_true_node;T@8[I"visit_undef_node;T@8[I"visit_unless_node;T@8[I"visit_until_node;T@8[I"visit_when_node;T@8[I"visit_while_node;T@8[I"visit_x_string_node;T@8[I"visit_yield_node;T@8[;[ [;[ [ [U:RDoc::Context::Section[i 0o;;[ ; 0;0[@#I" Prism;TcRDoc::NormalModule