com.saxonica.bytecode
Class ElementCreatorCompiler
java.lang.Object
com.saxonica.bytecode.ExpressionCompiler
com.saxonica.bytecode.ToIteratorCompiler
com.saxonica.bytecode.ToPushCompiler
com.saxonica.bytecode.ElementCreatorCompiler
- Direct Known Subclasses:
- ComputedElementCompiler, FixedElementCompiler
public abstract class ElementCreatorCompiler
- extends ToPushCompiler
Generate bytecode. An instruction that creates an element node.
There are two subtypes, FixedElement for use where the name is
known statically, and Element where it is computed
dynamically.
Methods inherited from class com.saxonica.bytecode.ExpressionCompiler |
allocateStatic, compileItemFromInt, compileItemFromString, compileToLoop, compileToPrimitive, generateMethod, getConfiguration, handleEmptyStringResult, setConfiguration, throwXPathException, throwXPathException, unboxItem, verify, visitAnnotation, visitLineNumber |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ElementCreatorCompiler
public ElementCreatorCompiler()
compileToPush
public void compileToPush(CompilerService compiler,
Expression expression)
throws CannotCompileException
- Description copied from class:
ExpressionCompiler
- Generate bytecode to evaluate the expression in push mode
Precondition: none.
Postcondition: at execution time, the stack is unchanged, and the value of the expression has been
written to the current receiver
- Overrides:
compileToPush
in class ToIteratorCompiler
- Parameters:
compiler
- the compiler serviceexpression
- the expression to be compiled
- Throws:
CannotCompileException
outputNamespaceNodes
protected void outputNamespaceNodes(CompilerService compiler,
Expression expression)
- Callback for subclasses to implement: generate code to output namespace nodes
- Parameters:
compiler
- expression
-
pushNodeName
protected abstract void pushNodeName(CompilerService compiler,
Expression expression)
throws CannotCompileException
- Callback from the superclass ElementCreatorCompiler to get the nameCode.
Leaves the name code for the element name on the stack
for the element name
- Parameters:
compiler
- expression
-
- Throws:
CannotCompileException
addTypeStripper
protected static void addTypeStripper(CompilerService compiler)
- Add a filter to the output pipeline that removes type annotations. This method adds a new entry to
the receiver stack, whether it creates a new filter or not.
- Parameters:
compiler
- the compiler service
identifyExpression
public abstract void identifyExpression(CompilerService compiler,
Expression expression,
String evalMode)
Copyright (c) 2004-2011 Saxonica Limited. All rights reserved.