Crate moore_svlog_hir [−] [src]
The high-level intermediate representation for SystemVerilog. After name resolution, the AST is lowered into this representation, eliminating a lot of the syntactic sugar represented in the AST, and resolving default and implicit values.
A hierarchy body represents the contents of a module, interface, or package. Generate regions and nested modules introduce additional bodies. The point of hierarchy bodies is to take a level of the design hierarchy and group all declarations by type, rather than having them in a single array in declaration order.
A name is a lightweight 32 bit tag that refers to a string in a name table. During parsing, encountered strings are inserted into the name table and only the corresponding tag is kept in the token. Names which have their most significant bit set represent case sensitive names, such as for extended identifiers.
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.
An search index of all nodes in a HIR tree.
A port slice refers to a port declaration within the module. It consists of the name of the declaration and a list of optional member and index accesses that select individual parts of the declaration.
The root of the HIR tree. This represents one elaborated design.
A span of locations within a source file, expressed as a half-open interval
Check if a type is empty, i.e. it is an implicit type with no sign or packed dimensions specified.