Various inlining of rules to simplify tree

This commit is contained in:
Emmanuel Briot 2022-12-09 09:54:14 +01:00
parent de1a5f3038
commit a41588c541
19 changed files with 45190 additions and 42826 deletions

View File

@ -48,11 +48,11 @@ module.exports = grammar({
// "'for' identifier * 'use'" could also be "'for' name * 'use'" as // "'for' identifier * 'use'" could also be "'for' name * 'use'" as
// specified in at_clause. // specified in at_clause.
[$.at_clause, $.name], [$.at_clause, $._name],
// 'case' '(' identifier . '=>' ... // 'case' '(' identifier . '=>' ...
// ??? Invalid Ada // ??? Invalid Ada
[$.name, $.component_choice_list], [$._name, $.component_choice_list],
// 'case' '(' expression . ',' ... // 'case' '(' expression . ',' ...
[$.record_component_association_list, $.positional_array_aggregate], [$.record_component_association_list, $.positional_array_aggregate],
@ -75,7 +75,7 @@ module.exports = grammar({
[$.defining_identifier_list, $.object_renaming_declaration], [$.defining_identifier_list, $.object_renaming_declaration],
[$.defining_identifier_list, $.object_renaming_declaration, [$.defining_identifier_list, $.object_renaming_declaration,
$.loop_label, $.exception_renaming_declaration], $.loop_label, $.exception_renaming_declaration],
[$.defining_identifier_list, $.name], [$.defining_identifier_list, $._name],
// 'generic' . 'package' ... // 'generic' . 'package' ...
[$.generic_formal_part, $.generic_renaming_declaration], [$.generic_formal_part, $.generic_renaming_declaration],
@ -96,16 +96,20 @@ module.exports = grammar({
// subprogram_specification 'is' 'begin' // subprogram_specification 'is' 'begin'
// handled_sequence_of_statements 'end' string_literal . ';' // handled_sequence_of_statements 'end' string_literal . ';'
[$.name, $.subprogram_body], [$._name, $.subprogram_body],
[$.function_call, $.procedure_call_statement], [$.function_call, $.procedure_call_statement],
[$.function_call, $.name], [$.function_call, $._name],
[$.formal_derived_type_definition], [$.formal_derived_type_definition],
[$.name, $.aspect_mark], [$._name, $.aspect_mark],
[$.name, $.attribute_reference, $.qualified_expression], [$._name, $.attribute_reference, $.qualified_expression],
[$.name, $.package_body_stub], [$._name, $.package_body_stub],
], ],
inline: $ => [
// To avoid conflicts
$.selected_component,
],
rules: { rules: {
compilation: $ => repeat( compilation: $ => repeat(
@ -127,34 +131,34 @@ module.exports = grammar({
binary_adding_operator: $ => choice('+', '-', '&'), binary_adding_operator: $ => choice('+', '-', '&'),
unary_adding_operator: $ => choice('+', '-'), unary_adding_operator: $ => choice('+', '-'),
multiplying_operator: $ => choice('*', '/', 'mod', 'rem'), multiplying_operator: $ => choice('*', '/', 'mod', 'rem'),
tick: $ => choice( tick: $ => '\'', // But is not the start of a character_literal
'\'', // But is not the start of a character_literal
),
name: $ => choice( _name: $ => choice( // RM 4.1
seq( // inline selected_component from ada-mode
$.identifier, $.identifier,
optional(seq( $.selected_component, // rule is inlined above
'.',
$.name,
)),
),
$.attribute_reference, $.attribute_reference,
$.function_call, $.function_call,
$.qualified_expression, $.qualified_expression,
'@', $.target_name,
//$.explicit_dereference, // covered by the first rule above // $.explicit_dereference, // covered by $.selected_component
$.character_literal, $.character_literal,
$.string_literal, // name of an operator. However, in a $.string_literal, // name of an operator. However, in a number of
// number of places using a string doesn't // places using a string doesn't make sense.
// make sense.
), ),
name_list: $ => comma_separated_list_of($.name), selected_component: $ => seq( // RM 4.1.3
$.identifier,
seq(
'.',
$._name,
),
),
target_name: $ => '@', // RM 5.2.1
_name_list: $ => prec.left(comma_separated_list_of($._name)),
defining_identifier_list: $ => comma_separated_list_of($.identifier), defining_identifier_list: $ => comma_separated_list_of($.identifier),
attribute_reference: $ => choice( attribute_reference: $ => choice(
seq( seq(
$.name, $._name,
$.tick, $.tick,
$.attribute_designator, $.attribute_designator,
), ),
@ -172,7 +176,7 @@ module.exports = grammar({
')', ')',
), ),
reduction_specification: $ => seq( reduction_specification: $ => seq(
$.name, $._name,
',', ',',
$.expression, $.expression,
), ),
@ -240,7 +244,7 @@ module.exports = grammar({
reservedWord('of'), reservedWord('of'),
), ),
optional(reservedWord('reverse')), optional(reservedWord('reverse')),
$.name, field('iterator_name', $._name),
optional($.iterator_filter), optional($.iterator_filter),
), ),
attribute_designator: $ => choice( attribute_designator: $ => choice(
@ -250,12 +254,12 @@ module.exports = grammar({
reservedWord('digits'), reservedWord('digits'),
reservedWord('mod'), reservedWord('mod'),
), ),
function_call: $ => seq( function_call: $ => seq( // ARM 6.4
$.name, field('function_name', $._name),
$.actual_parameter_part, $.actual_parameter_part,
), ),
qualified_expression: $ => seq( // ARM 4.7 qualified_expression: $ => seq( // ARM 4.7
$.name, field('subtype_name', $._name),
$.tick, $.tick,
choice( choice(
seq('(', $.expression, ')'), seq('(', $.expression, ')'),
@ -302,7 +306,7 @@ module.exports = grammar({
), ),
package_specification: $ => seq( package_specification: $ => seq(
reservedWord('package'), reservedWord('package'),
field('name', $.name), field('name', $._name),
optional($.aspect_specification), optional($.aspect_specification),
reservedWord('is'), reservedWord('is'),
repeat($._basic_declarative_item_pragma), repeat($._basic_declarative_item_pragma),
@ -311,28 +315,28 @@ module.exports = grammar({
repeat($._basic_declarative_item_pragma), repeat($._basic_declarative_item_pragma),
)), )),
reservedWord('end'), reservedWord('end'),
field('endname', optional($.name)), field('endname', optional($._name)),
), ),
with_clause: $ => seq( with_clause: $ => seq( // ARM 10.1.2
field('is_limited', optional(reservedWord('limited'))), field('is_limited', optional(reservedWord('limited'))),
field('is_private', optional(reservedWord('private'))), field('is_private', optional(reservedWord('private'))),
reservedWord('with'), reservedWord('with'),
field('names', $.name_list), $._name_list,
';', ';',
), ),
use_clause: $ => seq( use_clause: $ => seq( // ARM 8.4
reservedWord('use'), reservedWord('use'),
optional(seq( optional(seq(
field('is_all', optional(reservedWord('all'))), field('is_all', optional(reservedWord('all'))),
field('is_type', reservedWord('type')), field('is_type', reservedWord('type')),
)), )),
$.name_list, $._name_list,
';', ';',
), ),
subunit: $ => seq( // 10.1.3 subunit: $ => seq( // 10.1.3
reservedWord('separate'), reservedWord('separate'),
'(', '(',
field('parent_unit_name', $.name), field('parent_unit_name', $._name),
')', ')',
$.proper_body, $.proper_body,
), ),
@ -342,7 +346,7 @@ module.exports = grammar({
$.task_body, $.task_body,
$.protected_body, $.protected_body,
), ),
subprogram_body: $ => seq( subprogram_body: $ => seq( // ARM 6.3
optional($.overriding_indicator), optional($.overriding_indicator),
$.subprogram_specification, $.subprogram_specification,
optional($.aspect_specification), optional($.aspect_specification),
@ -351,16 +355,13 @@ module.exports = grammar({
reservedWord('begin'), reservedWord('begin'),
$.handled_sequence_of_statements, $.handled_sequence_of_statements,
reservedWord('end'), reservedWord('end'),
optional(choice( optional(field('endname', $._name)),
$.name,
$.string_literal, // for operators
)),
';' ';'
), ),
package_body: $ => seq( package_body: $ => seq(
reservedWord('package'), reservedWord('package'),
reservedWord('body'), reservedWord('body'),
field('name', $.name), field('name', $._name),
optional($.aspect_specification), optional($.aspect_specification),
reservedWord('is'), reservedWord('is'),
optional($.non_empty_declarative_part), optional($.non_empty_declarative_part),
@ -369,12 +370,12 @@ module.exports = grammar({
$.handled_sequence_of_statements, $.handled_sequence_of_statements,
)), )),
reservedWord('end'), reservedWord('end'),
optional($.name), optional(field('endname', $._name)),
';', ';',
), ),
subtype_indication: $ => seq( // ARM 3.2.2 subtype_indication: $ => seq( // ARM 3.2.2
optional($.null_exclusion), optional($.null_exclusion),
field('subtype_mark', $.name), field('subtype_mark', $._name),
optional($.constraint), optional($.constraint),
), ),
constraint: $ => choice( constraint: $ => choice(
@ -386,9 +387,9 @@ module.exports = grammar({
$.digits_constraint, $.digits_constraint,
$.delta_constraint, $.delta_constraint,
), ),
range_g: $ => choice( range_g: $ => choice( // ARM 3.5
field('range_attribute_reference', seq( field('range_attribute_reference', seq( // ARM 4.1.4
$.name, field('prefix', $._name),
$.tick, $.tick,
$.range_attribute_designator, $.range_attribute_designator,
)), )),
@ -433,9 +434,9 @@ module.exports = grammar({
), ),
$.raise_expression, // Added Ada 20x $.raise_expression, // Added Ada 20x
), ),
raise_expression: $ => prec.right(1, seq( raise_expression: $ => prec.right(1, seq( // ARM 11.3
reservedWord('raise'), reservedWord('raise'),
$.name, field('exception_name', $._name),
optional(seq( optional(seq(
reservedWord('with'), reservedWord('with'),
$.simple_expression, $.simple_expression,
@ -501,7 +502,7 @@ module.exports = grammar({
reservedWord('null'), reservedWord('null'),
$.string_literal, // ada-mode puts this in name instead $.string_literal, // ada-mode puts this in name instead
$.aggregate, $.aggregate,
$.name, field('name', $._name),
$.allocator, $.allocator,
$._parenthesized_expression, $._parenthesized_expression,
)), )),
@ -512,12 +513,12 @@ module.exports = grammar({
), ),
subtype_indication_paren_constraint: $ => seq( subtype_indication_paren_constraint: $ => seq(
optional($.null_exclusion), optional($.null_exclusion),
$.name, $._name,
optional($.index_constraint), optional($.index_constraint),
), ),
subpool_specification: $ => seq( subpool_specification: $ => seq(
'(', '(',
$.name, field('subpool_handle_name', $._name),
')', ')',
), ),
access_type_definition: $ => seq( access_type_definition: $ => seq(
@ -550,13 +551,13 @@ module.exports = grammar({
$.parameter_and_result_profile, $.parameter_and_result_profile,
), ),
), ),
access_definition: $ => seq( access_definition: $ => seq( // ARM 3.10
optional($.null_exclusion), optional($.null_exclusion),
reservedWord('access'), reservedWord('access'),
choice( choice(
seq( seq(
optional(reservedWord('constant')), optional(reservedWord('constant')),
$.name, field('subtype_mark', $._name),
), ),
seq( seq(
optional(reservedWord('protected')), optional(reservedWord('protected')),
@ -576,7 +577,7 @@ module.exports = grammar({
comma_separated_list_of($.parameter_association), comma_separated_list_of($.parameter_association),
// Those are not in the ARM, but added here for generic // Those are not in the ARM, but added here for generic
// instantiations, which get the actual parameter part via $.name // instantiations, which get the actual parameter part via $._name
// and its $.function_call // and its $.function_call
// ???? // ????
$.conditional_expression, $.conditional_expression,
@ -794,7 +795,7 @@ module.exports = grammar({
$.subtype_indication, $.subtype_indication,
optional(seq( optional(seq(
reservedWord('and'), reservedWord('and'),
$.interface_list, $._interface_list,
)), )),
reservedWord('with'), reservedWord('with'),
reservedWord('private'), reservedWord('private'),
@ -827,13 +828,13 @@ module.exports = grammar({
), ),
discriminant_specification_list: $ => discriminant_specification_list: $ =>
prec.right(list_of(';', $.discriminant_specification)), prec.right(list_of(';', $.discriminant_specification)),
discriminant_specification: $ => seq( discriminant_specification: $ => seq( // ARM 3.7
$.defining_identifier_list, $.defining_identifier_list,
':', ':',
choice( choice(
seq( seq(
optional($.null_exclusion), optional($.null_exclusion),
$.name, field('subtype_mark', $._name),
), ),
$.access_definition, $.access_definition,
), ),
@ -881,8 +882,8 @@ module.exports = grammar({
), ),
_index_subtype_definition_list: $ => _index_subtype_definition_list: $ =>
comma_separated_list_of($.index_subtype_definition), comma_separated_list_of($.index_subtype_definition),
index_subtype_definition: $ => seq( index_subtype_definition: $ => seq( // ARM 3.6
$.name, field('subtype_mark', $._name),
reservedWord('range'), reservedWord('range'),
'<>', '<>',
), ),
@ -950,7 +951,7 @@ module.exports = grammar({
optional(seq( optional(seq(
optional(seq( optional(seq(
reservedWord('and'), reservedWord('and'),
$.interface_list, $._interface_list,
)), )),
$.record_extension_part, $.record_extension_part,
)), )),
@ -965,11 +966,11 @@ module.exports = grammar({
reservedWord('interface'), reservedWord('interface'),
optional(seq( optional(seq(
reservedWord('and'), reservedWord('and'),
$.interface_list, $._interface_list,
)), )),
), ),
interface_list: $ => _interface_list: $ =>
list_of(reservedWord('and'), $.name), list_of(reservedWord('and'), $._name),
record_extension_part: $ => seq( record_extension_part: $ => seq(
reservedWord('with'), // record_extension_part in Ada grammar reservedWord('with'), // record_extension_part in Ada grammar
$.record_definition, $.record_definition,
@ -1134,9 +1135,9 @@ module.exports = grammar({
$.expression, $.expression,
';', ';',
), ),
attribute_definition_clause: $ => seq( attribute_definition_clause: $ => seq( // ARM 13.3
reservedWord('for'), reservedWord('for'),
$.name, field('local_name', $._name),
$.tick, $.tick,
$.attribute_designator, $.attribute_designator,
reservedWord('use'), reservedWord('use'),
@ -1224,7 +1225,7 @@ module.exports = grammar({
reservedWord('is'), reservedWord('is'),
optional(seq( optional(seq(
reservedWord('new'), reservedWord('new'),
$.interface_list, $._interface_list,
reservedWord('with'), reservedWord('with'),
)), )),
$.protected_definition, $.protected_definition,
@ -1237,7 +1238,7 @@ module.exports = grammar({
reservedWord('is'), reservedWord('is'),
optional(seq( optional(seq(
reservedWord('new'), reservedWord('new'),
$.interface_list, $._interface_list,
reservedWord('with'), reservedWord('with'),
)), )),
$.protected_definition, $.protected_definition,
@ -1264,8 +1265,8 @@ module.exports = grammar({
';', ';',
), ),
choice_parameter_specification: $ => $.identifier, // ??? inline choice_parameter_specification: $ => $.identifier, // ??? inline
component_clause: $ => seq( component_clause: $ => seq( // ARM 13.5.1
$.name, field('local_name', $._name),
reservedWord('at'), reservedWord('at'),
field('position', $.expression), field('position', $.expression),
reservedWord('range'), reservedWord('range'),
@ -1319,16 +1320,16 @@ module.exports = grammar({
$.discrete_subtype_definition, $.discrete_subtype_definition,
), ),
enumeration_aggregate: $ => $.array_aggregate, // ??? inline ARM 13.4 enumeration_aggregate: $ => $.array_aggregate, // ??? inline ARM 13.4
enumeration_representation_clause: $ => seq( enumeration_representation_clause: $ => seq( // ARM 13.4
reservedWord('for'), reservedWord('for'),
$.name, field('local_name', $._name),
reservedWord('use'), reservedWord('use'),
$.enumeration_aggregate, $.enumeration_aggregate,
';', ';',
), ),
exception_choice_list: $ => list_of('|', $.exception_choice), exception_choice_list: $ => list_of('|', $.exception_choice),
exception_choice: $ => choice( exception_choice: $ => choice( // ARM 11.2
$.name, field('exception_name', $._name),
reservedWord('others'), reservedWord('others'),
), ),
exception_declaration: $ => seq( exception_declaration: $ => seq(
@ -1359,7 +1360,7 @@ module.exports = grammar({
), ),
function_specification: $ => seq( function_specification: $ => seq(
reservedWord('function'), reservedWord('function'),
$.name, field('name', $._name),
$.parameter_and_result_profile, $.parameter_and_result_profile,
), ),
generic_declaration: $ => choice( generic_declaration: $ => choice(
@ -1389,39 +1390,39 @@ module.exports = grammar({
$.package_specification, $.package_specification,
';', ';',
), ),
generic_instantiation: $ => seq( generic_instantiation: $ => seq( // ARM 12.3
choice( choice(
seq( seq(
reservedWord('package'), reservedWord('package'),
$.name, field('name', $._name),
), ),
seq( seq(
optional($.overriding_indicator), optional($.overriding_indicator),
choice( choice(
seq( seq(
reservedWord('procedure'), reservedWord('procedure'),
$.name, field('name', $._name),
), ),
seq( seq(
reservedWord('function'), reservedWord('function'),
$.name, field('name', $._name),
), ),
), ),
), ),
), ),
reservedWord('is'), reservedWord('is'),
reservedWord('new'), reservedWord('new'),
$.name, // includes the generic_actual_part (via the function call) field('generic_name', $._name), // includes the generic_actual_part (via the function call)
optional($.aspect_specification), optional($.aspect_specification),
';', ';',
), ),
formal_object_declaration: $ => choice( formal_object_declaration: $ => choice( // ARM 12.4
seq( seq(
$.defining_identifier_list, $.defining_identifier_list,
':', ':',
optional($.non_empty_mode), optional($.non_empty_mode),
optional($.null_exclusion), optional($.null_exclusion),
$.name, field('subtype_mark', $._name),
optional($.assign_value), optional($.assign_value),
optional($.aspect_specification), optional($.aspect_specification),
';', ';',
@ -1440,7 +1441,7 @@ module.exports = grammar({
$.formal_complete_type_declaration, $.formal_complete_type_declaration,
$.formal_incomplete_type_declaration, $.formal_incomplete_type_declaration,
), ),
formal_complete_type_declaration: $ => seq( formal_complete_type_declaration: $ => seq( // ARM 12.5
reservedWord('type'), reservedWord('type'),
$.identifier, $.identifier,
optional($.discriminant_part), optional($.discriminant_part),
@ -1449,7 +1450,7 @@ module.exports = grammar({
optional(seq( optional(seq(
reservedWord('or'), reservedWord('or'),
reservedWord('use'), reservedWord('use'),
$.name, field('default_subtype_mark', $._name),
)), )),
optional($.aspect_specification), optional($.aspect_specification),
';', ';',
@ -1465,7 +1466,7 @@ module.exports = grammar({
optional(seq( optional(seq(
reservedWord('or'), reservedWord('or'),
reservedWord('use'), reservedWord('use'),
$.name, field('default_subtype_mark', $._name),
)), )),
';', ';',
), ),
@ -1490,18 +1491,18 @@ module.exports = grammar({
optional(reservedWord('limited')), optional(reservedWord('limited')),
reservedWord('private'), reservedWord('private'),
), ),
formal_derived_type_definition: $ => seq( formal_derived_type_definition: $ => seq( // ARM 12.5.1
optional(reservedWord('abstract')), optional(reservedWord('abstract')),
optional(choice( optional(choice(
reservedWord('limited'), reservedWord('limited'),
reservedWord('synchronized'), reservedWord('synchronized'),
)), )),
reservedWord('new'), reservedWord('new'),
$.name, field('subtype_mark', $._name),
optional(seq( optional(seq(
optional(seq( optional(seq(
reservedWord('and'), reservedWord('and'),
$.interface_list, $._interface_list,
)), )),
reservedWord('with'), reservedWord('with'),
reservedWord('private'), reservedWord('private'),
@ -1561,17 +1562,17 @@ module.exports = grammar({
';', ';',
), ),
subprogram_default: $ => choice( subprogram_default: $ => choice(
field('default_name', $.name), field('default_name', $._name),
'<>', '<>',
reservedWord('null'), reservedWord('null'),
), ),
formal_package_declaration: $ => seq( formal_package_declaration: $ => seq( // ARM 12.7
reservedWord('with'), reservedWord('with'),
reservedWord('package'), reservedWord('package'),
$.identifier, $.identifier,
reservedWord('is'), reservedWord('is'),
reservedWord('new'), reservedWord('new'),
$.name, field('generic_package_name', $._name),
optional($.aspect_specification), optional($.aspect_specification),
';', ';',
), ),
@ -1579,46 +1580,44 @@ module.exports = grammar({
'null', 'null',
'all', 'all',
), ),
extended_global_aspect_definition: $ => choice( // extended_global_aspect_definition: $ => choice(
seq( // seq(
reservedWord('use'), // reservedWord('use'),
field('formal_parameter_designator', choice( // field('formal_parameter_designator', choice(
$.formal_group_designator, // $.formal_group_designator,
$.name, // field('name', $._name),
)), // )),
), // ),
seq( // seq(
reservedWord('do'), // reservedWord('do'),
$.dispatching_operation_specifier, // $.dispatching_operation_specifier,
), // ),
), // ),
disaptching_operation_set: $ => // dispatching_operation_specifier: $ => seq(
comma_separated_list_of($.dispatching_operation_specifier), // $._name,
dispatching_operation_specifier: $ => seq( // '(',
$.name, // $._name,
'(', // ')',
$.name, // ),
')',
),
extended_global_aspect_element: $ => choice( extended_global_aspect_element: $ => choice(
seq( seq(
reservedWord('use'), reservedWord('use'),
field('formal_parameter_set', choice( field('formal_parameter_set', choice(
$.formal_group_designator, $.formal_group_designator,
comma_separated_list_of($.name), comma_separated_list_of($._name),
)), )),
), ),
seq( // seq(
reservedWord('do'), // reservedWord('do'),
comma_separated_list_of($.dispatching_operation_specifier), // comma_separated_list_of($.dispatching_operation_specifier),
// ),
), ),
), global_aspect_definition: $ => choice( // ARM 6.1.2
global_aspect_definition: $ => choice(
seq( seq(
$.global_mode, $.global_mode,
// $.global_designator, // $.global_designator,
), ),
$.extended_global_aspect_definition, // $.extended_global_aspect_definition,
seq( seq(
'(', '(',
comma_separated_list_of($.global_aspect_element), comma_separated_list_of($.global_aspect_element),
@ -1628,17 +1627,14 @@ module.exports = grammar({
global_aspect_element: $ => choice( global_aspect_element: $ => choice(
seq( seq(
$.global_mode, $.global_mode,
$.global_set, field('global_set', $._name_list),
), ),
$.extended_global_aspect_definition, // $.extended_global_aspect_definition,
), ),
global_mode: $ => choice( global_mode: $ => choice(
$.non_empty_mode, $.non_empty_mode,
reservedWord('overriding'), reservedWord('overriding'),
), ),
global_set: $ => prec.left(
comma_separated_list_of($.name), // ??? name_list
),
handled_sequence_of_statements: $ => seq( handled_sequence_of_statements: $ => seq(
$.sequence_of_statements, $.sequence_of_statements,
optional(seq( optional(seq(
@ -1714,7 +1710,7 @@ module.exports = grammar({
reservedWord('is'), reservedWord('is'),
optional(seq( optional(seq(
reservedWord('new'), reservedWord('new'),
$.interface_list, $._interface_list,
reservedWord('with'), reservedWord('with'),
)), )),
$.task_definition, $.task_definition,
@ -1731,7 +1727,7 @@ module.exports = grammar({
reservedWord('is'), reservedWord('is'),
optional(seq( optional(seq(
reservedWord('new'), reservedWord('new'),
$.interface_list, $._interface_list,
reservedWord('with'), reservedWord('with'),
)), )),
$.task_definition, $.task_definition,
@ -1782,13 +1778,13 @@ module.exports = grammar({
optional($.formal_part), optional($.formal_part),
$.result_profile, $.result_profile,
), ),
parameter_specification: $ => seq( parameter_specification: $ => seq( // ARM 6.1
$.defining_identifier_list, $.defining_identifier_list,
':', ':',
optional(reservedWord('aliased')), optional(reservedWord('aliased')),
optional($.non_empty_mode), optional($.non_empty_mode),
optional($.null_exclusion), optional($.null_exclusion),
$.name, field('subtype_mark', $._name),
optional($.assign_value), optional($.assign_value),
), ),
parameter_specification_list: $ => list_of( parameter_specification_list: $ => list_of(
@ -1834,19 +1830,19 @@ module.exports = grammar({
), ),
procedure_specification: $ => seq( procedure_specification: $ => seq(
reservedWord('procedure'), reservedWord('procedure'),
$.name, field('name', $._name),
optional($.non_empty_parameter_profile), optional($.non_empty_parameter_profile),
), ),
record_representation_clause: $ => prec.left(seq( record_representation_clause: $ => prec.left(seq( // ARM 13.5.1
reservedWord('for'), reservedWord('for'),
$.name, field('local_name', $._name),
reservedWord('use'), reservedWord('use'),
reservedWord('record'), reservedWord('record'),
optional($.mod_clause), optional($.mod_clause),
repeat($.component_clause), repeat($.component_clause),
reservedWord('end'), reservedWord('end'),
reservedWord('record'), reservedWord('record'),
optional($.name), optional(field('end_local_name', $._name)),
';', ';',
)), )),
renaming_declaration: $ => choice( renaming_declaration: $ => choice(
@ -1856,16 +1852,16 @@ module.exports = grammar({
$.subprogram_renaming_declaration, $.subprogram_renaming_declaration,
$.generic_renaming_declaration, $.generic_renaming_declaration,
), ),
object_renaming_declaration: $ => choice( object_renaming_declaration: $ => choice( // ARM 8.5.1
seq( seq(
$.identifier, $.identifier,
optional(seq( optional(seq(
':', ':',
optional($.null_exclusion), optional($.null_exclusion),
$.name, field('subtype_mark', $._name),
)), )),
reservedWord('renames'), reservedWord('renames'),
$.name, field('object_name', $._name),
optional($.aspect_specification), optional($.aspect_specification),
';', ';',
), ),
@ -1874,25 +1870,25 @@ module.exports = grammar({
':', ':',
$.access_definition, $.access_definition,
reservedWord('renames'), reservedWord('renames'),
$.name, field('object_name', $._name),
optional($.aspect_specification), optional($.aspect_specification),
';', ';',
), ),
), ),
exception_renaming_declaration: $ => seq( exception_renaming_declaration: $ => seq( // ARM 8.5.2
$.identifier, $.identifier,
':', ':',
reservedWord('exception'), reservedWord('exception'),
reservedWord('renames'), reservedWord('renames'),
$.name, field('exception_name', $._name),
optional($.aspect_specification), optional($.aspect_specification),
';', ';',
), ),
package_renaming_declaration: $ => seq( package_renaming_declaration: $ => seq(
reservedWord('package'), reservedWord('package'),
$.name, field('name', $._name),
reservedWord('renames'), reservedWord('renames'),
$.name, field('package_name', $._name),
optional($.aspect_specification), optional($.aspect_specification),
';', ';',
), ),
@ -1900,7 +1896,7 @@ module.exports = grammar({
optional($.overriding_indicator), optional($.overriding_indicator),
$.subprogram_specification, $.subprogram_specification,
reservedWord('renames'), reservedWord('renames'),
$.name, field('callable_entity_name', $._name),
optional($.aspect_specification), optional($.aspect_specification),
';', ';',
), ),
@ -1908,27 +1904,27 @@ module.exports = grammar({
seq( seq(
reservedWord('generic'), reservedWord('generic'),
reservedWord('package'), reservedWord('package'),
$.name, field('defining_program_unit_name', $._name),
reservedWord('renames'), reservedWord('renames'),
$.name, field('generic_package_name', $._name),
optional($.aspect_specification), optional($.aspect_specification),
';', ';',
), ),
seq( seq(
reservedWord('generic'), reservedWord('generic'),
reservedWord('procedure'), reservedWord('procedure'),
$.name, field('defining_program_unit_name', $._name),
reservedWord('renames'), reservedWord('renames'),
$.name, field('generic_procedure_name', $._name),
optional($.aspect_specification), optional($.aspect_specification),
';', ';',
), ),
seq( seq(
reservedWord('generic'), reservedWord('generic'),
reservedWord('function'), reservedWord('function'),
$.name, field('defining_program_unit_name', $._name),
reservedWord('renames'), reservedWord('renames'),
$.name, field('generic_function_name', $._name),
optional($.aspect_specification), optional($.aspect_specification),
';', ';',
), ),
@ -1938,7 +1934,7 @@ module.exports = grammar({
choice( choice(
seq( seq(
optional($.null_exclusion), optional($.null_exclusion),
$.name, field('subtype_mark', $._name),
), ),
$.access_definition, $.access_definition,
), ),
@ -2055,12 +2051,12 @@ module.exports = grammar({
), ),
abort_statement: $ => seq( abort_statement: $ => seq(
reservedWord('abort'), reservedWord('abort'),
comma_separated_list_of($.name), comma_separated_list_of($._name),
';', ';',
), ),
requeue_statement: $ => seq( requeue_statement: $ => seq( // ARM 9.5.4
reservedWord('requeue'), reservedWord('requeue'),
$.name, field('name', $._name),
optional(seq( optional(seq(
reservedWord('with'), reservedWord('with'),
reservedWord('abort'), reservedWord('abort'),
@ -2131,9 +2127,9 @@ module.exports = grammar({
reservedWord('then'), reservedWord('then'),
$.sequence_of_statements, $.sequence_of_statements,
), ),
exit_statement: $ => seq( exit_statement: $ => seq( // ARM 5.7
reservedWord('exit'), reservedWord('exit'),
optional($.name), field('loop_name', optional($._name)),
optional(seq( optional(seq(
reservedWord('when'), reservedWord('when'),
field('condition', $.expression), field('condition', $.expression),
@ -2142,7 +2138,7 @@ module.exports = grammar({
), ),
goto_statement: $ => seq( goto_statement: $ => seq(
reservedWord('goto'), reservedWord('goto'),
$.name, field('label_name', $._name),
';', ';',
), ),
delay_statement: $ => choice( delay_statement: $ => choice(
@ -2188,15 +2184,15 @@ module.exports = grammar({
$.subtype_indication, $.subtype_indication,
$.access_definition, $.access_definition,
), ),
procedure_call_statement: $ => seq( procedure_call_statement: $ => seq( // ARM 6.4
$.name, // not an operator field('name', $._name), // not an operator
optional($.actual_parameter_part), optional($.actual_parameter_part),
';', ';',
), ),
raise_statement: $ => seq( raise_statement: $ => seq(
reservedWord('raise'), reservedWord('raise'),
optional(seq( optional(seq(
$.name, field('name', $._name),
optional(seq( optional(seq(
reservedWord('with'), reservedWord('with'),
$.expression, // ada-mode allows "raise CE with raise with ..." $.expression, // ada-mode allows "raise CE with raise with ..."
@ -2245,8 +2241,8 @@ module.exports = grammar({
// ), // ),
// ), // ),
), ),
assignment_statement: $ => seq( assignment_statement: $ => seq( // ARM 5.2
$.name, field('variable_name', $._name),
$.assign_value, $.assign_value,
';', ';',
), ),

View File

@ -103,21 +103,29 @@
;; Highlight the name of subprograms ;; Highlight the name of subprograms
(procedure_specification (procedure_specification
(name) @function name: (identifier) @function
) )
(function_specification (function_specification
(name) @function name: (identifier) @function
) )
(package_specification (package_specification
name: (name) @function ;; Should use @module, but no default highlight name: (identifier) @function ;; Should use @module
) )
(package_body (package_body
(name) @function ;; Should use @module, but no default highlight name: (identifier) @function ;; Should use @module
) )
(generic_instantiation (generic_instantiation
. (name) @function name: (identifier) @function
) )
;; Some keywords should take different categories depending on the context
;; ??? Doesn't quite work because treesitter choses the longest name for the
;; final highlight
(use_clause "use" @include "type" @include)
(with_clause "private" @include)
(with_clause "limited" @include)
;; Change keyword categories inside type definitions. ;; Change keyword categories inside type definitions.
;; WIP: waiting for simplified tree. ;; WIP: waiting for simplified tree.
; [ ; [
@ -135,11 +143,14 @@
; "synchronized" ; "synchronized"
; ]* @keyword.type ; ]* @keyword.type
(full_type_declaration (full_type_declaration
(identifier) @type ; (identifier) @type
"is" @type.definition "is" @type.definition
; (access_type_definition "access" @keyword.type) ; (access_type_definition "access" @keyword.type)
) )
;; Highlight full subprogram specifications
(subprogram_body (subprogram_specification) @function.spec)
;; Highlight errors in red. This is not very useful in practice, as text will ;; Highlight errors in red. This is not very useful in practice, as text will
;; be highlighted as user types, and the error could be elsewhere in the code. ;; be highlighted as user types, and the error could be elsewhere in the code.
;; This also requires defining :hi @error guifg=Red for instance. ;; This also requires defining :hi @error guifg=Red for instance.

View File

@ -6,12 +6,11 @@
(subprogram_specification) @scope (subprogram_specification) @scope
(block_statement) @scope (block_statement) @scope
(procedure_specification (name) @definition.var) (procedure_specification name: (identifier) @definition.var)
(function_specification (name) @definition.var) (function_specification name: (identifier) @definition.var)
(package_specification name: (name) @definition.var) (package_specification name: (identifier) @definition.var)
(package_body (name) @definition.var) (package_body name: (identifier) @definition.var)
(generic_instantiation . (name) @definition.var) (generic_instantiation . name: (identifier) @definition.var)
(defining_identifier_list (identifier) @definition.var) (defining_identifier_list (identifier) @definition.var)
(identifier) @reference (identifier) @reference
(name) @reference

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

81925
src/parser.c

File diff suppressed because it is too large Load Diff

View File

@ -16,8 +16,7 @@ end;
(compilation (compilation
(compilation_unit (compilation_unit
(package_specification (package_specification
(name (identifier)
(identifier))
(type_declaration (type_declaration
(full_type_declaration (full_type_declaration
(identifier) (identifier)
@ -25,8 +24,7 @@ end;
(access_type_definition (access_type_definition
(access_to_object_definition (access_to_object_definition
(subtype_indication (subtype_indication
(name (identifier)))))))
(identifier))))))))
(type_declaration (type_declaration
(full_type_declaration (full_type_declaration
(identifier) (identifier)
@ -35,8 +33,7 @@ end;
(access_to_object_definition (access_to_object_definition
(subtype_indication (subtype_indication
(null_exclusion) (null_exclusion)
(name (identifier)))))))
(identifier))))))))
(type_declaration (type_declaration
(full_type_declaration (full_type_declaration
(identifier) (identifier)
@ -45,8 +42,7 @@ end;
(access_to_object_definition (access_to_object_definition
(general_access_modifier) (general_access_modifier)
(subtype_indication (subtype_indication
(name (identifier)))))))
(identifier))))))))
(type_declaration (type_declaration
(full_type_declaration (full_type_declaration
(identifier) (identifier)
@ -55,7 +51,15 @@ end;
(access_to_object_definition (access_to_object_definition
(general_access_modifier) (general_access_modifier)
(subtype_indication (subtype_indication
(name (identifier)))))))
(type_declaration
(full_type_declaration
(identifier)
(type_definition
(access_type_definition
(access_to_subprogram_definition
(parameter_and_result_profile
(result_profile
(identifier)))))))) (identifier))))))))
(type_declaration (type_declaration
(full_type_declaration (full_type_declaration
@ -65,18 +69,7 @@ end;
(access_to_subprogram_definition (access_to_subprogram_definition
(parameter_and_result_profile (parameter_and_result_profile
(result_profile (result_profile
(name (identifier)))))))))))
(identifier)))))))))
(type_declaration
(full_type_declaration
(identifier)
(type_definition
(access_type_definition
(access_to_subprogram_definition
(parameter_and_result_profile
(result_profile
(name
(identifier))))))))))))
================================================================================ ================================================================================
Dereference Dereference
@ -96,15 +89,13 @@ end;
(subprogram_body (subprogram_body
(subprogram_specification (subprogram_specification
(procedure_specification (procedure_specification
(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 (identifier)
(identifier))
(assign_value (assign_value
(expression (expression
(relation (relation
@ -112,19 +103,14 @@ end;
(term (term
(factor (factor
(primary (primary
(name
(identifier) (identifier)
(name (identifier)))))))))))
(identifier)))))))))))))
(statement (statement
(simple_statement (simple_statement
(procedure_call_statement (procedure_call_statement
(name
(function_call
(name
(identifier) (identifier)
(name (function_call
(identifier))) (identifier)
(actual_parameter_part (actual_parameter_part
(parameter_association (parameter_association
(expression (expression
@ -133,4 +119,4 @@ end;
(term (term
(factor (factor
(primary (primary
(numeric_literal)))))))))))))))))))) (numeric_literal)))))))))))))))))))

View File

@ -13,8 +13,7 @@ end P;
(compilation (compilation
(compilation_unit (compilation_unit
(package_specification (package_specification
(name (identifier)
(identifier))
(type_declaration (type_declaration
(full_type_declaration (full_type_declaration
(identifier) (identifier)
@ -35,14 +34,12 @@ end P;
(numeric_literal))))))) (numeric_literal)))))))
(component_definition (component_definition
(subtype_indication (subtype_indication
(name (identifier))))))))
(identifier)))))))))
(object_declaration (object_declaration
(defining_identifier_list (defining_identifier_list
(identifier)) (identifier))
(subtype_indication (subtype_indication
(name (identifier))
(identifier)))
(assign_value (assign_value
(expression (expression
(relation (relation
@ -69,8 +66,7 @@ end P;
(term (term
(factor (factor
(primary (primary
(name (identifier))))))))
(identifier)))))))))
(array_component_association (array_component_association
(discrete_choice_list (discrete_choice_list
(discrete_choice (discrete_choice
@ -87,14 +83,12 @@ end P;
(term (term
(factor (factor
(primary (primary
(name (identifier)))))))))))))))))))
(identifier))))))))))))))))))))
(object_declaration (object_declaration
(defining_identifier_list (defining_identifier_list
(identifier)) (identifier))
(subtype_indication (subtype_indication
(name (identifier))
(identifier)))
(assign_value (assign_value
(expression (expression
(relation (relation
@ -121,8 +115,7 @@ end P;
(term (term
(factor (factor
(primary (primary
(name (identifier))))))))
(identifier)))))))))
(array_component_association (array_component_association
(discrete_choice_list (discrete_choice_list
(discrete_choice)) (discrete_choice))
@ -132,10 +125,8 @@ end P;
(term (term
(factor (factor
(primary (primary
(name (identifier)))))))))))))))))))
(identifier)))))))))))))))))))) (identifier))))
(name
(identifier)))))
================================================================================ ================================================================================
Definite-2 Definite-2
@ -148,11 +139,10 @@ end;
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
(compilation (compilation
(compilation_unit (compilation_unit
(package_specification (package_specification
(name (identifier)
(identifier))
(type_declaration (type_declaration
(full_type_declaration (full_type_declaration
(identifier) (identifier)
@ -173,14 +163,12 @@ end;
(numeric_literal))))))) (numeric_literal)))))))
(component_definition (component_definition
(subtype_indication (subtype_indication
(name (identifier))))))))
(identifier)))))))))
(object_declaration (object_declaration
(defining_identifier_list (defining_identifier_list
(identifier)) (identifier))
(subtype_indication (subtype_indication
(name (identifier))
(identifier)))
(assign_value (assign_value
(expression (expression
(relation (relation
@ -227,8 +215,7 @@ end P;
(compilation (compilation
(compilation_unit (compilation_unit
(package_specification (package_specification
(name (identifier)
(identifier))
(type_declaration (type_declaration
(full_type_declaration (full_type_declaration
(identifier) (identifier)
@ -236,18 +223,15 @@ end P;
(array_type_definition (array_type_definition
(unconstrained_array_definition (unconstrained_array_definition
(index_subtype_definition (index_subtype_definition
(name (identifier))
(identifier)))
(component_definition (component_definition
(subtype_indication (subtype_indication
(name (identifier))))))))
(identifier)))))))))
(object_declaration (object_declaration
(defining_identifier_list (defining_identifier_list
(identifier)) (identifier))
(subtype_indication (subtype_indication
(name (identifier))
(identifier)))
(assign_value (assign_value
(expression (expression
(relation (relation
@ -278,10 +262,8 @@ end P;
(term (term
(factor (factor
(primary (primary
(name (identifier)))))))))))))))))))
(identifier)))))))))))))))))))) (identifier))))
(name
(identifier)))))
================================================================================ ================================================================================
2D 2D
@ -297,8 +279,7 @@ end P;
(compilation (compilation
(compilation_unit (compilation_unit
(package_specification (package_specification
(name (identifier)
(identifier))
(type_declaration (type_declaration
(full_type_declaration (full_type_declaration
(identifier) (identifier)
@ -306,21 +287,17 @@ end P;
(array_type_definition (array_type_definition
(unconstrained_array_definition (unconstrained_array_definition
(index_subtype_definition (index_subtype_definition
(name (identifier))
(identifier)))
(index_subtype_definition (index_subtype_definition
(name (identifier))
(identifier)))
(component_definition (component_definition
(subtype_indication (subtype_indication
(name (identifier))))))))
(identifier)))))))))
(object_declaration (object_declaration
(defining_identifier_list (defining_identifier_list
(identifier)) (identifier))
(subtype_indication (subtype_indication
(name (identifier))
(identifier)))
(assign_value (assign_value
(expression (expression
(relation (relation
@ -374,37 +351,33 @@ end P;
(term (term
(factor (factor
(primary (primary
(name (identifier)))))))))))))))))))))))))))))
(identifier)))))))))))))))))))))))))))))) (identifier))))
(name
(identifier)))))
========= ================================================================================
Index in array aggregates Index in array aggregates
========= ================================================================================
procedure P is procedure P is
begin begin
Arr := (for Index in 1 .. Count => Function_Returning_Limited (Index)); Arr := (for Index in 1 .. Count => Function_Returning_Limited (Index));
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 (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 (identifier)
(identifier))
(assign_value (assign_value
(expression (expression
(relation (relation
@ -430,31 +403,21 @@ end;
(term (term
(factor (factor
(primary (primary
(name (identifier))))))))
(identifier)))))))))
(expression (expression
(relation (relation
(simple_expression (simple_expression
(term (term
(factor (factor
(primary (primary
(name
(function_call (function_call
(name (identifier)
(identifier))
(actual_parameter_part (actual_parameter_part
(parameter_association (parameter_association
(expression (expression
(relation (relation
(simple_expression
(simple_expression
(term (term
(factor (factor
(primary (primary
(identifier)))))))))))))))))))))))))))))))))))))
(name
(identifier)))))))))))))))))))))))))))))))))))))))

View File

@ -21,22 +21,19 @@ end;
(subprogram_body (subprogram_body
(subprogram_specification (subprogram_specification
(procedure_specification (procedure_specification
(name (identifier)))
(identifier))))
(non_empty_declarative_part (non_empty_declarative_part
(declarative_item_pragma (declarative_item_pragma
(object_declaration (object_declaration
(defining_identifier_list (defining_identifier_list
(identifier)) (identifier))
(subtype_indication (subtype_indication
(name (identifier)
(identifier))
(constraint (constraint
(index_constraint (index_constraint
(discrete_range (discrete_range
(range_g (range_g
(name (identifier)
(identifier))
(tick) (tick)
(range_attribute_designator (range_attribute_designator
(expression (expression
@ -56,8 +53,7 @@ end;
(identifier) (identifier)
(discrete_subtype_definition (discrete_subtype_definition
(range_g (range_g
(name (identifier)
(identifier))
(tick) (tick)
(range_attribute_designator))))) (range_attribute_designator)))))
(sequence_of_statements (sequence_of_statements
@ -72,8 +68,7 @@ end;
(identifier) (identifier)
(discrete_subtype_definition (discrete_subtype_definition
(range_g (range_g
(name (identifier)
(identifier))
(tick) (tick)
(range_attribute_designator (range_attribute_designator
(expression (expression
@ -108,16 +103,14 @@ end;
(subprogram_body (subprogram_body
(subprogram_specification (subprogram_specification
(procedure_specification (procedure_specification
(name (identifier)))
(identifier))))
(non_empty_declarative_part (non_empty_declarative_part
(declarative_item_pragma (declarative_item_pragma
(object_declaration (object_declaration
(defining_identifier_list (defining_identifier_list
(identifier)) (identifier))
(subtype_indication (subtype_indication
(name (identifier))
(identifier)))
(assign_value (assign_value
(expression (expression
(relation (relation
@ -125,15 +118,13 @@ end;
(term (term
(factor (factor
(primary (primary
(name
(attribute_reference (attribute_reference
(reduction_attribute_reference (reduction_attribute_reference
(value_sequence (value_sequence
(iterated_element_association (iterated_element_association
(iterator_specification (iterator_specification
(identifier) (identifier)
(name (identifier)
(identifier))
(iterator_filter (iterator_filter
(expression (expression
(relation (relation
@ -141,8 +132,7 @@ end;
(term (term
(factor (factor
(primary (primary
(name (identifier)))))
(identifier))))))
(relational_operator) (relational_operator)
(simple_expression (simple_expression
(term (term
@ -163,32 +153,27 @@ end;
(simple_expression (simple_expression
(term (term
(factor (factor
(primary
(primary (identifier)))))))
(name
(identifier))))))))
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal))))))))))))))))))
(tick)
(reduction_attribute_designator
(identifier)
(reduction_specification
(name
(string_literal))
(expression (expression
(relation (relation
(simple_expression (simple_expression
(term (term
(factor (factor
(primary (primary
(numeric_literal)))))))))))))))))))))) (numeric_literal))))))))))))))))))
(tick)
(reduction_attribute_designator
(identifier)
(reduction_specification
(string_literal)
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal)))))))))))))))))))))
(handled_sequence_of_statements (handled_sequence_of_statements
(sequence_of_statements (sequence_of_statements
(statement (statement

View File

@ -24,8 +24,7 @@ end;
(formal_object_declaration (formal_object_declaration
(defining_identifier_list (defining_identifier_list
(identifier)) (identifier))
(name (identifier)
(identifier))
(assign_value (assign_value
(expression (expression
(relation (relation
@ -42,8 +41,7 @@ end;
(unknown_discriminant_part)) (unknown_discriminant_part))
(formal_type_definition (formal_type_definition
(formal_private_type_definition)) (formal_private_type_definition))
(name (identifier))))
(identifier)))))
(generic_formal_parameter_declaration (generic_formal_parameter_declaration
(formal_type_declaration (formal_type_declaration
(formal_incomplete_type_declaration (formal_incomplete_type_declaration
@ -51,10 +49,8 @@ end;
(generic_formal_parameter_declaration (generic_formal_parameter_declaration
(formal_package_declaration (formal_package_declaration
(identifier) (identifier)
(name
(function_call (function_call
(name (identifier)
(identifier))
(actual_parameter_part (actual_parameter_part
(parameter_association (parameter_association
(component_choice_list (component_choice_list
@ -68,30 +64,26 @@ end;
(numeric_literal)))))))) (numeric_literal))))))))
(parameter_association (parameter_association
(component_choice_list (component_choice_list
(identifier)))))))) (identifier)))))))
(generic_formal_parameter_declaration (generic_formal_parameter_declaration
(formal_subprogram_declaration (formal_subprogram_declaration
(formal_concrete_subprogram_declaration (formal_concrete_subprogram_declaration
(subprogram_specification (subprogram_specification
(procedure_specification (procedure_specification
(name (identifier)))
(identifier))))
(subprogram_default)))) (subprogram_default))))
(generic_formal_parameter_declaration (generic_formal_parameter_declaration
(formal_subprogram_declaration (formal_subprogram_declaration
(formal_concrete_subprogram_declaration (formal_concrete_subprogram_declaration
(subprogram_specification (subprogram_specification
(function_specification (function_specification
(name (identifier)
(identifier))
(parameter_and_result_profile (parameter_and_result_profile
(result_profile (result_profile
(name (identifier)))))
(identifier))))))
(subprogram_default))))) (subprogram_default)))))
(package_specification (package_specification
(name (identifier)
(identifier))
(pragma_g (pragma_g
(identifier) (identifier)
(pragma_argument_association (pragma_argument_association
@ -101,8 +93,7 @@ end;
(term (term
(factor (factor
(primary (primary
(name (identifier))))))))
(identifier)))))))))
(pragma_argument_association (pragma_argument_association
(expression (expression
(relation (relation

View File

@ -13,39 +13,25 @@ use Ada.Text_IO, System;
(compilation (compilation
(compilation_unit (compilation_unit
(with_clause (with_clause
(name_list
(name
(identifier) (identifier)
(name (identifier)
(identifier))) (identifier)))
(name
(identifier)))))
(comment) (comment)
(compilation_unit (compilation_unit
(with_clause (with_clause
(name_list (identifier)))
(name
(identifier)))))
(comment) (comment)
(compilation_unit (compilation_unit
(with_clause (with_clause
(name_list (identifier)))
(name
(identifier)))))
(compilation_unit (compilation_unit
(with_clause (with_clause
(name_list (identifier)))
(name
(identifier)))))
(compilation_unit (compilation_unit
(use_clause (use_clause
(name_list
(name
(identifier) (identifier)
(name (identifier)
(identifier))) (identifier))))
(name
(identifier))))))
================================================================================ ================================================================================
Case insensitive Case insensitive
@ -59,8 +45,7 @@ enD;
(compilation (compilation
(compilation_unit (compilation_unit
(package_specification (package_specification
(name (identifier))))
(identifier)))))
================================================================================ ================================================================================
multiple compilation units multiple compilation units
@ -80,21 +65,15 @@ end;
(compilation (compilation
(compilation_unit (compilation_unit
(package_specification (package_specification
(name (identifier)
(identifier))
(package_specification (package_specification
(name (identifier)
(identifier)) (identifier))
(name
(identifier))) (identifier)))
(name
(identifier))))
(compilation_unit (compilation_unit
(package_specification (package_specification
(name
(identifier) (identifier)
(name (identifier)
(identifier)))
(comment)))) (comment))))
================================================================================ ================================================================================
@ -116,32 +95,26 @@ end Child.P2;
(compilation_unit (compilation_unit
(proper_body (proper_body
(package_body (package_body
(name
(identifier) (identifier)
(name (identifier)
(identifier)))
(non_empty_declarative_part (non_empty_declarative_part
(declarative_item_pragma (declarative_item_pragma
(proper_body (proper_body
(package_body (package_body
(name
(identifier))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(simple_statement
(null_statement)))))
(name
(identifier))))))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(simple_statement
(null_statement)))))
(name
(identifier) (identifier)
(name (handled_sequence_of_statements
(identifier))))))) (sequence_of_statements
(statement
(simple_statement
(null_statement)))))
(identifier)))))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(simple_statement
(null_statement)))))
(identifier)
(identifier)))))
================================================================================ ================================================================================
separate separate
@ -155,12 +128,10 @@ end;
(compilation (compilation
(compilation_unit (compilation_unit
(subunit (subunit
(name (identifier)
(identifier))
(proper_body (proper_body
(package_body (package_body
(name (identifier))))))
(identifier)))))))
================================================================================ ================================================================================
private types private types
@ -177,8 +148,7 @@ end;
(compilation (compilation
(compilation_unit (compilation_unit
(package_specification (package_specification
(name (identifier)
(identifier))
(type_declaration (type_declaration
(private_type_declaration (private_type_declaration
(identifier))) (identifier)))
@ -186,8 +156,7 @@ end;
(private_extension_declaration (private_extension_declaration
(identifier) (identifier)
(subtype_indication (subtype_indication
(name (identifier))))
(identifier)))))
(type_declaration (type_declaration
(private_type_declaration (private_type_declaration
(identifier) (identifier)
@ -222,8 +191,7 @@ end;
(compilation (compilation
(compilation_unit (compilation_unit
(package_specification (package_specification
(name (identifier)
(identifier))
(type_declaration (type_declaration
(incomplete_type_declaration (incomplete_type_declaration
(identifier))) (identifier)))
@ -236,8 +204,7 @@ end;
(discriminant_specification (discriminant_specification
(defining_identifier_list (defining_identifier_list
(identifier)) (identifier))
(name (identifier)))))))
(identifier))))))))
(type_declaration (type_declaration
(incomplete_type_declaration (incomplete_type_declaration
(identifier) (identifier)

View File

@ -32,8 +32,7 @@ end;
(compilation_unit (compilation_unit
(proper_body (proper_body
(package_body (package_body
(name (identifier)
(identifier))
(non_empty_declarative_part (non_empty_declarative_part
(declarative_item_pragma (declarative_item_pragma
(object_declaration (object_declaration
@ -44,18 +43,15 @@ end;
(subprogram_declaration (subprogram_declaration
(subprogram_specification (subprogram_specification
(procedure_specification (procedure_specification
(name (identifier)))))
(identifier))))))
(protected_operation_declaration (protected_operation_declaration
(subprogram_declaration (subprogram_declaration
(subprogram_specification (subprogram_specification
(function_specification (function_specification
(name (identifier)
(identifier))
(parameter_and_result_profile (parameter_and_result_profile
(result_profile (result_profile
(name (identifier)))))))
(identifier))))))))
(protected_operation_declaration (protected_operation_declaration
(entry_declaration (entry_declaration
(identifier))) (identifier)))
@ -64,23 +60,20 @@ end;
(identifier) (identifier)
(discrete_subtype_definition (discrete_subtype_definition
(subtype_indication (subtype_indication
(name (identifier)))
(identifier))))
(formal_part (formal_part
(parameter_specification_list (parameter_specification_list
(parameter_specification (parameter_specification
(defining_identifier_list (defining_identifier_list
(identifier)) (identifier))
(name (identifier))))))
(identifier)))))))
(protected_element_declaration (protected_element_declaration
(component_declaration (component_declaration
(defining_identifier_list (defining_identifier_list
(identifier)) (identifier))
(component_definition (component_definition
(subtype_indication (subtype_indication
(name (identifier)))))
(identifier))))))
(identifier))))) (identifier)))))
(declarative_item_pragma (declarative_item_pragma
(proper_body (proper_body
@ -90,25 +83,21 @@ end;
(subprogram_body (subprogram_body
(subprogram_specification (subprogram_specification
(procedure_specification (procedure_specification
(name (identifier)))
(identifier))))
(handled_sequence_of_statements (handled_sequence_of_statements
(sequence_of_statements (sequence_of_statements
(statement (statement
(simple_statement (simple_statement
(abort_statement (abort_statement
(name (identifier))))))))
(identifier)))))))))
(protected_operation_item (protected_operation_item
(subprogram_body (subprogram_body
(subprogram_specification (subprogram_specification
(function_specification (function_specification
(name (identifier)
(identifier))
(parameter_and_result_profile (parameter_and_result_profile
(result_profile (result_profile
(name (identifier)))))
(identifier))))))
(handled_sequence_of_statements (handled_sequence_of_statements
(sequence_of_statements (sequence_of_statements
(statement (statement
@ -120,8 +109,7 @@ end;
(term (term
(factor (factor
(primary (primary
(name (identifier))))))))))))))
(identifier)))))))))))))))
(protected_operation_item (protected_operation_item
(entry_body (entry_body
(identifier) (identifier)
@ -132,8 +120,7 @@ end;
(term (term
(factor (factor
(primary (primary
(name (identifier)))))
(identifier))))))
(relational_operator) (relational_operator)
(simple_expression (simple_expression
(term (term
@ -145,8 +132,7 @@ end;
(statement (statement
(simple_statement (simple_statement
(requeue_statement (requeue_statement
(name (identifier))))))
(identifier)))))))
(identifier))) (identifier)))
(protected_operation_item (protected_operation_item
(entry_body (entry_body
@ -156,15 +142,13 @@ end;
(identifier) (identifier)
(discrete_subtype_definition (discrete_subtype_definition
(subtype_indication (subtype_indication
(name (identifier))))
(identifier)))))
(formal_part (formal_part
(parameter_specification_list (parameter_specification_list
(parameter_specification (parameter_specification
(defining_identifier_list (defining_identifier_list
(identifier)) (identifier))
(name (identifier)))))
(identifier))))))
(entry_barrier (entry_barrier
(expression (expression
(relation (relation
@ -172,8 +156,7 @@ end;
(term (term
(factor (factor
(primary (primary
(name (identifier))))))))
(identifier)))))))))
(handled_sequence_of_statements (handled_sequence_of_statements
(sequence_of_statements (sequence_of_statements
(statement (statement

View File

@ -11,8 +11,7 @@ end;
(compilation (compilation
(compilation_unit (compilation_unit
(package_specification (package_specification
(name (identifier)
(identifier))
(type_declaration (type_declaration
(full_type_declaration (full_type_declaration
(identifier) (identifier)
@ -41,8 +40,7 @@ end;
(compilation (compilation
(compilation_unit (compilation_unit
(package_specification (package_specification
(name (identifier)
(identifier))
(type_declaration (type_declaration
(full_type_declaration (full_type_declaration
(identifier) (identifier)
@ -56,16 +54,14 @@ end;
(identifier)) (identifier))
(component_definition (component_definition
(subtype_indication (subtype_indication
(name (identifier)))))
(identifier))))))
(component_item (component_item
(component_declaration (component_declaration
(defining_identifier_list (defining_identifier_list
(identifier)) (identifier))
(component_definition (component_definition
(subtype_indication (subtype_indication
(name (identifier)
(identifier))
(constraint (constraint
(scalar_constraint (scalar_constraint
(range_constraint (range_constraint
@ -88,15 +84,12 @@ end;
(component_definition (component_definition
(access_definition (access_definition
(null_exclusion) (null_exclusion)
(name (identifier)))))))))))
(identifier))))))))))))
(aspect_clause (aspect_clause
(record_representation_clause (record_representation_clause
(name (identifier)
(identifier))
(component_clause (component_clause
(name (identifier)
(identifier))
(expression (expression
(relation (relation
(simple_expression (simple_expression
@ -130,8 +123,7 @@ end;
(compilation (compilation
(compilation_unit (compilation_unit
(package_specification (package_specification
(name (identifier)
(identifier))
(type_declaration (type_declaration
(full_type_declaration (full_type_declaration
(identifier) (identifier)
@ -146,8 +138,7 @@ end;
(identifier)) (identifier))
(component_definition (component_definition
(subtype_indication (subtype_indication
(name (identifier))))))))))))))
(identifier)))))))))))))))
================================================================================ ================================================================================
Discriminated Discriminated
@ -164,8 +155,7 @@ end;
(compilation (compilation
(compilation_unit (compilation_unit
(package_specification (package_specification
(name (identifier)
(identifier))
(type_declaration (type_declaration
(full_type_declaration (full_type_declaration
(identifier) (identifier)
@ -174,13 +164,11 @@ end;
(discriminant_specification (discriminant_specification
(defining_identifier_list (defining_identifier_list
(identifier)) (identifier))
(name (identifier))
(identifier)))
(discriminant_specification (discriminant_specification
(defining_identifier_list (defining_identifier_list
(identifier)) (identifier))
(name (identifier))))
(identifier)))))
(type_definition (type_definition
(record_type_definition (record_type_definition
(record_definition (record_definition
@ -191,8 +179,7 @@ end;
(identifier)) (identifier))
(component_definition (component_definition
(subtype_indication (subtype_indication
(name (identifier))))))))))))))
(identifier)))))))))))))))
================================================================================ ================================================================================
tagged tagged
@ -210,8 +197,7 @@ end;
(compilation (compilation
(compilation_unit (compilation_unit
(package_specification (package_specification
(name (identifier)
(identifier))
(type_declaration (type_declaration
(full_type_declaration (full_type_declaration
(identifier) (identifier)
@ -224,8 +210,7 @@ end;
(type_definition (type_definition
(derived_type_definition (derived_type_definition
(subtype_indication (subtype_indication
(name (identifier))
(identifier)))
(record_extension_part (record_extension_part
(record_definition (record_definition
(component_list (component_list
@ -235,8 +220,7 @@ end;
(identifier)) (identifier))
(component_definition (component_definition
(subtype_indication (subtype_indication
(name (identifier)))))))))))))))
(identifier))))))))))))))))
================================================================================ ================================================================================
Variant Variant
@ -258,8 +242,7 @@ end;
(compilation (compilation
(compilation_unit (compilation_unit
(package_specification (package_specification
(name (identifier)
(identifier))
(type_declaration (type_declaration
(full_type_declaration (full_type_declaration
(identifier) (identifier)
@ -268,8 +251,7 @@ end;
(discriminant_specification (discriminant_specification
(defining_identifier_list (defining_identifier_list
(identifier)) (identifier))
(name (identifier))))
(identifier)))))
(type_definition (type_definition
(record_type_definition (record_type_definition
(record_definition (record_definition
@ -306,8 +288,7 @@ end;
(identifier)) (identifier))
(component_definition (component_definition
(subtype_indication (subtype_indication
(name (identifier)))))))
(identifier))))))))
(variant (variant
(discrete_choice_list (discrete_choice_list
(discrete_choice)) (discrete_choice))
@ -328,8 +309,7 @@ end;
(compilation (compilation
(compilation_unit (compilation_unit
(package_specification (package_specification
(name (identifier)
(identifier))
(type_declaration (type_declaration
(full_type_declaration (full_type_declaration
(identifier) (identifier)
@ -340,20 +320,15 @@ end;
(identifier) (identifier)
(type_definition (type_definition
(interface_type_definition (interface_type_definition
(interface_list (identifier)))))
(name
(identifier)))))))
(type_declaration (type_declaration
(full_type_declaration (full_type_declaration
(identifier) (identifier)
(type_definition (type_definition
(derived_type_definition (derived_type_definition
(subtype_indication (subtype_indication
(name (identifier))
(identifier))) (identifier)
(interface_list
(name
(identifier)))
(record_extension_part (record_extension_part
(record_definition))))))))) (record_definition)))))))))
@ -374,15 +349,13 @@ end;
(subprogram_body (subprogram_body
(subprogram_specification (subprogram_specification
(procedure_specification (procedure_specification
(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 (identifier)
(identifier))
(assign_value (assign_value
(expression (expression
(relation (relation
@ -429,15 +402,13 @@ end;
(subprogram_body (subprogram_body
(subprogram_specification (subprogram_specification
(procedure_specification (procedure_specification
(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 (identifier)
(identifier))
(assign_value (assign_value
(expression (expression
(relation (relation
@ -453,8 +424,7 @@ end;
(term (term
(factor (factor
(primary (primary
(name (identifier)))))))
(identifier))))))))
(record_component_association_list (record_component_association_list
(component_choice_list (component_choice_list
(identifier)) (identifier))
@ -483,15 +453,13 @@ end;
(subprogram_body (subprogram_body
(subprogram_specification (subprogram_specification
(procedure_specification (procedure_specification
(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 (identifier)
(identifier))
(assign_value (assign_value
(expression (expression
(relation (relation
@ -508,8 +476,7 @@ end;
(term (term
(factor (factor
(primary (primary
(name (identifier)))))))
(identifier))))))))
(record_component_association_list (record_component_association_list
(component_choice_list (component_choice_list
(identifier)) (identifier))

View File

@ -21,66 +21,52 @@ end P;
(subprogram_body (subprogram_body
(subprogram_specification (subprogram_specification
(procedure_specification (procedure_specification
(name (identifier)))
(identifier))))
(non_empty_declarative_part (non_empty_declarative_part
(declarative_item_pragma (declarative_item_pragma
(renaming_declaration (renaming_declaration
(object_renaming_declaration (object_renaming_declaration
(identifier) (identifier)
(name (identifier))))
(identifier)))))
(declarative_item_pragma (declarative_item_pragma
(renaming_declaration (renaming_declaration
(object_renaming_declaration (object_renaming_declaration
(identifier) (identifier)
(name (identifier)
(identifier)) (identifier))))
(name
(identifier)))))
(declarative_item_pragma (declarative_item_pragma
(renaming_declaration (renaming_declaration
(exception_renaming_declaration (exception_renaming_declaration
(identifier) (identifier)
(name (identifier))))
(identifier)))))
(declarative_item_pragma (declarative_item_pragma
(renaming_declaration (renaming_declaration
(package_renaming_declaration (package_renaming_declaration
(name
(identifier))
(name
(identifier) (identifier)
(name (identifier)
(identifier)))))) (identifier))))
(declarative_item_pragma (declarative_item_pragma
(renaming_declaration (renaming_declaration
(subprogram_renaming_declaration (subprogram_renaming_declaration
(subprogram_specification (subprogram_specification
(procedure_specification (procedure_specification
(name (identifier)
(identifier))
(non_empty_parameter_profile (non_empty_parameter_profile
(formal_part (formal_part
(parameter_specification_list (parameter_specification_list
(parameter_specification (parameter_specification
(defining_identifier_list (defining_identifier_list
(identifier)) (identifier))
(name (identifier)))))))
(identifier)))))))) (identifier))))
(name
(identifier)))))
(declarative_item_pragma (declarative_item_pragma
(renaming_declaration (renaming_declaration
(generic_renaming_declaration (generic_renaming_declaration
(name (identifier)
(identifier)) (identifier)))))
(name
(identifier))))))
(handled_sequence_of_statements (handled_sequence_of_statements
(sequence_of_statements (sequence_of_statements
(statement (statement
(simple_statement (simple_statement
(null_statement))))) (null_statement)))))
(name (identifier)))))
(identifier))))))

View File

@ -13,8 +13,7 @@ end;
(compilation_unit (compilation_unit
(proper_body (proper_body
(package_body (package_body
(name (identifier)
(identifier))
(non_empty_declarative_part (non_empty_declarative_part
(declarative_item_pragma (declarative_item_pragma
(body_stub (body_stub
@ -22,8 +21,7 @@ end;
(overriding_indicator) (overriding_indicator)
(subprogram_specification (subprogram_specification
(procedure_specification (procedure_specification
(name (identifier)))
(identifier))))
(aspect_specification (aspect_specification
(aspect_mark_list (aspect_mark_list
(aspect_association (aspect_association
@ -35,12 +33,10 @@ end;
(overriding_indicator) (overriding_indicator)
(subprogram_specification (subprogram_specification
(function_specification (function_specification
(name (identifier)
(identifier))
(parameter_and_result_profile (parameter_and_result_profile
(result_profile (result_profile
(name (identifier)))))
(identifier))))))
(aspect_specification (aspect_specification
(aspect_mark_list (aspect_mark_list
(aspect_association (aspect_association
@ -61,8 +57,7 @@ end;
(compilation_unit (compilation_unit
(proper_body (proper_body
(package_body (package_body
(name (identifier)
(identifier))
(non_empty_declarative_part (non_empty_declarative_part
(declarative_item_pragma (declarative_item_pragma
(body_stub (body_stub
@ -83,15 +78,13 @@ end P;
(compilation_unit (compilation_unit
(proper_body (proper_body
(package_body (package_body
(name (identifier)
(identifier))
(non_empty_declarative_part (non_empty_declarative_part
(declarative_item_pragma (declarative_item_pragma
(body_stub (body_stub
(protected_body_stub (protected_body_stub
(identifier))))) (identifier)))))
(name (identifier)))))
(identifier))))))
================================================================================ ================================================================================
Separate task Separate task
@ -107,12 +100,10 @@ end P;
(compilation_unit (compilation_unit
(proper_body (proper_body
(package_body (package_body
(name (identifier)
(identifier))
(non_empty_declarative_part (non_empty_declarative_part
(declarative_item_pragma (declarative_item_pragma
(body_stub (body_stub
(task_body_stub (task_body_stub
(identifier))))) (identifier)))))
(name (identifier)))))
(identifier))))))

View File

@ -18,8 +18,7 @@ end;
(subprogram_body (subprogram_body
(subprogram_specification (subprogram_specification
(procedure_specification (procedure_specification
(name (identifier)))
(identifier))))
(handled_sequence_of_statements (handled_sequence_of_statements
(sequence_of_statements (sequence_of_statements
(statement (statement
@ -32,8 +31,7 @@ end;
(term (term
(factor (factor
(primary (primary
(name (identifier))))))))
(identifier)))))))))
(sequence_of_statements (sequence_of_statements
(statement (statement
(simple_statement (simple_statement
@ -47,8 +45,7 @@ end;
(term (term
(factor (factor
(primary (primary
(name (identifier)))))
(identifier))))))
(relational_operator) (relational_operator)
(simple_expression (simple_expression
(term (term
@ -81,8 +78,7 @@ end P;
(subprogram_body (subprogram_body
(subprogram_specification (subprogram_specification
(procedure_specification (procedure_specification
(name (identifier)))
(identifier))))
(handled_sequence_of_statements (handled_sequence_of_statements
(sequence_of_statements (sequence_of_statements
(statement (statement
@ -91,21 +87,17 @@ end P;
(iteration_scheme (iteration_scheme
(iterator_specification (iterator_specification
(identifier) (identifier)
(name
(identifier) (identifier)
(name
(attribute_reference (attribute_reference
(name (identifier)
(identifier))
(tick) (tick)
(attribute_designator (attribute_designator
(identifier))))))) (identifier)))))
(sequence_of_statements (sequence_of_statements
(statement (statement
(simple_statement (simple_statement
(goto_statement (goto_statement
(name (identifier))))
(identifier)))))
(label (label
(identifier)))))) (identifier))))))
(statement (statement
@ -114,8 +106,7 @@ end P;
(iteration_scheme (iteration_scheme
(iterator_specification (iterator_specification
(identifier) (identifier)
(name (identifier)))
(identifier))))
(sequence_of_statements (sequence_of_statements
(statement (statement
(simple_statement (simple_statement
@ -128,8 +119,7 @@ end P;
(factor (factor
(primary (primary
(numeric_literal))))))))))))))))) (numeric_literal)))))))))))))))))
(name (identifier)))))
(identifier))))))
================================================================================ ================================================================================
Named loop Named loop
@ -151,8 +141,7 @@ end;
(subprogram_body (subprogram_body
(subprogram_specification (subprogram_specification
(procedure_specification (procedure_specification
(name (identifier)))
(identifier))))
(handled_sequence_of_statements (handled_sequence_of_statements
(sequence_of_statements (sequence_of_statements
(statement (statement
@ -164,8 +153,7 @@ end;
(statement (statement
(simple_statement (simple_statement
(exit_statement (exit_statement
(name (identifier)))))
(identifier))))))
(identifier)))))))))) (identifier))))))))))
================================================================================ ================================================================================
@ -188,12 +176,10 @@ end F;
(subprogram_body (subprogram_body
(subprogram_specification (subprogram_specification
(function_specification (function_specification
(name (identifier)
(identifier))
(parameter_and_result_profile (parameter_and_result_profile
(result_profile (result_profile
(name (identifier)))))
(identifier))))))
(handled_sequence_of_statements (handled_sequence_of_statements
(sequence_of_statements (sequence_of_statements
(statement (statement
@ -205,8 +191,7 @@ end F;
(term (term
(factor (factor
(primary (primary
(name (identifier))))))))))
(identifier)))))))))))
(statement (statement
(compound_statement (compound_statement
(extended_return_statement (extended_return_statement
@ -214,8 +199,7 @@ end F;
(identifier) (identifier)
(return_subtype_indication (return_subtype_indication
(subtype_indication (subtype_indication
(name (identifier)))
(identifier))))
(assign_value (assign_value
(expression (expression
(relation (relation
@ -240,8 +224,7 @@ end F;
(statement (statement
(simple_statement (simple_statement
(null_statement)))))))))) (null_statement))))))))))
(name (identifier)))))
(identifier))))))
================================================================================ ================================================================================
Procedure call Procedure call
@ -260,23 +243,20 @@ end P;
(subprogram_body (subprogram_body
(subprogram_specification (subprogram_specification
(procedure_specification (procedure_specification
(name (identifier)
(identifier))
(non_empty_parameter_profile (non_empty_parameter_profile
(formal_part (formal_part
(parameter_specification_list (parameter_specification_list
(parameter_specification (parameter_specification
(defining_identifier_list (defining_identifier_list
(identifier)) (identifier))
(name (identifier)))))))
(identifier))))))))
(handled_sequence_of_statements (handled_sequence_of_statements
(sequence_of_statements (sequence_of_statements
(statement (statement
(simple_statement (simple_statement
(procedure_call_statement (procedure_call_statement
(name (identifier)
(identifier))
(actual_parameter_part (actual_parameter_part
(parameter_association (parameter_association
(expression (expression
@ -293,10 +273,8 @@ end P;
(term (term
(factor (factor
(primary (primary
(name (identifier))))))))))))))
(identifier))))))))))))))) (identifier)))))
(name
(identifier))))))
================================================================================ ================================================================================
Raise exception Raise exception
@ -316,20 +294,17 @@ end;
(subprogram_body (subprogram_body
(subprogram_specification (subprogram_specification
(procedure_specification (procedure_specification
(name (identifier)))
(identifier))))
(handled_sequence_of_statements (handled_sequence_of_statements
(sequence_of_statements (sequence_of_statements
(statement (statement
(simple_statement (simple_statement
(raise_statement (raise_statement
(name (identifier))))
(identifier)))))
(statement (statement
(simple_statement (simple_statement
(raise_statement (raise_statement
(name (identifier)
(identifier))
(expression (expression
(relation (relation
(simple_expression (simple_expression
@ -356,23 +331,20 @@ end;
(subprogram_body (subprogram_body
(subprogram_specification (subprogram_specification
(procedure_specification (procedure_specification
(name (identifier)))
(identifier))))
(non_empty_declarative_part (non_empty_declarative_part
(declarative_item_pragma (declarative_item_pragma
(object_declaration (object_declaration
(defining_identifier_list (defining_identifier_list
(identifier)) (identifier))
(subtype_indication (subtype_indication
(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 (identifier)
(identifier))
(assign_value (assign_value
(expression (expression
(relation (relation
@ -380,10 +352,8 @@ end;
(term (term
(factor (factor
(primary (primary
(name
(function_call (function_call
(name (identifier)
(identifier))
(actual_parameter_part (actual_parameter_part
(parameter_association (parameter_association
(component_choice_list (component_choice_list
@ -394,7 +364,7 @@ end;
(term (term
(factor (factor
(primary (primary
(numeric_literal))))))))))))))))))))))))))) (numeric_literal))))))))))))))))))))))))))
================================================================================ ================================================================================
if statement if statement
@ -430,8 +400,7 @@ end P;
(subprogram_body (subprogram_body
(subprogram_specification (subprogram_specification
(procedure_specification (procedure_specification
(name (identifier)))
(identifier))))
(handled_sequence_of_statements (handled_sequence_of_statements
(sequence_of_statements (sequence_of_statements
(statement (statement
@ -443,8 +412,7 @@ end P;
(term (term
(factor (factor
(primary (primary
(name (identifier)))))
(identifier))))))
(relational_operator) (relational_operator)
(simple_expression (simple_expression
(term (term
@ -456,8 +424,7 @@ end P;
(term (term
(factor (factor
(primary (primary
(name (identifier)))))
(identifier))))))
(relational_operator) (relational_operator)
(simple_expression (simple_expression
(term (term
@ -480,8 +447,7 @@ end P;
(term (term
(factor (factor
(primary (primary
(name (identifier)))))
(identifier))))))
(relational_operator) (relational_operator)
(simple_expression (simple_expression
(term (term
@ -498,8 +464,7 @@ end P;
(defining_identifier_list (defining_identifier_list
(identifier)) (identifier))
(subtype_indication (subtype_indication
(name (identifier)))))
(identifier))))))
(handled_sequence_of_statements (handled_sequence_of_statements
(sequence_of_statements (sequence_of_statements
(statement (statement
@ -509,8 +474,7 @@ end P;
(exception_handler (exception_handler
(exception_choice_list (exception_choice_list
(exception_choice (exception_choice
(name (identifier)))
(identifier))))
(sequence_of_statements (sequence_of_statements
(statement (statement
(simple_statement (simple_statement
@ -524,8 +488,7 @@ end P;
(statement (statement
(simple_statement (simple_statement
(null_statement)))))))))))))) (null_statement))))))))))))))
(name (identifier)))))
(identifier))))))
================================================================================ ================================================================================
Case statement Case statement
@ -549,8 +512,7 @@ end;
(subprogram_body (subprogram_body
(subprogram_specification (subprogram_specification
(procedure_specification (procedure_specification
(name (identifier)))
(identifier))))
(handled_sequence_of_statements (handled_sequence_of_statements
(sequence_of_statements (sequence_of_statements
(statement (statement
@ -562,10 +524,8 @@ end;
(term (term
(factor (factor
(primary (primary
(name
(function_call (function_call
(name (identifier)
(identifier))
(actual_parameter_part (actual_parameter_part
(parameter_association (parameter_association
(component_choice_list (component_choice_list
@ -576,7 +536,7 @@ end;
(term (term
(factor (factor
(primary (primary
(numeric_literal))))))))))))))))) (numeric_literal))))))))))))))))
(case_statement_alternative (case_statement_alternative
(discrete_choice_list (discrete_choice_list
(discrete_choice (discrete_choice
@ -585,14 +545,12 @@ end;
(term (term
(factor (factor
(primary (primary
(name (character_literal)))))
(character_literal))))))
(simple_expression (simple_expression
(term (term
(factor (factor
(primary (primary
(name (character_literal))))))))
(character_literal)))))))))
(sequence_of_statements (sequence_of_statements
(statement (statement
(simple_statement (simple_statement
@ -606,8 +564,7 @@ end;
(term (term
(factor (factor
(primary (primary
(name (character_literal))))))))
(character_literal)))))))))
(discrete_choice (discrete_choice
(expression (expression
(relation (relation
@ -615,8 +572,7 @@ end;
(term (term
(factor (factor
(primary (primary
(name (character_literal)))))))))
(character_literal))))))))))
(sequence_of_statements (sequence_of_statements
(statement (statement
(simple_statement (simple_statement
@ -640,15 +596,13 @@ end;
(subprogram_body (subprogram_body
(subprogram_specification (subprogram_specification
(procedure_specification (procedure_specification
(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 (identifier)
(identifier))
(assign_value (assign_value
(expression (expression
(relation (relation
@ -658,13 +612,11 @@ end;
(primary (primary
(allocator (allocator
(subtype_indication_paren_constraint (subtype_indication_paren_constraint
(name (identifier)))))))))))))
(identifier))))))))))))))
(statement (statement
(simple_statement (simple_statement
(assignment_statement (assignment_statement
(name (identifier)
(identifier))
(assign_value (assign_value
(expression (expression
(relation (relation
@ -674,15 +626,11 @@ end;
(primary (primary
(allocator (allocator
(subpool_specification (subpool_specification
(name
(identifier) (identifier)
(name
(identifier))))
(subtype_indication_paren_constraint
(name
(qualified_expression
(name
(identifier)) (identifier))
(subtype_indication_paren_constraint
(qualified_expression
(identifier)
(tick) (tick)
(expression (expression
(relation (relation
@ -701,12 +649,11 @@ end;
(term (term
(factor (factor
(primary (primary
(numeric_literal)))))))))))))))))))))))))))))))))))) (numeric_literal)))))))))))))))))))))))))))))))))))
================================================================================
========
Filtered for loops Filtered for loops
======== ================================================================================
procedure P is procedure P is
begin begin
@ -715,16 +662,15 @@ begin
end loop; end loop;
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 (identifier)))
(identifier))))
(handled_sequence_of_statements (handled_sequence_of_statements
(sequence_of_statements (sequence_of_statements
(statement (statement
@ -733,8 +679,7 @@ end;
(iteration_scheme (iteration_scheme
(iterator_specification (iterator_specification
(identifier) (identifier)
(name (identifier)
(identifier))
(iterator_filter (iterator_filter
(expression (expression
(relation (relation
@ -742,8 +687,7 @@ end;
(term (term
(factor (factor
(primary (primary
(name (identifier)))))
(identifier))))))
(relational_operator) (relational_operator)
(simple_expression (simple_expression
(term (term
@ -755,9 +699,9 @@ end;
(simple_statement (simple_statement
(null_statement))))))))))))) (null_statement)))))))))))))
======= ================================================================================
Assignment target name Assignment target name
======= ================================================================================
procedure P is procedure P is
begin begin
@ -765,27 +709,23 @@ begin
Another_Very_Long.And_Complex (Expression) := Function_Call (@); Another_Very_Long.And_Complex (Expression) := Function_Call (@);
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 (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
(function_call
(name
(identifier) (identifier)
(name (function_call
(identifier))) (identifier)
(actual_parameter_part (actual_parameter_part
(parameter_association (parameter_association
(expression (expression
@ -794,8 +734,7 @@ end;
(term (term
(factor (factor
(primary (primary
(name (identifier))))))))))
(identifier))))))))))))
(assign_value (assign_value
(expression (expression
(relation (relation
@ -803,7 +742,7 @@ end;
(term (term
(factor (factor
(primary (primary
(name)))) (target_name))))
(binary_adding_operator) (binary_adding_operator)
(term (term
(factor (factor
@ -812,12 +751,9 @@ end;
(statement (statement
(simple_statement (simple_statement
(assignment_statement (assignment_statement
(name
(function_call
(name
(identifier) (identifier)
(name (function_call
(identifier))) (identifier)
(actual_parameter_part (actual_parameter_part
(parameter_association (parameter_association
(expression (expression
@ -826,8 +762,7 @@ end;
(term (term
(factor (factor
(primary (primary
(name (identifier))))))))))
(identifier))))))))))))
(assign_value (assign_value
(expression (expression
(relation (relation
@ -835,10 +770,8 @@ end;
(term (term
(factor (factor
(primary (primary
(name
(function_call (function_call
(name (identifier)
(identifier))
(actual_parameter_part (actual_parameter_part
(parameter_association (parameter_association
(expression (expression
@ -847,4 +780,4 @@ end;
(term (term
(factor (factor
(primary (primary
(name))))))))))))))))))))))))))) (target_name))))))))))))))))))))))))))

View File

@ -13,21 +13,17 @@ end;
(compilation (compilation
(compilation_unit (compilation_unit
(package_specification (package_specification
(name (identifier)
(identifier))
(null_procedure_declaration (null_procedure_declaration
(procedure_specification (procedure_specification
(name (identifier)))
(identifier))))
(null_procedure_declaration (null_procedure_declaration
(overriding_indicator) (overriding_indicator)
(procedure_specification (procedure_specification
(name (identifier)))
(identifier))))
(null_procedure_declaration (null_procedure_declaration
(procedure_specification (procedure_specification
(name (identifier))
(identifier)))
(aspect_specification (aspect_specification
(aspect_mark_list (aspect_mark_list
(aspect_association (aspect_association
@ -48,13 +44,11 @@ end;
(compilation (compilation
(compilation_unit (compilation_unit
(package_specification (package_specification
(name (identifier)
(identifier))
(subprogram_declaration (subprogram_declaration
(subprogram_specification (subprogram_specification
(procedure_specification (procedure_specification
(name (identifier)
(identifier))
(non_empty_parameter_profile (non_empty_parameter_profile
(formal_part (formal_part
(parameter_specification_list (parameter_specification_list
@ -62,13 +56,11 @@ end;
(defining_identifier_list (defining_identifier_list
(identifier) (identifier)
(identifier)) (identifier))
(name (identifier))
(identifier)))
(parameter_specification (parameter_specification
(defining_identifier_list (defining_identifier_list
(identifier)) (identifier))
(name (identifier)))))))
(identifier))))))))
(aspect_specification (aspect_specification
(aspect_mark_list (aspect_mark_list
(aspect_association (aspect_association
@ -89,19 +81,16 @@ end;
(compilation (compilation
(compilation_unit (compilation_unit
(package_specification (package_specification
(name (identifier)
(identifier))
(subprogram_declaration (subprogram_declaration
(subprogram_specification (subprogram_specification
(procedure_specification (procedure_specification
(name (identifier))))
(identifier)))))
(subprogram_declaration (subprogram_declaration
(overriding_indicator) (overriding_indicator)
(subprogram_specification (subprogram_specification
(procedure_specification (procedure_specification
(name (identifier)))
(identifier))))
(aspect_specification (aspect_specification
(aspect_mark_list (aspect_mark_list
(aspect_association (aspect_association
@ -122,13 +111,11 @@ end;
(compilation (compilation
(compilation_unit (compilation_unit
(package_specification (package_specification
(name (identifier)
(identifier))
(subprogram_declaration (subprogram_declaration
(subprogram_specification (subprogram_specification
(function_specification (function_specification
(name (identifier)
(identifier))
(parameter_and_result_profile (parameter_and_result_profile
(formal_part (formal_part
(parameter_specification_list (parameter_specification_list
@ -136,13 +123,11 @@ end;
(defining_identifier_list (defining_identifier_list
(identifier) (identifier)
(identifier)) (identifier))
(name (identifier))))
(identifier)))))
(result_profile (result_profile
(access_definition (access_definition
(null_exclusion) (null_exclusion)
(name (identifier))))))
(identifier)))))))
(aspect_specification (aspect_specification
(aspect_mark_list (aspect_mark_list
(aspect_association (aspect_association
@ -158,8 +143,7 @@ end;
(term (term
(factor (factor
(primary (primary
(name (identifier)))))))))))))))
(identifier))))))))))))))))
================================================================================ ================================================================================
subprogram body subprogram body
@ -179,39 +163,34 @@ end;
(compilation_unit (compilation_unit
(proper_body (proper_body
(package_body (package_body
(name (identifier)
(identifier))
(non_empty_declarative_part (non_empty_declarative_part
(declarative_item_pragma (declarative_item_pragma
(proper_body (proper_body
(subprogram_body (subprogram_body
(subprogram_specification (subprogram_specification
(procedure_specification (procedure_specification
(name (identifier)
(identifier))
(non_empty_parameter_profile (non_empty_parameter_profile
(formal_part (formal_part
(parameter_specification_list (parameter_specification_list
(parameter_specification (parameter_specification
(defining_identifier_list (defining_identifier_list
(identifier)) (identifier))
(name (identifier)))))))
(identifier))))))))
(non_empty_declarative_part (non_empty_declarative_part
(declarative_item_pragma (declarative_item_pragma
(object_declaration (object_declaration
(defining_identifier_list (defining_identifier_list
(identifier)) (identifier))
(subtype_indication (subtype_indication
(name (identifier)))))
(identifier))))))
(handled_sequence_of_statements (handled_sequence_of_statements
(sequence_of_statements (sequence_of_statements
(statement (statement
(simple_statement (simple_statement
(null_statement))))) (null_statement)))))
(name (identifier)))))))))
(identifier))))))))))
================================================================================ ================================================================================
Expression function membership Expression function membership
@ -226,36 +205,30 @@ function F2 (A : Integer) return Boolean
(compilation_unit (compilation_unit
(expression_function_declaration (expression_function_declaration
(function_specification (function_specification
(name (identifier)
(identifier))
(parameter_and_result_profile (parameter_and_result_profile
(formal_part (formal_part
(parameter_specification_list (parameter_specification_list
(parameter_specification (parameter_specification
(defining_identifier_list (defining_identifier_list
(identifier)) (identifier))
(name (identifier))))
(identifier)))))
(result_profile (result_profile
(name (identifier))))
(identifier)))))
(expression (expression
(relation (relation
(simple_expression (simple_expression
(term (term
(factor (factor
(primary (primary
(name (identifier)))))
(identifier))))))
(membership_choice_list (membership_choice_list
(membership_choice (membership_choice
(simple_expression (simple_expression
(term (term
(factor (factor
(primary (primary
(name (identifier))))))))))))
(identifier)))))))))))))
================================================================================ ================================================================================
Expression function declare Expression function declare
@ -270,27 +243,23 @@ function F2 (A : Integer) return Boolean
(compilation_unit (compilation_unit
(expression_function_declaration (expression_function_declaration
(function_specification (function_specification
(name (identifier)
(identifier))
(parameter_and_result_profile (parameter_and_result_profile
(formal_part (formal_part
(parameter_specification_list (parameter_specification_list
(parameter_specification (parameter_specification
(defining_identifier_list (defining_identifier_list
(identifier)) (identifier))
(name (identifier))))
(identifier)))))
(result_profile (result_profile
(name (identifier))))
(identifier)))))
(declare_expression (declare_expression
(declare_item (declare_item
(object_declaration (object_declaration
(defining_identifier_list (defining_identifier_list
(identifier)) (identifier))
(subtype_indication (subtype_indication
(name (identifier))
(identifier)))
(assign_value (assign_value
(expression (expression
(relation (relation
@ -298,8 +267,7 @@ function F2 (A : Integer) return Boolean
(term (term
(factor (factor
(primary (primary
(name (identifier))))
(identifier)))))
(binary_adding_operator) (binary_adding_operator)
(term (term
(factor (factor
@ -311,8 +279,7 @@ function F2 (A : Integer) return Boolean
(term (term
(factor (factor
(primary (primary
(name (identifier)))))))))))
(identifier))))))))))))
================================================================================ ================================================================================
Expression function raise Expression function raise
@ -327,17 +294,14 @@ function F3 return Boolean
(compilation_unit (compilation_unit
(expression_function_declaration (expression_function_declaration
(function_specification (function_specification
(name (identifier)
(identifier))
(parameter_and_result_profile (parameter_and_result_profile
(result_profile (result_profile
(name (identifier))))
(identifier)))))
(expression (expression
(relation (relation
(raise_expression (raise_expression
(name (identifier)))))))
(identifier))))))))
================================================================================ ================================================================================
Expression function simple Expression function simple
@ -351,20 +315,17 @@ function F4 return Boolean is (True);
(compilation_unit (compilation_unit
(expression_function_declaration (expression_function_declaration
(function_specification (function_specification
(name (identifier)
(identifier))
(parameter_and_result_profile (parameter_and_result_profile
(result_profile (result_profile
(name (identifier))))
(identifier)))))
(expression (expression
(relation (relation
(simple_expression (simple_expression
(term (term
(factor (factor
(primary (primary
(name (identifier))))))))))
(identifier)))))))))))
================================================================================ ================================================================================
Expression function if Expression function if
@ -379,19 +340,16 @@ function F (A : Integer) return Boolean
(compilation_unit (compilation_unit
(expression_function_declaration (expression_function_declaration
(function_specification (function_specification
(name (identifier)
(identifier))
(parameter_and_result_profile (parameter_and_result_profile
(formal_part (formal_part
(parameter_specification_list (parameter_specification_list
(parameter_specification (parameter_specification
(defining_identifier_list (defining_identifier_list
(identifier)) (identifier))
(name (identifier))))
(identifier)))))
(result_profile (result_profile
(name (identifier))))
(identifier)))))
(conditional_expression (conditional_expression
(if_expression (if_expression
(expression (expression
@ -400,8 +358,7 @@ function F (A : Integer) return Boolean
(term (term
(factor (factor
(primary (primary
(name (identifier)))))
(identifier))))))
(relational_operator) (relational_operator)
(simple_expression (simple_expression
(term (term
@ -413,8 +370,7 @@ function F (A : Integer) return Boolean
(term (term
(factor (factor
(primary (primary
(name (identifier)))))
(identifier))))))
(relational_operator) (relational_operator)
(simple_expression (simple_expression
(term (term
@ -427,16 +383,14 @@ function F (A : Integer) return Boolean
(term (term
(factor (factor
(primary (primary
(name (identifier)))))))
(identifier))))))))
(expression (expression
(relation (relation
(simple_expression (simple_expression
(term (term
(factor (factor
(primary (primary
(name (identifier))))))))))))
(identifier)))))))))))))
================================================================================ ================================================================================
Expression function if extra parenthesis Expression function if extra parenthesis
@ -451,19 +405,16 @@ function F5 (A : Integer) return Boolean
(compilation_unit (compilation_unit
(expression_function_declaration (expression_function_declaration
(function_specification (function_specification
(name (identifier)
(identifier))
(parameter_and_result_profile (parameter_and_result_profile
(formal_part (formal_part
(parameter_specification_list (parameter_specification_list
(parameter_specification (parameter_specification
(defining_identifier_list (defining_identifier_list
(identifier)) (identifier))
(name (identifier))))
(identifier)))))
(result_profile (result_profile
(name (identifier))))
(identifier)))))
(expression (expression
(relation (relation
(simple_expression (simple_expression
@ -478,8 +429,7 @@ function F5 (A : Integer) return Boolean
(term (term
(factor (factor
(primary (primary
(name (identifier)))))
(identifier))))))
(relational_operator) (relational_operator)
(simple_expression (simple_expression
(term (term
@ -492,16 +442,14 @@ function F5 (A : Integer) return Boolean
(term (term
(factor (factor
(primary (primary
(name (identifier)))))))
(identifier))))))))
(expression (expression
(relation (relation
(simple_expression (simple_expression
(term (term
(factor (factor
(primary (primary
(name (identifier))))))))))))))))))
(identifier)))))))))))))))))))
================================================================================ ================================================================================
Expression function case Expression function case
@ -518,19 +466,16 @@ function F (A : Integer) return Boolean
(compilation_unit (compilation_unit
(expression_function_declaration (expression_function_declaration
(function_specification (function_specification
(name (identifier)
(identifier))
(parameter_and_result_profile (parameter_and_result_profile
(formal_part (formal_part
(parameter_specification_list (parameter_specification_list
(parameter_specification (parameter_specification
(defining_identifier_list (defining_identifier_list
(identifier)) (identifier))
(name (identifier))))
(identifier)))))
(result_profile (result_profile
(name (identifier))))
(identifier)))))
(conditional_expression (conditional_expression
(case_expression (case_expression
(expression (expression
@ -539,8 +484,7 @@ function F (A : Integer) return Boolean
(term (term
(factor (factor
(primary (primary
(name (identifier))))
(identifier)))))
(binary_adding_operator) (binary_adding_operator)
(term (term
(factor (factor
@ -578,8 +522,7 @@ function F (A : Integer) return Boolean
(term (term
(factor (factor
(primary (primary
(name (identifier))))))))
(identifier)))))))))
(case_expression_alternative (case_expression_alternative
(discrete_choice_list (discrete_choice_list
(discrete_choice)) (discrete_choice))
@ -589,8 +532,7 @@ function F (A : Integer) return Boolean
(term (term
(factor (factor
(primary (primary
(name (identifier)))))))))))))
(identifier))))))))))))))
================================================================================ ================================================================================
Expression function array Expression function array
@ -598,18 +540,16 @@ Expression function array
function F return My_Array is (1 .. 2 => True); function F return My_Array is (1 .. 2 => True);
------ --------------------------------------------------------------------------------
(compilation (compilation
(compilation_unit (compilation_unit
(expression_function_declaration (expression_function_declaration
(function_specification (function_specification
(name (identifier)
(identifier))
(parameter_and_result_profile (parameter_and_result_profile
(result_profile (result_profile
(name (identifier))))
(identifier)))))
(aggregate (aggregate
(array_aggregate (array_aggregate
(named_array_aggregate (named_array_aggregate
@ -633,8 +573,7 @@ function F return My_Array is (1 .. 2 => True);
(term (term
(factor (factor
(primary (primary
(name (identifier))))))))))))))
(identifier)))))))))))))))
================================================================================ ================================================================================
Expression function quantified Expression function quantified
@ -650,33 +589,28 @@ function F (A : My_Array) return Boolean
(compilation_unit (compilation_unit
(expression_function_declaration (expression_function_declaration
(function_specification (function_specification
(name (identifier)
(identifier))
(parameter_and_result_profile (parameter_and_result_profile
(formal_part (formal_part
(parameter_specification_list (parameter_specification_list
(parameter_specification (parameter_specification
(defining_identifier_list (defining_identifier_list
(identifier)) (identifier))
(name (identifier))))
(identifier)))))
(result_profile (result_profile
(name (identifier))))
(identifier)))))
(quantified_expression (quantified_expression
(quantifier) (quantifier)
(iterator_specification (iterator_specification
(identifier) (identifier)
(name (identifier))
(identifier)))
(expression (expression
(relation (relation
(simple_expression (simple_expression
(term (term
(factor (factor
(primary (primary
(name (identifier)))))
(identifier))))))
(relational_operator) (relational_operator)
(simple_expression (simple_expression
(term (term
@ -702,8 +636,7 @@ end "<";
(overriding_indicator) (overriding_indicator)
(subprogram_specification (subprogram_specification
(function_specification (function_specification
(name (string_literal)
(string_literal))
(parameter_and_result_profile (parameter_and_result_profile
(formal_part (formal_part
(parameter_specification_list (parameter_specification_list
@ -711,11 +644,9 @@ end "<";
(defining_identifier_list (defining_identifier_list
(identifier) (identifier)
(identifier)) (identifier))
(name (identifier))))
(identifier)))))
(result_profile (result_profile
(name (identifier)))))
(identifier))))))
(handled_sequence_of_statements (handled_sequence_of_statements
(sequence_of_statements (sequence_of_statements
(statement (statement
@ -727,6 +658,5 @@ end "<";
(term (term
(factor (factor
(primary (primary
(name (identifier))))))))))))
(identifier)))))))))))))
(string_literal))))) (string_literal)))))

View File

@ -36,8 +36,7 @@ end P;
(compilation_unit (compilation_unit
(proper_body (proper_body
(package_body (package_body
(name (identifier)
(identifier))
(non_empty_declarative_part (non_empty_declarative_part
(declarative_item_pragma (declarative_item_pragma
(object_declaration (object_declaration
@ -52,8 +51,7 @@ end P;
(parameter_specification (parameter_specification
(defining_identifier_list (defining_identifier_list
(identifier)) (identifier))
(name (identifier))))))
(identifier)))))))
(task_item (task_item
(entry_declaration (entry_declaration
(identifier))) (identifier)))
@ -68,8 +66,7 @@ end P;
(defining_identifier_list (defining_identifier_list
(identifier)) (identifier))
(subtype_indication (subtype_indication
(name (identifier)))))
(identifier))))))
(handled_sequence_of_statements (handled_sequence_of_statements
(sequence_of_statements (sequence_of_statements
(statement (statement
@ -81,8 +78,7 @@ end P;
(parameter_specification (parameter_specification
(defining_identifier_list (defining_identifier_list
(identifier)) (identifier))
(name (identifier))))
(identifier)))))
(handled_sequence_of_statements (handled_sequence_of_statements
(sequence_of_statements (sequence_of_statements
(statement (statement
@ -95,8 +91,7 @@ end P;
(timed_entry_call (timed_entry_call
(entry_call_alternative (entry_call_alternative
(procedure_call_statement (procedure_call_statement
(name (identifier)
(identifier))
(actual_parameter_part (actual_parameter_part
(parameter_association (parameter_association
(expression (expression
@ -122,8 +117,7 @@ end P;
(conditional_entry_call (conditional_entry_call
(entry_call_alternative (entry_call_alternative
(procedure_call_statement (procedure_call_statement
(name (identifier)
(identifier))
(actual_parameter_part (actual_parameter_part
(parameter_association (parameter_association
(expression (expression
@ -138,8 +132,7 @@ end P;
(simple_statement (simple_statement
(null_statement)))))))))) (null_statement))))))))))
(identifier))))) (identifier)))))
(name (identifier)))))
(identifier))))))
================================================================================ ================================================================================
Task types Task types
@ -161,8 +154,7 @@ end;
(compilation_unit (compilation_unit
(proper_body (proper_body
(package_body (package_body
(name (identifier)
(identifier))
(non_empty_declarative_part (non_empty_declarative_part
(declarative_item_pragma (declarative_item_pragma
(type_declaration (type_declaration
@ -183,17 +175,14 @@ end;
(parameter_specification (parameter_specification
(defining_identifier_list (defining_identifier_list
(identifier)) (identifier))
(name (identifier))))))
(identifier)))))))
(identifier)))))) (identifier))))))
(declarative_item_pragma (declarative_item_pragma
(type_declaration (type_declaration
(full_type_declaration (full_type_declaration
(task_type_declaration (task_type_declaration
(identifier) (identifier)
(interface_list (identifier)
(name
(identifier)))
(task_definition (task_definition
(task_item (task_item
(entry_declaration (entry_declaration
@ -225,8 +214,7 @@ end;
(compilation_unit (compilation_unit
(proper_body (proper_body
(package_body (package_body
(name (identifier)
(identifier))
(non_empty_declarative_part (non_empty_declarative_part
(declarative_item_pragma (declarative_item_pragma
(proper_body (proper_body
@ -240,10 +228,8 @@ end;
(asynchronous_select (asynchronous_select
(triggering_alternative (triggering_alternative
(procedure_call_statement (procedure_call_statement
(name
(function_call (function_call
(name (identifier)
(identifier))
(actual_parameter_part (actual_parameter_part
(parameter_association (parameter_association
(expression (expression
@ -252,7 +238,7 @@ end;
(term (term
(factor (factor
(primary (primary
(numeric_literal)))))))))))) (numeric_literal)))))))))))
(sequence_of_statements (sequence_of_statements
(statement (statement
(simple_statement (simple_statement
@ -261,8 +247,7 @@ end;
(statement (statement
(simple_statement (simple_statement
(procedure_call_statement (procedure_call_statement
(name (identifier))))))))))))))))))
(identifier)))))))))))))))))))
(compilation_unit (compilation_unit
(statement (statement
(simple_statement (simple_statement
@ -271,11 +256,9 @@ end;
(statement (statement
(simple_statement (simple_statement
(procedure_call_statement (procedure_call_statement
(name (identifier)))))
(identifier))))))
(compilation_unit (compilation_unit
(statement (statement
(simple_statement (simple_statement
(procedure_call_statement (procedure_call_statement
(name (identifier))))))
(identifier)))))))

View File

@ -11,8 +11,7 @@ end P;
(compilation (compilation
(compilation_unit (compilation_unit
(package_specification (package_specification
(name (identifier)
(identifier))
(type_declaration (type_declaration
(full_type_declaration (full_type_declaration
(identifier) (identifier)
@ -29,8 +28,7 @@ end P;
(factor (factor
(primary (primary
(numeric_literal)))))))))) (numeric_literal))))))))))
(name (identifier))))
(identifier)))))
================================================================================ ================================================================================
Derived type Derived type
@ -46,16 +44,14 @@ end P;
(compilation (compilation
(compilation_unit (compilation_unit
(package_specification (package_specification
(name (identifier)
(identifier))
(type_declaration (type_declaration
(full_type_declaration (full_type_declaration
(identifier) (identifier)
(type_definition (type_definition
(derived_type_definition (derived_type_definition
(subtype_indication (subtype_indication
(name (identifier))))
(identifier)))))
(aspect_specification (aspect_specification
(aspect_mark_list (aspect_mark_list
(aspect_association (aspect_association
@ -69,8 +65,7 @@ end P;
(factor (factor
(primary (primary
(numeric_literal))))))))))))) (numeric_literal)))))))))))))
(name (identifier))))
(identifier)))))
================================================================================ ================================================================================
Modular types Modular types
@ -85,8 +80,7 @@ end P;
(compilation (compilation
(compilation_unit (compilation_unit
(package_specification (package_specification
(name (identifier)
(identifier))
(type_declaration (type_declaration
(full_type_declaration (full_type_declaration
(identifier) (identifier)
@ -100,8 +94,7 @@ end P;
(factor (factor
(primary (primary
(numeric_literal)))))))))))) (numeric_literal))))))))))))
(name (identifier))))
(identifier)))))
================================================================================ ================================================================================
Floats Floats
@ -118,16 +111,14 @@ end P;
(compilation (compilation
(compilation_unit (compilation_unit
(package_specification (package_specification
(name (identifier)
(identifier))
(type_declaration (type_declaration
(full_type_declaration (full_type_declaration
(identifier) (identifier)
(type_definition (type_definition
(derived_type_definition (derived_type_definition
(subtype_indication (subtype_indication
(name (identifier)
(identifier))
(constraint (constraint
(scalar_constraint (scalar_constraint
(range_constraint (range_constraint
@ -188,8 +179,7 @@ end P;
(factor (factor
(primary (primary
(numeric_literal)))))))))))) (numeric_literal))))))))))))
(name (identifier))))
(identifier)))))
================================================================================ ================================================================================
Enumerations Enumerations
@ -205,8 +195,7 @@ end P;
(compilation (compilation
(compilation_unit (compilation_unit
(package_specification (package_specification
(name (identifier)
(identifier))
(type_declaration (type_declaration
(full_type_declaration (full_type_declaration
(identifier) (identifier)
@ -216,8 +205,7 @@ end P;
(identifier))))) (identifier)))))
(aspect_clause (aspect_clause
(enumeration_representation_clause (enumeration_representation_clause
(name (identifier)
(identifier))
(enumeration_aggregate (enumeration_aggregate
(array_aggregate (array_aggregate
(named_array_aggregate (named_array_aggregate
@ -230,8 +218,7 @@ end P;
(term (term
(factor (factor
(primary (primary
(name (identifier)))))))))
(identifier))))))))))
(expression (expression
(relation (relation
(simple_expression (simple_expression
@ -248,9 +235,7 @@ end P;
(term (term
(factor (factor
(primary (primary
(name (identifier)))))))))
(identifier))))))))))
(expression (expression
(relation (relation
(simple_expression (simple_expression
@ -258,8 +243,7 @@ end P;
(factor (factor
(primary (primary
(numeric_literal))))))))))))) (numeric_literal)))))))))))))
(name (identifier))))
(identifier)))))
================================================================================ ================================================================================
Subtypes Subtypes
@ -275,13 +259,11 @@ end P;
(compilation (compilation
(compilation_unit (compilation_unit
(package_specification (package_specification
(name (identifier)
(identifier))
(subtype_declaration (subtype_declaration
(identifier) (identifier)
(subtype_indication (subtype_indication
(name (identifier)
(identifier))
(constraint (constraint
(scalar_constraint (scalar_constraint
(range_constraint (range_constraint
@ -299,8 +281,7 @@ end P;
(subtype_declaration (subtype_declaration
(identifier) (identifier)
(subtype_indication (subtype_indication
(name (identifier)
(identifier))
(constraint (constraint
(index_constraint (index_constraint
(discrete_range (discrete_range
@ -327,5 +308,4 @@ end P;
(factor (factor
(primary (primary
(numeric_literal))))))))))) (numeric_literal)))))))))))
(name (identifier))))
(identifier)))))