diff options
author | Tristan Gingold <tgingold@free.fr> | 2020-07-01 22:08:51 +0200 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2020-07-01 22:08:51 +0200 |
commit | f694f54d851747c4cd9a5ba5e35bfa21c6fb9921 (patch) | |
tree | 1bf7c8c18b64137fec463eeecea08c3fb330fbb1 /src/vhdl | |
parent | 6bc221560e88b7e5b6977ab0811f48f192db064a (diff) | |
download | ghdl-f694f54d851747c4cd9a5ba5e35bfa21c6fb9921.tar.gz ghdl-f694f54d851747c4cd9a5ba5e35bfa21c6fb9921.tar.bz2 ghdl-f694f54d851747c4cd9a5ba5e35bfa21c6fb9921.zip |
vhdl-scanner: be case-insensitive for pragma in comments.
Diffstat (limited to 'src/vhdl')
-rw-r--r-- | src/vhdl/vhdl-scanner.adb | 25 |
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; |