32 #ifndef _QORE_QOREPOSTINCREMENTOPERATORNODE_H
33 #define _QORE_QOREPOSTINCREMENTOPERATORNODE_H
35 class QorePostIncrementOperatorNode :
public QoreSingleExpressionOperatorNode<LValueOperatorNode> {
38 const QoreTypeInfo* ti =
nullptr;
40 DLLLOCAL
virtual int parseInitImpl(
QoreValue& val, QoreParseContext& parse_context);
44 DLLLOCAL
int parseInitIntern(
const char* name, QoreParseContext& parse_context) {
46 QoreParseContextFlagHelper fh(parse_context);
47 fh.unsetFlags(PF_RETURN_VALUE_IGNORED);
49 assert(!parse_context.typeInfo);
50 int err = parse_init_value(exp, parse_context);
51 ti = parse_context.typeInfo;
53 if (!err && checkLValue(exp, parse_context.pflag)) {
58 if (check_lvalue_int_float_number(loc, ti, name) && !err) {
63 parse_context.typeInfo = ti;
67 DLLLOCAL
virtual const QoreTypeInfo* getTypeInfo()
const {
72 DLLLOCAL QorePostIncrementOperatorNode(
const QoreProgramLocation* loc,
QoreValue exp)
73 : QoreSingleExpressionOperatorNode<LValueOperatorNode>(loc, exp), ti(0) {
76 DLLLOCAL
virtual bool hasEffect()
const {
80 DLLLOCAL
virtual QoreOperatorNode* copyBackground(
ExceptionSink* xsink)
const {
81 return copyBackgroundExplicit<QorePostIncrementOperatorNode>(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