end if;
end Start_Of_Wide_Character;
+ Token_Contains_Uppercase : Boolean;
+
-- Start of processing for Scan
begin
Token_Ptr := Scan_Ptr;
+ Token_Contains_Uppercase := False;
+
-- Here begins the main case statement which transfers control on the
-- basis of the non-blank character we have encountered.
-- Upper case letters
when 'A' .. 'Z' =>
+ Token_Contains_Uppercase := True;
Name_Len := 1;
Underline_Found := False;
Name_Buffer (1) :=
Accumulate_Checksum (Source (Scan_Ptr));
elsif Source (Scan_Ptr) in 'A' .. 'Z' then
+ Token_Contains_Uppercase := True;
+
Name_Buffer (Name_Len + 1) :=
Character'Val (Character'Pos (Source (Scan_Ptr)) + 32);
Accumulate_Checksum (Name_Buffer (Name_Len + 1));
-- Ada 2005 (AI-340): Do not apply the style check in case of
-- MOD attribute.
- if Source (Token_Ptr) <= 'Z'
+ if Token_Contains_Uppercase
and then (Prev_Token /= Tok_Apostrophe
or else
(Token /= Tok_Access and then