Remove selector_name rule

Was a choice() with a single alternative
This commit is contained in:
Emmanuel Briot 2022-10-25 09:58:04 +02:00
parent e06723eee2
commit fb5a2b68b0
4 changed files with 167 additions and 183 deletions

View File

@ -58,8 +58,7 @@ end;
(actual_parameter_part (actual_parameter_part
(parameter_association (parameter_association
(component_choice_list (component_choice_list
(selector_name (identifier))
(identifier)))
(assoc_expression (assoc_expression
(expression (expression
(relation (relation
@ -70,8 +69,7 @@ end;
(numeric_literal))))))))) (numeric_literal)))))))))
(parameter_association (parameter_association
(component_choice_list (component_choice_list
(selector_name (identifier))
(identifier)))
(assoc_expression))))))) (assoc_expression)))))))
(generic_formal_parameter_declaration (generic_formal_parameter_declaration
(formal_subprogram_declaration (formal_subprogram_declaration

View File

@ -357,178 +357,174 @@ end;
(record_extension_part (record_extension_part
(record_definition))))))))) (record_definition)))))))))
======== ================================================================================
record aggregates record aggregates
======== ================================================================================
procedure P is procedure P is
begin begin
A := (F1 => 1, F2 => 2); A := (F1 => 1, F2 => 2);
end; end;
------- --------------------------------------------------------------------------------
(compilation (compilation
(compilation_unit (compilation_unit
(proper_body (proper_body
(subprogram_body (subprogram_body
(subprogram_specification (subprogram_specification
(procedure_specification (procedure_specification
(name (name
(identifier)))) (identifier))))
(handled_sequence_of_statements (handled_sequence_of_statements
(sequence_of_statements (sequence_of_statements
(statement (statement
(simple_statement (simple_statement
(assignment_statement (assignment_statement
(name (name
(identifier)) (identifier))
(assign_value (assign_value
(expression (expression
(relation (relation
(simple_expression (simple_expression
(term (term
(factor (factor
(primary (primary
(aggregate (aggregate
(record_aggregate (record_aggregate
(record_component_association_list (record_component_association_list
(record_component_association (record_component_association
(component_choice_list (component_choice_list
(selector_name (identifier))
(identifier))) (assoc_expression
(assoc_expression
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal)))))))))
(record_component_association
(component_choice_list
(selector_name
(identifier)))
(assoc_expression
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal))))))))))))))))))))))))))))
======
record aggregate extension
======
procedure P is
begin
A := (B with F3 => 2);
end;
---------
(compilation
(compilation_unit
(proper_body
(subprogram_body
(subprogram_specification
(procedure_specification
(name
(identifier))))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(simple_statement
(assignment_statement
(name
(identifier))
(assign_value
(expression
(relation
(simple_expression
(term
(factor
(primary
(aggregate
(extension_aggregate
(expression
(relation
(simple_expression
(term
(factor
(primary
(name
(identifier))))))))
(record_component_association_list
(record_component_association
(component_choice_list
(selector_name
(identifier)))
(assoc_expression
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal))))))))))))))))))))))))))))
======
record delta aggregate
======
procedure P is
begin
A := (B with delta F3 => 2);
end;
-------
(compilation
(compilation_unit
(proper_body
(subprogram_body
(subprogram_specification
(procedure_specification
(name
(identifier))))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(simple_statement
(assignment_statement
(name
(identifier))
(assign_value
(expression
(relation
(simple_expression
(term
(factor
(primary
(aggregate
(delta_aggregate
(record_delta_aggregate
(expression (expression
(relation (relation
(simple_expression (simple_expression
(term (term
(factor (factor
(primary (primary
(name (numeric_literal)))))))))
(identifier)))))))) (record_component_association
(record_component_association_list (component_choice_list
(record_component_association (identifier))
(component_choice_list (assoc_expression
(selector_name (expression
(identifier))) (relation
(assoc_expression (simple_expression
(expression (term
(relation (factor
(simple_expression (primary
(term (numeric_literal))))))))))))))))))))))))))))
(factor
(primary ================================================================================
(numeric_literal))))))))))))))))))))))))))))) record aggregate extension
================================================================================
procedure P is
begin
A := (B with F3 => 2);
end;
--------------------------------------------------------------------------------
(compilation
(compilation_unit
(proper_body
(subprogram_body
(subprogram_specification
(procedure_specification
(name
(identifier))))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(simple_statement
(assignment_statement
(name
(identifier))
(assign_value
(expression
(relation
(simple_expression
(term
(factor
(primary
(aggregate
(extension_aggregate
(expression
(relation
(simple_expression
(term
(factor
(primary
(name
(identifier))))))))
(record_component_association_list
(record_component_association
(component_choice_list
(identifier))
(assoc_expression
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal))))))))))))))))))))))))))))
================================================================================
record delta aggregate
================================================================================
procedure P is
begin
A := (B with delta F3 => 2);
end;
--------------------------------------------------------------------------------
(compilation
(compilation_unit
(proper_body
(subprogram_body
(subprogram_specification
(procedure_specification
(name
(identifier))))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(simple_statement
(assignment_statement
(name
(identifier))
(assign_value
(expression
(relation
(simple_expression
(term
(factor
(primary
(aggregate
(delta_aggregate
(record_delta_aggregate
(expression
(relation
(simple_expression
(term
(factor
(primary
(name
(identifier))))))))
(record_component_association_list
(record_component_association
(component_choice_list
(identifier))
(assoc_expression
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal)))))))))))))))))))))))))))))

View File

@ -228,8 +228,7 @@ end F;
(record_component_association_list (record_component_association_list
(record_component_association (record_component_association
(component_choice_list (component_choice_list
(selector_name (identifier))
(identifier)))
(assoc_expression (assoc_expression
(expression (expression
(relation (relation
@ -390,8 +389,7 @@ end;
(actual_parameter_part (actual_parameter_part
(parameter_association (parameter_association
(component_choice_list (component_choice_list
(selector_name (identifier))
(identifier)))
(assoc_expression (assoc_expression
(expression (expression
(relation (relation
@ -574,8 +572,7 @@ end;
(actual_parameter_part (actual_parameter_part
(parameter_association (parameter_association
(component_choice_list (component_choice_list
(selector_name (identifier))
(identifier)))
(assoc_expression (assoc_expression
(expression (expression
(relation (relation
@ -702,8 +699,7 @@ end;
(record_component_association_list (record_component_association_list
(record_component_association (record_component_association
(component_choice_list (component_choice_list
(selector_name (identifier))
(identifier)))
(assoc_expression (assoc_expression
(expression (expression
(relation (relation

View File

@ -50,9 +50,9 @@ module.exports = grammar({
// specified in at_clause. // specified in at_clause.
[$.at_clause, $.name], [$.at_clause, $.name],
// name ':=' '(' _direct_name . '=>' // 'case' '(' _direct_name . '=>' ...
// Where the direct_name could be a name or selector_name // ??? Invalid Ada
[$.name, $.selector_name], [$.name, $.component_choice_list],
// name ':=' '(' expression . ',' ... // name ':=' '(' expression . ',' ...
[$.expression_list, $.record_component_association], [$.expression_list, $.record_component_association],
@ -111,7 +111,6 @@ module.exports = grammar({
[$.function_call, $.procedure_call_statement], [$.function_call, $.procedure_call_statement],
[$.function_call, $.name], [$.function_call, $.name],
[$.selector_name, $.primary],
[$.formal_derived_type_definition], [$.formal_derived_type_definition],
[$._direct_name, $.aspect_mark], [$._direct_name, $.aspect_mark],
[$.name, $.attribute_reference, $.qualified_expression], [$.name, $.attribute_reference, $.qualified_expression],
@ -165,11 +164,6 @@ module.exports = grammar({
name_list: $ => comma_separated_list_of($.name), name_list: $ => comma_separated_list_of($.name),
defining_identifier_list: $ => comma_separated_list_of($.identifier), defining_identifier_list: $ => comma_separated_list_of($.identifier),
selector_name: $ => choice(
$._direct_name,
// $.character_literal, // was in ada-mode, moved to primary instead
// reservedWord('others'),
),
attribute_reference: $ => choice( attribute_reference: $ => choice(
seq( seq(
$.name, $.name,
@ -641,7 +635,7 @@ module.exports = grammar({
$._non_default_assoc_expression, $._non_default_assoc_expression,
), ),
component_choice_list: $ => component_choice_list: $ =>
list_of('|', $.selector_name), list_of('|', $._direct_name),
aggregate: $ => choice( aggregate: $ => choice(
$.record_aggregate, $.record_aggregate,
$.extension_aggregate, $.extension_aggregate,