From 5303bb777dedfa03bbc3d042bb14c5d9bbae6b52 Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Mon, 21 Jun 2021 14:34:03 +0200 Subject: Renamed 'NodeToName' to 'GetNameOfNode'. --- pyGHDL/dom/_Utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'pyGHDL/dom/_Utils.py') diff --git a/pyGHDL/dom/_Utils.py b/pyGHDL/dom/_Utils.py index dbbb69e81..b5cf1fc5c 100644 --- a/pyGHDL/dom/_Utils.py +++ b/pyGHDL/dom/_Utils.py @@ -56,7 +56,7 @@ def GetIirKindOfNode(node) -> nodes.Iir_Kind: @export -def NodeToName(node) -> str: +def GetNameOfNode(node) -> str: """Return the python string from node :obj:`node` identifier""" identifier = nodes.Get_Identifier(node) return name_table.Get_Name_Ptr(identifier) -- cgit v1.2.3 From 11bd75f611a892af0e20e913a9580d43c23e610b Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Mon, 21 Jun 2021 22:36:07 +0200 Subject: Print position where exception happened. --- pyGHDL/dom/_Utils.py | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) (limited to 'pyGHDL/dom/_Utils.py') diff --git a/pyGHDL/dom/_Utils.py b/pyGHDL/dom/_Utils.py index b5cf1fc5c..e0d97f892 100644 --- a/pyGHDL/dom/_Utils.py +++ b/pyGHDL/dom/_Utils.py @@ -30,12 +30,14 @@ # # SPDX-License-Identifier: GPL-2.0-or-later # ============================================================================ +from pyGHDL.libghdl._types import Iir from pydecor import export from pyVHDLModel.VHDLModel import Mode -from pyGHDL.libghdl import LibGHDLException, name_table +from pyGHDL.libghdl import LibGHDLException, name_table, files_map from pyGHDL.libghdl.vhdl import nodes +from pyGHDL.dom.Misc import Position __all__ = [] @@ -50,22 +52,34 @@ __MODE_TRANSLATION = { @export -def GetIirKindOfNode(node) -> nodes.Iir_Kind: +def GetIirKindOfNode(node: Iir) -> nodes.Iir_Kind: kind: int = nodes.Get_Kind(node) return nodes.Iir_Kind(kind) @export -def GetNameOfNode(node) -> str: +def GetNameOfNode(node: Iir) -> str: """Return the python string from node :obj:`node` identifier""" identifier = nodes.Get_Identifier(node) return name_table.Get_Name_Ptr(identifier) @export -def GetModeOfNode(node) -> Mode: +def GetModeOfNode(node: Iir) -> Mode: """Return the mode of a :obj:`port`.""" try: return __MODE_TRANSLATION[nodes.Get_Mode(node)] except KeyError: raise LibGHDLException("Unknown mode.") + + +@export +def GetPositionOfNode(node: Iir) -> Position: + location = nodes.Get_Location(node) + file = files_map.Location_To_File(location) + fileName = name_table.Get_Name_Ptr(file) + # position = files_map.Location_File_To_Pos(location, file) + line = files_map.Location_File_To_Line(location, file) + column = files_map.Location_File_Line_To_Offset(location, file, line) + + return Position(fileName, line, column) -- cgit v1.2.3 From ef92aeca1b940e26b8fb6d562dcc74b06bb450f8 Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Tue, 22 Jun 2021 09:08:14 +0200 Subject: Fixed filename in error messages. --- pyGHDL/dom/_Utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'pyGHDL/dom/_Utils.py') diff --git a/pyGHDL/dom/_Utils.py b/pyGHDL/dom/_Utils.py index e0d97f892..38a85c0c3 100644 --- a/pyGHDL/dom/_Utils.py +++ b/pyGHDL/dom/_Utils.py @@ -77,7 +77,7 @@ def GetModeOfNode(node: Iir) -> Mode: def GetPositionOfNode(node: Iir) -> Position: location = nodes.Get_Location(node) file = files_map.Location_To_File(location) - fileName = name_table.Get_Name_Ptr(file) + fileName = name_table.Get_Name_Ptr(files_map.Get_File_Name(file)) # position = files_map.Location_File_To_Pos(location, file) line = files_map.Location_File_To_Line(location, file) column = files_map.Location_File_Line_To_Offset(location, file, line) -- cgit v1.2.3