32 #ifndef _QORE_QOREINSTANCEOFOPERATORNODE_H
34 #define _QORE_QOREINSTANCEOFOPERATORNODE_H
36 class QoreInstanceOfOperatorNode :
public QoreSingleExpressionOperatorNode<QoreOperatorNode> {
38 DLLLOCAL QoreInstanceOfOperatorNode(
const QoreProgramLocation* loc,
QoreValue exp, QoreParseTypeInfo* ref) : QoreSingleExpressionOperatorNode<QoreOperatorNode>(loc, exp), r(ref) {
41 DLLLOCAL QoreInstanceOfOperatorNode(
const QoreProgramLocation* loc,
QoreValue exp,
const QoreTypeInfo* ti) : QoreSingleExpressionOperatorNode<QoreOperatorNode>(loc, exp), ti(ti) {
44 DLLLOCAL
virtual ~QoreInstanceOfOperatorNode() {
52 DLLLOCAL
virtual const char* getTypeName()
const {
53 return InstanceOf_str.c_str();
56 DLLLOCAL
virtual const QoreTypeInfo* getTypeInfo()
const {
60 DLLLOCAL
virtual QoreOperatorNode* copyBackground(
ExceptionSink* xsink)
const {
61 ValueHolder n_exp(copy_value_and_resolve_lvar_refs(exp, xsink), xsink);
65 return new QoreInstanceOfOperatorNode(loc, n_exp.release(), ti);
69 QoreParseTypeInfo* r =
nullptr;
70 const QoreTypeInfo* ti =
nullptr;
76 DLLLOCAL
virtual void parseInitImpl(
QoreValue& val, LocalVar* oflag,
int pflag,
int& lvids,
const QoreTypeInfo*& typeInfo);