[−][src]Module moore_vhdl_syntax::ast
This module implements an abstract syntax tree for VHDL. It is emitted by the parser.
Re-exports
pub use self::ExprData::*; |
pub use self::TypeData::*; |
pub use self::StmtData::*; |
Structs
| AliasDecl | An alias declaration. |
| ArchBody | An architecture body. |
| AttrDecl | |
| BindingInd | |
| BlockCompCfg | |
| CfgDecl | A configuration declaration. |
| CfgSpec | |
| CompDecl | A component declaration. |
| CompoundName | A compound name consisting of a primary name (identifier, character literal, or string literal), and zero or more suffices (select, attribute, call). The names in IEEE 1076-2008 section 8.1 map to this as follows: |
| CondWave | A conditional wave. |
| CtxDecl | A context declaration. |
| DesignUnit | A design unit. Multiple design units make up a design file. Each unit consists of an optional context clause followed by a primary or secondary unit. |
| DisconSpec | |
| EntityDecl | An entity declaration. |
| Expr | An expression. |
| GenBody | |
| GroupDecl | |
| Ident | An identifier. Has a node ID such that it may be referenced later on. |
| IntfObjDecl | An interface object declaration. |
| IntfSubprogDecl | |
| NodeId | A positive, small ID assigned to each node in the AST. Used as a lightweight way to refer to individual nodes, e.g. during symbol table construction and name resolution. |
| ObjDecl | |
| ParenElem | A parenthesized expression element. A parenthesized expression contains
elements of which each may either be a simple |
| PkgBody | A package body. |
| PkgDecl | A package declaration. |
| PkgInst | A package instantiation declaration. |
| PrimaryName | |
| SelectWave | A selected wave. The second element of the tuple represents the choices for which this wave would be selected. |
| Signature | |
| Stmt | |
| StmtBody | The body of an if, loop, or case statement. |
| Subprog | |
| SubprogSpec | |
| SubtypeDecl | |
| SubtypeInd | |
| TypeDecl | A type declaration. If the |
| Wave |
Enums
| AssignKind | |
| AssignMode | |
| AssignTarget | |
| AttrData | |
| AttrTarget | |
| BinaryOp | |
| BlockCompSpec | |
| CtxItem | A context item, multiple of which make up a context clause. |
| DeclItem | A declarative item. |
| DelayMech | |
| DesignUnitData | |
| Dir | |
| DisconTarget | |
| EntityAspect | |
| EntityClass | |
| ExprData | The data associated with a specific expression. |
| ForceMode | |
| GroupData | |
| InstTarget | |
| IntfDecl | An interface declaration. |
| IntfMode | |
| IntfObjKind | |
| LogicalOp | |
| LoopScheme | |
| NamePart | |
| NexitMode | |
| ObjDetail | Additional mutually exclusive details that may be provided with an object declaration. |
| ObjKind | |
| PortgenKind | |
| PrimaryNameKind | |
| RelationalOp | |
| ResolInd | |
| SelectAssignMode | |
| Sensitivity | |
| ShiftOp | |
| Sign | |
| StmtData | |
| SubprogData | |
| SubprogDefault | |
| SubprogKind | |
| SubprogPurity | |
| TypeData | |
| UnaryOp |
Constants
| DUMMY_NODE_ID | During parsing and syntax tree construction, we assign each node this ID. Only later, during the renumbering pass do we assign actual IDs to each node. |
Type Definitions
| Choices | |
| ParenElems | A vector of parenthesized expression elements, including the span of the expression that this would cover. |