Various inlining of rules to simplify tree
This commit is contained in:
parent
de1a5f3038
commit
a41588c541
318
grammar.js
318
grammar.js
|
|
@ -48,11 +48,11 @@ module.exports = grammar({
|
|||
|
||||
// "'for' identifier * 'use'" could also be "'for' name * 'use'" as
|
||||
// specified in at_clause.
|
||||
[$.at_clause, $.name],
|
||||
[$.at_clause, $._name],
|
||||
|
||||
// 'case' '(' identifier . '=>' ...
|
||||
// ??? Invalid Ada
|
||||
[$.name, $.component_choice_list],
|
||||
[$._name, $.component_choice_list],
|
||||
|
||||
// 'case' '(' expression . ',' ...
|
||||
[$.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,
|
||||
$.loop_label, $.exception_renaming_declaration],
|
||||
[$.defining_identifier_list, $.name],
|
||||
[$.defining_identifier_list, $._name],
|
||||
|
||||
// 'generic' . 'package' ...
|
||||
[$.generic_formal_part, $.generic_renaming_declaration],
|
||||
|
|
@ -96,16 +96,20 @@ module.exports = grammar({
|
|||
|
||||
// subprogram_specification 'is' 'begin'
|
||||
// handled_sequence_of_statements 'end' string_literal . ';'
|
||||
[$.name, $.subprogram_body],
|
||||
[$._name, $.subprogram_body],
|
||||
|
||||
[$.function_call, $.procedure_call_statement],
|
||||
[$.function_call, $.name],
|
||||
[$.function_call, $._name],
|
||||
[$.formal_derived_type_definition],
|
||||
[$.name, $.aspect_mark],
|
||||
[$.name, $.attribute_reference, $.qualified_expression],
|
||||
[$.name, $.package_body_stub],
|
||||
[$._name, $.aspect_mark],
|
||||
[$._name, $.attribute_reference, $.qualified_expression],
|
||||
[$._name, $.package_body_stub],
|
||||
|
||||
],
|
||||
inline: $ => [
|
||||
// To avoid conflicts
|
||||
$.selected_component,
|
||||
],
|
||||
|
||||
rules: {
|
||||
compilation: $ => repeat(
|
||||
|
|
@ -127,34 +131,34 @@ module.exports = grammar({
|
|||
binary_adding_operator: $ => choice('+', '-', '&'),
|
||||
unary_adding_operator: $ => choice('+', '-'),
|
||||
multiplying_operator: $ => choice('*', '/', 'mod', 'rem'),
|
||||
tick: $ => choice(
|
||||
'\'', // But is not the start of a character_literal
|
||||
),
|
||||
tick: $ => '\'', // But is not the start of a character_literal
|
||||
|
||||
name: $ => choice(
|
||||
seq( // inline selected_component from ada-mode
|
||||
$.identifier,
|
||||
optional(seq(
|
||||
'.',
|
||||
$.name,
|
||||
)),
|
||||
),
|
||||
_name: $ => choice( // RM 4.1
|
||||
$.identifier,
|
||||
$.selected_component, // rule is inlined above
|
||||
$.attribute_reference,
|
||||
$.function_call,
|
||||
$.qualified_expression,
|
||||
'@',
|
||||
//$.explicit_dereference, // covered by the first rule above
|
||||
$.target_name,
|
||||
// $.explicit_dereference, // covered by $.selected_component
|
||||
$.character_literal,
|
||||
$.string_literal, // name of an operator. However, in a
|
||||
// number of places using a string doesn't
|
||||
// make sense.
|
||||
$.string_literal, // name of an operator. However, in a number of
|
||||
// places using a string doesn't 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),
|
||||
|
||||
attribute_reference: $ => choice(
|
||||
seq(
|
||||
$.name,
|
||||
$._name,
|
||||
$.tick,
|
||||
$.attribute_designator,
|
||||
),
|
||||
|
|
@ -172,7 +176,7 @@ module.exports = grammar({
|
|||
')',
|
||||
),
|
||||
reduction_specification: $ => seq(
|
||||
$.name,
|
||||
$._name,
|
||||
',',
|
||||
$.expression,
|
||||
),
|
||||
|
|
@ -240,7 +244,7 @@ module.exports = grammar({
|
|||
reservedWord('of'),
|
||||
),
|
||||
optional(reservedWord('reverse')),
|
||||
$.name,
|
||||
field('iterator_name', $._name),
|
||||
optional($.iterator_filter),
|
||||
),
|
||||
attribute_designator: $ => choice(
|
||||
|
|
@ -250,12 +254,12 @@ module.exports = grammar({
|
|||
reservedWord('digits'),
|
||||
reservedWord('mod'),
|
||||
),
|
||||
function_call: $ => seq(
|
||||
$.name,
|
||||
function_call: $ => seq( // ARM 6.4
|
||||
field('function_name', $._name),
|
||||
$.actual_parameter_part,
|
||||
),
|
||||
qualified_expression: $ => seq( // ARM 4.7
|
||||
$.name,
|
||||
field('subtype_name', $._name),
|
||||
$.tick,
|
||||
choice(
|
||||
seq('(', $.expression, ')'),
|
||||
|
|
@ -302,7 +306,7 @@ module.exports = grammar({
|
|||
),
|
||||
package_specification: $ => seq(
|
||||
reservedWord('package'),
|
||||
field('name', $.name),
|
||||
field('name', $._name),
|
||||
optional($.aspect_specification),
|
||||
reservedWord('is'),
|
||||
repeat($._basic_declarative_item_pragma),
|
||||
|
|
@ -311,28 +315,28 @@ module.exports = grammar({
|
|||
repeat($._basic_declarative_item_pragma),
|
||||
)),
|
||||
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_private', optional(reservedWord('private'))),
|
||||
reservedWord('with'),
|
||||
field('names', $.name_list),
|
||||
$._name_list,
|
||||
';',
|
||||
),
|
||||
use_clause: $ => seq(
|
||||
use_clause: $ => seq( // ARM 8.4
|
||||
reservedWord('use'),
|
||||
optional(seq(
|
||||
field('is_all', optional(reservedWord('all'))),
|
||||
field('is_type', reservedWord('type')),
|
||||
)),
|
||||
$.name_list,
|
||||
$._name_list,
|
||||
';',
|
||||
),
|
||||
subunit: $ => seq( // 10.1.3
|
||||
reservedWord('separate'),
|
||||
'(',
|
||||
field('parent_unit_name', $.name),
|
||||
field('parent_unit_name', $._name),
|
||||
')',
|
||||
$.proper_body,
|
||||
),
|
||||
|
|
@ -342,7 +346,7 @@ module.exports = grammar({
|
|||
$.task_body,
|
||||
$.protected_body,
|
||||
),
|
||||
subprogram_body: $ => seq(
|
||||
subprogram_body: $ => seq( // ARM 6.3
|
||||
optional($.overriding_indicator),
|
||||
$.subprogram_specification,
|
||||
optional($.aspect_specification),
|
||||
|
|
@ -351,16 +355,13 @@ module.exports = grammar({
|
|||
reservedWord('begin'),
|
||||
$.handled_sequence_of_statements,
|
||||
reservedWord('end'),
|
||||
optional(choice(
|
||||
$.name,
|
||||
$.string_literal, // for operators
|
||||
)),
|
||||
optional(field('endname', $._name)),
|
||||
';'
|
||||
),
|
||||
package_body: $ => seq(
|
||||
reservedWord('package'),
|
||||
reservedWord('body'),
|
||||
field('name', $.name),
|
||||
field('name', $._name),
|
||||
optional($.aspect_specification),
|
||||
reservedWord('is'),
|
||||
optional($.non_empty_declarative_part),
|
||||
|
|
@ -369,12 +370,12 @@ module.exports = grammar({
|
|||
$.handled_sequence_of_statements,
|
||||
)),
|
||||
reservedWord('end'),
|
||||
optional($.name),
|
||||
optional(field('endname', $._name)),
|
||||
';',
|
||||
),
|
||||
subtype_indication: $ => seq( // ARM 3.2.2
|
||||
optional($.null_exclusion),
|
||||
field('subtype_mark', $.name),
|
||||
field('subtype_mark', $._name),
|
||||
optional($.constraint),
|
||||
),
|
||||
constraint: $ => choice(
|
||||
|
|
@ -386,9 +387,9 @@ module.exports = grammar({
|
|||
$.digits_constraint,
|
||||
$.delta_constraint,
|
||||
),
|
||||
range_g: $ => choice(
|
||||
field('range_attribute_reference', seq(
|
||||
$.name,
|
||||
range_g: $ => choice( // ARM 3.5
|
||||
field('range_attribute_reference', seq( // ARM 4.1.4
|
||||
field('prefix', $._name),
|
||||
$.tick,
|
||||
$.range_attribute_designator,
|
||||
)),
|
||||
|
|
@ -433,9 +434,9 @@ module.exports = grammar({
|
|||
),
|
||||
$.raise_expression, // Added Ada 20x
|
||||
),
|
||||
raise_expression: $ => prec.right(1, seq(
|
||||
raise_expression: $ => prec.right(1, seq( // ARM 11.3
|
||||
reservedWord('raise'),
|
||||
$.name,
|
||||
field('exception_name', $._name),
|
||||
optional(seq(
|
||||
reservedWord('with'),
|
||||
$.simple_expression,
|
||||
|
|
@ -501,7 +502,7 @@ module.exports = grammar({
|
|||
reservedWord('null'),
|
||||
$.string_literal, // ada-mode puts this in name instead
|
||||
$.aggregate,
|
||||
$.name,
|
||||
field('name', $._name),
|
||||
$.allocator,
|
||||
$._parenthesized_expression,
|
||||
)),
|
||||
|
|
@ -512,12 +513,12 @@ module.exports = grammar({
|
|||
),
|
||||
subtype_indication_paren_constraint: $ => seq(
|
||||
optional($.null_exclusion),
|
||||
$.name,
|
||||
$._name,
|
||||
optional($.index_constraint),
|
||||
),
|
||||
subpool_specification: $ => seq(
|
||||
'(',
|
||||
$.name,
|
||||
field('subpool_handle_name', $._name),
|
||||
')',
|
||||
),
|
||||
access_type_definition: $ => seq(
|
||||
|
|
@ -550,13 +551,13 @@ module.exports = grammar({
|
|||
$.parameter_and_result_profile,
|
||||
),
|
||||
),
|
||||
access_definition: $ => seq(
|
||||
access_definition: $ => seq( // ARM 3.10
|
||||
optional($.null_exclusion),
|
||||
reservedWord('access'),
|
||||
choice(
|
||||
seq(
|
||||
optional(reservedWord('constant')),
|
||||
$.name,
|
||||
field('subtype_mark', $._name),
|
||||
),
|
||||
seq(
|
||||
optional(reservedWord('protected')),
|
||||
|
|
@ -576,7 +577,7 @@ module.exports = grammar({
|
|||
comma_separated_list_of($.parameter_association),
|
||||
|
||||
// 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
|
||||
// ????
|
||||
$.conditional_expression,
|
||||
|
|
@ -794,7 +795,7 @@ module.exports = grammar({
|
|||
$.subtype_indication,
|
||||
optional(seq(
|
||||
reservedWord('and'),
|
||||
$.interface_list,
|
||||
$._interface_list,
|
||||
)),
|
||||
reservedWord('with'),
|
||||
reservedWord('private'),
|
||||
|
|
@ -827,13 +828,13 @@ module.exports = grammar({
|
|||
),
|
||||
discriminant_specification_list: $ =>
|
||||
prec.right(list_of(';', $.discriminant_specification)),
|
||||
discriminant_specification: $ => seq(
|
||||
discriminant_specification: $ => seq( // ARM 3.7
|
||||
$.defining_identifier_list,
|
||||
':',
|
||||
choice(
|
||||
seq(
|
||||
optional($.null_exclusion),
|
||||
$.name,
|
||||
field('subtype_mark', $._name),
|
||||
),
|
||||
$.access_definition,
|
||||
),
|
||||
|
|
@ -881,8 +882,8 @@ module.exports = grammar({
|
|||
),
|
||||
_index_subtype_definition_list: $ =>
|
||||
comma_separated_list_of($.index_subtype_definition),
|
||||
index_subtype_definition: $ => seq(
|
||||
$.name,
|
||||
index_subtype_definition: $ => seq( // ARM 3.6
|
||||
field('subtype_mark', $._name),
|
||||
reservedWord('range'),
|
||||
'<>',
|
||||
),
|
||||
|
|
@ -950,7 +951,7 @@ module.exports = grammar({
|
|||
optional(seq(
|
||||
optional(seq(
|
||||
reservedWord('and'),
|
||||
$.interface_list,
|
||||
$._interface_list,
|
||||
)),
|
||||
$.record_extension_part,
|
||||
)),
|
||||
|
|
@ -965,11 +966,11 @@ module.exports = grammar({
|
|||
reservedWord('interface'),
|
||||
optional(seq(
|
||||
reservedWord('and'),
|
||||
$.interface_list,
|
||||
$._interface_list,
|
||||
)),
|
||||
),
|
||||
interface_list: $ =>
|
||||
list_of(reservedWord('and'), $.name),
|
||||
_interface_list: $ =>
|
||||
list_of(reservedWord('and'), $._name),
|
||||
record_extension_part: $ => seq(
|
||||
reservedWord('with'), // record_extension_part in Ada grammar
|
||||
$.record_definition,
|
||||
|
|
@ -1134,9 +1135,9 @@ module.exports = grammar({
|
|||
$.expression,
|
||||
';',
|
||||
),
|
||||
attribute_definition_clause: $ => seq(
|
||||
attribute_definition_clause: $ => seq( // ARM 13.3
|
||||
reservedWord('for'),
|
||||
$.name,
|
||||
field('local_name', $._name),
|
||||
$.tick,
|
||||
$.attribute_designator,
|
||||
reservedWord('use'),
|
||||
|
|
@ -1224,7 +1225,7 @@ module.exports = grammar({
|
|||
reservedWord('is'),
|
||||
optional(seq(
|
||||
reservedWord('new'),
|
||||
$.interface_list,
|
||||
$._interface_list,
|
||||
reservedWord('with'),
|
||||
)),
|
||||
$.protected_definition,
|
||||
|
|
@ -1237,7 +1238,7 @@ module.exports = grammar({
|
|||
reservedWord('is'),
|
||||
optional(seq(
|
||||
reservedWord('new'),
|
||||
$.interface_list,
|
||||
$._interface_list,
|
||||
reservedWord('with'),
|
||||
)),
|
||||
$.protected_definition,
|
||||
|
|
@ -1264,8 +1265,8 @@ module.exports = grammar({
|
|||
';',
|
||||
),
|
||||
choice_parameter_specification: $ => $.identifier, // ??? inline
|
||||
component_clause: $ => seq(
|
||||
$.name,
|
||||
component_clause: $ => seq( // ARM 13.5.1
|
||||
field('local_name', $._name),
|
||||
reservedWord('at'),
|
||||
field('position', $.expression),
|
||||
reservedWord('range'),
|
||||
|
|
@ -1319,16 +1320,16 @@ module.exports = grammar({
|
|||
$.discrete_subtype_definition,
|
||||
),
|
||||
enumeration_aggregate: $ => $.array_aggregate, // ??? inline ARM 13.4
|
||||
enumeration_representation_clause: $ => seq(
|
||||
enumeration_representation_clause: $ => seq( // ARM 13.4
|
||||
reservedWord('for'),
|
||||
$.name,
|
||||
field('local_name', $._name),
|
||||
reservedWord('use'),
|
||||
$.enumeration_aggregate,
|
||||
';',
|
||||
),
|
||||
exception_choice_list: $ => list_of('|', $.exception_choice),
|
||||
exception_choice: $ => choice(
|
||||
$.name,
|
||||
exception_choice: $ => choice( // ARM 11.2
|
||||
field('exception_name', $._name),
|
||||
reservedWord('others'),
|
||||
),
|
||||
exception_declaration: $ => seq(
|
||||
|
|
@ -1359,7 +1360,7 @@ module.exports = grammar({
|
|||
),
|
||||
function_specification: $ => seq(
|
||||
reservedWord('function'),
|
||||
$.name,
|
||||
field('name', $._name),
|
||||
$.parameter_and_result_profile,
|
||||
),
|
||||
generic_declaration: $ => choice(
|
||||
|
|
@ -1389,39 +1390,39 @@ module.exports = grammar({
|
|||
$.package_specification,
|
||||
';',
|
||||
),
|
||||
generic_instantiation: $ => seq(
|
||||
generic_instantiation: $ => seq( // ARM 12.3
|
||||
choice(
|
||||
seq(
|
||||
reservedWord('package'),
|
||||
$.name,
|
||||
field('name', $._name),
|
||||
),
|
||||
seq(
|
||||
optional($.overriding_indicator),
|
||||
choice(
|
||||
seq(
|
||||
reservedWord('procedure'),
|
||||
$.name,
|
||||
field('name', $._name),
|
||||
),
|
||||
seq(
|
||||
reservedWord('function'),
|
||||
$.name,
|
||||
field('name', $._name),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
reservedWord('is'),
|
||||
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),
|
||||
';',
|
||||
),
|
||||
formal_object_declaration: $ => choice(
|
||||
formal_object_declaration: $ => choice( // ARM 12.4
|
||||
seq(
|
||||
$.defining_identifier_list,
|
||||
':',
|
||||
optional($.non_empty_mode),
|
||||
optional($.null_exclusion),
|
||||
$.name,
|
||||
field('subtype_mark', $._name),
|
||||
optional($.assign_value),
|
||||
optional($.aspect_specification),
|
||||
';',
|
||||
|
|
@ -1440,7 +1441,7 @@ module.exports = grammar({
|
|||
$.formal_complete_type_declaration,
|
||||
$.formal_incomplete_type_declaration,
|
||||
),
|
||||
formal_complete_type_declaration: $ => seq(
|
||||
formal_complete_type_declaration: $ => seq( // ARM 12.5
|
||||
reservedWord('type'),
|
||||
$.identifier,
|
||||
optional($.discriminant_part),
|
||||
|
|
@ -1449,7 +1450,7 @@ module.exports = grammar({
|
|||
optional(seq(
|
||||
reservedWord('or'),
|
||||
reservedWord('use'),
|
||||
$.name,
|
||||
field('default_subtype_mark', $._name),
|
||||
)),
|
||||
optional($.aspect_specification),
|
||||
';',
|
||||
|
|
@ -1465,7 +1466,7 @@ module.exports = grammar({
|
|||
optional(seq(
|
||||
reservedWord('or'),
|
||||
reservedWord('use'),
|
||||
$.name,
|
||||
field('default_subtype_mark', $._name),
|
||||
)),
|
||||
';',
|
||||
),
|
||||
|
|
@ -1490,18 +1491,18 @@ module.exports = grammar({
|
|||
optional(reservedWord('limited')),
|
||||
reservedWord('private'),
|
||||
),
|
||||
formal_derived_type_definition: $ => seq(
|
||||
formal_derived_type_definition: $ => seq( // ARM 12.5.1
|
||||
optional(reservedWord('abstract')),
|
||||
optional(choice(
|
||||
reservedWord('limited'),
|
||||
reservedWord('synchronized'),
|
||||
)),
|
||||
reservedWord('new'),
|
||||
$.name,
|
||||
field('subtype_mark', $._name),
|
||||
optional(seq(
|
||||
optional(seq(
|
||||
reservedWord('and'),
|
||||
$.interface_list,
|
||||
$._interface_list,
|
||||
)),
|
||||
reservedWord('with'),
|
||||
reservedWord('private'),
|
||||
|
|
@ -1561,17 +1562,17 @@ module.exports = grammar({
|
|||
';',
|
||||
),
|
||||
subprogram_default: $ => choice(
|
||||
field('default_name', $.name),
|
||||
field('default_name', $._name),
|
||||
'<>',
|
||||
reservedWord('null'),
|
||||
),
|
||||
formal_package_declaration: $ => seq(
|
||||
formal_package_declaration: $ => seq( // ARM 12.7
|
||||
reservedWord('with'),
|
||||
reservedWord('package'),
|
||||
$.identifier,
|
||||
reservedWord('is'),
|
||||
reservedWord('new'),
|
||||
$.name,
|
||||
field('generic_package_name', $._name),
|
||||
optional($.aspect_specification),
|
||||
';',
|
||||
),
|
||||
|
|
@ -1579,46 +1580,44 @@ module.exports = grammar({
|
|||
'null',
|
||||
'all',
|
||||
),
|
||||
extended_global_aspect_definition: $ => choice(
|
||||
seq(
|
||||
reservedWord('use'),
|
||||
field('formal_parameter_designator', choice(
|
||||
$.formal_group_designator,
|
||||
$.name,
|
||||
)),
|
||||
),
|
||||
seq(
|
||||
reservedWord('do'),
|
||||
$.dispatching_operation_specifier,
|
||||
),
|
||||
),
|
||||
disaptching_operation_set: $ =>
|
||||
comma_separated_list_of($.dispatching_operation_specifier),
|
||||
dispatching_operation_specifier: $ => seq(
|
||||
$.name,
|
||||
'(',
|
||||
$.name,
|
||||
')',
|
||||
),
|
||||
// extended_global_aspect_definition: $ => choice(
|
||||
// seq(
|
||||
// reservedWord('use'),
|
||||
// field('formal_parameter_designator', choice(
|
||||
// $.formal_group_designator,
|
||||
// field('name', $._name),
|
||||
// )),
|
||||
// ),
|
||||
// seq(
|
||||
// reservedWord('do'),
|
||||
// $.dispatching_operation_specifier,
|
||||
// ),
|
||||
// ),
|
||||
// dispatching_operation_specifier: $ => seq(
|
||||
// $._name,
|
||||
// '(',
|
||||
// $._name,
|
||||
// ')',
|
||||
// ),
|
||||
extended_global_aspect_element: $ => choice(
|
||||
seq(
|
||||
reservedWord('use'),
|
||||
field('formal_parameter_set', choice(
|
||||
$.formal_group_designator,
|
||||
comma_separated_list_of($.name),
|
||||
comma_separated_list_of($._name),
|
||||
)),
|
||||
),
|
||||
seq(
|
||||
reservedWord('do'),
|
||||
comma_separated_list_of($.dispatching_operation_specifier),
|
||||
),
|
||||
// seq(
|
||||
// reservedWord('do'),
|
||||
// comma_separated_list_of($.dispatching_operation_specifier),
|
||||
// ),
|
||||
),
|
||||
global_aspect_definition: $ => choice(
|
||||
global_aspect_definition: $ => choice( // ARM 6.1.2
|
||||
seq(
|
||||
$.global_mode,
|
||||
// $.global_designator,
|
||||
),
|
||||
$.extended_global_aspect_definition,
|
||||
// $.extended_global_aspect_definition,
|
||||
seq(
|
||||
'(',
|
||||
comma_separated_list_of($.global_aspect_element),
|
||||
|
|
@ -1628,17 +1627,14 @@ module.exports = grammar({
|
|||
global_aspect_element: $ => choice(
|
||||
seq(
|
||||
$.global_mode,
|
||||
$.global_set,
|
||||
field('global_set', $._name_list),
|
||||
),
|
||||
$.extended_global_aspect_definition,
|
||||
// $.extended_global_aspect_definition,
|
||||
),
|
||||
global_mode: $ => choice(
|
||||
$.non_empty_mode,
|
||||
reservedWord('overriding'),
|
||||
),
|
||||
global_set: $ => prec.left(
|
||||
comma_separated_list_of($.name), // ??? name_list
|
||||
),
|
||||
handled_sequence_of_statements: $ => seq(
|
||||
$.sequence_of_statements,
|
||||
optional(seq(
|
||||
|
|
@ -1714,7 +1710,7 @@ module.exports = grammar({
|
|||
reservedWord('is'),
|
||||
optional(seq(
|
||||
reservedWord('new'),
|
||||
$.interface_list,
|
||||
$._interface_list,
|
||||
reservedWord('with'),
|
||||
)),
|
||||
$.task_definition,
|
||||
|
|
@ -1731,7 +1727,7 @@ module.exports = grammar({
|
|||
reservedWord('is'),
|
||||
optional(seq(
|
||||
reservedWord('new'),
|
||||
$.interface_list,
|
||||
$._interface_list,
|
||||
reservedWord('with'),
|
||||
)),
|
||||
$.task_definition,
|
||||
|
|
@ -1782,13 +1778,13 @@ module.exports = grammar({
|
|||
optional($.formal_part),
|
||||
$.result_profile,
|
||||
),
|
||||
parameter_specification: $ => seq(
|
||||
parameter_specification: $ => seq( // ARM 6.1
|
||||
$.defining_identifier_list,
|
||||
':',
|
||||
optional(reservedWord('aliased')),
|
||||
optional($.non_empty_mode),
|
||||
optional($.null_exclusion),
|
||||
$.name,
|
||||
field('subtype_mark', $._name),
|
||||
optional($.assign_value),
|
||||
),
|
||||
parameter_specification_list: $ => list_of(
|
||||
|
|
@ -1834,19 +1830,19 @@ module.exports = grammar({
|
|||
),
|
||||
procedure_specification: $ => seq(
|
||||
reservedWord('procedure'),
|
||||
$.name,
|
||||
field('name', $._name),
|
||||
optional($.non_empty_parameter_profile),
|
||||
),
|
||||
record_representation_clause: $ => prec.left(seq(
|
||||
record_representation_clause: $ => prec.left(seq( // ARM 13.5.1
|
||||
reservedWord('for'),
|
||||
$.name,
|
||||
field('local_name', $._name),
|
||||
reservedWord('use'),
|
||||
reservedWord('record'),
|
||||
optional($.mod_clause),
|
||||
repeat($.component_clause),
|
||||
reservedWord('end'),
|
||||
reservedWord('record'),
|
||||
optional($.name),
|
||||
optional(field('end_local_name', $._name)),
|
||||
';',
|
||||
)),
|
||||
renaming_declaration: $ => choice(
|
||||
|
|
@ -1856,16 +1852,16 @@ module.exports = grammar({
|
|||
$.subprogram_renaming_declaration,
|
||||
$.generic_renaming_declaration,
|
||||
),
|
||||
object_renaming_declaration: $ => choice(
|
||||
object_renaming_declaration: $ => choice( // ARM 8.5.1
|
||||
seq(
|
||||
$.identifier,
|
||||
optional(seq(
|
||||
':',
|
||||
optional($.null_exclusion),
|
||||
$.name,
|
||||
field('subtype_mark', $._name),
|
||||
)),
|
||||
reservedWord('renames'),
|
||||
$.name,
|
||||
field('object_name', $._name),
|
||||
optional($.aspect_specification),
|
||||
';',
|
||||
),
|
||||
|
|
@ -1874,25 +1870,25 @@ module.exports = grammar({
|
|||
':',
|
||||
$.access_definition,
|
||||
reservedWord('renames'),
|
||||
$.name,
|
||||
field('object_name', $._name),
|
||||
optional($.aspect_specification),
|
||||
';',
|
||||
),
|
||||
),
|
||||
exception_renaming_declaration: $ => seq(
|
||||
exception_renaming_declaration: $ => seq( // ARM 8.5.2
|
||||
$.identifier,
|
||||
':',
|
||||
reservedWord('exception'),
|
||||
reservedWord('renames'),
|
||||
$.name,
|
||||
field('exception_name', $._name),
|
||||
optional($.aspect_specification),
|
||||
';',
|
||||
),
|
||||
package_renaming_declaration: $ => seq(
|
||||
reservedWord('package'),
|
||||
$.name,
|
||||
field('name', $._name),
|
||||
reservedWord('renames'),
|
||||
$.name,
|
||||
field('package_name', $._name),
|
||||
optional($.aspect_specification),
|
||||
';',
|
||||
),
|
||||
|
|
@ -1900,7 +1896,7 @@ module.exports = grammar({
|
|||
optional($.overriding_indicator),
|
||||
$.subprogram_specification,
|
||||
reservedWord('renames'),
|
||||
$.name,
|
||||
field('callable_entity_name', $._name),
|
||||
optional($.aspect_specification),
|
||||
';',
|
||||
),
|
||||
|
|
@ -1908,27 +1904,27 @@ module.exports = grammar({
|
|||
seq(
|
||||
reservedWord('generic'),
|
||||
reservedWord('package'),
|
||||
$.name,
|
||||
field('defining_program_unit_name', $._name),
|
||||
reservedWord('renames'),
|
||||
$.name,
|
||||
field('generic_package_name', $._name),
|
||||
optional($.aspect_specification),
|
||||
';',
|
||||
),
|
||||
seq(
|
||||
reservedWord('generic'),
|
||||
reservedWord('procedure'),
|
||||
$.name,
|
||||
field('defining_program_unit_name', $._name),
|
||||
reservedWord('renames'),
|
||||
$.name,
|
||||
field('generic_procedure_name', $._name),
|
||||
optional($.aspect_specification),
|
||||
';',
|
||||
),
|
||||
seq(
|
||||
reservedWord('generic'),
|
||||
reservedWord('function'),
|
||||
$.name,
|
||||
field('defining_program_unit_name', $._name),
|
||||
reservedWord('renames'),
|
||||
$.name,
|
||||
field('generic_function_name', $._name),
|
||||
optional($.aspect_specification),
|
||||
';',
|
||||
),
|
||||
|
|
@ -1938,7 +1934,7 @@ module.exports = grammar({
|
|||
choice(
|
||||
seq(
|
||||
optional($.null_exclusion),
|
||||
$.name,
|
||||
field('subtype_mark', $._name),
|
||||
),
|
||||
$.access_definition,
|
||||
),
|
||||
|
|
@ -2055,12 +2051,12 @@ module.exports = grammar({
|
|||
),
|
||||
abort_statement: $ => seq(
|
||||
reservedWord('abort'),
|
||||
comma_separated_list_of($.name),
|
||||
comma_separated_list_of($._name),
|
||||
';',
|
||||
),
|
||||
requeue_statement: $ => seq(
|
||||
requeue_statement: $ => seq( // ARM 9.5.4
|
||||
reservedWord('requeue'),
|
||||
$.name,
|
||||
field('name', $._name),
|
||||
optional(seq(
|
||||
reservedWord('with'),
|
||||
reservedWord('abort'),
|
||||
|
|
@ -2131,9 +2127,9 @@ module.exports = grammar({
|
|||
reservedWord('then'),
|
||||
$.sequence_of_statements,
|
||||
),
|
||||
exit_statement: $ => seq(
|
||||
exit_statement: $ => seq( // ARM 5.7
|
||||
reservedWord('exit'),
|
||||
optional($.name),
|
||||
field('loop_name', optional($._name)),
|
||||
optional(seq(
|
||||
reservedWord('when'),
|
||||
field('condition', $.expression),
|
||||
|
|
@ -2142,7 +2138,7 @@ module.exports = grammar({
|
|||
),
|
||||
goto_statement: $ => seq(
|
||||
reservedWord('goto'),
|
||||
$.name,
|
||||
field('label_name', $._name),
|
||||
';',
|
||||
),
|
||||
delay_statement: $ => choice(
|
||||
|
|
@ -2188,15 +2184,15 @@ module.exports = grammar({
|
|||
$.subtype_indication,
|
||||
$.access_definition,
|
||||
),
|
||||
procedure_call_statement: $ => seq(
|
||||
$.name, // not an operator
|
||||
procedure_call_statement: $ => seq( // ARM 6.4
|
||||
field('name', $._name), // not an operator
|
||||
optional($.actual_parameter_part),
|
||||
';',
|
||||
),
|
||||
raise_statement: $ => seq(
|
||||
reservedWord('raise'),
|
||||
optional(seq(
|
||||
$.name,
|
||||
field('name', $._name),
|
||||
optional(seq(
|
||||
reservedWord('with'),
|
||||
$.expression, // ada-mode allows "raise CE with raise with ..."
|
||||
|
|
@ -2245,8 +2241,8 @@ module.exports = grammar({
|
|||
// ),
|
||||
// ),
|
||||
),
|
||||
assignment_statement: $ => seq(
|
||||
$.name,
|
||||
assignment_statement: $ => seq( // ARM 5.2
|
||||
field('variable_name', $._name),
|
||||
$.assign_value,
|
||||
';',
|
||||
),
|
||||
|
|
|
|||
|
|
@ -103,21 +103,29 @@
|
|||
|
||||
;; Highlight the name of subprograms
|
||||
(procedure_specification
|
||||
(name) @function
|
||||
name: (identifier) @function
|
||||
)
|
||||
(function_specification
|
||||
(name) @function
|
||||
name: (identifier) @function
|
||||
)
|
||||
(package_specification
|
||||
name: (name) @function ;; Should use @module, but no default highlight
|
||||
name: (identifier) @function ;; Should use @module
|
||||
)
|
||||
(package_body
|
||||
(name) @function ;; Should use @module, but no default highlight
|
||||
name: (identifier) @function ;; Should use @module
|
||||
)
|
||||
(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.
|
||||
;; WIP: waiting for simplified tree.
|
||||
; [
|
||||
|
|
@ -135,11 +143,14 @@
|
|||
; "synchronized"
|
||||
; ]* @keyword.type
|
||||
(full_type_declaration
|
||||
(identifier) @type
|
||||
; (identifier) @type
|
||||
"is" @type.definition
|
||||
; (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
|
||||
;; be highlighted as user types, and the error could be elsewhere in the code.
|
||||
;; This also requires defining :hi @error guifg=Red for instance.
|
||||
|
|
|
|||
|
|
@ -6,12 +6,11 @@
|
|||
(subprogram_specification) @scope
|
||||
(block_statement) @scope
|
||||
|
||||
(procedure_specification (name) @definition.var)
|
||||
(function_specification (name) @definition.var)
|
||||
(package_specification name: (name) @definition.var)
|
||||
(package_body (name) @definition.var)
|
||||
(generic_instantiation . (name) @definition.var)
|
||||
(procedure_specification name: (identifier) @definition.var)
|
||||
(function_specification name: (identifier) @definition.var)
|
||||
(package_specification name: (identifier) @definition.var)
|
||||
(package_body name: (identifier) @definition.var)
|
||||
(generic_instantiation . name: (identifier) @definition.var)
|
||||
(defining_identifier_list (identifier) @definition.var)
|
||||
|
||||
(identifier) @reference
|
||||
(name) @reference
|
||||
|
|
|
|||
819
src/grammar.json
819
src/grammar.json
File diff suppressed because it is too large
Load Diff
2805
src/node-types.json
2805
src/node-types.json
File diff suppressed because it is too large
Load Diff
81925
src/parser.c
81925
src/parser.c
File diff suppressed because it is too large
Load Diff
|
|
@ -16,8 +16,7 @@ end;
|
|||
(compilation
|
||||
(compilation_unit
|
||||
(package_specification
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(type_declaration
|
||||
(full_type_declaration
|
||||
(identifier)
|
||||
|
|
@ -25,8 +24,7 @@ end;
|
|||
(access_type_definition
|
||||
(access_to_object_definition
|
||||
(subtype_indication
|
||||
(name
|
||||
(identifier))))))))
|
||||
(identifier)))))))
|
||||
(type_declaration
|
||||
(full_type_declaration
|
||||
(identifier)
|
||||
|
|
@ -35,8 +33,7 @@ end;
|
|||
(access_to_object_definition
|
||||
(subtype_indication
|
||||
(null_exclusion)
|
||||
(name
|
||||
(identifier))))))))
|
||||
(identifier)))))))
|
||||
(type_declaration
|
||||
(full_type_declaration
|
||||
(identifier)
|
||||
|
|
@ -45,8 +42,7 @@ end;
|
|||
(access_to_object_definition
|
||||
(general_access_modifier)
|
||||
(subtype_indication
|
||||
(name
|
||||
(identifier))))))))
|
||||
(identifier)))))))
|
||||
(type_declaration
|
||||
(full_type_declaration
|
||||
(identifier)
|
||||
|
|
@ -55,7 +51,15 @@ end;
|
|||
(access_to_object_definition
|
||||
(general_access_modifier)
|
||||
(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))))))))
|
||||
(type_declaration
|
||||
(full_type_declaration
|
||||
|
|
@ -65,18 +69,7 @@ end;
|
|||
(access_to_subprogram_definition
|
||||
(parameter_and_result_profile
|
||||
(result_profile
|
||||
(name
|
||||
(identifier)))))))))
|
||||
(type_declaration
|
||||
(full_type_declaration
|
||||
(identifier)
|
||||
(type_definition
|
||||
(access_type_definition
|
||||
(access_to_subprogram_definition
|
||||
(parameter_and_result_profile
|
||||
(result_profile
|
||||
(name
|
||||
(identifier))))))))))))
|
||||
(identifier)))))))))))
|
||||
|
||||
================================================================================
|
||||
Dereference
|
||||
|
|
@ -96,15 +89,13 @@ end;
|
|||
(subprogram_body
|
||||
(subprogram_specification
|
||||
(procedure_specification
|
||||
(name
|
||||
(identifier))))
|
||||
(identifier)))
|
||||
(handled_sequence_of_statements
|
||||
(sequence_of_statements
|
||||
(statement
|
||||
(simple_statement
|
||||
(assignment_statement
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(assign_value
|
||||
(expression
|
||||
(relation
|
||||
|
|
@ -112,25 +103,20 @@ end;
|
|||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier)
|
||||
(name
|
||||
(identifier)))))))))))))
|
||||
(identifier)
|
||||
(identifier)))))))))))
|
||||
(statement
|
||||
(simple_statement
|
||||
(procedure_call_statement
|
||||
(name
|
||||
(function_call
|
||||
(name
|
||||
(identifier)
|
||||
(name
|
||||
(identifier)))
|
||||
(actual_parameter_part
|
||||
(parameter_association
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal))))))))))))))))))))
|
||||
(identifier)
|
||||
(function_call
|
||||
(identifier)
|
||||
(actual_parameter_part
|
||||
(parameter_association
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal)))))))))))))))))))
|
||||
|
|
|
|||
|
|
@ -13,8 +13,7 @@ end P;
|
|||
(compilation
|
||||
(compilation_unit
|
||||
(package_specification
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(type_declaration
|
||||
(full_type_declaration
|
||||
(identifier)
|
||||
|
|
@ -35,14 +34,12 @@ end P;
|
|||
(numeric_literal)))))))
|
||||
(component_definition
|
||||
(subtype_indication
|
||||
(name
|
||||
(identifier)))))))))
|
||||
(identifier))))))))
|
||||
(object_declaration
|
||||
(defining_identifier_list
|
||||
(identifier))
|
||||
(subtype_indication
|
||||
(name
|
||||
(identifier)))
|
||||
(identifier))
|
||||
(assign_value
|
||||
(expression
|
||||
(relation
|
||||
|
|
@ -69,8 +66,7 @@ end P;
|
|||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier)))))))))
|
||||
(identifier))))))))
|
||||
(array_component_association
|
||||
(discrete_choice_list
|
||||
(discrete_choice
|
||||
|
|
@ -87,14 +83,12 @@ end P;
|
|||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier))))))))))))))))))))
|
||||
(identifier)))))))))))))))))))
|
||||
(object_declaration
|
||||
(defining_identifier_list
|
||||
(identifier))
|
||||
(subtype_indication
|
||||
(name
|
||||
(identifier)))
|
||||
(identifier))
|
||||
(assign_value
|
||||
(expression
|
||||
(relation
|
||||
|
|
@ -121,8 +115,7 @@ end P;
|
|||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier)))))))))
|
||||
(identifier))))))))
|
||||
(array_component_association
|
||||
(discrete_choice_list
|
||||
(discrete_choice))
|
||||
|
|
@ -132,10 +125,8 @@ end P;
|
|||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier))))))))))))))))))))
|
||||
(name
|
||||
(identifier)))))
|
||||
(identifier)))))))))))))))))))
|
||||
(identifier))))
|
||||
|
||||
================================================================================
|
||||
Definite-2
|
||||
|
|
@ -148,70 +139,67 @@ end;
|
|||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(compilation
|
||||
(compilation_unit
|
||||
(package_specification
|
||||
(name
|
||||
(identifier))
|
||||
(type_declaration
|
||||
(full_type_declaration
|
||||
(identifier)
|
||||
(type_definition
|
||||
(array_type_definition
|
||||
(constrained_array_definition
|
||||
(discrete_subtype_definition
|
||||
(range_g
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal)))))
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal)))))))
|
||||
(component_definition
|
||||
(subtype_indication
|
||||
(name
|
||||
(identifier)))))))))
|
||||
(object_declaration
|
||||
(defining_identifier_list
|
||||
(identifier))
|
||||
(subtype_indication
|
||||
(name
|
||||
(identifier)))
|
||||
(assign_value
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(aggregate
|
||||
(array_aggregate
|
||||
(positional_array_aggregate
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal)))))))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal)))))))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal)))))))))))))))))))))
|
||||
(compilation
|
||||
(compilation_unit
|
||||
(package_specification
|
||||
(identifier)
|
||||
(type_declaration
|
||||
(full_type_declaration
|
||||
(identifier)
|
||||
(type_definition
|
||||
(array_type_definition
|
||||
(constrained_array_definition
|
||||
(discrete_subtype_definition
|
||||
(range_g
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal)))))
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal)))))))
|
||||
(component_definition
|
||||
(subtype_indication
|
||||
(identifier))))))))
|
||||
(object_declaration
|
||||
(defining_identifier_list
|
||||
(identifier))
|
||||
(subtype_indication
|
||||
(identifier))
|
||||
(assign_value
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(aggregate
|
||||
(array_aggregate
|
||||
(positional_array_aggregate
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal)))))))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal)))))))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal)))))))))))))))))))))
|
||||
|
||||
================================================================================
|
||||
Indefinite
|
||||
|
|
@ -227,8 +215,7 @@ end P;
|
|||
(compilation
|
||||
(compilation_unit
|
||||
(package_specification
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(type_declaration
|
||||
(full_type_declaration
|
||||
(identifier)
|
||||
|
|
@ -236,18 +223,15 @@ end P;
|
|||
(array_type_definition
|
||||
(unconstrained_array_definition
|
||||
(index_subtype_definition
|
||||
(name
|
||||
(identifier)))
|
||||
(identifier))
|
||||
(component_definition
|
||||
(subtype_indication
|
||||
(name
|
||||
(identifier)))))))))
|
||||
(identifier))))))))
|
||||
(object_declaration
|
||||
(defining_identifier_list
|
||||
(identifier))
|
||||
(subtype_indication
|
||||
(name
|
||||
(identifier)))
|
||||
(identifier))
|
||||
(assign_value
|
||||
(expression
|
||||
(relation
|
||||
|
|
@ -278,10 +262,8 @@ end P;
|
|||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier))))))))))))))))))))
|
||||
(name
|
||||
(identifier)))))
|
||||
(identifier)))))))))))))))))))
|
||||
(identifier))))
|
||||
|
||||
================================================================================
|
||||
2D
|
||||
|
|
@ -297,8 +279,7 @@ end P;
|
|||
(compilation
|
||||
(compilation_unit
|
||||
(package_specification
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(type_declaration
|
||||
(full_type_declaration
|
||||
(identifier)
|
||||
|
|
@ -306,21 +287,17 @@ end P;
|
|||
(array_type_definition
|
||||
(unconstrained_array_definition
|
||||
(index_subtype_definition
|
||||
(name
|
||||
(identifier)))
|
||||
(identifier))
|
||||
(index_subtype_definition
|
||||
(name
|
||||
(identifier)))
|
||||
(identifier))
|
||||
(component_definition
|
||||
(subtype_indication
|
||||
(name
|
||||
(identifier)))))))))
|
||||
(identifier))))))))
|
||||
(object_declaration
|
||||
(defining_identifier_list
|
||||
(identifier))
|
||||
(subtype_indication
|
||||
(name
|
||||
(identifier)))
|
||||
(identifier))
|
||||
(assign_value
|
||||
(expression
|
||||
(relation
|
||||
|
|
@ -374,87 +351,73 @@ end P;
|
|||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier))))))))))))))))))))))))))))))
|
||||
(name
|
||||
(identifier)))))
|
||||
(identifier)))))))))))))))))))))))))))))
|
||||
(identifier))))
|
||||
|
||||
=========
|
||||
================================================================================
|
||||
Index in array aggregates
|
||||
=========
|
||||
================================================================================
|
||||
|
||||
procedure P is
|
||||
begin
|
||||
Arr := (for Index in 1 .. Count => Function_Returning_Limited (Index));
|
||||
end;
|
||||
|
||||
-------
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(compilation
|
||||
(compilation_unit
|
||||
(proper_body
|
||||
(subprogram_body
|
||||
(subprogram_specification
|
||||
(procedure_specification
|
||||
(name
|
||||
(identifier))))
|
||||
(handled_sequence_of_statements
|
||||
(sequence_of_statements
|
||||
(statement
|
||||
(simple_statement
|
||||
(assignment_statement
|
||||
(name
|
||||
(identifier))
|
||||
(assign_value
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(aggregate
|
||||
(array_aggregate
|
||||
(named_array_aggregate
|
||||
(array_component_association
|
||||
(iterated_element_association
|
||||
(loop_parameter_specification
|
||||
(identifier)
|
||||
(discrete_subtype_definition
|
||||
(range_g
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal)))))
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier)))))))))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(function_call
|
||||
(name
|
||||
(identifier))
|
||||
(actual_parameter_part
|
||||
(parameter_association
|
||||
(expression
|
||||
(relation
|
||||
|
||||
(simple_expression
|
||||
|
||||
(term
|
||||
|
||||
(factor
|
||||
|
||||
(primary
|
||||
|
||||
(name
|
||||
|
||||
(identifier)))))))))))))))))))))))))))))))))))))))
|
||||
(compilation
|
||||
(compilation_unit
|
||||
(proper_body
|
||||
(subprogram_body
|
||||
(subprogram_specification
|
||||
(procedure_specification
|
||||
(identifier)))
|
||||
(handled_sequence_of_statements
|
||||
(sequence_of_statements
|
||||
(statement
|
||||
(simple_statement
|
||||
(assignment_statement
|
||||
(identifier)
|
||||
(assign_value
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(aggregate
|
||||
(array_aggregate
|
||||
(named_array_aggregate
|
||||
(array_component_association
|
||||
(iterated_element_association
|
||||
(loop_parameter_specification
|
||||
(identifier)
|
||||
(discrete_subtype_definition
|
||||
(range_g
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal)))))
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(identifier))))))))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(function_call
|
||||
(identifier)
|
||||
(actual_parameter_part
|
||||
(parameter_association
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(identifier)))))))))))))))))))))))))))))))))))))
|
||||
|
|
|
|||
|
|
@ -21,22 +21,19 @@ end;
|
|||
(subprogram_body
|
||||
(subprogram_specification
|
||||
(procedure_specification
|
||||
(name
|
||||
(identifier))))
|
||||
(identifier)))
|
||||
(non_empty_declarative_part
|
||||
(declarative_item_pragma
|
||||
(object_declaration
|
||||
(defining_identifier_list
|
||||
(identifier))
|
||||
(subtype_indication
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(constraint
|
||||
(index_constraint
|
||||
(discrete_range
|
||||
(range_g
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(tick)
|
||||
(range_attribute_designator
|
||||
(expression
|
||||
|
|
@ -56,8 +53,7 @@ end;
|
|||
(identifier)
|
||||
(discrete_subtype_definition
|
||||
(range_g
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(tick)
|
||||
(range_attribute_designator)))))
|
||||
(sequence_of_statements
|
||||
|
|
@ -72,8 +68,7 @@ end;
|
|||
(identifier)
|
||||
(discrete_subtype_definition
|
||||
(range_g
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(tick)
|
||||
(range_attribute_designator
|
||||
(expression
|
||||
|
|
@ -108,16 +103,14 @@ end;
|
|||
(subprogram_body
|
||||
(subprogram_specification
|
||||
(procedure_specification
|
||||
(name
|
||||
(identifier))))
|
||||
(identifier)))
|
||||
(non_empty_declarative_part
|
||||
(declarative_item_pragma
|
||||
(object_declaration
|
||||
(defining_identifier_list
|
||||
(identifier))
|
||||
(subtype_indication
|
||||
(name
|
||||
(identifier)))
|
||||
(identifier))
|
||||
(assign_value
|
||||
(expression
|
||||
(relation
|
||||
|
|
@ -125,70 +118,62 @@ end;
|
|||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(attribute_reference
|
||||
(reduction_attribute_reference
|
||||
(value_sequence
|
||||
(iterated_element_association
|
||||
(iterator_specification
|
||||
(identifier)
|
||||
(name
|
||||
(identifier))
|
||||
(iterator_filter
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier))))))
|
||||
(relational_operator)
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal)))))))))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(aggregate
|
||||
(array_aggregate
|
||||
(positional_array_aggregate
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
|
||||
(primary
|
||||
(name
|
||||
(identifier))))))))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
|
||||
(numeric_literal))))))))))))))))))
|
||||
|
||||
(tick)
|
||||
(reduction_attribute_designator
|
||||
(identifier)
|
||||
(reduction_specification
|
||||
(name
|
||||
(string_literal))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal))))))))))))))))))))))
|
||||
(attribute_reference
|
||||
(reduction_attribute_reference
|
||||
(value_sequence
|
||||
(iterated_element_association
|
||||
(iterator_specification
|
||||
(identifier)
|
||||
(identifier)
|
||||
(iterator_filter
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(identifier)))))
|
||||
(relational_operator)
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal)))))))))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(aggregate
|
||||
(array_aggregate
|
||||
(positional_array_aggregate
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(identifier)))))))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal))))))))))))))))))
|
||||
(tick)
|
||||
(reduction_attribute_designator
|
||||
(identifier)
|
||||
(reduction_specification
|
||||
(string_literal)
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal)))))))))))))))))))))
|
||||
(handled_sequence_of_statements
|
||||
(sequence_of_statements
|
||||
(statement
|
||||
|
|
|
|||
|
|
@ -24,8 +24,7 @@ end;
|
|||
(formal_object_declaration
|
||||
(defining_identifier_list
|
||||
(identifier))
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(assign_value
|
||||
(expression
|
||||
(relation
|
||||
|
|
@ -42,8 +41,7 @@ end;
|
|||
(unknown_discriminant_part))
|
||||
(formal_type_definition
|
||||
(formal_private_type_definition))
|
||||
(name
|
||||
(identifier)))))
|
||||
(identifier))))
|
||||
(generic_formal_parameter_declaration
|
||||
(formal_type_declaration
|
||||
(formal_incomplete_type_declaration
|
||||
|
|
@ -51,47 +49,41 @@ end;
|
|||
(generic_formal_parameter_declaration
|
||||
(formal_package_declaration
|
||||
(identifier)
|
||||
(name
|
||||
(function_call
|
||||
(name
|
||||
(identifier))
|
||||
(actual_parameter_part
|
||||
(parameter_association
|
||||
(component_choice_list
|
||||
(identifier))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal))))))))
|
||||
(parameter_association
|
||||
(component_choice_list
|
||||
(identifier))))))))
|
||||
(function_call
|
||||
(identifier)
|
||||
(actual_parameter_part
|
||||
(parameter_association
|
||||
(component_choice_list
|
||||
(identifier))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal))))))))
|
||||
(parameter_association
|
||||
(component_choice_list
|
||||
(identifier)))))))
|
||||
(generic_formal_parameter_declaration
|
||||
(formal_subprogram_declaration
|
||||
(formal_concrete_subprogram_declaration
|
||||
(subprogram_specification
|
||||
(procedure_specification
|
||||
(name
|
||||
(identifier))))
|
||||
(identifier)))
|
||||
(subprogram_default))))
|
||||
(generic_formal_parameter_declaration
|
||||
(formal_subprogram_declaration
|
||||
(formal_concrete_subprogram_declaration
|
||||
(subprogram_specification
|
||||
(function_specification
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(parameter_and_result_profile
|
||||
(result_profile
|
||||
(name
|
||||
(identifier))))))
|
||||
(identifier)))))
|
||||
(subprogram_default)))))
|
||||
(package_specification
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(pragma_g
|
||||
(identifier)
|
||||
(pragma_argument_association
|
||||
|
|
@ -101,8 +93,7 @@ end;
|
|||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier)))))))))
|
||||
(identifier))))))))
|
||||
(pragma_argument_association
|
||||
(expression
|
||||
(relation
|
||||
|
|
|
|||
|
|
@ -13,39 +13,25 @@ use Ada.Text_IO, System;
|
|||
(compilation
|
||||
(compilation_unit
|
||||
(with_clause
|
||||
(name_list
|
||||
(name
|
||||
(identifier)
|
||||
(name
|
||||
(identifier)))
|
||||
(name
|
||||
(identifier)))))
|
||||
(identifier)
|
||||
(identifier)
|
||||
(identifier)))
|
||||
(comment)
|
||||
(compilation_unit
|
||||
(with_clause
|
||||
(name_list
|
||||
(name
|
||||
(identifier)))))
|
||||
(identifier)))
|
||||
(comment)
|
||||
(compilation_unit
|
||||
(with_clause
|
||||
(name_list
|
||||
(name
|
||||
(identifier)))))
|
||||
(identifier)))
|
||||
(compilation_unit
|
||||
(with_clause
|
||||
(name_list
|
||||
(name
|
||||
(identifier)))))
|
||||
(identifier)))
|
||||
(compilation_unit
|
||||
(use_clause
|
||||
(name_list
|
||||
(name
|
||||
(identifier)
|
||||
(name
|
||||
(identifier)))
|
||||
(name
|
||||
(identifier))))))
|
||||
(identifier)
|
||||
(identifier)
|
||||
(identifier))))
|
||||
|
||||
================================================================================
|
||||
Case insensitive
|
||||
|
|
@ -59,8 +45,7 @@ enD;
|
|||
(compilation
|
||||
(compilation_unit
|
||||
(package_specification
|
||||
(name
|
||||
(identifier)))))
|
||||
(identifier))))
|
||||
|
||||
================================================================================
|
||||
multiple compilation units
|
||||
|
|
@ -80,21 +65,15 @@ end;
|
|||
(compilation
|
||||
(compilation_unit
|
||||
(package_specification
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(package_specification
|
||||
(name
|
||||
(identifier))
|
||||
(name
|
||||
(identifier)))
|
||||
(name
|
||||
(identifier))))
|
||||
(identifier)
|
||||
(identifier))
|
||||
(identifier)))
|
||||
(compilation_unit
|
||||
(package_specification
|
||||
(name
|
||||
(identifier)
|
||||
(name
|
||||
(identifier)))
|
||||
(identifier)
|
||||
(identifier)
|
||||
(comment))))
|
||||
|
||||
================================================================================
|
||||
|
|
@ -116,32 +95,26 @@ end Child.P2;
|
|||
(compilation_unit
|
||||
(proper_body
|
||||
(package_body
|
||||
(name
|
||||
(identifier)
|
||||
(name
|
||||
(identifier)))
|
||||
(identifier)
|
||||
(identifier)
|
||||
(non_empty_declarative_part
|
||||
(declarative_item_pragma
|
||||
(proper_body
|
||||
(package_body
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(handled_sequence_of_statements
|
||||
(sequence_of_statements
|
||||
(statement
|
||||
(simple_statement
|
||||
(null_statement)))))
|
||||
(name
|
||||
(identifier))))))
|
||||
(identifier)))))
|
||||
(handled_sequence_of_statements
|
||||
(sequence_of_statements
|
||||
(statement
|
||||
(simple_statement
|
||||
(null_statement)))))
|
||||
(name
|
||||
(identifier)
|
||||
(name
|
||||
(identifier)))))))
|
||||
(identifier)
|
||||
(identifier)))))
|
||||
|
||||
================================================================================
|
||||
separate
|
||||
|
|
@ -155,12 +128,10 @@ end;
|
|||
(compilation
|
||||
(compilation_unit
|
||||
(subunit
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(proper_body
|
||||
(package_body
|
||||
(name
|
||||
(identifier)))))))
|
||||
(identifier))))))
|
||||
|
||||
================================================================================
|
||||
private types
|
||||
|
|
@ -177,8 +148,7 @@ end;
|
|||
(compilation
|
||||
(compilation_unit
|
||||
(package_specification
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(type_declaration
|
||||
(private_type_declaration
|
||||
(identifier)))
|
||||
|
|
@ -186,8 +156,7 @@ end;
|
|||
(private_extension_declaration
|
||||
(identifier)
|
||||
(subtype_indication
|
||||
(name
|
||||
(identifier)))))
|
||||
(identifier))))
|
||||
(type_declaration
|
||||
(private_type_declaration
|
||||
(identifier)
|
||||
|
|
@ -222,8 +191,7 @@ end;
|
|||
(compilation
|
||||
(compilation_unit
|
||||
(package_specification
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(type_declaration
|
||||
(incomplete_type_declaration
|
||||
(identifier)))
|
||||
|
|
@ -236,8 +204,7 @@ end;
|
|||
(discriminant_specification
|
||||
(defining_identifier_list
|
||||
(identifier))
|
||||
(name
|
||||
(identifier))))))))
|
||||
(identifier)))))))
|
||||
(type_declaration
|
||||
(incomplete_type_declaration
|
||||
(identifier)
|
||||
|
|
|
|||
|
|
@ -32,8 +32,7 @@ end;
|
|||
(compilation_unit
|
||||
(proper_body
|
||||
(package_body
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(non_empty_declarative_part
|
||||
(declarative_item_pragma
|
||||
(object_declaration
|
||||
|
|
@ -44,18 +43,15 @@ end;
|
|||
(subprogram_declaration
|
||||
(subprogram_specification
|
||||
(procedure_specification
|
||||
(name
|
||||
(identifier))))))
|
||||
(identifier)))))
|
||||
(protected_operation_declaration
|
||||
(subprogram_declaration
|
||||
(subprogram_specification
|
||||
(function_specification
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(parameter_and_result_profile
|
||||
(result_profile
|
||||
(name
|
||||
(identifier))))))))
|
||||
(identifier)))))))
|
||||
(protected_operation_declaration
|
||||
(entry_declaration
|
||||
(identifier)))
|
||||
|
|
@ -64,23 +60,20 @@ end;
|
|||
(identifier)
|
||||
(discrete_subtype_definition
|
||||
(subtype_indication
|
||||
(name
|
||||
(identifier))))
|
||||
(identifier)))
|
||||
(formal_part
|
||||
(parameter_specification_list
|
||||
(parameter_specification
|
||||
(defining_identifier_list
|
||||
(identifier))
|
||||
(name
|
||||
(identifier)))))))
|
||||
(identifier))))))
|
||||
(protected_element_declaration
|
||||
(component_declaration
|
||||
(defining_identifier_list
|
||||
(identifier))
|
||||
(component_definition
|
||||
(subtype_indication
|
||||
(name
|
||||
(identifier))))))
|
||||
(identifier)))))
|
||||
(identifier)))))
|
||||
(declarative_item_pragma
|
||||
(proper_body
|
||||
|
|
@ -90,25 +83,21 @@ end;
|
|||
(subprogram_body
|
||||
(subprogram_specification
|
||||
(procedure_specification
|
||||
(name
|
||||
(identifier))))
|
||||
(identifier)))
|
||||
(handled_sequence_of_statements
|
||||
(sequence_of_statements
|
||||
(statement
|
||||
(simple_statement
|
||||
(abort_statement
|
||||
(name
|
||||
(identifier)))))))))
|
||||
(identifier))))))))
|
||||
(protected_operation_item
|
||||
(subprogram_body
|
||||
(subprogram_specification
|
||||
(function_specification
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(parameter_and_result_profile
|
||||
(result_profile
|
||||
(name
|
||||
(identifier))))))
|
||||
(identifier)))))
|
||||
(handled_sequence_of_statements
|
||||
(sequence_of_statements
|
||||
(statement
|
||||
|
|
@ -120,8 +109,7 @@ end;
|
|||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier)))))))))))))))
|
||||
(identifier))))))))))))))
|
||||
(protected_operation_item
|
||||
(entry_body
|
||||
(identifier)
|
||||
|
|
@ -132,8 +120,7 @@ end;
|
|||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier))))))
|
||||
(identifier)))))
|
||||
(relational_operator)
|
||||
(simple_expression
|
||||
(term
|
||||
|
|
@ -145,8 +132,7 @@ end;
|
|||
(statement
|
||||
(simple_statement
|
||||
(requeue_statement
|
||||
(name
|
||||
(identifier)))))))
|
||||
(identifier))))))
|
||||
(identifier)))
|
||||
(protected_operation_item
|
||||
(entry_body
|
||||
|
|
@ -156,15 +142,13 @@ end;
|
|||
(identifier)
|
||||
(discrete_subtype_definition
|
||||
(subtype_indication
|
||||
(name
|
||||
(identifier)))))
|
||||
(identifier))))
|
||||
(formal_part
|
||||
(parameter_specification_list
|
||||
(parameter_specification
|
||||
(defining_identifier_list
|
||||
(identifier))
|
||||
(name
|
||||
(identifier))))))
|
||||
(identifier)))))
|
||||
(entry_barrier
|
||||
(expression
|
||||
(relation
|
||||
|
|
@ -172,8 +156,7 @@ end;
|
|||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier)))))))))
|
||||
(identifier))))))))
|
||||
(handled_sequence_of_statements
|
||||
(sequence_of_statements
|
||||
(statement
|
||||
|
|
|
|||
|
|
@ -11,8 +11,7 @@ end;
|
|||
(compilation
|
||||
(compilation_unit
|
||||
(package_specification
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(type_declaration
|
||||
(full_type_declaration
|
||||
(identifier)
|
||||
|
|
@ -41,8 +40,7 @@ end;
|
|||
(compilation
|
||||
(compilation_unit
|
||||
(package_specification
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(type_declaration
|
||||
(full_type_declaration
|
||||
(identifier)
|
||||
|
|
@ -56,16 +54,14 @@ end;
|
|||
(identifier))
|
||||
(component_definition
|
||||
(subtype_indication
|
||||
(name
|
||||
(identifier))))))
|
||||
(identifier)))))
|
||||
(component_item
|
||||
(component_declaration
|
||||
(defining_identifier_list
|
||||
(identifier))
|
||||
(component_definition
|
||||
(subtype_indication
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(constraint
|
||||
(scalar_constraint
|
||||
(range_constraint
|
||||
|
|
@ -88,15 +84,12 @@ end;
|
|||
(component_definition
|
||||
(access_definition
|
||||
(null_exclusion)
|
||||
(name
|
||||
(identifier))))))))))))
|
||||
(identifier)))))))))))
|
||||
(aspect_clause
|
||||
(record_representation_clause
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(component_clause
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
|
|
@ -130,8 +123,7 @@ end;
|
|||
(compilation
|
||||
(compilation_unit
|
||||
(package_specification
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(type_declaration
|
||||
(full_type_declaration
|
||||
(identifier)
|
||||
|
|
@ -146,8 +138,7 @@ end;
|
|||
(identifier))
|
||||
(component_definition
|
||||
(subtype_indication
|
||||
(name
|
||||
(identifier)))))))))))))))
|
||||
(identifier))))))))))))))
|
||||
|
||||
================================================================================
|
||||
Discriminated
|
||||
|
|
@ -164,8 +155,7 @@ end;
|
|||
(compilation
|
||||
(compilation_unit
|
||||
(package_specification
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(type_declaration
|
||||
(full_type_declaration
|
||||
(identifier)
|
||||
|
|
@ -174,13 +164,11 @@ end;
|
|||
(discriminant_specification
|
||||
(defining_identifier_list
|
||||
(identifier))
|
||||
(name
|
||||
(identifier)))
|
||||
(identifier))
|
||||
(discriminant_specification
|
||||
(defining_identifier_list
|
||||
(identifier))
|
||||
(name
|
||||
(identifier)))))
|
||||
(identifier))))
|
||||
(type_definition
|
||||
(record_type_definition
|
||||
(record_definition
|
||||
|
|
@ -191,8 +179,7 @@ end;
|
|||
(identifier))
|
||||
(component_definition
|
||||
(subtype_indication
|
||||
(name
|
||||
(identifier)))))))))))))))
|
||||
(identifier))))))))))))))
|
||||
|
||||
================================================================================
|
||||
tagged
|
||||
|
|
@ -210,8 +197,7 @@ end;
|
|||
(compilation
|
||||
(compilation_unit
|
||||
(package_specification
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(type_declaration
|
||||
(full_type_declaration
|
||||
(identifier)
|
||||
|
|
@ -224,8 +210,7 @@ end;
|
|||
(type_definition
|
||||
(derived_type_definition
|
||||
(subtype_indication
|
||||
(name
|
||||
(identifier)))
|
||||
(identifier))
|
||||
(record_extension_part
|
||||
(record_definition
|
||||
(component_list
|
||||
|
|
@ -235,8 +220,7 @@ end;
|
|||
(identifier))
|
||||
(component_definition
|
||||
(subtype_indication
|
||||
(name
|
||||
(identifier))))))))))))))))
|
||||
(identifier)))))))))))))))
|
||||
|
||||
================================================================================
|
||||
Variant
|
||||
|
|
@ -258,8 +242,7 @@ end;
|
|||
(compilation
|
||||
(compilation_unit
|
||||
(package_specification
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(type_declaration
|
||||
(full_type_declaration
|
||||
(identifier)
|
||||
|
|
@ -268,8 +251,7 @@ end;
|
|||
(discriminant_specification
|
||||
(defining_identifier_list
|
||||
(identifier))
|
||||
(name
|
||||
(identifier)))))
|
||||
(identifier))))
|
||||
(type_definition
|
||||
(record_type_definition
|
||||
(record_definition
|
||||
|
|
@ -306,8 +288,7 @@ end;
|
|||
(identifier))
|
||||
(component_definition
|
||||
(subtype_indication
|
||||
(name
|
||||
(identifier))))))))
|
||||
(identifier)))))))
|
||||
(variant
|
||||
(discrete_choice_list
|
||||
(discrete_choice))
|
||||
|
|
@ -328,8 +309,7 @@ end;
|
|||
(compilation
|
||||
(compilation_unit
|
||||
(package_specification
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(type_declaration
|
||||
(full_type_declaration
|
||||
(identifier)
|
||||
|
|
@ -340,20 +320,15 @@ end;
|
|||
(identifier)
|
||||
(type_definition
|
||||
(interface_type_definition
|
||||
(interface_list
|
||||
(name
|
||||
(identifier)))))))
|
||||
(identifier)))))
|
||||
(type_declaration
|
||||
(full_type_declaration
|
||||
(identifier)
|
||||
(type_definition
|
||||
(derived_type_definition
|
||||
(subtype_indication
|
||||
(name
|
||||
(identifier)))
|
||||
(interface_list
|
||||
(name
|
||||
(identifier)))
|
||||
(identifier))
|
||||
(identifier)
|
||||
(record_extension_part
|
||||
(record_definition)))))))))
|
||||
|
||||
|
|
@ -374,15 +349,13 @@ end;
|
|||
(subprogram_body
|
||||
(subprogram_specification
|
||||
(procedure_specification
|
||||
(name
|
||||
(identifier))))
|
||||
(identifier)))
|
||||
(handled_sequence_of_statements
|
||||
(sequence_of_statements
|
||||
(statement
|
||||
(simple_statement
|
||||
(assignment_statement
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(assign_value
|
||||
(expression
|
||||
(relation
|
||||
|
|
@ -429,15 +402,13 @@ end;
|
|||
(subprogram_body
|
||||
(subprogram_specification
|
||||
(procedure_specification
|
||||
(name
|
||||
(identifier))))
|
||||
(identifier)))
|
||||
(handled_sequence_of_statements
|
||||
(sequence_of_statements
|
||||
(statement
|
||||
(simple_statement
|
||||
(assignment_statement
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(assign_value
|
||||
(expression
|
||||
(relation
|
||||
|
|
@ -453,8 +424,7 @@ end;
|
|||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier))))))))
|
||||
(identifier)))))))
|
||||
(record_component_association_list
|
||||
(component_choice_list
|
||||
(identifier))
|
||||
|
|
@ -483,15 +453,13 @@ end;
|
|||
(subprogram_body
|
||||
(subprogram_specification
|
||||
(procedure_specification
|
||||
(name
|
||||
(identifier))))
|
||||
(identifier)))
|
||||
(handled_sequence_of_statements
|
||||
(sequence_of_statements
|
||||
(statement
|
||||
(simple_statement
|
||||
(assignment_statement
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(assign_value
|
||||
(expression
|
||||
(relation
|
||||
|
|
@ -508,8 +476,7 @@ end;
|
|||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier))))))))
|
||||
(identifier)))))))
|
||||
(record_component_association_list
|
||||
(component_choice_list
|
||||
(identifier))
|
||||
|
|
|
|||
|
|
@ -21,66 +21,52 @@ end P;
|
|||
(subprogram_body
|
||||
(subprogram_specification
|
||||
(procedure_specification
|
||||
(name
|
||||
(identifier))))
|
||||
(identifier)))
|
||||
(non_empty_declarative_part
|
||||
(declarative_item_pragma
|
||||
(renaming_declaration
|
||||
(object_renaming_declaration
|
||||
(identifier)
|
||||
(name
|
||||
(identifier)))))
|
||||
(identifier))))
|
||||
(declarative_item_pragma
|
||||
(renaming_declaration
|
||||
(object_renaming_declaration
|
||||
(identifier)
|
||||
(name
|
||||
(identifier))
|
||||
(name
|
||||
(identifier)))))
|
||||
(identifier)
|
||||
(identifier))))
|
||||
(declarative_item_pragma
|
||||
(renaming_declaration
|
||||
(exception_renaming_declaration
|
||||
(identifier)
|
||||
(name
|
||||
(identifier)))))
|
||||
(identifier))))
|
||||
(declarative_item_pragma
|
||||
(renaming_declaration
|
||||
(package_renaming_declaration
|
||||
(name
|
||||
(identifier))
|
||||
(name
|
||||
(identifier)
|
||||
(name
|
||||
(identifier))))))
|
||||
(identifier)
|
||||
(identifier)
|
||||
(identifier))))
|
||||
(declarative_item_pragma
|
||||
(renaming_declaration
|
||||
(subprogram_renaming_declaration
|
||||
(subprogram_specification
|
||||
(procedure_specification
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(non_empty_parameter_profile
|
||||
(formal_part
|
||||
(parameter_specification_list
|
||||
(parameter_specification
|
||||
(defining_identifier_list
|
||||
(identifier))
|
||||
(name
|
||||
(identifier))))))))
|
||||
(name
|
||||
(identifier)))))
|
||||
(identifier)))))))
|
||||
(identifier))))
|
||||
(declarative_item_pragma
|
||||
(renaming_declaration
|
||||
(generic_renaming_declaration
|
||||
(name
|
||||
(identifier))
|
||||
(name
|
||||
(identifier))))))
|
||||
(identifier)
|
||||
(identifier)))))
|
||||
(handled_sequence_of_statements
|
||||
(sequence_of_statements
|
||||
(statement
|
||||
(simple_statement
|
||||
(null_statement)))))
|
||||
(name
|
||||
(identifier))))))
|
||||
(identifier)))))
|
||||
|
|
|
|||
|
|
@ -13,8 +13,7 @@ end;
|
|||
(compilation_unit
|
||||
(proper_body
|
||||
(package_body
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(non_empty_declarative_part
|
||||
(declarative_item_pragma
|
||||
(body_stub
|
||||
|
|
@ -22,8 +21,7 @@ end;
|
|||
(overriding_indicator)
|
||||
(subprogram_specification
|
||||
(procedure_specification
|
||||
(name
|
||||
(identifier))))
|
||||
(identifier)))
|
||||
(aspect_specification
|
||||
(aspect_mark_list
|
||||
(aspect_association
|
||||
|
|
@ -35,12 +33,10 @@ end;
|
|||
(overriding_indicator)
|
||||
(subprogram_specification
|
||||
(function_specification
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(parameter_and_result_profile
|
||||
(result_profile
|
||||
(name
|
||||
(identifier))))))
|
||||
(identifier)))))
|
||||
(aspect_specification
|
||||
(aspect_mark_list
|
||||
(aspect_association
|
||||
|
|
@ -61,8 +57,7 @@ end;
|
|||
(compilation_unit
|
||||
(proper_body
|
||||
(package_body
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(non_empty_declarative_part
|
||||
(declarative_item_pragma
|
||||
(body_stub
|
||||
|
|
@ -83,15 +78,13 @@ end P;
|
|||
(compilation_unit
|
||||
(proper_body
|
||||
(package_body
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(non_empty_declarative_part
|
||||
(declarative_item_pragma
|
||||
(body_stub
|
||||
(protected_body_stub
|
||||
(identifier)))))
|
||||
(name
|
||||
(identifier))))))
|
||||
(identifier)))))
|
||||
|
||||
================================================================================
|
||||
Separate task
|
||||
|
|
@ -107,12 +100,10 @@ end P;
|
|||
(compilation_unit
|
||||
(proper_body
|
||||
(package_body
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(non_empty_declarative_part
|
||||
(declarative_item_pragma
|
||||
(body_stub
|
||||
(task_body_stub
|
||||
(identifier)))))
|
||||
(name
|
||||
(identifier))))))
|
||||
(identifier)))))
|
||||
|
|
|
|||
|
|
@ -18,8 +18,7 @@ end;
|
|||
(subprogram_body
|
||||
(subprogram_specification
|
||||
(procedure_specification
|
||||
(name
|
||||
(identifier))))
|
||||
(identifier)))
|
||||
(handled_sequence_of_statements
|
||||
(sequence_of_statements
|
||||
(statement
|
||||
|
|
@ -32,8 +31,7 @@ end;
|
|||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier)))))))))
|
||||
(identifier))))))))
|
||||
(sequence_of_statements
|
||||
(statement
|
||||
(simple_statement
|
||||
|
|
@ -47,8 +45,7 @@ end;
|
|||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier))))))
|
||||
(identifier)))))
|
||||
(relational_operator)
|
||||
(simple_expression
|
||||
(term
|
||||
|
|
@ -81,8 +78,7 @@ end P;
|
|||
(subprogram_body
|
||||
(subprogram_specification
|
||||
(procedure_specification
|
||||
(name
|
||||
(identifier))))
|
||||
(identifier)))
|
||||
(handled_sequence_of_statements
|
||||
(sequence_of_statements
|
||||
(statement
|
||||
|
|
@ -91,21 +87,17 @@ end P;
|
|||
(iteration_scheme
|
||||
(iterator_specification
|
||||
(identifier)
|
||||
(name
|
||||
(identifier)
|
||||
(attribute_reference
|
||||
(identifier)
|
||||
(name
|
||||
(attribute_reference
|
||||
(name
|
||||
(identifier))
|
||||
(tick)
|
||||
(attribute_designator
|
||||
(identifier)))))))
|
||||
(tick)
|
||||
(attribute_designator
|
||||
(identifier)))))
|
||||
(sequence_of_statements
|
||||
(statement
|
||||
(simple_statement
|
||||
(goto_statement
|
||||
(name
|
||||
(identifier)))))
|
||||
(identifier))))
|
||||
(label
|
||||
(identifier))))))
|
||||
(statement
|
||||
|
|
@ -114,8 +106,7 @@ end P;
|
|||
(iteration_scheme
|
||||
(iterator_specification
|
||||
(identifier)
|
||||
(name
|
||||
(identifier))))
|
||||
(identifier)))
|
||||
(sequence_of_statements
|
||||
(statement
|
||||
(simple_statement
|
||||
|
|
@ -128,8 +119,7 @@ end P;
|
|||
(factor
|
||||
(primary
|
||||
(numeric_literal)))))))))))))))))
|
||||
(name
|
||||
(identifier))))))
|
||||
(identifier)))))
|
||||
|
||||
================================================================================
|
||||
Named loop
|
||||
|
|
@ -151,8 +141,7 @@ end;
|
|||
(subprogram_body
|
||||
(subprogram_specification
|
||||
(procedure_specification
|
||||
(name
|
||||
(identifier))))
|
||||
(identifier)))
|
||||
(handled_sequence_of_statements
|
||||
(sequence_of_statements
|
||||
(statement
|
||||
|
|
@ -164,8 +153,7 @@ end;
|
|||
(statement
|
||||
(simple_statement
|
||||
(exit_statement
|
||||
(name
|
||||
(identifier))))))
|
||||
(identifier)))))
|
||||
(identifier))))))))))
|
||||
|
||||
================================================================================
|
||||
|
|
@ -188,12 +176,10 @@ end F;
|
|||
(subprogram_body
|
||||
(subprogram_specification
|
||||
(function_specification
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(parameter_and_result_profile
|
||||
(result_profile
|
||||
(name
|
||||
(identifier))))))
|
||||
(identifier)))))
|
||||
(handled_sequence_of_statements
|
||||
(sequence_of_statements
|
||||
(statement
|
||||
|
|
@ -205,8 +191,7 @@ end F;
|
|||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier)))))))))))
|
||||
(identifier))))))))))
|
||||
(statement
|
||||
(compound_statement
|
||||
(extended_return_statement
|
||||
|
|
@ -214,8 +199,7 @@ end F;
|
|||
(identifier)
|
||||
(return_subtype_indication
|
||||
(subtype_indication
|
||||
(name
|
||||
(identifier))))
|
||||
(identifier)))
|
||||
(assign_value
|
||||
(expression
|
||||
(relation
|
||||
|
|
@ -226,22 +210,21 @@ end F;
|
|||
(aggregate
|
||||
(record_aggregate
|
||||
(record_component_association_list
|
||||
(component_choice_list
|
||||
(identifier))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal))))))))))))))))))
|
||||
(component_choice_list
|
||||
(identifier))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal))))))))))))))))))
|
||||
(handled_sequence_of_statements
|
||||
(sequence_of_statements
|
||||
(statement
|
||||
(simple_statement
|
||||
(null_statement))))))))))
|
||||
(name
|
||||
(identifier))))))
|
||||
(identifier)))))
|
||||
|
||||
================================================================================
|
||||
Procedure call
|
||||
|
|
@ -260,23 +243,20 @@ end P;
|
|||
(subprogram_body
|
||||
(subprogram_specification
|
||||
(procedure_specification
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(non_empty_parameter_profile
|
||||
(formal_part
|
||||
(parameter_specification_list
|
||||
(parameter_specification
|
||||
(defining_identifier_list
|
||||
(identifier))
|
||||
(name
|
||||
(identifier))))))))
|
||||
(identifier)))))))
|
||||
(handled_sequence_of_statements
|
||||
(sequence_of_statements
|
||||
(statement
|
||||
(simple_statement
|
||||
(procedure_call_statement
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(actual_parameter_part
|
||||
(parameter_association
|
||||
(expression
|
||||
|
|
@ -293,10 +273,8 @@ end P;
|
|||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier)))))))))))))))
|
||||
(name
|
||||
(identifier))))))
|
||||
(identifier))))))))))))))
|
||||
(identifier)))))
|
||||
|
||||
================================================================================
|
||||
Raise exception
|
||||
|
|
@ -316,20 +294,17 @@ end;
|
|||
(subprogram_body
|
||||
(subprogram_specification
|
||||
(procedure_specification
|
||||
(name
|
||||
(identifier))))
|
||||
(identifier)))
|
||||
(handled_sequence_of_statements
|
||||
(sequence_of_statements
|
||||
(statement
|
||||
(simple_statement
|
||||
(raise_statement
|
||||
(name
|
||||
(identifier)))))
|
||||
(identifier))))
|
||||
(statement
|
||||
(simple_statement
|
||||
(raise_statement
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
|
|
@ -356,23 +331,20 @@ end;
|
|||
(subprogram_body
|
||||
(subprogram_specification
|
||||
(procedure_specification
|
||||
(name
|
||||
(identifier))))
|
||||
(identifier)))
|
||||
(non_empty_declarative_part
|
||||
(declarative_item_pragma
|
||||
(object_declaration
|
||||
(defining_identifier_list
|
||||
(identifier))
|
||||
(subtype_indication
|
||||
(name
|
||||
(identifier))))))
|
||||
(identifier)))))
|
||||
(handled_sequence_of_statements
|
||||
(sequence_of_statements
|
||||
(statement
|
||||
(simple_statement
|
||||
(assignment_statement
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(assign_value
|
||||
(expression
|
||||
(relation
|
||||
|
|
@ -380,21 +352,19 @@ end;
|
|||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(function_call
|
||||
(name
|
||||
(identifier))
|
||||
(actual_parameter_part
|
||||
(parameter_association
|
||||
(component_choice_list
|
||||
(identifier))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal)))))))))))))))))))))))))))
|
||||
(function_call
|
||||
(identifier)
|
||||
(actual_parameter_part
|
||||
(parameter_association
|
||||
(component_choice_list
|
||||
(identifier))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal))))))))))))))))))))))))))
|
||||
|
||||
================================================================================
|
||||
if statement
|
||||
|
|
@ -430,8 +400,7 @@ end P;
|
|||
(subprogram_body
|
||||
(subprogram_specification
|
||||
(procedure_specification
|
||||
(name
|
||||
(identifier))))
|
||||
(identifier)))
|
||||
(handled_sequence_of_statements
|
||||
(sequence_of_statements
|
||||
(statement
|
||||
|
|
@ -443,8 +412,7 @@ end P;
|
|||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier))))))
|
||||
(identifier)))))
|
||||
(relational_operator)
|
||||
(simple_expression
|
||||
(term
|
||||
|
|
@ -456,8 +424,7 @@ end P;
|
|||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier))))))
|
||||
(identifier)))))
|
||||
(relational_operator)
|
||||
(simple_expression
|
||||
(term
|
||||
|
|
@ -480,8 +447,7 @@ end P;
|
|||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier))))))
|
||||
(identifier)))))
|
||||
(relational_operator)
|
||||
(simple_expression
|
||||
(term
|
||||
|
|
@ -498,8 +464,7 @@ end P;
|
|||
(defining_identifier_list
|
||||
(identifier))
|
||||
(subtype_indication
|
||||
(name
|
||||
(identifier))))))
|
||||
(identifier)))))
|
||||
(handled_sequence_of_statements
|
||||
(sequence_of_statements
|
||||
(statement
|
||||
|
|
@ -509,8 +474,7 @@ end P;
|
|||
(exception_handler
|
||||
(exception_choice_list
|
||||
(exception_choice
|
||||
(name
|
||||
(identifier))))
|
||||
(identifier)))
|
||||
(sequence_of_statements
|
||||
(statement
|
||||
(simple_statement
|
||||
|
|
@ -524,8 +488,7 @@ end P;
|
|||
(statement
|
||||
(simple_statement
|
||||
(null_statement))))))))))))))
|
||||
(name
|
||||
(identifier))))))
|
||||
(identifier)))))
|
||||
|
||||
================================================================================
|
||||
Case statement
|
||||
|
|
@ -549,8 +512,7 @@ end;
|
|||
(subprogram_body
|
||||
(subprogram_specification
|
||||
(procedure_specification
|
||||
(name
|
||||
(identifier))))
|
||||
(identifier)))
|
||||
(handled_sequence_of_statements
|
||||
(sequence_of_statements
|
||||
(statement
|
||||
|
|
@ -562,21 +524,19 @@ end;
|
|||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(function_call
|
||||
(name
|
||||
(identifier))
|
||||
(actual_parameter_part
|
||||
(parameter_association
|
||||
(component_choice_list
|
||||
(identifier))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal)))))))))))))))))
|
||||
(function_call
|
||||
(identifier)
|
||||
(actual_parameter_part
|
||||
(parameter_association
|
||||
(component_choice_list
|
||||
(identifier))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal))))))))))))))))
|
||||
(case_statement_alternative
|
||||
(discrete_choice_list
|
||||
(discrete_choice
|
||||
|
|
@ -585,14 +545,12 @@ end;
|
|||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(character_literal))))))
|
||||
(character_literal)))))
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(character_literal)))))))))
|
||||
(character_literal))))))))
|
||||
(sequence_of_statements
|
||||
(statement
|
||||
(simple_statement
|
||||
|
|
@ -606,8 +564,7 @@ end;
|
|||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(character_literal)))))))))
|
||||
(character_literal))))))))
|
||||
(discrete_choice
|
||||
(expression
|
||||
(relation
|
||||
|
|
@ -615,8 +572,7 @@ end;
|
|||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(character_literal))))))))))
|
||||
(character_literal)))))))))
|
||||
(sequence_of_statements
|
||||
(statement
|
||||
(simple_statement
|
||||
|
|
@ -640,15 +596,13 @@ end;
|
|||
(subprogram_body
|
||||
(subprogram_specification
|
||||
(procedure_specification
|
||||
(name
|
||||
(identifier))))
|
||||
(identifier)))
|
||||
(handled_sequence_of_statements
|
||||
(sequence_of_statements
|
||||
(statement
|
||||
(simple_statement
|
||||
(assignment_statement
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(assign_value
|
||||
(expression
|
||||
(relation
|
||||
|
|
@ -658,13 +612,11 @@ end;
|
|||
(primary
|
||||
(allocator
|
||||
(subtype_indication_paren_constraint
|
||||
(name
|
||||
(identifier))))))))))))))
|
||||
(identifier)))))))))))))
|
||||
(statement
|
||||
(simple_statement
|
||||
(assignment_statement
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(assign_value
|
||||
(expression
|
||||
(relation
|
||||
|
|
@ -674,39 +626,34 @@ end;
|
|||
(primary
|
||||
(allocator
|
||||
(subpool_specification
|
||||
(name
|
||||
(identifier)
|
||||
(name
|
||||
(identifier))))
|
||||
(identifier)
|
||||
(identifier))
|
||||
(subtype_indication_paren_constraint
|
||||
(name
|
||||
(qualified_expression
|
||||
(name
|
||||
(identifier))
|
||||
(tick)
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(aggregate
|
||||
(record_aggregate
|
||||
(record_component_association_list
|
||||
(component_choice_list
|
||||
(identifier))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal))))))))))))))))))))))))))))))))))))
|
||||
(qualified_expression
|
||||
(identifier)
|
||||
(tick)
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(aggregate
|
||||
(record_aggregate
|
||||
(record_component_association_list
|
||||
(component_choice_list
|
||||
(identifier))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal)))))))))))))))))))))))))))))))))))
|
||||
|
||||
|
||||
========
|
||||
================================================================================
|
||||
Filtered for loops
|
||||
========
|
||||
================================================================================
|
||||
|
||||
procedure P is
|
||||
begin
|
||||
|
|
@ -715,49 +662,46 @@ begin
|
|||
end loop;
|
||||
end;
|
||||
|
||||
-------
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(compilation
|
||||
(compilation_unit
|
||||
(proper_body
|
||||
(subprogram_body
|
||||
(subprogram_specification
|
||||
(procedure_specification
|
||||
(name
|
||||
(identifier))))
|
||||
(handled_sequence_of_statements
|
||||
(sequence_of_statements
|
||||
(statement
|
||||
(compound_statement
|
||||
(loop_statement
|
||||
(iteration_scheme
|
||||
(iterator_specification
|
||||
(identifier)
|
||||
(name
|
||||
(identifier))
|
||||
(iterator_filter
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier))))))
|
||||
(relational_operator)
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal))))))))))
|
||||
(sequence_of_statements
|
||||
(statement
|
||||
(simple_statement
|
||||
(null_statement)))))))))))))
|
||||
(compilation
|
||||
(compilation_unit
|
||||
(proper_body
|
||||
(subprogram_body
|
||||
(subprogram_specification
|
||||
(procedure_specification
|
||||
(identifier)))
|
||||
(handled_sequence_of_statements
|
||||
(sequence_of_statements
|
||||
(statement
|
||||
(compound_statement
|
||||
(loop_statement
|
||||
(iteration_scheme
|
||||
(iterator_specification
|
||||
(identifier)
|
||||
(identifier)
|
||||
(iterator_filter
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(identifier)))))
|
||||
(relational_operator)
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal))))))))))
|
||||
(sequence_of_statements
|
||||
(statement
|
||||
(simple_statement
|
||||
(null_statement)))))))))))))
|
||||
|
||||
=======
|
||||
================================================================================
|
||||
Assignment target name
|
||||
=======
|
||||
================================================================================
|
||||
|
||||
procedure P is
|
||||
begin
|
||||
|
|
@ -765,86 +709,75 @@ begin
|
|||
Another_Very_Long.And_Complex (Expression) := Function_Call (@);
|
||||
end;
|
||||
|
||||
------
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(compilation
|
||||
(compilation_unit
|
||||
(proper_body
|
||||
(subprogram_body
|
||||
(subprogram_specification
|
||||
(procedure_specification
|
||||
(name
|
||||
(identifier))))
|
||||
(handled_sequence_of_statements
|
||||
(sequence_of_statements
|
||||
(statement
|
||||
(simple_statement
|
||||
(assignment_statement
|
||||
(name
|
||||
(function_call
|
||||
(name
|
||||
(identifier)
|
||||
(name
|
||||
(identifier)))
|
||||
(actual_parameter_part
|
||||
(parameter_association
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier))))))))))))
|
||||
(assign_value
|
||||
(compilation
|
||||
(compilation_unit
|
||||
(proper_body
|
||||
(subprogram_body
|
||||
(subprogram_specification
|
||||
(procedure_specification
|
||||
(identifier)))
|
||||
(handled_sequence_of_statements
|
||||
(sequence_of_statements
|
||||
(statement
|
||||
(simple_statement
|
||||
(assignment_statement
|
||||
(identifier)
|
||||
(function_call
|
||||
(identifier)
|
||||
(actual_parameter_part
|
||||
(parameter_association
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name))))
|
||||
(binary_adding_operator)
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal)))))))))))
|
||||
(statement
|
||||
(simple_statement
|
||||
(assignment_statement
|
||||
(name
|
||||
(function_call
|
||||
(name
|
||||
(identifier)
|
||||
(name
|
||||
(identifier)))
|
||||
(actual_parameter_part
|
||||
(parameter_association
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier))))))))))))
|
||||
(assign_value
|
||||
(identifier))))))))))
|
||||
(assign_value
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(target_name))))
|
||||
(binary_adding_operator)
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal)))))))))))
|
||||
(statement
|
||||
(simple_statement
|
||||
(assignment_statement
|
||||
(identifier)
|
||||
(function_call
|
||||
(identifier)
|
||||
(actual_parameter_part
|
||||
(parameter_association
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(function_call
|
||||
(name
|
||||
(identifier))
|
||||
(actual_parameter_part
|
||||
(parameter_association
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name)))))))))))))))))))))))))))
|
||||
(identifier))))))))))
|
||||
(assign_value
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(function_call
|
||||
(identifier)
|
||||
(actual_parameter_part
|
||||
(parameter_association
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(target_name))))))))))))))))))))))))))
|
||||
|
|
|
|||
|
|
@ -13,21 +13,17 @@ end;
|
|||
(compilation
|
||||
(compilation_unit
|
||||
(package_specification
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(null_procedure_declaration
|
||||
(procedure_specification
|
||||
(name
|
||||
(identifier))))
|
||||
(identifier)))
|
||||
(null_procedure_declaration
|
||||
(overriding_indicator)
|
||||
(procedure_specification
|
||||
(name
|
||||
(identifier))))
|
||||
(identifier)))
|
||||
(null_procedure_declaration
|
||||
(procedure_specification
|
||||
(name
|
||||
(identifier)))
|
||||
(identifier))
|
||||
(aspect_specification
|
||||
(aspect_mark_list
|
||||
(aspect_association
|
||||
|
|
@ -48,13 +44,11 @@ end;
|
|||
(compilation
|
||||
(compilation_unit
|
||||
(package_specification
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(subprogram_declaration
|
||||
(subprogram_specification
|
||||
(procedure_specification
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(non_empty_parameter_profile
|
||||
(formal_part
|
||||
(parameter_specification_list
|
||||
|
|
@ -62,13 +56,11 @@ end;
|
|||
(defining_identifier_list
|
||||
(identifier)
|
||||
(identifier))
|
||||
(name
|
||||
(identifier)))
|
||||
(identifier))
|
||||
(parameter_specification
|
||||
(defining_identifier_list
|
||||
(identifier))
|
||||
(name
|
||||
(identifier))))))))
|
||||
(identifier)))))))
|
||||
(aspect_specification
|
||||
(aspect_mark_list
|
||||
(aspect_association
|
||||
|
|
@ -89,19 +81,16 @@ end;
|
|||
(compilation
|
||||
(compilation_unit
|
||||
(package_specification
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(subprogram_declaration
|
||||
(subprogram_specification
|
||||
(procedure_specification
|
||||
(name
|
||||
(identifier)))))
|
||||
(identifier))))
|
||||
(subprogram_declaration
|
||||
(overriding_indicator)
|
||||
(subprogram_specification
|
||||
(procedure_specification
|
||||
(name
|
||||
(identifier))))
|
||||
(identifier)))
|
||||
(aspect_specification
|
||||
(aspect_mark_list
|
||||
(aspect_association
|
||||
|
|
@ -122,13 +111,11 @@ end;
|
|||
(compilation
|
||||
(compilation_unit
|
||||
(package_specification
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(subprogram_declaration
|
||||
(subprogram_specification
|
||||
(function_specification
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(parameter_and_result_profile
|
||||
(formal_part
|
||||
(parameter_specification_list
|
||||
|
|
@ -136,13 +123,11 @@ end;
|
|||
(defining_identifier_list
|
||||
(identifier)
|
||||
(identifier))
|
||||
(name
|
||||
(identifier)))))
|
||||
(identifier))))
|
||||
(result_profile
|
||||
(access_definition
|
||||
(null_exclusion)
|
||||
(name
|
||||
(identifier)))))))
|
||||
(identifier))))))
|
||||
(aspect_specification
|
||||
(aspect_mark_list
|
||||
(aspect_association
|
||||
|
|
@ -158,8 +143,7 @@ end;
|
|||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier))))))))))))))))
|
||||
(identifier)))))))))))))))
|
||||
|
||||
================================================================================
|
||||
subprogram body
|
||||
|
|
@ -179,39 +163,34 @@ end;
|
|||
(compilation_unit
|
||||
(proper_body
|
||||
(package_body
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(non_empty_declarative_part
|
||||
(declarative_item_pragma
|
||||
(proper_body
|
||||
(subprogram_body
|
||||
(subprogram_specification
|
||||
(procedure_specification
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(non_empty_parameter_profile
|
||||
(formal_part
|
||||
(parameter_specification_list
|
||||
(parameter_specification
|
||||
(defining_identifier_list
|
||||
(identifier))
|
||||
(name
|
||||
(identifier))))))))
|
||||
(identifier)))))))
|
||||
(non_empty_declarative_part
|
||||
(declarative_item_pragma
|
||||
(object_declaration
|
||||
(defining_identifier_list
|
||||
(identifier))
|
||||
(subtype_indication
|
||||
(name
|
||||
(identifier))))))
|
||||
(identifier)))))
|
||||
(handled_sequence_of_statements
|
||||
(sequence_of_statements
|
||||
(statement
|
||||
(simple_statement
|
||||
(null_statement)))))
|
||||
(name
|
||||
(identifier))))))))))
|
||||
(identifier)))))))))
|
||||
|
||||
================================================================================
|
||||
Expression function membership
|
||||
|
|
@ -226,36 +205,30 @@ function F2 (A : Integer) return Boolean
|
|||
(compilation_unit
|
||||
(expression_function_declaration
|
||||
(function_specification
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(parameter_and_result_profile
|
||||
(formal_part
|
||||
(parameter_specification_list
|
||||
(parameter_specification
|
||||
(defining_identifier_list
|
||||
(identifier))
|
||||
(name
|
||||
(identifier)))))
|
||||
(identifier))))
|
||||
(result_profile
|
||||
(name
|
||||
(identifier)))))
|
||||
(expression
|
||||
(relation
|
||||
(identifier))))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(identifier)))))
|
||||
(membership_choice_list
|
||||
(membership_choice
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier))))))
|
||||
(membership_choice_list
|
||||
(membership_choice
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier)))))))))))))
|
||||
|
||||
(identifier))))))))))))
|
||||
|
||||
================================================================================
|
||||
Expression function declare
|
||||
|
|
@ -270,49 +243,43 @@ function F2 (A : Integer) return Boolean
|
|||
(compilation_unit
|
||||
(expression_function_declaration
|
||||
(function_specification
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(parameter_and_result_profile
|
||||
(formal_part
|
||||
(parameter_specification_list
|
||||
(parameter_specification
|
||||
(defining_identifier_list
|
||||
(identifier))
|
||||
(name
|
||||
(identifier)))))
|
||||
(identifier))))
|
||||
(result_profile
|
||||
(name
|
||||
(identifier)))))
|
||||
(declare_expression
|
||||
(declare_item
|
||||
(object_declaration
|
||||
(defining_identifier_list
|
||||
(identifier))
|
||||
(subtype_indication
|
||||
(name
|
||||
(identifier)))
|
||||
(assign_value
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier)))))
|
||||
(binary_adding_operator)
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal))))))))))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier))))))))))))
|
||||
(identifier))))
|
||||
(declare_expression
|
||||
(declare_item
|
||||
(object_declaration
|
||||
(defining_identifier_list
|
||||
(identifier))
|
||||
(subtype_indication
|
||||
(identifier))
|
||||
(assign_value
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(identifier))))
|
||||
(binary_adding_operator)
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal))))))))))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(identifier)))))))))))
|
||||
|
||||
================================================================================
|
||||
Expression function raise
|
||||
|
|
@ -327,17 +294,14 @@ function F3 return Boolean
|
|||
(compilation_unit
|
||||
(expression_function_declaration
|
||||
(function_specification
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(parameter_and_result_profile
|
||||
(result_profile
|
||||
(name
|
||||
(identifier)))))
|
||||
(expression
|
||||
(relation
|
||||
(raise_expression
|
||||
(name
|
||||
(identifier))))))))
|
||||
(identifier))))
|
||||
(expression
|
||||
(relation
|
||||
(raise_expression
|
||||
(identifier)))))))
|
||||
|
||||
================================================================================
|
||||
Expression function simple
|
||||
|
|
@ -351,20 +315,17 @@ function F4 return Boolean is (True);
|
|||
(compilation_unit
|
||||
(expression_function_declaration
|
||||
(function_specification
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(parameter_and_result_profile
|
||||
(result_profile
|
||||
(name
|
||||
(identifier)))))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier)))))))))))
|
||||
(identifier))))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(identifier))))))))))
|
||||
|
||||
================================================================================
|
||||
Expression function if
|
||||
|
|
@ -379,64 +340,57 @@ function F (A : Integer) return Boolean
|
|||
(compilation_unit
|
||||
(expression_function_declaration
|
||||
(function_specification
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(parameter_and_result_profile
|
||||
(formal_part
|
||||
(parameter_specification_list
|
||||
(parameter_specification
|
||||
(defining_identifier_list
|
||||
(identifier))
|
||||
(name
|
||||
(identifier)))))
|
||||
(identifier))))
|
||||
(result_profile
|
||||
(name
|
||||
(identifier)))))
|
||||
(conditional_expression
|
||||
(if_expression
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier))))))
|
||||
(relational_operator)
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal))))))
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier))))))
|
||||
(relational_operator)
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal)))))))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier))))))))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier)))))))))))))
|
||||
(identifier))))
|
||||
(conditional_expression
|
||||
(if_expression
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(identifier)))))
|
||||
(relational_operator)
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal))))))
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(identifier)))))
|
||||
(relational_operator)
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal)))))))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(identifier)))))))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(identifier))))))))))))
|
||||
|
||||
================================================================================
|
||||
Expression function if extra parenthesis
|
||||
|
|
@ -451,57 +405,51 @@ function F5 (A : Integer) return Boolean
|
|||
(compilation_unit
|
||||
(expression_function_declaration
|
||||
(function_specification
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(parameter_and_result_profile
|
||||
(formal_part
|
||||
(parameter_specification_list
|
||||
(parameter_specification
|
||||
(defining_identifier_list
|
||||
(identifier))
|
||||
(name
|
||||
(identifier)))))
|
||||
(identifier))))
|
||||
(result_profile
|
||||
(name
|
||||
(identifier)))))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(conditional_expression
|
||||
(if_expression
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier))))))
|
||||
(relational_operator)
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal)))))))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier))))))))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier)))))))))))))))))))
|
||||
(identifier))))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(conditional_expression
|
||||
(if_expression
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(identifier)))))
|
||||
(relational_operator)
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal)))))))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(identifier)))))))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(identifier))))))))))))))))))
|
||||
|
||||
================================================================================
|
||||
Expression function case
|
||||
|
|
@ -518,79 +466,73 @@ function F (A : Integer) return Boolean
|
|||
(compilation_unit
|
||||
(expression_function_declaration
|
||||
(function_specification
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(parameter_and_result_profile
|
||||
(formal_part
|
||||
(parameter_specification_list
|
||||
(parameter_specification
|
||||
(defining_identifier_list
|
||||
(identifier))
|
||||
(name
|
||||
(identifier)))))
|
||||
(identifier))))
|
||||
(result_profile
|
||||
(name
|
||||
(identifier)))))
|
||||
(conditional_expression
|
||||
(case_expression
|
||||
(expression
|
||||
(relation
|
||||
(identifier))))
|
||||
(conditional_expression
|
||||
(case_expression
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(identifier))))
|
||||
(binary_adding_operator)
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal)))))))
|
||||
(case_expression_alternative
|
||||
(discrete_choice_list
|
||||
(discrete_choice
|
||||
(range_g
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier)))))
|
||||
(binary_adding_operator)
|
||||
(numeric_literal)))))
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal)))))))
|
||||
(case_expression_alternative
|
||||
(discrete_choice_list
|
||||
(discrete_choice
|
||||
(range_g
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal)))))
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal)))))))
|
||||
(discrete_choice
|
||||
(range_g
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal)))))
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal))))))))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier)))))))))
|
||||
(case_expression_alternative
|
||||
(discrete_choice_list
|
||||
(discrete_choice))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier))))))))))))))
|
||||
(discrete_choice
|
||||
(range_g
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal)))))
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal))))))))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(identifier))))))))
|
||||
(case_expression_alternative
|
||||
(discrete_choice_list
|
||||
(discrete_choice))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(identifier)))))))))))))
|
||||
|
||||
================================================================================
|
||||
Expression function array
|
||||
|
|
@ -598,43 +540,40 @@ Expression function array
|
|||
|
||||
function F return My_Array is (1 .. 2 => True);
|
||||
|
||||
------
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(compilation
|
||||
(compilation_unit
|
||||
(expression_function_declaration
|
||||
(function_specification
|
||||
(name
|
||||
(identifier))
|
||||
(parameter_and_result_profile
|
||||
(result_profile
|
||||
(name
|
||||
(identifier)))))
|
||||
(aggregate
|
||||
(array_aggregate
|
||||
(named_array_aggregate
|
||||
(array_component_association
|
||||
(discrete_choice_list
|
||||
(discrete_choice
|
||||
(range_g
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal)))))
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal))))))))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier)))))))))))))))
|
||||
(compilation
|
||||
(compilation_unit
|
||||
(expression_function_declaration
|
||||
(function_specification
|
||||
(identifier)
|
||||
(parameter_and_result_profile
|
||||
(result_profile
|
||||
(identifier))))
|
||||
(aggregate
|
||||
(array_aggregate
|
||||
(named_array_aggregate
|
||||
(array_component_association
|
||||
(discrete_choice_list
|
||||
(discrete_choice
|
||||
(range_g
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal)))))
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal))))))))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(identifier))))))))))))))
|
||||
|
||||
================================================================================
|
||||
Expression function quantified
|
||||
|
|
@ -650,39 +589,34 @@ function F (A : My_Array) return Boolean
|
|||
(compilation_unit
|
||||
(expression_function_declaration
|
||||
(function_specification
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(parameter_and_result_profile
|
||||
(formal_part
|
||||
(parameter_specification_list
|
||||
(parameter_specification
|
||||
(defining_identifier_list
|
||||
(identifier))
|
||||
(name
|
||||
(identifier)))))
|
||||
(identifier))))
|
||||
(result_profile
|
||||
(name
|
||||
(identifier)))))
|
||||
(quantified_expression
|
||||
(quantifier)
|
||||
(iterator_specification
|
||||
(identifier)
|
||||
(name
|
||||
(identifier)))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier))))))
|
||||
(relational_operator)
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal)))))))))))
|
||||
(identifier))))
|
||||
(quantified_expression
|
||||
(quantifier)
|
||||
(iterator_specification
|
||||
(identifier)
|
||||
(identifier))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(identifier)))))
|
||||
(relational_operator)
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal)))))))))))
|
||||
|
||||
================================================================================
|
||||
Operators
|
||||
|
|
@ -702,8 +636,7 @@ end "<";
|
|||
(overriding_indicator)
|
||||
(subprogram_specification
|
||||
(function_specification
|
||||
(name
|
||||
(string_literal))
|
||||
(string_literal)
|
||||
(parameter_and_result_profile
|
||||
(formal_part
|
||||
(parameter_specification_list
|
||||
|
|
@ -711,11 +644,9 @@ end "<";
|
|||
(defining_identifier_list
|
||||
(identifier)
|
||||
(identifier))
|
||||
(name
|
||||
(identifier)))))
|
||||
(identifier))))
|
||||
(result_profile
|
||||
(name
|
||||
(identifier))))))
|
||||
(identifier)))))
|
||||
(handled_sequence_of_statements
|
||||
(sequence_of_statements
|
||||
(statement
|
||||
|
|
@ -727,6 +658,5 @@ end "<";
|
|||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier)))))))))))))
|
||||
(identifier))))))))))))
|
||||
(string_literal)))))
|
||||
|
|
|
|||
|
|
@ -36,8 +36,7 @@ end P;
|
|||
(compilation_unit
|
||||
(proper_body
|
||||
(package_body
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(non_empty_declarative_part
|
||||
(declarative_item_pragma
|
||||
(object_declaration
|
||||
|
|
@ -52,8 +51,7 @@ end P;
|
|||
(parameter_specification
|
||||
(defining_identifier_list
|
||||
(identifier))
|
||||
(name
|
||||
(identifier)))))))
|
||||
(identifier))))))
|
||||
(task_item
|
||||
(entry_declaration
|
||||
(identifier)))
|
||||
|
|
@ -68,8 +66,7 @@ end P;
|
|||
(defining_identifier_list
|
||||
(identifier))
|
||||
(subtype_indication
|
||||
(name
|
||||
(identifier))))))
|
||||
(identifier)))))
|
||||
(handled_sequence_of_statements
|
||||
(sequence_of_statements
|
||||
(statement
|
||||
|
|
@ -81,8 +78,7 @@ end P;
|
|||
(parameter_specification
|
||||
(defining_identifier_list
|
||||
(identifier))
|
||||
(name
|
||||
(identifier)))))
|
||||
(identifier))))
|
||||
(handled_sequence_of_statements
|
||||
(sequence_of_statements
|
||||
(statement
|
||||
|
|
@ -95,8 +91,7 @@ end P;
|
|||
(timed_entry_call
|
||||
(entry_call_alternative
|
||||
(procedure_call_statement
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(actual_parameter_part
|
||||
(parameter_association
|
||||
(expression
|
||||
|
|
@ -122,8 +117,7 @@ end P;
|
|||
(conditional_entry_call
|
||||
(entry_call_alternative
|
||||
(procedure_call_statement
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(actual_parameter_part
|
||||
(parameter_association
|
||||
(expression
|
||||
|
|
@ -138,8 +132,7 @@ end P;
|
|||
(simple_statement
|
||||
(null_statement))))))))))
|
||||
(identifier)))))
|
||||
(name
|
||||
(identifier))))))
|
||||
(identifier)))))
|
||||
|
||||
================================================================================
|
||||
Task types
|
||||
|
|
@ -161,8 +154,7 @@ end;
|
|||
(compilation_unit
|
||||
(proper_body
|
||||
(package_body
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(non_empty_declarative_part
|
||||
(declarative_item_pragma
|
||||
(type_declaration
|
||||
|
|
@ -183,17 +175,14 @@ end;
|
|||
(parameter_specification
|
||||
(defining_identifier_list
|
||||
(identifier))
|
||||
(name
|
||||
(identifier)))))))
|
||||
(identifier))))))
|
||||
(identifier))))))
|
||||
(declarative_item_pragma
|
||||
(type_declaration
|
||||
(full_type_declaration
|
||||
(task_type_declaration
|
||||
(identifier)
|
||||
(interface_list
|
||||
(name
|
||||
(identifier)))
|
||||
(identifier)
|
||||
(task_definition
|
||||
(task_item
|
||||
(entry_declaration
|
||||
|
|
@ -225,8 +214,7 @@ end;
|
|||
(compilation_unit
|
||||
(proper_body
|
||||
(package_body
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(non_empty_declarative_part
|
||||
(declarative_item_pragma
|
||||
(proper_body
|
||||
|
|
@ -240,19 +228,17 @@ end;
|
|||
(asynchronous_select
|
||||
(triggering_alternative
|
||||
(procedure_call_statement
|
||||
(name
|
||||
(function_call
|
||||
(name
|
||||
(identifier))
|
||||
(actual_parameter_part
|
||||
(parameter_association
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal))))))))))))
|
||||
(function_call
|
||||
(identifier)
|
||||
(actual_parameter_part
|
||||
(parameter_association
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(numeric_literal)))))))))))
|
||||
(sequence_of_statements
|
||||
(statement
|
||||
(simple_statement
|
||||
|
|
@ -261,8 +247,7 @@ end;
|
|||
(statement
|
||||
(simple_statement
|
||||
(procedure_call_statement
|
||||
(name
|
||||
(identifier)))))))))))))))))))
|
||||
(identifier))))))))))))))))))
|
||||
(compilation_unit
|
||||
(statement
|
||||
(simple_statement
|
||||
|
|
@ -271,11 +256,9 @@ end;
|
|||
(statement
|
||||
(simple_statement
|
||||
(procedure_call_statement
|
||||
(name
|
||||
(identifier))))))
|
||||
(identifier)))))
|
||||
(compilation_unit
|
||||
(statement
|
||||
(simple_statement
|
||||
(procedure_call_statement
|
||||
(name
|
||||
(identifier)))))))
|
||||
(identifier))))))
|
||||
|
|
|
|||
|
|
@ -11,8 +11,7 @@ end P;
|
|||
(compilation
|
||||
(compilation_unit
|
||||
(package_specification
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(type_declaration
|
||||
(full_type_declaration
|
||||
(identifier)
|
||||
|
|
@ -29,8 +28,7 @@ end P;
|
|||
(factor
|
||||
(primary
|
||||
(numeric_literal))))))))))
|
||||
(name
|
||||
(identifier)))))
|
||||
(identifier))))
|
||||
|
||||
================================================================================
|
||||
Derived type
|
||||
|
|
@ -46,16 +44,14 @@ end P;
|
|||
(compilation
|
||||
(compilation_unit
|
||||
(package_specification
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(type_declaration
|
||||
(full_type_declaration
|
||||
(identifier)
|
||||
(type_definition
|
||||
(derived_type_definition
|
||||
(subtype_indication
|
||||
(name
|
||||
(identifier)))))
|
||||
(identifier))))
|
||||
(aspect_specification
|
||||
(aspect_mark_list
|
||||
(aspect_association
|
||||
|
|
@ -69,8 +65,7 @@ end P;
|
|||
(factor
|
||||
(primary
|
||||
(numeric_literal)))))))))))))
|
||||
(name
|
||||
(identifier)))))
|
||||
(identifier))))
|
||||
|
||||
================================================================================
|
||||
Modular types
|
||||
|
|
@ -85,8 +80,7 @@ end P;
|
|||
(compilation
|
||||
(compilation_unit
|
||||
(package_specification
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(type_declaration
|
||||
(full_type_declaration
|
||||
(identifier)
|
||||
|
|
@ -100,8 +94,7 @@ end P;
|
|||
(factor
|
||||
(primary
|
||||
(numeric_literal))))))))))))
|
||||
(name
|
||||
(identifier)))))
|
||||
(identifier))))
|
||||
|
||||
================================================================================
|
||||
Floats
|
||||
|
|
@ -118,16 +111,14 @@ end P;
|
|||
(compilation
|
||||
(compilation_unit
|
||||
(package_specification
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(type_declaration
|
||||
(full_type_declaration
|
||||
(identifier)
|
||||
(type_definition
|
||||
(derived_type_definition
|
||||
(subtype_indication
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(constraint
|
||||
(scalar_constraint
|
||||
(range_constraint
|
||||
|
|
@ -188,8 +179,7 @@ end P;
|
|||
(factor
|
||||
(primary
|
||||
(numeric_literal))))))))))))
|
||||
(name
|
||||
(identifier)))))
|
||||
(identifier))))
|
||||
|
||||
================================================================================
|
||||
Enumerations
|
||||
|
|
@ -205,8 +195,7 @@ end P;
|
|||
(compilation
|
||||
(compilation_unit
|
||||
(package_specification
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(type_declaration
|
||||
(full_type_declaration
|
||||
(identifier)
|
||||
|
|
@ -216,8 +205,7 @@ end P;
|
|||
(identifier)))))
|
||||
(aspect_clause
|
||||
(enumeration_representation_clause
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(enumeration_aggregate
|
||||
(array_aggregate
|
||||
(named_array_aggregate
|
||||
|
|
@ -230,8 +218,7 @@ end P;
|
|||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier))))))))))
|
||||
(identifier)))))))))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
|
|
@ -242,15 +229,13 @@ end P;
|
|||
(array_component_association
|
||||
(discrete_choice_list
|
||||
(discrete_choice
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(name
|
||||
(identifier))))))))))
|
||||
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
(term
|
||||
(factor
|
||||
(primary
|
||||
(identifier)))))))))
|
||||
(expression
|
||||
(relation
|
||||
(simple_expression
|
||||
|
|
@ -258,8 +243,7 @@ end P;
|
|||
(factor
|
||||
(primary
|
||||
(numeric_literal)))))))))))))
|
||||
(name
|
||||
(identifier)))))
|
||||
(identifier))))
|
||||
|
||||
================================================================================
|
||||
Subtypes
|
||||
|
|
@ -275,13 +259,11 @@ end P;
|
|||
(compilation
|
||||
(compilation_unit
|
||||
(package_specification
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(subtype_declaration
|
||||
(identifier)
|
||||
(subtype_indication
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(constraint
|
||||
(scalar_constraint
|
||||
(range_constraint
|
||||
|
|
@ -299,8 +281,7 @@ end P;
|
|||
(subtype_declaration
|
||||
(identifier)
|
||||
(subtype_indication
|
||||
(name
|
||||
(identifier))
|
||||
(identifier)
|
||||
(constraint
|
||||
(index_constraint
|
||||
(discrete_range
|
||||
|
|
@ -327,5 +308,4 @@ end P;
|
|||
(factor
|
||||
(primary
|
||||
(numeric_literal)))))))))))
|
||||
(name
|
||||
(identifier)))))
|
||||
(identifier))))
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user