[ruby/prism] Change numbered parameters

Previously numbered parameters were a field on blocks and lambdas
that indicated the maximum number of numbered parameters in either
the block or lambda, respectively. However they also had a
parameters field that would always be nil in these cases.

This changes it so that we introduce a NumberedParametersNode that
goes in place of parameters, which has a single uint8_t maximum
field on it. That field contains the maximum numbered parameter in
either the block or lambda.

As a part of the PR, I'm introducing a new UInt8Field type that
can be used on nodes, which is just to make it a little more
explicit what the maximum values can be (the maximum is actually 9,
since it only goes up to _9). Plus we can do a couple of nice
things in serialization like just read a single byte.

2d87303903
This commit is contained in:
Kevin Newton 2023-11-30 20:47:08 -05:00
parent 90d9c20a0c
commit cdb74d74af
205 changed files with 983 additions and 1361 deletions

View file

@ -103,9 +103,14 @@ module Prism
case node case node
when BlockNode, DefNode, LambdaNode when BlockNode, DefNode, LambdaNode
names = node.locals names = node.locals
params =
params = node.parameters if node.is_a?(DefNode)
params = params&.parameters unless node.is_a?(DefNode) node.parameters
elsif node.parameters.is_a?(NumberedParametersNode)
nil
else
node.parameters&.parameters
end
# prism places parameters in the same order that they appear in the # prism places parameters in the same order that they appear in the
# source. CRuby places them in the order that they need to appear # source. CRuby places them in the order that they need to appear

View file

@ -589,15 +589,12 @@ nodes:
type: constant[] type: constant[]
- name: parameters - name: parameters
type: node? type: node?
kind: BlockParametersNode
- name: body - name: body
type: node? type: node?
- name: opening_loc - name: opening_loc
type: location type: location
- name: closing_loc - name: closing_loc
type: location type: location
- name: numbered_parameters
type: uint32
comment: | comment: |
Represents a block of ruby code. Represents a block of ruby code.
@ -1772,11 +1769,8 @@ nodes:
type: location type: location
- name: parameters - name: parameters
type: node? type: node?
kind: BlockParametersNode
- name: body - name: body
type: node? type: node?
- name: numbered_parameters
type: uint32
comment: | comment: |
Represents using a lambda literal (not the lambda method call). Represents using a lambda literal (not the lambda method call).
@ -2026,6 +2020,16 @@ nodes:
def a(**nil) def a(**nil)
^^^^^ ^^^^^
end end
- name: NumberedParametersNode
fields:
- name: maximum
type: uint8
comment: |
Represents an implicit set of parameters through the use of numbered
parameters within a block or lambda.
-> { _1 + _2 }
^^^^^^^^^^^^^^
- name: NumberedReferenceReadNode - name: NumberedReferenceReadNode
fields: fields:
- name: number - name: number

View file

@ -474,7 +474,7 @@ typedef struct pm_scope {
* numbered parameters, and to pass information to consumers of the AST * numbered parameters, and to pass information to consumers of the AST
* about how many numbered parameters exist. * about how many numbered parameters exist.
*/ */
uint32_t numbered_parameters; uint8_t numbered_parameters;
} pm_scope_t; } pm_scope_t;
/** /**

View file

@ -1467,7 +1467,7 @@ pm_block_argument_node_create(pm_parser_t *parser, const pm_token_t *operator, p
* Allocate and initialize a new BlockNode node. * Allocate and initialize a new BlockNode node.
*/ */
static pm_block_node_t * static pm_block_node_t *
pm_block_node_create(pm_parser_t *parser, pm_constant_id_list_t *locals, const pm_token_t *opening, pm_block_parameters_node_t *parameters, pm_node_t *body, const pm_token_t *closing, uint32_t numbered_parameters) { pm_block_node_create(pm_parser_t *parser, pm_constant_id_list_t *locals, const pm_token_t *opening, pm_node_t *parameters, pm_node_t *body, const pm_token_t *closing) {
pm_block_node_t *node = PM_ALLOC_NODE(parser, pm_block_node_t); pm_block_node_t *node = PM_ALLOC_NODE(parser, pm_block_node_t);
*node = (pm_block_node_t) { *node = (pm_block_node_t) {
@ -1478,7 +1478,6 @@ pm_block_node_create(pm_parser_t *parser, pm_constant_id_list_t *locals, const p
.locals = *locals, .locals = *locals,
.parameters = parameters, .parameters = parameters,
.body = body, .body = body,
.numbered_parameters = numbered_parameters,
.opening_loc = PM_LOCATION_TOKEN_VALUE(opening), .opening_loc = PM_LOCATION_TOKEN_VALUE(opening),
.closing_loc = PM_LOCATION_TOKEN_VALUE(closing) .closing_loc = PM_LOCATION_TOKEN_VALUE(closing)
}; };
@ -3958,9 +3957,8 @@ pm_lambda_node_create(
const pm_token_t *operator, const pm_token_t *operator,
const pm_token_t *opening, const pm_token_t *opening,
const pm_token_t *closing, const pm_token_t *closing,
pm_block_parameters_node_t *parameters, pm_node_t *parameters,
pm_node_t *body, pm_node_t *body
uint32_t numbered_parameters
) { ) {
pm_lambda_node_t *node = PM_ALLOC_NODE(parser, pm_lambda_node_t); pm_lambda_node_t *node = PM_ALLOC_NODE(parser, pm_lambda_node_t);
@ -3977,8 +3975,7 @@ pm_lambda_node_create(
.opening_loc = PM_LOCATION_TOKEN_VALUE(opening), .opening_loc = PM_LOCATION_TOKEN_VALUE(opening),
.closing_loc = PM_LOCATION_TOKEN_VALUE(closing), .closing_loc = PM_LOCATION_TOKEN_VALUE(closing),
.parameters = parameters, .parameters = parameters,
.body = body, .body = body
.numbered_parameters = numbered_parameters
}; };
return node; return node;
@ -4442,7 +4439,25 @@ pm_no_keywords_parameter_node_create(pm_parser_t *parser, const pm_token_t *oper
} }
/** /**
* Allocate a new NthReferenceReadNode node. * Allocate and initialize a new NumberedParametersNode node.
*/
static pm_numbered_parameters_node_t *
pm_numbered_parameters_node_create(pm_parser_t *parser, const pm_location_t *location, uint8_t maximum) {
pm_numbered_parameters_node_t *node = PM_ALLOC_NODE(parser, pm_numbered_parameters_node_t);
*node = (pm_numbered_parameters_node_t) {
{
.type = PM_NUMBERED_PARAMETERS_NODE,
.location = *location
},
.maximum = maximum
};
return node;
}
/**
* Allocate and initialize a new NthReferenceReadNode node.
*/ */
static pm_numbered_reference_read_node_t * static pm_numbered_reference_read_node_t *
pm_numbered_reference_read_node_create(pm_parser_t *parser, const pm_token_t *name) { pm_numbered_reference_read_node_create(pm_parser_t *parser, const pm_token_t *name) {
@ -5822,7 +5837,7 @@ pm_parser_local_add(pm_parser_t *parser, pm_constant_id_t constant_id) {
* Set the numbered_parameters value of the current scope. * Set the numbered_parameters value of the current scope.
*/ */
static inline void static inline void
pm_parser_numbered_parameters_set(pm_parser_t *parser, uint32_t numbered_parameters) { pm_parser_numbered_parameters_set(pm_parser_t *parser, uint8_t numbered_parameters) {
parser->current_scope->numbered_parameters = numbered_parameters; parser->current_scope->numbered_parameters = numbered_parameters;
} }
@ -11845,24 +11860,24 @@ parse_block(pm_parser_t *parser) {
pm_accepts_block_stack_push(parser, true); pm_accepts_block_stack_push(parser, true);
pm_parser_scope_push(parser, false); pm_parser_scope_push(parser, false);
pm_block_parameters_node_t *parameters = NULL; pm_block_parameters_node_t *block_parameters = NULL;
if (accept1(parser, PM_TOKEN_PIPE)) { if (accept1(parser, PM_TOKEN_PIPE)) {
parser->current_scope->explicit_params = true; parser->current_scope->explicit_params = true;
pm_token_t block_parameters_opening = parser->previous; pm_token_t block_parameters_opening = parser->previous;
if (match1(parser, PM_TOKEN_PIPE)) { if (match1(parser, PM_TOKEN_PIPE)) {
parameters = pm_block_parameters_node_create(parser, NULL, &block_parameters_opening); block_parameters = pm_block_parameters_node_create(parser, NULL, &block_parameters_opening);
parser->command_start = true; parser->command_start = true;
parser_lex(parser); parser_lex(parser);
} else { } else {
parameters = parse_block_parameters(parser, true, &block_parameters_opening, false); block_parameters = parse_block_parameters(parser, true, &block_parameters_opening, false);
accept1(parser, PM_TOKEN_NEWLINE); accept1(parser, PM_TOKEN_NEWLINE);
parser->command_start = true; parser->command_start = true;
expect1(parser, PM_TOKEN_PIPE, PM_ERR_BLOCK_PARAM_PIPE_TERM); expect1(parser, PM_TOKEN_PIPE, PM_ERR_BLOCK_PARAM_PIPE_TERM);
} }
pm_block_parameters_node_closing_set(parameters, &parser->previous); pm_block_parameters_node_closing_set(block_parameters, &parser->previous);
} }
accept1(parser, PM_TOKEN_NEWLINE); accept1(parser, PM_TOKEN_NEWLINE);
@ -11891,11 +11906,17 @@ parse_block(pm_parser_t *parser) {
expect1(parser, PM_TOKEN_KEYWORD_END, PM_ERR_BLOCK_TERM_END); expect1(parser, PM_TOKEN_KEYWORD_END, PM_ERR_BLOCK_TERM_END);
} }
pm_node_t *parameters = (pm_node_t *) block_parameters;
uint8_t maximum = parser->current_scope->numbered_parameters;
if (parameters == NULL && (maximum > 0)) {
parameters = (pm_node_t *) pm_numbered_parameters_node_create(parser, &(pm_location_t) { .start = opening.start, .end = parser->previous.end }, maximum);
}
pm_constant_id_list_t locals = parser->current_scope->locals; pm_constant_id_list_t locals = parser->current_scope->locals;
uint32_t numbered_parameters = parser->current_scope->numbered_parameters;
pm_parser_scope_pop(parser); pm_parser_scope_pop(parser);
pm_accepts_block_stack_pop(parser); pm_accepts_block_stack_pop(parser);
return pm_block_node_create(parser, &locals, &opening, parameters, statements, &parser->previous, numbered_parameters); return pm_block_node_create(parser, &locals, &opening, parameters, statements, &parser->previous);
} }
/** /**
@ -12511,10 +12532,10 @@ parse_variable_call(pm_parser_t *parser) {
// We subtract the value for the character '0' to get the actual // We subtract the value for the character '0' to get the actual
// integer value of the number (only _1 through _9 are valid) // integer value of the number (only _1 through _9 are valid)
uint32_t number_as_int = (uint32_t) (number - '0'); uint8_t numbered_parameters = (uint8_t) (number - '0');
if (number_as_int > parser->current_scope->numbered_parameters) { if (numbered_parameters > parser->current_scope->numbered_parameters) {
parser->current_scope->numbered_parameters = number_as_int; parser->current_scope->numbered_parameters = numbered_parameters;
pm_parser_numbered_parameters_set(parser, number_as_int); pm_parser_numbered_parameters_set(parser, numbered_parameters);
} }
// When you use a numbered parameter, it implies the existence // When you use a numbered parameter, it implies the existence
@ -15707,7 +15728,7 @@ parse_expression_prefix(pm_parser_t *parser, pm_binding_power_t binding_power) {
pm_token_t operator = parser->previous; pm_token_t operator = parser->previous;
pm_parser_scope_push(parser, false); pm_parser_scope_push(parser, false);
pm_block_parameters_node_t *params; pm_block_parameters_node_t *block_parameters;
switch (parser->current.type) { switch (parser->current.type) {
case PM_TOKEN_PARENTHESIS_LEFT: { case PM_TOKEN_PARENTHESIS_LEFT: {
@ -15716,27 +15737,27 @@ parse_expression_prefix(pm_parser_t *parser, pm_binding_power_t binding_power) {
parser_lex(parser); parser_lex(parser);
if (match1(parser, PM_TOKEN_PARENTHESIS_RIGHT)) { if (match1(parser, PM_TOKEN_PARENTHESIS_RIGHT)) {
params = pm_block_parameters_node_create(parser, NULL, &opening); block_parameters = pm_block_parameters_node_create(parser, NULL, &opening);
} else { } else {
params = parse_block_parameters(parser, false, &opening, true); block_parameters = parse_block_parameters(parser, false, &opening, true);
} }
accept1(parser, PM_TOKEN_NEWLINE); accept1(parser, PM_TOKEN_NEWLINE);
expect1(parser, PM_TOKEN_PARENTHESIS_RIGHT, PM_ERR_EXPECT_RPAREN); expect1(parser, PM_TOKEN_PARENTHESIS_RIGHT, PM_ERR_EXPECT_RPAREN);
pm_block_parameters_node_closing_set(params, &parser->previous); pm_block_parameters_node_closing_set(block_parameters, &parser->previous);
break; break;
} }
case PM_CASE_PARAMETER: { case PM_CASE_PARAMETER: {
parser->current_scope->explicit_params = true; parser->current_scope->explicit_params = true;
pm_accepts_block_stack_push(parser, false); pm_accepts_block_stack_push(parser, false);
pm_token_t opening = not_provided(parser); pm_token_t opening = not_provided(parser);
params = parse_block_parameters(parser, false, &opening, true); block_parameters = parse_block_parameters(parser, false, &opening, true);
pm_accepts_block_stack_pop(parser); pm_accepts_block_stack_pop(parser);
break; break;
} }
default: { default: {
params = NULL; block_parameters = NULL;
break; break;
} }
} }
@ -15770,11 +15791,17 @@ parse_expression_prefix(pm_parser_t *parser, pm_binding_power_t binding_power) {
expect1(parser, PM_TOKEN_KEYWORD_END, PM_ERR_LAMBDA_TERM_END); expect1(parser, PM_TOKEN_KEYWORD_END, PM_ERR_LAMBDA_TERM_END);
} }
pm_node_t *parameters = (pm_node_t *) block_parameters;
uint8_t maximum = parser->current_scope->numbered_parameters;
if (parameters == NULL && (maximum > 0)) {
parameters = (pm_node_t *) pm_numbered_parameters_node_create(parser, &(pm_location_t) { .start = operator.start, .end = parser->previous.end }, maximum);
}
pm_constant_id_list_t locals = parser->current_scope->locals; pm_constant_id_list_t locals = parser->current_scope->locals;
uint32_t numbered_parameters = parser->current_scope->numbered_parameters;
pm_parser_scope_pop(parser); pm_parser_scope_pop(parser);
pm_accepts_block_stack_pop(parser); pm_accepts_block_stack_pop(parser);
return (pm_node_t *) pm_lambda_node_create(parser, &locals, &operator, &opening, &parser->previous, params, body, numbered_parameters); return (pm_node_t *) pm_lambda_node_create(parser, &locals, &operator, &opening, &parser->previous, parameters, body);
} }
case PM_TOKEN_UPLUS: { case PM_TOKEN_UPLUS: {
parser_lex(parser); parser_lex(parser);

View file

@ -181,6 +181,9 @@ pm_ast_new(pm_parser_t *parser, pm_node_t *node, rb_encoding *encoding) {
<%- when Prism::OptionalLocationField -%> <%- when Prism::OptionalLocationField -%>
#line <%= __LINE__ + 1 %> "<%= File.basename(__FILE__) %>" #line <%= __LINE__ + 1 %> "<%= File.basename(__FILE__) %>"
argv[<%= index %>] = cast-><%= field.name %>.start == NULL ? Qnil : pm_location_new(parser, cast-><%= field.name %>.start, cast-><%= field.name %>.end, source); argv[<%= index %>] = cast-><%= field.name %>.start == NULL ? Qnil : pm_location_new(parser, cast-><%= field.name %>.start, cast-><%= field.name %>.end, source);
<%- when Prism::UInt8Field -%>
#line <%= __LINE__ + 1 %> "<%= File.basename(__FILE__) %>"
argv[<%= index %>] = UINT2NUM(cast-><%= field.name %>);
<%- when Prism::UInt32Field -%> <%- when Prism::UInt32Field -%>
#line <%= __LINE__ + 1 %> "<%= File.basename(__FILE__) %>" #line <%= __LINE__ + 1 %> "<%= File.basename(__FILE__) %>"
argv[<%= index %>] = ULONG2NUM(cast-><%= field.name %>); argv[<%= index %>] = ULONG2NUM(cast-><%= field.name %>);

View file

@ -168,6 +168,7 @@ typedef struct pm_<%= node.human %> {
when Prism::ConstantListField then "pm_constant_id_list_t #{field.name}" when Prism::ConstantListField then "pm_constant_id_list_t #{field.name}"
when Prism::StringField then "pm_string_t #{field.name}" when Prism::StringField then "pm_string_t #{field.name}"
when Prism::LocationField, Prism::OptionalLocationField then "pm_location_t #{field.name}" when Prism::LocationField, Prism::OptionalLocationField then "pm_location_t #{field.name}"
when Prism::UInt8Field then "uint8_t #{field.name}"
when Prism::UInt32Field then "uint32_t #{field.name}" when Prism::UInt32Field then "uint32_t #{field.name}"
else raise field.class.name else raise field.class.name
end end

View file

@ -129,7 +129,7 @@ module Prism
digraph.edge("#{id}:<%= field.name %> -> #{waypoint};") digraph.edge("#{id}:<%= field.name %> -> #{waypoint};")
node.<%= field.name %>.each { |child| digraph.edge("#{waypoint} -> #{node_id(child)};") } node.<%= field.name %>.each { |child| digraph.edge("#{waypoint} -> #{node_id(child)};") }
<%- when Prism::StringField, Prism::ConstantField, Prism::OptionalConstantField, Prism::UInt32Field, Prism::ConstantListField -%> <%- when Prism::StringField, Prism::ConstantField, Prism::OptionalConstantField, Prism::UInt8Field, Prism::UInt32Field, Prism::ConstantListField -%>
table.field("<%= field.name %>", node.<%= field.name %>.inspect) table.field("<%= field.name %>", node.<%= field.name %>.inspect)
<%- when Prism::LocationField -%> <%- when Prism::LocationField -%>
table.field("<%= field.name %>", location_inspect(node.<%= field.name %>)) table.field("<%= field.name %>", location_inspect(node.<%= field.name %>))

View file

@ -190,7 +190,7 @@ module Prism
inspector << "<%= pointer %><%= field.name %>:\n" inspector << "<%= pointer %><%= field.name %>:\n"
inspector << <%= field.name %>.inspect(inspector.child_inspector("<%= preadd %>")).delete_prefix(inspector.prefix) inspector << <%= field.name %>.inspect(inspector.child_inspector("<%= preadd %>")).delete_prefix(inspector.prefix)
end end
<%- when Prism::ConstantField, Prism::StringField, Prism::UInt32Field -%> <%- when Prism::ConstantField, Prism::StringField, Prism::UInt8Field, Prism::UInt32Field -%>
inspector << "<%= pointer %><%= field.name %>: #{<%= field.name %>.inspect}\n" inspector << "<%= pointer %><%= field.name %>: #{<%= field.name %>.inspect}\n"
<%- when Prism::OptionalConstantField -%> <%- when Prism::OptionalConstantField -%>
if (<%= field.name %> = self.<%= field.name %>).nil? if (<%= field.name %> = self.<%= field.name %>).nil?

View file

@ -253,6 +253,7 @@ module Prism
when Prism::ConstantListField then "Array.new(load_varuint) { load_required_constant }" when Prism::ConstantListField then "Array.new(load_varuint) { load_required_constant }"
when Prism::LocationField then "load_location" when Prism::LocationField then "load_location"
when Prism::OptionalLocationField then "load_optional_location" when Prism::OptionalLocationField then "load_optional_location"
when Prism::UInt8Field then "io.getbyte"
when Prism::UInt32Field, Prism::FlagsField then "load_varuint" when Prism::UInt32Field, Prism::FlagsField then "load_varuint"
else raise else raise
end end
@ -286,6 +287,7 @@ module Prism
when Prism::ConstantListField then "Array.new(load_varuint) { load_required_constant }" when Prism::ConstantListField then "Array.new(load_varuint) { load_required_constant }"
when Prism::LocationField then "load_location" when Prism::LocationField then "load_location"
when Prism::OptionalLocationField then "load_optional_location" when Prism::OptionalLocationField then "load_optional_location"
when Prism::UInt8Field then "io.getbyte"
when Prism::UInt32Field, Prism::FlagsField then "load_varuint" when Prism::UInt32Field, Prism::FlagsField then "load_varuint"
else raise else raise
end end

View file

@ -56,12 +56,12 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
<%- nodes.each do |node| -%> <%- nodes.each do |node| -%>
#line <%= __LINE__ + 1 %> "<%= File.basename(__FILE__) %>" #line <%= __LINE__ + 1 %> "<%= File.basename(__FILE__) %>"
case <%= node.type %>: { case <%= node.type %>: {
<%- if node.fields.any? { |field| ![Prism::LocationField, Prism::OptionalLocationField, Prism::UInt32Field, Prism::FlagsField, Prism::ConstantField, Prism::OptionalConstantField].include?(field.class) } -%> <%- if node.fields.any? { |field| ![Prism::LocationField, Prism::OptionalLocationField, Prism::UInt8Field, Prism::UInt32Field, Prism::FlagsField, Prism::ConstantField, Prism::OptionalConstantField].include?(field.class) } -%>
pm_<%= node.human %>_t *cast = (pm_<%= node.human %>_t *) node; pm_<%= node.human %>_t *cast = (pm_<%= node.human %>_t *) node;
<%- end -%> <%- end -%>
<%- node.fields.each do |field| -%> <%- node.fields.each do |field| -%>
<%- case field -%> <%- case field -%>
<%- when Prism::LocationField, Prism::OptionalLocationField, Prism::UInt32Field, Prism::FlagsField, Prism::ConstantField, Prism::OptionalConstantField -%> <%- when Prism::LocationField, Prism::OptionalLocationField, Prism::UInt8Field, Prism::UInt32Field, Prism::FlagsField, Prism::ConstantField, Prism::OptionalConstantField -%>
<%- when Prism::NodeField -%> <%- when Prism::NodeField -%>
pm_node_destroy(parser, (pm_node_t *)cast-><%= field.name %>); pm_node_destroy(parser, (pm_node_t *)cast-><%= field.name %>);
<%- when Prism::OptionalNodeField -%> <%- when Prism::OptionalNodeField -%>
@ -113,7 +113,7 @@ pm_node_memsize_node(pm_node_t *node, pm_memsize_t *memsize) {
<%- end -%> <%- end -%>
<%- node.fields.each do |field| -%> <%- node.fields.each do |field| -%>
<%- case field -%> <%- case field -%>
<%- when Prism::ConstantField, Prism::OptionalConstantField, Prism::UInt32Field, Prism::FlagsField, Prism::LocationField, Prism::OptionalLocationField -%> <%- when Prism::ConstantField, Prism::OptionalConstantField, Prism::UInt8Field, Prism::UInt32Field, Prism::FlagsField, Prism::LocationField, Prism::OptionalLocationField -%>
<%- when Prism::NodeField -%> <%- when Prism::NodeField -%>
pm_node_memsize_node((pm_node_t *)cast-><%= field.name %>, memsize); pm_node_memsize_node((pm_node_t *)cast-><%= field.name %>, memsize);
<%- when Prism::OptionalNodeField -%> <%- when Prism::OptionalNodeField -%>

View file

@ -152,7 +152,7 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
prettyprint_source(output_buffer, location->start, (size_t) (location->end - location->start)); prettyprint_source(output_buffer, location->start, (size_t) (location->end - location->start));
pm_buffer_append_string(output_buffer, "\"\n", 2); pm_buffer_append_string(output_buffer, "\"\n", 2);
} }
<%- when Prism::UInt32Field -%> <%- when Prism::UInt8Field, Prism::UInt32Field -%>
pm_buffer_append_format(output_buffer, " %d\n", cast-><%= field.name %>); pm_buffer_append_format(output_buffer, " %d\n", cast-><%= field.name %>);
<%- when Prism::FlagsField -%> <%- when Prism::FlagsField -%>
bool found = false; bool found = false;

View file

@ -107,6 +107,8 @@ pm_serialize_node(pm_parser_t *parser, pm_node_t *node, pm_buffer_t *buffer) {
pm_serialize_location(parser, &((pm_<%= node.human %>_t *)node)-><%= field.name %>, buffer); pm_serialize_location(parser, &((pm_<%= node.human %>_t *)node)-><%= field.name %>, buffer);
} }
<%- end -%> <%- end -%>
<%- when Prism::UInt8Field -%>
pm_buffer_append_byte(buffer, ((pm_<%= node.human %>_t *)node)-><%= field.name %>);
<%- when Prism::UInt32Field -%> <%- when Prism::UInt32Field -%>
pm_buffer_append_varuint(buffer, ((pm_<%= node.human %>_t *)node)-><%= field.name %>); pm_buffer_append_varuint(buffer, ((pm_<%= node.human %>_t *)node)-><%= field.name %>);
<%- when Prism::FlagsField -%> <%- when Prism::FlagsField -%>

View file

@ -197,6 +197,21 @@ module Prism
end end
end end
# This represents an integer field.
class UInt8Field < Field
def rbs_class
"Integer"
end
def rbi_class
"Integer"
end
def java_type
"int"
end
end
# This represents an integer field. # This represents an integer field.
class UInt32Field < Field class UInt32Field < Field
def rbs_class def rbs_class
@ -282,6 +297,7 @@ module Prism
when "constant[]" then ConstantListField when "constant[]" then ConstantListField
when "location" then LocationField when "location" then LocationField
when "location?" then OptionalLocationField when "location?" then OptionalLocationField
when "uint8" then UInt8Field
when "uint32" then UInt32Field when "uint32" then UInt32Field
when "flags" then FlagsField when "flags" then FlagsField
else raise("Unknown field type: #{name.inspect}") else raise("Unknown field type: #{name.inspect}")

View file

@ -452,8 +452,7 @@ module Prism
nil, nil,
StatementsNode([ModuleNode([], Location(), ConstantReadNode(:Foo), nil, Location(), :Foo)]), StatementsNode([ModuleNode([], Location(), ConstantReadNode(:Foo), nil, Location(), :Foo)]),
Location(), Location(),
Location(), Location()
0
), ),
0 0
)] )]
@ -645,8 +644,7 @@ module Prism
Location(), Location(),
Location() Location()
), ),
nil, nil
0
) )
assert_errors expected, "-> (a, b, ) {}", [ assert_errors expected, "-> (a, b, ) {}", [
["unexpected `,` in parameters", 8..9] ["unexpected `,` in parameters", 8..9]
@ -1022,8 +1020,7 @@ module Prism
Location(), Location(),
Location(), Location(),
BlockParametersNode(ParametersNode([], [], nil, [], [], ForwardingParameterNode(), nil), [], Location(), Location()), BlockParametersNode(ParametersNode([], [], nil, [], [], ForwardingParameterNode(), nil), [], Location(), Location()),
nil, nil
0
) )
assert_errors expected, "->(...) {}", [ assert_errors expected, "->(...) {}", [
@ -1045,8 +1042,7 @@ module Prism
BlockParametersNode(ParametersNode([], [], nil, [], [], ForwardingParameterNode(), nil), [], Location(), Location()), BlockParametersNode(ParametersNode([], [], nil, [], [], ForwardingParameterNode(), nil), [], Location(), Location()),
nil, nil,
Location(), Location(),
Location(), Location()
0
), ),
0 0
) )

View file

@ -619,6 +619,11 @@ module Prism
assert_location(NoKeywordsParameterNode, "def foo(**nil); end", 8...13) { |node| node.parameters.keyword_rest } assert_location(NoKeywordsParameterNode, "def foo(**nil); end", 8...13) { |node| node.parameters.keyword_rest }
end end
def test_NumberedParametersNode
assert_location(NumberedParametersNode, "-> { _1 }", &:parameters)
assert_location(NumberedParametersNode, "foo { _1 }", 4...10) { |node| node.block.parameters }
end
def test_NumberedReferenceReadNode def test_NumberedReferenceReadNode
assert_location(NumberedReferenceReadNode, "$1") assert_location(NumberedReferenceReadNode, "$1")
end end

View file

@ -227,14 +227,12 @@
│ │ │ │ │ │ │ │ │ │ │ ├── parameters: ∅ │ │ │ │ │ │ │ │ │ │ │ ├── parameters: ∅
│ │ │ │ │ │ │ │ │ │ │ ├── body: ∅ │ │ │ │ │ │ │ │ │ │ │ ├── body: ∅
│ │ │ │ │ │ │ │ │ │ │ ├── opening_loc: (18,22)-(18,24) = "do" │ │ │ │ │ │ │ │ │ │ │ ├── opening_loc: (18,22)-(18,24) = "do"
│ │ │ │ │ │ │ │ │ │ │ ├── closing_loc: (19,4)-(19,7) = "end" │ │ │ │ │ │ │ │ │ │ │ └── closing_loc: (19,4)-(19,7) = "end"
│ │ │ │ │ │ │ │ │ │ │ └── numbered_parameters: 0
│ │ │ │ │ │ │ │ │ │ └── flags: ∅ │ │ │ │ │ │ │ │ │ │ └── flags: ∅
│ │ │ │ │ │ │ │ │ └── end_keyword_loc: (20,2)-(20,5) = "end" │ │ │ │ │ │ │ │ │ └── end_keyword_loc: (20,2)-(20,5) = "end"
│ │ │ │ │ │ │ │ └── end_keyword_loc: (20,2)-(20,5) = "end" │ │ │ │ │ │ │ │ └── end_keyword_loc: (20,2)-(20,5) = "end"
│ │ │ │ │ │ │ ├── opening_loc: (15,40)-(15,42) = "do" │ │ │ │ │ │ │ ├── opening_loc: (15,40)-(15,42) = "do"
│ │ │ │ │ │ │ ├── closing_loc: (21,0)-(21,3) = "end" │ │ │ │ │ │ │ └── closing_loc: (21,0)-(21,3) = "end"
│ │ │ │ │ │ │ └── numbered_parameters: 0
│ │ │ │ │ │ └── flags: ∅ │ │ │ │ │ │ └── flags: ∅
│ │ │ │ │ └── end_keyword_loc: (21,4)-(21,7) = "end" │ │ │ │ │ └── end_keyword_loc: (21,4)-(21,7) = "end"
│ │ │ │ └── end_keyword_loc: (21,4)-(21,7) = "end" │ │ │ │ └── end_keyword_loc: (21,4)-(21,7) = "end"

View file

@ -52,8 +52,7 @@
│ │ │ ├── block: ∅ │ │ │ ├── block: ∅
│ │ │ └── flags: variable_call │ │ │ └── flags: variable_call
│ │ ├── opening_loc: (1,9)-(1,10) = "{" │ │ ├── opening_loc: (1,9)-(1,10) = "{"
│ │ ├── closing_loc: (1,15)-(1,16) = "}" │ │ └── closing_loc: (1,15)-(1,16) = "}"
│ │ └── numbered_parameters: 0
│ └── flags: ∅ │ └── flags: ∅
├── @ CallNode (location: (3,0)-(5,3)) ├── @ CallNode (location: (3,0)-(5,3))
│ ├── receiver: │ ├── receiver:
@ -104,8 +103,7 @@
│ │ │ ├── block: ∅ │ │ │ ├── block: ∅
│ │ │ └── flags: variable_call │ │ │ └── flags: variable_call
│ │ ├── opening_loc: (3,9)-(3,11) = "do" │ │ ├── opening_loc: (3,9)-(3,11) = "do"
│ │ ├── closing_loc: (5,0)-(5,3) = "end" │ │ └── closing_loc: (5,0)-(5,3) = "end"
│ │ └── numbered_parameters: 0
│ └── flags: ∅ │ └── flags: ∅
├── @ CallNode (location: (7,0)-(7,35)) ├── @ CallNode (location: (7,0)-(7,35))
│ ├── receiver: │ ├── receiver:
@ -165,8 +163,7 @@
│ │ │ ├── operator: :+ │ │ │ ├── operator: :+
│ │ │ └── depth: 0 │ │ │ └── depth: 0
│ │ ├── opening_loc: (7,12)-(7,13) = "{" │ │ ├── opening_loc: (7,12)-(7,13) = "{"
│ │ ├── closing_loc: (7,34)-(7,35) = "}" │ │ └── closing_loc: (7,34)-(7,35) = "}"
│ │ └── numbered_parameters: 0
│ └── flags: ∅ │ └── flags: ∅
├── @ CallNode (location: (9,0)-(9,10)) ├── @ CallNode (location: (9,0)-(9,10))
│ ├── receiver: ∅ │ ├── receiver: ∅
@ -182,8 +179,7 @@
│ │ ├── parameters: ∅ │ │ ├── parameters: ∅
│ │ ├── body: ∅ │ │ ├── body: ∅
│ │ ├── opening_loc: (9,4)-(9,6) = "do" │ │ ├── opening_loc: (9,4)-(9,6) = "do"
│ │ ├── closing_loc: (9,7)-(9,10) = "end" │ │ └── closing_loc: (9,7)-(9,10) = "end"
│ │ └── numbered_parameters: 0
│ └── flags: ∅ │ └── flags: ∅
├── @ CallNode (location: (11,0)-(11,21)) ├── @ CallNode (location: (11,0)-(11,21))
│ ├── receiver: ∅ │ ├── receiver: ∅
@ -222,8 +218,7 @@
│ │ │ │ │ ├── parameters: ∅ │ │ │ │ │ ├── parameters: ∅
│ │ │ │ │ ├── body: ∅ │ │ │ │ │ ├── body: ∅
│ │ │ │ │ ├── opening_loc: (11,14)-(11,16) = "do" │ │ │ │ │ ├── opening_loc: (11,14)-(11,16) = "do"
│ │ │ │ │ ├── closing_loc: (11,17)-(11,20) = "end" │ │ │ │ │ └── closing_loc: (11,17)-(11,20) = "end"
│ │ │ │ │ └── numbered_parameters: 0
│ │ │ │ └── flags: ∅ │ │ │ │ └── flags: ∅
│ │ │ ├── opening_loc: (11,9)-(11,10) = "(" │ │ │ ├── opening_loc: (11,9)-(11,10) = "("
│ │ │ └── closing_loc: (11,20)-(11,21) = ")" │ │ │ └── closing_loc: (11,20)-(11,21) = ")"
@ -258,8 +253,7 @@
│ │ ├── parameters: ∅ │ │ ├── parameters: ∅
│ │ ├── body: ∅ │ │ ├── body: ∅
│ │ ├── opening_loc: (13,8)-(13,10) = "do" │ │ ├── opening_loc: (13,8)-(13,10) = "do"
│ │ ├── closing_loc: (13,11)-(13,14) = "end" │ │ └── closing_loc: (13,11)-(13,14) = "end"
│ │ └── numbered_parameters: 0
│ └── flags: ∅ │ └── flags: ∅
├── @ CallNode (location: (15,0)-(15,18)) ├── @ CallNode (location: (15,0)-(15,18))
│ ├── receiver: ∅ │ ├── receiver: ∅
@ -301,8 +295,7 @@
│ │ ├── parameters: ∅ │ │ ├── parameters: ∅
│ │ ├── body: ∅ │ │ ├── body: ∅
│ │ ├── opening_loc: (15,12)-(15,14) = "do" │ │ ├── opening_loc: (15,12)-(15,14) = "do"
│ │ ├── closing_loc: (15,15)-(15,18) = "end" │ │ └── closing_loc: (15,15)-(15,18) = "end"
│ │ └── numbered_parameters: 0
│ └── flags: ∅ │ └── flags: ∅
├── @ CallNode (location: (17,0)-(18,3)) ├── @ CallNode (location: (17,0)-(18,3))
│ ├── receiver: ∅ │ ├── receiver: ∅
@ -361,8 +354,7 @@
│ │ │ └── closing_loc: (17,16)-(17,17) = "|" │ │ │ └── closing_loc: (17,16)-(17,17) = "|"
│ │ ├── body: ∅ │ │ ├── body: ∅
│ │ ├── opening_loc: (17,4)-(17,6) = "do" │ │ ├── opening_loc: (17,4)-(17,6) = "do"
│ │ ├── closing_loc: (18,0)-(18,3) = "end" │ │ └── closing_loc: (18,0)-(18,3) = "end"
│ │ └── numbered_parameters: 0
│ └── flags: ∅ │ └── flags: ∅
├── @ CallNode (location: (20,0)-(22,3)) ├── @ CallNode (location: (20,0)-(22,3))
│ ├── receiver: ∅ │ ├── receiver: ∅
@ -392,8 +384,7 @@
│ │ │ ├── ensure_clause: ∅ │ │ │ ├── ensure_clause: ∅
│ │ │ └── end_keyword_loc: (22,0)-(22,3) = "end" │ │ │ └── end_keyword_loc: (22,0)-(22,3) = "end"
│ │ ├── opening_loc: (20,4)-(20,6) = "do" │ │ ├── opening_loc: (20,4)-(20,6) = "do"
│ │ ├── closing_loc: (22,0)-(22,3) = "end" │ │ └── closing_loc: (22,0)-(22,3) = "end"
│ │ └── numbered_parameters: 0
│ └── flags: ∅ │ └── flags: ∅
├── @ CallNode (location: (24,0)-(29,3)) ├── @ CallNode (location: (24,0)-(29,3))
│ ├── receiver: ∅ │ ├── receiver: ∅
@ -439,16 +430,13 @@
│ │ │ │ │ │ ├── parameters: ∅ │ │ │ │ │ │ ├── parameters: ∅
│ │ │ │ │ │ ├── body: ∅ │ │ │ │ │ │ ├── body: ∅
│ │ │ │ │ │ ├── opening_loc: (26,8)-(26,10) = "do" │ │ │ │ │ │ ├── opening_loc: (26,8)-(26,10) = "do"
│ │ │ │ │ │ ├── closing_loc: (27,4)-(27,7) = "end" │ │ │ │ │ │ └── closing_loc: (27,4)-(27,7) = "end"
│ │ │ │ │ │ └── numbered_parameters: 0
│ │ │ │ │ └── flags: ∅ │ │ │ │ │ └── flags: ∅
│ │ │ │ ├── opening_loc: (25,6)-(25,8) = "do" │ │ │ │ ├── opening_loc: (25,6)-(25,8) = "do"
│ │ │ │ ├── closing_loc: (28,2)-(28,5) = "end" │ │ │ │ └── closing_loc: (28,2)-(28,5) = "end"
│ │ │ │ └── numbered_parameters: 0
│ │ │ └── flags: ∅ │ │ │ └── flags: ∅
│ │ ├── opening_loc: (24,4)-(24,6) = "do" │ │ ├── opening_loc: (24,4)-(24,6) = "do"
│ │ ├── closing_loc: (29,0)-(29,3) = "end" │ │ └── closing_loc: (29,0)-(29,3) = "end"
│ │ └── numbered_parameters: 0
│ └── flags: ∅ │ └── flags: ∅
├── @ CallNode (location: (31,0)-(31,16)) ├── @ CallNode (location: (31,0)-(31,16))
│ ├── receiver: │ ├── receiver:
@ -499,8 +487,7 @@
│ │ │ ├── block: ∅ │ │ │ ├── block: ∅
│ │ │ └── flags: variable_call │ │ │ └── flags: variable_call
│ │ ├── opening_loc: (31,9)-(31,10) = "{" │ │ ├── opening_loc: (31,9)-(31,10) = "{"
│ │ ├── closing_loc: (31,15)-(31,16) = "}" │ │ └── closing_loc: (31,15)-(31,16) = "}"
│ │ └── numbered_parameters: 0
│ └── flags: ∅ │ └── flags: ∅
├── @ CallNode (location: (33,0)-(33,24)) ├── @ CallNode (location: (33,0)-(33,24))
│ ├── receiver: ∅ │ ├── receiver: ∅
@ -546,8 +533,7 @@
│ │ │ ├── name: :x │ │ │ ├── name: :x
│ │ │ └── depth: 0 │ │ │ └── depth: 0
│ │ ├── opening_loc: (33,4)-(33,5) = "{" │ │ ├── opening_loc: (33,4)-(33,5) = "{"
│ │ ├── closing_loc: (33,23)-(33,24) = "}" │ │ └── closing_loc: (33,23)-(33,24) = "}"
│ │ └── numbered_parameters: 0
│ └── flags: ∅ │ └── flags: ∅
├── @ CallNode (location: (35,0)-(35,11)) ├── @ CallNode (location: (35,0)-(35,11))
│ ├── receiver: ∅ │ ├── receiver: ∅
@ -578,8 +564,7 @@
│ │ │ └── closing_loc: (35,8)-(35,9) = "|" │ │ │ └── closing_loc: (35,8)-(35,9) = "|"
│ │ ├── body: ∅ │ │ ├── body: ∅
│ │ ├── opening_loc: (35,4)-(35,5) = "{" │ │ ├── opening_loc: (35,4)-(35,5) = "{"
│ │ ├── closing_loc: (35,10)-(35,11) = "}" │ │ └── closing_loc: (35,10)-(35,11) = "}"
│ │ └── numbered_parameters: 0
│ └── flags: ∅ │ └── flags: ∅
├── @ LocalVariableWriteNode (location: (37,0)-(37,8)) ├── @ LocalVariableWriteNode (location: (37,0)-(37,8))
│ ├── name: :fork │ ├── name: :fork
@ -618,8 +603,7 @@
│ │ │ └── closing_loc: (38,10)-(38,11) = "|" │ │ │ └── closing_loc: (38,10)-(38,11) = "|"
│ │ ├── body: ∅ │ │ ├── body: ∅
│ │ ├── opening_loc: (38,5)-(38,7) = "do" │ │ ├── opening_loc: (38,5)-(38,7) = "do"
│ │ ├── closing_loc: (39,0)-(39,3) = "end" │ │ └── closing_loc: (39,0)-(39,3) = "end"
│ │ └── numbered_parameters: 0
│ └── flags: ∅ │ └── flags: ∅
├── @ CallNode (location: (41,0)-(41,12)) ├── @ CallNode (location: (41,0)-(41,12))
│ ├── receiver: ∅ │ ├── receiver: ∅
@ -650,8 +634,7 @@
│ │ │ └── closing_loc: (41,9)-(41,10) = "|" │ │ │ └── closing_loc: (41,9)-(41,10) = "|"
│ │ ├── body: ∅ │ │ ├── body: ∅
│ │ ├── opening_loc: (41,5)-(41,6) = "{" │ │ ├── opening_loc: (41,5)-(41,6) = "{"
│ │ ├── closing_loc: (41,11)-(41,12) = "}" │ │ └── closing_loc: (41,11)-(41,12) = "}"
│ │ └── numbered_parameters: 0
│ └── flags: ∅ │ └── flags: ∅
├── @ CallNode (location: (43,0)-(44,3)) ├── @ CallNode (location: (43,0)-(44,3))
│ ├── receiver: ∅ │ ├── receiver: ∅
@ -667,8 +650,7 @@
│ │ ├── parameters: ∅ │ │ ├── parameters: ∅
│ │ ├── body: ∅ │ │ ├── body: ∅
│ │ ├── opening_loc: (43,2)-(43,4) = "do" │ │ ├── opening_loc: (43,2)-(43,4) = "do"
│ │ ├── closing_loc: (44,0)-(44,3) = "end" │ │ └── closing_loc: (44,0)-(44,3) = "end"
│ │ └── numbered_parameters: 0
│ └── flags: ∅ │ └── flags: ∅
├── @ CallNode (location: (46,0)-(46,4)) ├── @ CallNode (location: (46,0)-(46,4))
│ ├── receiver: ∅ │ ├── receiver: ∅
@ -684,8 +666,7 @@
│ │ ├── parameters: ∅ │ │ ├── parameters: ∅
│ │ ├── body: ∅ │ │ ├── body: ∅
│ │ ├── opening_loc: (46,2)-(46,3) = "{" │ │ ├── opening_loc: (46,2)-(46,3) = "{"
│ │ ├── closing_loc: (46,3)-(46,4) = "}" │ │ └── closing_loc: (46,3)-(46,4) = "}"
│ │ └── numbered_parameters: 0
│ └── flags: ∅ │ └── flags: ∅
├── @ CallNode (location: (48,0)-(52,1)) ├── @ CallNode (location: (48,0)-(52,1))
│ ├── receiver: ∅ │ ├── receiver: ∅
@ -735,8 +716,7 @@
│ │ │ │ │ └── closing_loc: (51,2)-(51,3) = "|" │ │ │ │ │ └── closing_loc: (51,2)-(51,3) = "|"
│ │ │ │ ├── body: ∅ │ │ │ │ ├── body: ∅
│ │ │ │ ├── opening_loc: (48,11)-(48,12) = "{" │ │ │ │ ├── opening_loc: (48,11)-(48,12) = "{"
│ │ │ │ ├── closing_loc: (52,0)-(52,1) = "}" │ │ │ │ └── closing_loc: (52,0)-(52,1) = "}"
│ │ │ │ └── numbered_parameters: 0
│ │ │ └── flags: ∅ │ │ │ └── flags: ∅
│ │ └── flags: ∅ │ │ └── flags: ∅
│ ├── closing_loc: ∅ │ ├── closing_loc: ∅
@ -772,6 +752,5 @@
│ │ └── closing_loc: (54,12)-(54,13) = "|" │ │ └── closing_loc: (54,12)-(54,13) = "|"
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (54,4)-(54,6) = "do" │ ├── opening_loc: (54,4)-(54,6) = "do"
│ ├── closing_loc: (54,14)-(54,17) = "end" │ └── closing_loc: (54,14)-(54,17) = "end"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -151,8 +151,7 @@
│ │ │ │ │ └── flags: ∅ │ │ │ │ │ └── flags: ∅
│ │ │ │ └── keyword_loc: (23,6)-(23,11) = "break" │ │ │ │ └── keyword_loc: (23,6)-(23,11) = "break"
│ │ │ ├── opening_loc: (23,4)-(23,5) = "{" │ │ │ ├── opening_loc: (23,4)-(23,5) = "{"
│ │ │ ├── closing_loc: (23,15)-(23,16) = "}" │ │ │ └── closing_loc: (23,15)-(23,16) = "}"
│ │ │ └── numbered_parameters: 0
│ │ └── flags: ∅ │ │ └── flags: ∅
│ ├── call_operator_loc: ∅ │ ├── call_operator_loc: ∅
│ ├── name: :== │ ├── name: :==
@ -203,8 +202,7 @@
│ │ │ ├── arguments: ∅ │ │ │ ├── arguments: ∅
│ │ │ └── keyword_loc: (25,10)-(25,15) = "break" │ │ │ └── keyword_loc: (25,10)-(25,15) = "break"
│ │ ├── opening_loc: (25,4)-(25,5) = "{" │ │ ├── opening_loc: (25,4)-(25,5) = "{"
│ │ ├── closing_loc: (25,16)-(25,17) = "}" │ │ └── closing_loc: (25,16)-(25,17) = "}"
│ │ └── numbered_parameters: 0
│ └── flags: ∅ │ └── flags: ∅
├── call_operator_loc: ∅ ├── call_operator_loc: ∅
├── name: :== ├── name: :==

View file

@ -351,6 +351,5 @@
│ │ │ └── operator_loc: ∅ │ │ │ └── operator_loc: ∅
│ │ └── closing_loc: (25,19)-(25,20) = "}" │ │ └── closing_loc: (25,19)-(25,20) = "}"
│ ├── opening_loc: (23,4)-(23,6) = "do" │ ├── opening_loc: (23,4)-(23,6) = "do"
│ ├── closing_loc: (26,0)-(26,3) = "end" │ └── closing_loc: (26,0)-(26,3) = "end"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -364,8 +364,7 @@
│ │ │ └── closing_loc: (34,14)-(34,15) = "|" │ │ │ └── closing_loc: (34,14)-(34,15) = "|"
│ │ ├── body: ∅ │ │ ├── body: ∅
│ │ ├── opening_loc: (34,9)-(34,11) = "do" │ │ ├── opening_loc: (34,9)-(34,11) = "do"
│ │ ├── closing_loc: (35,2)-(35,5) = "end" │ │ └── closing_loc: (35,2)-(35,5) = "end"
│ │ └── numbered_parameters: 0
│ └── flags: ∅ │ └── flags: ∅
├── consequent: ├── consequent:
│ @ IfNode (location: (36,0)-(42,3)) │ @ IfNode (location: (36,0)-(42,3))
@ -406,8 +405,7 @@
│ │ │ │ └── closing_loc: (37,14)-(37,15) = "|" │ │ │ │ └── closing_loc: (37,14)-(37,15) = "|"
│ │ │ ├── body: ∅ │ │ │ ├── body: ∅
│ │ │ ├── opening_loc: (37,9)-(37,11) = "do" │ │ │ ├── opening_loc: (37,9)-(37,11) = "do"
│ │ │ ├── closing_loc: (38,2)-(38,5) = "end" │ │ │ └── closing_loc: (38,2)-(38,5) = "end"
│ │ │ └── numbered_parameters: 0
│ │ └── flags: ∅ │ │ └── flags: ∅
│ ├── consequent: │ ├── consequent:
│ │ @ ElseNode (location: (39,0)-(42,3)) │ │ @ ElseNode (location: (39,0)-(42,3))
@ -444,8 +442,7 @@
│ │ │ │ │ └── closing_loc: (40,14)-(40,15) = "|" │ │ │ │ │ └── closing_loc: (40,14)-(40,15) = "|"
│ │ │ │ ├── body: ∅ │ │ │ │ ├── body: ∅
│ │ │ │ ├── opening_loc: (40,9)-(40,11) = "do" │ │ │ │ ├── opening_loc: (40,9)-(40,11) = "do"
│ │ │ │ ├── closing_loc: (41,2)-(41,5) = "end" │ │ │ │ └── closing_loc: (41,2)-(41,5) = "end"
│ │ │ │ └── numbered_parameters: 0
│ │ │ └── flags: ∅ │ │ │ └── flags: ∅
│ │ └── end_keyword_loc: (42,0)-(42,3) = "end" │ │ └── end_keyword_loc: (42,0)-(42,3) = "end"
│ └── end_keyword_loc: (42,0)-(42,3) = "end" │ └── end_keyword_loc: (42,0)-(42,3) = "end"

View file

@ -61,8 +61,7 @@
│ │ │ │ │ ├── parameters: ∅ │ │ │ │ │ ├── parameters: ∅
│ │ │ │ │ ├── body: ∅ │ │ │ │ │ ├── body: ∅
│ │ │ │ │ ├── opening_loc: (8,6)-(8,8) = "do" │ │ │ │ │ ├── opening_loc: (8,6)-(8,8) = "do"
│ │ │ │ │ ├── closing_loc: (9,2)-(9,5) = "end" │ │ │ │ │ └── closing_loc: (9,2)-(9,5) = "end"
│ │ │ │ │ └── numbered_parameters: 0
│ │ │ │ └── flags: ∅ │ │ │ │ └── flags: ∅
│ │ │ ├── locals: [] │ │ │ ├── locals: []
│ │ │ ├── def_keyword_loc: (7,8)-(7,11) = "def" │ │ │ ├── def_keyword_loc: (7,8)-(7,11) = "def"

View file

@ -24,8 +24,7 @@
│ │ ├── locals: (length: 0) │ │ ├── locals: (length: 0)
│ │ ├── opening_loc: (1,2)-(1,3) = "(" │ │ ├── opening_loc: (1,2)-(1,3) = "("
│ │ └── closing_loc: (3,0)-(3,1) = ")" │ │ └── closing_loc: (3,0)-(3,1) = ")"
│ ├── body: ∅ │ └── body: ∅
│ └── numbered_parameters: 0
├── @ LambdaNode (location: (5,0)-(5,18)) ├── @ LambdaNode (location: (5,0)-(5,18))
│ ├── locals: [:x] │ ├── locals: [:x]
│ ├── operator_loc: (5,0)-(5,2) = "->" │ ├── operator_loc: (5,0)-(5,2) = "->"
@ -75,8 +74,7 @@
│ │ ├── locals: (length: 0) │ │ ├── locals: (length: 0)
│ │ ├── opening_loc: (5,2)-(5,3) = "(" │ │ ├── opening_loc: (5,2)-(5,3) = "("
│ │ └── closing_loc: (5,13)-(5,14) = ")" │ │ └── closing_loc: (5,13)-(5,14) = ")"
│ ├── body: ∅ │ └── body: ∅
│ └── numbered_parameters: 0
├── @ LambdaNode (location: (7,0)-(7,15)) ├── @ LambdaNode (location: (7,0)-(7,15))
│ ├── locals: [:a] │ ├── locals: [:a]
│ ├── operator_loc: (7,0)-(7,2) = "->" │ ├── operator_loc: (7,0)-(7,2) = "->"
@ -125,8 +123,7 @@
│ │ ├── locals: (length: 0) │ │ ├── locals: (length: 0)
│ │ ├── opening_loc: (7,2)-(7,3) = "(" │ │ ├── opening_loc: (7,2)-(7,3) = "("
│ │ └── closing_loc: (7,11)-(7,12) = ")" │ │ └── closing_loc: (7,11)-(7,12) = ")"
│ ├── body: ∅ │ └── body: ∅
│ └── numbered_parameters: 0
├── @ LambdaNode (location: (9,0)-(9,19)) ├── @ LambdaNode (location: (9,0)-(9,19))
│ ├── locals: [:foo] │ ├── locals: [:foo]
│ ├── operator_loc: (9,0)-(9,2) = "->" │ ├── operator_loc: (9,0)-(9,2) = "->"
@ -161,8 +158,7 @@
│ │ ├── locals: (length: 0) │ │ ├── locals: (length: 0)
│ │ ├── opening_loc: ∅ │ │ ├── opening_loc: ∅
│ │ └── closing_loc: ∅ │ │ └── closing_loc: ∅
│ ├── body: ∅ │ └── body: ∅
│ └── numbered_parameters: 0
└── @ LambdaNode (location: (11,0)-(11,18)) └── @ LambdaNode (location: (11,0)-(11,18))
├── locals: [:foo] ├── locals: [:foo]
├── operator_loc: (11,0)-(11,2) = "->" ├── operator_loc: (11,0)-(11,2) = "->"
@ -196,5 +192,4 @@
│ ├── locals: (length: 0) │ ├── locals: (length: 0)
│ ├── opening_loc: ∅ │ ├── opening_loc: ∅
│ └── closing_loc: ∅ │ └── closing_loc: ∅
├── body: ∅ └── body: ∅
└── numbered_parameters: 0

View file

@ -956,8 +956,7 @@
│ │ │ ├── block: ∅ │ │ │ ├── block: ∅
│ │ │ └── flags: ∅ │ │ │ └── flags: ∅
│ │ ├── opening_loc: (64,16)-(64,18) = "do" │ │ ├── opening_loc: (64,16)-(64,18) = "do"
│ │ ├── closing_loc: (64,33)-(64,36) = "end" │ │ └── closing_loc: (64,33)-(64,36) = "end"
│ │ └── numbered_parameters: 0
│ └── flags: ∅ │ └── flags: ∅
├── @ CallNode (location: (66,0)-(66,17)) ├── @ CallNode (location: (66,0)-(66,17))
│ ├── receiver: ∅ │ ├── receiver: ∅
@ -1349,8 +1348,7 @@
│ │ ├── parameters: ∅ │ │ ├── parameters: ∅
│ │ ├── body: ∅ │ │ ├── body: ∅
│ │ ├── opening_loc: (93,7)-(93,8) = "{" │ │ ├── opening_loc: (93,7)-(93,8) = "{"
│ │ ├── closing_loc: (93,9)-(93,10) = "}" │ │ └── closing_loc: (93,9)-(93,10) = "}"
│ │ └── numbered_parameters: 0
│ └── flags: ∅ │ └── flags: ∅
├── @ CallNode (location: (95,0)-(95,14)) ├── @ CallNode (location: (95,0)-(95,14))
│ ├── receiver: │ ├── receiver:
@ -1380,8 +1378,7 @@
│ │ │ └── @ BackReferenceReadNode (location: (95,10)-(95,12)) │ │ │ └── @ BackReferenceReadNode (location: (95,10)-(95,12))
│ │ │ └── name: :$& │ │ │ └── name: :$&
│ │ ├── opening_loc: (95,8)-(95,9) = "{" │ │ ├── opening_loc: (95,8)-(95,9) = "{"
│ │ ├── closing_loc: (95,13)-(95,14) = "}" │ │ └── closing_loc: (95,13)-(95,14) = "}"
│ │ └── numbered_parameters: 0
│ └── flags: ∅ │ └── flags: ∅
├── @ CallNode (location: (97,0)-(97,12)) ├── @ CallNode (location: (97,0)-(97,12))
│ ├── receiver: │ ├── receiver:
@ -1465,8 +1462,7 @@
│ │ ├── parameters: ∅ │ │ ├── parameters: ∅
│ │ ├── body: ∅ │ │ ├── body: ∅
│ │ ├── opening_loc: (101,14)-(101,15) = "{" │ │ ├── opening_loc: (101,14)-(101,15) = "{"
│ │ ├── closing_loc: (101,16)-(101,17) = "}" │ │ └── closing_loc: (101,16)-(101,17) = "}"
│ │ └── numbered_parameters: 0
│ └── flags: ∅ │ └── flags: ∅
├── @ CallNode (location: (103,0)-(103,12)) ├── @ CallNode (location: (103,0)-(103,12))
│ ├── receiver: ∅ │ ├── receiver: ∅
@ -1538,8 +1534,7 @@
│ │ │ │ │ │ │ ├── parameters: ∅ │ │ │ │ │ │ │ ├── parameters: ∅
│ │ │ │ │ │ │ ├── body: ∅ │ │ │ │ │ │ │ ├── body: ∅
│ │ │ │ │ │ │ ├── opening_loc: (105,20)-(105,22) = "do" │ │ │ │ │ │ │ ├── opening_loc: (105,20)-(105,22) = "do"
│ │ │ │ │ │ │ ├── closing_loc: (105,23)-(105,26) = "end" │ │ │ │ │ │ │ └── closing_loc: (105,23)-(105,26) = "end"
│ │ │ │ │ │ │ └── numbered_parameters: 0
│ │ │ │ │ │ └── flags: ∅ │ │ │ │ │ │ └── flags: ∅
│ │ │ │ │ └── operator_loc: ∅ │ │ │ │ │ └── operator_loc: ∅
│ │ │ │ └── closing_loc: (105,27)-(105,28) = "}" │ │ │ │ └── closing_loc: (105,27)-(105,28) = "}"
@ -1586,8 +1581,7 @@
│ │ │ │ │ │ │ ├── parameters: ∅ │ │ │ │ │ │ │ ├── parameters: ∅
│ │ │ │ │ │ │ ├── body: ∅ │ │ │ │ │ │ │ ├── body: ∅
│ │ │ │ │ │ │ ├── opening_loc: (107,16)-(107,18) = "do" │ │ │ │ │ │ │ ├── opening_loc: (107,16)-(107,18) = "do"
│ │ │ │ │ │ │ ├── closing_loc: (107,19)-(107,22) = "end" │ │ │ │ │ │ │ └── closing_loc: (107,19)-(107,22) = "end"
│ │ │ │ │ │ │ └── numbered_parameters: 0
│ │ │ │ │ │ └── flags: ∅ │ │ │ │ │ │ └── flags: ∅
│ │ │ │ │ └── operator_loc: (107,11)-(107,13) = "**" │ │ │ │ │ └── operator_loc: (107,11)-(107,13) = "**"
│ │ │ │ └── closing_loc: (107,23)-(107,24) = "}" │ │ │ │ └── closing_loc: (107,23)-(107,24) = "}"
@ -1645,8 +1639,7 @@
│ │ │ │ │ │ │ ├── closing_loc: (109,22)-(109,23) = "\"" │ │ │ │ │ │ │ ├── closing_loc: (109,22)-(109,23) = "\""
│ │ │ │ │ │ │ └── unescaped: "baz" │ │ │ │ │ │ │ └── unescaped: "baz"
│ │ │ │ │ │ ├── opening_loc: (109,15)-(109,17) = "do" │ │ │ │ │ │ ├── opening_loc: (109,15)-(109,17) = "do"
│ │ │ │ │ │ ├── closing_loc: (109,24)-(109,27) = "end" │ │ │ │ │ │ └── closing_loc: (109,24)-(109,27) = "end"
│ │ │ │ │ │ └── numbered_parameters: 0
│ │ │ │ │ └── flags: ∅ │ │ │ │ │ └── flags: ∅
│ │ │ │ └── closing_loc: (109,27)-(109,28) = "}" │ │ │ │ └── closing_loc: (109,27)-(109,28) = "}"
│ │ │ └── closing_loc: (109,28)-(109,29) = "\"" │ │ │ └── closing_loc: (109,28)-(109,29) = "\""
@ -1658,8 +1651,7 @@
│ │ ├── parameters: ∅ │ │ ├── parameters: ∅
│ │ ├── body: ∅ │ │ ├── body: ∅
│ │ ├── opening_loc: (109,30)-(109,32) = "do" │ │ ├── opening_loc: (109,30)-(109,32) = "do"
│ │ ├── closing_loc: (109,33)-(109,36) = "end" │ │ └── closing_loc: (109,33)-(109,36) = "end"
│ │ └── numbered_parameters: 0
│ └── flags: ∅ │ └── flags: ∅
├── @ CallNode (location: (111,0)-(111,28)) ├── @ CallNode (location: (111,0)-(111,28))
│ ├── receiver: ∅ │ ├── receiver: ∅
@ -1695,8 +1687,7 @@
│ │ │ │ │ ├── parameters: ∅ │ │ │ │ │ ├── parameters: ∅
│ │ │ │ │ ├── body: ∅ │ │ │ │ │ ├── body: ∅
│ │ │ │ │ ├── opening_loc: (111,18)-(111,20) = "do" │ │ │ │ │ ├── opening_loc: (111,18)-(111,20) = "do"
│ │ │ │ │ ├── closing_loc: (111,21)-(111,24) = "end" │ │ │ │ │ └── closing_loc: (111,21)-(111,24) = "end"
│ │ │ │ │ └── numbered_parameters: 0
│ │ │ │ └── flags: ∅ │ │ │ │ └── flags: ∅
│ │ │ ├── end_keyword_loc: (111,25)-(111,28) = "end" │ │ │ ├── end_keyword_loc: (111,25)-(111,28) = "end"
│ │ │ └── name: :Bar │ │ │ └── name: :Bar
@ -1736,8 +1727,7 @@
│ │ │ │ │ ├── parameters: ∅ │ │ │ │ │ ├── parameters: ∅
│ │ │ │ │ ├── body: ∅ │ │ │ │ │ ├── body: ∅
│ │ │ │ │ ├── opening_loc: (113,19)-(113,21) = "do" │ │ │ │ │ ├── opening_loc: (113,19)-(113,21) = "do"
│ │ │ │ │ ├── closing_loc: (113,22)-(113,25) = "end" │ │ │ │ │ └── closing_loc: (113,22)-(113,25) = "end"
│ │ │ │ │ └── numbered_parameters: 0
│ │ │ │ └── flags: ∅ │ │ │ │ └── flags: ∅
│ │ │ ├── end_keyword_loc: (113,26)-(113,29) = "end" │ │ │ ├── end_keyword_loc: (113,26)-(113,29) = "end"
│ │ │ └── name: :Bar │ │ │ └── name: :Bar
@ -1770,8 +1760,7 @@
│ │ │ │ │ ├── parameters: ∅ │ │ │ │ │ ├── parameters: ∅
│ │ │ │ │ ├── body: ∅ │ │ │ │ │ ├── body: ∅
│ │ │ │ │ ├── opening_loc: (115,9)-(115,11) = "do" │ │ │ │ │ ├── opening_loc: (115,9)-(115,11) = "do"
│ │ │ │ │ ├── closing_loc: (115,12)-(115,15) = "end" │ │ │ │ │ └── closing_loc: (115,12)-(115,15) = "end"
│ │ │ │ │ └── numbered_parameters: 0
│ │ │ │ └── flags: ∅ │ │ │ │ └── flags: ∅
│ │ │ ├── opening_loc: (115,4)-(115,5) = "[" │ │ │ ├── opening_loc: (115,4)-(115,5) = "["
│ │ │ ├── closing_loc: (115,15)-(115,16) = "]" │ │ │ ├── closing_loc: (115,15)-(115,16) = "]"
@ -1814,8 +1803,7 @@
│ │ │ │ │ │ └── @ IntegerNode (location: (117,19)-(117,20)) │ │ │ │ │ │ └── @ IntegerNode (location: (117,19)-(117,20))
│ │ │ │ │ │ └── flags: decimal │ │ │ │ │ │ └── flags: decimal
│ │ │ │ │ ├── opening_loc: (117,16)-(117,18) = "do" │ │ │ │ │ ├── opening_loc: (117,16)-(117,18) = "do"
│ │ │ │ │ ├── closing_loc: (117,21)-(117,24) = "end" │ │ │ │ │ └── closing_loc: (117,21)-(117,24) = "end"
│ │ │ │ │ └── numbered_parameters: 0
│ │ │ │ └── flags: ∅ │ │ │ │ └── flags: ∅
│ │ │ ├── rescue_clause: ∅ │ │ │ ├── rescue_clause: ∅
│ │ │ ├── else_clause: ∅ │ │ │ ├── else_clause: ∅
@ -1890,8 +1878,7 @@
│ │ │ │ │ │ ├── name: :a │ │ │ │ │ │ ├── name: :a
│ │ │ │ │ │ └── depth: 0 │ │ │ │ │ │ └── depth: 0
│ │ │ │ │ ├── opening_loc: (121,8)-(121,10) = "do" │ │ │ │ │ ├── opening_loc: (121,8)-(121,10) = "do"
│ │ │ │ │ ├── closing_loc: (123,4)-(123,7) = "end" │ │ │ │ │ └── closing_loc: (123,4)-(123,7) = "end"
│ │ │ │ │ └── numbered_parameters: 0
│ │ │ │ └── flags: ∅ │ │ │ │ └── flags: ∅
│ │ │ ├── consequent: ∅ │ │ │ ├── consequent: ∅
│ │ │ └── end_keyword_loc: (124,2)-(124,5) = "end" │ │ │ └── end_keyword_loc: (124,2)-(124,5) = "end"
@ -1964,8 +1951,7 @@
│ │ │ │ │ │ │ ├── name: :a │ │ │ │ │ │ │ ├── name: :a
│ │ │ │ │ │ │ └── depth: 0 │ │ │ │ │ │ │ └── depth: 0
│ │ │ │ │ │ ├── opening_loc: (128,8)-(128,10) = "do" │ │ │ │ │ │ ├── opening_loc: (128,8)-(128,10) = "do"
│ │ │ │ │ │ ├── closing_loc: (130,4)-(130,7) = "end" │ │ │ │ │ │ └── closing_loc: (130,4)-(130,7) = "end"
│ │ │ │ │ │ └── numbered_parameters: 0
│ │ │ │ │ └── flags: ∅ │ │ │ │ │ └── flags: ∅
│ │ │ │ └── flags: ∅ │ │ │ │ └── flags: ∅
│ │ │ └── @ UntilNode (location: (132,2)-(135,5)) │ │ │ └── @ UntilNode (location: (132,2)-(135,5))
@ -1999,8 +1985,7 @@
│ │ │ │ │ ├── parameters: ∅ │ │ │ │ │ ├── parameters: ∅
│ │ │ │ │ ├── body: ∅ │ │ │ │ │ ├── body: ∅
│ │ │ │ │ ├── opening_loc: (133,8)-(133,10) = "do" │ │ │ │ │ ├── opening_loc: (133,8)-(133,10) = "do"
│ │ │ │ │ ├── closing_loc: (134,4)-(134,7) = "end" │ │ │ │ │ └── closing_loc: (134,4)-(134,7) = "end"
│ │ │ │ │ └── numbered_parameters: 0
│ │ │ │ └── flags: ∅ │ │ │ │ └── flags: ∅
│ │ │ └── flags: ∅ │ │ │ └── flags: ∅
│ │ └── flags: ∅ │ │ └── flags: ∅
@ -2034,8 +2019,7 @@
│ │ │ │ ├── parameters: ∅ │ │ │ │ ├── parameters: ∅
│ │ │ │ ├── body: ∅ │ │ │ │ ├── body: ∅
│ │ │ │ ├── opening_loc: (137,7)-(137,8) = "{" │ │ │ │ ├── opening_loc: (137,7)-(137,8) = "{"
│ │ │ │ ├── closing_loc: (137,8)-(137,9) = "}" │ │ │ │ └── closing_loc: (137,8)-(137,9) = "}"
│ │ │ │ └── numbered_parameters: 0
│ │ │ └── flags: ∅ │ │ │ └── flags: ∅
│ │ └── flags: ∅ │ │ └── flags: ∅
│ ├── closing_loc: ∅ │ ├── closing_loc: ∅
@ -2088,8 +2072,7 @@
│ │ │ │ │ ├── name: :a │ │ │ │ │ ├── name: :a
│ │ │ │ │ └── depth: 0 │ │ │ │ │ └── depth: 0
│ │ │ │ ├── opening_loc: (139,7)-(139,8) = "{" │ │ │ │ ├── opening_loc: (139,7)-(139,8) = "{"
│ │ │ │ ├── closing_loc: (139,15)-(139,16) = "}" │ │ │ │ └── closing_loc: (139,15)-(139,16) = "}"
│ │ │ │ └── numbered_parameters: 0
│ │ │ └── flags: ∅ │ │ │ └── flags: ∅
│ │ └── flags: ∅ │ │ └── flags: ∅
│ ├── closing_loc: ∅ │ ├── closing_loc: ∅
@ -2111,8 +2094,7 @@
│ │ │ ├── parameters: ∅ │ │ │ ├── parameters: ∅
│ │ │ ├── body: ∅ │ │ │ ├── body: ∅
│ │ │ ├── opening_loc: (141,2)-(141,3) = "{" │ │ │ ├── opening_loc: (141,2)-(141,3) = "{"
│ │ │ ├── closing_loc: (141,3)-(141,4) = "}" │ │ │ └── closing_loc: (141,3)-(141,4) = "}"
│ │ │ └── numbered_parameters: 0
│ │ └── flags: ∅ │ │ └── flags: ∅
│ ├── call_operator_loc: ∅ │ ├── call_operator_loc: ∅
│ ├── name: :+ │ ├── name: :+
@ -2135,8 +2117,7 @@
│ │ │ │ ├── parameters: ∅ │ │ │ │ ├── parameters: ∅
│ │ │ │ ├── body: ∅ │ │ │ │ ├── body: ∅
│ │ │ │ ├── opening_loc: (141,9)-(141,10) = "{" │ │ │ │ ├── opening_loc: (141,9)-(141,10) = "{"
│ │ │ │ ├── closing_loc: (141,10)-(141,11) = "}" │ │ │ │ └── closing_loc: (141,10)-(141,11) = "}"
│ │ │ │ └── numbered_parameters: 0
│ │ │ └── flags: ∅ │ │ │ └── flags: ∅
│ │ └── flags: ∅ │ │ └── flags: ∅
│ ├── closing_loc: ∅ │ ├── closing_loc: ∅
@ -2175,8 +2156,7 @@
│ │ │ │ ├── parameters: ∅ │ │ │ │ ├── parameters: ∅
│ │ │ │ ├── body: ∅ │ │ │ │ ├── body: ∅
│ │ │ │ ├── opening_loc: (143,9)-(143,10) = "{" │ │ │ │ ├── opening_loc: (143,9)-(143,10) = "{"
│ │ │ │ ├── closing_loc: (143,10)-(143,11) = "}" │ │ │ │ └── closing_loc: (143,10)-(143,11) = "}"
│ │ │ │ └── numbered_parameters: 0
│ │ │ └── flags: ∅ │ │ │ └── flags: ∅
│ │ └── flags: ∅ │ │ └── flags: ∅
│ ├── closing_loc: ∅ │ ├── closing_loc: ∅

View file

@ -1583,8 +1583,7 @@
│ │ │ │ │ ├── parameters: ∅ │ │ │ │ │ ├── parameters: ∅
│ │ │ │ │ ├── body: ∅ │ │ │ │ │ ├── body: ∅
│ │ │ │ │ ├── opening_loc: (161,12)-(161,13) = "{" │ │ │ │ │ ├── opening_loc: (161,12)-(161,13) = "{"
│ │ │ │ │ ├── closing_loc: (161,13)-(161,14) = "}" │ │ │ │ │ └── closing_loc: (161,13)-(161,14) = "}"
│ │ │ │ │ └── numbered_parameters: 0
│ │ │ │ └── flags: ∅ │ │ │ │ └── flags: ∅
│ │ │ └── flags: ∅ │ │ │ └── flags: ∅
│ │ ├── closing_loc: ∅ │ │ ├── closing_loc: ∅

View file

@ -485,13 +485,12 @@
│ │ ├── opening_loc: (26,10)-(26,11) = "{" │ │ ├── opening_loc: (26,10)-(26,11) = "{"
│ │ ├── closing_loc: (26,16)-(26,17) = "}" │ │ ├── closing_loc: (26,16)-(26,17) = "}"
│ │ ├── parameters: ∅ │ │ ├── parameters: ∅
│ │ ├── body: │ │ └── body:
│ │ │ @ StatementsNode (location: (26,12)-(26,15)) │ │ @ StatementsNode (location: (26,12)-(26,15))
│ │ │ └── body: (length: 1) │ │ └── body: (length: 1)
│ │ │ └── @ LocalVariableReadNode (location: (26,12)-(26,15)) │ │ └── @ LocalVariableReadNode (location: (26,12)-(26,15))
│ │ │ ├── name: :bar │ │ ├── name: :bar
│ │ │ └── depth: 1 │ │ └── depth: 1
│ │ └── numbered_parameters: 0
│ └── operator_loc: (26,4)-(26,6) = "=>" │ └── operator_loc: (26,4)-(26,6) = "=>"
├── @ MatchRequiredNode (location: (28,0)-(28,13)) ├── @ MatchRequiredNode (location: (28,0)-(28,13))
│ ├── value: │ ├── value:
@ -1190,13 +1189,12 @@
│ │ │ ├── opening_loc: (52,10)-(52,11) = "{" │ │ │ ├── opening_loc: (52,10)-(52,11) = "{"
│ │ │ ├── closing_loc: (52,16)-(52,17) = "}" │ │ │ ├── closing_loc: (52,16)-(52,17) = "}"
│ │ │ ├── parameters: ∅ │ │ │ ├── parameters: ∅
│ │ │ ├── body: │ │ │ └── body:
│ │ │ │ @ StatementsNode (location: (52,12)-(52,15)) │ │ │ @ StatementsNode (location: (52,12)-(52,15))
│ │ │ │ └── body: (length: 1) │ │ │ └── body: (length: 1)
│ │ │ │ └── @ LocalVariableReadNode (location: (52,12)-(52,15)) │ │ │ └── @ LocalVariableReadNode (location: (52,12)-(52,15))
│ │ │ │ ├── name: :bar │ │ │ ├── name: :bar
│ │ │ │ └── depth: 1 │ │ │ └── depth: 1
│ │ │ └── numbered_parameters: 0
│ │ ├── right: │ │ ├── right:
│ │ │ @ LambdaNode (location: (52,21)-(52,31)) │ │ │ @ LambdaNode (location: (52,21)-(52,31))
│ │ │ ├── locals: [] │ │ │ ├── locals: []
@ -1204,13 +1202,12 @@
│ │ │ ├── opening_loc: (52,24)-(52,25) = "{" │ │ │ ├── opening_loc: (52,24)-(52,25) = "{"
│ │ │ ├── closing_loc: (52,30)-(52,31) = "}" │ │ │ ├── closing_loc: (52,30)-(52,31) = "}"
│ │ │ ├── parameters: ∅ │ │ │ ├── parameters: ∅
│ │ │ ├── body: │ │ │ └── body:
│ │ │ │ @ StatementsNode (location: (52,26)-(52,29)) │ │ │ @ StatementsNode (location: (52,26)-(52,29))
│ │ │ │ └── body: (length: 1) │ │ │ └── body: (length: 1)
│ │ │ │ └── @ LocalVariableReadNode (location: (52,26)-(52,29)) │ │ │ └── @ LocalVariableReadNode (location: (52,26)-(52,29))
│ │ │ │ ├── name: :bar │ │ │ ├── name: :bar
│ │ │ │ └── depth: 1 │ │ │ └── depth: 1
│ │ │ └── numbered_parameters: 0
│ │ ├── operator_loc: (52,18)-(52,20) = ".." │ │ ├── operator_loc: (52,18)-(52,20) = ".."
│ │ └── flags: ∅ │ │ └── flags: ∅
│ └── operator_loc: (52,4)-(52,6) = "=>" │ └── operator_loc: (52,4)-(52,6) = "=>"
@ -2790,13 +2787,12 @@
│ │ ├── opening_loc: (125,10)-(125,11) = "{" │ │ ├── opening_loc: (125,10)-(125,11) = "{"
│ │ ├── closing_loc: (125,16)-(125,17) = "}" │ │ ├── closing_loc: (125,16)-(125,17) = "}"
│ │ ├── parameters: ∅ │ │ ├── parameters: ∅
│ │ ├── body: │ │ └── body:
│ │ │ @ StatementsNode (location: (125,12)-(125,15)) │ │ @ StatementsNode (location: (125,12)-(125,15))
│ │ │ └── body: (length: 1) │ │ └── body: (length: 1)
│ │ │ └── @ LocalVariableReadNode (location: (125,12)-(125,15)) │ │ └── @ LocalVariableReadNode (location: (125,12)-(125,15))
│ │ │ ├── name: :bar │ │ ├── name: :bar
│ │ │ └── depth: 1 │ │ └── depth: 1
│ │ └── numbered_parameters: 0
│ └── operator_loc: (125,4)-(125,6) = "in" │ └── operator_loc: (125,4)-(125,6) = "in"
├── @ CaseMatchNode (location: (127,0)-(127,25)) ├── @ CaseMatchNode (location: (127,0)-(127,25))
│ ├── predicate: │ ├── predicate:
@ -3457,13 +3453,12 @@
│ │ │ ├── opening_loc: (152,16)-(152,17) = "{" │ │ │ ├── opening_loc: (152,16)-(152,17) = "{"
│ │ │ ├── closing_loc: (152,22)-(152,23) = "}" │ │ │ ├── closing_loc: (152,22)-(152,23) = "}"
│ │ │ ├── parameters: ∅ │ │ │ ├── parameters: ∅
│ │ │ ├── body: │ │ │ └── body:
│ │ │ │ @ StatementsNode (location: (152,18)-(152,21)) │ │ │ @ StatementsNode (location: (152,18)-(152,21))
│ │ │ │ └── body: (length: 1) │ │ │ └── body: (length: 1)
│ │ │ │ └── @ LocalVariableReadNode (location: (152,18)-(152,21)) │ │ │ └── @ LocalVariableReadNode (location: (152,18)-(152,21))
│ │ │ │ ├── name: :bar │ │ │ ├── name: :bar
│ │ │ │ └── depth: 1 │ │ │ └── depth: 1
│ │ │ └── numbered_parameters: 0
│ │ ├── statements: ∅ │ │ ├── statements: ∅
│ │ ├── in_loc: (152,10)-(152,12) = "in" │ │ ├── in_loc: (152,10)-(152,12) = "in"
│ │ └── then_loc: (152,24)-(152,28) = "then" │ │ └── then_loc: (152,24)-(152,28) = "then"
@ -4439,13 +4434,12 @@
│ │ │ │ ├── opening_loc: (179,16)-(179,17) = "{" │ │ │ │ ├── opening_loc: (179,16)-(179,17) = "{"
│ │ │ │ ├── closing_loc: (179,22)-(179,23) = "}" │ │ │ │ ├── closing_loc: (179,22)-(179,23) = "}"
│ │ │ │ ├── parameters: ∅ │ │ │ │ ├── parameters: ∅
│ │ │ │ ├── body: │ │ │ │ └── body:
│ │ │ │ │ @ StatementsNode (location: (179,18)-(179,21)) │ │ │ │ @ StatementsNode (location: (179,18)-(179,21))
│ │ │ │ │ └── body: (length: 1) │ │ │ │ └── body: (length: 1)
│ │ │ │ │ └── @ LocalVariableReadNode (location: (179,18)-(179,21)) │ │ │ │ └── @ LocalVariableReadNode (location: (179,18)-(179,21))
│ │ │ │ │ ├── name: :bar │ │ │ │ ├── name: :bar
│ │ │ │ │ └── depth: 1 │ │ │ │ └── depth: 1
│ │ │ │ └── numbered_parameters: 0
│ │ │ ├── consequent: ∅ │ │ │ ├── consequent: ∅
│ │ │ └── end_keyword_loc: ∅ │ │ │ └── end_keyword_loc: ∅
│ │ ├── statements: ∅ │ │ ├── statements: ∅
@ -4680,6 +4674,5 @@
│ │ │ └── operator_loc: (199,23)-(199,25) = "=>" │ │ │ └── operator_loc: (199,23)-(199,25) = "=>"
│ │ └── operator_loc: (199,9)-(199,11) = "=>" │ │ └── operator_loc: (199,9)-(199,11) = "=>"
│ ├── opening_loc: (198,4)-(198,6) = "do" │ ├── opening_loc: (198,4)-(198,6) = "do"
│ ├── closing_loc: (200,0)-(200,3) = "end" │ └── closing_loc: (200,0)-(200,3) = "end"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -30,102 +30,97 @@
│ │ │ └── name: :d │ │ │ └── name: :d
│ │ ├── opening_loc: (1,3)-(1,4) = "(" │ │ ├── opening_loc: (1,3)-(1,4) = "("
│ │ └── closing_loc: (1,14)-(1,15) = ")" │ │ └── closing_loc: (1,14)-(1,15) = ")"
│ ├── body: │ └── body:
│ │ @ StatementsNode (location: (1,18)-(1,19)) │ @ StatementsNode (location: (1,18)-(1,19))
│ │ └── body: (length: 1) │ └── body: (length: 1)
│ │ └── @ LocalVariableReadNode (location: (1,18)-(1,19)) │ └── @ LocalVariableReadNode (location: (1,18)-(1,19))
│ │ ├── name: :b │ ├── name: :b
│ │ └── depth: 0 │ └── depth: 0
│ └── numbered_parameters: 0
├── @ LambdaNode (location: (3,0)-(5,3)) ├── @ LambdaNode (location: (3,0)-(5,3))
│ ├── locals: [] │ ├── locals: []
│ ├── operator_loc: (3,0)-(3,2) = "->" │ ├── operator_loc: (3,0)-(3,2) = "->"
│ ├── opening_loc: (3,3)-(3,5) = "do" │ ├── opening_loc: (3,3)-(3,5) = "do"
│ ├── closing_loc: (5,0)-(5,3) = "end" │ ├── closing_loc: (5,0)-(5,3) = "end"
│ ├── parameters: ∅ │ ├── parameters: ∅
│ ├── body: │ └── body:
│ │ @ BeginNode (location: (4,0)-(5,3)) │ @ BeginNode (location: (4,0)-(5,3))
│ │ ├── begin_keyword_loc: ∅ │ ├── begin_keyword_loc: ∅
│ ├── statements: ∅
│ ├── rescue_clause: ∅
│ ├── else_clause: ∅
│ ├── ensure_clause:
│ │ @ EnsureNode (location: (4,0)-(5,3))
│ │ ├── ensure_keyword_loc: (4,0)-(4,6) = "ensure"
│ │ ├── statements: ∅ │ │ ├── statements: ∅
│ │ ├── rescue_clause: ∅
│ │ ├── else_clause: ∅
│ │ ├── ensure_clause:
│ │ │ @ EnsureNode (location: (4,0)-(5,3))
│ │ │ ├── ensure_keyword_loc: (4,0)-(4,6) = "ensure"
│ │ │ ├── statements: ∅
│ │ │ └── end_keyword_loc: (5,0)-(5,3) = "end"
│ │ └── end_keyword_loc: (5,0)-(5,3) = "end" │ │ └── end_keyword_loc: (5,0)-(5,3) = "end"
└── numbered_parameters: 0 │ └── end_keyword_loc: (5,0)-(5,3) = "end"
├── @ LambdaNode (location: (7,0)-(11,3)) ├── @ LambdaNode (location: (7,0)-(11,3))
│ ├── locals: [] │ ├── locals: []
│ ├── operator_loc: (7,0)-(7,2) = "->" │ ├── operator_loc: (7,0)-(7,2) = "->"
│ ├── opening_loc: (7,3)-(7,5) = "do" │ ├── opening_loc: (7,3)-(7,5) = "do"
│ ├── closing_loc: (11,0)-(11,3) = "end" │ ├── closing_loc: (11,0)-(11,3) = "end"
│ ├── parameters: ∅ │ ├── parameters: ∅
│ ├── body: │ └── body:
│ │ @ BeginNode (location: (8,0)-(11,3)) │ @ BeginNode (location: (8,0)-(11,3))
│ │ ├── begin_keyword_loc: ∅ │ ├── begin_keyword_loc: ∅
│ ├── statements: ∅
│ ├── rescue_clause:
│ │ @ RescueNode (location: (8,0)-(8,6))
│ │ ├── keyword_loc: (8,0)-(8,6) = "rescue"
│ │ ├── exceptions: (length: 0)
│ │ ├── operator_loc: ∅
│ │ ├── reference: ∅
│ │ ├── statements: ∅
│ │ └── consequent: ∅
│ ├── else_clause:
│ │ @ ElseNode (location: (9,0)-(10,6))
│ │ ├── else_keyword_loc: (9,0)-(9,4) = "else"
│ │ ├── statements: ∅
│ │ └── end_keyword_loc: (10,0)-(10,6) = "ensure"
│ ├── ensure_clause:
│ │ @ EnsureNode (location: (10,0)-(11,3))
│ │ ├── ensure_keyword_loc: (10,0)-(10,6) = "ensure"
│ │ ├── statements: ∅ │ │ ├── statements: ∅
│ │ ├── rescue_clause:
│ │ │ @ RescueNode (location: (8,0)-(8,6))
│ │ │ ├── keyword_loc: (8,0)-(8,6) = "rescue"
│ │ │ ├── exceptions: (length: 0)
│ │ │ ├── operator_loc: ∅
│ │ │ ├── reference: ∅
│ │ │ ├── statements: ∅
│ │ │ └── consequent: ∅
│ │ ├── else_clause:
│ │ │ @ ElseNode (location: (9,0)-(10,6))
│ │ │ ├── else_keyword_loc: (9,0)-(9,4) = "else"
│ │ │ ├── statements: ∅
│ │ │ └── end_keyword_loc: (10,0)-(10,6) = "ensure"
│ │ ├── ensure_clause:
│ │ │ @ EnsureNode (location: (10,0)-(11,3))
│ │ │ ├── ensure_keyword_loc: (10,0)-(10,6) = "ensure"
│ │ │ ├── statements: ∅
│ │ │ └── end_keyword_loc: (11,0)-(11,3) = "end"
│ │ └── end_keyword_loc: (11,0)-(11,3) = "end" │ │ └── end_keyword_loc: (11,0)-(11,3) = "end"
└── numbered_parameters: 0 │ └── end_keyword_loc: (11,0)-(11,3) = "end"
├── @ LambdaNode (location: (13,0)-(13,10)) ├── @ LambdaNode (location: (13,0)-(13,10))
│ ├── locals: [] │ ├── locals: []
│ ├── operator_loc: (13,0)-(13,2) = "->" │ ├── operator_loc: (13,0)-(13,2) = "->"
│ ├── opening_loc: (13,3)-(13,4) = "{" │ ├── opening_loc: (13,3)-(13,4) = "{"
│ ├── closing_loc: (13,9)-(13,10) = "}" │ ├── closing_loc: (13,9)-(13,10) = "}"
│ ├── parameters: ∅ │ ├── parameters: ∅
│ ├── body: │ └── body:
│ │ @ StatementsNode (location: (13,5)-(13,8)) │ @ StatementsNode (location: (13,5)-(13,8))
│ │ └── body: (length: 1) │ └── body: (length: 1)
│ │ └── @ CallNode (location: (13,5)-(13,8)) │ └── @ CallNode (location: (13,5)-(13,8))
│ │ ├── receiver: ∅ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅ │ ├── call_operator_loc: ∅
│ │ ├── name: :foo │ ├── name: :foo
│ │ ├── message_loc: (13,5)-(13,8) = "foo" │ ├── message_loc: (13,5)-(13,8) = "foo"
│ │ ├── opening_loc: ∅ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅ │ ├── closing_loc: ∅
│ │ ├── block: ∅ │ ├── block: ∅
│ │ └── flags: variable_call │ └── flags: variable_call
│ └── numbered_parameters: 0
├── @ LambdaNode (location: (15,0)-(15,15)) ├── @ LambdaNode (location: (15,0)-(15,15))
│ ├── locals: [] │ ├── locals: []
│ ├── operator_loc: (15,0)-(15,2) = "->" │ ├── operator_loc: (15,0)-(15,2) = "->"
│ ├── opening_loc: (15,3)-(15,5) = "do" │ ├── opening_loc: (15,3)-(15,5) = "do"
│ ├── closing_loc: (15,12)-(15,15) = "end" │ ├── closing_loc: (15,12)-(15,15) = "end"
│ ├── parameters: ∅ │ ├── parameters: ∅
│ ├── body: │ └── body:
│ │ @ StatementsNode (location: (15,7)-(15,10)) │ @ StatementsNode (location: (15,7)-(15,10))
│ │ └── body: (length: 1) │ └── body: (length: 1)
│ │ └── @ CallNode (location: (15,7)-(15,10)) │ └── @ CallNode (location: (15,7)-(15,10))
│ │ ├── receiver: ∅ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅ │ ├── call_operator_loc: ∅
│ │ ├── name: :foo │ ├── name: :foo
│ │ ├── message_loc: (15,7)-(15,10) = "foo" │ ├── message_loc: (15,7)-(15,10) = "foo"
│ │ ├── opening_loc: ∅ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅ │ ├── closing_loc: ∅
│ │ ├── block: ∅ │ ├── block: ∅
│ │ └── flags: variable_call │ └── flags: variable_call
│ └── numbered_parameters: 0
├── @ LambdaNode (location: (17,0)-(17,29)) ├── @ LambdaNode (location: (17,0)-(17,29))
│ ├── locals: [:a, :b, :c, :d, :e] │ ├── locals: [:a, :b, :c, :d, :e]
│ ├── operator_loc: (17,0)-(17,2) = "->" │ ├── operator_loc: (17,0)-(17,2) = "->"
@ -164,13 +159,12 @@
│ │ ├── locals: (length: 0) │ │ ├── locals: (length: 0)
│ │ ├── opening_loc: ∅ │ │ ├── opening_loc: ∅
│ │ └── closing_loc: ∅ │ │ └── closing_loc: ∅
│ ├── body: │ └── body:
│ │ @ StatementsNode (location: (17,26)-(17,27)) │ @ StatementsNode (location: (17,26)-(17,27))
│ │ └── body: (length: 1) │ └── body: (length: 1)
│ │ └── @ LocalVariableReadNode (location: (17,26)-(17,27)) │ └── @ LocalVariableReadNode (location: (17,26)-(17,27))
│ │ ├── name: :a │ ├── name: :a
│ │ └── depth: 0 │ └── depth: 0
│ └── numbered_parameters: 0
├── @ LambdaNode (location: (19,0)-(19,40)) ├── @ LambdaNode (location: (19,0)-(19,40))
│ ├── locals: [:a, :b, :c, :d, :e, :f, :g] │ ├── locals: [:a, :b, :c, :d, :e, :f, :g]
│ ├── operator_loc: (19,0)-(19,2) = "->" │ ├── operator_loc: (19,0)-(19,2) = "->"
@ -217,13 +211,12 @@
│ │ ├── locals: (length: 0) │ │ ├── locals: (length: 0)
│ │ ├── opening_loc: (19,3)-(19,4) = "(" │ │ ├── opening_loc: (19,3)-(19,4) = "("
│ │ └── closing_loc: (19,33)-(19,34) = ")" │ │ └── closing_loc: (19,33)-(19,34) = ")"
│ ├── body: │ └── body:
│ │ @ StatementsNode (location: (19,37)-(19,38)) │ @ StatementsNode (location: (19,37)-(19,38))
│ │ └── body: (length: 1) │ └── body: (length: 1)
│ │ └── @ LocalVariableReadNode (location: (19,37)-(19,38)) │ └── @ LocalVariableReadNode (location: (19,37)-(19,38))
│ │ ├── name: :a │ ├── name: :a
│ │ └── depth: 0 │ └── depth: 0
│ └── numbered_parameters: 0
├── @ LambdaNode (location: (21,0)-(23,3)) ├── @ LambdaNode (location: (21,0)-(23,3))
│ ├── locals: [:a, :b, :c, :d, :e, :f, :g] │ ├── locals: [:a, :b, :c, :d, :e, :f, :g]
│ ├── operator_loc: (21,0)-(21,2) = "->" │ ├── operator_loc: (21,0)-(21,2) = "->"
@ -270,13 +263,12 @@
│ │ ├── locals: (length: 0) │ │ ├── locals: (length: 0)
│ │ ├── opening_loc: (21,3)-(21,4) = "(" │ │ ├── opening_loc: (21,3)-(21,4) = "("
│ │ └── closing_loc: (21,33)-(21,34) = ")" │ │ └── closing_loc: (21,33)-(21,34) = ")"
│ ├── body: │ └── body:
│ │ @ StatementsNode (location: (22,2)-(22,3)) │ @ StatementsNode (location: (22,2)-(22,3))
│ │ └── body: (length: 1) │ └── body: (length: 1)
│ │ └── @ LocalVariableReadNode (location: (22,2)-(22,3)) │ └── @ LocalVariableReadNode (location: (22,2)-(22,3))
│ │ ├── name: :a │ ├── name: :a
│ │ └── depth: 0 │ └── depth: 0
│ └── numbered_parameters: 0
├── @ LambdaNode (location: (25,0)-(25,25)) ├── @ LambdaNode (location: (25,0)-(25,25))
│ ├── locals: [:a] │ ├── locals: [:a]
│ ├── operator_loc: (25,0)-(25,2) = "->" │ ├── operator_loc: (25,0)-(25,2) = "->"
@ -298,54 +290,52 @@
│ │ ├── locals: (length: 0) │ │ ├── locals: (length: 0)
│ │ ├── opening_loc: (25,3)-(25,4) = "(" │ │ ├── opening_loc: (25,3)-(25,4) = "("
│ │ └── closing_loc: (25,5)-(25,6) = ")" │ │ └── closing_loc: (25,5)-(25,6) = ")"
│ ├── body: │ └── body:
│ │ @ StatementsNode (location: (25,9)-(25,23)) │ @ StatementsNode (location: (25,9)-(25,23))
│ │ └── body: (length: 1) │ └── body: (length: 1)
│ │ └── @ LambdaNode (location: (25,9)-(25,23)) │ └── @ LambdaNode (location: (25,9)-(25,23))
│ │ ├── locals: [:b] │ ├── locals: [:b]
│ │ ├── operator_loc: (25,9)-(25,11) = "->" │ ├── operator_loc: (25,9)-(25,11) = "->"
│ │ ├── opening_loc: (25,14)-(25,15) = "{" │ ├── opening_loc: (25,14)-(25,15) = "{"
│ │ ├── closing_loc: (25,22)-(25,23) = "}" │ ├── closing_loc: (25,22)-(25,23) = "}"
│ ├── parameters:
│ │ @ BlockParametersNode (location: (25,12)-(25,13))
│ │ ├── parameters: │ │ ├── parameters:
│ │ │ @ BlockParametersNode (location: (25,12)-(25,13)) │ │ │ @ ParametersNode (location: (25,12)-(25,13))
│ │ │ ├── parameters: │ │ │ ├── requireds: (length: 1)
│ │ │ │ @ ParametersNode (location: (25,12)-(25,13)) │ │ │ │ └── @ RequiredParameterNode (location: (25,12)-(25,13))
│ │ │ │ ├── requireds: (length: 1) │ │ │ │ └── name: :b
│ │ │ │ │ └── @ RequiredParameterNode (location: (25,12)-(25,13)) │ │ │ ├── optionals: (length: 0)
│ │ │ │ │ └── name: :b │ │ │ ├── rest: ∅
│ │ │ │ ├── optionals: (length: 0) │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest: ∅ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── posts: (length: 0) │ │ │ ├── keyword_rest: ∅
│ │ │ │ ├── keywords: (length: 0) │ │ │ └── block: ∅
│ │ │ │ ├── keyword_rest: ∅ │ │ ├── locals: (length: 0)
│ │ │ │ └── block: ∅ │ │ ├── opening_loc: ∅
│ │ │ ├── locals: (length: 0) │ │ └── closing_loc: ∅
│ │ │ ├── opening_loc: ∅ │ └── body:
│ │ │ └── closing_loc: ∅ │ @ StatementsNode (location: (25,16)-(25,21))
│ │ ├── body: │ └── body: (length: 1)
│ │ │ @ StatementsNode (location: (25,16)-(25,21)) │ └── @ CallNode (location: (25,16)-(25,21))
│ │ │ └── body: (length: 1) │ ├── receiver:
│ │ │ └── @ CallNode (location: (25,16)-(25,21)) │ │ @ LocalVariableReadNode (location: (25,16)-(25,17))
│ │ │ ├── receiver: │ │ ├── name: :a
│ │ │ │ @ LocalVariableReadNode (location: (25,16)-(25,17)) │ │ └── depth: 1
│ │ │ │ ├── name: :a │ ├── call_operator_loc: ∅
│ │ │ │ └── depth: 1 │ ├── name: :*
│ │ │ ├── call_operator_loc: ∅ │ ├── message_loc: (25,18)-(25,19) = "*"
│ │ │ ├── name: :* │ ├── opening_loc: ∅
│ │ │ ├── message_loc: (25,18)-(25,19) = "*" │ ├── arguments:
│ │ │ ├── opening_loc: ∅ │ │ @ ArgumentsNode (location: (25,20)-(25,21))
│ │ │ ├── arguments: │ │ ├── arguments: (length: 1)
│ │ │ │ @ ArgumentsNode (location: (25,20)-(25,21)) │ │ │ └── @ LocalVariableReadNode (location: (25,20)-(25,21))
│ │ │ │ ├── arguments: (length: 1) │ │ │ ├── name: :b
│ │ │ │ │ └── @ LocalVariableReadNode (location: (25,20)-(25,21)) │ │ │ └── depth: 0
│ │ │ │ │ ├── name: :b │ │ └── flags: ∅
│ │ │ │ │ └── depth: 0 │ ├── closing_loc: ∅
│ │ │ │ └── flags: ∅ │ ├── block: ∅
│ │ │ ├── closing_loc: ∅ │ └── flags: ∅
│ │ │ ├── block: ∅
│ │ │ └── flags: ∅
│ │ └── numbered_parameters: 0
│ └── numbered_parameters: 0
└── @ LambdaNode (location: (27,0)-(27,19)) └── @ LambdaNode (location: (27,0)-(27,19))
├── locals: [:a, :b, :c] ├── locals: [:a, :b, :c]
├── operator_loc: (27,0)-(27,2) = "->" ├── operator_loc: (27,0)-(27,2) = "->"
@ -379,5 +369,4 @@
│ ├── locals: (length: 0) │ ├── locals: (length: 0)
│ ├── opening_loc: (27,3)-(27,4) = "(" │ ├── opening_loc: (27,3)-(27,4) = "("
│ └── closing_loc: (27,14)-(27,15) = ")" │ └── closing_loc: (27,14)-(27,15) = ")"
├── body: ∅ └── body: ∅
└── numbered_parameters: 0

View file

@ -366,6 +366,5 @@
│ │ ├── name: :a │ │ ├── name: :a
│ │ └── depth: 1 │ │ └── depth: 1
│ ├── opening_loc: (40,4)-(40,5) = "{" │ ├── opening_loc: (40,4)-(40,5) = "{"
│ ├── closing_loc: (40,23)-(40,24) = "}" │ └── closing_loc: (40,23)-(40,24) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -241,8 +241,7 @@
│ │ │ ├── block: ∅ │ │ │ ├── block: ∅
│ │ │ └── flags: ∅ │ │ │ └── flags: ∅
│ │ ├── opening_loc: (18,4)-(18,6) = "do" │ │ ├── opening_loc: (18,4)-(18,6) = "do"
│ │ ├── closing_loc: (20,0)-(20,3) = "end" │ │ └── closing_loc: (20,0)-(20,3) = "end"
│ │ └── numbered_parameters: 0
│ └── flags: ∅ │ └── flags: ∅
├── @ IfNode (location: (22,0)-(24,3)) ├── @ IfNode (location: (22,0)-(24,3))
│ ├── if_keyword_loc: (22,0)-(22,2) = "if" │ ├── if_keyword_loc: (22,0)-(22,2) = "if"

View file

@ -34,6 +34,5 @@
│ │ └── closing_loc: (1,8)-(1,9) = "|" │ │ └── closing_loc: (1,8)-(1,9) = "|"
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (1,2)-(1,3) = "{" │ ├── opening_loc: (1,2)-(1,3) = "{"
│ ├── closing_loc: (1,10)-(1,11) = "}" │ └── closing_loc: (1,10)-(1,11) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -45,6 +45,5 @@
│ │ └── closing_loc: (1,18)-(1,19) = "|" │ │ └── closing_loc: (1,18)-(1,19) = "|"
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (1,2)-(1,3) = "{" │ ├── opening_loc: (1,2)-(1,3) = "{"
│ ├── closing_loc: (1,20)-(1,21) = "}" │ └── closing_loc: (1,20)-(1,21) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -43,6 +43,5 @@
│ │ └── closing_loc: (1,17)-(1,18) = "|" │ │ └── closing_loc: (1,17)-(1,18) = "|"
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (1,2)-(1,3) = "{" │ ├── opening_loc: (1,2)-(1,3) = "{"
│ ├── closing_loc: (1,19)-(1,20) = "}" │ └── closing_loc: (1,19)-(1,20) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -49,6 +49,5 @@
│ │ └── closing_loc: (1,22)-(1,23) = "|" │ │ └── closing_loc: (1,22)-(1,23) = "|"
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (1,2)-(1,3) = "{" │ ├── opening_loc: (1,2)-(1,3) = "{"
│ ├── closing_loc: (1,24)-(1,25) = "}" │ └── closing_loc: (1,24)-(1,25) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -37,6 +37,5 @@
│ │ └── closing_loc: (1,10)-(1,11) = "|" │ │ └── closing_loc: (1,10)-(1,11) = "|"
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (1,2)-(1,3) = "{" │ ├── opening_loc: (1,2)-(1,3) = "{"
│ ├── closing_loc: (1,12)-(1,13) = "}" │ └── closing_loc: (1,12)-(1,13) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -34,6 +34,5 @@
│ │ └── closing_loc: (1,9)-(1,10) = "|" │ │ └── closing_loc: (1,9)-(1,10) = "|"
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (1,2)-(1,3) = "{" │ ├── opening_loc: (1,2)-(1,3) = "{"
│ ├── closing_loc: (1,11)-(1,12) = "}" │ └── closing_loc: (1,11)-(1,12) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -36,6 +36,5 @@
│ │ └── closing_loc: (1,11)-(1,12) = "|" │ │ └── closing_loc: (1,11)-(1,12) = "|"
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (1,2)-(1,3) = "{" │ ├── opening_loc: (1,2)-(1,3) = "{"
│ ├── closing_loc: (1,13)-(1,14) = "}" │ └── closing_loc: (1,13)-(1,14) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -38,6 +38,5 @@
│ │ └── closing_loc: (1,13)-(1,14) = "|" │ │ └── closing_loc: (1,13)-(1,14) = "|"
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (1,2)-(1,3) = "{" │ ├── opening_loc: (1,2)-(1,3) = "{"
│ ├── closing_loc: (1,15)-(1,16) = "}" │ └── closing_loc: (1,15)-(1,16) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -39,6 +39,5 @@
│ │ ├── name: :kwargs │ │ ├── name: :kwargs
│ │ └── depth: 0 │ │ └── depth: 0
│ ├── opening_loc: (1,2)-(1,3) = "{" │ ├── opening_loc: (1,2)-(1,3) = "{"
│ ├── closing_loc: (1,22)-(1,23) = "}" │ └── closing_loc: (1,22)-(1,23) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -33,6 +33,5 @@
│ │ └── closing_loc: (1,10)-(1,11) = "|" │ │ └── closing_loc: (1,10)-(1,11) = "|"
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (1,2)-(1,3) = "{" │ ├── opening_loc: (1,2)-(1,3) = "{"
│ ├── closing_loc: (1,12)-(1,13) = "}" │ └── closing_loc: (1,12)-(1,13) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -52,6 +52,5 @@
│ │ ├── closing_loc: (1,21)-(1,22) = "]" │ │ ├── closing_loc: (1,21)-(1,22) = "]"
│ │ └── flags: ∅ │ │ └── flags: ∅
│ ├── opening_loc: (1,2)-(1,3) = "{" │ ├── opening_loc: (1,2)-(1,3) = "{"
│ ├── closing_loc: (1,23)-(1,24) = "}" │ └── closing_loc: (1,23)-(1,24) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -44,6 +44,5 @@
│ │ └── closing_loc: (1,15)-(1,16) = "|" │ │ └── closing_loc: (1,15)-(1,16) = "|"
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (1,2)-(1,3) = "{" │ ├── opening_loc: (1,2)-(1,3) = "{"
│ ├── closing_loc: (1,17)-(1,18) = "}" │ └── closing_loc: (1,17)-(1,18) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -62,6 +62,5 @@
│ │ ├── closing_loc: (1,32)-(1,33) = "]" │ │ ├── closing_loc: (1,32)-(1,33) = "]"
│ │ └── flags: ∅ │ │ └── flags: ∅
│ ├── opening_loc: (1,2)-(1,3) = "{" │ ├── opening_loc: (1,2)-(1,3) = "{"
│ ├── closing_loc: (1,34)-(1,35) = "}" │ └── closing_loc: (1,34)-(1,35) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -69,6 +69,5 @@
│ │ ├── closing_loc: (1,39)-(1,40) = "]" │ │ ├── closing_loc: (1,39)-(1,40) = "]"
│ │ └── flags: ∅ │ │ └── flags: ∅
│ ├── opening_loc: (1,2)-(1,3) = "{" │ ├── opening_loc: (1,2)-(1,3) = "{"
│ ├── closing_loc: (1,41)-(1,42) = "}" │ └── closing_loc: (1,41)-(1,42) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -49,8 +49,7 @@
│ │ │ │ └── closing_loc: (1,21)-(1,22) = "|" │ │ │ │ └── closing_loc: (1,21)-(1,22) = "|"
│ │ │ ├── body: ∅ │ │ │ ├── body: ∅
│ │ │ ├── opening_loc: (1,14)-(1,16) = "do" │ │ │ ├── opening_loc: (1,14)-(1,16) = "do"
│ │ │ ├── closing_loc: (1,23)-(1,26) = "end" │ │ │ └── closing_loc: (1,23)-(1,26) = "end"
│ │ │ └── numbered_parameters: 0
│ │ └── flags: ∅ │ │ └── flags: ∅
│ └── flags: ∅ │ └── flags: ∅
└── keyword_loc: (1,0)-(1,5) = "break" └── keyword_loc: (1,0)-(1,5) = "break"

View file

@ -75,6 +75,5 @@
│ ├── parameters: ∅ │ ├── parameters: ∅
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (4,5)-(4,7) = "do" │ ├── opening_loc: (4,5)-(4,7) = "do"
│ ├── closing_loc: (4,8)-(4,11) = "end" │ └── closing_loc: (4,8)-(4,11) = "end"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -54,8 +54,7 @@
│ │ │ ├── block: ∅ │ │ │ ├── block: ∅
│ │ │ └── flags: variable_call │ │ │ └── flags: variable_call
│ │ ├── opening_loc: (1,8)-(1,10) = "do" │ │ ├── opening_loc: (1,8)-(1,10) = "do"
│ │ ├── closing_loc: (1,13)-(1,16) = "end" │ │ └── closing_loc: (1,13)-(1,16) = "end"
│ │ └── numbered_parameters: 0
│ └── flags: ∅ │ └── flags: ∅
├── call_operator_loc: (1,16)-(1,17) = "." ├── call_operator_loc: (1,16)-(1,17) = "."
├── name: :e ├── name: :e
@ -96,6 +95,5 @@
│ │ ├── block: ∅ │ │ ├── block: ∅
│ │ └── flags: variable_call │ │ └── flags: variable_call
│ ├── opening_loc: (1,19)-(1,21) = "do" │ ├── opening_loc: (1,19)-(1,21) = "do"
│ ├── closing_loc: (1,28)-(1,31) = "end" │ └── closing_loc: (1,28)-(1,31) = "end"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -54,8 +54,7 @@
│ │ │ ├── block: ∅ │ │ │ ├── block: ∅
│ │ │ └── flags: variable_call │ │ │ └── flags: variable_call
│ │ ├── opening_loc: (1,8)-(1,10) = "do" │ │ ├── opening_loc: (1,8)-(1,10) = "do"
│ │ ├── closing_loc: (1,13)-(1,16) = "end" │ │ └── closing_loc: (1,13)-(1,16) = "end"
│ │ └── numbered_parameters: 0
│ └── flags: ∅ │ └── flags: ∅
├── call_operator_loc: (1,16)-(1,17) = "." ├── call_operator_loc: (1,16)-(1,17) = "."
├── name: :e ├── name: :e
@ -109,6 +108,5 @@
│ │ ├── block: ∅ │ │ ├── block: ∅
│ │ └── flags: variable_call │ │ └── flags: variable_call
│ ├── opening_loc: (1,21)-(1,23) = "do" │ ├── opening_loc: (1,21)-(1,23) = "do"
│ ├── closing_loc: (1,30)-(1,33) = "end" │ └── closing_loc: (1,30)-(1,33) = "end"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -42,8 +42,7 @@
│ │ ├── parameters: ∅ │ │ ├── parameters: ∅
│ │ ├── body: ∅ │ │ ├── body: ∅
│ │ ├── opening_loc: (1,6)-(1,8) = "do" │ │ ├── opening_loc: (1,6)-(1,8) = "do"
│ │ ├── closing_loc: (1,9)-(1,12) = "end" │ │ └── closing_loc: (1,9)-(1,12) = "end"
│ │ └── numbered_parameters: 0
│ └── flags: ∅ │ └── flags: ∅
├── call_operator_loc: (1,12)-(1,14) = "::" ├── call_operator_loc: (1,12)-(1,14) = "::"
├── name: :d ├── name: :d

View file

@ -42,8 +42,7 @@
│ │ ├── parameters: ∅ │ │ ├── parameters: ∅
│ │ ├── body: ∅ │ │ ├── body: ∅
│ │ ├── opening_loc: (1,6)-(1,8) = "do" │ │ ├── opening_loc: (1,6)-(1,8) = "do"
│ │ ├── closing_loc: (1,9)-(1,12) = "end" │ │ └── closing_loc: (1,9)-(1,12) = "end"
│ │ └── numbered_parameters: 0
│ └── flags: ∅ │ └── flags: ∅
├── call_operator_loc: (1,12)-(1,13) = "." ├── call_operator_loc: (1,12)-(1,13) = "."
├── name: :d ├── name: :d

View file

@ -56,6 +56,5 @@
│ ├── parameters: ∅ │ ├── parameters: ∅
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (2,4)-(2,6) = "do" │ ├── opening_loc: (2,4)-(2,6) = "do"
│ ├── closing_loc: (2,7)-(2,10) = "end" │ └── closing_loc: (2,7)-(2,10) = "end"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -27,8 +27,7 @@
│ │ ├── parameters: ∅ │ │ ├── parameters: ∅
│ │ ├── body: ∅ │ │ ├── body: ∅
│ │ ├── opening_loc: (1,5)-(1,7) = "do" │ │ ├── opening_loc: (1,5)-(1,7) = "do"
│ │ ├── closing_loc: (1,8)-(1,11) = "end" │ │ └── closing_loc: (1,8)-(1,11) = "end"
│ │ └── numbered_parameters: 0
│ └── flags: ∅ │ └── flags: ∅
├── call_operator_loc: (1,11)-(1,13) = "::" ├── call_operator_loc: (1,11)-(1,13) = "::"
├── name: :c ├── name: :c

View file

@ -27,8 +27,7 @@
│ │ ├── parameters: ∅ │ │ ├── parameters: ∅
│ │ ├── body: ∅ │ │ ├── body: ∅
│ │ ├── opening_loc: (1,5)-(1,7) = "do" │ │ ├── opening_loc: (1,5)-(1,7) = "do"
│ │ ├── closing_loc: (1,8)-(1,11) = "end" │ │ └── closing_loc: (1,8)-(1,11) = "end"
│ │ └── numbered_parameters: 0
│ └── flags: ∅ │ └── flags: ∅
├── call_operator_loc: (1,11)-(1,12) = "." ├── call_operator_loc: (1,11)-(1,12) = "."
├── name: :c ├── name: :c

View file

@ -41,6 +41,5 @@
│ │ └── closing_loc: (1,11)-(1,12) = "|" │ │ └── closing_loc: (1,11)-(1,12) = "|"
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (1,2)-(1,3) = "{" │ ├── opening_loc: (1,2)-(1,3) = "{"
│ ├── closing_loc: (1,13)-(1,14) = "}" │ └── closing_loc: (1,13)-(1,14) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -41,6 +41,5 @@
│ │ └── closing_loc: (1,11)-(1,12) = "|" │ │ └── closing_loc: (1,11)-(1,12) = "|"
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (1,2)-(1,3) = "{" │ ├── opening_loc: (1,2)-(1,3) = "{"
│ ├── closing_loc: (1,13)-(1,14) = "}" │ └── closing_loc: (1,13)-(1,14) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -45,6 +45,5 @@
│ │ └── closing_loc: (1,15)-(1,16) = "|" │ │ └── closing_loc: (1,15)-(1,16) = "|"
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (1,2)-(1,3) = "{" │ ├── opening_loc: (1,2)-(1,3) = "{"
│ ├── closing_loc: (1,17)-(1,18) = "}" │ └── closing_loc: (1,17)-(1,18) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -41,6 +41,5 @@
│ │ └── closing_loc: (1,9)-(1,10) = "|" │ │ └── closing_loc: (1,9)-(1,10) = "|"
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (1,2)-(1,3) = "{" │ ├── opening_loc: (1,2)-(1,3) = "{"
│ ├── closing_loc: (1,11)-(1,12) = "}" │ └── closing_loc: (1,11)-(1,12) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -36,6 +36,5 @@
│ │ └── closing_loc: (1,12)-(1,13) = "|" │ │ └── closing_loc: (1,12)-(1,13) = "|"
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (1,5)-(1,6) = "{" │ ├── opening_loc: (1,5)-(1,6) = "{"
│ ├── closing_loc: (1,14)-(1,15) = "}" │ └── closing_loc: (1,14)-(1,15) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -33,6 +33,5 @@
│ │ └── closing_loc: (1,11)-(1,12) = "|" │ │ └── closing_loc: (1,11)-(1,12) = "|"
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (1,5)-(1,7) = "do" │ ├── opening_loc: (1,5)-(1,7) = "do"
│ ├── closing_loc: (1,13)-(1,16) = "end" │ └── closing_loc: (1,13)-(1,16) = "end"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -44,6 +44,5 @@
│ │ ├── name: :kw │ │ ├── name: :kw
│ │ └── depth: 0 │ │ └── depth: 0
│ ├── opening_loc: (1,3)-(1,4) = "{" │ ├── opening_loc: (1,3)-(1,4) = "{"
│ ├── closing_loc: (1,19)-(1,20) = "}" │ └── closing_loc: (1,19)-(1,20) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -53,6 +53,5 @@
│ │ ├── name: :kw │ │ ├── name: :kw
│ │ └── depth: 0 │ │ └── depth: 0
│ ├── opening_loc: (1,3)-(1,4) = "{" │ ├── opening_loc: (1,3)-(1,4) = "{"
│ ├── closing_loc: (1,32)-(1,33) = "}" │ └── closing_loc: (1,32)-(1,33) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -49,8 +49,7 @@
│ │ │ │ └── closing_loc: (1,20)-(1,21) = "|" │ │ │ │ └── closing_loc: (1,20)-(1,21) = "|"
│ │ │ ├── body: ∅ │ │ │ ├── body: ∅
│ │ │ ├── opening_loc: (1,13)-(1,15) = "do" │ │ │ ├── opening_loc: (1,13)-(1,15) = "do"
│ │ │ ├── closing_loc: (1,22)-(1,25) = "end" │ │ │ └── closing_loc: (1,22)-(1,25) = "end"
│ │ │ └── numbered_parameters: 0
│ │ └── flags: ∅ │ │ └── flags: ∅
│ └── flags: ∅ │ └── flags: ∅
└── keyword_loc: (1,0)-(1,4) = "next" └── keyword_loc: (1,0)-(1,4) = "next"

View file

@ -39,6 +39,5 @@
│ │ └── closing_loc: (1,11)-(1,12) = "|" │ │ └── closing_loc: (1,11)-(1,12) = "|"
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (1,2)-(1,3) = "{" │ ├── opening_loc: (1,2)-(1,3) = "{"
│ ├── closing_loc: (1,13)-(1,14) = "}" │ └── closing_loc: (1,13)-(1,14) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -41,6 +41,5 @@
│ │ └── closing_loc: (1,14)-(1,15) = "|" │ │ └── closing_loc: (1,14)-(1,15) = "|"
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (1,2)-(1,3) = "{" │ ├── opening_loc: (1,2)-(1,3) = "{"
│ ├── closing_loc: (1,16)-(1,17) = "}" │ └── closing_loc: (1,16)-(1,17) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -47,6 +47,5 @@
│ │ └── closing_loc: (1,19)-(1,20) = "|" │ │ └── closing_loc: (1,19)-(1,20) = "|"
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (1,2)-(1,3) = "{" │ ├── opening_loc: (1,2)-(1,3) = "{"
│ ├── closing_loc: (1,21)-(1,22) = "}" │ └── closing_loc: (1,21)-(1,22) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -40,6 +40,5 @@
│ │ └── closing_loc: (1,11)-(1,12) = "|" │ │ └── closing_loc: (1,11)-(1,12) = "|"
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (1,2)-(1,3) = "{" │ ├── opening_loc: (1,2)-(1,3) = "{"
│ ├── closing_loc: (1,13)-(1,14) = "}" │ └── closing_loc: (1,13)-(1,14) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -43,6 +43,5 @@
│ │ └── closing_loc: (1,12)-(1,13) = "|" │ │ └── closing_loc: (1,12)-(1,13) = "|"
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (1,2)-(1,3) = "{" │ ├── opening_loc: (1,2)-(1,3) = "{"
│ ├── closing_loc: (1,14)-(1,15) = "}" │ └── closing_loc: (1,14)-(1,15) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -42,6 +42,5 @@
│ │ └── closing_loc: (1,14)-(1,15) = "|" │ │ └── closing_loc: (1,14)-(1,15) = "|"
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (1,2)-(1,3) = "{" │ ├── opening_loc: (1,2)-(1,3) = "{"
│ ├── closing_loc: (1,16)-(1,17) = "}" │ └── closing_loc: (1,16)-(1,17) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -50,7 +50,6 @@
│ │ │ └── closing_loc: (1,22)-(1,23) = "|" │ │ │ └── closing_loc: (1,22)-(1,23) = "|"
│ │ ├── body: ∅ │ │ ├── body: ∅
│ │ ├── opening_loc: (1,15)-(1,17) = "do" │ │ ├── opening_loc: (1,15)-(1,17) = "do"
│ │ ├── closing_loc: (1,24)-(1,27) = "end" │ │ └── closing_loc: (1,24)-(1,27) = "end"
│ │ └── numbered_parameters: 0
│ └── flags: ∅ │ └── flags: ∅
└── flags: ∅ └── flags: ∅

View file

@ -24,6 +24,5 @@
│ │ └── closing_loc: (1,7)-(1,8) = "|" │ │ └── closing_loc: (1,7)-(1,8) = "|"
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (1,2)-(1,3) = "{" │ ├── opening_loc: (1,2)-(1,3) = "{"
│ ├── closing_loc: (1,9)-(1,10) = "}" │ └── closing_loc: (1,9)-(1,10) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -36,6 +36,5 @@
│ │ └── closing_loc: (1,10)-(1,11) = "|" │ │ └── closing_loc: (1,10)-(1,11) = "|"
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (1,2)-(1,3) = "{" │ ├── opening_loc: (1,2)-(1,3) = "{"
│ ├── closing_loc: (1,12)-(1,13) = "}" │ └── closing_loc: (1,12)-(1,13) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -24,6 +24,5 @@
│ ├── parameters: ∅ │ ├── parameters: ∅
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (1,5)-(1,6) = "{" │ ├── opening_loc: (1,5)-(1,6) = "{"
│ ├── closing_loc: (1,6)-(1,7) = "}" │ └── closing_loc: (1,6)-(1,7) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -33,8 +33,7 @@
│ │ │ └── closing_loc: (1,5)-(1,6) = "|" │ │ │ └── closing_loc: (1,5)-(1,6) = "|"
│ │ ├── body: ∅ │ │ ├── body: ∅
│ │ ├── opening_loc: (1,1)-(1,2) = "{" │ │ ├── opening_loc: (1,1)-(1,2) = "{"
│ │ ├── closing_loc: (1,6)-(1,7) = "}" │ │ └── closing_loc: (1,6)-(1,7) = "}"
│ │ └── numbered_parameters: 0
│ └── flags: ∅ │ └── flags: ∅
└── @ CallNode (location: (3,0)-(3,6)) └── @ CallNode (location: (3,0)-(3,6))
├── receiver: ∅ ├── receiver: ∅
@ -65,6 +64,5 @@
│ │ └── closing_loc: (3,4)-(3,5) = "|" │ │ └── closing_loc: (3,4)-(3,5) = "|"
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (3,1)-(3,2) = "{" │ ├── opening_loc: (3,1)-(3,2) = "{"
│ ├── closing_loc: (3,5)-(3,6) = "}" │ └── closing_loc: (3,5)-(3,6) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -44,8 +44,7 @@
│ │ │ │ ├── parameters: ∅ │ │ │ │ ├── parameters: ∅
│ │ │ │ ├── body: ∅ │ │ │ │ ├── body: ∅
│ │ │ │ ├── opening_loc: (2,4)-(2,6) = "do" │ │ │ │ ├── opening_loc: (2,4)-(2,6) = "do"
│ │ │ │ ├── closing_loc: (2,7)-(2,10) = "end" │ │ │ │ └── closing_loc: (2,7)-(2,10) = "end"
│ │ │ │ └── numbered_parameters: 0
│ │ │ └── flags: ∅ │ │ │ └── flags: ∅
│ │ ├── locals: [] │ │ ├── locals: []
│ │ ├── def_keyword_loc: (1,8)-(1,11) = "def" │ │ ├── def_keyword_loc: (1,8)-(1,11) = "def"

View file

@ -49,8 +49,7 @@
│ │ │ │ │ │ │ ├── equal_loc: ∅ │ │ │ │ │ │ │ ├── equal_loc: ∅
│ │ │ │ │ │ │ └── end_keyword_loc: (3,0)-(3,3) = "end" │ │ │ │ │ │ │ └── end_keyword_loc: (3,0)-(3,3) = "end"
│ │ │ │ │ │ ├── opening_loc: (1,17)-(1,19) = "do" │ │ │ │ │ │ ├── opening_loc: (1,17)-(1,19) = "do"
│ │ │ │ │ │ ├── closing_loc: (4,1)-(4,4) = "end" │ │ │ │ │ │ └── closing_loc: (4,1)-(4,4) = "end"
│ │ │ │ │ │ └── numbered_parameters: 0
│ │ │ │ │ └── flags: ∅ │ │ │ │ │ └── flags: ∅
│ │ │ │ ├── opening_loc: (1,6)-(1,7) = "(" │ │ │ │ ├── opening_loc: (1,6)-(1,7) = "("
│ │ │ │ └── closing_loc: (4,4)-(4,5) = ")" │ │ │ │ └── closing_loc: (4,4)-(4,5) = ")"

View file

@ -52,6 +52,5 @@
│ │ ├── block: ∅ │ │ ├── block: ∅
│ │ └── flags: variable_call │ │ └── flags: variable_call
│ ├── opening_loc: (1,2)-(1,3) = "{" │ ├── opening_loc: (1,2)-(1,3) = "{"
│ ├── closing_loc: (1,15)-(1,16) = "}" │ └── closing_loc: (1,15)-(1,16) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -42,6 +42,5 @@
│ │ └── closing_loc: (1,14)-(1,15) = "|" │ │ └── closing_loc: (1,14)-(1,15) = "|"
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (1,2)-(1,3) = "{" │ ├── opening_loc: (1,2)-(1,3) = "{"
│ ├── closing_loc: (1,16)-(1,17) = "}" │ └── closing_loc: (1,16)-(1,17) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -50,6 +50,5 @@
│ │ └── closing_loc: (1,19)-(1,20) = "|" │ │ └── closing_loc: (1,19)-(1,20) = "|"
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (1,2)-(1,3) = "{" │ ├── opening_loc: (1,2)-(1,3) = "{"
│ ├── closing_loc: (1,21)-(1,22) = "}" │ └── closing_loc: (1,21)-(1,22) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -48,6 +48,5 @@
│ │ └── closing_loc: (1,16)-(1,17) = "|" │ │ └── closing_loc: (1,16)-(1,17) = "|"
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (1,2)-(1,3) = "{" │ ├── opening_loc: (1,2)-(1,3) = "{"
│ ├── closing_loc: (1,18)-(1,19) = "}" │ └── closing_loc: (1,18)-(1,19) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -42,6 +42,5 @@
│ │ └── closing_loc: (1,14)-(1,15) = "|" │ │ └── closing_loc: (1,14)-(1,15) = "|"
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (1,2)-(1,3) = "{" │ ├── opening_loc: (1,2)-(1,3) = "{"
│ ├── closing_loc: (1,16)-(1,17) = "}" │ └── closing_loc: (1,16)-(1,17) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -29,8 +29,7 @@
│ │ │ │ ├── parameters: ∅ │ │ │ │ ├── parameters: ∅
│ │ │ │ ├── body: ∅ │ │ │ │ ├── body: ∅
│ │ │ │ ├── opening_loc: (1,11)-(1,13) = "do" │ │ │ │ ├── opening_loc: (1,11)-(1,13) = "do"
│ │ │ │ ├── closing_loc: (1,14)-(1,17) = "end" │ │ │ │ └── closing_loc: (1,14)-(1,17) = "end"
│ │ │ │ └── numbered_parameters: 0
│ │ │ └── flags: ∅ │ │ │ └── flags: ∅
│ │ ├── opening_loc: (1,2)-(1,3) = "[" │ │ ├── opening_loc: (1,2)-(1,3) = "["
│ │ ├── closing_loc: (1,18)-(1,19) = "]" │ │ ├── closing_loc: (1,18)-(1,19) = "]"

View file

@ -25,8 +25,7 @@
│ │ │ │ ├── locals: (length: 0) │ │ │ │ ├── locals: (length: 0)
│ │ │ │ ├── opening_loc: (1,5)-(1,6) = "(" │ │ │ │ ├── opening_loc: (1,5)-(1,6) = "("
│ │ │ │ └── closing_loc: (1,6)-(1,7) = ")" │ │ │ │ └── closing_loc: (1,6)-(1,7) = ")"
│ │ │ ├── body: ∅ │ │ │ └── body: ∅
│ │ │ └── numbered_parameters: 0
│ │ ├── opening_loc: (1,2)-(1,3) = "[" │ │ ├── opening_loc: (1,2)-(1,3) = "["
│ │ ├── closing_loc: (1,10)-(1,11) = "]" │ │ ├── closing_loc: (1,10)-(1,11) = "]"
│ │ └── flags: ∅ │ │ └── flags: ∅
@ -38,6 +37,5 @@
│ ├── parameters: ∅ │ ├── parameters: ∅
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (1,12)-(1,14) = "do" │ ├── opening_loc: (1,12)-(1,14) = "do"
│ ├── closing_loc: (2,0)-(2,3) = "end" │ └── closing_loc: (2,0)-(2,3) = "end"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -41,8 +41,7 @@
│ │ │ │ ├── parameters: ∅ │ │ │ │ ├── parameters: ∅
│ │ │ │ ├── body: ∅ │ │ │ │ ├── body: ∅
│ │ │ │ ├── opening_loc: (2,4)-(2,6) = "do" │ │ │ │ ├── opening_loc: (2,4)-(2,6) = "do"
│ │ │ │ ├── closing_loc: (2,7)-(2,10) = "end" │ │ │ │ └── closing_loc: (2,7)-(2,10) = "end"
│ │ │ │ └── numbered_parameters: 0
│ │ │ └── flags: ∅ │ │ │ └── flags: ∅
│ │ ├── rescue_clause: ∅ │ │ ├── rescue_clause: ∅
│ │ ├── else_clause: ∅ │ │ ├── else_clause: ∅

View file

@ -18,12 +18,11 @@
│ │ ├── opening_loc: (1,5)-(1,7) = "do" │ │ ├── opening_loc: (1,5)-(1,7) = "do"
│ │ ├── closing_loc: (1,10)-(1,13) = "end" │ │ ├── closing_loc: (1,10)-(1,13) = "end"
│ │ ├── parameters: ∅ │ │ ├── parameters: ∅
│ │ ├── body: │ │ └── body:
│ │ │ @ StatementsNode (location: (1,8)-(1,9)) │ │ @ StatementsNode (location: (1,8)-(1,9))
│ │ │ └── body: (length: 1) │ │ └── body: (length: 1)
│ │ │ └── @ IntegerNode (location: (1,8)-(1,9)) │ │ └── @ IntegerNode (location: (1,8)-(1,9))
│ │ │ └── flags: decimal │ │ └── flags: decimal
│ │ └── numbered_parameters: 0
│ └── flags: ∅ │ └── flags: ∅
├── closing_loc: ∅ ├── closing_loc: ∅
├── block: ├── block:
@ -36,6 +35,5 @@
│ │ └── @ IntegerNode (location: (1,17)-(1,18)) │ │ └── @ IntegerNode (location: (1,17)-(1,18))
│ │ └── flags: decimal │ │ └── flags: decimal
│ ├── opening_loc: (1,14)-(1,16) = "do" │ ├── opening_loc: (1,14)-(1,16) = "do"
│ ├── closing_loc: (1,19)-(1,22) = "end" │ └── closing_loc: (1,19)-(1,22) = "end"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -18,12 +18,11 @@
│ │ ├── opening_loc: (1,5)-(1,6) = "{" │ │ ├── opening_loc: (1,5)-(1,6) = "{"
│ │ ├── closing_loc: (1,9)-(1,10) = "}" │ │ ├── closing_loc: (1,9)-(1,10) = "}"
│ │ ├── parameters: ∅ │ │ ├── parameters: ∅
│ │ ├── body: │ │ └── body:
│ │ │ @ StatementsNode (location: (1,7)-(1,8)) │ │ @ StatementsNode (location: (1,7)-(1,8))
│ │ │ └── body: (length: 1) │ │ └── body: (length: 1)
│ │ │ └── @ IntegerNode (location: (1,7)-(1,8)) │ │ └── @ IntegerNode (location: (1,7)-(1,8))
│ │ │ └── flags: decimal │ │ └── flags: decimal
│ │ └── numbered_parameters: 0
│ └── flags: ∅ │ └── flags: ∅
├── closing_loc: ∅ ├── closing_loc: ∅
├── block: ├── block:
@ -36,6 +35,5 @@
│ │ └── @ IntegerNode (location: (1,14)-(1,15)) │ │ └── @ IntegerNode (location: (1,14)-(1,15))
│ │ └── flags: decimal │ │ └── flags: decimal
│ ├── opening_loc: (1,11)-(1,13) = "do" │ ├── opening_loc: (1,11)-(1,13) = "do"
│ ├── closing_loc: (1,16)-(1,19) = "end" │ └── closing_loc: (1,16)-(1,19) = "end"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -539,11 +539,10 @@
│ │ │ │ │ │ ├── locals: (length: 0) │ │ │ │ │ │ ├── locals: (length: 0)
│ │ │ │ │ │ ├── opening_loc: (70,6)-(70,7) = "(" │ │ │ │ │ │ ├── opening_loc: (70,6)-(70,7) = "("
│ │ │ │ │ │ └── closing_loc: (70,8)-(70,9) = ")" │ │ │ │ │ │ └── closing_loc: (70,8)-(70,9) = ")"
│ │ │ │ │ ├── body: │ │ │ │ │ └── body:
│ │ │ │ │ │ @ StatementsNode (location: (70,12)-(70,16)) │ │ │ │ │ @ StatementsNode (location: (70,12)-(70,16))
│ │ │ │ │ │ └── body: (length: 1) │ │ │ │ │ └── body: (length: 1)
│ │ │ │ │ │ └── @ TrueNode (location: (70,12)-(70,16)) │ │ │ │ │ └── @ TrueNode (location: (70,12)-(70,16))
│ │ │ │ │ └── numbered_parameters: 0
│ │ │ │ └── @ LocalVariableTargetNode (location: (70,20)-(70,21)) │ │ │ │ └── @ LocalVariableTargetNode (location: (70,20)-(70,21))
│ │ │ │ ├── name: :c │ │ │ │ ├── name: :c
│ │ │ │ └── depth: 0 │ │ │ │ └── depth: 0

View file

@ -57,6 +57,5 @@
│ │ ├── ensure_clause: ∅ │ │ ├── ensure_clause: ∅
│ │ └── end_keyword_loc: (7,2)-(7,5) = "end" │ │ └── end_keyword_loc: (7,2)-(7,5) = "end"
│ ├── opening_loc: (1,2)-(1,4) = "do" │ ├── opening_loc: (1,2)-(1,4) = "do"
│ ├── closing_loc: (8,0)-(8,3) = "end" │ └── closing_loc: (8,0)-(8,3) = "end"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -45,8 +45,7 @@
│ │ │ │ ├── parameters: ∅ │ │ │ │ ├── parameters: ∅
│ │ │ │ ├── body: ∅ │ │ │ │ ├── body: ∅
│ │ │ │ ├── opening_loc: (1,18)-(1,20) = "do" │ │ │ │ ├── opening_loc: (1,18)-(1,20) = "do"
│ │ │ │ ├── closing_loc: (1,22)-(1,25) = "end" │ │ │ │ └── closing_loc: (1,22)-(1,25) = "end"
│ │ │ │ └── numbered_parameters: 0
│ │ │ └── flags: ∅ │ │ │ └── flags: ∅
│ │ ├── locals: [] │ │ ├── locals: []
│ │ ├── def_keyword_loc: (1,2)-(1,5) = "def" │ │ ├── def_keyword_loc: (1,2)-(1,5) = "def"

View file

@ -45,6 +45,5 @@
│ │ └── closing_loc: (1,15)-(1,16) = "|" │ │ └── closing_loc: (1,15)-(1,16) = "|"
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (1,2)-(1,3) = "{" │ ├── opening_loc: (1,2)-(1,3) = "{"
│ ├── closing_loc: (1,17)-(1,18) = "}" │ └── closing_loc: (1,17)-(1,18) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -36,6 +36,5 @@
│ │ └── closing_loc: (1,10)-(1,11) = "|" │ │ └── closing_loc: (1,10)-(1,11) = "|"
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (1,2)-(1,3) = "{" │ ├── opening_loc: (1,2)-(1,3) = "{"
│ ├── closing_loc: (1,12)-(1,13) = "}" │ └── closing_loc: (1,12)-(1,13) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -40,6 +40,5 @@
│ │ └── closing_loc: (1,14)-(1,15) = "|" │ │ └── closing_loc: (1,14)-(1,15) = "|"
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (1,2)-(1,3) = "{" │ ├── opening_loc: (1,2)-(1,3) = "{"
│ ├── closing_loc: (1,16)-(1,17) = "}" │ └── closing_loc: (1,16)-(1,17) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -23,27 +23,25 @@
│ │ │ ├── locals: (length: 0) │ │ │ ├── locals: (length: 0)
│ │ │ ├── opening_loc: (1,4)-(1,5) = "(" │ │ │ ├── opening_loc: (1,4)-(1,5) = "("
│ │ │ └── closing_loc: (1,5)-(1,6) = ")" │ │ │ └── closing_loc: (1,5)-(1,6) = ")"
│ │ ├── body: │ │ └── body:
│ │ │ @ StatementsNode (location: (1,9)-(1,17)) │ │ @ StatementsNode (location: (1,9)-(1,17))
│ │ │ └── body: (length: 1) │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (1,9)-(1,17)) │ │ └── @ CallNode (location: (1,9)-(1,17))
│ │ │ ├── receiver: ∅ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :g │ │ ├── name: :g
│ │ │ ├── message_loc: (1,9)-(1,10) = "g" │ │ ├── message_loc: (1,9)-(1,10) = "g"
│ │ │ ├── opening_loc: ∅ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅ │ │ ├── closing_loc: ∅
│ │ │ ├── block: │ │ ├── block:
│ │ │ │ @ BlockNode (location: (1,11)-(1,17)) │ │ │ @ BlockNode (location: (1,11)-(1,17))
│ │ │ │ ├── locals: [] │ │ │ ├── locals: []
│ │ │ │ ├── parameters: ∅ │ │ │ ├── parameters: ∅
│ │ │ │ ├── body: ∅ │ │ │ ├── body: ∅
│ │ │ │ ├── opening_loc: (1,11)-(1,13) = "do" │ │ │ ├── opening_loc: (1,11)-(1,13) = "do"
│ │ │ │ ├── closing_loc: (1,14)-(1,17) = "end" │ │ │ └── closing_loc: (1,14)-(1,17) = "end"
│ │ │ │ └── numbered_parameters: 0 │ │ └── flags: ∅
│ │ │ └── flags: ∅
│ │ └── numbered_parameters: 0
│ └── flags: ∅ │ └── flags: ∅
├── closing_loc: ∅ ├── closing_loc: ∅
├── block: ∅ ├── block: ∅

View file

@ -45,6 +45,5 @@
│ │ └── closing_loc: (1,15)-(1,16) = "|" │ │ └── closing_loc: (1,15)-(1,16) = "|"
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (1,2)-(1,3) = "{" │ ├── opening_loc: (1,2)-(1,3) = "{"
│ ├── closing_loc: (1,17)-(1,18) = "}" │ └── closing_loc: (1,17)-(1,18) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -41,6 +41,5 @@
│ │ └── closing_loc: (1,11)-(1,12) = "|" │ │ └── closing_loc: (1,11)-(1,12) = "|"
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (1,2)-(1,3) = "{" │ ├── opening_loc: (1,2)-(1,3) = "{"
│ ├── closing_loc: (1,13)-(1,14) = "}" │ └── closing_loc: (1,13)-(1,14) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -43,6 +43,5 @@
│ │ └── closing_loc: (1,14)-(1,15) = "|" │ │ └── closing_loc: (1,14)-(1,15) = "|"
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (1,2)-(1,3) = "{" │ ├── opening_loc: (1,2)-(1,3) = "{"
│ ├── closing_loc: (1,16)-(1,17) = "}" │ └── closing_loc: (1,16)-(1,17) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -47,6 +47,5 @@
│ │ └── closing_loc: (1,18)-(1,19) = "|" │ │ └── closing_loc: (1,18)-(1,19) = "|"
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (1,2)-(1,3) = "{" │ ├── opening_loc: (1,2)-(1,3) = "{"
│ ├── closing_loc: (1,20)-(1,21) = "}" │ └── closing_loc: (1,20)-(1,21) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -43,6 +43,5 @@
│ │ └── closing_loc: (1,14)-(1,15) = "|" │ │ └── closing_loc: (1,14)-(1,15) = "|"
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (1,2)-(1,3) = "{" │ ├── opening_loc: (1,2)-(1,3) = "{"
│ ├── closing_loc: (1,16)-(1,17) = "}" │ └── closing_loc: (1,16)-(1,17) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -45,6 +45,5 @@
│ │ └── closing_loc: (1,17)-(1,18) = "|" │ │ └── closing_loc: (1,17)-(1,18) = "|"
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (1,2)-(1,3) = "{" │ ├── opening_loc: (1,2)-(1,3) = "{"
│ ├── closing_loc: (1,19)-(1,20) = "}" │ └── closing_loc: (1,19)-(1,20) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -43,6 +43,5 @@
│ │ └── closing_loc: (1,12)-(1,13) = "|" │ │ └── closing_loc: (1,12)-(1,13) = "|"
│ ├── body: ∅ │ ├── body: ∅
│ ├── opening_loc: (1,2)-(1,3) = "{" │ ├── opening_loc: (1,2)-(1,3) = "{"
│ ├── closing_loc: (1,14)-(1,15) = "}" │ └── closing_loc: (1,14)-(1,15) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -30,31 +30,30 @@
│ ├── locals: (length: 0) │ ├── locals: (length: 0)
│ ├── opening_loc: (1,2)-(1,3) = "(" │ ├── opening_loc: (1,2)-(1,3) = "("
│ └── closing_loc: (1,11)-(1,12) = ")" │ └── closing_loc: (1,11)-(1,12) = ")"
├── body: └── body:
│ @ StatementsNode (location: (1,15)-(1,23)) @ StatementsNode (location: (1,15)-(1,23))
│ └── body: (length: 1) └── body: (length: 1)
│ └── @ CallNode (location: (1,15)-(1,23)) └── @ CallNode (location: (1,15)-(1,23))
│ ├── receiver: ∅ ├── receiver: ∅
│ ├── call_operator_loc: ∅ ├── call_operator_loc: ∅
│ ├── name: :p ├── name: :p
│ ├── message_loc: (1,15)-(1,16) = "p" ├── message_loc: (1,15)-(1,16) = "p"
│ ├── opening_loc: ∅ ├── opening_loc: ∅
│ ├── arguments: ├── arguments:
│ │ @ ArgumentsNode (location: (1,17)-(1,23)) │ @ ArgumentsNode (location: (1,17)-(1,23))
│ │ ├── arguments: (length: 1) │ ├── arguments: (length: 1)
│ │ │ └── @ ArrayNode (location: (1,17)-(1,23)) │ │ └── @ ArrayNode (location: (1,17)-(1,23))
│ │ │ ├── elements: (length: 2) │ │ ├── elements: (length: 2)
│ │ │ │ ├── @ LocalVariableReadNode (location: (1,18)-(1,19)) │ │ │ ├── @ LocalVariableReadNode (location: (1,18)-(1,19))
│ │ │ │ │ ├── name: :a │ │ │ │ ├── name: :a
│ │ │ │ │ └── depth: 0
│ │ │ │ └── @ LocalVariableReadNode (location: (1,21)-(1,22))
│ │ │ │ ├── name: :b
│ │ │ │ └── depth: 0 │ │ │ │ └── depth: 0
│ │ │ ├── opening_loc: (1,17)-(1,18) = "[" │ │ │ └── @ LocalVariableReadNode (location: (1,21)-(1,22))
│ │ │ ├── closing_loc: (1,22)-(1,23) = "]" │ │ │ ├── name: :b
│ │ │ └── flags: ∅ │ │ │ └── depth: 0
│ │ ├── opening_loc: (1,17)-(1,18) = "["
│ │ ├── closing_loc: (1,22)-(1,23) = "]"
│ │ └── flags: ∅ │ │ └── flags: ∅
│ ├── closing_loc: ∅
│ ├── block: ∅
│ └── flags: ∅ │ └── flags: ∅
└── numbered_parameters: 0 ├── closing_loc: ∅
├── block: ∅
└── flags: ∅

View file

@ -50,6 +50,5 @@
│ │ ├── block: ∅ │ │ ├── block: ∅
│ │ └── flags: variable_call │ │ └── flags: variable_call
│ ├── opening_loc: (1,8)-(1,9) = "{" │ ├── opening_loc: (1,8)-(1,9) = "{"
│ ├── closing_loc: (1,10)-(1,11) = "}" │ └── closing_loc: (1,10)-(1,11) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

View file

@ -50,6 +50,5 @@
│ │ ├── block: ∅ │ │ ├── block: ∅
│ │ └── flags: variable_call │ │ └── flags: variable_call
│ ├── opening_loc: (1,9)-(1,10) = "{" │ ├── opening_loc: (1,9)-(1,10) = "{"
│ ├── closing_loc: (1,11)-(1,12) = "}" │ └── closing_loc: (1,11)-(1,12) = "}"
│ └── numbered_parameters: 0
└── flags: ∅ └── flags: ∅

Some files were not shown because too many files have changed in this diff Show more