This represents a node in the tree. It is the parent class of all of the various node types.
Represents the use of the ‘&&` operator or the `and` keyword.
left and right ^^^^^^^^^^^^^^
Represents a set of arguments to a method or a keyword.
return foo, bar, baz ^^^^^^^^^^^^^
Represents an array literal. This can be a regular array using brackets or a special array using % like %w or %i.
[1, 2, 3] ^^^^^^^^^
Represents an array pattern in pattern matching.
foo in 1, 2 ^^^^^^^^^^^ foo in [1, 2] ^^^^^^^^^^^^^ foo in *1 ^^^^^^^^^ foo in Bar[] ^^^^^^^^^^^^ foo in Bar[1, 2, 3] ^^^^^^^^^^^^^^^^^^^
Represents a block parameter to a method, block, or lambda definition.
def a(&b) ^^ end
Represents a block’s parameters declaration.
-> (a, b = 1; local) { } ^^^^^^^^^^^^^^^^^ foo do |a, b = 1; local| ^^^^^^^^^^^^^^^^^ end
Represents the use of the ‘&&=` operator on a call.
foo.bar &&= value ^^^^^^^^^^^^^^^^^
Represents a method call, in all of the various forms that can take.
foo ^^^ foo() ^^^^^ +foo ^^^^ foo + bar ^^^^^^^^^ foo.bar ^^^^^^^ foo&.bar ^^^^^^^^
Represents the use of an assignment operator on a call.
foo.bar += baz ^^^^^^^^^^^^^^
Represents the use of the ‘||=` operator on a call.
foo.bar ||= value ^^^^^^^^^^^^^^^^^
Represents assigning to a method call.
foo.bar, = 1 ^^^^^^^ begin rescue => foo.bar ^^^^^^^ end for foo.bar in baz do end ^^^^^^^
Represents assigning to a local variable in pattern matching.
foo => [bar => baz] ^^^^^^^^^^^^
Represents the use of a case statement for pattern matching.
case true in false end ^^^^^^^^^
Represents a class declaration involving the ‘class` keyword.
class Foo end ^^^^^^^^^^^^^
Represents an ‘else` clause in a `case`, `if`, or `unless` statement.
if a then b else c end ^^^^^^^^^^