List of all parse tree nodes
Error node
Vector constant
- Arg<CVector*>(0): Pointer to vector
Real constant
- Arg<char*>(0): Pointer to string
Comment
- Arg<const char*>(0): Pointer to string
Vrq comment
- Arg<const char*>(0): Pointer to string
Program pragma
- Arg<const char*>(0): Pointer to string
Expression list
- Arg<CNode*>(0): expression1
- Arg<CNode*>(1): expression2
Expression width change
- Arg<CNode*>(0): width expression
- Arg<CNode*>(1): expression
Does nothing
Subtract
- Arg<CNode*>(0): expression 1
- Arg<CNode*>(1): expression 2
Multiple
- Arg<CNode*>(0): expression 1
- Arg<CNode*>(1): expression 2
Divide
- Arg<CNode*>(0): expression 1
- Arg<CNode*>(1): expression 2
Exponent
- Arg<CNode*>(0): expression 1
- Arg<CNode*>(1): expression 2
Addition
- Arg<CNode*>(0): expression 1
- Arg<CNode*>(1): expression 2
Logical left shift
- Arg<CNode*>(0): expression 1
- Arg<CNode*>(1): expression 2
Logical right shift
- Arg<CNode*>(0): expression 1
- Arg<CNode*>(1): expression 2
Arithmetic left shift
- Arg<CNode*>(0): expression 1
- Arg<CNode*>(1): expression 2
Arithmetic right shift
- Arg<CNode*>(0): expression 1
- Arg<CNode*>(1): expression 2
Modulus
- Arg<CNode*>(0): expression 1
- Arg<CNode*>(1): expression 2
Bitwise or
- Arg<CNode*>(0): expression 1
- Arg<CNode*>(1): expression 2
Bitwise and
- Arg<CNode*>(0): expression 1
- Arg<CNode*>(1): expression 2
Triple and
- Arg<CNode*>(0): expression 1
- Arg<CNode*>(1): expression 2
Bitwise xor
- Arg<CNode*>(0): expression 1
- Arg<CNode*>(1): expression 2
Bitwise xnor
- Arg<CNode*>(0): expression 1
- Arg<CNode*>(1): expression 2
Instance Reference
- Arg<CInstance*>(0): Pointer to a instance
Gate Instance
- Arg<CGate*>(0): Pointer to a gate
Call to a task
- Arg<CSymbol*>(0): Pointer to symbol for task to call
- Arg<CNode*>(1): Argument expression list
Call to enable a systask
- Arg<CSymbol*>(0): Pointer to symbol for systask to call
- Arg<CNode*>(1): Argument expression list
Call to a timing task
- Arg<CSymbol*>(0): Pointer to symbol of timing task
- Arg<CNode*>(1): Argument expression list
Call to a function
- Arg<CSymbol*>(0): Pointer to symbol of the function
- Arg<CNode*>(1): Argument expression list
- Arg<CScope*>(2): Scope containing expression
Dimensioned reference (array/bit select)
- Arg<CNode*>(0): Reference to variable
- Arg<CNode*>(1): List of index expressions
reference to net
- Arg<CNet*>(0): Pointer to net
reference to register
- Arg<CReg*>(0): Pointer to reg
reference to real
- Arg<CReal*>(0): Pointer to real
reference to parameter
- Arg<CParam*>(0): Pointer to parameter
reference to port
- Arg<CPortDir*>(0): Pointer to port
reference to a forward declared variable
- Arg<CFref*>(0): Pointer to forward declared variable
reference to an event
- Arg<CEvent*>(0): Pointer to an event
reference to a genvar
- Arg<CGenvar*>(0): Pointer to a genvar
net declaration
- Arg<CNet*>(0): Pointer to a net
- Arg<CNode*>(1): continous assignment (optional)
register declaration
- Arg<CReg*>(0): Pointer to a reg
- Arg<CNode*>(1): procedural assignment (optional)
real declaration
- Arg<CReal*>(0): Pointer to a real
- Arg<CNode*>(1): procedural assignment (optional)
parameter declaration
- Arg<CParam*>(0): Pointer to a parameter
specify parameter declaration
- Arg<CParam*>(0): Pointer to a specify parameter
port declaration
- Arg<CPortDir*>(0): Pointer to a port
event declaration
- Arg<CEvent*>(0): Pointer to an event
genvar declaration
- Arg<CGenvar*>(0): Pointer to a genvar
list of nodes
- Arg<CNode*>(0): node 1
- Arg<CNode*>(1): node 2
vector decl range specification
- Arg<CNode*>(0): msb expression
- Arg<CNode*>(1): lsb expression
vector subrange
- Arg<CNode*>(0): msb expression
- Arg<CNode*>(1): lsb expression
vector subrange with ascending index select
- Arg<CNode*>(0): index expression
- Arg<CNode*>(1): width expression
vector subrange with descending index select
- Arg<CNode*>(0): index expression
- Arg<CNode*>(1): width expression
convert real to integer
- Arg<CNode*>(0): expression
convert integer to real
- Arg<CNode*>(0): expression
replication operator
- Arg<CNode*>(0): replication expression
- Arg<CNode*>(1): expression to replicate
concatenation operator
- Arg<CNode*>(0): expression 1
- Arg<CNode*>(1): expression 2
unary concat
- Arg<CNode*>(0): expression
bitwise complement
- Arg<CNode*>(0): expression
negation
- Arg<CNode*>(0): expression
unary plus
- Arg<CNode*>(0): expression
logical complement
- Arg<CNode*>(0): expression
greater than
- Arg<CNode*>(0): expression 1
- Arg<CNode*>(1): expression 2
greater than or equal
- Arg<CNode*>(0): expression 1
- Arg<CNode*>(1): expression 2
less than
- Arg<CNode*>(0): expression 1
- Arg<CNode*>(1): expression 2
less than or equal
- Arg<CNode*>(0): expression 1
- Arg<CNode*>(1): expression 2
logical and
- Arg<CNode*>(0): expression 1
- Arg<CNode*>(1): expression 2
logical or
- Arg<CNode*>(0): expression 1
- Arg<CNode*>(1): expression 2
case equal
- Arg<CNode*>(0): expression 1
- Arg<CNode*>(1): expression 2
case not equal
- Arg<CNode*>(0): expression 1
- Arg<CNode*>(1): expression 2
equal
- Arg<CNode*>(0): expression 1
- Arg<CNode*>(1): expression 2
not equal
- Arg<CNode*>(0): expression 1
- Arg<CNode*>(1): expression 2
reduction and
- Arg<CNode*>(0): expression
reduction nand
- Arg<CNode*>(0): expression
reduction or
- Arg<CNode*>(0): expression
reduction nor
- Arg<CNode*>(0): expression
reduction xor
- Arg<CNode*>(0): expression
reduction xnor
- Arg<CNode*>(0): expression
condition expression operator
- Arg<CNode*>(0): condition expression
- Arg<CNode*>(1): true expression
- Arg<CNode*>(2): false expression
initial block
always block
event statement
- Arg<CNode*>(0): event expression (NULL for @*)
- Arg<CNode*>(1): statement
statement block
- Arg<CBlock*>(0): pointer to block
- Arg<CNode*>(1): list of statements
specify block
- Arg<CSpecify*>(0): pointer to specify structure
- Arg<CNode*>(1): list of statements
procedural assignment
- Arg<CNode*>(0): event expression
- Arg<CNode*>(1): lval
- Arg<CNode*>(2): rval
force statement
- Arg<CNode*>(0): lval
- Arg<CNode*>(1): expression
release statement
nonblocking assignment
- Arg<CNode*>(0): event expression
- Arg<CNode*>(1): lval
- Arg<CNode*>(2): rval
positive event qualifier
- Arg<CNode*>(0): expression
negative event qualifier
- Arg<CNode*>(0): expression
edge qualifier
- Arg<CNode*>(0):
- Arg<Edge_t>(1): edge specification
event or
- Arg<CNode*>(0): expression 1
- Arg<CNode*>(1): expression 2
delay statement
- Arg<CNode*>(0): delay expression
- Arg<CNode*>(1): statements
min/typ/max expression
- Arg<CNode*>(0): minimum expression
- Arg<CNode*>(1): typical expression
- Arg<CNode*>(2): maximum expression
if statement
- Arg<CNode*>(0): condition
- Arg<CNode*>(1): true statements
- Arg<CNode*>(2): false statements
forever statement
- Arg<CNode*>(0): statements
repeat statement
- Arg<CNode*>(0): condition
- Arg<CNode*>(1): statements
while statement
- Arg<CNode*>(0): condition
- Arg<CNode*>(1): statements
wait statement
- Arg<CNode*>(0): condition
- Arg<CNode*>(1): statements
for statement
- Arg<CNode*>(0): initial statement
- Arg<CNode*>(1): condition
- Arg<CNode*>(2): assignment statement
- Arg<CNode*>(3): statements
case statement
- Arg<CNode*>(0): condition
- Arg<CNode*>(1): list of case items
casex statement
- Arg<CNode*>(0): condition
- Arg<CNode*>(1): list of case items
casez statement
- Arg<CNode*>(0): condition
- Arg<CNode*>(1): list of case items
case item
- Arg<CNode*>(0): list of expressions (NULL for default)
- Arg<CNode*>(1): statement
continious assignment
- Arg<StrengthPair_t*>(0): assignment strength
- Arg<CNode*>(1): delay expression
- Arg<CNode*>(2): lval
- Arg<CNode*>(3): rval expression
port connection
- Arg<CSymbol*>(0): port name
- Arg<CNode*>(1): port expression
function definition
module definition
repeat control
- Arg<CNode*>(0): expression
- Arg<CNode*>(1): event control
delay control
- Arg<CNode*>(0): expression
event control
- Arg<CNode*>(0): event expression (NULL for @*)
external reference
- Arg<CSymbol*>(0): pointer to symbol
port definition
- Arg<CPort*>(0): pointer to port
defparam statement
- Arg<CNode*>(0): external reference
- Arg<CNode*>(1): expression
path statement
- Arg<int>(0):
- Arg<CNode*>(1): edge int[-1,0,1]
- Arg<int>(2): Input list
- Arg<int>(3): Left polarity int[-1,0,1]
- Arg<CNode*>(4): Operation type int [0 = *>, 1 = =>]
- Arg<int>(5): Output list
- Arg<CNode*>(6): Right polarity int[-1,0,1]
path assignment statement
- Arg<CNode*>(0): condition
- Arg<CNode*>(1): path
- Arg<CNode*>(2): expression
ifnone path assignment statement
- Arg<CNode*>(0): path
- Arg<CNode*>(1): expression
event trigger
- Arg<CNode*>(0): event reference
procedural assignment
- Arg<CNode*>(0): lval
- Arg<CNode*>(1): expression
deassign statement
disable statement
- Arg<CSymbol*>(0): pointer to symbol
attribute specification
- Arg<CAttr*>(0): pointer to attribute
structural if statement
- Arg<CNode*>(0): condition
- Arg<CNode*>(1): true statement
- Arg<CNode*>(2): false statement
structural for statement
- Arg<CNode*>(0): initial statement
- Arg<CNode*>(1): condition
- Arg<CNode*>(2): assignment statement
- Arg<CNode*>(3): statement
structural case statement
- Arg<CNode*>(0): condition
- Arg<CNode*>(1): list of case items
udp table
- Arg<CNode*>(0): list of table entries
udp table entry
- Arg<CNode*>(0): list of table symbols
udp table symbol
- Arg<char*>(0): string of udp characters
sentinal at end of port list
expression represented by a macro
- Arg<const char*>(0): alternate expression, may be NULL
- Arg<CNode*>(1):