32 #ifndef _QORE_QORESPLICEOPERATORNODE_H
34 #define _QORE_QORESPLICEOPERATORNODE_H
36 class QoreSpliceOperatorNode :
public LValueOperatorNode {
38 DLLLOCAL QoreSpliceOperatorNode(
const QoreProgramLocation* loc,
41 LValueOperatorNode(loc),
42 lvalue_exp(n_lvalue_exp),
43 offset_exp(n_offset_exp),
44 length_exp(n_length_exp),
53 DLLLOCAL
virtual const char *getTypeName()
const {
54 return splice_str.getBuffer();
57 DLLLOCAL
virtual bool hasEffect()
const {
61 DLLLOCAL
virtual QoreOperatorNode* copyBackground(
ExceptionSink *xsink)
const {
62 ValueHolder n_lv(copy_value_and_resolve_lvar_refs(lvalue_exp, xsink), xsink);
66 ValueHolder n_of(copy_value_and_resolve_lvar_refs(offset_exp, xsink), xsink);
70 ValueHolder n_ln(copy_value_and_resolve_lvar_refs(length_exp, xsink), xsink);
74 ValueHolder n_nw(copy_value_and_resolve_lvar_refs(new_exp, xsink), xsink);
78 return new QoreSpliceOperatorNode(get_runtime_location(), n_lv.release(), n_of.release(), n_ln.release(),
83 QoreValue lvalue_exp, offset_exp, length_exp, new_exp;
84 const QoreTypeInfo* returnTypeInfo =
nullptr;
90 DLLLOCAL ~QoreSpliceOperatorNode() {
97 DLLLOCAL
virtual int parseInitImpl(
QoreValue& val, QoreParseContext& parse_context);
99 DLLLOCAL
virtual const QoreTypeInfo *getTypeInfo()
const {
100 return returnTypeInfo;
container for holding Qore-language exception information and also for registering a "thread_exit" ca...
Definition: ExceptionSink.h:48
Qore's string type supported by the QoreEncoding class.
Definition: QoreString.h:93
holds an object and dereferences it in the destructor
Definition: QoreValue.h:476
The main value class in Qore, designed to be passed by value.
Definition: QoreValue.h:275
DLLEXPORT void discard(ExceptionSink *xsink)
dereferences any contained AbstractQoreNode pointer and sets to 0; does not modify other values