32 #ifndef _QORE_QOREPREINCREMENTOPERATORNODE_H
33 #define _QORE_QOREPREINCREMENTOPERATORNODE_H
35 class QorePreIncrementOperatorNode :
public QoreSingleExpressionOperatorNode<LValueOperatorNode> {
36 friend class QorePostIncrementOperatorNode;
41 const QoreTypeInfo* typeInfo;
43 DLLLOCAL
virtual void parseInitImpl(
QoreValue& val, LocalVar *oflag,
int pflag,
int &lvids,
const QoreTypeInfo *&typeInfo);
47 DLLLOCAL
void parseInitIntern(
const char *name, LocalVar *oflag,
int pflag,
int &lvids,
const QoreTypeInfo*& outTypeInfo) {
50 pflag &= ~(PF_RETURN_VALUE_IGNORED);
52 parse_init_value(exp, oflag, pflag, lvids, outTypeInfo);
53 checkLValue(exp, pflag);
56 check_lvalue_int_float_number(loc, outTypeInfo, name);
59 typeInfo = outTypeInfo;
63 DLLLOCAL
virtual const QoreTypeInfo* getTypeInfo()
const {
68 DLLLOCAL QorePreIncrementOperatorNode(
const QoreProgramLocation* loc,
QoreValue exp) : QoreSingleExpressionOperatorNode<LValueOperatorNode>(loc, exp) {
71 DLLLOCAL
virtual bool hasEffect()
const {
75 DLLLOCAL
virtual QoreOperatorNode* copyBackground(
ExceptionSink* xsink)
const {
76 return copyBackgroundExplicit<QorePreIncrementOperatorNode>(xsink);