diff options
Diffstat (limited to 'pyGHDL')
| -rw-r--r-- | pyGHDL/dom/Attribute.py | 2 | ||||
| -rw-r--r-- | pyGHDL/dom/Concurrent.py | 4 | ||||
| -rw-r--r-- | pyGHDL/dom/DesignUnit.py | 9 | ||||
| -rw-r--r-- | pyGHDL/dom/NonStandard.py | 3 | ||||
| -rw-r--r-- | pyGHDL/dom/Sequential.py | 4 | ||||
| -rw-r--r-- | pyGHDL/dom/Subprogram.py | 3 | ||||
| -rw-r--r-- | pyGHDL/dom/Symbol.py | 10 | ||||
| -rw-r--r-- | pyGHDL/dom/Type.py | 3 | ||||
| -rw-r--r-- | pyGHDL/dom/_Translate.py | 4 | 
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  | 
