DynamicContext::Ptr UserFunctionCallsite::bindVariables(const DynamicContext::Ptr &context) const { const DynamicContext::Ptr stackContext(context->createStack()); Q_ASSERT(stackContext); const Expression::List::const_iterator end(m_operands.constEnd()); Expression::List::const_iterator it(m_operands.constBegin()); VariableSlotID slot = m_expressionSlotOffset; for(; it != end; ++it) { stackContext->setExpressionVariable(slot, Expression::Ptr(new DynamicContextStore(*it, context))); ++slot; } return stackContext; }
DynamicContext::Ptr LetClause::bindVariable(const DynamicContext::Ptr &context) const { context->setExpressionVariable(m_varDecl->slot, Expression::Ptr(new DynamicContextStore(m_operand1, context))); return context; }