Reset nil attributes to their default values to make the spec valid
Parses the most indented lines into blocks that are marked and added to the frontier
Returns the node id for the given backtrace location.
begin raise rescue => e loc = e.backtrace_locations.first RubyVM::AbstractSyntaxTree.node_id_for_backtrace_location(loc) end # => 0
def foo(); bar(); end ^^
{ **foo } ^^^^^
case foo; in bar; end ^^^^^^^^^^^^^^^^^^^^^
def foo(…); bar(…); end ^^^
“foo #{bar}” ^^^^^^^^^^^^
:“foo #{bar}” ^^^^^^^^^^^^^
foo #{bar}
^^^^^^^^^^^^
foo => bar ^^^^^^^^^^
/(?<foo>foo)/ =~ bar ^^^^^^^^^^^^^^^^^^^^
When the content of a string node is split across multiple lines, the parser gem creates individual string nodes for each line the content is part of.
For %-arrays whitespace, the parser gem only considers whitespace before the newline.
def foo(**); bar(**); end ^^ { **foo } ^^^^^
case foo; in bar; end ^^^^^^^^^^^^^^^^^^^^^
def foo(...); bar(...); end ^^^
"foo #{bar}" ^^^^^^^^^^^^
:"foo #{bar}" ^^^^^^^^^^^^^
`foo #{bar}` ^^^^^^^^^^^^
foo => bar ^^^^^^^^^^