32 #ifndef _QORE_QORERANGEOPERATORNODE_H 33 #define _QORE_QORERANGEOPERATORNODE_H 35 #include "qore/intern/RangeIterator.h" 36 #include "qore/intern/FunctionalOperator.h" 37 #include "qore/intern/FunctionalOperatorInterface.h" 39 class QoreRangeOperatorNode :
public QoreIntBinaryOperatorNode,
public FunctionalOperator {
42 const QoreTypeInfo* typeInfo;
46 DLLLOCAL
virtual void parseInitImpl(
QoreValue& val, LocalVar* oflag,
int pflag,
int& lvids,
const QoreTypeInfo*& typeInfo);
48 DLLLOCAL
virtual const QoreTypeInfo* getTypeInfo()
const {
52 DLLLOCAL
virtual FunctionalOperatorInterface* getFunctionalIteratorImpl(FunctionalValueType& value_type,
ExceptionSink* xsink)
const;
55 DLLLOCAL QoreRangeOperatorNode(
const QoreProgramLocation* loc,
QoreValue left,
QoreValue right)
56 : QoreIntBinaryOperatorNode(loc, left, right) {
59 DLLLOCAL
virtual QoreOperatorNode* copyBackground(
ExceptionSink* xsink)
const {
60 return copyBackgroundExplicit<QoreRangeOperatorNode>(xsink);
64 class QoreFunctionalRangeOperator :
public FunctionalOperatorInterface,
public RangeIterator {
70 : RangeIterator(start, stop, 1, &
Nothing, xs), xsink(xs) {
73 DLLLOCAL
virtual ~QoreFunctionalRangeOperator() {
78 DLLLOCAL
virtual const QoreTypeInfo* getValueTypeImpl()
const {
79 return getElementType();
allows storing a value and setting a boolean flag that indicates if the value should be dereference i...
Definition: QoreValue.h:485
DLLEXPORT QoreNothingNode Nothing
the global and unique NOTHING object in Qore
The main value class in Qore, designed to be passed by value.
Definition: QoreValue.h:262
container for holding Qore-language exception information and also for registering a "thread_exit" ca...
Definition: ExceptionSink.h:46
long long int64
64bit integer type, cannot use int64_t here since it breaks the API on some 64-bit systems due to equ...
Definition: common.h:260