11 if (!methStack_.empty()) push(begin,end);
12 else if (!lazyMethStack_.empty()) lazyPush(begin,end);
13 else throw Exception(begin) <<
" Expression didn't parse neither hastily nor lazyly. This must not happen.\n";
21 <<
"member \"" << methStack_.back().methodName() <<
"\" has an invalid return type: \""
22 << methStack_.back().returnTypeName() <<
"\"";
26 <<
"member \"" << methStack_.back().methodName()
27 <<
"\" return type is \"" << methStack_.back().returnTypeName()
28 <<
"\" which is not convertible to double.";
31 exprStack_.push_back(boost::shared_ptr<ExpressionBase>(
new ExpressionVar(methStack_, retType)));
37 exprStack_.push_back(boost::shared_ptr<ExpressionBase>(
new ExpressionLazyVar(lazyMethStack_)));
38 lazyMethStack_.clear();
void operator()(const char *, const char *) const
void lazyPush(const char *, const char *) const
static bool isValidReturnType(method::TypeCode)
TypeCode typeCode(const edm::TypeWithDict &t)
Evaluate an object's method or datamember (or chain of them) to get a number.
void push(const char *, const char *) const