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.