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 int integerEvalImpl(ExceptionSink *xsink) const
returns the value of the reference as an int
virtual DLLEXPORT const char * getTypeName() const
returns the type name as a c string
virtual DLLEXPORT bool derefImpl(ExceptionSink *xsink)
called when the object is deleted
The base class for all value and parse types in Qore expression trees.
Definition: AbstractQoreNode.h:54
virtual DLLEXPORT bool boolEvalImpl(ExceptionSink *xsink) const
returns the value of the reference as a bool
virtual DLLEXPORT bool is_equal_soft(const AbstractQoreNode *v, ExceptionSink *xsink) const
compares the values
virtual DLLEXPORT double floatEvalImpl(ExceptionSink *xsink) const
returns the value of the reference as a double
virtual DLLEXPORT int getAsString(QoreString &str, int foff, ExceptionSink *xsink) const
concatenate the verbose string representation of the value to an existing QoreString ...
DLLEXPORT const QoreTypeInfo * getLValueTypeInfo() const
returns the type information for the lvalue referenced
Qore's string type supported by the QoreEncoding class.
Definition: QoreString.h:82
virtual DLLEXPORT ~ReferenceNode()
frees all memory and destroys the object
parse type: reference to a lvalue expression
Definition: ReferenceNode.h:45
the implementation of Qore's object data type, reference counted, dynamically-allocated only ...
Definition: QoreObject.h:62
container for holding Qore-language exception information and also for registering a "thread_exit" ca...
Definition: ExceptionSink.h:47
long long int64
64bit integer type, cannot use int64_t here since it breaks the API on some 64-bit systems due to equ...
Definition: common.h:241
DLLEXPORT ReferenceNode * refRefSelf() const
returns a reference to itself
DLLLOCAL ReferenceNode(AbstractQoreNode *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 int64 bigIntEvalImpl(ExceptionSink *xsink) const
returns the value of the reference as an int64
DLLEXPORT const QoreTypeInfo * getTypeInfo() const
returns the type information for this object
virtual DLLEXPORT AbstractQoreNode * evalImpl(ExceptionSink *xsink) const
returns the value of the reference; caller owns any reference count returned for non-NULL return valu...
virtual DLLEXPORT bool is_equal_hard(const AbstractQoreNode *v, ExceptionSink *xsink) const
compares the values
virtual DLLEXPORT AbstractQoreNode * realCopy() const
returns a copy of the object