aboutsummaryrefslogtreecommitdiffstats
path: root/pyGHDL
diff options
context:
space:
mode:
authorUnai Martinez-Corral <38422348+umarcor@users.noreply.github.com>2021-09-16 22:49:26 +0100
committerGitHub <noreply@github.com>2021-09-16 22:49:26 +0100
commite9ee873a6277d6ae203923128c5ebeda7d558a3d (patch)
tree5efed0772ce467a117f5552fdabf93d855d528a5 /pyGHDL
parent013948eaec75eedf45874ef1c421ada6f6fcab0b (diff)
parenta097852db0b1cd892d487de83600bfbc230e29a8 (diff)
downloadghdl-e9ee873a6277d6ae203923128c5ebeda7d558a3d.tar.gz
ghdl-e9ee873a6277d6ae203923128c5ebeda7d558a3d.tar.bz2
ghdl-e9ee873a6277d6ae203923128c5ebeda7d558a3d.zip
pyGHDL: added binding to new function 'Get_Source_Identifier' (#1870)
Diffstat (limited to 'pyGHDL')
-rw-r--r--pyGHDL/dom/_Utils.py4
-rw-r--r--pyGHDL/libghdl/vhdl/utils.py50
2 files changed, 52 insertions, 2 deletions
diff --git a/pyGHDL/dom/_Utils.py b/pyGHDL/dom/_Utils.py
index 8fcfd7667..c8a7a56ce 100644
--- a/pyGHDL/dom/_Utils.py
+++ b/pyGHDL/dom/_Utils.py
@@ -36,7 +36,7 @@ from pyVHDLModel.SyntaxModel import Mode
from pyGHDL.libghdl import LibGHDLException, name_table, errorout_memory
from pyGHDL.libghdl._types import Iir
-from pyGHDL.libghdl.vhdl import nodes
+from pyGHDL.libghdl.vhdl import nodes, utils
from pyGHDL.libghdl.vhdl.nodes import Null_Iir
from pyGHDL.dom import DOMException
@@ -85,7 +85,7 @@ def GetNameOfNode(node: Iir) -> str:
if node == Null_Iir:
raise ValueError("GetNameOfNode: Parameter 'node' must not be 'Null_iir'.")
- identifier = nodes.Get_Identifier(node)
+ identifier = utils.Get_Source_Identifier(node)
return name_table.Get_Name_Ptr(identifier)
diff --git a/pyGHDL/libghdl/vhdl/utils.py b/pyGHDL/libghdl/vhdl/utils.py
new file mode 100644
index 000000000..c563ec9bd
--- /dev/null
+++ b/pyGHDL/libghdl/vhdl/utils.py
@@ -0,0 +1,50 @@
+# =============================================================================
+# ____ _ _ ____ _ _ _ _ _ _ _
+# _ __ _ _ / ___| | | | _ \| | | (_) |__ __ _| |__ __| | |
+# | '_ \| | | | | _| |_| | | | | | | | | '_ \ / _` | '_ \ / _` | |
+# | |_) | |_| | |_| | _ | |_| | |___ _| | | |_) | (_| | | | | (_| | |
+# | .__/ \__, |\____|_| |_|____/|_____(_)_|_|_.__/ \__, |_| |_|\__,_|_|
+# |_| |___/ |___/
+# =============================================================================
+# Authors:
+# Tristan Gingold
+# Patrick Lehmann
+#
+# Package module: Python binding and low-level API for shared library 'libghdl'.
+#
+# License:
+# ============================================================================
+# Copyright (C) 2019-2021 Tristan Gingold
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <gnu.org/licenses>.
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+# ============================================================================
+
+from pydecor import export
+
+from pyGHDL.libghdl._types import Iir, NameId
+from pyGHDL.libghdl._decorator import BindToLibGHDL
+
+
+@export
+@BindToLibGHDL("vhdl__utils__get_source_identifier")
+def Get_Source_Identifier(Decl: Iir) -> NameId:
+ """
+ Like ``Get_Identifier`` but return a ``NameId`` for the same casing as it appears in the source file.
+ Not useful for analysis as VHDL is case insensitive, but could be useful for error messages or tooling.
+
+ :param Decl: Iir Node. Type: ``Iir``
+ """
+ return 0