класс Prism::InspectVisitor
Этот посетитель отвечает за составление строк, возвращаемых различными методами inspect, определёнными для каждого узла.
Атрибуты
Список команд, которые необходимо выполнить для составления окончательной строки.
Текущая строка префикса.
Публичные методы класса
Исходный код
# File lib/prism/inspect_visitor.rb, line 41 def self.compose(node) visitor = new node.accept(visitor) visitor.compose end
Составление строки inspect для заданного узла.
Исходный код
# File lib/prism/inspect_visitor.rb, line 35 def initialize(indent = +"") @indent = indent @commands = [] end
Инициализирует новый экземпляр InspectVisitor.
Публичные методы экземпляра
Исходный код
# File lib/prism/inspect_visitor.rb, line 48
def compose
buffer = +""
replace = nil
until commands.empty?
# @type var command: String | node | Replace
# @type var indent: String
command, indent = *commands.shift
case command
when String
buffer << (replace || indent)
buffer << command
replace = nil
when Node
visitor = InspectVisitor.new(indent)
command.accept(visitor)
@commands = [*visitor.commands, *@commands]
when Replace
replace = command.value
else
raise "Unknown command: #{command.inspect}"
end
end
buffer
end Формирует итоговую строку.
Source
# File lib/prism/inspect_visitor.rb, line 77
def visit_alias_global_variable_node(node)
commands << [inspect_node("AliasGlobalVariableNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── new_name:\n", indent]
commands << [node.new_name, "#{indent}│ "]
commands << ["├── old_name:\n", indent]
commands << [node.old_name, "#{indent}│ "]
commands << ["└── keyword_loc: #{inspect_location(node.keyword_loc)}\n", indent]
end Проверяет узел AliasGlobalVariableNode.
Source
# File lib/prism/inspect_visitor.rb, line 89
def visit_alias_method_node(node)
commands << [inspect_node("AliasMethodNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── new_name:\n", indent]
commands << [node.new_name, "#{indent}│ "]
commands << ["├── old_name:\n", indent]
commands << [node.old_name, "#{indent}│ "]
commands << ["└── keyword_loc: #{inspect_location(node.keyword_loc)}\n", indent]
end Проверяет узел AliasMethodNode.
Source
# File lib/prism/inspect_visitor.rb, line 101
def visit_alternation_pattern_node(node)
commands << [inspect_node("AlternationPatternNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── left:\n", indent]
commands << [node.left, "#{indent}│ "]
commands << ["├── right:\n", indent]
commands << [node.right, "#{indent}│ "]
commands << ["└── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
end Проверяет узел AlternationPatternNode.
Source
# File lib/prism/inspect_visitor.rb, line 113
def visit_and_node(node)
commands << [inspect_node("AndNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── left:\n", indent]
commands << [node.left, "#{indent}│ "]
commands << ["├── right:\n", indent]
commands << [node.right, "#{indent}│ "]
commands << ["└── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
end Проверяет узел AndNode.
Source
# File lib/prism/inspect_visitor.rb, line 125
def visit_arguments_node(node)
commands << [inspect_node("ArgumentsNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ("contains_forwarding" if node.contains_forwarding?), ("contains_keywords" if node.contains_keywords?), ("contains_keyword_splat" if node.contains_keyword_splat?), ("contains_splat" if node.contains_splat?), ("contains_multiple_splats" if node.contains_multiple_splats?)].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["└── arguments: (length: #{(arguments = node.arguments).length})\n", indent]
if arguments.any?
arguments[0...-1].each do |child|
commands << [Replace.new("#{indent} ├── "), indent]
commands << [child, "#{indent} │ "]
end
commands << [Replace.new("#{indent} └── "), indent]
commands << [arguments[-1], "#{indent} "]
end
end Проверяет узел ArgumentsNode.
Source
# File lib/prism/inspect_visitor.rb, line 141
def visit_array_node(node)
commands << [inspect_node("ArrayNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ("contains_splat" if node.contains_splat?)].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── elements: (length: #{(elements = node.elements).length})\n", indent]
if elements.any?
elements[0...-1].each do |child|
commands << [Replace.new("#{indent}│ ├── "), indent]
commands << [child, "#{indent}│ │ "]
end
commands << [Replace.new("#{indent}│ └── "), indent]
commands << [elements[-1], "#{indent}│ "]
end
commands << ["├── opening_loc: #{inspect_location(node.opening_loc)}\n", indent]
commands << ["└── closing_loc: #{inspect_location(node.closing_loc)}\n", indent]
end Проверяет узел ArrayNode.
Source
# File lib/prism/inspect_visitor.rb, line 159
def visit_array_pattern_node(node)
commands << [inspect_node("ArrayPatternNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
if (constant = node.constant).nil?
commands << ["├── constant: ∅\n", indent]
else
commands << ["├── constant:\n", indent]
commands << [constant, "#{indent}│ "]
end
commands << ["├── requireds: (length: #{(requireds = node.requireds).length})\n", indent]
if requireds.any?
requireds[0...-1].each do |child|
commands << [Replace.new("#{indent}│ ├── "), indent]
commands << [child, "#{indent}│ │ "]
end
commands << [Replace.new("#{indent}│ └── "), indent]
commands << [requireds[-1], "#{indent}│ "]
end
if (rest = node.rest).nil?
commands << ["├── rest: ∅\n", indent]
else
commands << ["├── rest:\n", indent]
commands << [rest, "#{indent}│ "]
end
commands << ["├── posts: (length: #{(posts = node.posts).length})\n", indent]
if posts.any?
posts[0...-1].each do |child|
commands << [Replace.new("#{indent}│ ├── "), indent]
commands << [child, "#{indent}│ │ "]
end
commands << [Replace.new("#{indent}│ └── "), indent]
commands << [posts[-1], "#{indent}│ "]
end
commands << ["├── opening_loc: #{inspect_location(node.opening_loc)}\n", indent]
commands << ["└── closing_loc: #{inspect_location(node.closing_loc)}\n", indent]
end Проверяет узел ArrayPatternNode.
Source
# File lib/prism/inspect_visitor.rb, line 198
def visit_assoc_node(node)
commands << [inspect_node("AssocNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── key:\n", indent]
commands << [node.key, "#{indent}│ "]
commands << ["├── value:\n", indent]
commands << [node.value, "#{indent}│ "]
commands << ["└── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
end Проверяет узел AssocNode.
Source
# File lib/prism/inspect_visitor.rb, line 210
def visit_assoc_splat_node(node)
commands << [inspect_node("AssocSplatNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
if (value = node.value).nil?
commands << ["├── value: ∅\n", indent]
else
commands << ["├── value:\n", indent]
commands << [value, "#{indent}│ "]
end
commands << ["└── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
end Проверяет узел AssocSplatNode.
Source
# File lib/prism/inspect_visitor.rb, line 224
def visit_back_reference_read_node(node)
commands << [inspect_node("BackReferenceReadNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["└── name: #{node.name.inspect}\n", indent]
end Проверяет узел BackReferenceReadNode.
Source
# File lib/prism/inspect_visitor.rb, line 232
def visit_begin_node(node)
commands << [inspect_node("BeginNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── begin_keyword_loc: #{inspect_location(node.begin_keyword_loc)}\n", indent]
if (statements = node.statements).nil?
commands << ["├── statements: ∅\n", indent]
else
commands << ["├── statements:\n", indent]
commands << [statements, "#{indent}│ "]
end
if (rescue_clause = node.rescue_clause).nil?
commands << ["├── rescue_clause: ∅\n", indent]
else
commands << ["├── rescue_clause:\n", indent]
commands << [rescue_clause, "#{indent}│ "]
end
if (else_clause = node.else_clause).nil?
commands << ["├── else_clause: ∅\n", indent]
else
commands << ["├── else_clause:\n", indent]
commands << [else_clause, "#{indent}│ "]
end
if (ensure_clause = node.ensure_clause).nil?
commands << ["├── ensure_clause: ∅\n", indent]
else
commands << ["├── ensure_clause:\n", indent]
commands << [ensure_clause, "#{indent}│ "]
end
commands << ["└── end_keyword_loc: #{inspect_location(node.end_keyword_loc)}\n", indent]
end Проверяет узел BeginNode.
Source
# File lib/prism/inspect_visitor.rb, line 265
def visit_block_argument_node(node)
commands << [inspect_node("BlockArgumentNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
if (expression = node.expression).nil?
commands << ["├── expression: ∅\n", indent]
else
commands << ["├── expression:\n", indent]
commands << [expression, "#{indent}│ "]
end
commands << ["└── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
end Проверяет узел BlockArgumentNode.
Source
# File lib/prism/inspect_visitor.rb, line 279
def visit_block_local_variable_node(node)
commands << [inspect_node("BlockLocalVariableNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ("repeated_parameter" if node.repeated_parameter?)].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["└── name: #{node.name.inspect}\n", indent]
end Проверяет узел BlockLocalVariableNode.
Source
# File lib/prism/inspect_visitor.rb, line 287
def visit_block_node(node)
commands << [inspect_node("BlockNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── locals: #{node.locals.inspect}\n", indent]
if (parameters = node.parameters).nil?
commands << ["├── parameters: ∅\n", indent]
else
commands << ["├── parameters:\n", indent]
commands << [parameters, "#{indent}│ "]
end
if (body = node.body).nil?
commands << ["├── body: ∅\n", indent]
else
commands << ["├── body:\n", indent]
commands << [body, "#{indent}│ "]
end
commands << ["├── opening_loc: #{inspect_location(node.opening_loc)}\n", indent]
commands << ["└── closing_loc: #{inspect_location(node.closing_loc)}\n", indent]
end Проверяет узел BlockNode.
Source
# File lib/prism/inspect_visitor.rb, line 309
def visit_block_parameter_node(node)
commands << [inspect_node("BlockParameterNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ("repeated_parameter" if node.repeated_parameter?)].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
if (name = node.name).nil?
commands << ["├── name: ∅\n", indent]
else
commands << ["├── name: #{name.inspect}\n", indent]
end
commands << ["├── name_loc: #{inspect_location(node.name_loc)}\n", indent]
commands << ["└── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
end Проверяет узел BlockParameterNode.
Source
# File lib/prism/inspect_visitor.rb, line 323
def visit_block_parameters_node(node)
commands << [inspect_node("BlockParametersNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
if (parameters = node.parameters).nil?
commands << ["├── parameters: ∅\n", indent]
else
commands << ["├── parameters:\n", indent]
commands << [parameters, "#{indent}│ "]
end
commands << ["├── locals: (length: #{(locals = node.locals).length})\n", indent]
if locals.any?
locals[0...-1].each do |child|
commands << [Replace.new("#{indent}│ ├── "), indent]
commands << [child, "#{indent}│ │ "]
end
commands << [Replace.new("#{indent}│ └── "), indent]
commands << [locals[-1], "#{indent}│ "]
end
commands << ["├── opening_loc: #{inspect_location(node.opening_loc)}\n", indent]
commands << ["└── closing_loc: #{inspect_location(node.closing_loc)}\n", indent]
end Проверяет узел BlockParametersNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 347
def visit_break_node(node)
commands << [inspect_node("BreakNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
if (arguments = node.arguments).nil?
commands << ["├── arguments: ∅\n", indent]
else
commands << ["├── arguments:\n", indent]
commands << [arguments, "#{indent}│ "]
end
commands << ["└── keyword_loc: #{inspect_location(node.keyword_loc)}\n", indent]
end Проверка узла BreakNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 361
def visit_call_and_write_node(node)
commands << [inspect_node("CallAndWriteNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ("safe_navigation" if node.safe_navigation?), ("variable_call" if node.variable_call?), ("attribute_write" if node.attribute_write?), ("ignore_visibility" if node.ignore_visibility?)].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
if (receiver = node.receiver).nil?
commands << ["├── receiver: ∅\n", indent]
else
commands << ["├── receiver:\n", indent]
commands << [receiver, "#{indent}│ "]
end
commands << ["├── call_operator_loc: #{inspect_location(node.call_operator_loc)}\n", indent]
commands << ["├── message_loc: #{inspect_location(node.message_loc)}\n", indent]
commands << ["├── read_name: #{node.read_name.inspect}\n", indent]
commands << ["├── write_name: #{node.write_name.inspect}\n", indent]
commands << ["├── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
commands << ["└── value:\n", indent]
commands << [node.value, "#{indent} "]
end Проверка узла CallAndWriteNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 381
def visit_call_node(node)
commands << [inspect_node("CallNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ("safe_navigation" if node.safe_navigation?), ("variable_call" if node.variable_call?), ("attribute_write" if node.attribute_write?), ("ignore_visibility" if node.ignore_visibility?)].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
if (receiver = node.receiver).nil?
commands << ["├── receiver: ∅\n", indent]
else
commands << ["├── receiver:\n", indent]
commands << [receiver, "#{indent}│ "]
end
commands << ["├── call_operator_loc: #{inspect_location(node.call_operator_loc)}\n", indent]
commands << ["├── name: #{node.name.inspect}\n", indent]
commands << ["├── message_loc: #{inspect_location(node.message_loc)}\n", indent]
commands << ["├── opening_loc: #{inspect_location(node.opening_loc)}\n", indent]
if (arguments = node.arguments).nil?
commands << ["├── arguments: ∅\n", indent]
else
commands << ["├── arguments:\n", indent]
commands << [arguments, "#{indent}│ "]
end
commands << ["├── closing_loc: #{inspect_location(node.closing_loc)}\n", indent]
if (block = node.block).nil?
commands << ["└── block: ∅\n", indent]
else
commands << ["└── block:\n", indent]
commands << [block, "#{indent} "]
end
end Проверка узла CallNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 411
def visit_call_operator_write_node(node)
commands << [inspect_node("CallOperatorWriteNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ("safe_navigation" if node.safe_navigation?), ("variable_call" if node.variable_call?), ("attribute_write" if node.attribute_write?), ("ignore_visibility" if node.ignore_visibility?)].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
if (receiver = node.receiver).nil?
commands << ["├── receiver: ∅\n", indent]
else
commands << ["├── receiver:\n", indent]
commands << [receiver, "#{indent}│ "]
end
commands << ["├── call_operator_loc: #{inspect_location(node.call_operator_loc)}\n", indent]
commands << ["├── message_loc: #{inspect_location(node.message_loc)}\n", indent]
commands << ["├── read_name: #{node.read_name.inspect}\n", indent]
commands << ["├── write_name: #{node.write_name.inspect}\n", indent]
commands << ["├── binary_operator: #{node.binary_operator.inspect}\n", indent]
commands << ["├── binary_operator_loc: #{inspect_location(node.binary_operator_loc)}\n", indent]
commands << ["└── value:\n", indent]
commands << [node.value, "#{indent} "]
end Проверка узла CallOperatorWriteNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 432
def visit_call_or_write_node(node)
commands << [inspect_node("CallOrWriteNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ("safe_navigation" if node.safe_navigation?), ("variable_call" if node.variable_call?), ("attribute_write" if node.attribute_write?), ("ignore_visibility" if node.ignore_visibility?)].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
if (receiver = node.receiver).nil?
commands << ["├── receiver: ∅\n", indent]
else
commands << ["├── receiver:\n", indent]
commands << [receiver, "#{indent}│ "]
end
commands << ["├── call_operator_loc: #{inspect_location(node.call_operator_loc)}\n", indent]
commands << ["├── message_loc: #{inspect_location(node.message_loc)}\n", indent]
commands << ["├── read_name: #{node.read_name.inspect}\n", indent]
commands << ["├── write_name: #{node.write_name.inspect}\n", indent]
commands << ["├── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
commands << ["└── value:\n", indent]
commands << [node.value, "#{indent} "]
end Проверка узла CallOrWriteNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 452
def visit_call_target_node(node)
commands << [inspect_node("CallTargetNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ("safe_navigation" if node.safe_navigation?), ("variable_call" if node.variable_call?), ("attribute_write" if node.attribute_write?), ("ignore_visibility" if node.ignore_visibility?)].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── receiver:\n", indent]
commands << [node.receiver, "#{indent}│ "]
commands << ["├── call_operator_loc: #{inspect_location(node.call_operator_loc)}\n", indent]
commands << ["├── name: #{node.name.inspect}\n", indent]
commands << ["└── message_loc: #{inspect_location(node.message_loc)}\n", indent]
end Проверка узла CallTargetNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 464
def visit_capture_pattern_node(node)
commands << [inspect_node("CapturePatternNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── value:\n", indent]
commands << [node.value, "#{indent}│ "]
commands << ["├── target:\n", indent]
commands << [node.target, "#{indent}│ "]
commands << ["└── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
end Проверка узла CapturePatternNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 476
def visit_case_match_node(node)
commands << [inspect_node("CaseMatchNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
if (predicate = node.predicate).nil?
commands << ["├── predicate: ∅\n", indent]
else
commands << ["├── predicate:\n", indent]
commands << [predicate, "#{indent}│ "]
end
commands << ["├── conditions: (length: #{(conditions = node.conditions).length})\n", indent]
if conditions.any?
conditions[0...-1].each do |child|
commands << [Replace.new("#{indent}│ ├── "), indent]
commands << [child, "#{indent}│ │ "]
end
commands << [Replace.new("#{indent}│ └── "), indent]
commands << [conditions[-1], "#{indent}│ "]
end
if (else_clause = node.else_clause).nil?
commands << ["├── else_clause: ∅\n", indent]
else
commands << ["├── else_clause:\n", indent]
commands << [else_clause, "#{indent}│ "]
end
commands << ["├── case_keyword_loc: #{inspect_location(node.case_keyword_loc)}\n", indent]
commands << ["└── end_keyword_loc: #{inspect_location(node.end_keyword_loc)}\n", indent]
end Проверка узла CaseMatchNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 506
def visit_case_node(node)
commands << [inspect_node("CaseNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
if (predicate = node.predicate).nil?
commands << ["├── predicate: ∅\n", indent]
else
commands << ["├── predicate:\n", indent]
commands << [predicate, "#{indent}│ "]
end
commands << ["├── conditions: (length: #{(conditions = node.conditions).length})\n", indent]
if conditions.any?
conditions[0...-1].each do |child|
commands << [Replace.new("#{indent}│ ├── "), indent]
commands << [child, "#{indent}│ │ "]
end
commands << [Replace.new("#{indent}│ └── "), indent]
commands << [conditions[-1], "#{indent}│ "]
end
if (else_clause = node.else_clause).nil?
commands << ["├── else_clause: ∅\n", indent]
else
commands << ["├── else_clause:\n", indent]
commands << [else_clause, "#{indent}│ "]
end
commands << ["├── case_keyword_loc: #{inspect_location(node.case_keyword_loc)}\n", indent]
commands << ["└── end_keyword_loc: #{inspect_location(node.end_keyword_loc)}\n", indent]
end Проверка узла CaseNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 536
def visit_class_node(node)
commands << [inspect_node("ClassNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── locals: #{node.locals.inspect}\n", indent]
commands << ["├── class_keyword_loc: #{inspect_location(node.class_keyword_loc)}\n", indent]
commands << ["├── constant_path:\n", indent]
commands << [node.constant_path, "#{indent}│ "]
commands << ["├── inheritance_operator_loc: #{inspect_location(node.inheritance_operator_loc)}\n", indent]
if (superclass = node.superclass).nil?
commands << ["├── superclass: ∅\n", indent]
else
commands << ["├── superclass:\n", indent]
commands << [superclass, "#{indent}│ "]
end
if (body = node.body).nil?
commands << ["├── body: ∅\n", indent]
else
commands << ["├── body:\n", indent]
commands << [body, "#{indent}│ "]
end
commands << ["├── end_keyword_loc: #{inspect_location(node.end_keyword_loc)}\n", indent]
commands << ["└── name: #{node.name.inspect}\n", indent]
end Проверка узла ClassNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 562
def visit_class_variable_and_write_node(node)
commands << [inspect_node("ClassVariableAndWriteNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── name: #{node.name.inspect}\n", indent]
commands << ["├── name_loc: #{inspect_location(node.name_loc)}\n", indent]
commands << ["├── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
commands << ["└── value:\n", indent]
commands << [node.value, "#{indent} "]
end Проверка узла ClassVariableAndWriteNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 574
def visit_class_variable_operator_write_node(node)
commands << [inspect_node("ClassVariableOperatorWriteNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── name: #{node.name.inspect}\n", indent]
commands << ["├── name_loc: #{inspect_location(node.name_loc)}\n", indent]
commands << ["├── binary_operator_loc: #{inspect_location(node.binary_operator_loc)}\n", indent]
commands << ["├── value:\n", indent]
commands << [node.value, "#{indent}│ "]
commands << ["└── binary_operator: #{node.binary_operator.inspect}\n", indent]
end Проверка узла ClassVariableOperatorWriteNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 587
def visit_class_variable_or_write_node(node)
commands << [inspect_node("ClassVariableOrWriteNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── name: #{node.name.inspect}\n", indent]
commands << ["├── name_loc: #{inspect_location(node.name_loc)}\n", indent]
commands << ["├── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
commands << ["└── value:\n", indent]
commands << [node.value, "#{indent} "]
end Проверка узла ClassVariableOrWriteNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 599
def visit_class_variable_read_node(node)
commands << [inspect_node("ClassVariableReadNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["└── name: #{node.name.inspect}\n", indent]
end Проверка узла ClassVariableReadNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 607
def visit_class_variable_target_node(node)
commands << [inspect_node("ClassVariableTargetNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["└── name: #{node.name.inspect}\n", indent]
end Проверка узла ClassVariableTargetNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 615
def visit_class_variable_write_node(node)
commands << [inspect_node("ClassVariableWriteNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── name: #{node.name.inspect}\n", indent]
commands << ["├── name_loc: #{inspect_location(node.name_loc)}\n", indent]
commands << ["├── value:\n", indent]
commands << [node.value, "#{indent}│ "]
commands << ["└── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
end Проверка узла ClassVariableWriteNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 627
def visit_constant_and_write_node(node)
commands << [inspect_node("ConstantAndWriteNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── name: #{node.name.inspect}\n", indent]
commands << ["├── name_loc: #{inspect_location(node.name_loc)}\n", indent]
commands << ["├── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
commands << ["└── value:\n", indent]
commands << [node.value, "#{indent} "]
end Проверка узла ConstantAndWriteNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 639
def visit_constant_operator_write_node(node)
commands << [inspect_node("ConstantOperatorWriteNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── name: #{node.name.inspect}\n", indent]
commands << ["├── name_loc: #{inspect_location(node.name_loc)}\n", indent]
commands << ["├── binary_operator_loc: #{inspect_location(node.binary_operator_loc)}\n", indent]
commands << ["├── value:\n", indent]
commands << [node.value, "#{indent}│ "]
commands << ["└── binary_operator: #{node.binary_operator.inspect}\n", indent]
end Проверка узла ConstantOperatorWriteNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 652
def visit_constant_or_write_node(node)
commands << [inspect_node("ConstantOrWriteNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── name: #{node.name.inspect}\n", indent]
commands << ["├── name_loc: #{inspect_location(node.name_loc)}\n", indent]
commands << ["├── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
commands << ["└── value:\n", indent]
commands << [node.value, "#{indent} "]
end Проверка узла ConstantOrWriteNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 664
def visit_constant_path_and_write_node(node)
commands << [inspect_node("ConstantPathAndWriteNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── target:\n", indent]
commands << [node.target, "#{indent}│ "]
commands << ["├── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
commands << ["└── value:\n", indent]
commands << [node.value, "#{indent} "]
end Проверка узла ConstantPathAndWriteNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 676
def visit_constant_path_node(node)
commands << [inspect_node("ConstantPathNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
if (parent = node.parent).nil?
commands << ["├── parent: ∅\n", indent]
else
commands << ["├── parent:\n", indent]
commands << [parent, "#{indent}│ "]
end
if (name = node.name).nil?
commands << ["├── name: ∅\n", indent]
else
commands << ["├── name: #{name.inspect}\n", indent]
end
commands << ["├── delimiter_loc: #{inspect_location(node.delimiter_loc)}\n", indent]
commands << ["└── name_loc: #{inspect_location(node.name_loc)}\n", indent]
end Проверка узла ConstantPathNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 696
def visit_constant_path_operator_write_node(node)
commands << [inspect_node("ConstantPathOperatorWriteNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── target:\n", indent]
commands << [node.target, "#{indent}│ "]
commands << ["├── binary_operator_loc: #{inspect_location(node.binary_operator_loc)}\n", indent]
commands << ["├── value:\n", indent]
commands << [node.value, "#{indent}│ "]
commands << ["└── binary_operator: #{node.binary_operator.inspect}\n", indent]
end Проверка узла ConstantPathOperatorWriteNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 709
def visit_constant_path_or_write_node(node)
commands << [inspect_node("ConstantPathOrWriteNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── target:\n", indent]
commands << [node.target, "#{indent}│ "]
commands << ["├── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
commands << ["└── value:\n", indent]
commands << [node.value, "#{indent} "]
end Проверка узла ConstantPathOrWriteNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 721
def visit_constant_path_target_node(node)
commands << [inspect_node("ConstantPathTargetNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
if (parent = node.parent).nil?
commands << ["├── parent: ∅\n", indent]
else
commands << ["├── parent:\n", indent]
commands << [parent, "#{indent}│ "]
end
if (name = node.name).nil?
commands << ["├── name: ∅\n", indent]
else
commands << ["├── name: #{name.inspect}\n", indent]
end
commands << ["├── delimiter_loc: #{inspect_location(node.delimiter_loc)}\n", indent]
commands << ["└── name_loc: #{inspect_location(node.name_loc)}\n", indent]
end Проверка узла ConstantPathTargetNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 741
def visit_constant_path_write_node(node)
commands << [inspect_node("ConstantPathWriteNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── target:\n", indent]
commands << [node.target, "#{indent}│ "]
commands << ["├── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
commands << ["└── value:\n", indent]
commands << [node.value, "#{indent} "]
end Проверка узла ConstantPathWriteNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 753
def visit_constant_read_node(node)
commands << [inspect_node("ConstantReadNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["└── name: #{node.name.inspect}\n", indent]
end Проверка узла ConstantReadNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 761
def visit_constant_target_node(node)
commands << [inspect_node("ConstantTargetNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["└── name: #{node.name.inspect}\n", indent]
end Проверка узла ConstantTargetNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 769
def visit_constant_write_node(node)
commands << [inspect_node("ConstantWriteNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── name: #{node.name.inspect}\n", indent]
commands << ["├── name_loc: #{inspect_location(node.name_loc)}\n", indent]
commands << ["├── value:\n", indent]
commands << [node.value, "#{indent}│ "]
commands << ["└── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
end Проверка узла ConstantWriteNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 781
def visit_def_node(node)
commands << [inspect_node("DefNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── name: #{node.name.inspect}\n", indent]
commands << ["├── name_loc: #{inspect_location(node.name_loc)}\n", indent]
if (receiver = node.receiver).nil?
commands << ["├── receiver: ∅\n", indent]
else
commands << ["├── receiver:\n", indent]
commands << [receiver, "#{indent}│ "]
end
if (parameters = node.parameters).nil?
commands << ["├── parameters: ∅\n", indent]
else
commands << ["├── parameters:\n", indent]
commands << [parameters, "#{indent}│ "]
end
if (body = node.body).nil?
commands << ["├── body: ∅\n", indent]
else
commands << ["├── body:\n", indent]
commands << [body, "#{indent}│ "]
end
commands << ["├── locals: #{node.locals.inspect}\n", indent]
commands << ["├── def_keyword_loc: #{inspect_location(node.def_keyword_loc)}\n", indent]
commands << ["├── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
commands << ["├── lparen_loc: #{inspect_location(node.lparen_loc)}\n", indent]
commands << ["├── rparen_loc: #{inspect_location(node.rparen_loc)}\n", indent]
commands << ["├── equal_loc: #{inspect_location(node.equal_loc)}\n", indent]
commands << ["└── end_keyword_loc: #{inspect_location(node.end_keyword_loc)}\n", indent]
end Проверка узла DefNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 815
def visit_defined_node(node)
commands << [inspect_node("DefinedNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── lparen_loc: #{inspect_location(node.lparen_loc)}\n", indent]
commands << ["├── value:\n", indent]
commands << [node.value, "#{indent}│ "]
commands << ["├── rparen_loc: #{inspect_location(node.rparen_loc)}\n", indent]
commands << ["└── keyword_loc: #{inspect_location(node.keyword_loc)}\n", indent]
end Проверка узла DefinedNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 827
def visit_else_node(node)
commands << [inspect_node("ElseNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── else_keyword_loc: #{inspect_location(node.else_keyword_loc)}\n", indent]
if (statements = node.statements).nil?
commands << ["├── statements: ∅\n", indent]
else
commands << ["├── statements:\n", indent]
commands << [statements, "#{indent}│ "]
end
commands << ["└── end_keyword_loc: #{inspect_location(node.end_keyword_loc)}\n", indent]
end Проверка узла ElseNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 842
def visit_embedded_statements_node(node)
commands << [inspect_node("EmbeddedStatementsNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── opening_loc: #{inspect_location(node.opening_loc)}\n", indent]
if (statements = node.statements).nil?
commands << ["├── statements: ∅\n", indent]
else
commands << ["├── statements:\n", indent]
commands << [statements, "#{indent}│ "]
end
commands << ["└── closing_loc: #{inspect_location(node.closing_loc)}\n", indent]
end Проверка узла EmbeddedStatementsNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 857
def visit_embedded_variable_node(node)
commands << [inspect_node("EmbeddedVariableNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
commands << ["└── variable:\n", indent]
commands << [node.variable, "#{indent} "]
end Проверка узла EmbeddedVariableNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 867
def visit_ensure_node(node)
commands << [inspect_node("EnsureNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── ensure_keyword_loc: #{inspect_location(node.ensure_keyword_loc)}\n", indent]
if (statements = node.statements).nil?
commands << ["├── statements: ∅\n", indent]
else
commands << ["├── statements:\n", indent]
commands << [statements, "#{indent}│ "]
end
commands << ["└── end_keyword_loc: #{inspect_location(node.end_keyword_loc)}\n", indent]
end Проверка узла EnsureNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 882
def visit_false_node(node)
commands << [inspect_node("FalseNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["└── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
end Проверка узла FalseNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 889
def visit_find_pattern_node(node)
commands << [inspect_node("FindPatternNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
if (constant = node.constant).nil?
commands << ["├── constant: ∅\n", indent]
else
commands << ["├── constant:\n", indent]
commands << [constant, "#{indent}│ "]
end
commands << ["├── left:\n", indent]
commands << [node.left, "#{indent}│ "]
commands << ["├── requireds: (length: #{(requireds = node.requireds).length})\n", indent]
if requireds.any?
requireds[0...-1].each do |child|
commands << [Replace.new("#{indent}│ ├── "), indent]
commands << [child, "#{indent}│ │ "]
end
commands << [Replace.new("#{indent}│ └── "), indent]
commands << [requireds[-1], "#{indent}│ "]
end
commands << ["├── right:\n", indent]
commands << [node.right, "#{indent}│ "]
commands << ["├── opening_loc: #{inspect_location(node.opening_loc)}\n", indent]
commands << ["└── closing_loc: #{inspect_location(node.closing_loc)}\n", indent]
end Проверка узла FindPatternNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 917
def visit_flip_flop_node(node)
commands << [inspect_node("FlipFlopNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ("exclude_end" if node.exclude_end?)].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
if (left = node.left).nil?
commands << ["├── left: ∅\n", indent]
else
commands << ["├── left:\n", indent]
commands << [left, "#{indent}│ "]
end
if (right = node.right).nil?
commands << ["├── right: ∅\n", indent]
else
commands << ["├── right:\n", indent]
commands << [right, "#{indent}│ "]
end
commands << ["└── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
end Проверка узла FlipFlopNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 937
def visit_float_node(node)
commands << [inspect_node("FloatNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["└── value: #{node.value.inspect}\n", indent]
end Проверка узла FloatNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 945
def visit_for_node(node)
commands << [inspect_node("ForNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── index:\n", indent]
commands << [node.index, "#{indent}│ "]
commands << ["├── collection:\n", indent]
commands << [node.collection, "#{indent}│ "]
if (statements = node.statements).nil?
commands << ["├── statements: ∅\n", indent]
else
commands << ["├── statements:\n", indent]
commands << [statements, "#{indent}│ "]
end
commands << ["├── for_keyword_loc: #{inspect_location(node.for_keyword_loc)}\n", indent]
commands << ["├── in_keyword_loc: #{inspect_location(node.in_keyword_loc)}\n", indent]
commands << ["├── do_keyword_loc: #{inspect_location(node.do_keyword_loc)}\n", indent]
commands << ["└── end_keyword_loc: #{inspect_location(node.end_keyword_loc)}\n", indent]
end Проверка узла ForNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 966
def visit_forwarding_arguments_node(node)
commands << [inspect_node("ForwardingArgumentsNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["└── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
end Проверка узла ForwardingArgumentsNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 973
def visit_forwarding_parameter_node(node)
commands << [inspect_node("ForwardingParameterNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["└── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
end Проверка узла ForwardingParameterNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 980
def visit_forwarding_super_node(node)
commands << [inspect_node("ForwardingSuperNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
if (block = node.block).nil?
commands << ["└── block: ∅\n", indent]
else
commands << ["└── block:\n", indent]
commands << [block, "#{indent} "]
end
end Проверка узла ForwardingSuperNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 993
def visit_global_variable_and_write_node(node)
commands << [inspect_node("GlobalVariableAndWriteNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── name: #{node.name.inspect}\n", indent]
commands << ["├── name_loc: #{inspect_location(node.name_loc)}\n", indent]
commands << ["├── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
commands << ["└── value:\n", indent]
commands << [node.value, "#{indent} "]
end Проверка узла GlobalVariableAndWriteNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1005
def visit_global_variable_operator_write_node(node)
commands << [inspect_node("GlobalVariableOperatorWriteNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── name: #{node.name.inspect}\n", indent]
commands << ["├── name_loc: #{inspect_location(node.name_loc)}\n", indent]
commands << ["├── binary_operator_loc: #{inspect_location(node.binary_operator_loc)}\n", indent]
commands << ["├── value:\n", indent]
commands << [node.value, "#{indent}│ "]
commands << ["└── binary_operator: #{node.binary_operator.inspect}\n", indent]
end Проверка узла GlobalVariableOperatorWriteNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1018
def visit_global_variable_or_write_node(node)
commands << [inspect_node("GlobalVariableOrWriteNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── name: #{node.name.inspect}\n", indent]
commands << ["├── name_loc: #{inspect_location(node.name_loc)}\n", indent]
commands << ["├── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
commands << ["└── value:\n", indent]
commands << [node.value, "#{indent} "]
end Проверка узла GlobalVariableOrWriteNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1030
def visit_global_variable_read_node(node)
commands << [inspect_node("GlobalVariableReadNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["└── name: #{node.name.inspect}\n", indent]
end Проверка узла GlobalVariableReadNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1038
def visit_global_variable_target_node(node)
commands << [inspect_node("GlobalVariableTargetNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["└── name: #{node.name.inspect}\n", indent]
end Проверка узла GlobalVariableTargetNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1046
def visit_global_variable_write_node(node)
commands << [inspect_node("GlobalVariableWriteNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── name: #{node.name.inspect}\n", indent]
commands << ["├── name_loc: #{inspect_location(node.name_loc)}\n", indent]
commands << ["├── value:\n", indent]
commands << [node.value, "#{indent}│ "]
commands << ["└── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
end Проверка узла GlobalVariableWriteNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1058
def visit_hash_node(node)
commands << [inspect_node("HashNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── opening_loc: #{inspect_location(node.opening_loc)}\n", indent]
commands << ["├── elements: (length: #{(elements = node.elements).length})\n", indent]
if elements.any?
elements[0...-1].each do |child|
commands << [Replace.new("#{indent}│ ├── "), indent]
commands << [child, "#{indent}│ │ "]
end
commands << [Replace.new("#{indent}│ └── "), indent]
commands << [elements[-1], "#{indent}│ "]
end
commands << ["└── closing_loc: #{inspect_location(node.closing_loc)}\n", indent]
end Проверка узла HashNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1076
def visit_hash_pattern_node(node)
commands << [inspect_node("HashPatternNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
if (constant = node.constant).nil?
commands << ["├── constant: ∅\n", indent]
else
commands << ["├── constant:\n", indent]
commands << [constant, "#{indent}│ "]
end
commands << ["├── elements: (length: #{(elements = node.elements).length})\n", indent]
if elements.any?
elements[0...-1].each do |child|
commands << [Replace.new("#{indent}│ ├── "), indent]
commands << [child, "#{indent}│ │ "]
end
commands << [Replace.new("#{indent}│ └── "), indent]
commands << [elements[-1], "#{indent}│ "]
end
if (rest = node.rest).nil?
commands << ["├── rest: ∅\n", indent]
else
commands << ["├── rest:\n", indent]
commands << [rest, "#{indent}│ "]
end
commands << ["├── opening_loc: #{inspect_location(node.opening_loc)}\n", indent]
commands << ["└── closing_loc: #{inspect_location(node.closing_loc)}\n", indent]
end Проверка узла HashPatternNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1106
def visit_if_node(node)
commands << [inspect_node("IfNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── if_keyword_loc: #{inspect_location(node.if_keyword_loc)}\n", indent]
commands << ["├── predicate:\n", indent]
commands << [node.predicate, "#{indent}│ "]
commands << ["├── then_keyword_loc: #{inspect_location(node.then_keyword_loc)}\n", indent]
if (statements = node.statements).nil?
commands << ["├── statements: ∅\n", indent]
else
commands << ["├── statements:\n", indent]
commands << [statements, "#{indent}│ "]
end
if (subsequent = node.subsequent).nil?
commands << ["├── subsequent: ∅\n", indent]
else
commands << ["├── subsequent:\n", indent]
commands << [subsequent, "#{indent}│ "]
end
commands << ["└── end_keyword_loc: #{inspect_location(node.end_keyword_loc)}\n", indent]
end Проверка узла IfNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1130
def visit_imaginary_node(node)
commands << [inspect_node("ImaginaryNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["└── numeric:\n", indent]
commands << [node.numeric, "#{indent} "]
end Проверить узел ImaginaryNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1139
def visit_implicit_node(node)
commands << [inspect_node("ImplicitNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["└── value:\n", indent]
commands << [node.value, "#{indent} "]
end Проверить узел ImplicitNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1148
def visit_implicit_rest_node(node)
commands << [inspect_node("ImplicitRestNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["└── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
end Проверить узел ImplicitRestNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1155
def visit_in_node(node)
commands << [inspect_node("InNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── pattern:\n", indent]
commands << [node.pattern, "#{indent}│ "]
if (statements = node.statements).nil?
commands << ["├── statements: ∅\n", indent]
else
commands << ["├── statements:\n", indent]
commands << [statements, "#{indent}│ "]
end
commands << ["├── in_loc: #{inspect_location(node.in_loc)}\n", indent]
commands << ["└── then_loc: #{inspect_location(node.then_loc)}\n", indent]
end Проверить узел InNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1172
def visit_index_and_write_node(node)
commands << [inspect_node("IndexAndWriteNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ("safe_navigation" if node.safe_navigation?), ("variable_call" if node.variable_call?), ("attribute_write" if node.attribute_write?), ("ignore_visibility" if node.ignore_visibility?)].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
if (receiver = node.receiver).nil?
commands << ["├── receiver: ∅\n", indent]
else
commands << ["├── receiver:\n", indent]
commands << [receiver, "#{indent}│ "]
end
commands << ["├── call_operator_loc: #{inspect_location(node.call_operator_loc)}\n", indent]
commands << ["├── opening_loc: #{inspect_location(node.opening_loc)}\n", indent]
if (arguments = node.arguments).nil?
commands << ["├── arguments: ∅\n", indent]
else
commands << ["├── arguments:\n", indent]
commands << [arguments, "#{indent}│ "]
end
commands << ["├── closing_loc: #{inspect_location(node.closing_loc)}\n", indent]
if (block = node.block).nil?
commands << ["├── block: ∅\n", indent]
else
commands << ["├── block:\n", indent]
commands << [block, "#{indent}│ "]
end
commands << ["├── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
commands << ["└── value:\n", indent]
commands << [node.value, "#{indent} "]
end Проверить узел IndexAndWriteNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1203
def visit_index_operator_write_node(node)
commands << [inspect_node("IndexOperatorWriteNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ("safe_navigation" if node.safe_navigation?), ("variable_call" if node.variable_call?), ("attribute_write" if node.attribute_write?), ("ignore_visibility" if node.ignore_visibility?)].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
if (receiver = node.receiver).nil?
commands << ["├── receiver: ∅\n", indent]
else
commands << ["├── receiver:\n", indent]
commands << [receiver, "#{indent}│ "]
end
commands << ["├── call_operator_loc: #{inspect_location(node.call_operator_loc)}\n", indent]
commands << ["├── opening_loc: #{inspect_location(node.opening_loc)}\n", indent]
if (arguments = node.arguments).nil?
commands << ["├── arguments: ∅\n", indent]
else
commands << ["├── arguments:\n", indent]
commands << [arguments, "#{indent}│ "]
end
commands << ["├── closing_loc: #{inspect_location(node.closing_loc)}\n", indent]
if (block = node.block).nil?
commands << ["├── block: ∅\n", indent]
else
commands << ["├── block:\n", indent]
commands << [block, "#{indent}│ "]
end
commands << ["├── binary_operator: #{node.binary_operator.inspect}\n", indent]
commands << ["├── binary_operator_loc: #{inspect_location(node.binary_operator_loc)}\n", indent]
commands << ["└── value:\n", indent]
commands << [node.value, "#{indent} "]
end Проверить узел IndexOperatorWriteNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1235
def visit_index_or_write_node(node)
commands << [inspect_node("IndexOrWriteNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ("safe_navigation" if node.safe_navigation?), ("variable_call" if node.variable_call?), ("attribute_write" if node.attribute_write?), ("ignore_visibility" if node.ignore_visibility?)].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
if (receiver = node.receiver).nil?
commands << ["├── receiver: ∅\n", indent]
else
commands << ["├── receiver:\n", indent]
commands << [receiver, "#{indent}│ "]
end
commands << ["├── call_operator_loc: #{inspect_location(node.call_operator_loc)}\n", indent]
commands << ["├── opening_loc: #{inspect_location(node.opening_loc)}\n", indent]
if (arguments = node.arguments).nil?
commands << ["├── arguments: ∅\n", indent]
else
commands << ["├── arguments:\n", indent]
commands << [arguments, "#{indent}│ "]
end
commands << ["├── closing_loc: #{inspect_location(node.closing_loc)}\n", indent]
if (block = node.block).nil?
commands << ["├── block: ∅\n", indent]
else
commands << ["├── block:\n", indent]
commands << [block, "#{indent}│ "]
end
commands << ["├── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
commands << ["└── value:\n", indent]
commands << [node.value, "#{indent} "]
end Проверить узел IndexOrWriteNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1266
def visit_index_target_node(node)
commands << [inspect_node("IndexTargetNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ("safe_navigation" if node.safe_navigation?), ("variable_call" if node.variable_call?), ("attribute_write" if node.attribute_write?), ("ignore_visibility" if node.ignore_visibility?)].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── receiver:\n", indent]
commands << [node.receiver, "#{indent}│ "]
commands << ["├── opening_loc: #{inspect_location(node.opening_loc)}\n", indent]
if (arguments = node.arguments).nil?
commands << ["├── arguments: ∅\n", indent]
else
commands << ["├── arguments:\n", indent]
commands << [arguments, "#{indent}│ "]
end
commands << ["├── closing_loc: #{inspect_location(node.closing_loc)}\n", indent]
if (block = node.block).nil?
commands << ["└── block: ∅\n", indent]
else
commands << ["└── block:\n", indent]
commands << [block, "#{indent} "]
end
end Проверить узел IndexTargetNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1289
def visit_instance_variable_and_write_node(node)
commands << [inspect_node("InstanceVariableAndWriteNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── name: #{node.name.inspect}\n", indent]
commands << ["├── name_loc: #{inspect_location(node.name_loc)}\n", indent]
commands << ["├── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
commands << ["└── value:\n", indent]
commands << [node.value, "#{indent} "]
end Проверить узел InstanceVariableAndWriteNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1301
def visit_instance_variable_operator_write_node(node)
commands << [inspect_node("InstanceVariableOperatorWriteNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── name: #{node.name.inspect}\n", indent]
commands << ["├── name_loc: #{inspect_location(node.name_loc)}\n", indent]
commands << ["├── binary_operator_loc: #{inspect_location(node.binary_operator_loc)}\n", indent]
commands << ["├── value:\n", indent]
commands << [node.value, "#{indent}│ "]
commands << ["└── binary_operator: #{node.binary_operator.inspect}\n", indent]
end Проверить узел InstanceVariableOperatorWriteNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1314
def visit_instance_variable_or_write_node(node)
commands << [inspect_node("InstanceVariableOrWriteNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── name: #{node.name.inspect}\n", indent]
commands << ["├── name_loc: #{inspect_location(node.name_loc)}\n", indent]
commands << ["├── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
commands << ["└── value:\n", indent]
commands << [node.value, "#{indent} "]
end Проверить узел InstanceVariableOrWriteNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1326
def visit_instance_variable_read_node(node)
commands << [inspect_node("InstanceVariableReadNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["└── name: #{node.name.inspect}\n", indent]
end Проверить узел InstanceVariableReadNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1334
def visit_instance_variable_target_node(node)
commands << [inspect_node("InstanceVariableTargetNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["└── name: #{node.name.inspect}\n", indent]
end Проверить узел InstanceVariableTargetNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1342
def visit_instance_variable_write_node(node)
commands << [inspect_node("InstanceVariableWriteNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── name: #{node.name.inspect}\n", indent]
commands << ["├── name_loc: #{inspect_location(node.name_loc)}\n", indent]
commands << ["├── value:\n", indent]
commands << [node.value, "#{indent}│ "]
commands << ["└── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
end Проверить узел InstanceVariableWriteNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1354
def visit_integer_node(node)
commands << [inspect_node("IntegerNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ("binary" if node.binary?), ("decimal" if node.decimal?), ("octal" if node.octal?), ("hexadecimal" if node.hexadecimal?)].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["└── value: #{node.value.inspect}\n", indent]
end Проверить узел IntegerNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1362
def visit_interpolated_match_last_line_node(node)
commands << [inspect_node("InterpolatedMatchLastLineNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ("ignore_case" if node.ignore_case?), ("extended" if node.extended?), ("multi_line" if node.multi_line?), ("once" if node.once?), ("euc_jp" if node.euc_jp?), ("ascii_8bit" if node.ascii_8bit?), ("windows_31j" if node.windows_31j?), ("utf_8" if node.utf_8?), ("forced_utf8_encoding" if node.forced_utf8_encoding?), ("forced_binary_encoding" if node.forced_binary_encoding?), ("forced_us_ascii_encoding" if node.forced_us_ascii_encoding?)].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── opening_loc: #{inspect_location(node.opening_loc)}\n", indent]
commands << ["├── parts: (length: #{(parts = node.parts).length})\n", indent]
if parts.any?
parts[0...-1].each do |child|
commands << [Replace.new("#{indent}│ ├── "), indent]
commands << [child, "#{indent}│ │ "]
end
commands << [Replace.new("#{indent}│ └── "), indent]
commands << [parts[-1], "#{indent}│ "]
end
commands << ["└── closing_loc: #{inspect_location(node.closing_loc)}\n", indent]
end Проверить узел InterpolatedMatchLastLineNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1380
def visit_interpolated_regular_expression_node(node)
commands << [inspect_node("InterpolatedRegularExpressionNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ("ignore_case" if node.ignore_case?), ("extended" if node.extended?), ("multi_line" if node.multi_line?), ("once" if node.once?), ("euc_jp" if node.euc_jp?), ("ascii_8bit" if node.ascii_8bit?), ("windows_31j" if node.windows_31j?), ("utf_8" if node.utf_8?), ("forced_utf8_encoding" if node.forced_utf8_encoding?), ("forced_binary_encoding" if node.forced_binary_encoding?), ("forced_us_ascii_encoding" if node.forced_us_ascii_encoding?)].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── opening_loc: #{inspect_location(node.opening_loc)}\n", indent]
commands << ["├── parts: (length: #{(parts = node.parts).length})\n", indent]
if parts.any?
parts[0...-1].each do |child|
commands << [Replace.new("#{indent}│ ├── "), indent]
commands << [child, "#{indent}│ │ "]
end
commands << [Replace.new("#{indent}│ └── "), indent]
commands << [parts[-1], "#{indent}│ "]
end
commands << ["└── closing_loc: #{inspect_location(node.closing_loc)}\n", indent]
end Проверка узла InterpolatedRegularExpressionNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1398
def visit_interpolated_string_node(node)
commands << [inspect_node("InterpolatedStringNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ("frozen" if node.frozen?), ("mutable" if node.mutable?)].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── opening_loc: #{inspect_location(node.opening_loc)}\n", indent]
commands << ["├── parts: (length: #{(parts = node.parts).length})\n", indent]
if parts.any?
parts[0...-1].each do |child|
commands << [Replace.new("#{indent}│ ├── "), indent]
commands << [child, "#{indent}│ │ "]
end
commands << [Replace.new("#{indent}│ └── "), indent]
commands << [parts[-1], "#{indent}│ "]
end
commands << ["└── closing_loc: #{inspect_location(node.closing_loc)}\n", indent]
end Проверка узла InterpolatedStringNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1416
def visit_interpolated_symbol_node(node)
commands << [inspect_node("InterpolatedSymbolNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── opening_loc: #{inspect_location(node.opening_loc)}\n", indent]
commands << ["├── parts: (length: #{(parts = node.parts).length})\n", indent]
if parts.any?
parts[0...-1].each do |child|
commands << [Replace.new("#{indent}│ ├── "), indent]
commands << [child, "#{indent}│ │ "]
end
commands << [Replace.new("#{indent}│ └── "), indent]
commands << [parts[-1], "#{indent}│ "]
end
commands << ["└── closing_loc: #{inspect_location(node.closing_loc)}\n", indent]
end Проверка узла InterpolatedSymbolNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1434
def visit_interpolated_x_string_node(node)
commands << [inspect_node("InterpolatedXStringNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── opening_loc: #{inspect_location(node.opening_loc)}\n", indent]
commands << ["├── parts: (length: #{(parts = node.parts).length})\n", indent]
if parts.any?
parts[0...-1].each do |child|
commands << [Replace.new("#{indent}│ ├── "), indent]
commands << [child, "#{indent}│ │ "]
end
commands << [Replace.new("#{indent}│ └── "), indent]
commands << [parts[-1], "#{indent}│ "]
end
commands << ["└── closing_loc: #{inspect_location(node.closing_loc)}\n", indent]
end Проверка узла InterpolatedXStringNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1452
def visit_it_local_variable_read_node(node)
commands << [inspect_node("ItLocalVariableReadNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["└── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
end Проверка узла ItLocalVariableReadNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1459
def visit_it_parameters_node(node)
commands << [inspect_node("ItParametersNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["└── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
end Проверка узла ItParametersNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1466
def visit_keyword_hash_node(node)
commands << [inspect_node("KeywordHashNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ("symbol_keys" if node.symbol_keys?)].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["└── elements: (length: #{(elements = node.elements).length})\n", indent]
if elements.any?
elements[0...-1].each do |child|
commands << [Replace.new("#{indent} ├── "), indent]
commands << [child, "#{indent} │ "]
end
commands << [Replace.new("#{indent} └── "), indent]
commands << [elements[-1], "#{indent} "]
end
end Проверка узла KeywordHashNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1482
def visit_keyword_rest_parameter_node(node)
commands << [inspect_node("KeywordRestParameterNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ("repeated_parameter" if node.repeated_parameter?)].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
if (name = node.name).nil?
commands << ["├── name: ∅\n", indent]
else
commands << ["├── name: #{name.inspect}\n", indent]
end
commands << ["├── name_loc: #{inspect_location(node.name_loc)}\n", indent]
commands << ["└── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
end Проверка узла KeywordRestParameterNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1496
def visit_lambda_node(node)
commands << [inspect_node("LambdaNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── locals: #{node.locals.inspect}\n", indent]
commands << ["├── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
commands << ["├── opening_loc: #{inspect_location(node.opening_loc)}\n", indent]
commands << ["├── closing_loc: #{inspect_location(node.closing_loc)}\n", indent]
if (parameters = node.parameters).nil?
commands << ["├── parameters: ∅\n", indent]
else
commands << ["├── parameters:\n", indent]
commands << [parameters, "#{indent}│ "]
end
if (body = node.body).nil?
commands << ["└── body: ∅\n", indent]
else
commands << ["└── body:\n", indent]
commands << [body, "#{indent} "]
end
end Проверка узла LambdaNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1519
def visit_local_variable_and_write_node(node)
commands << [inspect_node("LocalVariableAndWriteNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── name_loc: #{inspect_location(node.name_loc)}\n", indent]
commands << ["├── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
commands << ["├── value:\n", indent]
commands << [node.value, "#{indent}│ "]
commands << ["├── name: #{node.name.inspect}\n", indent]
commands << ["└── depth: #{node.depth.inspect}\n", indent]
end Проверка узла LocalVariableAndWriteNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1532
def visit_local_variable_operator_write_node(node)
commands << [inspect_node("LocalVariableOperatorWriteNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── name_loc: #{inspect_location(node.name_loc)}\n", indent]
commands << ["├── binary_operator_loc: #{inspect_location(node.binary_operator_loc)}\n", indent]
commands << ["├── value:\n", indent]
commands << [node.value, "#{indent}│ "]
commands << ["├── name: #{node.name.inspect}\n", indent]
commands << ["├── binary_operator: #{node.binary_operator.inspect}\n", indent]
commands << ["└── depth: #{node.depth.inspect}\n", indent]
end Проверка узла LocalVariableOperatorWriteNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1546
def visit_local_variable_or_write_node(node)
commands << [inspect_node("LocalVariableOrWriteNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── name_loc: #{inspect_location(node.name_loc)}\n", indent]
commands << ["├── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
commands << ["├── value:\n", indent]
commands << [node.value, "#{indent}│ "]
commands << ["├── name: #{node.name.inspect}\n", indent]
commands << ["└── depth: #{node.depth.inspect}\n", indent]
end Проверка узла LocalVariableOrWriteNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1559
def visit_local_variable_read_node(node)
commands << [inspect_node("LocalVariableReadNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── name: #{node.name.inspect}\n", indent]
commands << ["└── depth: #{node.depth.inspect}\n", indent]
end Проверка узла LocalVariableReadNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1568
def visit_local_variable_target_node(node)
commands << [inspect_node("LocalVariableTargetNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── name: #{node.name.inspect}\n", indent]
commands << ["└── depth: #{node.depth.inspect}\n", indent]
end Проверка узла LocalVariableTargetNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1577
def visit_local_variable_write_node(node)
commands << [inspect_node("LocalVariableWriteNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── name: #{node.name.inspect}\n", indent]
commands << ["├── depth: #{node.depth.inspect}\n", indent]
commands << ["├── name_loc: #{inspect_location(node.name_loc)}\n", indent]
commands << ["├── value:\n", indent]
commands << [node.value, "#{indent}│ "]
commands << ["└── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
end Проверка узла LocalVariableWriteNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1590
def visit_match_last_line_node(node)
commands << [inspect_node("MatchLastLineNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ("ignore_case" if node.ignore_case?), ("extended" if node.extended?), ("multi_line" if node.multi_line?), ("once" if node.once?), ("euc_jp" if node.euc_jp?), ("ascii_8bit" if node.ascii_8bit?), ("windows_31j" if node.windows_31j?), ("utf_8" if node.utf_8?), ("forced_utf8_encoding" if node.forced_utf8_encoding?), ("forced_binary_encoding" if node.forced_binary_encoding?), ("forced_us_ascii_encoding" if node.forced_us_ascii_encoding?)].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── opening_loc: #{inspect_location(node.opening_loc)}\n", indent]
commands << ["├── content_loc: #{inspect_location(node.content_loc)}\n", indent]
commands << ["├── closing_loc: #{inspect_location(node.closing_loc)}\n", indent]
commands << ["└── unescaped: #{node.unescaped.inspect}\n", indent]
end Проверка узла MatchLastLineNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1601
def visit_match_predicate_node(node)
commands << [inspect_node("MatchPredicateNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── value:\n", indent]
commands << [node.value, "#{indent}│ "]
commands << ["├── pattern:\n", indent]
commands << [node.pattern, "#{indent}│ "]
commands << ["└── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
end Просмотр узла MatchPredicateNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1613
def visit_match_required_node(node)
commands << [inspect_node("MatchRequiredNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── value:\n", indent]
commands << [node.value, "#{indent}│ "]
commands << ["├── pattern:\n", indent]
commands << [node.pattern, "#{indent}│ "]
commands << ["└── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
end Просмотр узла MatchRequiredNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1625
def visit_match_write_node(node)
commands << [inspect_node("MatchWriteNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── call:\n", indent]
commands << [node.call, "#{indent}│ "]
commands << ["└── targets: (length: #{(targets = node.targets).length})\n", indent]
if targets.any?
targets[0...-1].each do |child|
commands << [Replace.new("#{indent} ├── "), indent]
commands << [child, "#{indent} │ "]
end
commands << [Replace.new("#{indent} └── "), indent]
commands << [targets[-1], "#{indent} "]
end
end Просмотр узла MatchWriteNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1643
def visit_missing_node(node)
commands << [inspect_node("MissingNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["└── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
end Просмотр узла MissingNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1650
def visit_module_node(node)
commands << [inspect_node("ModuleNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── locals: #{node.locals.inspect}\n", indent]
commands << ["├── module_keyword_loc: #{inspect_location(node.module_keyword_loc)}\n", indent]
commands << ["├── constant_path:\n", indent]
commands << [node.constant_path, "#{indent}│ "]
if (body = node.body).nil?
commands << ["├── body: ∅\n", indent]
else
commands << ["├── body:\n", indent]
commands << [body, "#{indent}│ "]
end
commands << ["├── end_keyword_loc: #{inspect_location(node.end_keyword_loc)}\n", indent]
commands << ["└── name: #{node.name.inspect}\n", indent]
end Просмотр узла ModuleNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1669
def visit_multi_target_node(node)
commands << [inspect_node("MultiTargetNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── lefts: (length: #{(lefts = node.lefts).length})\n", indent]
if lefts.any?
lefts[0...-1].each do |child|
commands << [Replace.new("#{indent}│ ├── "), indent]
commands << [child, "#{indent}│ │ "]
end
commands << [Replace.new("#{indent}│ └── "), indent]
commands << [lefts[-1], "#{indent}│ "]
end
if (rest = node.rest).nil?
commands << ["├── rest: ∅\n", indent]
else
commands << ["├── rest:\n", indent]
commands << [rest, "#{indent}│ "]
end
commands << ["├── rights: (length: #{(rights = node.rights).length})\n", indent]
if rights.any?
rights[0...-1].each do |child|
commands << [Replace.new("#{indent}│ ├── "), indent]
commands << [child, "#{indent}│ │ "]
end
commands << [Replace.new("#{indent}│ └── "), indent]
commands << [rights[-1], "#{indent}│ "]
end
commands << ["├── lparen_loc: #{inspect_location(node.lparen_loc)}\n", indent]
commands << ["└── rparen_loc: #{inspect_location(node.rparen_loc)}\n", indent]
end Просмотр узла MultiTargetNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1702
def visit_multi_write_node(node)
commands << [inspect_node("MultiWriteNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── lefts: (length: #{(lefts = node.lefts).length})\n", indent]
if lefts.any?
lefts[0...-1].each do |child|
commands << [Replace.new("#{indent}│ ├── "), indent]
commands << [child, "#{indent}│ │ "]
end
commands << [Replace.new("#{indent}│ └── "), indent]
commands << [lefts[-1], "#{indent}│ "]
end
if (rest = node.rest).nil?
commands << ["├── rest: ∅\n", indent]
else
commands << ["├── rest:\n", indent]
commands << [rest, "#{indent}│ "]
end
commands << ["├── rights: (length: #{(rights = node.rights).length})\n", indent]
if rights.any?
rights[0...-1].each do |child|
commands << [Replace.new("#{indent}│ ├── "), indent]
commands << [child, "#{indent}│ │ "]
end
commands << [Replace.new("#{indent}│ └── "), indent]
commands << [rights[-1], "#{indent}│ "]
end
commands << ["├── lparen_loc: #{inspect_location(node.lparen_loc)}\n", indent]
commands << ["├── rparen_loc: #{inspect_location(node.rparen_loc)}\n", indent]
commands << ["├── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
commands << ["└── value:\n", indent]
commands << [node.value, "#{indent} "]
end Просмотр узла MultiWriteNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1738
def visit_next_node(node)
commands << [inspect_node("NextNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
if (arguments = node.arguments).nil?
commands << ["├── arguments: ∅\n", indent]
else
commands << ["├── arguments:\n", indent]
commands << [arguments, "#{indent}│ "]
end
commands << ["└── keyword_loc: #{inspect_location(node.keyword_loc)}\n", indent]
end Просмотр узла NextNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1752
def visit_nil_node(node)
commands << [inspect_node("NilNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["└── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
end Просмотр узла NilNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1759
def visit_no_keywords_parameter_node(node)
commands << [inspect_node("NoKeywordsParameterNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
commands << ["└── keyword_loc: #{inspect_location(node.keyword_loc)}\n", indent]
end Просмотр узла NoKeywordsParameterNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1768
def visit_numbered_parameters_node(node)
commands << [inspect_node("NumberedParametersNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["└── maximum: #{node.maximum.inspect}\n", indent]
end Просмотр узла NumberedParametersNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1776
def visit_numbered_reference_read_node(node)
commands << [inspect_node("NumberedReferenceReadNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["└── number: #{node.number.inspect}\n", indent]
end Просмотр узла NumberedReferenceReadNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1784
def visit_optional_keyword_parameter_node(node)
commands << [inspect_node("OptionalKeywordParameterNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ("repeated_parameter" if node.repeated_parameter?)].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── name: #{node.name.inspect}\n", indent]
commands << ["├── name_loc: #{inspect_location(node.name_loc)}\n", indent]
commands << ["└── value:\n", indent]
commands << [node.value, "#{indent} "]
end Просмотр узла OptionalKeywordParameterNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1795
def visit_optional_parameter_node(node)
commands << [inspect_node("OptionalParameterNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ("repeated_parameter" if node.repeated_parameter?)].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── name: #{node.name.inspect}\n", indent]
commands << ["├── name_loc: #{inspect_location(node.name_loc)}\n", indent]
commands << ["├── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
commands << ["└── value:\n", indent]
commands << [node.value, "#{indent} "]
end Просмотр узла OptionalParameterNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1807
def visit_or_node(node)
commands << [inspect_node("OrNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── left:\n", indent]
commands << [node.left, "#{indent}│ "]
commands << ["├── right:\n", indent]
commands << [node.right, "#{indent}│ "]
commands << ["└── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
end Просмотр узла OrNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1819
def visit_parameters_node(node)
commands << [inspect_node("ParametersNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── requireds: (length: #{(requireds = node.requireds).length})\n", indent]
if requireds.any?
requireds[0...-1].each do |child|
commands << [Replace.new("#{indent}│ ├── "), indent]
commands << [child, "#{indent}│ │ "]
end
commands << [Replace.new("#{indent}│ └── "), indent]
commands << [requireds[-1], "#{indent}│ "]
end
commands << ["├── optionals: (length: #{(optionals = node.optionals).length})\n", indent]
if optionals.any?
optionals[0...-1].each do |child|
commands << [Replace.new("#{indent}│ ├── "), indent]
commands << [child, "#{indent}│ │ "]
end
commands << [Replace.new("#{indent}│ └── "), indent]
commands << [optionals[-1], "#{indent}│ "]
end
if (rest = node.rest).nil?
commands << ["├── rest: ∅\n", indent]
else
commands << ["├── rest:\n", indent]
commands << [rest, "#{indent}│ "]
end
commands << ["├── posts: (length: #{(posts = node.posts).length})\n", indent]
if posts.any?
posts[0...-1].each do |child|
commands << [Replace.new("#{indent}│ ├── "), indent]
commands << [child, "#{indent}│ │ "]
end
commands << [Replace.new("#{indent}│ └── "), indent]
commands << [posts[-1], "#{indent}│ "]
end
commands << ["├── keywords: (length: #{(keywords = node.keywords).length})\n", indent]
if keywords.any?
keywords[0...-1].each do |child|
commands << [Replace.new("#{indent}│ ├── "), indent]
commands << [child, "#{indent}│ │ "]
end
commands << [Replace.new("#{indent}│ └── "), indent]
commands << [keywords[-1], "#{indent}│ "]
end
if (keyword_rest = node.keyword_rest).nil?
commands << ["├── keyword_rest: ∅\n", indent]
else
commands << ["├── keyword_rest:\n", indent]
commands << [keyword_rest, "#{indent}│ "]
end
if (block = node.block).nil?
commands << ["└── block: ∅\n", indent]
else
commands << ["└── block:\n", indent]
commands << [block, "#{indent} "]
end
end Просмотр узла ParametersNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1880
def visit_parentheses_node(node)
commands << [inspect_node("ParenthesesNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
if (body = node.body).nil?
commands << ["├── body: ∅\n", indent]
else
commands << ["├── body:\n", indent]
commands << [body, "#{indent}│ "]
end
commands << ["├── opening_loc: #{inspect_location(node.opening_loc)}\n", indent]
commands << ["└── closing_loc: #{inspect_location(node.closing_loc)}\n", indent]
end Просмотр узла ParenthesesNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1895
def visit_pinned_expression_node(node)
commands << [inspect_node("PinnedExpressionNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── expression:\n", indent]
commands << [node.expression, "#{indent}│ "]
commands << ["├── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
commands << ["├── lparen_loc: #{inspect_location(node.lparen_loc)}\n", indent]
commands << ["└── rparen_loc: #{inspect_location(node.rparen_loc)}\n", indent]
end Просмотреть узел PinnedExpressionNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1907
def visit_pinned_variable_node(node)
commands << [inspect_node("PinnedVariableNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── variable:\n", indent]
commands << [node.variable, "#{indent}│ "]
commands << ["└── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
end Просмотреть узел PinnedVariableNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1917
def visit_post_execution_node(node)
commands << [inspect_node("PostExecutionNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
if (statements = node.statements).nil?
commands << ["├── statements: ∅\n", indent]
else
commands << ["├── statements:\n", indent]
commands << [statements, "#{indent}│ "]
end
commands << ["├── keyword_loc: #{inspect_location(node.keyword_loc)}\n", indent]
commands << ["├── opening_loc: #{inspect_location(node.opening_loc)}\n", indent]
commands << ["└── closing_loc: #{inspect_location(node.closing_loc)}\n", indent]
end Просмотреть узел PostExecutionNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1933
def visit_pre_execution_node(node)
commands << [inspect_node("PreExecutionNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
if (statements = node.statements).nil?
commands << ["├── statements: ∅\n", indent]
else
commands << ["├── statements:\n", indent]
commands << [statements, "#{indent}│ "]
end
commands << ["├── keyword_loc: #{inspect_location(node.keyword_loc)}\n", indent]
commands << ["├── opening_loc: #{inspect_location(node.opening_loc)}\n", indent]
commands << ["└── closing_loc: #{inspect_location(node.closing_loc)}\n", indent]
end Просмотреть узел PreExecutionNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1949
def visit_program_node(node)
commands << [inspect_node("ProgramNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── locals: #{node.locals.inspect}\n", indent]
commands << ["└── statements:\n", indent]
commands << [node.statements, "#{indent} "]
end Просмотреть узел ProgramNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1959
def visit_range_node(node)
commands << [inspect_node("RangeNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ("exclude_end" if node.exclude_end?)].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
if (left = node.left).nil?
commands << ["├── left: ∅\n", indent]
else
commands << ["├── left:\n", indent]
commands << [left, "#{indent}│ "]
end
if (right = node.right).nil?
commands << ["├── right: ∅\n", indent]
else
commands << ["├── right:\n", indent]
commands << [right, "#{indent}│ "]
end
commands << ["└── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
end Просмотреть узел RangeNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1979
def visit_rational_node(node)
commands << [inspect_node("RationalNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ("binary" if node.binary?), ("decimal" if node.decimal?), ("octal" if node.octal?), ("hexadecimal" if node.hexadecimal?)].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── numerator: #{node.numerator.inspect}\n", indent]
commands << ["└── denominator: #{node.denominator.inspect}\n", indent]
end Просмотреть узел RationalNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1988
def visit_redo_node(node)
commands << [inspect_node("RedoNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["└── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
end Просмотреть узел RedoNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 1995
def visit_regular_expression_node(node)
commands << [inspect_node("RegularExpressionNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ("ignore_case" if node.ignore_case?), ("extended" if node.extended?), ("multi_line" if node.multi_line?), ("once" if node.once?), ("euc_jp" if node.euc_jp?), ("ascii_8bit" if node.ascii_8bit?), ("windows_31j" if node.windows_31j?), ("utf_8" if node.utf_8?), ("forced_utf8_encoding" if node.forced_utf8_encoding?), ("forced_binary_encoding" if node.forced_binary_encoding?), ("forced_us_ascii_encoding" if node.forced_us_ascii_encoding?)].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── opening_loc: #{inspect_location(node.opening_loc)}\n", indent]
commands << ["├── content_loc: #{inspect_location(node.content_loc)}\n", indent]
commands << ["├── closing_loc: #{inspect_location(node.closing_loc)}\n", indent]
commands << ["└── unescaped: #{node.unescaped.inspect}\n", indent]
end Просмотреть узел RegularExpressionNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 2006
def visit_required_keyword_parameter_node(node)
commands << [inspect_node("RequiredKeywordParameterNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ("repeated_parameter" if node.repeated_parameter?)].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── name: #{node.name.inspect}\n", indent]
commands << ["└── name_loc: #{inspect_location(node.name_loc)}\n", indent]
end Просмотреть узел RequiredKeywordParameterNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 2015
def visit_required_parameter_node(node)
commands << [inspect_node("RequiredParameterNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ("repeated_parameter" if node.repeated_parameter?)].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["└── name: #{node.name.inspect}\n", indent]
end Просмотреть узел RequiredParameterNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 2023
def visit_rescue_modifier_node(node)
commands << [inspect_node("RescueModifierNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── expression:\n", indent]
commands << [node.expression, "#{indent}│ "]
commands << ["├── keyword_loc: #{inspect_location(node.keyword_loc)}\n", indent]
commands << ["└── rescue_expression:\n", indent]
commands << [node.rescue_expression, "#{indent} "]
end Просмотреть узел RescueModifierNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 2035
def visit_rescue_node(node)
commands << [inspect_node("RescueNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── keyword_loc: #{inspect_location(node.keyword_loc)}\n", indent]
commands << ["├── exceptions: (length: #{(exceptions = node.exceptions).length})\n", indent]
if exceptions.any?
exceptions[0...-1].each do |child|
commands << [Replace.new("#{indent}│ ├── "), indent]
commands << [child, "#{indent}│ │ "]
end
commands << [Replace.new("#{indent}│ └── "), indent]
commands << [exceptions[-1], "#{indent}│ "]
end
commands << ["├── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
if (reference = node.reference).nil?
commands << ["├── reference: ∅\n", indent]
else
commands << ["├── reference:\n", indent]
commands << [reference, "#{indent}│ "]
end
if (statements = node.statements).nil?
commands << ["├── statements: ∅\n", indent]
else
commands << ["├── statements:\n", indent]
commands << [statements, "#{indent}│ "]
end
if (subsequent = node.subsequent).nil?
commands << ["└── subsequent: ∅\n", indent]
else
commands << ["└── subsequent:\n", indent]
commands << [subsequent, "#{indent} "]
end
end Просмотреть узел RescueNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 2071
def visit_rest_parameter_node(node)
commands << [inspect_node("RestParameterNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ("repeated_parameter" if node.repeated_parameter?)].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
if (name = node.name).nil?
commands << ["├── name: ∅\n", indent]
else
commands << ["├── name: #{name.inspect}\n", indent]
end
commands << ["├── name_loc: #{inspect_location(node.name_loc)}\n", indent]
commands << ["└── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
end Просмотреть узел RestParameterNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 2085
def visit_retry_node(node)
commands << [inspect_node("RetryNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["└── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
end Просмотреть узел RetryNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 2092
def visit_return_node(node)
commands << [inspect_node("ReturnNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── keyword_loc: #{inspect_location(node.keyword_loc)}\n", indent]
if (arguments = node.arguments).nil?
commands << ["└── arguments: ∅\n", indent]
else
commands << ["└── arguments:\n", indent]
commands << [arguments, "#{indent} "]
end
end Просмотреть узел ReturnNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 2106
def visit_self_node(node)
commands << [inspect_node("SelfNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["└── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
end Просмотреть узел SelfNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 2122
def visit_singleton_class_node(node)
commands << [inspect_node("SingletonClassNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── locals: #{node.locals.inspect}\n", indent]
commands << ["├── class_keyword_loc: #{inspect_location(node.class_keyword_loc)}\n", indent]
commands << ["├── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
commands << ["├── expression:\n", indent]
commands << [node.expression, "#{indent}│ "]
if (body = node.body).nil?
commands << ["├── body: ∅\n", indent]
else
commands << ["├── body:\n", indent]
commands << [body, "#{indent}│ "]
end
commands << ["└── end_keyword_loc: #{inspect_location(node.end_keyword_loc)}\n", indent]
end Проверка узла SingletonClassNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 2141
def visit_source_encoding_node(node)
commands << [inspect_node("SourceEncodingNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["└── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
end Проверка узла SourceEncodingNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 2148
def visit_source_file_node(node)
commands << [inspect_node("SourceFileNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ("forced_utf8_encoding" if node.forced_utf8_encoding?), ("forced_binary_encoding" if node.forced_binary_encoding?), ("frozen" if node.frozen?), ("mutable" if node.mutable?)].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["└── filepath: #{node.filepath.inspect}\n", indent]
end Проверка узла SourceFileNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 2156
def visit_source_line_node(node)
commands << [inspect_node("SourceLineNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["└── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
end Проверка узла SourceLineNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 2163
def visit_splat_node(node)
commands << [inspect_node("SplatNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── operator_loc: #{inspect_location(node.operator_loc)}\n", indent]
if (expression = node.expression).nil?
commands << ["└── expression: ∅\n", indent]
else
commands << ["└── expression:\n", indent]
commands << [expression, "#{indent} "]
end
end Проверка узла SplatNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 2177
def visit_statements_node(node)
commands << [inspect_node("StatementsNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["└── body: (length: #{(body = node.body).length})\n", indent]
if body.any?
body[0...-1].each do |child|
commands << [Replace.new("#{indent} ├── "), indent]
commands << [child, "#{indent} │ "]
end
commands << [Replace.new("#{indent} └── "), indent]
commands << [body[-1], "#{indent} "]
end
end Проверка узла StatementsNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 2193
def visit_string_node(node)
commands << [inspect_node("StringNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ("forced_utf8_encoding" if node.forced_utf8_encoding?), ("forced_binary_encoding" if node.forced_binary_encoding?), ("frozen" if node.frozen?), ("mutable" if node.mutable?)].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── opening_loc: #{inspect_location(node.opening_loc)}\n", indent]
commands << ["├── content_loc: #{inspect_location(node.content_loc)}\n", indent]
commands << ["├── closing_loc: #{inspect_location(node.closing_loc)}\n", indent]
commands << ["└── unescaped: #{node.unescaped.inspect}\n", indent]
end Проверка узла StringNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 2204
def visit_super_node(node)
commands << [inspect_node("SuperNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── keyword_loc: #{inspect_location(node.keyword_loc)}\n", indent]
commands << ["├── lparen_loc: #{inspect_location(node.lparen_loc)}\n", indent]
if (arguments = node.arguments).nil?
commands << ["├── arguments: ∅\n", indent]
else
commands << ["├── arguments:\n", indent]
commands << [arguments, "#{indent}│ "]
end
commands << ["├── rparen_loc: #{inspect_location(node.rparen_loc)}\n", indent]
if (block = node.block).nil?
commands << ["└── block: ∅\n", indent]
else
commands << ["└── block:\n", indent]
commands << [block, "#{indent} "]
end
end Проверка узла SuperNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 2226
def visit_symbol_node(node)
commands << [inspect_node("SymbolNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ("forced_utf8_encoding" if node.forced_utf8_encoding?), ("forced_binary_encoding" if node.forced_binary_encoding?), ("forced_us_ascii_encoding" if node.forced_us_ascii_encoding?)].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── opening_loc: #{inspect_location(node.opening_loc)}\n", indent]
commands << ["├── value_loc: #{inspect_location(node.value_loc)}\n", indent]
commands << ["├── closing_loc: #{inspect_location(node.closing_loc)}\n", indent]
commands << ["└── unescaped: #{node.unescaped.inspect}\n", indent]
end Проверка узла SymbolNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 2237
def visit_true_node(node)
commands << [inspect_node("TrueNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["└── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
end Проверка узла TrueNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 2244
def visit_undef_node(node)
commands << [inspect_node("UndefNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── names: (length: #{(names = node.names).length})\n", indent]
if names.any?
names[0...-1].each do |child|
commands << [Replace.new("#{indent}│ ├── "), indent]
commands << [child, "#{indent}│ │ "]
end
commands << [Replace.new("#{indent}│ └── "), indent]
commands << [names[-1], "#{indent}│ "]
end
commands << ["└── keyword_loc: #{inspect_location(node.keyword_loc)}\n", indent]
end Проверка узла UndefNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 2261
def visit_unless_node(node)
commands << [inspect_node("UnlessNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── keyword_loc: #{inspect_location(node.keyword_loc)}\n", indent]
commands << ["├── predicate:\n", indent]
commands << [node.predicate, "#{indent}│ "]
commands << ["├── then_keyword_loc: #{inspect_location(node.then_keyword_loc)}\n", indent]
if (statements = node.statements).nil?
commands << ["├── statements: ∅\n", indent]
else
commands << ["├── statements:\n", indent]
commands << [statements, "#{indent}│ "]
end
if (else_clause = node.else_clause).nil?
commands << ["├── else_clause: ∅\n", indent]
else
commands << ["├── else_clause:\n", indent]
commands << [else_clause, "#{indent}│ "]
end
commands << ["└── end_keyword_loc: #{inspect_location(node.end_keyword_loc)}\n", indent]
end Проверка узла UnlessNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 2285
def visit_until_node(node)
commands << [inspect_node("UntilNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ("begin_modifier" if node.begin_modifier?)].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── keyword_loc: #{inspect_location(node.keyword_loc)}\n", indent]
commands << ["├── do_keyword_loc: #{inspect_location(node.do_keyword_loc)}\n", indent]
commands << ["├── closing_loc: #{inspect_location(node.closing_loc)}\n", indent]
commands << ["├── predicate:\n", indent]
commands << [node.predicate, "#{indent}│ "]
if (statements = node.statements).nil?
commands << ["└── statements: ∅\n", indent]
else
commands << ["└── statements:\n", indent]
commands << [statements, "#{indent} "]
end
end Проверка узла UntilNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 2303
def visit_when_node(node)
commands << [inspect_node("WhenNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── keyword_loc: #{inspect_location(node.keyword_loc)}\n", indent]
commands << ["├── conditions: (length: #{(conditions = node.conditions).length})\n", indent]
if conditions.any?
conditions[0...-1].each do |child|
commands << [Replace.new("#{indent}│ ├── "), indent]
commands << [child, "#{indent}│ │ "]
end
commands << [Replace.new("#{indent}│ └── "), indent]
commands << [conditions[-1], "#{indent}│ "]
end
commands << ["├── then_keyword_loc: #{inspect_location(node.then_keyword_loc)}\n", indent]
if (statements = node.statements).nil?
commands << ["└── statements: ∅\n", indent]
else
commands << ["└── statements:\n", indent]
commands << [statements, "#{indent} "]
end
end Проверка узла WhenNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 2327
def visit_while_node(node)
commands << [inspect_node("WhileNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ("begin_modifier" if node.begin_modifier?)].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── keyword_loc: #{inspect_location(node.keyword_loc)}\n", indent]
commands << ["├── do_keyword_loc: #{inspect_location(node.do_keyword_loc)}\n", indent]
commands << ["├── closing_loc: #{inspect_location(node.closing_loc)}\n", indent]
commands << ["├── predicate:\n", indent]
commands << [node.predicate, "#{indent}│ "]
if (statements = node.statements).nil?
commands << ["└── statements: ∅\n", indent]
else
commands << ["└── statements:\n", indent]
commands << [statements, "#{indent} "]
end
end Проверка узла WhileNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 2345
def visit_x_string_node(node)
commands << [inspect_node("XStringNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ("forced_utf8_encoding" if node.forced_utf8_encoding?), ("forced_binary_encoding" if node.forced_binary_encoding?)].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── opening_loc: #{inspect_location(node.opening_loc)}\n", indent]
commands << ["├── content_loc: #{inspect_location(node.content_loc)}\n", indent]
commands << ["├── closing_loc: #{inspect_location(node.closing_loc)}\n", indent]
commands << ["└── unescaped: #{node.unescaped.inspect}\n", indent]
end Проверка узла XStringNode.
Исходный код
# File lib/prism/inspect_visitor.rb, line 2356
def visit_yield_node(node)
commands << [inspect_node("YieldNode", node), indent]
flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), ].compact
commands << ["├── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent]
commands << ["├── keyword_loc: #{inspect_location(node.keyword_loc)}\n", indent]
commands << ["├── lparen_loc: #{inspect_location(node.lparen_loc)}\n", indent]
if (arguments = node.arguments).nil?
commands << ["├── arguments: ∅\n", indent]
else
commands << ["├── arguments:\n", indent]
commands << [arguments, "#{indent}│ "]
end
commands << ["└── rparen_loc: #{inspect_location(node.rparen_loc)}\n", indent]
end Проверка узла YieldNode.
Закрытые методы экземпляра
Исходный код
# File lib/prism/inspect_visitor.rb, line 2380
def inspect_location(location)
if location
"(#{location.start_line},#{location.start_column})-(#{location.end_line},#{location.end_column}) = #{location.slice.inspect}"
else
"∅"
end
end Составьте строку, представляющую данное внутреннее поле местоположения.
Исходный код
# File lib/prism/inspect_visitor.rb, line 2374
def inspect_node(name, node)
location = node.location
"@ #{name} (location: (#{location.start_line},#{location.start_column})-(#{location.end_line},#{location.end_column}))\n"
end Составьте заголовок для данного узла.
Ruby Core © 1993–2024 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.