32 #ifndef _QORE_REFERENCENODE_H 34 #define _QORE_REFERENCENODE_H 36 #include <qore/AbstractQoreNode.h> 46 friend class RuntimeReferenceHelper;
47 friend class lvalue_ref;
51 class lvalue_ref* priv;
virtual DLLEXPORT AbstractQoreNode * realCopy() const
returns a copy of the object
virtual DLLEXPORT bool is_equal_soft(const AbstractQoreNode *v, ExceptionSink *xsink) const
compares the values
virtual DLLEXPORT bool derefImpl(ExceptionSink *xsink)
called when the object is deleted
DLLEXPORT const QoreTypeInfo * getTypeInfo() const
returns the type information for this object
The base class for all value and parse types in Qore expression trees.
Definition: AbstractQoreNode.h:54
virtual DLLEXPORT QoreValue evalImpl(bool &needs_deref, ExceptionSink *xsink) const
returns the value of the reference
Qore's string type supported by the QoreEncoding class.
Definition: QoreString.h:81
DLLEXPORT const QoreTypeInfo * getLValueTypeInfo() const
returns the type information for the lvalue referenced
virtual DLLEXPORT const char * getTypeName() const
returns the type name as a c string
virtual DLLEXPORT ~ReferenceNode()
frees all memory and destroys the object
parse type: reference to a lvalue expression
Definition: ReferenceNode.h:45
DLLEXPORT ReferenceNode * refRefSelf() const
returns a reference to itself
The main value class in Qore, designed to be passed by value.
Definition: QoreValue.h:262
the implementation of Qore's object data type, reference counted, dynamically-allocated only ...
Definition: QoreObject.h:61
virtual DLLEXPORT int getAsString(QoreString &str, int foff, ExceptionSink *xsink) const
concatenate the verbose string representation of the value to an existing QoreString ...
container for holding Qore-language exception information and also for registering a "thread_exit" ca...
Definition: ExceptionSink.h:48
DLLEXPORT QoreValue doEval(ExceptionSink *xsink) const
returns the value of the reference
DLLLOCAL ReferenceNode(QoreValue exp, const QoreTypeInfo *typeInfo, QoreObject *self, const void *lvalue_id, const qore_class_private *cls)
creates the ReferenceNode object - internal function, not exported, not part of the Qore API ...
virtual DLLEXPORT bool is_equal_hard(const AbstractQoreNode *v, ExceptionSink *xsink) const
compares the values