Coverage for pyVHDLModel/Visitor.py: 95%
407 statements
« prev ^ index » next coverage.py v7.17.0, created at 2026-10-25 10:05 +0000
« prev ^ index » next coverage.py v7.17.0, created at 2026-10-25 10:05 +0000
1# ==================================================================================================================== #
2# __ ___ _ ____ _ __ __ _ _ #
3# _ __ _ \ \ / / | | | _ \| | | \/ | ___ __| | ___| | #
4# | '_ \| | | \ \ / /| |_| | | | | | | |\/| |/ _ \ / _` |/ _ \ | #
5# | |_) | |_| |\ V / | _ | |_| | |___| | | | (_) | (_| | __/ | #
6# | .__/ \__, | \_/ |_| |_|____/|_____|_| |_|\___/ \__,_|\___|_| #
7# |_| |___/ #
8# ==================================================================================================================== #
9# Authors: #
10# Patrick Lehmann #
11# #
12# License: #
13# ==================================================================================================================== #
14# Copyright 2026-2026 Patrick Lehmann - Bötzingen, Germany #
15# #
16# Licensed under the Apache License, Version 2.0 (the "License"); #
17# you may not use this file except in compliance with the License. #
18# You may obtain a copy of the License at #
19# #
20# http://www.apache.org/licenses/LICENSE-2.0 #
21# #
22# Unless required by applicable law or agreed to in writing, software #
23# distributed under the License is distributed on an "AS IS" BASIS, #
24# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
25# See the License for the specific language governing permissions and #
26# limitations under the License. #
27# #
28# SPDX-License-Identifier: Apache-2.0 #
29# ==================================================================================================================== #
30#
31"""
32This module contains the base-class of all visitors walking a VHDL language model.
34A model element walks itself: :meth:`ModelEntity.Visit(visitor) <pyVHDLModel.Base.ModelEntity.Visit>` reports the
35element and then its children in source order as events to the visitor. A parser's subclass of a model class (e.g. from
36``pyGHDL.dom``) inherits the walk of that model class.
38.. rubric:: Events
40``Visit<Class>(element)``
41 The walk enters an element of class ``<Class>``, before its first child.
43``Depart<Class>(element)``
44 The walk leaves an element of class ``<Class>``, after its last child.
46``Visit<Part>(element)`` and ``Depart<Part>(element)``
47 The walk enters or leaves a part of the element, which is not a model element itself, e.g. the generic clause of a
48 component. The events are named after the part's production in IEEE Std 1076-2008 (e.g. ``VisitGenericClause``).
50``Visit<Token>(element)``
51 The walk passes a token of the element between two of its parts, which is not a model element itself. The event is
52 named after the token: a delimiter as IEEE Std 1076-2008 names it in clauses 15.2 and 15.3 (e.g. ``VisitArrow`` for
53 ``=>``), a reserved word by itself (e.g. ``VisitWhen``), and a token depending on the element's class by its role
54 (e.g. ``VisitOperator``).
55"""
56from __future__ import annotations
58from typing import TYPE_CHECKING
60from pyTooling.Decorators import export
61from pyTooling.MetaClasses import ExtendedType, abstractclass
63if TYPE_CHECKING: 63 ↛ 64line 63 didn't jump to line 64 because the condition on line 63 was never true
64 from pyVHDLModel import Document
65 from pyVHDLModel.Association import AssociationItem, GenericMapAspectMixin, PortMapAspectMixin
66 from pyVHDLModel.Base import SimpleRange, RangeFromName, WaveformElement, ReportStatementMixin
67 from pyVHDLModel.Common import ProcedureCallMixin, SignalAssignmentMixin, WaveformMixin, ConditionalWaveform, \
68 SelectedWaveform, OthersSelectedWaveform, ConditionalWaveformsMixin, \
69 SelectedWaveformsMixin, AssignmentMixin, ConditionalExpression, \
70 SelectedExpression, OthersSelectedExpression, SelectedExpressionsMixin
71 from pyVHDLModel.Concurrent import ProcessStatement, ConcurrentProcedureCall, ConcurrentSimpleSignalAssignment, \
72 ConcurrentSelectedSignalAssignment, ConcurrentConditionalSignalAssignment, \
73 ConcurrentAssertStatement, ComponentInstantiation, EntityInstantiation, \
74 ConfigurationInstantiation, ConcurrentBlockStatement, GenerateBranch, \
75 IfGenerateBranch, ElsifGenerateBranch, ElseGenerateBranch, \
76 IfGenerateStatement, IndexedGenerateChoice, RangedGenerateChoice, \
77 ConcurrentCase, GenerateCase, OthersGenerateCase, CaseGenerateStatement, \
78 ForGenerateStatement
79 from pyVHDLModel.Configuration import EntityAspectEntity, EntityAspectConfiguration, EntityAspectOpen, \
80 BindingIndication, AllInstantiationList, OthersInstantiationList, \
81 ComponentConfiguration, BlockConfiguration
82 from pyVHDLModel.Declaration import Attribute, AttributeSpecification, Alias
83 from pyVHDLModel.DesignUnit import Reference, LibraryClause, UseClause, ContextReference, DesignUnit, Context, \
84 Package, PackageBody, Entity, Architecture, Configuration, Component
85 from pyVHDLModel.Expression import NullLiteral, EnumerationLiteral, IntegerLiteral, FloatingPointLiteral, \
86 PhysicalIntegerLiteral, PhysicalFloatingLiteral, CharacterLiteral, \
87 StringLiteral, BitStringLiteral, UnaryExpression, NegationExpression, \
88 IdentityExpression, TypeConversion, SubExpression, BinaryExpression, \
89 RangeExpression, AddingExpression, MultiplyingExpression, \
90 ExponentiationExpression, LogicalExpression, RelationalExpression, \
91 ShiftExpression, QualifiedExpression, WhenElseExpression, SubtypeAllocation, \
92 QualifiedExpressionAllocation, SimpleAggregateElement, \
93 IndexedAggregateElement, RangedAggregateElement, NamedAggregateElement, \
94 OthersAggregateElement, Aggregate
95 from pyVHDLModel.Interface import ModeViewDeclaration, SimpleModeViewElement, CompositeModeViewElement, \
96 GenericConstantInterfaceItem, GenericTypeInterfaceItem, \
97 PortSimpleSignalInterfaceItem, PortViewSignalInterfaceItem, \
98 ParameterConstantInterfaceItem, ParameterVariableInterfaceItem, \
99 ParameterSimpleSignalInterfaceItem, ParameterViewSignalInterfaceItem, \
100 ParameterFileInterfaceItem, GenericProcedureInterfaceItem, \
101 GenericFunctionInterfaceItem
102 from pyVHDLModel.Instantiation import ProcedureInstantiation, FunctionInstantiation, PackageInstantiation
103 from pyVHDLModel.Name import SimpleName, ParenthesisName, IndexedName, SlicedName, SelectedName, \
104 AttributeName, AllName, OpenName
105 from pyVHDLModel.Object import WithDefaultExpressionMixin, Constant, DeferredConstant, Variable, \
106 SharedVariable, Signal, File
107 from pyVHDLModel.Regions import WithGenericsMixin, WithPortsMixin, WithParametersMixin
108 from pyVHDLModel.Sequential import IndexedChoice, RangedChoice, SequentialProcedureCall, \
109 SequentialSimpleSignalAssignment, SequentialVariableAssignment, \
110 SequentialConditionalVariableAssignment, \
111 SequentialConditionalSignalAssignment, SequentialSelectedVariableAssignment, \
112 SequentialSelectedSignalAssignment, SignalForceAssignment, \
113 SignalReleaseAssignment, SequentialReportStatement, SequentialAssertStatement, \
114 NullStatement, ReturnStatement, WaitStatement, IfBranch, ElsifBranch, \
115 ElseBranch, IfStatement, SequentialCase, Case, OthersCase, CaseStatement, \
116 LoopStatement, EndlessLoopStatement, ForLoopStatement, WhileLoopStatement, \
117 LoopControlStatement, NextStatement, ExitStatement
118 from pyVHDLModel.Subprogram import Subprogram, Procedure, Function
119 from pyVHDLModel.Symbol import Symbol, ConstrainedScalarSubtypeSymbol, ConstrainedArraySubtypeSymbol, \
120 ConstrainedRecordSubtypeSymbol
121 from pyVHDLModel.Type import AnonymousType, Subtype, EnumeratedType, IntegerType, RealType, PhysicalType, \
122 ArrayType, RecordTypeElement, RecordType, AccessType, FileType, ProtectedType, \
123 ProtectedTypeBody
126@export
127@abstractclass
128class Visitor(metaclass=ExtendedType, slots=True):
129 """
130 Base-class of all visitors walking a VHDL language model.
132 Every event does nothing: a visitor overrides the events it needs. The events are described in
133 :mod:`pyVHDLModel.Visitor`.
134 """
136 def VisitLeftParenthesis(
137 self,
138 element: IndexedName | ParenthesisName | TypeConversion | EntityAspectEntity | EntityInstantiation
139 ) -> None:
140 """
141 Visit the left parenthesis between the prefix and the parenthesized list of an element.
143 :param element: The element enclosing the list.
144 """
146 def VisitComma(
147 self,
148 element: IndexedName | ParenthesisName | Aggregate | ConstrainedArraySubtypeSymbol |
149 ConstrainedRecordSubtypeSymbol | EnumeratedType | ArrayType | AttributeSpecification |
150 GenericMapAspectMixin | PortMapAspectMixin | Reference | ComponentConfiguration | ProcessStatement |
151 ProcedureCallMixin | WaveformMixin | SelectedWaveformsMixin | SelectedExpressionsMixin | WaitStatement
152 ) -> None:
153 """
154 Visit the comma between two items of a list.
156 :param element: The element containing the list.
157 """
159 def VisitArrow(
160 self,
161 element: AssociationItem | IndexedAggregateElement | RangedAggregateElement | NamedAggregateElement |
162 ConcurrentCase | SequentialCase
163 ) -> None:
164 """
165 Visit the arrow (``=>``) between a choice or formal and its value.
167 :param element: The element containing the arrow.
168 """
170 def VisitApostrophe(self, expression: QualifiedExpression) -> None:
171 """
172 Visit the apostrophe between the subtype and the operand of a qualified expression.
174 :param expression: The qualified expression.
175 """
177 def VisitWhen(
178 self,
179 element: WhenElseExpression | ConditionalWaveform | SelectedWaveform | OthersSelectedWaveform |
180 ConditionalExpression | SelectedExpression | OthersSelectedExpression | LoopControlStatement
181 ) -> None:
182 """
183 Visit the reserved word ``when`` before the condition of a conditional expression, waveform or loop control
184 statement, or before the choices of a selected waveform or expression.
186 :param element: The element with the condition or choices.
187 """
189 def VisitElse(
190 self,
191 element: WhenElseExpression | ConditionalWaveformsMixin | SequentialConditionalVariableAssignment
192 ) -> None:
193 """
194 Visit the reserved word ``else`` before the alternative of a conditional expression or a conditional assignment.
196 :param element: The conditional expression or the conditional assignment.
197 """
199 def VisitOperator(self, expression: BinaryExpression) -> None:
200 """
201 Visit the operator between the operands of a binary expression.
203 :param expression: The binary expression.
204 """
206 def VisitDirection(self, rng: RangeExpression | SimpleRange) -> None:
207 """
208 Visit the direction (``to`` or ``downto``) between the bounds of a range.
210 :param rng: The range.
211 """
213 def VisitSemicolon(self, element: WithGenericsMixin | WithPortsMixin | WithParametersMixin) -> None:
214 """
215 Visit the semicolon between two items of an interface list.
217 :param element: The element containing the interface list.
218 """
220 def VisitVariableAssignment(self, element: WithDefaultExpressionMixin | AssignmentMixin) -> None:
221 """
222 Visit the variable assignment delimiter (``:=``) before a default expression or the value of a variable assignment.
224 :param element: The element with the default expression or the variable assignment.
225 """
227 def VisitIs(
228 self,
229 element: ModeViewDeclaration | Alias | AttributeSpecification | Subprogram | Architecture | Configuration |
230 ProcessStatement | CaseStatement
231 ) -> None:
232 """
233 Visit the reserved word ``is`` between the header and the body of a declaration or statement.
235 :param element: The declaration.
236 """
238 def VisitBox(self, arrayType: ArrayType) -> None:
239 """
240 Visit the box (``<>``) after the type mark of an unbounded index of an array type.
242 :param arrayType: The array type.
243 """
245 def VisitOf(self, arrayType: ArrayType) -> None:
246 """
247 Visit the reserved word ``of`` between the index ranges and the element subtype of an array type.
249 :param arrayType: The array type.
250 """
252 def VisitUnits(self, physicalType: PhysicalType) -> None:
253 """
254 Visit the reserved word ``units`` between the range and the secondary units of a physical type.
256 :param physicalType: The physical type.
257 """
259 def VisitBegin(
260 self,
261 element: Subprogram | Entity | Architecture | ProcessStatement | ConcurrentBlockStatement | GenerateBranch |
262 ConcurrentCase | ForGenerateStatement
263 ) -> None:
264 """
265 Visit the reserved word ``begin`` between the declarative part and the statement part of an element.
267 :param element: The element.
268 """
270 def VisitReturn(self, function: Function | GenericFunctionInterfaceItem) -> None:
271 """
272 Visit the reserved word ``return`` before the return type of a function.
274 :param function: The function.
275 """
277 def VisitSignalAssignment(self, element: SignalAssignmentMixin) -> None:
278 """
279 Visit the signal assignment delimiter (``<=``) between the target and the waveform of a signal assignment.
281 :param element: The signal assignment.
282 """
284 def VisitAfter(self, element: WaveformElement) -> None:
285 """
286 Visit the reserved word ``after`` between the value and the delay of a waveform element.
288 :param element: The waveform element.
289 """
291 def VisitSelect(
292 self,
293 element: ConcurrentSelectedSignalAssignment | SequentialSelectedVariableAssignment |
294 SequentialSelectedSignalAssignment
295 ) -> None:
296 """
297 Visit the reserved word ``select`` between the selector and the target of a selected assignment.
299 :param element: The selected assignment.
300 """
302 def VisitBar(self, element: SelectedWaveform | GenerateCase | SelectedExpression | Case) -> None:
303 """
304 Visit the vertical line (``|``) between two choices.
306 :param element: The element with the choices.
307 """
309 def VisitReport(self, element: ReportStatementMixin) -> None:
310 """
311 Visit the reserved word ``report`` before the message of an assertion or report.
313 :param element: The assertion or report.
314 """
316 def VisitSeverity(self, element: ReportStatementMixin) -> None:
317 """
318 Visit the reserved word ``severity`` before the severity level of an assertion or report.
320 :param element: The assertion or report.
321 """
323 def VisitRightParenthesis(self, element: EntityAspectEntity | EntityInstantiation) -> None:
324 """
325 Visit the right parenthesis after the architecture name of an entity aspect or entity instantiation.
327 :param element: The element enclosing the architecture name.
328 """
330 def VisitGenerate(self, element: GenerateBranch | CaseGenerateStatement | ForGenerateStatement) -> None:
331 """
332 Visit the reserved word ``generate`` before the body of a generate statement or branch.
334 :param element: The generate statement or branch.
335 """
337 def VisitOn(self, statement: WaitStatement) -> None:
338 """
339 Visit the reserved word ``on`` before the sensitivity list of a wait statement.
341 :param statement: The wait statement.
342 """
344 def VisitUntil(self, statement: WaitStatement) -> None:
345 """
346 Visit the reserved word ``until`` before the condition of a wait statement.
348 :param statement: The wait statement.
349 """
351 def VisitFor(self, statement: WaitStatement) -> None:
352 """
353 Visit the reserved word ``for`` before the timeout of a wait statement.
355 :param statement: The wait statement.
356 """
358 def VisitThen(self, branch: IfBranch | ElsifBranch) -> None:
359 """
360 Visit the reserved word ``then`` between the condition and the statements of an if or elsif branch.
362 :param branch: The branch.
363 """
365 def VisitLoop(self, statement: LoopStatement) -> None:
366 """
367 Visit the reserved word ``loop`` before the statements of a loop statement.
369 :param statement: The loop statement.
370 """
372 def VisitNullLiteral(self, literal: NullLiteral) -> None:
373 """
374 Visit a null literal.
376 :param literal: The null literal.
377 """
379 def DepartNullLiteral(self, literal: NullLiteral) -> None:
380 """
381 Depart from a null literal.
383 :param literal: The null literal.
384 """
386 def VisitEnumerationLiteral(self, literal: EnumerationLiteral) -> None:
387 """
388 Visit an enumeration literal.
390 :param literal: The enumeration literal.
391 """
393 def DepartEnumerationLiteral(self, literal: EnumerationLiteral) -> None:
394 """
395 Depart from an enumeration literal.
397 :param literal: The enumeration literal.
398 """
400 def VisitIntegerLiteral(self, literal: IntegerLiteral) -> None:
401 """
402 Visit an integer literal.
404 :param literal: The integer literal.
405 """
407 def DepartIntegerLiteral(self, literal: IntegerLiteral) -> None:
408 """
409 Depart from an integer literal.
411 :param literal: The integer literal.
412 """
414 def VisitFloatingPointLiteral(self, literal: FloatingPointLiteral) -> None:
415 """
416 Visit a floating-point literal.
418 :param literal: The floating-point literal.
419 """
421 def DepartFloatingPointLiteral(self, literal: FloatingPointLiteral) -> None:
422 """
423 Depart from a floating-point literal.
425 :param literal: The floating-point literal.
426 """
428 def VisitPhysicalIntegerLiteral(self, literal: PhysicalIntegerLiteral) -> None:
429 """
430 Visit a physical literal with an integer value.
432 :param literal: The physical literal.
433 """
435 def DepartPhysicalIntegerLiteral(self, literal: PhysicalIntegerLiteral) -> None:
436 """
437 Depart from a physical literal with an integer value.
439 :param literal: The physical literal.
440 """
442 def VisitPhysicalFloatingLiteral(self, literal: PhysicalFloatingLiteral) -> None:
443 """
444 Visit a physical literal with a floating-point value.
446 :param literal: The physical literal.
447 """
449 def DepartPhysicalFloatingLiteral(self, literal: PhysicalFloatingLiteral) -> None:
450 """
451 Depart from a physical literal with a floating-point value.
453 :param literal: The physical literal.
454 """
456 def VisitCharacterLiteral(self, literal: CharacterLiteral) -> None:
457 """
458 Visit a character literal.
460 :param literal: The character literal.
461 """
463 def DepartCharacterLiteral(self, literal: CharacterLiteral) -> None:
464 """
465 Depart from a character literal.
467 :param literal: The character literal.
468 """
470 def VisitStringLiteral(self, literal: StringLiteral) -> None:
471 """
472 Visit a string literal.
474 :param literal: The string literal.
475 """
477 def DepartStringLiteral(self, literal: StringLiteral) -> None:
478 """
479 Depart from a string literal.
481 :param literal: The string literal.
482 """
484 def VisitBitStringLiteral(self, literal: BitStringLiteral) -> None:
485 """
486 Visit a bit string literal.
488 :param literal: The bit string literal.
489 """
491 def DepartBitStringLiteral(self, literal: BitStringLiteral) -> None:
492 """
493 Depart from a bit string literal.
495 :param literal: The bit string literal.
496 """
498 def VisitSimpleName(self, name: SimpleName) -> None:
499 """
500 Visit a simple name.
502 :param name: The simple name.
503 """
505 def DepartSimpleName(self, name: SimpleName) -> None:
506 """
507 Depart from a simple name.
509 :param name: The simple name.
510 """
512 def VisitSelectedName(self, name: SelectedName) -> None:
513 """
514 Visit a selected name, before its prefix.
516 :param name: The selected name.
517 """
519 def DepartSelectedName(self, name: SelectedName) -> None:
520 """
521 Depart from a selected name, after its prefix.
523 :param name: The selected name.
524 """
526 def VisitAllName(self, name: AllName) -> None:
527 """
528 Visit a selected name with suffix ``all``, before its prefix.
530 :param name: The ``all`` name.
531 """
533 def DepartAllName(self, name: AllName) -> None:
534 """
535 Depart from a selected name with suffix ``all``, after its prefix.
537 :param name: The ``all`` name.
538 """
540 def VisitAttributeName(self, name: AttributeName) -> None:
541 """
542 Visit an attribute name, before its prefix.
544 :param name: The attribute name.
545 """
547 def DepartAttributeName(self, name: AttributeName) -> None:
548 """
549 Depart from an attribute name, after its prefix.
551 :param name: The attribute name.
552 """
554 def VisitIndexedName(self, name: IndexedName) -> None:
555 """
556 Visit an indexed name, before its prefix.
558 :param name: The indexed name.
559 """
561 def DepartIndexedName(self, name: IndexedName) -> None:
562 """
563 Depart from an indexed name, after its last index.
565 :param name: The indexed name.
566 """
568 def VisitParenthesisName(self, name: ParenthesisName) -> None:
569 """
570 Visit a name followed by a parenthesized association list, before its prefix.
572 :param name: The parenthesis name.
573 """
575 def DepartParenthesisName(self, name: ParenthesisName) -> None:
576 """
577 Depart from a name followed by a parenthesized association list, after its last association.
579 :param name: The parenthesis name.
580 """
582 def VisitSlicedName(self, name: SlicedName) -> None:
583 """
584 Visit a sliced name, before its prefix.
586 :param name: The sliced name.
587 """
589 def DepartSlicedName(self, name: SlicedName) -> None:
590 """
591 Depart from a sliced name, after its prefix.
593 :param name: The sliced name.
594 """
596 def VisitOpenName(self, name: OpenName) -> None:
597 """
598 Visit the reserved word ``open``.
600 :param name: The ``open`` name.
601 """
603 def DepartOpenName(self, name: OpenName) -> None:
604 """
605 Depart from the reserved word ``open``.
607 :param name: The ``open`` name.
608 """
610 def VisitSymbol(self, symbol: Symbol) -> None:
611 """
612 Visit a symbol, before its name.
614 :param symbol: The symbol.
615 """
617 def DepartSymbol(self, symbol: Symbol) -> None:
618 """
619 Depart from a symbol, after its name.
621 :param symbol: The symbol.
622 """
624 def VisitAssociationItem(self, item: AssociationItem) -> None:
625 """
626 Visit an association item, before its formal or, if positional, its actual.
628 :param item: The association item.
629 """
631 def DepartAssociationItem(self, item: AssociationItem) -> None:
632 """
633 Depart from an association item, after its actual.
635 :param item: The association item.
636 """
638 def VisitUnaryExpression(self, expression: UnaryExpression) -> None:
639 """
640 Visit a unary expression with a reserved word as operator, before its operand.
642 Examples of such operators are ``not`` and ``abs``.
644 :param expression: The unary expression.
645 """
647 def DepartUnaryExpression(self, expression: UnaryExpression) -> None:
648 """
649 Depart from a unary expression with a reserved word as operator, after its operand.
651 Examples of such operators are ``not`` and ``abs``.
653 :param expression: The unary expression.
654 """
656 def VisitNegationExpression(self, expression: NegationExpression) -> None:
657 """
658 Visit a negation (sign ``-``), before its operand.
660 :param expression: The negation.
661 """
663 def DepartNegationExpression(self, expression: NegationExpression) -> None:
664 """
665 Depart from a negation (sign ``-``), after its operand.
667 :param expression: The negation.
668 """
670 def VisitIdentityExpression(self, expression: IdentityExpression) -> None:
671 """
672 Visit an identity (sign ``+``), before its operand.
674 :param expression: The identity.
675 """
677 def DepartIdentityExpression(self, expression: IdentityExpression) -> None:
678 """
679 Depart from an identity (sign ``+``), after its operand.
681 :param expression: The identity.
682 """
684 def VisitTypeConversion(self, conversion: TypeConversion) -> None:
685 """
686 Visit a type conversion, before its target subtype.
688 :param conversion: The type conversion.
689 """
691 def DepartTypeConversion(self, conversion: TypeConversion) -> None:
692 """
693 Depart from a type conversion, after its operand.
695 :param conversion: The type conversion.
696 """
698 def VisitSubExpression(self, expression: SubExpression) -> None:
699 """
700 Visit a parenthesized sub-expression, before its operand.
702 :param expression: The parenthesized sub-expression.
703 """
705 def DepartSubExpression(self, expression: SubExpression) -> None:
706 """
707 Depart from a parenthesized sub-expression, after its operand.
709 :param expression: The parenthesized sub-expression.
710 """
712 def VisitLogicalExpression(self, expression: LogicalExpression) -> None:
713 """
714 Visit a binary logical expression, before its left operand.
716 :param expression: The binary logical expression.
717 """
719 def DepartLogicalExpression(self, expression: LogicalExpression) -> None:
720 """
721 Depart from a binary logical expression, after its right operand.
723 :param expression: The binary logical expression.
724 """
726 def VisitRelationalExpression(self, expression: RelationalExpression) -> None:
727 """
728 Visit a relational expression, before its left operand.
730 :param expression: The relational expression.
731 """
733 def DepartRelationalExpression(self, expression: RelationalExpression) -> None:
734 """
735 Depart from a relational expression, after its right operand.
737 :param expression: The relational expression.
738 """
740 def VisitShiftExpression(self, expression: ShiftExpression) -> None:
741 """
742 Visit a shift or rotate expression, before its left operand.
744 :param expression: The shift or rotate expression.
745 """
747 def DepartShiftExpression(self, expression: ShiftExpression) -> None:
748 """
749 Depart from a shift or rotate expression, after its right operand.
751 :param expression: The shift or rotate expression.
752 """
754 def VisitAddingExpression(self, expression: AddingExpression) -> None:
755 """
756 Visit an adding expression, before its left operand.
758 :param expression: The adding expression.
759 """
761 def DepartAddingExpression(self, expression: AddingExpression) -> None:
762 """
763 Depart from an adding expression, after its right operand.
765 :param expression: The adding expression.
766 """
768 def VisitMultiplyingExpression(self, expression: MultiplyingExpression) -> None:
769 """
770 Visit a multiplying expression, before its left operand.
772 :param expression: The multiplying expression.
773 """
775 def DepartMultiplyingExpression(self, expression: MultiplyingExpression) -> None:
776 """
777 Depart from a multiplying expression, after its right operand.
779 :param expression: The multiplying expression.
780 """
782 def VisitExponentiationExpression(self, expression: ExponentiationExpression) -> None:
783 """
784 Visit an exponentiation, before its left operand.
786 :param expression: The exponentiation.
787 """
789 def DepartExponentiationExpression(self, expression: ExponentiationExpression) -> None:
790 """
791 Depart from an exponentiation, after its right operand.
793 :param expression: The exponentiation.
794 """
796 def VisitRangeExpression(self, expression: RangeExpression) -> None:
797 """
798 Visit a range expression, before its left bound.
800 :param expression: The range expression.
801 """
803 def DepartRangeExpression(self, expression: RangeExpression) -> None:
804 """
805 Depart from a range expression, after its right bound.
807 :param expression: The range expression.
808 """
810 def VisitWhenElseExpression(self, expression: WhenElseExpression) -> None:
811 """
812 Visit a conditional expression, before its value.
814 :param expression: The conditional expression.
815 """
817 def DepartWhenElseExpression(self, expression: WhenElseExpression) -> None:
818 """
819 Depart from a conditional expression, after its alternative value.
821 :param expression: The conditional expression.
822 """
824 def VisitQualifiedExpression(self, expression: QualifiedExpression) -> None:
825 """
826 Visit a qualified expression, before its subtype.
828 :param expression: The qualified expression.
829 """
831 def DepartQualifiedExpression(self, expression: QualifiedExpression) -> None:
832 """
833 Depart from a qualified expression, after its operand.
835 :param expression: The qualified expression.
836 """
838 def VisitSubtypeAllocation(self, allocation: SubtypeAllocation) -> None:
839 """
840 Visit an allocation of a subtype, before its subtype.
842 :param allocation: The allocation of a subtype.
843 """
845 def DepartSubtypeAllocation(self, allocation: SubtypeAllocation) -> None:
846 """
847 Depart from an allocation of a subtype, after its subtype.
849 :param allocation: The allocation of a subtype.
850 """
852 def VisitQualifiedExpressionAllocation(self, allocation: QualifiedExpressionAllocation) -> None:
853 """
854 Visit an allocation initialized by a qualified expression, before its qualified expression.
856 :param allocation: The allocation initialized by a qualified expression.
857 """
859 def DepartQualifiedExpressionAllocation(self, allocation: QualifiedExpressionAllocation) -> None:
860 """
861 Depart from an allocation initialized by a qualified expression, after its qualified expression.
863 :param allocation: The allocation initialized by a qualified expression.
864 """
866 def VisitAggregate(self, aggregate: Aggregate) -> None:
867 """
868 Visit an aggregate, before its first element.
870 :param aggregate: The aggregate.
871 """
873 def DepartAggregate(self, aggregate: Aggregate) -> None:
874 """
875 Depart from an aggregate, after its last element.
877 :param aggregate: The aggregate.
878 """
880 def VisitSimpleAggregateElement(self, element: SimpleAggregateElement) -> None:
881 """
882 Visit a positional aggregate element, before its expression.
884 :param element: The positional aggregate element.
885 """
887 def DepartSimpleAggregateElement(self, element: SimpleAggregateElement) -> None:
888 """
889 Depart from a positional aggregate element, after its expression.
891 :param element: The positional aggregate element.
892 """
894 def VisitIndexedAggregateElement(self, element: IndexedAggregateElement) -> None:
895 """
896 Visit an aggregate element chosen by an index, before its index.
898 :param element: The aggregate element chosen by an index.
899 """
901 def DepartIndexedAggregateElement(self, element: IndexedAggregateElement) -> None:
902 """
903 Depart from an aggregate element chosen by an index, after its expression.
905 :param element: The aggregate element chosen by an index.
906 """
908 def VisitRangedAggregateElement(self, element: RangedAggregateElement) -> None:
909 """
910 Visit an aggregate element chosen by a range, before its range.
912 :param element: The aggregate element chosen by a range.
913 """
915 def DepartRangedAggregateElement(self, element: RangedAggregateElement) -> None:
916 """
917 Depart from an aggregate element chosen by a range, after its expression.
919 :param element: The aggregate element chosen by a range.
920 """
922 def VisitNamedAggregateElement(self, element: NamedAggregateElement) -> None:
923 """
924 Visit an aggregate element chosen by a record element name, before its name.
926 :param element: The aggregate element chosen by a record element name.
927 """
929 def DepartNamedAggregateElement(self, element: NamedAggregateElement) -> None:
930 """
931 Depart from an aggregate element chosen by a record element name, after its expression.
933 :param element: The aggregate element chosen by a record element name.
934 """
936 def VisitOthersAggregateElement(self, element: OthersAggregateElement) -> None:
937 """
938 Visit the ``others`` element of an aggregate, before its expression.
940 :param element: The ``others`` element of an aggregate.
941 """
943 def DepartOthersAggregateElement(self, element: OthersAggregateElement) -> None:
944 """
945 Depart from the ``others`` element of an aggregate, after its expression.
947 :param element: The ``others`` element of an aggregate.
948 """
950 def VisitSimpleRange(self, rng: SimpleRange) -> None:
951 """
952 Visit a range given by its bounds, before its left bound.
954 :param rng: The range.
955 """
957 def DepartSimpleRange(self, rng: SimpleRange) -> None:
958 """
959 Depart from a range given by its bounds, after its right bound.
961 :param rng: The range.
962 """
964 def VisitRangeFromName(self, rng: RangeFromName) -> None:
965 """
966 Visit a range denoted by a name, before its name.
968 :param rng: The range.
969 """
971 def DepartRangeFromName(self, rng: RangeFromName) -> None:
972 """
973 Depart from a range denoted by a name, after its name.
975 :param rng: The range.
976 """
978 def VisitRangeConstraint(self, symbol: ConstrainedScalarSubtypeSymbol) -> None:
979 """
980 Visit the range constraint of a subtype indication, before its range.
982 :param symbol: The constrained subtype symbol.
983 """
985 def DepartRangeConstraint(self, symbol: ConstrainedScalarSubtypeSymbol) -> None:
986 """
987 Depart from the range constraint of a subtype indication, after its range.
989 :param symbol: The constrained subtype symbol.
990 """
992 def VisitIndexConstraint(
993 self,
994 element: ConstrainedArraySubtypeSymbol | ConstrainedRecordSubtypeSymbol | ArrayType
995 ) -> None:
996 """
997 Visit the index constraint of a subtype indication, of a record element or of an array type, before its first range.
999 :param element: The constrained subtype symbol or the array type.
1000 """
1002 def DepartIndexConstraint(
1003 self,
1004 element: ConstrainedArraySubtypeSymbol | ConstrainedRecordSubtypeSymbol | ArrayType
1005 ) -> None:
1006 """
1007 Depart from the index constraint of a subtype indication, of a record element or of an array type, after its last
1008 range.
1010 :param element: The constrained subtype symbol or the array type.
1011 """
1013 def VisitRecordConstraint(self, symbol: ConstrainedRecordSubtypeSymbol) -> None:
1014 """
1015 Visit the record constraint of a subtype indication, before its first record element constraint.
1017 :param symbol: The constrained subtype symbol.
1018 """
1020 def DepartRecordConstraint(self, symbol: ConstrainedRecordSubtypeSymbol) -> None:
1021 """
1022 Depart from the record constraint of a subtype indication, after its last record element constraint.
1024 :param symbol: The constrained subtype symbol.
1025 """
1027 def VisitGenericClause(self, element: WithGenericsMixin) -> None:
1028 """
1029 Visit the generic clause of an element, before its first generic.
1031 :param element: The element with generics.
1032 """
1034 def DepartGenericClause(self, element: WithGenericsMixin) -> None:
1035 """
1036 Depart from the generic clause of an element, after its last generic.
1038 :param element: The element with generics.
1039 """
1041 def VisitPortClause(self, element: WithPortsMixin) -> None:
1042 """
1043 Visit the port clause of an element, before its first port.
1045 :param element: The element with ports.
1046 """
1048 def DepartPortClause(self, element: WithPortsMixin) -> None:
1049 """
1050 Depart from the port clause of an element, after its last port.
1052 :param element: The element with ports.
1053 """
1055 def VisitConstrainedScalarSubtypeSymbol(self, symbol: ConstrainedScalarSubtypeSymbol) -> None:
1056 """
1057 Visit a constrained scalar subtype symbol, before its name.
1059 :param symbol: The constrained subtype symbol.
1060 """
1062 def DepartConstrainedScalarSubtypeSymbol(self, symbol: ConstrainedScalarSubtypeSymbol) -> None:
1063 """
1064 Depart from a constrained scalar subtype symbol, after its range constraint.
1066 :param symbol: The constrained subtype symbol.
1067 """
1069 def VisitConstrainedArraySubtypeSymbol(self, symbol: ConstrainedArraySubtypeSymbol) -> None:
1070 """
1071 Visit a constrained array subtype symbol, before its name.
1073 :param symbol: The constrained subtype symbol.
1074 """
1076 def DepartConstrainedArraySubtypeSymbol(self, symbol: ConstrainedArraySubtypeSymbol) -> None:
1077 """
1078 Depart from a constrained array subtype symbol, after its index constraint.
1080 :param symbol: The constrained subtype symbol.
1081 """
1083 def VisitConstrainedRecordSubtypeSymbol(self, symbol: ConstrainedRecordSubtypeSymbol) -> None:
1084 """
1085 Visit a constrained record subtype symbol, before its name.
1087 :param symbol: The constrained subtype symbol.
1088 """
1090 def DepartConstrainedRecordSubtypeSymbol(self, symbol: ConstrainedRecordSubtypeSymbol) -> None:
1091 """
1092 Depart from a constrained record subtype symbol, after its record constraint.
1094 :param symbol: The constrained subtype symbol.
1095 """
1097 def VisitConstant(self, constant: Constant) -> None:
1098 """
1099 Visit a constant declaration, before its subtype.
1101 :param constant: The constant declaration.
1102 """
1104 def DepartConstant(self, constant: Constant) -> None:
1105 """
1106 Depart from a constant declaration, after its default expression.
1108 :param constant: The constant declaration.
1109 """
1111 def VisitDeferredConstant(self, constant: DeferredConstant) -> None:
1112 """
1113 Visit a deferred constant declaration, before its subtype.
1115 :param constant: The deferred constant declaration.
1116 """
1118 def DepartDeferredConstant(self, constant: DeferredConstant) -> None:
1119 """
1120 Depart from a deferred constant declaration, after its subtype.
1122 :param constant: The deferred constant declaration.
1123 """
1125 def VisitVariable(self, variable: Variable) -> None:
1126 """
1127 Visit a variable declaration, before its subtype.
1129 :param variable: The variable declaration.
1130 """
1132 def DepartVariable(self, variable: Variable) -> None:
1133 """
1134 Depart from a variable declaration, after its default expression.
1136 :param variable: The variable declaration.
1137 """
1139 def VisitSharedVariable(self, variable: SharedVariable) -> None:
1140 """
1141 Visit a shared variable declaration, before its subtype.
1143 :param variable: The shared variable declaration.
1144 """
1146 def DepartSharedVariable(self, variable: SharedVariable) -> None:
1147 """
1148 Depart from a shared variable declaration, after its subtype.
1150 :param variable: The shared variable declaration.
1151 """
1153 def VisitSignal(self, signal: Signal) -> None:
1154 """
1155 Visit a signal declaration, before its subtype.
1157 :param signal: The signal declaration.
1158 """
1160 def DepartSignal(self, signal: Signal) -> None:
1161 """
1162 Depart from a signal declaration, after its default expression.
1164 :param signal: The signal declaration.
1165 """
1167 def VisitFile(self, file: File) -> None:
1168 """
1169 Visit a file declaration, before its subtype.
1171 :param file: The file declaration.
1172 """
1174 def DepartFile(self, file: File) -> None:
1175 """
1176 Depart from a file declaration, after its subtype.
1178 :param file: The file declaration.
1179 """
1181 def VisitGenericConstantInterfaceItem(self, item: GenericConstantInterfaceItem) -> None:
1182 """
1183 Visit a generic constant, before its subtype.
1185 :param item: The generic constant.
1186 """
1188 def DepartGenericConstantInterfaceItem(self, item: GenericConstantInterfaceItem) -> None:
1189 """
1190 Depart from a generic constant, after its default expression.
1192 :param item: The generic constant.
1193 """
1195 def VisitGenericTypeInterfaceItem(self, item: GenericTypeInterfaceItem) -> None:
1196 """
1197 Visit a generic type.
1199 :param item: The generic type.
1200 """
1202 def DepartGenericTypeInterfaceItem(self, item: GenericTypeInterfaceItem) -> None:
1203 """
1204 Depart from a generic type.
1206 :param item: The generic type.
1207 """
1209 def VisitPortSimpleSignalInterfaceItem(self, item: PortSimpleSignalInterfaceItem) -> None:
1210 """
1211 Visit a port with a mode, before its subtype.
1213 :param item: The port.
1214 """
1216 def DepartPortSimpleSignalInterfaceItem(self, item: PortSimpleSignalInterfaceItem) -> None:
1217 """
1218 Depart from a port with a mode, after its default expression.
1220 :param item: The port.
1221 """
1223 def VisitPortViewSignalInterfaceItem(self, item: PortViewSignalInterfaceItem) -> None:
1224 """
1225 Visit a port with a mode view, before its mode view indication.
1227 :param item: The port.
1228 """
1230 def DepartPortViewSignalInterfaceItem(self, item: PortViewSignalInterfaceItem) -> None:
1231 """
1232 Depart from a port with a mode view, after its mode view indication.
1234 :param item: The port.
1235 """
1237 def VisitParameterConstantInterfaceItem(self, item: ParameterConstantInterfaceItem) -> None:
1238 """
1239 Visit a constant parameter, before its subtype.
1241 :param item: The constant parameter.
1242 """
1244 def DepartParameterConstantInterfaceItem(self, item: ParameterConstantInterfaceItem) -> None:
1245 """
1246 Depart from a constant parameter, after its default expression.
1248 :param item: The constant parameter.
1249 """
1251 def VisitParameterVariableInterfaceItem(self, item: ParameterVariableInterfaceItem) -> None:
1252 """
1253 Visit a variable parameter, before its subtype.
1255 :param item: The variable parameter.
1256 """
1258 def DepartParameterVariableInterfaceItem(self, item: ParameterVariableInterfaceItem) -> None:
1259 """
1260 Depart from a variable parameter, after its default expression.
1262 :param item: The variable parameter.
1263 """
1265 def VisitParameterSimpleSignalInterfaceItem(self, item: ParameterSimpleSignalInterfaceItem) -> None:
1266 """
1267 Visit a signal parameter with a mode, before its subtype.
1269 :param item: The signal parameter.
1270 """
1272 def DepartParameterSimpleSignalInterfaceItem(self, item: ParameterSimpleSignalInterfaceItem) -> None:
1273 """
1274 Depart from a signal parameter with a mode, after its default expression.
1276 :param item: The signal parameter.
1277 """
1279 def VisitParameterViewSignalInterfaceItem(self, item: ParameterViewSignalInterfaceItem) -> None:
1280 """
1281 Visit a signal parameter with a mode view, before its mode view indication.
1283 :param item: The signal parameter.
1284 """
1286 def DepartParameterViewSignalInterfaceItem(self, item: ParameterViewSignalInterfaceItem) -> None:
1287 """
1288 Depart from a signal parameter with a mode view, after its mode view indication.
1290 :param item: The signal parameter.
1291 """
1293 def VisitParameterFileInterfaceItem(self, item: ParameterFileInterfaceItem) -> None:
1294 """
1295 Visit a file parameter, before its subtype.
1297 :param item: The file parameter.
1298 """
1300 def DepartParameterFileInterfaceItem(self, item: ParameterFileInterfaceItem) -> None:
1301 """
1302 Depart from a file parameter, after its subtype.
1304 :param item: The file parameter.
1305 """
1307 def VisitModeViewDeclaration(self, declaration: ModeViewDeclaration) -> None:
1308 """
1309 Visit a mode view declaration, before its subtype.
1311 :param declaration: The mode view declaration.
1312 """
1314 def DepartModeViewDeclaration(self, declaration: ModeViewDeclaration) -> None:
1315 """
1316 Depart from a mode view declaration, after its last element.
1318 :param declaration: The mode view declaration.
1319 """
1321 def VisitSimpleModeViewElement(self, element: SimpleModeViewElement) -> None:
1322 """
1323 Visit an element of a mode view with a mode.
1325 :param element: The mode view element.
1326 """
1328 def DepartSimpleModeViewElement(self, element: SimpleModeViewElement) -> None:
1329 """
1330 Depart from an element of a mode view with a mode.
1332 :param element: The mode view element.
1333 """
1335 def VisitCompositeModeViewElement(self, element: CompositeModeViewElement) -> None:
1336 """
1337 Visit an element of a mode view with a mode view, before its mode view name.
1339 :param element: The mode view element.
1340 """
1342 def DepartCompositeModeViewElement(self, element: CompositeModeViewElement) -> None:
1343 """
1344 Depart from an element of a mode view with a mode view, after its mode view name.
1346 :param element: The mode view element.
1347 """
1349 def VisitComponent(self, component: Component) -> None:
1350 """
1351 Visit a component declaration, before its generic clause.
1353 :param component: The component declaration.
1354 """
1356 def DepartComponent(self, component: Component) -> None:
1357 """
1358 Depart from a component declaration, after its port clause.
1360 :param component: The component declaration.
1361 """
1363 def VisitSecondaryUnitDeclaration(self, physicalType: PhysicalType, identifier: str) -> None:
1364 """
1365 Visit a secondary unit declaration of a physical type, before its value.
1367 :param physicalType: The physical type.
1368 :param identifier: The identifier of the secondary unit.
1369 """
1371 def DepartSecondaryUnitDeclaration(self, physicalType: PhysicalType, identifier: str) -> None:
1372 """
1373 Depart from a secondary unit declaration of a physical type, after its value.
1375 :param physicalType: The physical type.
1376 :param identifier: The identifier of the secondary unit.
1377 """
1379 def VisitEntitySpecification(self, specification: AttributeSpecification) -> None:
1380 """
1381 Visit the entity specification of an attribute specification, before its first name.
1383 :param specification: The attribute specification.
1384 """
1386 def DepartEntitySpecification(self, specification: AttributeSpecification) -> None:
1387 """
1388 Depart from the entity specification of an attribute specification, after its last name.
1390 :param specification: The attribute specification.
1391 """
1393 def VisitAnonymousType(self, declaration: AnonymousType) -> None:
1394 """
1395 Visit an incomplete type declaration.
1397 :param declaration: The incomplete type declaration.
1398 """
1400 def DepartAnonymousType(self, declaration: AnonymousType) -> None:
1401 """
1402 Depart from an incomplete type declaration.
1404 :param declaration: The incomplete type declaration.
1405 """
1407 def VisitSubtype(self, subtype: Subtype) -> None:
1408 """
1409 Visit a subtype declaration, before its subtype indication.
1411 :param subtype: The subtype declaration.
1412 """
1414 def DepartSubtype(self, subtype: Subtype) -> None:
1415 """
1416 Depart from a subtype declaration, after its subtype indication.
1418 :param subtype: The subtype declaration.
1419 """
1421 def VisitEnumeratedType(self, enumeratedType: EnumeratedType) -> None:
1422 """
1423 Visit an enumerated type declaration, before its first literal.
1425 :param enumeratedType: The enumerated type.
1426 """
1428 def DepartEnumeratedType(self, enumeratedType: EnumeratedType) -> None:
1429 """
1430 Depart from an enumerated type declaration, after its last literal.
1432 :param enumeratedType: The enumerated type.
1433 """
1435 def VisitIntegerType(self, integerType: IntegerType) -> None:
1436 """
1437 Visit an integer type declaration, before its range.
1439 :param integerType: The integer type.
1440 """
1442 def DepartIntegerType(self, integerType: IntegerType) -> None:
1443 """
1444 Depart from an integer type declaration, after its range.
1446 :param integerType: The integer type.
1447 """
1449 def VisitRealType(self, realType: RealType) -> None:
1450 """
1451 Visit a floating-point type declaration, before its range.
1453 :param realType: The floating-point type.
1454 """
1456 def DepartRealType(self, realType: RealType) -> None:
1457 """
1458 Depart from a floating-point type declaration, after its range.
1460 :param realType: The floating-point type.
1461 """
1463 def VisitPhysicalType(self, physicalType: PhysicalType) -> None:
1464 """
1465 Visit a physical type declaration, before its range.
1467 :param physicalType: The physical type.
1468 """
1470 def DepartPhysicalType(self, physicalType: PhysicalType) -> None:
1471 """
1472 Depart from a physical type declaration, after its last secondary unit.
1474 :param physicalType: The physical type.
1475 """
1477 def VisitArrayType(self, arrayType: ArrayType) -> None:
1478 """
1479 Visit an array type declaration, before its index ranges.
1481 :param arrayType: The array type.
1482 """
1484 def DepartArrayType(self, arrayType: ArrayType) -> None:
1485 """
1486 Depart from an array type declaration, after its element subtype.
1488 :param arrayType: The array type.
1489 """
1491 def VisitRecordTypeElement(self, element: RecordTypeElement) -> None:
1492 """
1493 Visit an element declaration of a record type, before its subtype.
1495 :param element: The record element declaration.
1496 """
1498 def DepartRecordTypeElement(self, element: RecordTypeElement) -> None:
1499 """
1500 Depart from an element declaration of a record type, after its subtype.
1502 :param element: The record element declaration.
1503 """
1505 def VisitRecordType(self, recordType: RecordType) -> None:
1506 """
1507 Visit a record type declaration, before its first element declaration.
1509 :param recordType: The record type.
1510 """
1512 def DepartRecordType(self, recordType: RecordType) -> None:
1513 """
1514 Depart from a record type declaration, after its last element declaration.
1516 :param recordType: The record type.
1517 """
1519 def VisitAccessType(self, accessType: AccessType) -> None:
1520 """
1521 Visit an access type declaration, before its designated subtype.
1523 :param accessType: The access type.
1524 """
1526 def DepartAccessType(self, accessType: AccessType) -> None:
1527 """
1528 Depart from an access type declaration, after its designated subtype.
1530 :param accessType: The access type.
1531 """
1533 def VisitFileType(self, fileType: FileType) -> None:
1534 """
1535 Visit a file type declaration, before its designated subtype.
1537 :param fileType: The file type.
1538 """
1540 def DepartFileType(self, fileType: FileType) -> None:
1541 """
1542 Depart from a file type declaration, after its designated subtype.
1544 :param fileType: The file type.
1545 """
1547 def VisitAlias(self, alias: Alias) -> None:
1548 """
1549 Visit an alias declaration, before its subtype or name.
1551 :param alias: The alias declaration.
1552 """
1554 def DepartAlias(self, alias: Alias) -> None:
1555 """
1556 Depart from an alias declaration, after its name.
1558 :param alias: The alias declaration.
1559 """
1561 def VisitAttribute(self, attribute: Attribute) -> None:
1562 """
1563 Visit an attribute declaration, before its subtype.
1565 :param attribute: The attribute declaration.
1566 """
1568 def DepartAttribute(self, attribute: Attribute) -> None:
1569 """
1570 Depart from an attribute declaration, after its subtype.
1572 :param attribute: The attribute declaration.
1573 """
1575 def VisitAttributeSpecification(self, specification: AttributeSpecification) -> None:
1576 """
1577 Visit an attribute specification, before its attribute.
1579 :param specification: The attribute specification.
1580 """
1582 def DepartAttributeSpecification(self, specification: AttributeSpecification) -> None:
1583 """
1584 Depart from an attribute specification, after its expression.
1586 :param specification: The attribute specification.
1587 """
1589 def VisitFormalParameterList(self, element: WithParametersMixin) -> None:
1590 """
1591 Visit the formal parameter list of a subprogram, before its first parameter.
1593 :param element: The element with parameters.
1594 """
1596 def DepartFormalParameterList(self, element: WithParametersMixin) -> None:
1597 """
1598 Depart from the formal parameter list of a subprogram, after its last parameter.
1600 :param element: The element with parameters.
1601 """
1603 def VisitGenericMapAspect(self, element: GenericMapAspectMixin) -> None:
1604 """
1605 Visit the generic map aspect of an element, before its first association.
1607 :param element: The element with a generic map aspect.
1608 """
1610 def DepartGenericMapAspect(self, element: GenericMapAspectMixin) -> None:
1611 """
1612 Depart from the generic map aspect of an element, after its last association.
1614 :param element: The element with a generic map aspect.
1615 """
1617 def VisitProcedure(self, procedure: Procedure) -> None:
1618 """
1619 Visit a procedure declaration or body, before its generic clause.
1621 :param procedure: The procedure.
1622 """
1624 def DepartProcedure(self, procedure: Procedure) -> None:
1625 """
1626 Depart from a procedure declaration or body, after its statements.
1628 :param procedure: The procedure.
1629 """
1631 def VisitFunction(self, function: Function) -> None:
1632 """
1633 Visit a function declaration or body, before its generic clause.
1635 :param function: The function.
1636 """
1638 def DepartFunction(self, function: Function) -> None:
1639 """
1640 Depart from a function declaration or body, after its statements.
1642 :param function: The function.
1643 """
1645 def VisitGenericProcedureInterfaceItem(self, item: GenericProcedureInterfaceItem) -> None:
1646 """
1647 Visit a generic procedure, before its parameters.
1649 :param item: The generic procedure.
1650 """
1652 def DepartGenericProcedureInterfaceItem(self, item: GenericProcedureInterfaceItem) -> None:
1653 """
1654 Depart from a generic procedure, after its parameters.
1656 :param item: The generic procedure.
1657 """
1659 def VisitGenericFunctionInterfaceItem(self, item: GenericFunctionInterfaceItem) -> None:
1660 """
1661 Visit a generic function, before its parameters.
1663 :param item: The generic function.
1664 """
1666 def DepartGenericFunctionInterfaceItem(self, item: GenericFunctionInterfaceItem) -> None:
1667 """
1668 Depart from a generic function, after its return type.
1670 :param item: The generic function.
1671 """
1673 def VisitProcedureInstantiation(self, instantiation: ProcedureInstantiation) -> None:
1674 """
1675 Visit a procedure instantiation, before its generic procedure.
1677 :param instantiation: The procedure instantiation.
1678 """
1680 def DepartProcedureInstantiation(self, instantiation: ProcedureInstantiation) -> None:
1681 """
1682 Depart from a procedure instantiation, after its generic map aspect.
1684 :param instantiation: The procedure instantiation.
1685 """
1687 def VisitFunctionInstantiation(self, instantiation: FunctionInstantiation) -> None:
1688 """
1689 Visit a function instantiation, before its generic function.
1691 :param instantiation: The function instantiation.
1692 """
1694 def DepartFunctionInstantiation(self, instantiation: FunctionInstantiation) -> None:
1695 """
1696 Depart from a function instantiation, after its generic map aspect.
1698 :param instantiation: The function instantiation.
1699 """
1701 def VisitProtectedType(self, protectedType: ProtectedType) -> None:
1702 """
1703 Visit a protected type declaration, before its first method.
1705 :param protectedType: The protected type.
1706 """
1708 def DepartProtectedType(self, protectedType: ProtectedType) -> None:
1709 """
1710 Depart from a protected type declaration, after its last method.
1712 :param protectedType: The protected type.
1713 """
1715 def VisitProtectedTypeBody(self, body: ProtectedTypeBody) -> None:
1716 """
1717 Visit a protected type body, before its first declared item.
1719 :param body: The protected type body.
1720 """
1722 def DepartProtectedTypeBody(self, body: ProtectedTypeBody) -> None:
1723 """
1724 Depart from a protected type body, after its last declared item.
1726 :param body: The protected type body.
1727 """
1729 def VisitPortMapAspect(self, element: PortMapAspectMixin) -> None:
1730 """
1731 Visit the port map aspect of an element, before its first association.
1733 :param element: The element with a port map aspect.
1734 """
1736 def DepartPortMapAspect(self, element: PortMapAspectMixin) -> None:
1737 """
1738 Depart from the port map aspect of an element, after its last association.
1740 :param element: The element with a port map aspect.
1741 """
1743 def VisitContextClause(self, designUnit: DesignUnit) -> None:
1744 """
1745 Visit the context clause of a design unit, before its first context item.
1747 :param designUnit: The design unit.
1748 """
1750 def DepartContextClause(self, designUnit: DesignUnit) -> None:
1751 """
1752 Depart from the context clause of a design unit, after its last context item.
1754 :param designUnit: The design unit.
1755 """
1757 def VisitInstantiationList(self, configuration: ComponentConfiguration) -> None:
1758 """
1759 Visit the instantiation list of a component configuration, before its first label.
1761 :param configuration: The component configuration.
1762 """
1764 def DepartInstantiationList(self, configuration: ComponentConfiguration) -> None:
1765 """
1766 Depart from the instantiation list of a component configuration, after its last label.
1768 :param configuration: The component configuration.
1769 """
1771 def VisitBlockSpecification(self, configuration: BlockConfiguration) -> None:
1772 """
1773 Visit the block specification of a block configuration, before its block name.
1775 :param configuration: The block configuration.
1776 """
1778 def DepartBlockSpecification(self, configuration: BlockConfiguration) -> None:
1779 """
1780 Depart from the block specification of a block configuration, after its block name.
1782 :param configuration: The block configuration.
1783 """
1785 def VisitLibraryClause(self, clause: LibraryClause) -> None:
1786 """
1787 Visit a library clause, before its first library name.
1789 :param clause: The library clause.
1790 """
1792 def DepartLibraryClause(self, clause: LibraryClause) -> None:
1793 """
1794 Depart from a library clause, after its last library name.
1796 :param clause: The library clause.
1797 """
1799 def VisitUseClause(self, clause: UseClause) -> None:
1800 """
1801 Visit a use clause, before its first selected name.
1803 :param clause: The use clause.
1804 """
1806 def DepartUseClause(self, clause: UseClause) -> None:
1807 """
1808 Depart from a use clause, after its last selected name.
1810 :param clause: The use clause.
1811 """
1813 def VisitContextReference(self, reference: ContextReference) -> None:
1814 """
1815 Visit a context reference, before its first context name.
1817 :param reference: The context reference.
1818 """
1820 def DepartContextReference(self, reference: ContextReference) -> None:
1821 """
1822 Depart from a context reference, after its last context name.
1824 :param reference: The context reference.
1825 """
1827 def VisitContext(self, context: Context) -> None:
1828 """
1829 Visit a context declaration, before its first context item.
1831 :param context: The context declaration.
1832 """
1834 def DepartContext(self, context: Context) -> None:
1835 """
1836 Depart from a context declaration, after its last context item.
1838 :param context: The context declaration.
1839 """
1841 def VisitPackage(self, package: Package) -> None:
1842 """
1843 Visit a package declaration, before its generic clause.
1845 :param package: The package declaration.
1846 """
1848 def DepartPackage(self, package: Package) -> None:
1849 """
1850 Depart from a package declaration, after its last declared item.
1852 :param package: The package declaration.
1853 """
1855 def VisitPackageBody(self, body: PackageBody) -> None:
1856 """
1857 Visit a package body, before its first declared item.
1859 :param body: The package body.
1860 """
1862 def DepartPackageBody(self, body: PackageBody) -> None:
1863 """
1864 Depart from a package body, after its last declared item.
1866 :param body: The package body.
1867 """
1869 def VisitPackageInstantiation(self, instantiation: PackageInstantiation) -> None:
1870 """
1871 Visit a package instantiation, before its generic package.
1873 :param instantiation: The package instantiation.
1874 """
1876 def DepartPackageInstantiation(self, instantiation: PackageInstantiation) -> None:
1877 """
1878 Depart from a package instantiation, after its generic map aspect.
1880 :param instantiation: The package instantiation.
1881 """
1883 def VisitEntity(self, entity: Entity) -> None:
1884 """
1885 Visit an entity declaration, before its generic clause.
1887 :param entity: The entity declaration.
1888 """
1890 def DepartEntity(self, entity: Entity) -> None:
1891 """
1892 Depart from an entity declaration, after its last statement.
1894 :param entity: The entity declaration.
1895 """
1897 def VisitArchitecture(self, architecture: Architecture) -> None:
1898 """
1899 Visit an architecture body, before its entity name.
1901 :param architecture: The architecture body.
1902 """
1904 def DepartArchitecture(self, architecture: Architecture) -> None:
1905 """
1906 Depart from an architecture body, after its last statement.
1908 :param architecture: The architecture body.
1909 """
1911 def VisitConfiguration(self, configuration: Configuration) -> None:
1912 """
1913 Visit a configuration declaration, before its entity name.
1915 :param configuration: The configuration declaration.
1916 """
1918 def DepartConfiguration(self, configuration: Configuration) -> None:
1919 """
1920 Depart from a configuration declaration, after its block configuration.
1922 :param configuration: The configuration declaration.
1923 """
1925 def VisitBlockConfiguration(self, configuration: BlockConfiguration) -> None:
1926 """
1927 Visit a block configuration, before its block specification.
1929 :param configuration: The block configuration.
1930 """
1932 def DepartBlockConfiguration(self, configuration: BlockConfiguration) -> None:
1933 """
1934 Depart from a block configuration, after its last nested configuration.
1936 :param configuration: The block configuration.
1937 """
1939 def VisitComponentConfiguration(self, configuration: ComponentConfiguration) -> None:
1940 """
1941 Visit a component configuration, before its instantiation list.
1943 :param configuration: The component configuration.
1944 """
1946 def DepartComponentConfiguration(self, configuration: ComponentConfiguration) -> None:
1947 """
1948 Depart from a component configuration, after its binding indication.
1950 :param configuration: The component configuration.
1951 """
1953 def VisitBindingIndication(self, indication: BindingIndication) -> None:
1954 """
1955 Visit a binding indication, before its entity aspect.
1957 :param indication: The binding indication.
1958 """
1960 def DepartBindingIndication(self, indication: BindingIndication) -> None:
1961 """
1962 Depart from a binding indication, after its port map aspect.
1964 :param indication: The binding indication.
1965 """
1967 def VisitEntityAspectEntity(self, aspect: EntityAspectEntity) -> None:
1968 """
1969 Visit an entity aspect naming an entity, before its entity name.
1971 :param aspect: The entity aspect.
1972 """
1974 def DepartEntityAspectEntity(self, aspect: EntityAspectEntity) -> None:
1975 """
1976 Depart from an entity aspect naming an entity, after its architecture name.
1978 :param aspect: The entity aspect.
1979 """
1981 def VisitEntityAspectConfiguration(self, aspect: EntityAspectConfiguration) -> None:
1982 """
1983 Visit an entity aspect naming a configuration, before its configuration name.
1985 :param aspect: The entity aspect.
1986 """
1988 def DepartEntityAspectConfiguration(self, aspect: EntityAspectConfiguration) -> None:
1989 """
1990 Depart from an entity aspect naming a configuration, after its configuration name.
1992 :param aspect: The entity aspect.
1993 """
1995 def VisitEntityAspectOpen(self, aspect: EntityAspectOpen) -> None:
1996 """
1997 Visit an open entity aspect.
1999 :param aspect: The entity aspect.
2000 """
2002 def DepartEntityAspectOpen(self, aspect: EntityAspectOpen) -> None:
2003 """
2004 Depart from an open entity aspect.
2006 :param aspect: The entity aspect.
2007 """
2009 def VisitAllInstantiationList(self, instantiationList: AllInstantiationList) -> None:
2010 """
2011 Visit an ``all`` instantiation list.
2013 :param instantiationList: The instantiation list.
2014 """
2016 def DepartAllInstantiationList(self, instantiationList: AllInstantiationList) -> None:
2017 """
2018 Depart from an ``all`` instantiation list.
2020 :param instantiationList: The instantiation list.
2021 """
2023 def VisitOthersInstantiationList(self, instantiationList: OthersInstantiationList) -> None:
2024 """
2025 Visit an ``others`` instantiation list.
2027 :param instantiationList: The instantiation list.
2028 """
2030 def DepartOthersInstantiationList(self, instantiationList: OthersInstantiationList) -> None:
2031 """
2032 Depart from an ``others`` instantiation list.
2034 :param instantiationList: The instantiation list.
2035 """
2037 def VisitDocument(self, document: Document) -> None:
2038 """
2039 Visit a document, before its first design unit.
2041 :param document: The document.
2042 """
2044 def DepartDocument(self, document: Document) -> None:
2045 """
2046 Depart from a document, after its last design unit.
2048 :param document: The document.
2049 """
2051 def VisitSensitivityList(self, process: ProcessStatement) -> None:
2052 """
2053 Visit the sensitivity list of a process, before its first name.
2055 :param process: The process.
2056 """
2058 def DepartSensitivityList(self, process: ProcessStatement) -> None:
2059 """
2060 Depart from the sensitivity list of a process, after its last name.
2062 :param process: The process.
2063 """
2065 def VisitActualParameterPart(self, call: ProcedureCallMixin) -> None:
2066 """
2067 Visit the actual parameter part of a procedure call, before its first association.
2069 :param call: The procedure call.
2070 """
2072 def DepartActualParameterPart(self, call: ProcedureCallMixin) -> None:
2073 """
2074 Depart from the actual parameter part of a procedure call, after its last association.
2076 :param call: The procedure call.
2077 """
2079 def VisitWaveformElement(self, element: WaveformElement) -> None:
2080 """
2081 Visit a waveform element, before its value.
2083 :param element: The waveform element.
2084 """
2086 def DepartWaveformElement(self, element: WaveformElement) -> None:
2087 """
2088 Depart from a waveform element, after its delay.
2090 :param element: The waveform element.
2091 """
2093 def VisitConditionalWaveform(self, waveform: ConditionalWaveform) -> None:
2094 """
2095 Visit a conditional waveform, before its waveform.
2097 :param waveform: The conditional waveform.
2098 """
2100 def DepartConditionalWaveform(self, waveform: ConditionalWaveform) -> None:
2101 """
2102 Depart from a conditional waveform, after its condition.
2104 :param waveform: The conditional waveform.
2105 """
2107 def VisitSelectedWaveform(self, waveform: SelectedWaveform) -> None:
2108 """
2109 Visit a selected waveform, before its waveform.
2111 :param waveform: The selected waveform.
2112 """
2114 def DepartSelectedWaveform(self, waveform: SelectedWaveform) -> None:
2115 """
2116 Depart from a selected waveform, after its last choice.
2118 :param waveform: The selected waveform.
2119 """
2121 def VisitOthersSelectedWaveform(self, waveform: OthersSelectedWaveform) -> None:
2122 """
2123 Visit the ``others`` selected waveform, before its waveform.
2125 :param waveform: The selected waveform.
2126 """
2128 def DepartOthersSelectedWaveform(self, waveform: OthersSelectedWaveform) -> None:
2129 """
2130 Depart from the ``others`` selected waveform, after its waveform.
2132 :param waveform: The selected waveform.
2133 """
2135 def VisitIndexedChoice(self, choice: IndexedChoice) -> None:
2136 """
2137 Visit a choice given by a value, before its value.
2139 :param choice: The choice.
2140 """
2142 def DepartIndexedChoice(self, choice: IndexedChoice) -> None:
2143 """
2144 Depart from a choice given by a value, after its value.
2146 :param choice: The choice.
2147 """
2149 def VisitRangedChoice(self, choice: RangedChoice) -> None:
2150 """
2151 Visit a choice given by a range, before its range.
2153 :param choice: The choice.
2154 """
2156 def DepartRangedChoice(self, choice: RangedChoice) -> None:
2157 """
2158 Depart from a choice given by a range, after its range.
2160 :param choice: The choice.
2161 """
2163 def VisitProcessStatement(self, process: ProcessStatement) -> None:
2164 """
2165 Visit a process statement, before its sensitivity list.
2167 :param process: The process.
2168 """
2170 def DepartProcessStatement(self, process: ProcessStatement) -> None:
2171 """
2172 Depart from a process statement, after its last statement.
2174 :param process: The process.
2175 """
2177 def VisitConcurrentProcedureCall(self, call: ConcurrentProcedureCall) -> None:
2178 """
2179 Visit a concurrent procedure call, before its procedure.
2181 :param call: The procedure call.
2182 """
2184 def DepartConcurrentProcedureCall(self, call: ConcurrentProcedureCall) -> None:
2185 """
2186 Depart from a concurrent procedure call, after its parameters.
2188 :param call: The procedure call.
2189 """
2191 def VisitConcurrentSimpleSignalAssignment(self, assignment: ConcurrentSimpleSignalAssignment) -> None:
2192 """
2193 Visit a concurrent simple signal assignment, before its target.
2195 :param assignment: The signal assignment.
2196 """
2198 def DepartConcurrentSimpleSignalAssignment(self, assignment: ConcurrentSimpleSignalAssignment) -> None:
2199 """
2200 Depart from a concurrent simple signal assignment, after its waveform.
2202 :param assignment: The signal assignment.
2203 """
2205 def VisitConcurrentSelectedSignalAssignment(self, assignment: ConcurrentSelectedSignalAssignment) -> None:
2206 """
2207 Visit a concurrent selected signal assignment, before its selector.
2209 :param assignment: The signal assignment.
2210 """
2212 def DepartConcurrentSelectedSignalAssignment(self, assignment: ConcurrentSelectedSignalAssignment) -> None:
2213 """
2214 Depart from a concurrent selected signal assignment, after its last alternative.
2216 :param assignment: The signal assignment.
2217 """
2219 def VisitConcurrentConditionalSignalAssignment(self, assignment: ConcurrentConditionalSignalAssignment) -> None:
2220 """
2221 Visit a concurrent conditional signal assignment, before its target.
2223 :param assignment: The signal assignment.
2224 """
2226 def DepartConcurrentConditionalSignalAssignment(self, assignment: ConcurrentConditionalSignalAssignment) -> None:
2227 """
2228 Depart from a concurrent conditional signal assignment, after its last alternative.
2230 :param assignment: The signal assignment.
2231 """
2233 def VisitConcurrentAssertStatement(self, assertion: ConcurrentAssertStatement) -> None:
2234 """
2235 Visit a concurrent assertion, before its condition.
2237 :param assertion: The assertion.
2238 """
2240 def DepartConcurrentAssertStatement(self, assertion: ConcurrentAssertStatement) -> None:
2241 """
2242 Depart from a concurrent assertion, after its severity.
2244 :param assertion: The assertion.
2245 """
2247 def VisitComponentInstantiation(self, instantiation: ComponentInstantiation) -> None:
2248 """
2249 Visit a component instantiation, before its component name.
2251 :param instantiation: The component instantiation.
2252 """
2254 def DepartComponentInstantiation(self, instantiation: ComponentInstantiation) -> None:
2255 """
2256 Depart from a component instantiation, after its port map aspect.
2258 :param instantiation: The component instantiation.
2259 """
2261 def VisitEntityInstantiation(self, instantiation: EntityInstantiation) -> None:
2262 """
2263 Visit an entity instantiation, before its entity name.
2265 :param instantiation: The entity instantiation.
2266 """
2268 def DepartEntityInstantiation(self, instantiation: EntityInstantiation) -> None:
2269 """
2270 Depart from an entity instantiation, after its port map aspect.
2272 :param instantiation: The entity instantiation.
2273 """
2275 def VisitConfigurationInstantiation(self, instantiation: ConfigurationInstantiation) -> None:
2276 """
2277 Visit a configuration instantiation, before its configuration name.
2279 :param instantiation: The configuration instantiation.
2280 """
2282 def DepartConfigurationInstantiation(self, instantiation: ConfigurationInstantiation) -> None:
2283 """
2284 Depart from a configuration instantiation, after its port map aspect.
2286 :param instantiation: The configuration instantiation.
2287 """
2289 def VisitConcurrentBlockStatement(self, block: ConcurrentBlockStatement) -> None:
2290 """
2291 Visit a block statement, before its generic clause.
2293 :param block: The block statement.
2294 """
2296 def DepartConcurrentBlockStatement(self, block: ConcurrentBlockStatement) -> None:
2297 """
2298 Depart from a block statement, after its last statement.
2300 :param block: The block statement.
2301 """
2303 def VisitIfGenerateStatement(self, statement: IfGenerateStatement) -> None:
2304 """
2305 Visit an if-generate statement, before its if branch.
2307 :param statement: The if-generate statement.
2308 """
2310 def DepartIfGenerateStatement(self, statement: IfGenerateStatement) -> None:
2311 """
2312 Depart from an if-generate statement, after its last branch.
2314 :param statement: The if-generate statement.
2315 """
2317 def VisitIfGenerateBranch(self, branch: IfGenerateBranch) -> None:
2318 """
2319 Visit the if branch of an if-generate statement, before its condition.
2321 :param branch: The generate branch.
2322 """
2324 def DepartIfGenerateBranch(self, branch: IfGenerateBranch) -> None:
2325 """
2326 Depart from the if branch of an if-generate statement, after its last statement.
2328 :param branch: The generate branch.
2329 """
2331 def VisitElsifGenerateBranch(self, branch: ElsifGenerateBranch) -> None:
2332 """
2333 Visit an elsif branch of an if-generate statement, before its condition.
2335 :param branch: The generate branch.
2336 """
2338 def DepartElsifGenerateBranch(self, branch: ElsifGenerateBranch) -> None:
2339 """
2340 Depart from an elsif branch of an if-generate statement, after its last statement.
2342 :param branch: The generate branch.
2343 """
2345 def VisitElseGenerateBranch(self, branch: ElseGenerateBranch) -> None:
2346 """
2347 Visit the else branch of an if-generate statement, before its first declared item.
2349 :param branch: The generate branch.
2350 """
2352 def DepartElseGenerateBranch(self, branch: ElseGenerateBranch) -> None:
2353 """
2354 Depart from the else branch of an if-generate statement, after its last statement.
2356 :param branch: The generate branch.
2357 """
2359 def VisitCaseGenerateStatement(self, statement: CaseGenerateStatement) -> None:
2360 """
2361 Visit a case-generate statement, before its selector.
2363 :param statement: The case-generate statement.
2364 """
2366 def DepartCaseGenerateStatement(self, statement: CaseGenerateStatement) -> None:
2367 """
2368 Depart from a case-generate statement, after its last alternative.
2370 :param statement: The case-generate statement.
2371 """
2373 def VisitGenerateCase(self, case: GenerateCase) -> None:
2374 """
2375 Visit an alternative of a case-generate statement, before its first choice.
2377 :param case: The case-generate alternative.
2378 """
2380 def DepartGenerateCase(self, case: GenerateCase) -> None:
2381 """
2382 Depart from an alternative of a case-generate statement, after its last statement.
2384 :param case: The case-generate alternative.
2385 """
2387 def VisitOthersGenerateCase(self, case: OthersGenerateCase) -> None:
2388 """
2389 Visit the ``others`` alternative of a case-generate statement, before its first declared item.
2391 :param case: The case-generate alternative.
2392 """
2394 def DepartOthersGenerateCase(self, case: OthersGenerateCase) -> None:
2395 """
2396 Depart from the ``others`` alternative of a case-generate statement, after its last statement.
2398 :param case: The case-generate alternative.
2399 """
2401 def VisitIndexedGenerateChoice(self, choice: IndexedGenerateChoice) -> None:
2402 """
2403 Visit a case-generate choice given by a value, before its value.
2405 :param choice: The choice.
2406 """
2408 def DepartIndexedGenerateChoice(self, choice: IndexedGenerateChoice) -> None:
2409 """
2410 Depart from a case-generate choice given by a value, after its value.
2412 :param choice: The choice.
2413 """
2415 def VisitRangedGenerateChoice(self, choice: RangedGenerateChoice) -> None:
2416 """
2417 Visit a case-generate choice given by a range, before its range.
2419 :param choice: The choice.
2420 """
2422 def DepartRangedGenerateChoice(self, choice: RangedGenerateChoice) -> None:
2423 """
2424 Depart from a case-generate choice given by a range, after its range.
2426 :param choice: The choice.
2427 """
2429 def VisitForGenerateStatement(self, statement: ForGenerateStatement) -> None:
2430 """
2431 Visit a for-generate statement, before its range.
2433 :param statement: The for-generate statement.
2434 """
2436 def DepartForGenerateStatement(self, statement: ForGenerateStatement) -> None:
2437 """
2438 Depart from a for-generate statement, after its last statement.
2440 :param statement: The for-generate statement.
2441 """
2443 def VisitConditionalExpression(self, expression: ConditionalExpression) -> None:
2444 """
2445 Visit a conditional expression of a conditional variable assignment, before its value.
2447 :param expression: The conditional expression.
2448 """
2450 def DepartConditionalExpression(self, expression: ConditionalExpression) -> None:
2451 """
2452 Depart from a conditional expression of a conditional variable assignment, after its condition.
2454 :param expression: The conditional expression.
2455 """
2457 def VisitSelectedExpression(self, expression: SelectedExpression) -> None:
2458 """
2459 Visit a selected expression of a selected variable assignment, before its value.
2461 :param expression: The selected expression.
2462 """
2464 def DepartSelectedExpression(self, expression: SelectedExpression) -> None:
2465 """
2466 Depart from a selected expression of a selected variable assignment, after its last choice.
2468 :param expression: The selected expression.
2469 """
2471 def VisitOthersSelectedExpression(self, expression: OthersSelectedExpression) -> None:
2472 """
2473 Visit the ``others`` selected expression of a selected variable assignment, before its value.
2475 :param expression: The selected expression.
2476 """
2478 def DepartOthersSelectedExpression(self, expression: OthersSelectedExpression) -> None:
2479 """
2480 Depart from the ``others`` selected expression of a selected variable assignment, after its value.
2482 :param expression: The selected expression.
2483 """
2485 def VisitSequentialProcedureCall(self, call: SequentialProcedureCall) -> None:
2486 """
2487 Visit a sequential procedure call, before its procedure.
2489 :param call: The procedure call.
2490 """
2492 def DepartSequentialProcedureCall(self, call: SequentialProcedureCall) -> None:
2493 """
2494 Depart from a sequential procedure call, after its parameters.
2496 :param call: The procedure call.
2497 """
2499 def VisitSequentialSimpleSignalAssignment(self, assignment: SequentialSimpleSignalAssignment) -> None:
2500 """
2501 Visit a sequential simple signal assignment, before its target.
2503 :param assignment: The signal assignment.
2504 """
2506 def DepartSequentialSimpleSignalAssignment(self, assignment: SequentialSimpleSignalAssignment) -> None:
2507 """
2508 Depart from a sequential simple signal assignment, after its waveform.
2510 :param assignment: The signal assignment.
2511 """
2513 def VisitSequentialVariableAssignment(self, assignment: SequentialVariableAssignment) -> None:
2514 """
2515 Visit a variable assignment, before its target.
2517 :param assignment: The variable assignment.
2518 """
2520 def DepartSequentialVariableAssignment(self, assignment: SequentialVariableAssignment) -> None:
2521 """
2522 Depart from a variable assignment, after its expression.
2524 :param assignment: The variable assignment.
2525 """
2527 def VisitSequentialConditionalVariableAssignment(self, assignment: SequentialConditionalVariableAssignment) -> None:
2528 """
2529 Visit a conditional variable assignment, before its target.
2531 :param assignment: The variable assignment.
2532 """
2534 def DepartSequentialConditionalVariableAssignment(self, assignment: SequentialConditionalVariableAssignment) -> None:
2535 """
2536 Depart from a conditional variable assignment, after its last alternative.
2538 :param assignment: The variable assignment.
2539 """
2541 def VisitSequentialConditionalSignalAssignment(self, assignment: SequentialConditionalSignalAssignment) -> None:
2542 """
2543 Visit a sequential conditional signal assignment, before its target.
2545 :param assignment: The signal assignment.
2546 """
2548 def DepartSequentialConditionalSignalAssignment(self, assignment: SequentialConditionalSignalAssignment) -> None:
2549 """
2550 Depart from a sequential conditional signal assignment, after its last alternative.
2552 :param assignment: The signal assignment.
2553 """
2555 def VisitSequentialSelectedVariableAssignment(self, assignment: SequentialSelectedVariableAssignment) -> None:
2556 """
2557 Visit a selected variable assignment, before its selector.
2559 :param assignment: The variable assignment.
2560 """
2562 def DepartSequentialSelectedVariableAssignment(self, assignment: SequentialSelectedVariableAssignment) -> None:
2563 """
2564 Depart from a selected variable assignment, after its last alternative.
2566 :param assignment: The variable assignment.
2567 """
2569 def VisitSequentialSelectedSignalAssignment(self, assignment: SequentialSelectedSignalAssignment) -> None:
2570 """
2571 Visit a sequential selected signal assignment, before its selector.
2573 :param assignment: The signal assignment.
2574 """
2576 def DepartSequentialSelectedSignalAssignment(self, assignment: SequentialSelectedSignalAssignment) -> None:
2577 """
2578 Depart from a sequential selected signal assignment, after its last alternative.
2580 :param assignment: The signal assignment.
2581 """
2583 def VisitSignalForceAssignment(self, assignment: SignalForceAssignment) -> None:
2584 """
2585 Visit a force assignment, before its target.
2587 :param assignment: The force assignment.
2588 """
2590 def DepartSignalForceAssignment(self, assignment: SignalForceAssignment) -> None:
2591 """
2592 Depart from a force assignment, after its expression.
2594 :param assignment: The force assignment.
2595 """
2597 def VisitSignalReleaseAssignment(self, assignment: SignalReleaseAssignment) -> None:
2598 """
2599 Visit a release assignment, before its target.
2601 :param assignment: The release assignment.
2602 """
2604 def DepartSignalReleaseAssignment(self, assignment: SignalReleaseAssignment) -> None:
2605 """
2606 Depart from a release assignment, after its target.
2608 :param assignment: The release assignment.
2609 """
2611 def VisitSequentialReportStatement(self, statement: SequentialReportStatement) -> None:
2612 """
2613 Visit a report statement, before its message.
2615 :param statement: The report statement.
2616 """
2618 def DepartSequentialReportStatement(self, statement: SequentialReportStatement) -> None:
2619 """
2620 Depart from a report statement, after its severity.
2622 :param statement: The report statement.
2623 """
2625 def VisitSequentialAssertStatement(self, assertion: SequentialAssertStatement) -> None:
2626 """
2627 Visit a sequential assertion, before its condition.
2629 :param assertion: The assertion.
2630 """
2632 def DepartSequentialAssertStatement(self, assertion: SequentialAssertStatement) -> None:
2633 """
2634 Depart from a sequential assertion, after its severity.
2636 :param assertion: The assertion.
2637 """
2639 def VisitNullStatement(self, statement: NullStatement) -> None:
2640 """
2641 Visit a null statement.
2643 :param statement: The null statement.
2644 """
2646 def DepartNullStatement(self, statement: NullStatement) -> None:
2647 """
2648 Depart from a null statement.
2650 :param statement: The null statement.
2651 """
2653 def VisitReturnStatement(self, statement: ReturnStatement) -> None:
2654 """
2655 Visit a return statement, before its value.
2657 :param statement: The return statement.
2658 """
2660 def DepartReturnStatement(self, statement: ReturnStatement) -> None:
2661 """
2662 Depart from a return statement, after its value.
2664 :param statement: The return statement.
2665 """
2667 def VisitWaitStatement(self, statement: WaitStatement) -> None:
2668 """
2669 Visit a wait statement, before its sensitivity clause.
2671 :param statement: The wait statement.
2672 """
2674 def DepartWaitStatement(self, statement: WaitStatement) -> None:
2675 """
2676 Depart from a wait statement, after its timeout clause.
2678 :param statement: The wait statement.
2679 """
2681 def VisitIfStatement(self, statement: IfStatement) -> None:
2682 """
2683 Visit an if statement, before its if branch.
2685 :param statement: The if statement.
2686 """
2688 def DepartIfStatement(self, statement: IfStatement) -> None:
2689 """
2690 Depart from an if statement, after its last branch.
2692 :param statement: The if statement.
2693 """
2695 def VisitIfBranch(self, branch: IfBranch) -> None:
2696 """
2697 Visit the if branch of an if statement, before its condition.
2699 :param branch: The branch.
2700 """
2702 def DepartIfBranch(self, branch: IfBranch) -> None:
2703 """
2704 Depart from the if branch of an if statement, after its last statement.
2706 :param branch: The branch.
2707 """
2709 def VisitElsifBranch(self, branch: ElsifBranch) -> None:
2710 """
2711 Visit an elsif branch of an if statement, before its condition.
2713 :param branch: The branch.
2714 """
2716 def DepartElsifBranch(self, branch: ElsifBranch) -> None:
2717 """
2718 Depart from an elsif branch of an if statement, after its last statement.
2720 :param branch: The branch.
2721 """
2723 def VisitElseBranch(self, branch: ElseBranch) -> None:
2724 """
2725 Visit the else branch of an if statement, before its first statement.
2727 :param branch: The branch.
2728 """
2730 def DepartElseBranch(self, branch: ElseBranch) -> None:
2731 """
2732 Depart from the else branch of an if statement, after its last statement.
2734 :param branch: The branch.
2735 """
2737 def VisitCaseStatement(self, statement: CaseStatement) -> None:
2738 """
2739 Visit a case statement, before its selector.
2741 :param statement: The case statement.
2742 """
2744 def DepartCaseStatement(self, statement: CaseStatement) -> None:
2745 """
2746 Depart from a case statement, after its last alternative.
2748 :param statement: The case statement.
2749 """
2751 def VisitCase(self, case: Case) -> None:
2752 """
2753 Visit an alternative of a case statement, before its first choice.
2755 :param case: The case alternative.
2756 """
2758 def DepartCase(self, case: Case) -> None:
2759 """
2760 Depart from an alternative of a case statement, after its last statement.
2762 :param case: The case alternative.
2763 """
2765 def VisitOthersCase(self, case: OthersCase) -> None:
2766 """
2767 Visit the ``others`` alternative of a case statement, before its first statement.
2769 :param case: The case alternative.
2770 """
2772 def DepartOthersCase(self, case: OthersCase) -> None:
2773 """
2774 Depart from the ``others`` alternative of a case statement, after its last statement.
2776 :param case: The case alternative.
2777 """
2779 def VisitEndlessLoopStatement(self, statement: EndlessLoopStatement) -> None:
2780 """
2781 Visit a loop statement without iteration scheme, before its first statement.
2783 :param statement: The loop statement.
2784 """
2786 def DepartEndlessLoopStatement(self, statement: EndlessLoopStatement) -> None:
2787 """
2788 Depart from a loop statement without iteration scheme, after its last statement.
2790 :param statement: The loop statement.
2791 """
2793 def VisitForLoopStatement(self, statement: ForLoopStatement) -> None:
2794 """
2795 Visit a for-loop statement, before its range.
2797 :param statement: The loop statement.
2798 """
2800 def DepartForLoopStatement(self, statement: ForLoopStatement) -> None:
2801 """
2802 Depart from a for-loop statement, after its last statement.
2804 :param statement: The loop statement.
2805 """
2807 def VisitWhileLoopStatement(self, statement: WhileLoopStatement) -> None:
2808 """
2809 Visit a while-loop statement, before its condition.
2811 :param statement: The loop statement.
2812 """
2814 def DepartWhileLoopStatement(self, statement: WhileLoopStatement) -> None:
2815 """
2816 Depart from a while-loop statement, after its last statement.
2818 :param statement: The loop statement.
2819 """
2821 def VisitNextStatement(self, statement: NextStatement) -> None:
2822 """
2823 Visit a next statement, before its condition.
2825 :param statement: The next statement.
2826 """
2828 def DepartNextStatement(self, statement: NextStatement) -> None:
2829 """
2830 Depart from a next statement, after its condition.
2832 :param statement: The next statement.
2833 """
2835 def VisitExitStatement(self, statement: ExitStatement) -> None:
2836 """
2837 Visit an exit statement, before its condition.
2839 :param statement: The exit statement.
2840 """
2842 def DepartExitStatement(self, statement: ExitStatement) -> None:
2843 """
2844 Depart from an exit statement, after its condition.
2846 :param statement: The exit statement.
2847 """