aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick Lehmann <Patrick.Lehmann@plc2.de>2023-04-15 10:43:09 +0200
committerPatrick Lehmann <Patrick.Lehmann@plc2.de>2023-04-15 10:43:09 +0200
commitd67bfa80c0c7d013a99636d7959cf433000ab2e7 (patch)
tree4b5f37cd0e0f2aeb460d2d188bc15f1181e9614c
parentbee2616e7fed89c042f79592ddfafa2f6aea451e (diff)
downloadghdl-d67bfa80c0c7d013a99636d7959cf433000ab2e7.tar.gz
ghdl-d67bfa80c0c7d013a99636d7959cf433000ab2e7.tar.bz2
ghdl-d67bfa80c0c7d013a99636d7959cf433000ab2e7.zip
Modifications due to changes in Symbols.
-rw-r--r--pyGHDL/dom/Attribute.py2
-rw-r--r--pyGHDL/dom/Concurrent.py4
-rw-r--r--pyGHDL/dom/DesignUnit.py9
-rw-r--r--pyGHDL/dom/NonStandard.py3
-rw-r--r--pyGHDL/dom/Sequential.py4
-rw-r--r--pyGHDL/dom/Subprogram.py3
-rw-r--r--pyGHDL/dom/Symbol.py10
-rw-r--r--pyGHDL/dom/Type.py3
-rw-r--r--pyGHDL/dom/_Translate.py4
9 files changed, 24 insertions, 18 deletions
diff --git a/pyGHDL/dom/Attribute.py b/pyGHDL/dom/Attribute.py
index 7dcb7b1ef..08295817d 100644
--- a/pyGHDL/dom/Attribute.py
+++ b/pyGHDL/dom/Attribute.py
@@ -63,7 +63,7 @@ class Attribute(VHDLModel_Attribute, DOMMixin):
subtypeMark = nodes.Get_Type_Mark(attributeNode)
subtypeName = GetNameOfNode(subtypeMark)
- subtype = SimpleSubtypeSymbol(subtypeMark, subtypeName)
+ subtype = SimpleSubtypeSymbol(subtypeMark, SimpleName(subtypeName))
return cls(attributeNode, name, subtype, documentation)
diff --git a/pyGHDL/dom/Concurrent.py b/pyGHDL/dom/Concurrent.py
index 4ffba28d1..303b6b96b 100644
--- a/pyGHDL/dom/Concurrent.py
+++ b/pyGHDL/dom/Concurrent.py
@@ -574,7 +574,7 @@ class ForGenerateStatement(VHDLModel_ForGenerateStatement, DOMMixin):
@classmethod
def parse(cls, generateNode: Iir, label: str) -> "ForGenerateStatement":
- from pyGHDL.dom._Utils import GetIirKindOfNode
+ from pyGHDL.dom._Utils import GetIirKindOfNode, GetNameOfNode
from pyGHDL.dom._Translate import (
GetDeclaredItemsFromChainedNodes,
GetConcurrentStatementsFromChainedNodes,
@@ -583,7 +583,7 @@ class ForGenerateStatement(VHDLModel_ForGenerateStatement, DOMMixin):
)
spec = nodes.Get_Parameter_Specification(generateNode)
- loopIndex = GetName(spec)
+ loopIndex = GetNameOfNode(spec)
discreteRange = nodes.Get_Discrete_Range(spec)
rangeKind = GetIirKindOfNode(discreteRange)
diff --git a/pyGHDL/dom/DesignUnit.py b/pyGHDL/dom/DesignUnit.py
index ef1a37493..9779a7ea0 100644
--- a/pyGHDL/dom/DesignUnit.py
+++ b/pyGHDL/dom/DesignUnit.py
@@ -66,6 +66,7 @@ from pyGHDL.dom import DOMMixin, Position, DOMException
from pyGHDL.dom._Utils import GetNameOfNode, GetDocumentationOfNode, GetPackageMemberSymbol
from pyGHDL.dom._Translate import GetGenericsFromChainedNodes, GetPortsFromChainedNodes, GetName
from pyGHDL.dom._Translate import GetDeclaredItemsFromChainedNodes, GetConcurrentStatementsFromChainedNodes
+from pyGHDL.dom.Names import SimpleName
from pyGHDL.dom.Symbol import EntitySymbol, ContextReferenceSymbol, LibraryReferenceSymbol, PackageSymbol, PackageMemberReferenceSymbol
@@ -245,11 +246,11 @@ class PackageBody(VHDLModel_PackageBody, DOMMixin):
@classmethod
def parse(cls, packageBodyNode: Iir, contextItems: Iterable[VHDLModel_ContextUnion]):
- packageName = GetName(packageBodyNode)
- packageSymbol = PackageSymbol(packageBodyNode, packageName)
+ packageIdentifier = GetNameOfNode(packageBodyNode)
+ packageSymbol = PackageSymbol(packageBodyNode, SimpleName(packageBodyNode, packageIdentifier))
documentation = GetDocumentationOfNode(packageBodyNode)
declaredItems = GetDeclaredItemsFromChainedNodes(
- nodes.Get_Declaration_Chain(packageBodyNode), "package", packageName
+ nodes.Get_Declaration_Chain(packageBodyNode), "package", packageIdentifier
)
# FIXME: read use clauses
@@ -309,7 +310,7 @@ class Context(VHDLModel_Context, DOMMixin):
kind = GetIirKindOfNode(item)
if kind is nodes.Iir_Kind.Library_Clause:
libraryIdentifier = GetNameOfNode(item)
- names.append(LibraryReferenceSymbol(item, libraryIdentifier))
+ names.append(LibraryReferenceSymbol(item, SimpleName(item, libraryIdentifier)))
if nodes.Get_Has_Identifier_List(item):
continue
diff --git a/pyGHDL/dom/NonStandard.py b/pyGHDL/dom/NonStandard.py
index 31cc28480..d4e2fa1a5 100644
--- a/pyGHDL/dom/NonStandard.py
+++ b/pyGHDL/dom/NonStandard.py
@@ -40,6 +40,7 @@ import time
from pathlib import Path
from typing import Any
+from pyGHDL.dom.Names import SimpleName
from pyTooling.Decorators import export, InheritDocString
from pyVHDLModel import VHDLVersion
@@ -208,7 +209,7 @@ class Document(VHDLModel_Document):
itemKind = GetIirKindOfNode(item)
if itemKind is nodes.Iir_Kind.Library_Clause:
libraryIdentifier = GetNameOfNode(item)
- contextNames.append(LibraryReferenceSymbol(item, libraryIdentifier))
+ contextNames.append(LibraryReferenceSymbol(item, SimpleName(item, libraryIdentifier)))
if nodes.Get_Has_Identifier_List(item):
continue
diff --git a/pyGHDL/dom/Sequential.py b/pyGHDL/dom/Sequential.py
index f289ae969..e76cdd440 100644
--- a/pyGHDL/dom/Sequential.py
+++ b/pyGHDL/dom/Sequential.py
@@ -335,7 +335,7 @@ class ForLoopStatement(VHDLModel_ForLoopStatement, DOMMixin):
@classmethod
def parse(cls, loopNode: Iir, label: str) -> "ForLoopStatement":
- from pyGHDL.dom._Utils import GetIirKindOfNode
+ from pyGHDL.dom._Utils import GetNameOfNode, GetIirKindOfNode
from pyGHDL.dom._Translate import (
GetSequentialStatementsFromChainedNodes,
GetRangeFromNode,
@@ -343,7 +343,7 @@ class ForLoopStatement(VHDLModel_ForLoopStatement, DOMMixin):
)
spec = nodes.Get_Parameter_Specification(loopNode)
- loopIndex = GetName(spec)
+ loopIndex = GetNameOfNode(spec)
discreteRange = nodes.Get_Discrete_Range(spec)
rangeKind = GetIirKindOfNode(discreteRange)
diff --git a/pyGHDL/dom/Subprogram.py b/pyGHDL/dom/Subprogram.py
index 17661b8b2..6bb13dcd9 100644
--- a/pyGHDL/dom/Subprogram.py
+++ b/pyGHDL/dom/Subprogram.py
@@ -67,6 +67,7 @@ class Function(VHDLModel_Function, DOMMixin):
@classmethod
def parse(cls, functionNode: Iir) -> "Function":
from pyGHDL.dom._Translate import (
+ GetName,
GetGenericsFromChainedNodes,
GetParameterFromChainedNodes,
)
@@ -78,7 +79,7 @@ class Function(VHDLModel_Function, DOMMixin):
parameters = GetParameterFromChainedNodes(nodes.Get_Interface_Declaration_Chain(functionNode))
returnType = nodes.Get_Return_Type_Mark(functionNode)
- returnTypeName = GetNameOfNode(returnType)
+ returnTypeName = GetName(returnType)
returnTypeSymbol = SimpleSubtypeSymbol(returnType, returnTypeName)
return cls(functionNode, functionName, returnTypeSymbol, generics, parameters, documentation)
diff --git a/pyGHDL/dom/Symbol.py b/pyGHDL/dom/Symbol.py
index fe3f3bbe0..40e9fe55e 100644
--- a/pyGHDL/dom/Symbol.py
+++ b/pyGHDL/dom/Symbol.py
@@ -144,16 +144,15 @@ class PackageSymbol(VHDLModel_PackageSymbol, DOMMixin):
@export
class SimpleSubtypeSymbol(VHDLModel_SimpleSubtypeSymbol, DOMMixin):
- def __init__(self, node: Iir, subtypeName: str):
- if isinstance(subtypeName, (List, Iterator)):
- subtypeName = ".".join(subtypeName)
-
+ @InheritDocString(VHDLModel_SimpleSubtypeSymbol)
+ def __init__(self, node: Iir, subtypeName: Name):
super().__init__(subtypeName)
DOMMixin.__init__(self, node)
@export
class ConstrainedScalarSubtypeSymbol(VHDLModel_ConstrainedScalarSubtypeSymbol, DOMMixin):
+ @InheritDocString(VHDLModel_ConstrainedScalarSubtypeSymbol)
def __init__(self, node: Iir, subtypeName: Name, rng: Range = None):
super().__init__(subtypeName) # , rng) # XXX: hacked
DOMMixin.__init__(self, node)
@@ -165,6 +164,7 @@ class ConstrainedScalarSubtypeSymbol(VHDLModel_ConstrainedScalarSubtypeSymbol, D
@export
class ConstrainedCompositeSubtypeSymbol(VHDLModel_ConstrainedCompositeSubtypeSymbol, DOMMixin):
+ @InheritDocString(VHDLModel_ConstrainedCompositeSubtypeSymbol)
def __init__(self, node: Iir, subtypeName: Name, constraints: List = None):
super().__init__(subtypeName) # , constraints) # XXX: hacked
DOMMixin.__init__(self, node)
@@ -176,6 +176,7 @@ class ConstrainedCompositeSubtypeSymbol(VHDLModel_ConstrainedCompositeSubtypeSym
@export
class SimpleObjectOrFunctionCallSymbol(VHDLModel_SimpleObjectOrFunctionCallSymbol, DOMMixin):
+ @InheritDocString(VHDLModel_SimpleObjectOrFunctionCallSymbol)
def __init__(self, node: Iir, name: Name):
super().__init__(name)
DOMMixin.__init__(self, node)
@@ -191,6 +192,7 @@ class SimpleObjectOrFunctionCallSymbol(VHDLModel_SimpleObjectOrFunctionCallSymbo
@export
class IndexedObjectOrFunctionCallSymbol(VHDLModel_IndexedObjectOrFunctionCallSymbol, DOMMixin):
+ @InheritDocString(VHDLModel_IndexedObjectOrFunctionCallSymbol)
def __init__(self, node: Iir, name: Name):
super().__init__(name)
DOMMixin.__init__(self, node)
diff --git a/pyGHDL/dom/Type.py b/pyGHDL/dom/Type.py
index 7df1ad7a1..98dab3af0 100644
--- a/pyGHDL/dom/Type.py
+++ b/pyGHDL/dom/Type.py
@@ -32,6 +32,7 @@
# ============================================================================
from typing import List, Union, Iterator, Tuple, Iterable
+from pyGHDL.dom.Names import SimpleName
from pyTooling.Decorators import export
from pyVHDLModel.Name import Name
@@ -313,7 +314,7 @@ class FileType(VHDLModel_FileType, DOMMixin):
designatedSubtypeMark = nodes.Get_File_Type_Mark(typeDefinitionNode)
designatedSubtypeName = GetNameOfNode(designatedSubtypeMark)
- designatedSubtype = SimpleSubtypeSymbol(typeDefinitionNode, designatedSubtypeName)
+ designatedSubtype = SimpleSubtypeSymbol(typeDefinitionNode, SimpleName(designatedSubtypeName))
return cls(typeDefinitionNode, typeName, designatedSubtype)
diff --git a/pyGHDL/dom/_Translate.py b/pyGHDL/dom/_Translate.py
index 8ab6283b2..97c33cf7c 100644
--- a/pyGHDL/dom/_Translate.py
+++ b/pyGHDL/dom/_Translate.py
@@ -322,7 +322,7 @@ def GetSubtypeIndicationFromIndicationNode(subtypeIndicationNode: Iir, entity: s
@export
def GetSimpleTypeFromNode(subtypeIndicationNode: Iir) -> SimpleSubtypeSymbol:
subtypeName = GetName(subtypeIndicationNode)
- return SimpleSubtypeSymbol(subtypeIndicationNode, str(subtypeName)) # XXX: hacked
+ return SimpleSubtypeSymbol(subtypeIndicationNode, subtypeName)
@export
@@ -340,7 +340,7 @@ def GetScalarConstrainedSubtypeFromNode(
r = GetRangeFromNode(rangeConstraint)
# todo: Get actual range from AttributeName node?
- return ConstrainedScalarSubtypeSymbol(subtypeIndicationNode, str(simpleTypeMark), r) # XXX: hacked
+ return ConstrainedScalarSubtypeSymbol(subtypeIndicationNode, simpleTypeMark, r)
@export