aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/files_map.adb11
-rw-r--r--src/files_map.ads5
-rw-r--r--src/vhdl/python/libghdl/thin.py2
3 files changed, 18 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
diff --git a/src/files_map.ads b/src/files_map.ads
index d2f2a0a4d..17b1d033c 100644
--- a/src/files_map.ads
+++ b/src/files_map.ads
@@ -156,6 +156,11 @@ package Files_Map is
function Location_File_To_Line
(Location : Location_Type; File : Source_File_Entry) return Positive;
+ -- Get the offset in the line LINE of LOC.
+ function Location_File_Line_To_Offset
+ (Loc : Location_Type; File : Source_File_Entry; Line : Positive)
+ return Natural;
+
-- Get logical column (with HT expanded) from LOC, FILE and LINE.
function Location_File_Line_To_Col
(Loc : Location_Type; File : Source_File_Entry; Line : Positive)
diff --git a/src/vhdl/python/libghdl/thin.py b/src/vhdl/python/libghdl/thin.py
index 250fdda71..43ed6ce2f 100644
--- a/src/vhdl/python/libghdl/thin.py
+++ b/src/vhdl/python/libghdl/thin.py
@@ -88,6 +88,8 @@ Location_File_To_Pos = libghdl.files_map__location_file_to_pos
Location_File_To_Line = libghdl.files_map__location_file_to_line
+Location_File_Line_To_Offset = libghdl.files_map__location_file_line_to_offset
+
Location_File_Line_To_Col = libghdl.files_map__location_file_line_to_col
Get_File_Name = libghdl.files_map__get_file_name