Change definition of name_list and defining_identifier_list
This solves conflicts
This commit is contained in:
parent
51a69f0fb4
commit
8f3c5919a7
|
|
@ -15,50 +15,35 @@ use Ada.Text_IO, System;
|
||||||
(with_clause
|
(with_clause
|
||||||
(name_list
|
(name_list
|
||||||
(name
|
(name
|
||||||
(selected_component
|
(identifier)
|
||||||
|
(identifier))
|
||||||
(name
|
(name
|
||||||
(direct_name
|
|
||||||
(identifier)))
|
|
||||||
(selector_name
|
|
||||||
(direct_name
|
|
||||||
(identifier)))))
|
(identifier)))))
|
||||||
(name
|
|
||||||
(direct_name
|
|
||||||
(identifier))))))
|
|
||||||
(comment)
|
(comment)
|
||||||
(compilation_unit
|
(compilation_unit
|
||||||
(with_clause
|
(with_clause
|
||||||
(name_list
|
(name_list
|
||||||
(name
|
(name
|
||||||
(direct_name
|
(identifier)))))
|
||||||
(identifier))))))
|
|
||||||
(comment)
|
(comment)
|
||||||
(compilation_unit
|
(compilation_unit
|
||||||
(with_clause
|
(with_clause
|
||||||
(name_list
|
(name_list
|
||||||
(name
|
(name
|
||||||
(direct_name
|
(identifier)))))
|
||||||
(identifier))))))
|
|
||||||
(compilation_unit
|
(compilation_unit
|
||||||
(with_clause
|
(with_clause
|
||||||
(name_list
|
(name_list
|
||||||
(name
|
(name
|
||||||
(direct_name
|
(identifier)))))
|
||||||
(identifier))))))
|
|
||||||
(compilation_unit
|
(compilation_unit
|
||||||
(use_clause
|
(use_clause
|
||||||
(name_list
|
(name_list
|
||||||
(name
|
(name
|
||||||
(selected_component
|
(identifier)
|
||||||
|
(identifier))
|
||||||
(name
|
(name
|
||||||
(direct_name
|
(identifier))))))
|
||||||
(identifier)))
|
|
||||||
(selector_name
|
|
||||||
(direct_name
|
|
||||||
(identifier)))))
|
|
||||||
(name
|
|
||||||
(direct_name
|
|
||||||
(identifier)))))))
|
|
||||||
|
|
||||||
=====
|
=====
|
||||||
Case insensitive
|
Case insensitive
|
||||||
|
|
@ -72,7 +57,8 @@ enD;
|
||||||
(compilation
|
(compilation
|
||||||
(compilation_unit
|
(compilation_unit
|
||||||
(package_specification
|
(package_specification
|
||||||
(name))))
|
(name
|
||||||
|
(identifier)))))
|
||||||
|
|
||||||
================================================================================
|
================================================================================
|
||||||
multiple compilation units
|
multiple compilation units
|
||||||
|
|
@ -93,28 +79,19 @@ end;
|
||||||
(compilation_unit
|
(compilation_unit
|
||||||
(package_specification
|
(package_specification
|
||||||
(name
|
(name
|
||||||
(direct_name
|
(identifier))
|
||||||
(identifier)))
|
|
||||||
(package_specification
|
(package_specification
|
||||||
(name
|
(name
|
||||||
(direct_name
|
(identifier))
|
||||||
|
(name
|
||||||
(identifier)))
|
(identifier)))
|
||||||
(name
|
(name
|
||||||
(direct_name
|
|
||||||
(identifier))))
|
(identifier))))
|
||||||
(name
|
|
||||||
(direct_name
|
|
||||||
(identifier)))))
|
|
||||||
(compilation_unit
|
(compilation_unit
|
||||||
(package_specification
|
(package_specification
|
||||||
(name
|
(name
|
||||||
(selected_component
|
(identifier)
|
||||||
(name
|
(identifier))
|
||||||
(direct_name
|
|
||||||
(identifier)))
|
|
||||||
(selector_name
|
|
||||||
(direct_name
|
|
||||||
(identifier)))))
|
|
||||||
(comment))))
|
(comment))))
|
||||||
|
|
||||||
=========
|
=========
|
||||||
|
|
@ -136,41 +113,29 @@ end Child.P2;
|
||||||
(proper_body
|
(proper_body
|
||||||
(package_body
|
(package_body
|
||||||
(name
|
(name
|
||||||
(selected_component
|
(identifier)
|
||||||
(name
|
(identifier))
|
||||||
(direct_name
|
|
||||||
(identifier)))
|
|
||||||
(selector_name
|
|
||||||
(direct_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
|
(name
|
||||||
(direct_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
|
(name
|
||||||
(direct_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
|
(name
|
||||||
(selected_component
|
(identifier)
|
||||||
(name
|
(identifier))))))
|
||||||
(direct_name
|
|
||||||
(identifier)))
|
|
||||||
(selector_name
|
|
||||||
(direct_name
|
|
||||||
(identifier)))))))))
|
|
||||||
|
|
||||||
================================================================================
|
================================================================================
|
||||||
separate
|
separate
|
||||||
|
|
@ -185,10 +150,8 @@ end;
|
||||||
(compilation_unit
|
(compilation_unit
|
||||||
(subunit
|
(subunit
|
||||||
(name
|
(name
|
||||||
(direct_name
|
(identifier))
|
||||||
(identifier)))
|
|
||||||
(proper_body
|
(proper_body
|
||||||
(package_body
|
(package_body
|
||||||
(name
|
(name
|
||||||
(direct_name
|
(identifier)))))))
|
||||||
(identifier))))))))
|
|
||||||
|
|
|
||||||
|
|
@ -12,8 +12,7 @@ end P;
|
||||||
(compilation_unit
|
(compilation_unit
|
||||||
(package_specification
|
(package_specification
|
||||||
(name
|
(name
|
||||||
(direct_name
|
(identifier))
|
||||||
(identifier)))
|
|
||||||
(type_declaration
|
(type_declaration
|
||||||
(full_type_declaration
|
(full_type_declaration
|
||||||
(identifier)
|
(identifier)
|
||||||
|
|
@ -31,8 +30,7 @@ end P;
|
||||||
(primary
|
(primary
|
||||||
(numeric_literal))))))))))
|
(numeric_literal))))))))))
|
||||||
(name
|
(name
|
||||||
(direct_name
|
(identifier)))))
|
||||||
(identifier))))))
|
|
||||||
|
|
||||||
================================================================================
|
================================================================================
|
||||||
Derived type
|
Derived type
|
||||||
|
|
@ -48,8 +46,7 @@ end P;
|
||||||
(compilation_unit
|
(compilation_unit
|
||||||
(package_specification
|
(package_specification
|
||||||
(name
|
(name
|
||||||
(direct_name
|
(identifier))
|
||||||
(identifier)))
|
|
||||||
(type_declaration
|
(type_declaration
|
||||||
(full_type_declaration
|
(full_type_declaration
|
||||||
(identifier)
|
(identifier)
|
||||||
|
|
@ -57,8 +54,6 @@ end P;
|
||||||
(derived_type_definition
|
(derived_type_definition
|
||||||
(subtype_indication
|
(subtype_indication
|
||||||
(name
|
(name
|
||||||
(direct_name
|
(identifier)))))))
|
||||||
(identifier))))))))
|
|
||||||
(name
|
(name
|
||||||
(direct_name
|
(identifier)))))
|
||||||
(identifier))))))
|
|
||||||
|
|
|
||||||
337
grammar.js
337
grammar.js
|
|
@ -1,18 +1,15 @@
|
||||||
function toCaseInsensitive(a) {
|
/**
|
||||||
var ca = a.charCodeAt(0);
|
* A case-insensitive keyword (copied from VHDL grammar)
|
||||||
if (ca>=97 && ca<=122) return `[${a}${a.toUpperCase()}]`;
|
*/
|
||||||
if (ca>=65 && ca<= 90) return `[${a.toLowerCase()}${a}]`;
|
const reservedWord = word =>
|
||||||
return a;
|
// word || // when debugging conflict error msgs
|
||||||
}
|
alias(reserved(caseInsensitive(word)), word)
|
||||||
|
;
|
||||||
function caseInsensitive(keyword) {
|
const reserved = regex => token(prec(2, new RegExp(regex)));
|
||||||
//return keyword; // Easier to read conflict messages
|
const caseInsensitive = word =>
|
||||||
return new RegExp(keyword
|
word.split('')
|
||||||
.split('')
|
.map(letter => `[${letter}${letter.toUpperCase()}]`)
|
||||||
.map(toCaseInsensitive)
|
.join('');
|
||||||
.join('')
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A list of rules
|
* A list of rules
|
||||||
|
|
@ -42,13 +39,9 @@ module.exports = grammar({
|
||||||
$.comment,
|
$.comment,
|
||||||
],
|
],
|
||||||
|
|
||||||
// word: $ => $.keyword,
|
|
||||||
word: $ => $.identifier,
|
word: $ => $.identifier,
|
||||||
|
|
||||||
conflicts: $ => [
|
conflicts: $ => [
|
||||||
// "name" can be either a simple name, or a defining_identifier_list
|
|
||||||
// [$.direct_name, $.defining_identifier_list],
|
|
||||||
|
|
||||||
// "function_specification is" could be either an expression function
|
// "function_specification is" could be either an expression function
|
||||||
// specification, or a function specification
|
// specification, or a function specification
|
||||||
// ??? Maybe we can merge both in the grammar
|
// ??? Maybe we can merge both in the grammar
|
||||||
|
|
@ -57,7 +50,7 @@ module.exports = grammar({
|
||||||
// ??? Maybe we can merge these
|
// ??? Maybe we can merge these
|
||||||
[$.null_procedure_declaration, $.subprogram_specification],
|
[$.null_procedure_declaration, $.subprogram_specification],
|
||||||
|
|
||||||
// "'for' direct_name * 'use'" could also be "'for' name * 'use'" as
|
// "'for' _direct_name * 'use'" could also be "'for' name * 'use'" as
|
||||||
// specified in at_clause.
|
// specified in at_clause.
|
||||||
[$.at_clause, $.name],
|
[$.at_clause, $.name],
|
||||||
|
|
||||||
|
|
@ -78,7 +71,6 @@ module.exports = grammar({
|
||||||
$.compilation_unit,
|
$.compilation_unit,
|
||||||
),
|
),
|
||||||
|
|
||||||
keyword: $ => /[a-zA-Z]+/,
|
|
||||||
identifier: $ =>
|
identifier: $ =>
|
||||||
/[a-zA-Z\u{80}-\u{10FFFF}][0-9a-zA-Z_\u{80}-\u{10FFFF}]*/u,
|
/[a-zA-Z\u{80}-\u{10FFFF}][0-9a-zA-Z_\u{80}-\u{10FFFF}]*/u,
|
||||||
comment: $ => token(seq('--', /.*/)),
|
comment: $ => token(seq('--', /.*/)),
|
||||||
|
|
@ -86,8 +78,7 @@ module.exports = grammar({
|
||||||
character_literal: $ => token(/'.'/),
|
character_literal: $ => token(/'.'/),
|
||||||
numeric_literal: $ => token(
|
numeric_literal: $ => token(
|
||||||
choice(
|
choice(
|
||||||
/[0-9]/,
|
/[0-9][0-9_]*(\.[0-9]+)?([eE][0-9_-]+)?/,
|
||||||
/[0-9_]+(\.[0-9]+)?([eE][0-9_-]+)?/,
|
|
||||||
/[0-9]+#[0-9a-fA-F._-]+#/
|
/[0-9]+#[0-9a-fA-F._-]+#/
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
|
@ -99,26 +90,37 @@ module.exports = grammar({
|
||||||
'\'', // But is not the start of a character_literal
|
'\'', // But is not the start of a character_literal
|
||||||
),
|
),
|
||||||
|
|
||||||
name_list: $ => comma_separated_list_of($.name),
|
// Simpler definition for games than the standard grammer
|
||||||
name: $ => choice(
|
// name: $ => choice(
|
||||||
$.direct_name,
|
// $._direct_name,
|
||||||
$.explicit_dereference,
|
// $.explicit_dereference,
|
||||||
$.selected_component,
|
// $.selected_component,
|
||||||
$.attribute_reference,
|
// $.attribute_reference,
|
||||||
$.function_call,
|
// $.function_call,
|
||||||
$.character_literal,
|
// $.character_literal,
|
||||||
$.qualified_expression,
|
// $.qualified_expression,
|
||||||
'@',
|
// '@',
|
||||||
),
|
// ),
|
||||||
defining_identifier_list: $ => comma_separated_list_of($.identifier),
|
// _direct_name: $ => choice(
|
||||||
direct_name: $ => choice(
|
// $.identifier,
|
||||||
|
// $.string_literal,
|
||||||
|
// ),
|
||||||
|
|
||||||
|
_direct_name: $ => $.identifier,
|
||||||
|
name: $ => seq(
|
||||||
$.identifier,
|
$.identifier,
|
||||||
$.string_literal,
|
repeat(seq(
|
||||||
|
'.',
|
||||||
|
$.identifier,
|
||||||
|
)),
|
||||||
),
|
),
|
||||||
|
name_list: $ => comma_separated_list_of($.name),
|
||||||
|
defining_identifier_list: $ => comma_separated_list_of($.identifier),
|
||||||
|
|
||||||
explicit_dereference: $ => seq(
|
explicit_dereference: $ => seq(
|
||||||
$.name,
|
$.name,
|
||||||
'.',
|
'.',
|
||||||
caseInsensitive('all'),
|
reservedWord('all'),
|
||||||
),
|
),
|
||||||
selected_component: $ => seq(
|
selected_component: $ => seq(
|
||||||
$.name,
|
$.name,
|
||||||
|
|
@ -126,9 +128,9 @@ module.exports = grammar({
|
||||||
$.selector_name,
|
$.selector_name,
|
||||||
),
|
),
|
||||||
selector_name: $ => choice(
|
selector_name: $ => choice(
|
||||||
$.direct_name,
|
$._direct_name,
|
||||||
$.character_literal,
|
$.character_literal,
|
||||||
caseInsensitive('others'),
|
reservedWord('others'),
|
||||||
),
|
),
|
||||||
attribute_reference: $ => choice(
|
attribute_reference: $ => choice(
|
||||||
seq(
|
seq(
|
||||||
|
|
@ -157,7 +159,7 @@ module.exports = grammar({
|
||||||
// value_sequence: $ => seq(
|
// value_sequence: $ => seq(
|
||||||
// '[',
|
// '[',
|
||||||
// optional(seq(
|
// optional(seq(
|
||||||
// field('is_parallel', caseInsensitive('parallel')),
|
// field('is_parallel', reservedWord('parallel')),
|
||||||
// optional(seq(
|
// optional(seq(
|
||||||
// '(',
|
// '(',
|
||||||
// $.chunk_specification,
|
// $.chunk_specification,
|
||||||
|
|
@ -171,18 +173,18 @@ module.exports = grammar({
|
||||||
$.simple_expression,
|
$.simple_expression,
|
||||||
seq(
|
seq(
|
||||||
$.identifier,
|
$.identifier,
|
||||||
caseInsensitive('in'),
|
reservedWord('in'),
|
||||||
$.discrete_subtype_definition,
|
$.discrete_subtype_definition,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
iterated_element_association: $ => seq(
|
iterated_element_association: $ => seq(
|
||||||
caseInsensitive('for'),
|
reservedWord('for'),
|
||||||
choice(
|
choice(
|
||||||
$.loop_parameter_specification,
|
$.loop_parameter_specification,
|
||||||
$.iterator_specification,
|
$.iterator_specification,
|
||||||
),
|
),
|
||||||
optional(seq(
|
optional(seq(
|
||||||
caseInsensitive('use'),
|
reservedWord('use'),
|
||||||
$.expression,
|
$.expression,
|
||||||
)),
|
)),
|
||||||
$.assoc_expression,
|
$.assoc_expression,
|
||||||
|
|
@ -193,8 +195,8 @@ module.exports = grammar({
|
||||||
),
|
),
|
||||||
loop_parameter_specification: $ => seq(
|
loop_parameter_specification: $ => seq(
|
||||||
$.identifier,
|
$.identifier,
|
||||||
caseInsensitive('in'),
|
reservedWord('in'),
|
||||||
optional(caseInsensitive('reverse')),
|
optional(reservedWord('reverse')),
|
||||||
$.discrete_subtype_definition,
|
$.discrete_subtype_definition,
|
||||||
optional($.iterator_filter),
|
optional($.iterator_filter),
|
||||||
),
|
),
|
||||||
|
|
@ -203,7 +205,7 @@ module.exports = grammar({
|
||||||
$.access_definition,
|
$.access_definition,
|
||||||
),
|
),
|
||||||
iterator_filter: $ => seq(
|
iterator_filter: $ => seq(
|
||||||
caseInsensitive('when'),
|
reservedWord('when'),
|
||||||
$.condition,
|
$.condition,
|
||||||
),
|
),
|
||||||
iterator_specification: $ => seq(
|
iterator_specification: $ => seq(
|
||||||
|
|
@ -213,19 +215,19 @@ module.exports = grammar({
|
||||||
$.loop_parameter_subtype_indication,
|
$.loop_parameter_subtype_indication,
|
||||||
)),
|
)),
|
||||||
choice(
|
choice(
|
||||||
caseInsensitive('in'),
|
reservedWord('in'),
|
||||||
caseInsensitive('of'),
|
reservedWord('of'),
|
||||||
),
|
),
|
||||||
optional(caseInsensitive('reverse')),
|
optional(reservedWord('reverse')),
|
||||||
$.name,
|
$.name,
|
||||||
optional($.iterator_filter),
|
optional($.iterator_filter),
|
||||||
),
|
),
|
||||||
attribute_designator: $ => choice(
|
attribute_designator: $ => choice(
|
||||||
$.identifier,
|
$.identifier,
|
||||||
caseInsensitive('access'),
|
reservedWord('access'),
|
||||||
caseInsensitive('delta'),
|
reservedWord('delta'),
|
||||||
caseInsensitive('digits'),
|
reservedWord('digits'),
|
||||||
caseInsensitive('mod'),
|
reservedWord('mod'),
|
||||||
),
|
),
|
||||||
function_call: $ => seq(
|
function_call: $ => seq(
|
||||||
$.name,
|
$.name,
|
||||||
|
|
@ -239,7 +241,7 @@ module.exports = grammar({
|
||||||
compilation_unit: $ => choice(
|
compilation_unit: $ => choice(
|
||||||
$.with_clause,
|
$.with_clause,
|
||||||
seq(
|
seq(
|
||||||
optional(caseInsensitive('private')),
|
optional(reservedWord('private')),
|
||||||
$._declarative_item,
|
$._declarative_item,
|
||||||
),
|
),
|
||||||
$.statement,
|
$.statement,
|
||||||
|
|
@ -276,38 +278,38 @@ module.exports = grammar({
|
||||||
';',
|
';',
|
||||||
),
|
),
|
||||||
package_specification: $ => seq(
|
package_specification: $ => seq(
|
||||||
caseInsensitive('package'),
|
reservedWord('package'),
|
||||||
field('name', $.name), // $.defining_program_unit_name),
|
field('name', $.name),
|
||||||
optional($.aspect_specification),
|
optional($.aspect_specification),
|
||||||
caseInsensitive('is'),
|
reservedWord('is'),
|
||||||
optional($._basic_declarative_item_list),
|
optional($._basic_declarative_item_list),
|
||||||
optional(seq(
|
optional(seq(
|
||||||
caseInsensitive('private'),
|
reservedWord('private'),
|
||||||
optional($._basic_declarative_item_list),
|
optional($._basic_declarative_item_list),
|
||||||
)),
|
)),
|
||||||
caseInsensitive('end'),
|
reservedWord('end'),
|
||||||
field('endname', optional($.name)),
|
field('endname', optional($.name)),
|
||||||
),
|
),
|
||||||
with_clause: $ => seq(
|
with_clause: $ => seq(
|
||||||
field('is_limited', optional(caseInsensitive('limited'))),
|
field('is_limited', optional(reservedWord('limited'))),
|
||||||
field('is_private', optional(caseInsensitive('private'))),
|
field('is_private', optional(reservedWord('private'))),
|
||||||
caseInsensitive('with'),
|
reservedWord('with'),
|
||||||
field('names', $.name_list),
|
field('names', $.name_list),
|
||||||
';',
|
';',
|
||||||
),
|
),
|
||||||
use_clause: $ => seq(
|
use_clause: $ => seq(
|
||||||
caseInsensitive('use'),
|
reservedWord('use'),
|
||||||
optional(seq(
|
optional(seq(
|
||||||
field('is_all', optional(caseInsensitive('all'))),
|
field('is_all', optional(reservedWord('all'))),
|
||||||
field('is_type', caseInsensitive('type')),
|
field('is_type', reservedWord('type')),
|
||||||
)),
|
)),
|
||||||
$.name_list,
|
$.name_list,
|
||||||
';',
|
';',
|
||||||
),
|
),
|
||||||
subunit: $ => seq(
|
subunit: $ => seq( // 10.1.3
|
||||||
caseInsensitive('separate'),
|
reservedWord('separate'),
|
||||||
'(',
|
'(',
|
||||||
$.name,
|
field('parent_unit_name', $.name),
|
||||||
')',
|
')',
|
||||||
$.proper_body,
|
$.proper_body,
|
||||||
),
|
),
|
||||||
|
|
@ -318,17 +320,17 @@ module.exports = grammar({
|
||||||
// $.protected_body,
|
// $.protected_body,
|
||||||
),
|
),
|
||||||
package_body: $ => seq(
|
package_body: $ => seq(
|
||||||
caseInsensitive('package'),
|
reservedWord('package'),
|
||||||
caseInsensitive('body'),
|
reservedWord('body'),
|
||||||
$.name,
|
$.name,
|
||||||
optional($.aspect_specification),
|
optional($.aspect_specification),
|
||||||
caseInsensitive('is'),
|
reservedWord('is'),
|
||||||
optional($.non_empty_declarative_part),
|
optional($.non_empty_declarative_part),
|
||||||
optional(seq(
|
optional(seq(
|
||||||
caseInsensitive('begin'),
|
reservedWord('begin'),
|
||||||
$.handled_sequence_of_statements,
|
$.handled_sequence_of_statements,
|
||||||
)),
|
)),
|
||||||
caseInsensitive('end'),
|
reservedWord('end'),
|
||||||
optional($.name),
|
optional($.name),
|
||||||
';',
|
';',
|
||||||
),
|
),
|
||||||
|
|
@ -355,7 +357,7 @@ module.exports = grammar({
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
range_constraint: $ => seq(
|
range_constraint: $ => seq(
|
||||||
caseInsensitive('range'),
|
reservedWord('range'),
|
||||||
$.range_g,
|
$.range_g,
|
||||||
),
|
),
|
||||||
condition: $ => seq(
|
condition: $ => seq(
|
||||||
|
|
@ -378,25 +380,25 @@ module.exports = grammar({
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
AND_relation_list: $ => repeat1(seq(
|
AND_relation_list: $ => repeat1(seq(
|
||||||
caseInsensitive('and'),
|
reservedWord('and'),
|
||||||
$.relation,
|
$.relation,
|
||||||
)),
|
)),
|
||||||
AND_THEN_relation_list: $ => repeat1(seq(
|
AND_THEN_relation_list: $ => repeat1(seq(
|
||||||
caseInsensitive('and'),
|
reservedWord('and'),
|
||||||
caseInsensitive('then'),
|
reservedWord('then'),
|
||||||
$.relation,
|
$.relation,
|
||||||
)),
|
)),
|
||||||
OR_relation_list: $ => repeat1(seq(
|
OR_relation_list: $ => repeat1(seq(
|
||||||
caseInsensitive('or'),
|
reservedWord('or'),
|
||||||
$.relation,
|
$.relation,
|
||||||
)),
|
)),
|
||||||
OR_ELSE_relation_list: $ => repeat1(seq(
|
OR_ELSE_relation_list: $ => repeat1(seq(
|
||||||
caseInsensitive('or'),
|
reservedWord('or'),
|
||||||
caseInsensitive('else'),
|
reservedWord('else'),
|
||||||
$.relation,
|
$.relation,
|
||||||
)),
|
)),
|
||||||
XOR_relation_list: $ => repeat1(seq(
|
XOR_relation_list: $ => repeat1(seq(
|
||||||
caseInsensitive('xor'),
|
reservedWord('xor'),
|
||||||
$.relation,
|
$.relation,
|
||||||
)),
|
)),
|
||||||
relation: $ => choice(
|
relation: $ => choice(
|
||||||
|
|
@ -409,8 +411,8 @@ module.exports = grammar({
|
||||||
),
|
),
|
||||||
// seq(
|
// seq(
|
||||||
// $.simple_expression,
|
// $.simple_expression,
|
||||||
// optional(caseInsensitive('not')),
|
// optional(reservedWord('not')),
|
||||||
// caseInsensitive('in'),
|
// reservedWord('in'),
|
||||||
// $.membership_choice_list,
|
// $.membership_choice_list,
|
||||||
// ),
|
// ),
|
||||||
// $.raise_expression,
|
// $.raise_expression,
|
||||||
|
|
@ -439,37 +441,37 @@ module.exports = grammar({
|
||||||
)),
|
)),
|
||||||
),
|
),
|
||||||
seq(
|
seq(
|
||||||
caseInsensitive('abs'),
|
reservedWord('abs'),
|
||||||
$.primary,
|
$.primary,
|
||||||
),
|
),
|
||||||
seq(
|
seq(
|
||||||
caseInsensitive('not'),
|
reservedWord('not'),
|
||||||
$.primary,
|
$.primary,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
primary: $ => choice(
|
primary: $ => choice(
|
||||||
$.numeric_literal,
|
$.numeric_literal,
|
||||||
caseInsensitive('null'),
|
reservedWord('null'),
|
||||||
$.aggregate,
|
$.aggregate,
|
||||||
$.name,
|
$.name,
|
||||||
// $.allocator,
|
// $.allocator,
|
||||||
),
|
),
|
||||||
access_definition: $ => seq(
|
access_definition: $ => seq(
|
||||||
optional($.null_exclusion),
|
optional($.null_exclusion),
|
||||||
caseInsensitive('access'),
|
reservedWord('access'),
|
||||||
choice(
|
choice(
|
||||||
seq(
|
seq(
|
||||||
optional(caseInsensitive('constant')),
|
optional(reservedWord('constant')),
|
||||||
$.name,
|
$.name,
|
||||||
),
|
),
|
||||||
seq(
|
seq(
|
||||||
optional(caseInsensitive('protected')),
|
optional(reservedWord('protected')),
|
||||||
caseInsensitive('procedure'),
|
reservedWord('procedure'),
|
||||||
optional($.non_empty_parameter_profile),
|
optional($.non_empty_parameter_profile),
|
||||||
),
|
),
|
||||||
seq(
|
seq(
|
||||||
optional(caseInsensitive('protected')),
|
optional(reservedWord('protected')),
|
||||||
caseInsensitive('function'),
|
reservedWord('function'),
|
||||||
$.parameter_and_result_profile,
|
$.parameter_and_result_profile,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
@ -523,13 +525,13 @@ module.exports = grammar({
|
||||||
record_component_association_list: $ => choice(
|
record_component_association_list: $ => choice(
|
||||||
// comma_separated_list_of($.record_component_association),
|
// comma_separated_list_of($.record_component_association),
|
||||||
seq(
|
seq(
|
||||||
caseInsensitive('null'),
|
reservedWord('null'),
|
||||||
caseInsensitive('record'),
|
reservedWord('record'),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
null_exclusion: $ => seq(
|
null_exclusion: $ => seq(
|
||||||
caseInsensitive('not'),
|
reservedWord('not'),
|
||||||
caseInsensitive('null'),
|
reservedWord('null'),
|
||||||
),
|
),
|
||||||
index_constraint: $ => seq(
|
index_constraint: $ => seq(
|
||||||
'(',
|
'(',
|
||||||
|
|
@ -537,12 +539,12 @@ module.exports = grammar({
|
||||||
')',
|
')',
|
||||||
),
|
),
|
||||||
digits_constraint: $ => seq(
|
digits_constraint: $ => seq(
|
||||||
caseInsensitive('digits'),
|
reservedWord('digits'),
|
||||||
$.simple_expression,
|
$.simple_expression,
|
||||||
optional($.range_constraint),
|
optional($.range_constraint),
|
||||||
),
|
),
|
||||||
delta_constraint: $ => seq(
|
delta_constraint: $ => seq(
|
||||||
caseInsensitive('delta'),
|
reservedWord('delta'),
|
||||||
$.simple_expression,
|
$.simple_expression,
|
||||||
optional($.range_constraint),
|
optional($.range_constraint),
|
||||||
),
|
),
|
||||||
|
|
@ -561,10 +563,10 @@ module.exports = grammar({
|
||||||
),
|
),
|
||||||
full_type_declaration: $ => choice(
|
full_type_declaration: $ => choice(
|
||||||
seq(
|
seq(
|
||||||
caseInsensitive('type'),
|
reservedWord('type'),
|
||||||
$.identifier,
|
$.identifier,
|
||||||
// optional($.known_discriminant_part),
|
// optional($.known_discriminant_part),
|
||||||
caseInsensitive('is'),
|
reservedWord('is'),
|
||||||
$.type_definition,
|
$.type_definition,
|
||||||
// optional($.aspect_specification),
|
// optional($.aspect_specification),
|
||||||
';',
|
';',
|
||||||
|
|
@ -587,39 +589,39 @@ module.exports = grammar({
|
||||||
// $.modular_type_definition,
|
// $.modular_type_definition,
|
||||||
),
|
),
|
||||||
signed_integer_type_definition: $ => seq(
|
signed_integer_type_definition: $ => seq(
|
||||||
caseInsensitive('range'),
|
reservedWord('range'),
|
||||||
$.simple_expression,
|
$.simple_expression,
|
||||||
'..',
|
'..',
|
||||||
$.simple_expression,
|
$.simple_expression,
|
||||||
),
|
),
|
||||||
derived_type_definition: $ => seq(
|
derived_type_definition: $ => seq(
|
||||||
optional(caseInsensitive('abstract')),
|
optional(reservedWord('abstract')),
|
||||||
optional(caseInsensitive('limited')),
|
optional(reservedWord('limited')),
|
||||||
caseInsensitive('new'),
|
reservedWord('new'),
|
||||||
$.subtype_indication,
|
$.subtype_indication,
|
||||||
optional(seq(
|
optional(seq(
|
||||||
// optional(seq(
|
// optional(seq(
|
||||||
// caseInsensitive('and'),
|
// reservedWord('and'),
|
||||||
// $.interface_list,
|
// $.interface_list,
|
||||||
// )),
|
// )),
|
||||||
$.record_extension_part,
|
$.record_extension_part,
|
||||||
)),
|
)),
|
||||||
),
|
),
|
||||||
record_extension_part: $ => seq(
|
record_extension_part: $ => seq(
|
||||||
caseInsensitive('with'),
|
reservedWord('with'),
|
||||||
$.record_definition,
|
$.record_definition,
|
||||||
),
|
),
|
||||||
record_definition: $ => choice(
|
record_definition: $ => choice(
|
||||||
seq(
|
seq(
|
||||||
caseInsensitive('record'),
|
reservedWord('record'),
|
||||||
$.component_list,
|
$.component_list,
|
||||||
caseInsensitive('end'),
|
reservedWord('end'),
|
||||||
caseInsensitive('record'),
|
reservedWord('record'),
|
||||||
optional($.identifier),
|
optional($.identifier),
|
||||||
),
|
),
|
||||||
seq(
|
seq(
|
||||||
caseInsensitive('null'),
|
reservedWord('null'),
|
||||||
caseInsensitive('record'),
|
reservedWord('record'),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
component_list: $ => choice(
|
component_list: $ => choice(
|
||||||
|
|
@ -628,7 +630,7 @@ module.exports = grammar({
|
||||||
// optional($.component_item),
|
// optional($.component_item),
|
||||||
// $.variant_part,
|
// $.variant_part,
|
||||||
// ),
|
// ),
|
||||||
caseInsensitive('null'),
|
reservedWord('null'),
|
||||||
),
|
),
|
||||||
component_item: $ => seq(
|
component_item: $ => seq(
|
||||||
$.component_declaration,
|
$.component_declaration,
|
||||||
|
|
@ -643,7 +645,7 @@ module.exports = grammar({
|
||||||
';'
|
';'
|
||||||
),
|
),
|
||||||
component_definition: $ => seq(
|
component_definition: $ => seq(
|
||||||
optional(caseInsensitive('aliased')),
|
optional(reservedWord('aliased')),
|
||||||
choice(
|
choice(
|
||||||
$.subtype_indication,
|
$.subtype_indication,
|
||||||
// $.access_definition,
|
// $.access_definition,
|
||||||
|
|
@ -654,8 +656,8 @@ module.exports = grammar({
|
||||||
abstract_subprogram_declaration: $ => seq(
|
abstract_subprogram_declaration: $ => seq(
|
||||||
optional($.overriding_indicator),
|
optional($.overriding_indicator),
|
||||||
$.subprogram_specification,
|
$.subprogram_specification,
|
||||||
caseInsensitive('is'),
|
reservedWord('is'),
|
||||||
caseInsensitive('abstract'),
|
reservedWord('abstract'),
|
||||||
$.aspect_specification,
|
$.aspect_specification,
|
||||||
';',
|
';',
|
||||||
),
|
),
|
||||||
|
|
@ -690,23 +692,24 @@ module.exports = grammar({
|
||||||
),
|
),
|
||||||
aspect_mark_list: $ => comma_separated_list_of($.aspect_association),
|
aspect_mark_list: $ => comma_separated_list_of($.aspect_association),
|
||||||
aspect_specification: $ => seq(
|
aspect_specification: $ => seq(
|
||||||
caseInsensitive('with'),
|
reservedWord('with'),
|
||||||
$.aspect_mark_list,
|
$.aspect_mark_list,
|
||||||
),
|
),
|
||||||
at_clause: $ => seq(
|
at_clause: $ => seq(
|
||||||
caseInsensitive('for'),
|
reservedWord('for'),
|
||||||
$.direct_name,
|
$.identifier,
|
||||||
caseInsensitive('use'),
|
// $._direct_name,
|
||||||
caseInsensitive('at'),
|
reservedWord('use'),
|
||||||
|
reservedWord('at'),
|
||||||
$.expression,
|
$.expression,
|
||||||
';',
|
';',
|
||||||
),
|
),
|
||||||
attribute_definition_clause: $ => seq(
|
attribute_definition_clause: $ => seq(
|
||||||
caseInsensitive('for'),
|
reservedWord('for'),
|
||||||
$.name,
|
$.name,
|
||||||
$.tick,
|
$.tick,
|
||||||
$.attribute_designator,
|
$.attribute_designator,
|
||||||
caseInsensitive('use'),
|
reservedWord('use'),
|
||||||
$.expression,
|
$.expression,
|
||||||
';',
|
';',
|
||||||
),
|
),
|
||||||
|
|
@ -719,9 +722,9 @@ module.exports = grammar({
|
||||||
choice_parameter_specification: $ => $.identifier, // ??? inline
|
choice_parameter_specification: $ => $.identifier, // ??? inline
|
||||||
component_clause: $ => seq(
|
component_clause: $ => seq(
|
||||||
$.name,
|
$.name,
|
||||||
caseInsensitive('at'),
|
reservedWord('at'),
|
||||||
field('position', $.expression),
|
field('position', $.expression),
|
||||||
caseInsensitive('range'),
|
reservedWord('range'),
|
||||||
field('first_bit', $.simple_expression),
|
field('first_bit', $.simple_expression),
|
||||||
'..',
|
'..',
|
||||||
field('last_bit', $.simple_expression),
|
field('last_bit', $.simple_expression),
|
||||||
|
|
@ -736,7 +739,7 @@ module.exports = grammar({
|
||||||
),
|
),
|
||||||
entry_declaration: $ => seq(
|
entry_declaration: $ => seq(
|
||||||
optional($.overriding_indicator),
|
optional($.overriding_indicator),
|
||||||
caseInsensitive('entry'),
|
reservedWord('entry'),
|
||||||
$.identifier,
|
$.identifier,
|
||||||
optional(seq(
|
optional(seq(
|
||||||
'(',
|
'(',
|
||||||
|
|
@ -749,26 +752,26 @@ module.exports = grammar({
|
||||||
),
|
),
|
||||||
enumeration_aggregate: $ => $.array_aggregate, // ??? inline
|
enumeration_aggregate: $ => $.array_aggregate, // ??? inline
|
||||||
enumeration_representation_clause: $ => seq(
|
enumeration_representation_clause: $ => seq(
|
||||||
caseInsensitive('for'),
|
reservedWord('for'),
|
||||||
$.name,
|
$.name,
|
||||||
caseInsensitive('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(
|
||||||
$.name,
|
$.name,
|
||||||
caseInsensitive('others'),
|
reservedWord('others'),
|
||||||
),
|
),
|
||||||
exception_declaration: $ => seq(
|
exception_declaration: $ => seq(
|
||||||
$.defining_identifier_list,
|
$.defining_identifier_list,
|
||||||
':',
|
':',
|
||||||
caseInsensitive('exception'),
|
reservedWord('exception'),
|
||||||
optional($.aspect_specification),
|
optional($.aspect_specification),
|
||||||
';',
|
';',
|
||||||
),
|
),
|
||||||
exception_handler: $ => seq(
|
exception_handler: $ => seq(
|
||||||
caseInsensitive('when'),
|
reservedWord('when'),
|
||||||
optional(seq(
|
optional(seq(
|
||||||
$.choice_parameter_specification,
|
$.choice_parameter_specification,
|
||||||
':',
|
':',
|
||||||
|
|
@ -784,7 +787,7 @@ module.exports = grammar({
|
||||||
expression_function_declaration: $ => seq(
|
expression_function_declaration: $ => seq(
|
||||||
optional($.overriding_indicator),
|
optional($.overriding_indicator),
|
||||||
$.function_specification,
|
$.function_specification,
|
||||||
caseInsensitive('is'),
|
reservedWord('is'),
|
||||||
'(',
|
'(',
|
||||||
$.expression,
|
$.expression,
|
||||||
')',
|
')',
|
||||||
|
|
@ -797,7 +800,7 @@ module.exports = grammar({
|
||||||
')',
|
')',
|
||||||
),
|
),
|
||||||
function_specification: $ => seq(
|
function_specification: $ => seq(
|
||||||
caseInsensitive('function'),
|
reservedWord('function'),
|
||||||
$.name,
|
$.name,
|
||||||
$.parameter_and_result_profile,
|
$.parameter_and_result_profile,
|
||||||
),
|
),
|
||||||
|
|
@ -806,7 +809,7 @@ module.exports = grammar({
|
||||||
$.generic_package_declaration,
|
$.generic_package_declaration,
|
||||||
),
|
),
|
||||||
generic_formal_part: $ => seq(
|
generic_formal_part: $ => seq(
|
||||||
caseInsensitive('generic'),
|
reservedWord('generic'),
|
||||||
repeat($.generic_formal_parameter_declaration),
|
repeat($.generic_formal_parameter_declaration),
|
||||||
),
|
),
|
||||||
generic_formal_parameter_declaration: $ => choice(
|
generic_formal_parameter_declaration: $ => choice(
|
||||||
|
|
@ -830,18 +833,18 @@ module.exports = grammar({
|
||||||
),
|
),
|
||||||
generic_instantiation: $ => seq(
|
generic_instantiation: $ => seq(
|
||||||
choice(
|
choice(
|
||||||
caseInsensitive('package'),
|
reservedWord('package'),
|
||||||
seq(
|
seq(
|
||||||
optional($.overriding_indicator),
|
optional($.overriding_indicator),
|
||||||
choice(
|
choice(
|
||||||
caseInsensitive('procedure'),
|
reservedWord('procedure'),
|
||||||
caseInsensitive('function'),
|
reservedWord('function'),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
$.name,
|
$.name,
|
||||||
caseInsensitive('is'),
|
reservedWord('is'),
|
||||||
caseInsensitive('new'),
|
reservedWord('new'),
|
||||||
$.name, // includes the generic_actual_part
|
$.name, // includes the generic_actual_part
|
||||||
optional($.aspect_specification),
|
optional($.aspect_specification),
|
||||||
';',
|
';',
|
||||||
|
|
@ -867,7 +870,7 @@ module.exports = grammar({
|
||||||
),
|
),
|
||||||
global_mode: $ => choice(
|
global_mode: $ => choice(
|
||||||
$.non_empty_mode,
|
$.non_empty_mode,
|
||||||
caseInsensitive('overriding'),
|
reservedWord('overriding'),
|
||||||
),
|
),
|
||||||
global_set: $ => prec.left(
|
global_set: $ => prec.left(
|
||||||
comma_separated_list_of($.name), // ??? name_list
|
comma_separated_list_of($.name), // ??? name_list
|
||||||
|
|
@ -875,44 +878,44 @@ module.exports = grammar({
|
||||||
handled_sequence_of_statements: $ => seq(
|
handled_sequence_of_statements: $ => seq(
|
||||||
$.sequence_of_statements,
|
$.sequence_of_statements,
|
||||||
optional(seq(
|
optional(seq(
|
||||||
caseInsensitive('exception'),
|
reservedWord('exception'),
|
||||||
$.exception_handler_list,
|
$.exception_handler_list,
|
||||||
)),
|
)),
|
||||||
),
|
),
|
||||||
label: $ => seq(
|
label: $ => seq(
|
||||||
'<<',
|
'<<',
|
||||||
field('statement_identifier', $.direct_name),
|
field('statement_identifier', $._direct_name),
|
||||||
'>>',
|
'>>',
|
||||||
),
|
),
|
||||||
mod_clause: $ => seq(
|
mod_clause: $ => seq(
|
||||||
caseInsensitive('at'),
|
reservedWord('at'),
|
||||||
caseInsensitive('mod'),
|
reservedWord('mod'),
|
||||||
$.expression,
|
$.expression,
|
||||||
';',
|
';',
|
||||||
),
|
),
|
||||||
non_empty_mode: $ => choice(
|
non_empty_mode: $ => choice(
|
||||||
caseInsensitive('in'),
|
reservedWord('in'),
|
||||||
seq(
|
seq(
|
||||||
caseInsensitive('in'),
|
reservedWord('in'),
|
||||||
caseInsensitive('out'),
|
reservedWord('out'),
|
||||||
),
|
),
|
||||||
caseInsensitive('out'),
|
reservedWord('out'),
|
||||||
),
|
),
|
||||||
null_procedure_declaration: $ => seq(
|
null_procedure_declaration: $ => seq(
|
||||||
optional($.overriding_indicator),
|
optional($.overriding_indicator),
|
||||||
$.procedure_specification,
|
$.procedure_specification,
|
||||||
caseInsensitive('is'),
|
reservedWord('is'),
|
||||||
caseInsensitive('null'),
|
reservedWord('null'),
|
||||||
// optional($.aspect_specification),
|
// optional($.aspect_specification),
|
||||||
),
|
),
|
||||||
null_statement: $ => seq(
|
null_statement: $ => seq(
|
||||||
caseInsensitive('null'),
|
reservedWord('null'),
|
||||||
';',
|
';',
|
||||||
),
|
),
|
||||||
number_declaration: $ => seq(
|
number_declaration: $ => seq(
|
||||||
$.defining_identifier_list,
|
$.defining_identifier_list,
|
||||||
';',
|
';',
|
||||||
caseInsensitive('constant'),
|
reservedWord('constant'),
|
||||||
// $.assign_value,
|
// $.assign_value,
|
||||||
';',
|
';',
|
||||||
),
|
),
|
||||||
|
|
@ -920,8 +923,8 @@ module.exports = grammar({
|
||||||
seq(
|
seq(
|
||||||
$.defining_identifier_list,
|
$.defining_identifier_list,
|
||||||
':',
|
':',
|
||||||
caseInsensitive('aliased'),
|
reservedWord('aliased'),
|
||||||
caseInsensitive('constant'),
|
reservedWord('constant'),
|
||||||
choice(
|
choice(
|
||||||
$.subtype_indication,
|
$.subtype_indication,
|
||||||
$.access_definition,
|
$.access_definition,
|
||||||
|
|
@ -935,8 +938,8 @@ module.exports = grammar({
|
||||||
// $.single_protected_declaration,
|
// $.single_protected_declaration,
|
||||||
),
|
),
|
||||||
overriding_indicator: $ => seq(
|
overriding_indicator: $ => seq(
|
||||||
optional(caseInsensitive('not')),
|
optional(reservedWord('not')),
|
||||||
caseInsensitive('overriding'),
|
reservedWord('overriding'),
|
||||||
),
|
),
|
||||||
non_empty_parameter_profile: $ => // ??? inline
|
non_empty_parameter_profile: $ => // ??? inline
|
||||||
$.formal_part,
|
$.formal_part,
|
||||||
|
|
@ -947,7 +950,7 @@ module.exports = grammar({
|
||||||
parameter_specification: $ => seq(
|
parameter_specification: $ => seq(
|
||||||
$.defining_identifier_list,
|
$.defining_identifier_list,
|
||||||
':',
|
':',
|
||||||
optional(caseInsensitive('aliased')),
|
optional(reservedWord('aliased')),
|
||||||
optional($.non_empty_mode),
|
optional($.non_empty_mode),
|
||||||
optional($.null_exclusion),
|
optional($.null_exclusion),
|
||||||
$.name,
|
$.name,
|
||||||
|
|
@ -958,7 +961,7 @@ module.exports = grammar({
|
||||||
$.parameter_specification,
|
$.parameter_specification,
|
||||||
),
|
),
|
||||||
pragma_g: $ => seq(
|
pragma_g: $ => seq(
|
||||||
caseInsensitive('pragma'),
|
reservedWord('pragma'),
|
||||||
$.identifier,
|
$.identifier,
|
||||||
optional(seq(
|
optional(seq(
|
||||||
'(',
|
'(',
|
||||||
|
|
@ -971,19 +974,19 @@ module.exports = grammar({
|
||||||
';'
|
';'
|
||||||
),
|
),
|
||||||
procedure_specification: $ => seq(
|
procedure_specification: $ => seq(
|
||||||
caseInsensitive('procedure'),
|
reservedWord('procedure'),
|
||||||
$.name,
|
$.name,
|
||||||
optional($.non_empty_parameter_profile),
|
optional($.non_empty_parameter_profile),
|
||||||
),
|
),
|
||||||
record_representation_clause: $ => prec.left(seq(
|
record_representation_clause: $ => prec.left(seq(
|
||||||
caseInsensitive('for'),
|
reservedWord('for'),
|
||||||
$.name,
|
$.name,
|
||||||
caseInsensitive('use'),
|
reservedWord('use'),
|
||||||
caseInsensitive('record'),
|
reservedWord('record'),
|
||||||
optional($.mod_clause),
|
optional($.mod_clause),
|
||||||
repeat($.component_clause),
|
repeat($.component_clause),
|
||||||
caseInsensitive('end'),
|
reservedWord('end'),
|
||||||
caseInsensitive('record'),
|
reservedWord('record'),
|
||||||
optional($.name),
|
optional($.name),
|
||||||
)),
|
)),
|
||||||
renaming_declaration: $ => choice(
|
renaming_declaration: $ => choice(
|
||||||
|
|
@ -994,7 +997,7 @@ module.exports = grammar({
|
||||||
// $.generic_renaming_declaration,
|
// $.generic_renaming_declaration,
|
||||||
),
|
),
|
||||||
result_profile: $ => seq(
|
result_profile: $ => seq(
|
||||||
caseInsensitive('return'),
|
reservedWord('return'),
|
||||||
choice(
|
choice(
|
||||||
seq(
|
seq(
|
||||||
optional($.null_exclusion),
|
optional($.null_exclusion),
|
||||||
|
|
@ -1038,9 +1041,9 @@ module.exports = grammar({
|
||||||
$.function_specification,
|
$.function_specification,
|
||||||
),
|
),
|
||||||
subtype_declaration: $ => seq(
|
subtype_declaration: $ => seq(
|
||||||
caseInsensitive('subtype'),
|
reservedWord('subtype'),
|
||||||
$.identifier,
|
$.identifier,
|
||||||
caseInsensitive('is'),
|
reservedWord('is'),
|
||||||
$.subtype_indication,
|
$.subtype_indication,
|
||||||
optional($.aspect_specification),
|
optional($.aspect_specification),
|
||||||
';',
|
';',
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user