▼Abstract Syntax Tree | Functions and data structures which build and represent the AST |
▼AST Construction Functions | This page describes all of the functions used to construct the AST representation of the input code, along with the corresponding data structures |
Meta Data | Objects used to represent meta data about a particular construct |
Numbers | Objects used to represent individual numbers |
Attributes | Describes attributes passed to modules, functions and expression assignments |
Concatenations | Concatenations of expressions, l-values, variables, nets and module paths |
L-Values | Represents the class of values which represent the left hand term of an assignment |
Function Calls | Represents a call to a system or user function. Note this is destinct from a function declaration |
▼Expressions | Super-group for data-structures representing the kinds of expressions that Verilog has |
Expression Primaries | Expresses primary terms of expressions. These can be sub-expressions, numbers, identifiers etc |
Path Declarations | Describes construction of path declarations and delay specifiers |
Timing Control Statements | |
User Defined Primitives | User defined primitive types |
Primitives | Digital design primitive representation. Transistors, transmission gates, etc |
Delays | Signal propagation delays |
Drive Strengths | Describes signal drive strengths |
Nets and Variables | Net and variable types, declarations and assignments |
Type Declaration | Custom type declarations |
▼Module Declaration | Details declaration of module ports and parameters |
Module Port Declaration | |
Module Parameters | |
▼Module Items | Contains things like continuous assignments, procedural blocks and module instantiations |
Fork Join and Sequential Blocks | Fork join and sequential stamement blocks |
▼Procedural Blocks and Assignments | Describes items found inside procedural blocks |
Task Enable Statements | Describes task enable statements |
Loop Statements | Describes for and while loop representation |
Case Statements | |
If Else Statements | |
Generate Statements | Represents generate loops |
Module Instantiation | Describes the instantiation of a module, as opposed to it's declaration |
▼Declarations | Blocks of definitions |
Function Declaration | Describes a declaration of a user function |
Task Declaration | User task (procedure) definition |
Identifiers | Functions and data structures representing identifiers for all Verilog Constructs |
Configuration Source | Describes configuration constructs |
Library Source | Library, config and include statements / constructs |
Compiler Directives | TODO |
Top Level | Represents nodes at the very top of the source tree |
AST Nodes | Notes and todo list for the AST nodes |
▼AST Utility Functions | Contains utility data structures and functions which are used to help represent portions of the AST, but which are not specific to a particular node |
Linked List | |
Stack | |
Hash Table | A very simple hash table implemented (for now) over a linked list |
Memory Management | Helps to manage memory allocated during AST construction |
Module Resoloution & Searching | Functions for resolving module names |
Verilog Parser API | Describes the top level, programmer facing parser API |
Preprocessor | This module contains all code and information on the preprocessor and how it works / is implemented |