#include <exprTree.h>
Inheritance diagram for ExprTree:


Public Types | |
| enum | NodeKind { LITERAL_NODE, ATTRREF_NODE, OP_NODE, FN_CALL_NODE, CLASSAD_NODE, EXPR_LIST_NODE } |
| The kinds of nodes in expression trees. More... | |
Public Member Functions | |
| virtual | ~ExprTree () |
| Virtual destructor. | |
| void | SetParentScope (const ClassAd *p) |
| Sets the lexical parent scope of the expression, which is used to determine the lexical scoping structure for resolving attribute references. | |
| const ClassAd * | GetParentScope () const |
| Gets the parent scope of the expression. | |
| virtual ExprTree * | Copy () const=0 |
| Makes a deep copy of the expression tree. | |
| NodeKind | GetKind (void) const |
| Gets the node kind of this expression node. | |
| void | Puke () const |
| A debugging method; send expression to stdout. | |
| bool | Evaluate (EvalState &state, Value &val) const |
| Evaluate this tree. | |
| bool | Evaluate (Value &v) const |
| Evaluate this tree. | |
| virtual bool | SameAs (const ExprTree *tree) const=0 |
| Is this ExprTree the same as the tree? | |
Protected Types | |
| enum | { EVAL_FAIL, EVAL_OK, EVAL_UNDEF, PROP_UNDEF, EVAL_ERROR, PROP_ERROR } |
Protected Member Functions | |
| void | CopyFrom (const ExprTree &literal) |
| Fill in this ExprTree with the contents of the other ExprTree. | |
| bool | Evaluate (Value &v, ExprTree *&t) const |
| bool | Flatten (Value &val, ExprTree *&tree) const |
| bool | Flatten (EvalState &, Value &, ExprTree *&, int *=NULL) const |
| bool | Evaluate (EvalState &, Value &, ExprTree *&) const |
Protected Attributes | |
| const ClassAd * | parentScope |
| NodeKind | nodeKind |
Friends | |
| class | Operation |
| class | AttributeReference |
| class | FunctionCall |
| class | FunctionTable |
| class | ExprList |
| class | ExprListIterator |
| class | ClassAd |
| bool | operator== (const ExprTree &tree1, const ExprTree &tree2) |
|
|
The kinds of nodes in expression trees.
|
|
|
Makes a deep copy of the expression tree.
Implemented in AttributeReference, ClassAd, ExprList, FunctionCall, Literal, and Operation. |
|
|
Fill in this ExprTree with the contents of the other ExprTree.
|
|
|
Evaluate this tree. This only works if the expression is currently part of a ClassAd.
|
|
||||||||||||
|
Evaluate this tree.
|
|
|
Gets the node kind of this expression node.
|
|
|
Gets the parent scope of the expression.
|
|
|
Is this ExprTree the same as the tree?
Implemented in AttributeReference, ClassAd, ExprList, FunctionCall, Literal, and Operation. |
|
|
Sets the lexical parent scope of the expression, which is used to determine the lexical scoping structure for resolving attribute references.
(However, the semantic parent may be different from the lexical parent if a
|