32 #ifndef _QORE_QOREPREINCREMENTOPERATORNODE_H
33 #define _QORE_QOREPREINCREMENTOPERATORNODE_H
35 class QorePreIncrementOperatorNode :
public QoreSingleExpressionOperatorNode<LValueOperatorNode> {
36 friend class QorePostIncrementOperatorNode;
41 const QoreTypeInfo* typeInfo =
nullptr;
43 DLLLOCAL
virtual int parseInitImpl(
QoreValue& val, QoreParseContext& parse_context);
47 DLLLOCAL
int parseInitIntern(
const char* name, QoreParseContext& parse_context) {
48 assert(!parse_context.typeInfo);
50 QoreParseContextFlagHelper fh(parse_context);
51 fh.unsetFlags(PF_RETURN_VALUE_IGNORED);
53 assert(!parse_context.typeInfo);
54 int err = parse_init_value(exp, parse_context);
56 if (!err && checkLValue(exp, parse_context.pflag)) {
61 if (check_lvalue_int_float_number(loc, parse_context.typeInfo, name) && !err) {
66 typeInfo = parse_context.typeInfo;
71 DLLLOCAL
virtual const QoreTypeInfo* getTypeInfo()
const {
76 DLLLOCAL QorePreIncrementOperatorNode(
const QoreProgramLocation* loc,
QoreValue exp)
77 : QoreSingleExpressionOperatorNode<LValueOperatorNode>(loc, exp) {
80 DLLLOCAL
virtual bool hasEffect()
const {
84 DLLLOCAL
virtual QoreOperatorNode* copyBackground(
ExceptionSink* xsink)
const {
85 return copyBackgroundExplicit<QorePreIncrementOperatorNode>(xsink);
container for holding Qore-language exception information and also for registering a "thread_exit" ca...
Definition: ExceptionSink.h:48
The main value class in Qore, designed to be passed by value.
Definition: QoreValue.h:275