diff options
author | Bob Duff <duff@adacore.com> | 2020-07-01 16:22:46 -0400 |
---|---|---|
committer | Pierre-Marie de Rodat <derodat@adacore.com> | 2020-10-16 03:34:53 -0400 |
commit | 54690b9871d742bb322d28f7c1c4fa8b81cf94e6 (patch) | |
tree | ca9d4029e2f8759b3a5991696fd917ebb2170bdf /gcc/ada/par-ch4.adb | |
parent | 2357b2948db15d5e3529d2368e11b4f6caa2dca0 (diff) | |
download | gcc-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.adb | 15 |
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; |