Skip to content

Commit f217f39

Browse files
committed
Added aggregate elements and aggregate.
1 parent 00aa65a commit f217f39

File tree

1 file changed

+68
-3
lines changed

1 file changed

+68
-3
lines changed

pyVHDLModel/VHDLModel.py

Lines changed: 68 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,11 @@ def Constraints(self) -> List[Constraint]:
310310
return self._constraints
311311

312312

313+
@export
314+
class EnumerationLiteralSymbol(Symbol):
315+
pass
316+
317+
313318
@export
314319
class ObjectSymbol(Symbol):
315320
pass
@@ -843,9 +848,6 @@ class FunctionCall(UnaryExpression):
843848
class ParenthesisExpression(UnaryExpression):
844849
pass
845850

846-
@export
847-
class QualifiedExpression(UnaryExpression):
848-
pass
849851

850852
@export
851853
class BinaryExpression(BaseExpression):
@@ -868,6 +870,10 @@ def RightOperand(self):
868870
return self._rightOperand
869871

870872

873+
@export
874+
class QualifiedExpression(BinaryExpression):
875+
pass
876+
871877
@export
872878
class AddingExpression(BinaryExpression):
873879
"""
@@ -1037,6 +1043,65 @@ def ThirdOperand(self):
10371043
return self._thirdOperand
10381044

10391045

1046+
@export
1047+
class AggregateElement(ModelEntity):
1048+
"""
1049+
A ``AggregateElement`` is a base-class for all aggregate elements.
1050+
"""
1051+
1052+
_expression: Expression
1053+
1054+
@property
1055+
def Expression(self):
1056+
return self._expression
1057+
1058+
1059+
@export
1060+
class SimpleAggregateElement(AggregateElement):
1061+
pass
1062+
1063+
1064+
@export
1065+
class IndexedAggregateElement(AggregateElement):
1066+
_index: int
1067+
1068+
@property
1069+
def Index(self) -> int:
1070+
return self._index
1071+
1072+
1073+
@export
1074+
class RangedAggregateElement(AggregateElement):
1075+
_range: 'Range'
1076+
1077+
@property
1078+
def Range(self) -> 'Range':
1079+
return self._range
1080+
1081+
1082+
@export
1083+
class NamedAggregateElement(AggregateElement):
1084+
_name: str
1085+
1086+
@property
1087+
def Name(self) -> str:
1088+
return self._name
1089+
1090+
1091+
@export
1092+
class OthersAggregateElement(AggregateElement):
1093+
pass
1094+
1095+
1096+
@export
1097+
class Aggregate(BaseExpression):
1098+
_elements: List[AggregateElement]
1099+
1100+
@property
1101+
def Elements(self) -> List[AggregateElement]:
1102+
return self._elements
1103+
1104+
10401105
@export
10411106
class Range(ModelEntity):
10421107
_leftBound: Expression

0 commit comments

Comments
 (0)