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