aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2020-07-01 22:08:51 +0200
committerTristan Gingold <tgingold@free.fr>2020-07-01 22:08:51 +0200
commitf694f54d851747c4cd9a5ba5e35bfa21c6fb9921 (patch)
tree1bf7c8c18b64137fec463eeecea08c3fb330fbb1
parent6bc221560e88b7e5b6977ab0811f48f192db064a (diff)
downloadghdl-f694f54d851747c4cd9a5ba5e35bfa21c6fb9921.tar.gz
ghdl-f694f54d851747c4cd9a5ba5e35bfa21c6fb9921.tar.bz2
ghdl-f694f54d851747c4cd9a5ba5e35bfa21c6fb9921.zip
vhdl-scanner: be case-insensitive for pragma in comments.
-rw-r--r--src/vhdl/vhdl-scanner.adb25
1 files changed, 19 insertions, 6 deletions
diff --git a/src/vhdl/vhdl-scanner.adb b/src/vhdl/vhdl-scanner.adb
index fba0dab54..bef26417f 100644
--- a/src/vhdl/vhdl-scanner.adb
+++ b/src/vhdl/vhdl-scanner.adb
@@ -1702,16 +1702,29 @@ package body Vhdl.Scanner is
Id := Null_Identifier;
Skip_Spaces;
- -- The identifier shall start with a lower case letter.
- if Source (Pos) not in 'a' .. 'z' then
- return;
- end if;
+ -- The identifier shall start with a letter.
+ case Source (Pos) is
+ when 'a' .. 'z'
+ | 'A' .. 'Z' =>
+ null;
+ when others =>
+ return;
+ end case;
- -- Scan the identifier (in lower cases).
+ -- Scan the identifier.
Len := 0;
loop
C := Source (Pos);
- exit when C not in 'a' .. 'z' and C /= '_';
+ case C is
+ when 'a' .. 'z' =>
+ null;
+ when 'A' .. 'Z' =>
+ C := Character'Val (Character'Pos (C) + 32);
+ when '_' =>
+ null;
+ when others =>
+ exit;
+ end case;
Len := Len + 1;
Buffer (Len) := C;
Pos := Pos + 1;