56 "It makes no sense to have an ExpressionSequence containing less than two expressions.");
67 return makeSequenceMappingIterator<Item>(
ConstPtr(
this),
79 (*it)->evaluateToSequenceReceiver(context);
95 const ID Id = (*it)->id();
115 for(; seqIt != seqEnd; ++seqIt)
116 result.append(*seqIt);
124 else if(result.count() == 1)
125 return result.first();
148 *
it = (*it)->typeCheck(context, testOnlyIT);
159 bool allEvaled =
true;
184 return operandsUnionType<ProductOfCardinality>();
198 return visitor->visit(
this);
Expression::List m_operands
virtual Expression::Properties properties() const
#define QT_END_NAMESPACE
This macro expands to.
static const SequenceType::Ptr ZeroOrMoreItems
#define it(className, varName)
virtual SequenceType::Ptr staticType() const
ExpressionSequence(const Expression::List &operands)
iterator begin()
Returns an STL-style iterator pointing to the first item in the list.
The QExplicitlySharedDataPointer class represents a pointer to an explicitly shared object...
const_iterator constBegin() const
Returns a const STL-style iterator pointing to the first item in the list.
QAbstractXmlForwardIterator< T >::Ptr makeListIterator(const QList< T > &list)
int count(const T &t) const
Returns the number of occurrences of value in the list.
static Expression::Ptr create(const Expression *const replacementFor, const StaticContext::Ptr &context)
Creates an EmptySequence that is a replacement for replacementFor.
Item::Iterator::Ptr mapToSequence(const Expression::Ptr &, const DynamicContext::Ptr &) const
virtual Expression::Ptr compress(const StaticContext::Ptr &context)
static Expression::Ptr verifyCardinality(const Expression::Ptr &operand, const Cardinality &card, const StaticContext::Ptr &context, const ReportContext::ErrorCode code=ReportContext::XPTY0004)
friend class const_iterator
void append(const T &t)
Inserts value at the end of the list.
static Cardinality empty()
#define QT_BEGIN_NAMESPACE
This macro expands to.
iterator end()
Returns an STL-style iterator pointing to the imaginary item after the last item in the list...
The namespace for the internal API of QtXmlPatterns.
virtual Cardinality cardinality() const =0
virtual void evaluateToSequenceReceiver(const DynamicContext::Ptr &context) const
#define Q_ASSERT_X(cond, where, what)
virtual SequenceType::List expectedOperandTypes() const
Base class for expressions that has any amount of operands.
virtual Expression::Ptr typeCheck(const StaticContext::Ptr &context, const SequenceType::Ptr &reqType)
The QFlags class provides a type-safe way of storing OR-combinations of enum values.
virtual ItemType::Ptr itemType() const =0
QExplicitlySharedDataPointer< const ExpressionSequence > ConstPtr
static const KeyPair *const end
virtual Item::Iterator::Ptr evaluateSequence(const DynamicContext::Ptr &) const
virtual Item::Iterator::Ptr evaluateSequence(const DynamicContext::Ptr &context) const
virtual ExpressionVisitorResult::Ptr accept(const ExpressionVisitor::Ptr &visitor) const
const_iterator constEnd() const
Returns a const STL-style iterator pointing to the imaginary item after the last item in the list...
virtual Expression::Ptr compress(const StaticContext::Ptr &context)