55 , m_expressionSlotOffset(-2)
92 stackContext->setExpressionVariable(slot,
111 result.
append((*it)->type());
184 return visitor->visit(
this);
220 for(
int i = 0; i < len; ++i)
230 varDecls.at(i).
data(),
231 cacheSlotOffset + i));
virtual CallTargetDescription::Ptr callTargetDescription() const
Expression::List m_operands
FunctionSignature::Ptr signature() const
Abstract base-class for Expression instances that are callsites to other components, such as templates or user functions.
#define QT_END_NAMESPACE
This macro expands to.
const FunctionSignature::Arity m_arity
VariableSlotID expressionSlotOffset() const
static const SequenceType::Ptr ZeroOrMoreItems
#define it(className, varName)
virtual Expression::Properties properties() const
virtual bool evaluateEBV(const DynamicContext::Ptr &context) const
virtual Item evaluateSingleton(const DynamicContext::Ptr &context) const
virtual Expression::Ptr compress(const StaticContext::Ptr &context)
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.
DynamicContext::Ptr createStack()
virtual Expression::Ptr typeCheck(const StaticContext::Ptr &context, const SequenceType::Ptr &reqType)
virtual SequenceType::List expectedOperandTypes() const
Returns the types declared in the function declaration.
virtual ExpressionVisitorResult::Ptr accept(const ExpressionVisitor::Ptr &visitor) const
virtual Expression::Ptr compress(const StaticContext::Ptr &context)
DynamicContext::Ptr bindVariables(const DynamicContext::Ptr &context) const
friend class const_iterator
T * data() const
Returns a pointer to the shared data object.
void append(const T &t)
Inserts value at the end of the list.
#define QT_BEGIN_NAMESPACE
This macro expands to.
void typeCheckOperands(const StaticContext::Ptr &context)
FunctionArgument::List arguments() const
static void rewrite(Expression::Ptr &old, const Expression::Ptr &New, const StaticContext::Ptr &context)
virtual bool evaluateEBV(const DynamicContext::Ptr &context) const
UserFunctionCallsite(const QXmlName name, const FunctionSignature::Arity arity)
const T & at(int i) const
Returns the item at index position i in the list.
The namespace for the internal API of QtXmlPatterns.
bool isSignatureValid(const FunctionSignature::Ptr &sign) const
virtual SequenceType::Ptr staticType() const
virtual Item::Iterator::Ptr evaluateSequence(const DynamicContext::Ptr &context) const
virtual Expression::Ptr typeCheck(const StaticContext::Ptr &context, const SequenceType::Ptr &reqType)
UserFunction::Ptr m_functionDeclaration
QExplicitlySharedDataPointer< Expression > Ptr
A smart pointer wrapping mutable Expression instances.
VariableSlotID m_expressionSlotOffset
virtual SequenceType::Ptr staticType() const =0
The QXmlName class represents the name of an XML node, in an efficient, namespace-aware way...
Represents an item in the XPath 2.0 Data Model.
void setSource(const UserFunction::Ptr &userFunction, const VariableSlotID cacheSlotOffset)
Evaluates to the same result as its operand, but ensures the operand is evaluated once even if this E...
const Expression::Ptr & body() const
int size() const
Returns the number of items in the list.
FunctionSignature::Arity arity() const
void setIsRecursive(const bool value)
virtual void evaluateToSequenceReceiver(const DynamicContext::Ptr &context) const
Evaluates its operand with an assigned DynamicContext, not the one passed to one of the evaluation fu...
bool isArityValid(const xsInteger arity) const
The QFlags class provides a type-safe way of storing OR-combinations of enum values.
VariableDeclaration::List argumentDeclarations() const
static const KeyPair *const end
bool is(const ID id) const
virtual void evaluateToSequenceReceiver(const DynamicContext::Ptr &context) const
virtual Item evaluateSingleton(const DynamicContext::Ptr &context) const
virtual bool configureRecursion(const CallTargetDescription::Ptr &sign)
The QList class is a template class that provides lists.
virtual Item::Iterator::Ptr evaluateSequence(const DynamicContext::Ptr &context) const
const_iterator constEnd() const
Returns a const STL-style iterator pointing to the imaginary item after the last item in the list...