Task types may have no task_item
Based literals may have exponents
This commit is contained in:
parent
fb54a00c16
commit
7b4bf400ab
10
grammar.js
10
grammar.js
|
|
@ -126,7 +126,7 @@ module.exports = grammar({
|
|||
numeric_literal: $ => token(
|
||||
choice(
|
||||
/[0-9][0-9_]*(\.[0-9_]+)?([eE][+-]?[0-9_]+)?/,
|
||||
/[0-9]+#[0-9a-fA-F._-]+#/
|
||||
/[0-9]+#[0-9a-fA-F._-]+#([eE][+-]?[0-9_]+)?/,
|
||||
)
|
||||
),
|
||||
relational_operator: $ => choice('=', '/=', '<', '<=', '>', '>='),
|
||||
|
|
@ -1765,7 +1765,7 @@ module.exports = grammar({
|
|||
)),
|
||||
';',
|
||||
),
|
||||
task_type_declaration: $ => seq(
|
||||
task_type_declaration: $ => seq( // RM 9.1
|
||||
reservedWord('task'),
|
||||
reservedWord('type'),
|
||||
$.identifier,
|
||||
|
|
@ -1807,11 +1807,11 @@ module.exports = grammar({
|
|||
$.entry_declaration,
|
||||
$._aspect_clause,
|
||||
),
|
||||
task_definition: $ => seq(
|
||||
repeat1($._task_item),
|
||||
task_definition: $ => seq( // RM 9.1
|
||||
repeat($._task_item),
|
||||
optional(seq(
|
||||
reservedWord('private'),
|
||||
repeat1($._task_item),
|
||||
repeat($._task_item),
|
||||
)),
|
||||
reservedWord('end'),
|
||||
field('endname', optional($.identifier)),
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@
|
|||
},
|
||||
{
|
||||
"type": "PATTERN",
|
||||
"value": "[0-9]+#[0-9a-fA-F._-]+#"
|
||||
"value": "[0-9]+#[0-9a-fA-F._-]+#([eE][+-]?[0-9_]+)?"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -10850,7 +10850,7 @@
|
|||
"type": "SEQ",
|
||||
"members": [
|
||||
{
|
||||
"type": "REPEAT1",
|
||||
"type": "REPEAT",
|
||||
"content": {
|
||||
"type": "SYMBOL",
|
||||
"name": "_task_item"
|
||||
|
|
@ -10879,7 +10879,7 @@
|
|||
"value": "private"
|
||||
},
|
||||
{
|
||||
"type": "REPEAT1",
|
||||
"type": "REPEAT",
|
||||
"content": {
|
||||
"type": "SYMBOL",
|
||||
"name": "_task_item"
|
||||
|
|
|
|||
|
|
@ -10788,7 +10788,7 @@
|
|||
},
|
||||
"children": {
|
||||
"multiple": true,
|
||||
"required": true,
|
||||
"required": false,
|
||||
"types": [
|
||||
{
|
||||
"type": "at_clause",
|
||||
|
|
|
|||
58241
src/parser.c
58241
src/parser.c
File diff suppressed because it is too large
Load Diff
|
|
@ -48,3 +48,20 @@ A : Integer := 12_14.12_122E+11_2;
|
|||
(expression
|
||||
(term
|
||||
(numeric_literal))))))
|
||||
|
||||
=======================
|
||||
Based numerals
|
||||
=======================
|
||||
|
||||
A : Integer := 16#FA01#E+02;
|
||||
|
||||
-----
|
||||
|
||||
(compilation
|
||||
(compilation_unit
|
||||
(object_declaration
|
||||
(identifier)
|
||||
(identifier)
|
||||
(expression
|
||||
(term
|
||||
(numeric_literal))))))
|
||||
|
|
|
|||
|
|
@ -233,3 +233,62 @@ end select;
|
|||
(identifier))))
|
||||
(select_alternative
|
||||
(terminate_alternative)))))
|
||||
|
||||
================================================================================
|
||||
Task type with discriminant
|
||||
================================================================================
|
||||
|
||||
package P is
|
||||
task type T (A : Integer) is
|
||||
end T;
|
||||
end;
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(compilation
|
||||
(compilation_unit
|
||||
(package_specification
|
||||
(identifier)
|
||||
(full_type_declaration
|
||||
(task_type_declaration
|
||||
(identifier)
|
||||
(known_discriminant_part
|
||||
(discriminant_specification_list
|
||||
(discriminant_specification
|
||||
(identifier)
|
||||
(identifier))))
|
||||
(task_definition
|
||||
(identifier)))))))
|
||||
|
||||
================================================================================
|
||||
Task type with aspect
|
||||
================================================================================
|
||||
|
||||
package P is
|
||||
task type T (A : Integer) with Priority => 1 is
|
||||
end T;
|
||||
end;
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(compilation
|
||||
(compilation_unit
|
||||
(package_specification
|
||||
(identifier)
|
||||
(full_type_declaration
|
||||
(task_type_declaration
|
||||
(identifier)
|
||||
(known_discriminant_part
|
||||
(discriminant_specification_list
|
||||
(discriminant_specification
|
||||
(identifier)
|
||||
(identifier))))
|
||||
(aspect_specification
|
||||
(aspect_mark_list
|
||||
(aspect_association
|
||||
(identifier)
|
||||
(expression
|
||||
(term
|
||||
(numeric_literal))))))
|
||||
(task_definition
|
||||
(identifier)))))))
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user