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"
39class QoreRangeOperatorNode :
public QoreIntBinaryOperatorNode,
public FunctionalOperator {
42 const QoreTypeInfo* typeInfo;
46 DLLLOCAL
virtual int parseInitImpl(
QoreValue& val, QoreParseContext& parse_context);
48 DLLLOCAL
virtual const QoreTypeInfo* getTypeInfo()
const {
52 DLLLOCAL
virtual FunctionalOperatorInterface* getFunctionalIteratorImpl(FunctionalValueType& value_type,
56 DLLLOCAL QoreRangeOperatorNode(
const QoreProgramLocation* loc,
QoreValue left,
QoreValue right)
57 : QoreIntBinaryOperatorNode(loc, left, right) {
60 DLLLOCAL
virtual QoreOperatorNode* copyBackground(
ExceptionSink* xsink)
const {
61 return copyBackgroundExplicit<QoreRangeOperatorNode>(xsink);
65class QoreFunctionalRangeOperator :
public FunctionalOperatorInterface,
public RangeIterator {
71 : RangeIterator(start, stop, 1, &
Nothing, xs), xsink(xs) {
74 DLLLOCAL
virtual ~QoreFunctionalRangeOperator() {
79 DLLLOCAL
virtual const QoreTypeInfo* getValueTypeImpl()
const {
80 return getElementType();
DLLEXPORT QoreNothingNode Nothing
the global and unique NOTHING object in Qore
container for holding Qore-language exception information and also for registering a "thread_exit" ca...
Definition: ExceptionSink.h:50
allows storing a value and setting a boolean flag that indicates if the value should be dereference i...
Definition: QoreValue.h:520
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
The main value class in Qore, designed to be passed by value.
Definition: QoreValue.h:276