vrq
Classes | Typedefs | Enumerations | Functions

/net/fileserver/nas/home/mdh/vrq/src/cnode.h File Reference

Go to the source code of this file.

Classes

struct  StrengthPair_t
 Pair of strengths. More...
class  CNode_sp< T >
 Smart pointer for CNode class Creates safe references to CNode arguments Supports assignment, dereference, and equality operations. More...
struct  CNode_pr
 Helper class for building tail recursive binary CNode trees Used by parser. More...
struct  CNode_triplet
 Helper class for building tail recursive binary CNode trees Used by parser. More...
class  CNode
 Primary data structure representing parse tree nodes. More...

Typedefs

typedef CBlock CScope

Enumerations

enum  Edge_t {
  eEDGE01 = 0x1, eEDGE10 = 0x2, eEDGE0x = 0x4, eEDGEx1 = 0x8,
  eEDGE1x = 0x10, eEDGEx0 = 0x20
}
 

Edge values.

More...
enum  DelayMode_t { eMIN_DELAY, eTYP_DELAY, eMAX_DELAY }
 

Timing mode values.

More...
enum  Strength_t {
  eUNDEFINED = 0, eSUPPLY, eSTRONG, ePULL,
  eLARGE, eWEAK, eMEDIUM, eSMALL,
  eHIGHZ
}
 

Strength values.

More...

Functions

char * d2s (double d, CObstack *heap)
 Convert double to char string allocating storage on given heap.
int Equivalent (CNode *a, CNode *b)
void Add (double *r, double *a, double *b)
void Sub (double *r, double *a, double *b)
void Mul (double *r, double *a, double *b)
void Div (double *r, double *a, double *b)
void Neg (double *r, double *a)
void Plus (double *r, double *a)
void Pow (double *r, double *a, double *b)
 ILLEGAL_OP2 (Rsh)
 ILLEGAL_OP2 (Lsh)
 ILLEGAL_OP2 (Rep)
 ILLEGAL_OP2 (Mod)
 ILLEGAL_OP2 (And)
 ILLEGAL_OP2 (Xor)
 ILLEGAL_OP2 (Xnor)
 ILLEGAL_OP2 (Or)
 ILLEGAL_OP2 (Lor)
 ILLEGAL_OP2 (Land)
 ILLEGAL_OP1 (Com)
 ILLEGAL_OP1 (Rand)
 ILLEGAL_OP1 (Rnand)
 ILLEGAL_OP1 (Ror)
 ILLEGAL_OP1 (Rnor)
 ILLEGAL_OP1 (Rxor)
 ILLEGAL_OP1 (Rxnor)
CNodecVECTOR (CVector &vec)
 Short cut for creating VCONSTANT node with a given vector value.
CNodecSTRING (const char *s)
 Short cut for creating VCONSTANT node with a given string value.
CNodecINT32 (INT32 i)
 Short cut for creating VCONSTANT node with a given integer value.
CNodecREAL (double number)
 Short cut for creating RCONSTANT node with a given double value.
CNodecELINK (CNode *n1, CNode *n2)
 Link together two nodes with an ELIST operator.
CNodecABS (CNode *a)
 Short cut for creating an subtree that calculates the absolute value of an expression.
CNodecABSDIFF (CNode *a, CNode *b)
 Short cut for creating an subtree that calculates the absolute difference between two expressions.
CNodecLINK (CNode *n1, CNode *n2)
 Short cut for linking together to nodes with a LIST operator.
CNodecMAX (CNode *n1, CNode *n2)
 Short cut for creating a expression tree that calculates the maximum of two expressions.
template<class T >
void ArgList2Vector (CNode *n, NodeOp_t op, int argNumber, vector< T > &v)
 Walks a list of nodes and collects the specified augments of a given node type.
void EList2VectorExclude (CNode *n, const set< NodeOp_t > &excludeOps, vector< CNode * > &v)
 Walks an expression elist of nodes and collects the subtrees that don't match the given node types.
void List2VectorExclude (CNode *n, const set< NodeOp_t > &excludeOps, vector< CNode * > &v)
 Walks an expression list of nodes and collects the subtrees that don't match the given node types.
CNodeVector2EList (const vector< CNode * > &v)
 Converts a vector array of CNode* into a linked ELIST of the elements.
CNodeList2EList (list< CNode * > &v)
 Converts a list of CNode* into a linked ELIST of the elements.
int ListCount (CNode *n, NodeOp_t op)
 Walks a list/elist of nodes and counts the number of node with the specified operation.
int ListCount (CNode *n)
 Walks a list/elist of nodes and counts the number of non-list nodes.
double s2d (char *s)
 Convert char string to double.
CNodeRebalanceRight (CNode *n)
void MeasureDepth (CNode *n, int *count, int *depth)
CNode_pr cLINK (CNode_pr pr1, CNode *n2)
string HierarchicalReference2String (CNode *ref)
CNodecMAX_N (CNode *first,...)
CNodecADD_N (CNode *first,...)
CNodecMUL_N (CNode *first,...)
CNodecABSDIFFPLUS1_N (CNode *first,...)
int cMAX (int a1, int a2)
int cMAX (int a1, int a2, int a3)
int cADD (int a1, int a2)
int cMUL (int a1, int a2)
int cABSDIFFPLUS1 (int a1, int a2)

Typedef Documentation

typedef CBlock CScope

Enumeration Type Documentation

Timing mode values.

Enumerator:
eMIN_DELAY 
eTYP_DELAY 
eMAX_DELAY 
enum Edge_t

Edge values.

Enumerator:
eEDGE01 
eEDGE10 
eEDGE0x 
eEDGEx1 
eEDGE1x 
eEDGEx0 
enum Strength_t

Strength values.

Enumerator:
eUNDEFINED 
eSUPPLY 
eSTRONG 
ePULL 
eLARGE 
eWEAK 
eMEDIUM 
eSMALL 
eHIGHZ 

Function Documentation

void Add ( double *  r,
double *  a,
double *  b 
) [inline]
int cABSDIFFPLUS1 ( int  a1,
int  a2 
) [inline]
CNode* cABSDIFFPLUS1_N ( CNode first,
  ... 
) [inline]
int cADD ( int  a1,
int  a2 
) [inline]
CNode* cADD_N ( CNode first,
  ... 
) [inline]
CNode_pr cLINK ( CNode_pr  pr1,
CNode n2 
) [inline]
int cMAX ( int  a1,
int  a2,
int  a3 
) [inline]
int cMAX ( int  a1,
int  a2 
) [inline]
CNode* cMAX_N ( CNode first,
  ... 
) [inline]
int cMUL ( int  a1,
int  a2 
) [inline]
CNode* cMUL_N ( CNode first,
  ... 
) [inline]
void Div ( double *  r,
double *  a,
double *  b 
) [inline]
int Equivalent ( CNode a,
CNode b 
)
string HierarchicalReference2String ( CNode ref  )  [inline]
ILLEGAL_OP1 ( Ror   ) 
ILLEGAL_OP1 ( Rxnor   ) 
ILLEGAL_OP1 ( Rand   ) 
ILLEGAL_OP1 ( Rnand   ) 
ILLEGAL_OP1 ( Com   ) 
ILLEGAL_OP1 ( Rxor   ) 
ILLEGAL_OP1 ( Rnor   ) 
ILLEGAL_OP2 ( Xnor   ) 
ILLEGAL_OP2 ( Lor   ) 
ILLEGAL_OP2 ( Land   ) 
ILLEGAL_OP2 ( Or   ) 
ILLEGAL_OP2 ( Rsh   ) 
ILLEGAL_OP2 ( Lsh   ) 
ILLEGAL_OP2 ( Mod   ) 
ILLEGAL_OP2 ( Rep   ) 
ILLEGAL_OP2 ( And   ) 
ILLEGAL_OP2 ( Xor   ) 
void MeasureDepth ( CNode n,
int *  count,
int *  depth 
) [inline]
void Mul ( double *  r,
double *  a,
double *  b 
) [inline]
void Neg ( double *  r,
double *  a 
) [inline]
void Plus ( double *  r,
double *  a 
) [inline]
void Pow ( double *  r,
double *  a,
double *  b 
) [inline]
CNode* RebalanceRight ( CNode n  )  [inline]
void Sub ( double *  r,
double *  a,
double *  b 
) [inline]