|
Qore Programming Language
0.9.16
|
32 #ifndef _QORE_INTERN_PARSEREFERENCENODE_H
33 #define _QORE_INTERN_PARSEREFERENCENODE_H
35 #include "qore/intern/ParseNode.h"
37 class IntermediateParseReferenceNode;
39 class ParseReferenceNode :
public ParseNode {
44 const QoreTypeInfo* typeInfo;
47 DLLLOCAL ~ParseReferenceNode() {
53 return evalToRef(xsink);
59 DLLLOCAL
virtual void parseInitImpl(
QoreValue& val, LocalVar* oflag,
int pflag,
int& lvids,
const QoreTypeInfo*& typeInfo);
65 DLLLOCAL ParseReferenceNode(
const QoreProgramLocation* loc,
QoreValue exp,
const QoreTypeInfo* typeInfo = referenceTypeInfo) : ParseNode(loc,
NT_PARSEREFERENCE, true, false), lvexp(exp), typeInfo(typeInfo) {
76 str.
sprintf(
"parse reference expression (%p)",
this);
90 getAsString(*rv, foff, xsink);
95 DLLLOCAL
virtual const char* getTypeName()
const {
96 return "reference to lvalue";
99 DLLLOCAL
virtual const QoreTypeInfo* getTypeInfo()
const {
104 DLLLOCAL IntermediateParseReferenceNode* evalToIntermediate(
ExceptionSink* xsink)
const;
110 class IntermediateParseReferenceNode :
public ParseReferenceNode {
113 const void* lvalue_id;
114 const qore_class_private* cls;
123 DLLLOCAL IntermediateParseReferenceNode(
const QoreProgramLocation* loc,
QoreValue exp,
const QoreTypeInfo* typeInfo,
QoreObject* o,
const void* lvid,
const qore_class_private* n_cls);
131 #endif // _QORE_INTERN_PARSEREFERENCENODE_H
The main value class in Qore, designed to be passed by value.
Definition: QoreValue.h:262
DLLEXPORT int sprintf(const char *fmt,...)
this will concatentate a formatted string to the existing string according to the format string and t...
Qore's string type supported by the QoreEncoding class.
Definition: QoreString.h:81
DLLEXPORT QoreValue refSelf() const
references the contained value if type == QV_Node, returns itself
const qore_type_t NT_PARSEREFERENCE
type value for ParseReferenceNode (private class)
Definition: node_types.h:80
DLLEXPORT void discard(ExceptionSink *xsink)
dereferences any contained AbstractQoreNode pointer and sets to 0; does not modify other values
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:61
container for holding Qore-language exception information and also for registering a "thread_exit" ca...
Definition: ExceptionSink.h:48