Public Methods |
| | CppExpressionGenerator (ostream &out) |
| | ~CppExpressionGenerator () |
| void | collectExpressions (NEDElement *node) |
| void | generateExpressionClasses () |
| void | generateExpressionUsage (ExpressionNode *expr, const char *indent) |
Protected Types |
|
typedef std::vector<NEDElement *> | NEDElementVector |
typedef std::map<ExpressionNode *,
ExpressionInfo> | NEDExpressionMap |
| enum | { MODE_INLINE_EXPRESSION,
MODE_EXPRESSION_CLASS
} |
Protected Methods |
|
void | doExtractArgs (ExpressionInfo &info, NEDElement *node) |
|
void | doCollectExpressions (NEDElement *node) |
|
void | collectExpressionInfo (ExpressionNode *expr) |
|
void | generateExpressionClass (ExpressionInfo &info) |
|
const char* | getTypeForArg (NEDElement *node) |
|
const char* | getNameForArg (NEDElement *node) |
|
void | doValueForArg (NEDElement *node) |
|
void | doValueForCachedVar (NEDElement *node) |
|
void | generateChildren (NEDElement *node, const char *indent, int mode) |
|
void | generateItem (NEDElement *node, const char *indent, int mode) |
|
void | doOperator (OperatorNode *node, const char *indent, int mode) |
|
void | doFunction (FunctionNode *node, const char *indent, int mode) |
|
void | doParamref (ParamRefNode *node, const char *indent, int mode) |
|
void | doIdent (IdentNode *node, const char *indent, int mode) |
|
void | doConst (ConstNode *node, const char *indent, int mode) |
|
void | doExpression (ExpressionNode *node, const char *indent, int mode) |
|
bool | needsExpressionClass (ExpressionNode *expr) |
Protected Attributes |
|
ostream& | out |
|
NEDExpressionMap | exprMap |
Static Protected Attributes |
|
int | count |
The internal needsExpressionClass() method decides which expressions are compiled inline and which with expression classes.