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;
The base class for all value and parse types in Qore expression trees.
Definition: AbstractQoreNode.h:57
container for holding Qore-language exception information and also for registering a "thread_exit" ca...
Definition: ExceptionSink.h:50
the implementation of Qore's object data type, reference counted, dynamically-allocated only
Definition: QoreObject.h:60
Qore's string type supported by the QoreEncoding class.
Definition: QoreString.h:93
parse type: reference to a lvalue expression
Definition: ReferenceNode.h:45
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
virtual DLLEXPORT QoreValue evalImpl(bool &needs_deref, ExceptionSink *xsink) const
returns the value of the reference
DLLEXPORT QoreValue doEval(ExceptionSink *xsink) const
returns the value of the reference
DLLEXPORT ReferenceNode * refRefSelf() const
returns a reference to itself
DLLLOCAL ReferenceNode(const ReferenceNode &old)
creates a copy of the object
virtual DLLEXPORT AbstractQoreNode * realCopy() const
returns a copy of the object
virtual DLLEXPORT const char * getTypeName() const
returns the type name as a c string
virtual DLLEXPORT bool is_equal_soft(const AbstractQoreNode *v, ExceptionSink *xsink) const
compares the values
virtual DLLEXPORT QoreString * getAsString(bool &del, int foff, ExceptionSink *xsink) const
returns a QoreString giving the verbose string representation of the value
virtual DLLEXPORT ~ReferenceNode()
frees all memory and destroys the object
DLLEXPORT const QoreTypeInfo * getTypeInfo() const
returns the type information for this object
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
virtual DLLEXPORT bool derefImpl(ExceptionSink *xsink)
called when the object is deleted
The main value class in Qore, designed to be passed by value.
Definition: QoreValue.h:276