aboutsummaryrefslogtreecommitdiffstats
path: root/src/files_map.adb
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2018-12-12 18:23:58 +0100
committerTristan Gingold <tgingold@free.fr>2018-12-12 18:23:58 +0100
commitccf8b3bf2854641388619e68325998b9ddd229de (patch)
treea45395387f2a9ac26e542c91c6ea51fa57eff50a /src/files_map.adb
parent85c222d979afd8077568b0c2de4eb922bf34efd2 (diff)
downloadghdl-ccf8b3bf2854641388619e68325998b9ddd229de.tar.gz
ghdl-ccf8b3bf2854641388619e68325998b9ddd229de.tar.bz2
ghdl-ccf8b3bf2854641388619e68325998b9ddd229de.zip
Add Location_File_Line_To_Offset.
Diffstat (limited to 'src/files_map.adb')
-rw-r--r--src/files_map.adb11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/files_map.adb b/src/files_map.adb
index e9d0a2e9e..46d09b04b 100644
--- a/src/files_map.adb
+++ b/src/files_map.adb
@@ -415,6 +415,17 @@ package body Files_Map is
return Coord_To_Col (File, Line_Pos, Natural (Pos - Line_Pos));
end Location_File_Line_To_Col;
+ function Location_File_Line_To_Offset
+ (Loc : Location_Type; File : Source_File_Entry; Line : Positive)
+ return Natural
+ is
+ F : Source_File_Record renames Source_Files.Table (File);
+ Line_Pos : constant Source_Ptr := F.Lines.Table (Line);
+ Pos : constant Source_Ptr := Location_File_To_Pos (Loc, File);
+ begin
+ return Natural (Pos - Line_Pos);
+ end Location_File_Line_To_Offset;
+
-- Convert the first digit of VAL into a character (base 10).
function Digit_To_Char (Val: Natural) return Character is
begin