class Prism::InspectVisitor
This visitor is responsible for composing the strings that get returned by the various inspect methods defined on each of the nodes.
Attributes
The list of commands that we need to execute in order to compose the final string.
The current prefix string.
Public Class Methods
Source
# File lib/prism/inspect_visitor.rb, line 41 def self.compose(node) visitor = new node.accept(visitor) visitor.compose end
Compose an inspect string for the given node.
Source
# File lib/prism/inspect_visitor.rb, line 35 def initialize(indent = +"") @indent = indent @commands = [] end
Initializes a new instance of the InspectVisitor.
Public Instance Methods
Source
# 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 Compose the final string.
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 Inspect a AliasGlobalVariableNode node.
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 Inspect a AliasMethodNode node.
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 Inspect a AlternationPatternNode node.
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 Inspect a AndNode node.
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 Inspect a ArgumentsNode node.
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 Inspect a ArrayNode node.
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 Inspect a ArrayPatternNode node.
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 Inspect a AssocNode node.
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 Inspect a AssocSplatNode node.
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 Inspect a BackReferenceReadNode node.
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 Inspect a BeginNode node.
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 Inspect a BlockArgumentNode node.
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 Inspect a BlockLocalVariableNode node.
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 Inspect a BlockNode node.
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 Inspect a BlockParameterNode node.
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 Inspect a BlockParametersNode node.
Source
# 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 Inspect a BreakNode node.
Source
# 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 Inspect a CallAndWriteNode node.
Source
# 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 Inspect a CallNode node.
Source
# 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 Inspect a CallOperatorWriteNode node.
Source
# 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 Inspect a CallOrWriteNode node.
Source
# 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 Inspect a CallTargetNode node.
Source
# 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 Inspect a CapturePatternNode node.
Source
# 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 Inspect a CaseMatchNode node.
Source
# 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 Inspect a CaseNode node.
Source
# 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 Inspect a ClassNode node.
Source
# 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 Inspect a ClassVariableAndWriteNode node.
Source
# 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 Inspect a ClassVariableOperatorWriteNode node.
Source
# 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 Inspect a ClassVariableOrWriteNode node.
Source
# 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 Inspect a ClassVariableReadNode node.
Source
# 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 Inspect a ClassVariableTargetNode node.
Source
# 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 Inspect a ClassVariableWriteNode node.
Source
# 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 Inspect a ConstantAndWriteNode node.
Source
# 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 Inspect a ConstantOperatorWriteNode node.
Source
# 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 Inspect a ConstantOrWriteNode node.
Source
# 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 Inspect a ConstantPathAndWriteNode node.
Source
# 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 Inspect a ConstantPathNode node.
Source
# 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 Inspect a ConstantPathOperatorWriteNode node.
Source
# 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 Inspect a ConstantPathOrWriteNode node.
Source
# 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 Inspect a ConstantPathTargetNode node.
Source
# 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 Inspect a ConstantPathWriteNode node.
Source
# 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 Inspect a ConstantReadNode node.
Source
# 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 Inspect a ConstantTargetNode node.
Source
# 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 Inspect a ConstantWriteNode node.
Source
# 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 Inspect a DefNode node.
Source
# 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 Inspect a DefinedNode node.
Source
# 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 Inspect a ElseNode node.
Source
# 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 Inspect a EmbeddedStatementsNode node.
Source
# 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 Inspect a EmbeddedVariableNode node.
Source
# 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 Inspect a EnsureNode node.
Source
# 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 Inspect a FalseNode node.
Source
# 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 Inspect a FindPatternNode node.
Source
# 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 Inspect a FlipFlopNode node.
Source
# 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 Inspect a FloatNode node.
Source
# 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 Inspect a ForNode node.
Source
# 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 Inspect a ForwardingArgumentsNode node.
Source
# 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 Inspect a ForwardingParameterNode node.
Source
# 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 Inspect a ForwardingSuperNode node.
Source
# 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 Inspect a GlobalVariableAndWriteNode node.
Source
# 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 Inspect a GlobalVariableOperatorWriteNode node.
Source
# 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 Inspect a GlobalVariableOrWriteNode node.
Source
# 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 Inspect a GlobalVariableReadNode node.
Source
# 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 Inspect a GlobalVariableTargetNode node.
Source
# 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 Inspect a GlobalVariableWriteNode node.
Source
# 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 Inspect a HashNode node.
Source
# 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 Inspect a HashPatternNode node.
Source
# 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 Inspect a IfNode node.
Source
# 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 Inspect a ImaginaryNode node.
Source
# 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 Inspect a ImplicitNode node.
Source
# 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 Inspect a ImplicitRestNode node.
Source
# 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 Inspect a InNode node.
Source
# 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 Inspect a IndexAndWriteNode node.
Source
# 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 Inspect a IndexOperatorWriteNode node.
Source
# 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 Inspect a IndexOrWriteNode node.
Source
# 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 Inspect a IndexTargetNode node.
Source
# 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 Inspect a InstanceVariableAndWriteNode node.
Source
# 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 Inspect a InstanceVariableOperatorWriteNode node.
Source
# 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 Inspect a InstanceVariableOrWriteNode node.
Source
# 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 Inspect a InstanceVariableReadNode node.
Source
# 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 Inspect a InstanceVariableTargetNode node.
Source
# 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 Inspect a InstanceVariableWriteNode node.
Source
# 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 Inspect a IntegerNode node.
Source
# 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 Inspect a InterpolatedMatchLastLineNode node.
Source
# 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 Inspect a InterpolatedRegularExpressionNode node.
Source
# 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 Inspect a InterpolatedStringNode node.
Source
# 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 Inspect a InterpolatedSymbolNode node.
Source
# 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 Inspect a InterpolatedXStringNode node.
Source
# 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 Inspect a ItLocalVariableReadNode node.
Source
# 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 Inspect a ItParametersNode node.
Source
# 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 Inspect a KeywordHashNode node.
Source
# 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 Inspect a KeywordRestParameterNode node.
Source
# 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 Inspect a LambdaNode node.
Source
# 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 Inspect a LocalVariableAndWriteNode node.
Source
# 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 Inspect a LocalVariableOperatorWriteNode node.
Source
# 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 Inspect a LocalVariableOrWriteNode node.
Source
# 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 Inspect a LocalVariableReadNode node.
Source
# 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 Inspect a LocalVariableTargetNode node.
Source
# 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 Inspect a LocalVariableWriteNode node.
Source
# 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 Inspect a MatchLastLineNode node.
Source
# 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 Inspect a MatchPredicateNode node.
Source
# 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 Inspect a MatchRequiredNode node.
Source
# 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 Inspect a MatchWriteNode node.
Source
# 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 Inspect a MissingNode node.
Source
# 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 Inspect a ModuleNode node.
Source
# 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 Inspect a MultiTargetNode node.
Source
# 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 Inspect a MultiWriteNode node.
Source
# 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 Inspect a NextNode node.
Source
# 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 Inspect a NilNode node.
Source
# 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 Inspect a NoKeywordsParameterNode node.
Source
# 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 Inspect a NumberedParametersNode node.
Source
# 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 Inspect a NumberedReferenceReadNode node.
Source
# 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 Inspect a OptionalKeywordParameterNode node.
Source
# 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 Inspect a OptionalParameterNode node.
Source
# 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 Inspect a OrNode node.
Source
# 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 Inspect a ParametersNode node.
Source
# 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 Inspect a ParenthesesNode node.
Source
# 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 Inspect a PinnedExpressionNode node.
Source
# 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 Inspect a PinnedVariableNode node.
Source
# 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 Inspect a PostExecutionNode node.
Source
# 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 Inspect a PreExecutionNode node.
Source
# 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 Inspect a ProgramNode node.
Source
# 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 Inspect a RangeNode node.
Source
# 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 Inspect a RationalNode node.
Source
# 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 Inspect a RedoNode node.
Source
# 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 Inspect a RegularExpressionNode node.
Source
# 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 Inspect a RequiredKeywordParameterNode node.
Source
# 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 Inspect a RequiredParameterNode node.
Source
# 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 Inspect a RescueModifierNode node.
Source
# 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 Inspect a RescueNode node.
Source
# 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 Inspect a RestParameterNode node.
Source
# 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 Inspect a RetryNode node.
Source
# 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 Inspect a ReturnNode node.
Source
# 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 Inspect a SelfNode node.
Source
# 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 Inspect a SingletonClassNode node.
Source
# 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 Inspect a SourceEncodingNode node.
Source
# 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 Inspect a SourceFileNode node.
Source
# 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 Inspect a SourceLineNode node.
Source
# 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 Inspect a SplatNode node.
Source
# 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 Inspect a StatementsNode node.
Source
# 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 Inspect a StringNode node.
Source
# 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 Inspect a SuperNode node.
Source
# 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 Inspect a SymbolNode node.
Source
# 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 Inspect a TrueNode node.
Source
# 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 Inspect a UndefNode node.
Source
# 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 Inspect a UnlessNode node.
Source
# 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 Inspect a UntilNode node.
Source
# 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 Inspect a WhenNode node.
Source
# 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 Inspect a WhileNode node.
Source
# 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 Inspect a XStringNode node.
Source
# 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 Inspect a YieldNode node.
Private Instance Methods
Source
# 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 Compose a string representing the given inner location field.
Source
# 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 Compose a header for the given node.
Ruby Core © 1993–2024 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.