Package org.basex.query.expr.gflwor
Class ForLet
java.lang.Object
org.basex.query.expr.ExprInfo
org.basex.query.expr.Expr
org.basex.query.expr.ParseExpr
org.basex.query.expr.gflwor.Clause
org.basex.query.expr.gflwor.ForLet
FLWOR
for/let clause.- Author:
- BaseX Team 2005-21, BSD License, Christian Gruen
-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionfinal voidcheckUp()Checks if the updating semantics are satisfied.final ClauseCompiles and optimizes the expression, assigns types and cardinalities.final VarUsageChecks how often a variable or context reference is used in this expression.booleanThis function is e.g.final intexprSize()Counts the number of expressions in this expression's sub-tree.final booleanIndicates if an expression has one of the specified compiler properties.final Clauseinline(InlineContext ic) Inlines an expression into this one, replacing all variable or context references.final booleanChecks if inlining is possible.Methods inherited from class org.basex.query.expr.gflwor.Clause
calcSize, copy, declares, optimize, varsMethods inherited from class org.basex.query.expr.ParseExpr
adoptType, atomValue, checkAllUp, checkNoEmpty, checkNoEmpty, checkNoneUp, checkNoUp, checkType, checkType, checkUp, copyType, ctxValue, ebv, item, iter, refineType, seqType, size, test, toArray, toArray, toAtomItem, toB64, toB64, toBin, toBin, toBoolean, toBoolean, toBytes, toBytes, toDouble, toDouble, toElem, toFloat, toFunc, toItem, toItem, toLong, toLong, toMap, toMap, toNode, toNode, toNodeOrNull, toNumber, toNumberOrNull, toQNm, toQNm, toToken, toToken, toTokenOrNull, toZeroToken, valueMethods inherited from class org.basex.query.expr.Expr
accept, arg, args, atomItem, atomIter, data, data, ddo, funcType, hasFreeVars, indexAccessible, isSimple, markTailCalls, mergeEbv, simplifyFor, typeCheck, uses, vacuous, visitAllMethods inherited from class org.basex.query.expr.ExprInfo
description, plan, plan, toErrorString, toString
-
Field Details
-
var
Item variable. -
expr
Bound expression.
-
-
Method Details
-
compile
Description copied from class:ExprCompiles and optimizes the expression, assigns types and cardinalities.- Specified by:
compilein classClause- Parameters:
cc- compilation context- Returns:
- optimized expression
- Throws:
QueryException- query exception
-
has
Description copied from class:ExprIndicates if an expression has one of the specified compiler properties. This method must only be called at compile time. It is invoked to test properties of sub-expressions. It returnstrueif at least flag matches an expression. -
inlineable
Description copied from class:ExprChecks if inlining is possible. This function is called byInlineContext.inlineable(org.basex.query.expr.Expr...)and:CNode.inlineable(org.basex.query.InlineContext)returns false if the new expression construct new nodes. The following tests might reject inlining if the expression is a context reference:- Specified by:
inlineablein classExpr- Parameters:
v- inlining context- Returns:
- result of check
-
count
Description copied from class:ExprChecks how often a variable or context reference is used in this expression. This function is called by:-
Closure.optimize(org.basex.query.CompileContext) -
GFLWOR.inlineForLet(org.basex.query.CompileContext) -
GFLWOR.optimizePos(org.basex.query.CompileContext) -
GFLWOR.simplify(org.basex.query.CompileContext) -
GFLWOR.unusedVars(org.basex.query.CompileContext) -
SimpleMap.optimize(org.basex.query.CompileContext) -
TypeswitchGroup.optimize(org.basex.query.CompileContext)
-
-
inline
Description copied from class:ExprInlines an expression into this one, replacing all variable or context references. This function is called byInlineContext.inline(Expr)(see invocations of this functions for further inlinings). The variable reference is replaced in: The context is replaced in:- Specified by:
inlinein classClause- Parameters:
ic- inlining context- Returns:
- resulting expression if something has changed,
nullotherwise - Throws:
QueryException- query exception
-
checkUp
Description copied from class:ExprChecks if the updating semantics are satisfied. This function is only called if any updating expression was found in the query.- Specified by:
checkUpin classExpr- Throws:
QueryException- query exception
-
exprSize
public final int exprSize()Description copied from class:ExprCounts the number of expressions in this expression's sub-tree. This method is e.g. called byStaticFunc.inline(org.basex.query.expr.Expr[], org.basex.query.CompileContext)to check if an expression is small enough to be inlined. -
equals
Description copied from class:ExprThis function is e.g. called by:If.optimize(CompileContext),Switch.optimize(CompileContext),Typeswitch.optimize(CompileContext), in order to discard identical expressions.CmpR.mergeEbv(Expr, boolean, CompileContext)orCmpSR.mergeEbv(Expr, boolean, CompileContext), in order to merge expressions with identical input.CmpG.optimize(CompileContext)orCmpV.optimize(CompileContext), in order to pre-evaluate equality tests.CmpG.optimize(CompileContext)orPos.get(Expr, CmpV.OpV, InputInfo, CompileContext), in order to compare the start and end value.PathCache, in order to find identical root values at runtime.
-