![]() |
Qore Programming Language
0.9.16
|
parse type: reference to a lvalue expression More...
#include <ReferenceNode.h>


Public Member Methods | |
| DLLLOCAL | ReferenceNode (const ReferenceNode &old) |
| creates a copy of the object More... | |
| 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 | derefImpl (ExceptionSink *xsink) |
| called when the object is deleted | |
| virtual DLLEXPORT QoreString * | getAsString (bool &del, int foff, ExceptionSink *xsink) const |
| returns a QoreString giving the verbose string representation of the value More... | |
| virtual DLLEXPORT int | getAsString (QoreString &str, int foff, ExceptionSink *xsink) const |
| concatenate the verbose string representation of the value to an existing QoreString More... | |
| const DLLEXPORT QoreTypeInfo * | getLValueTypeInfo () const |
| returns the type information for the lvalue referenced More... | |
| const DLLEXPORT QoreTypeInfo * | getTypeInfo () const |
| returns the type information for this object More... | |
| virtual const DLLEXPORT char * | getTypeName () const |
| returns the type name as a c string | |
| virtual DLLEXPORT bool | is_equal_hard (const AbstractQoreNode *v, ExceptionSink *xsink) const |
| compares the values | |
| virtual DLLEXPORT bool | is_equal_soft (const AbstractQoreNode *v, ExceptionSink *xsink) const |
| compares the values | |
| virtual DLLEXPORT AbstractQoreNode * | realCopy () const |
| returns a copy of the object | |
| DLLEXPORT ReferenceNode * | refRefSelf () const |
| returns a reference to itself | |
Public Member Methods inherited from AbstractQoreNode | |
| DLLEXPORT | AbstractQoreNode (const AbstractQoreNode &v) |
| copy constructor | |
| DLLEXPORT | AbstractQoreNode (qore_type_t t, bool n_value, bool n_needs_eval, bool n_there_can_be_only_one=false, bool n_custom_reference_handlers=false) |
| constructor takes the type More... | |
| virtual DLLEXPORT void | customDeref (ExceptionSink *xsink) |
| virtual DLLEXPORT void | customRef () const |
| special processing when the object's reference count transitions from 0-1 More... | |
| DLLEXPORT void | deref (ExceptionSink *xsink) |
| decrements the reference count and calls derefImpl() if there_can_be_only_one is false, otherwise does nothing More... | |
| DLLEXPORT QoreValue | eval (bool &needs_deref, ExceptionSink *xsink) const |
| optionally evaluates the argument More... | |
| DLLEXPORT QoreValue | eval (ExceptionSink *xsink) const |
| evaluates the object and returns a value (or 0) More... | |
| DLLEXPORT int64 | getAsBigInt () const |
| returns the 64-bit integer value of the object More... | |
| virtual DLLLOCAL int64 | getAsBigIntImpl () const |
| default implementation, returns 0 More... | |
| DLLEXPORT bool | getAsBool () const |
| returns the boolean value of the object More... | |
| virtual DLLLOCAL bool | getAsBoolImpl () const |
| default implementation, returns false More... | |
| DLLEXPORT double | getAsFloat () const |
| returns the float value of the object More... | |
| virtual DLLLOCAL double | getAsFloatImpl () const |
| default implementation, returns 0.0 More... | |
| DLLEXPORT int | getAsInt () const |
| returns the integer value of the object More... | |
| virtual DLLLOCAL int | getAsIntImpl () const |
| default implementation, returns 0 More... | |
| virtual DLLEXPORT class DateTime * | getDateTimeRepresentation (bool &del) const |
| returns the DateTime representation of this type (default implementation: returns ZeroDate, del = false) More... | |
| virtual DLLEXPORT void | getDateTimeRepresentation (DateTime &dt) const |
| assigns the date representation of a value to the DateTime reference passed, default implementation does nothing More... | |
| virtual DLLEXPORT QoreString * | getStringRepresentation (bool &del) const |
| returns the value of the type converted to a string, default implementation: returns the empty string More... | |
| virtual DLLEXPORT void | getStringRepresentation (QoreString &str) const |
| concatentates the value of the type to an existing QoreString reference, default implementation does nothing More... | |
| DLLLOCAL qore_type_t | getType () const |
| returns the data type More... | |
| DLLLOCAL bool | is_value () const |
| returns true if the node represents a value More... | |
| DLLLOCAL bool | isReferenceCounted () const |
| returns true if the object is reference-counted | |
| DLLLOCAL bool | needs_eval () const |
| returns true if the object needs evaluation to return a value, false if not More... | |
| DLLLOCAL AbstractQoreNode & | operator= (const AbstractQoreNode &) |
| this function is not implemented; it is here as a private function in order to prohibit it from being used | |
| virtual DLLLOCAL void | parseInit (QoreValue &val, LocalVar *oflag, int pflag, int &lvids, const QoreTypeInfo *&typeInfo) |
| for use by parse types to initialize them for execution during stage 1 parsing; not exported in the library; this method's API/ABI subject to change at any time More... | |
| DLLEXPORT void | ref () const |
| increments the reference count | |
| DLLEXPORT AbstractQoreNode * | refSelf () const |
| returns "this" with an incremented reference count More... | |
Public Member Methods inherited from QoreReferenceCounter | |
| DLLEXPORT | QoreReferenceCounter () |
| creates the reference counter object | |
| DLLEXPORT | QoreReferenceCounter (const QoreReferenceCounter &old) |
| creates a new object with a reference count of 1 More... | |
| DLLEXPORT | ~QoreReferenceCounter () |
| destroys the reference counter object | |
| DLLEXPORT bool | is_unique () const |
| returns true if the reference count is 1 More... | |
| DLLEXPORT int | reference_count () const |
| gets the reference count More... | |
| DLLEXPORT bool | ROdereference () const |
| atomically decrements the reference count More... | |
| DLLEXPORT void | ROreference () const |
| atomically increments the reference count | |
Private Member Methods | |
| virtual DLLEXPORT | ~ReferenceNode () |
| frees all memory and destroys the object | |
| DLLEXPORT QoreValue | doEval (ExceptionSink *xsink) const |
| returns the value of the reference | |
| virtual DLLEXPORT QoreValue | evalImpl (bool &needs_deref, ExceptionSink *xsink) const |
| returns the value of the reference | |
Private Member Methods inherited from AbstractQoreNode | |
| virtual DLLEXPORT | ~AbstractQoreNode () |
| default destructor does nothing More... | |
Additional Inherited Members | |
Private Attributes inherited from AbstractQoreNode | |
| bool | custom_reference_handlers: 1 |
| set to one for objects that need custom reference handlers | |
| bool | needs_eval_flag: 1 |
| if this is true then the type can be evaluated | |
| bool | there_can_be_only_one: 1 |
| if this is set to true, then reference counting is turned off for objects of this class | |
| qore_type_t | type: 11 |
| the type of the object More... | |
| bool | value: 1 |
| this is true for values, if false then either the type needs evaluation to produce a value or is a parse expression | |
parse type: reference to a lvalue expression
This type could be passed to a builtin function. To get and set the value of the reference, use the TypeSafeReferenceHelper class. To create a reference argument to pass to a user or builtin function, use the ReferenceArgumentHelper class.
| DLLLOCAL ReferenceNode::ReferenceNode | ( | const ReferenceNode & | old | ) |
creates a copy of the object
|
virtual |
returns a QoreString giving the verbose string representation of the value
Used for n and N printf formatting. Do not call this function directly; use the QoreNodeAsStringHelper class (defined in QoreStringNode.h) instead
| del | if this is true when the function returns, then the returned QoreString pointer should be deleted, if false, then it must not be |
| foff | for multi-line formatting offset, -1 = no line breaks (ignored in this version of the function) |
| xsink | ignored in this version of the function |
Implements AbstractQoreNode.
|
virtual |
concatenate the verbose string representation of the value to an existing QoreString
used for n and N printf formatting
| str | the string representation of the type will be concatenated to this QoreString reference |
| foff | for multi-line formatting offset, -1 = no line breaks (ignored in this version of the function) |
| xsink | ignored in this version of the function |
Implements AbstractQoreNode.
| const DLLEXPORT QoreTypeInfo* ReferenceNode::getLValueTypeInfo | ( | ) | const |
returns the type information for the lvalue referenced
| const DLLEXPORT QoreTypeInfo* ReferenceNode::getTypeInfo | ( | ) | const |
returns the type information for this object