public final class TypeCase extends Single
Constructor and Description |
---|
TypeCase(InputInfo info,
Var var,
SeqType[] types,
Expr expr)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
boolean |
accept(ASTVisitor visitor)
Traverses this expression, notifying the visitor of declared and used variables,
and checking the tree for other recursive properties.
|
TypeCase |
compile(QueryContext qc,
VarScope scp)
Compiles and optimizes the expression, assigns types and cardinalities.
|
TypeCase |
copy(QueryContext qc,
VarScope scp,
IntObjMap<Var> vs)
Copies an expression.
|
int |
exprSize()
Counts the number of expressions in this expression's sub-tree.
|
Expr |
inline(QueryContext qc,
VarScope scp,
Var v,
Expr ex)
Inlines an expression into this one, replacing all references to the given variable.
|
void |
markTailCalls(QueryContext qc)
Finds and marks tail calls, enabling TCO.
|
TypeCase |
optimize(QueryContext qc,
VarScope scp)
Optimizes an already compiled expression without recompiling its sub-expressions.
|
void |
plan(FElem plan)
Creates an expression tree.
|
String |
toString() |
atomItem, atomValue, checkAtomic, checkNoEmpty, checkNoEmpty, checkNoneUp, checkNoUp, checkType, compBln, copyType, ctxValue, ebv, item, iter, optPre, optPre, preEval, seqType, seqType, size, test, toArray, toArray, toAtomItem, toB64, toB64, toBin, toBin, toBoolean, toBoolean, toBytes, toBytes, toDouble, toDouble, toElem, toEmptyNode, toEmptyToken, toFloat, toFunc, toItem, toLong, toLong, toMap, toMap, toNode, toNode, toNumber, toQNm, toQNm, toToken, toToken, value
atomIter, data, hasFreeVars, indexAccessible, inlineAll, isEmpty, isFunction, isVacuous, isValue, iterable, optimizeEbv, sameAs, typeCheck, uses, visitAll
addPlan, addPlan, description, planAttr, planElem, toErrorString
public TypeCase compile(QueryContext qc, VarScope scp) throws QueryException
Expr
QueryContext.compile()
.compile
in class Single
qc
- query contextscp
- variable scopeQueryException
- query exceptionpublic TypeCase optimize(QueryContext qc, VarScope scp)
Expr
public Expr inline(QueryContext qc, VarScope scp, Var v, Expr ex)
Expr
GFLWOR.inlineLets(org.basex.query.QueryContext, org.basex.query.var.VarScope)
and For.toPredicate(org.basex.query.QueryContext, org.basex.query.var.VarScope, org.basex.query.expr.Expr)
,
and the variable reference is replaced in VarRef.inline(org.basex.query.QueryContext, org.basex.query.var.VarScope, org.basex.query.var.Var, org.basex.query.expr.Expr)
.public TypeCase copy(QueryContext qc, VarScope scp, IntObjMap<Var> vs)
Expr
public void plan(FElem plan)
ExprInfo
public void markTailCalls(QueryContext qc)
Expr
markTailCalls
in class Expr
qc
- query context, null
if the changes should not be reportedpublic boolean accept(ASTVisitor visitor)
Expr
public int exprSize()
Expr
StaticFunc.inline(org.basex.query.QueryContext, org.basex.query.util.list.AnnList, org.basex.query.expr.Expr)
to check if an expression
is small enough to be inlined.Copyright © 2005–2015 BaseX Team. All rights reserved.