instance method
Prism::InspectVisitor#visit_parameters_node
visit_parameters_node(node)
lib/prism/inspect_visitor.rb
View on GitHub ↗
# File tmp/rubies/ruby-4.0.0/lib/prism/inspect_visitor.rb, line 1823
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.