aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/par-ch4.adb
diff options
context:
space:
mode:
authorBob Duff <duff@adacore.com>2020-07-01 16:22:46 -0400
committerPierre-Marie de Rodat <derodat@adacore.com>2020-10-16 03:34:53 -0400
commit54690b9871d742bb322d28f7c1c4fa8b81cf94e6 (patch)
treeca9d4029e2f8759b3a5991696fd917ebb2170bdf /gcc/ada/par-ch4.adb
parent2357b2948db15d5e3529d2368e11b4f6caa2dca0 (diff)
downloadgcc-54690b9871d742bb322d28f7c1c4fa8b81cf94e6.zip
gcc-54690b9871d742bb322d28f7c1c4fa8b81cf94e6.tar.gz
gcc-54690b9871d742bb322d28f7c1c4fa8b81cf94e6.tar.bz2
[Ada] Ada2020: parsing of qualified exprs with new agg syntax
gcc/ada/ * par-ch4.adb (P_Name): Allow Tok_Left_Bracket in two places to call P_Qualified_Expression. We don't need to modify other places that call P_Qualified_Expression, because a qualified_expression is a name in Ada 2012 and higher, so P_Name is the right place. The parser already parses aggregates with brackets; we just need to allow that in qualified expressions.
Diffstat (limited to 'gcc/ada/par-ch4.adb')
-rw-r--r--gcc/ada/par-ch4.adb15
1 files changed, 10 insertions, 5 deletions
diff --git a/gcc/ada/par-ch4.adb b/gcc/ada/par-ch4.adb
index 9815ca1..e4ce02f 100644
--- a/gcc/ada/par-ch4.adb
+++ b/gcc/ada/par-ch4.adb
@@ -281,9 +281,10 @@ package body Ch4 is
goto Scan_Name_Extension;
end if;
- -- We have scanned out a qualified simple name, check for name extension
- -- Note that we know there is no dot here at this stage, so the only
- -- possible cases of name extension are apostrophe and left paren.
+ -- We have scanned out a qualified simple name, check for name
+ -- extension. Note that we know there is no dot here at this stage,
+ -- so the only possible cases of name extension are apostrophe followed
+ -- by '(' or '['.
if Token = Tok_Apostrophe then
Save_Scan_State (Scan_State); -- at apostrophe
@@ -291,7 +292,9 @@ package body Ch4 is
-- Qualified expression in Ada 2012 mode (treated as a name)
- if Ada_Version >= Ada_2012 and then Token = Tok_Left_Paren then
+ if Ada_Version >= Ada_2012
+ and then Token in Tok_Left_Paren | Tok_Left_Bracket
+ then
goto Scan_Name_Extension_Apostrophe;
-- If left paren not in Ada 2012, then it is not part of the name,
@@ -445,7 +448,9 @@ package body Ch4 is
begin
-- Check for qualified expression case in Ada 2012 mode
- if Ada_Version >= Ada_2012 and then Token = Tok_Left_Paren then
+ if Ada_Version >= Ada_2012
+ and then Token in Tok_Left_Paren | Tok_Left_Bracket
+ then
Name_Node := P_Qualified_Expression (Name_Node);
goto Scan_Name_Extension;