32 #ifndef _QORE_QOREHASHMAPOPERATORNODE_H
33 #define _QORE_QOREHASHMAPOPERATORNODE_H
35 #include "qore/intern/AbstractIteratorHelper.h"
37 class QoreHashMapOperatorNode :
public QoreNOperatorNodeBase<3> {
40 QoreNOperatorNodeBase<3>(loc, p0, QoreSimpleValue().assign(p1), QoreSimpleValue().assign(p2)) {
47 DLLLOCAL
virtual const char* getTypeName()
const {
48 return map_str.getBuffer();
51 DLLLOCAL
virtual QoreOperatorNode* copyBackground(
ExceptionSink* xsink)
const {
52 ValueHolder n_e0(copy_value_and_resolve_lvar_refs(e[0], xsink), xsink);
55 ValueHolder n_e1(copy_value_and_resolve_lvar_refs(e[1], xsink), xsink);
58 ValueHolder n_e2(copy_value_and_resolve_lvar_refs(e[2], xsink), xsink);
61 return new QoreHashMapOperatorNode(loc, n_e0.release(), n_e1.release(), n_e2.release());
64 DLLLOCAL
static const QoreTypeInfo* setReturnTypeInfo(
const QoreTypeInfo*& returnTypeInfo,
const QoreTypeInfo* expTypeInfo2,
const QoreTypeInfo* iteratorTypeInfo);
66 DLLLOCAL
virtual bool hasEffectAsRoot()
const {
71 const QoreTypeInfo* returnTypeInfo =
nullptr;
80 DLLLOCAL
virtual ~QoreHashMapOperatorNode() {
83 DLLLOCAL
virtual void parseInitImpl(
QoreValue& val, LocalVar* oflag,
int pflag,
int& lvids,
const QoreTypeInfo*& typeInfo);
85 inline DLLLOCAL
virtual const QoreTypeInfo* getTypeInfo()
const {
86 return returnTypeInfo;
94 #endif // QOREHASHMAPOPERATORNODE_H