32 #ifndef _QORE_QOREASSIGNMENTOPERATORNODE_H
33 #define _QORE_QOREASSIGNMENTOPERATORNODE_H
35 class QoreAssignmentOperatorNode :
public QoreBinaryLValueOperatorNode {
38 DLLLOCAL QoreAssignmentOperatorNode(
const QoreProgramLocation* loc,
QoreValue left,
QoreValue right) : QoreBinaryLValueOperatorNode(loc, left, right) {
41 DLLLOCAL
virtual QoreOperatorNode* copyBackground(
ExceptionSink* xsink)
const {
42 return copyBackgroundExplicit<QoreAssignmentOperatorNode>(xsink);
47 bool broken_int =
false;
51 DLLLOCAL
void parseInitIntern(LocalVar* oflag,
int pflag,
int& lvids,
const QoreTypeInfo*& typeInfo,
bool weak_assignment);
55 DLLLOCAL
virtual void parseInitImpl(
QoreValue& val, LocalVar* oflag,
int pflag,
int& lvids,
const QoreTypeInfo*& typeInfo) {
56 parseInitIntern(oflag, pflag, lvids, typeInfo,
false);
60 return evalIntern(xsink, needs_deref,
false);
64 class QoreWeakAssignmentOperatorNode :
public QoreAssignmentOperatorNode {
67 DLLLOCAL QoreWeakAssignmentOperatorNode(
const QoreProgramLocation* loc,
QoreValue left,
QoreValue right) : QoreAssignmentOperatorNode(loc, left, right) {
70 DLLLOCAL
virtual QoreOperatorNode* copyBackground(
ExceptionSink* xsink)
const {
71 return copyBackgroundExplicit<QoreWeakAssignmentOperatorNode>(xsink);
75 DLLLOCAL
virtual void parseInitImpl(
QoreValue& val, LocalVar* oflag,
int pflag,
int& lvids,
const QoreTypeInfo*& typeInfo) {
76 parseInitIntern(oflag, pflag, lvids, typeInfo,
true);
80 return evalIntern(xsink, needs_deref,
true);