# Package com.saxonica.bytecode

This package and its subpackages contain code responsible for bytecode generation under Saxon-EE.

See: Description

- Class Summary
  Class | Description
  --- | ---
  AdjacentTextNodeMergerCompiler | Generate byte code for an adjacent text node merger expression
  AnalyzeStringCompiler | Generate bytecode for a call to the xsl:analyze-string expression.
  AndExpressionCompiler | Generate bytecode for a call to the And expression
  ApplyImportsCompiler | Compiler for the XSLT apply-imports instruction
  ApplyTemplatesCompiler | Compiler for the XSLT apply-templates instruction
  ArithmeticCompiler | Generate bytecode for a call to the ArithmeticExpression
  AtomicSequenceConverterCompiler | Generate bytecode for an AtomicSequenceConverter or UntypedSequenceConverter expression, performing run-time type checking
  AtomizerCompiler | Generate code for Atomizer
  AxisExpressionCompiler | Generate bytecode for evaluation of an AxisExpression
  BaseURICompiler | Generate bytecode for evaluation of a call to the BaseURI function
  BlockCompiler | Generate bytecode for a call to a Block expression.
  BooleanFnCompiler | Compile the fn:boolean() function to Java bytecode
  BreakInstrCompiler | Compiler for xsl:break within xsl:iterate (XSLT 3.0)
  CalculatorCompiler | This class generates bytecode for arithmetic expressions; it acts as a helper class to the ArithmeticCompiler class.
  CalculatorCompiler.AnyDivAny | Arithmetic: anyAtomicType div AnyAtomicType
  CalculatorCompiler.AnyIdivAny | Arithmetic: anyAtomicType idiv AnyAtomicType
  CalculatorCompiler.AnyMinusAny | Arithmetic: anyAtomicType - AnyAtomicType
  CalculatorCompiler.AnyModAny |
  CalculatorCompiler.AnyPlusAny | Arithmetic: anyAtomicType + AnyAtomicType
  CalculatorCompiler.AnyTimesAny | Arithmetic: anyAtomicType * AnyAtomicType
  CalculatorCompiler.DecimalDivDecimal | Arithmetic: decimal / decimal (including types that promote to decimal, that is, integer)
  CalculatorCompiler.DecimalIdivDecimal | Arithmetic: decimal % decimal (including types that promote to decimal, that is, integer)
  CalculatorCompiler.DecimalMinusDecimal | Arithmetic: decimal - decimal (including types that promote to decimal, that is, integer)
  CalculatorCompiler.DecimalModDecimal | Arithmetic: decimal % decimal (including types that promote to decimal, that is, integer)
  CalculatorCompiler.DecimalPlusDecimal | Arithmetic: decimal + decimal (including types that promote to decimal, that is, integer)
  CalculatorCompiler.DecimalTimesDecimal | Arithmetic: decimal * decimal (including types that promote to decimal, that is, integer)
  CalculatorCompiler.DoubleDivDouble | Arithmetic: double / double (including types that promote to double)
  CalculatorCompiler.DoubleMinusDouble | Arithmetic: double - double (including types that promote to double)
  CalculatorCompiler.DoubleModDouble | Arithmetic: double % double (including types that promote to double)
  CalculatorCompiler.DoublePlusDouble | Arithmetic: double + double (including types that promote to double)
  CalculatorCompiler.DoubleTimesDouble | Arithmetic: double * double (including types that promote to double)
  CalculatorCompiler.FloatDivFloat | Arithmetic: float div float (including types that promote to float)
  CalculatorCompiler.FloatIdivFloat | Arithmetic: float idiv float (including types that promote to float)
  CalculatorCompiler.FloatMinusFloat | Arithmetic: float - float (including types that promote to float)
  CalculatorCompiler.FloatModFloat | Arithmetic: float mod float (including types that promote to float)
  CalculatorCompiler.FloatPlusFloat | Arithmetic: float + float (including types that promote to float))
  CalculatorCompiler.FloatTimesFloat | Arithmetic: float * float (including types that promote to float)
  CalculatorCompiler.IntegerDivInteger |
  CalculatorCompiler.IntegerIdivInteger |
  CalculatorCompiler.IntegerMinusInteger |
  CalculatorCompiler.IntegerModInteger |
  CalculatorCompiler.IntegerPlusInteger |
  CalculatorCompiler.IntegerTimesInteger |
  CallableExpressionCompiler | Compiler for a CallableExpression.
  CallTemplateCompiler | Compiler for the XSLT apply-templates instruction
  CardinalityCheckerCompiler |
  CastableExpressionCompiler | Generate bytecode for evaluation of a CastableExpression
  CastableToListCompiler | Generate bytecode for evaluation of a CastableToList
  CastableToUnionCompiler | Generate bytecode for evaluation of a CastableToUnion
  CastExpressionCompiler | Generate code for a CastExpression
  CastToListCompiler | Generate code for a CastToList
  CastToUnionCompiler | Generate code for a CastToUnion
  ChooseCompiler | Generate code for a conditional expression (if-then-else, xsl:if, xsl:choose, typeswitch...)
  CodepointsToStringCompiler | Generate bytecode for evaluation of a CodepointstoString function
  CommentCompiler | Generate bytecode for the Comment Instruction
  CompareToIntegerConstantCompiler | Generate code for a CompareToIntegerConstant
  CompiledExpression | An expression that has been compiled to Java bytecode.
  ComponentCompiler | Generate bytecode for evaluation of functions such as day-from-date, seconds-from-duration, namespace-uri=from-QName
  ComputedAttributeCompiler | Generate bytecode for a computed attribute constructor
  ComputedElementCompiler | Generate bytecode for a computed element constructor (or xsl:element in XSLT)
  ConcatCompiler | Generate bytecode for evaluation of a Concat function
  ConditionalSorterCompiler | Generate bytecode for evaluation of a ConditionalSorterCompiler
  ContainsCompiler | Generate bytecode for a call on fn:contains
  ContextItemCompiler | Generate code for a context item expression (that is, "."), and also for an XSLT CurrentItemExpression (current()), which differs only in the error code it returns
  CopyCompiler | Generate bytecode for an xsl:copy instruction
  CopyOfCompiler | Generate bytecode for an xsl:copy-of instruction
  CountCompiler | Generate bytecode for a call to the count() function
  DateTimeConstructorCompiler | Compile the fn:dateTime() function to Java bytecode
  DocCompiler | Generate bytecode to evaluate a Doc function
  DocumentInstrCompiler | Generate bytecode for the xsl:document instruction in XSLT or the document-node{} constructor in XQuery
  DocumentSorterCompiler | Generate bytecode for a call to the DocumentSorter
  ElementCreatorCompiler | Generate bytecode.
  EmptyCompiler | Generate bytecode for the fn:empty() function
  EmptyTextNodeRemoverCompiler | Generate code for EmptyTextNodeRemover expression
  EquivalenceComparisonCompiler | Generate bytecode for an equivalence expression, which is the equality test used in an XQuery 3.0 switch expression
  ErrorExpressionCompiler | Generate bytecode for an error expression (an expression that throws a dynamic error if evaluated)
  ExistsCompiler | Generate bytecode for a call to the exists() function
  ExpressionCompiler | This abstract class represents the compiler (that is, Java bytecode generator) for a particular kind of expression on the expression tree.
  FilterExpressionCompiler | Generate bytecode to evaluate a filter expression
  FirstItemExpressionCompiler | Generate code for the FirstItemExpression
  FixedAttributeCompiler | Generate bytecode for a fixed attribute constructor
  FixedElementCompiler | Generate bytecode for a fixed element constructor (or XSLT literal result element)
  FLWORExpressionCompiler | Generate bytecode for a call to the FLWORExpression
  ForceCaseCompiler | Generate bytecode for evaluation of a call to the upper-case() and lower-case functions
  ForEachGroupCompiler | Bytecode generator for the xsl:for-each-group class
  ForExpressionCompiler | Generate bytecode for a call to the ForExpression()
  FunctionItemExpressionCompiler | Generate bytecode for a call to the FunctionItemExpression
  FunctionSequenceCoercerCompiler | Generate bytecode to evaluate a FunctionSequenceCoercer function
  GeneralComparisonCompiler | Generate code for a GeneralComparison
  GeneratedCode | This abstract class is extended by the compiled code representing an Expression.
  GenerateIdCompiler | Generate bytecode for evaluation of a generate-id() function
  HomogeneityCheckerCompiler |
  IdentityComparisonCompiler | Generate bytecode for IdentityComparison expression
  IndexedFilterExpressionCompiler |
  IndexedLookupExpressionCompiler | Compiler for an index lookup expression, which is generated by the optimizer for certain kinds of filter expression
  InstanceOfCompiler | Generate bytecode for a call to the "instance of" expression
  IntegerRangeTestCompiler | Generate bytecode for an expression of the form ($I = $J to $K)
  InterpretedExpressionCompiler | Bytecode generator for instructions that calls back to the interpreter.
  IsLastExpressionCompiler | Generate bytecode for the IsLastExpression, which tests whether position() is equal to last()
  IsWholeNumberCompiler | Bytecode generator for the saxon:item-at() function
  ItemCheckerCompiler | Generate bytecode for an ItemChecker expression, performing run-time type checking
  IterateInstrCompiler | Bytecode generator for the xsl:iterate instruction
  JavaExtensionFunctionCallCompiler | Compiles a call to an old-style "reflexive" Java extension function.
  KeyFnCompiler | Generate bytecode for a call to the KeyFnExpression()
  LastCompiler | Generate code for a call to last()
  LastItemExpressionCompiler | Generate bytecode for a call to the LastItemExpression()
  LetExpressionCompiler | Generate bytecode for evaluation of an LetExpression
  LiteralCompiler | Generate byte code for a literal expression in the expression tree
  LocalNameFnCompiler | Generate bytecode for evaluation of the local-name() function
  LocalParamBlockCompiler | Compiler for LocalParam instructions in XSLT (representing an xsl:param in a template)
  LocalParamCompiler | Compiler for LocalParam instructions in XSLT (representing an xsl:param in a template)
  LocalVariableReferenceCompiler | Generate code for a LocalVariableReference
  MatchesCompiler | Generate code for the fn:matches function
  MinimaxCompiler | Generate code for a Minimax
  NameFnCompiler | Generate bytecode for evaluation of the name() function
  NamespaceConstructorCompiler | Generate bytecode for the xsl:namespace Instruction
  NamespaceUriFnCompiler | Generate bytecode for evaluation of a namespace-uri() function
  NegateExpressionCompiler | Generate bytecode for evaluation of a call to the substring() function
  NextIterationCompiler | Compiler for xsl:next-iteration within xsl:iterate (XSLT 3.0)
  NextMatchCompiler | Compiler for the XSLT next-match instruction
  NodeNameFnCompiler | Generate bytecode for evaluation of the node-name() function
  NormalizeSpaceCompiler | Generate bytecode for evaluation of a call to the normalize-space() function
  NotFnCompiler | Generate bytecode for the fn:not() function
  NumberFnCompiler | Compile the fn:number() function to Java bytecode
  OrExpressionCompiler | Generate bytecode for an Or expression
  OuterForExpressionCompiler | Generate bytecode for a call to the OuterForExpression()
  ParentNodeExpressionCompiler |
  PartialApplyCompiler | Generate bytecode for a call to a PartialApply expression
  PositionCompiler | Generate code for a call to position()
  ProcessingInstructionCompiler |
  ProcessRegexMatchInstructionCompiler |
  QNameFnCompiler | Generate bytecode for a call to fn:QName
  QuantifiedExpressionCompiler | Compile the QuantifiedExpression to Java bytecode
  RangeExpressionCompiler | Generate bytecode for an integer range expression (X to Y)
  RegexGroupCompiler | Generate bytecode for the XSLT regex-group() function
  ResultDocumentCompiler | Generate bytecode for the xsl:result-document instruction
  RootExpressionCompiler | Generate bytecode for a call to the RootExpression()
  RootFunctionCompiler |
  RoundingCompiler | Compiler for the functions floor(), ceiling(), round(), round-half-to-even(), and abs()
  SimpleNodeConstructorCompiler |
  SimpleStepExpressionCompiler | Generate bytecode for a call to the SimpleStepExpression, which is a SlashExpression in which the lhs operand is known to return a singleton and the rhs operand is known to be an AxisExpression
  SingletonAtomizerCompiler | Generate code for a SingletonAtomizer.
  SingletonIntersectExpressionCompiler | Bytecode generation for an expression of the form (A intersect B) where A is a singleton
  SlashExpressionCompiler | Generate bytecode for a call to a SlashExpression or an xsl:for-each instruction (These have the same run-time semantics)
  SortExpressionCompiler |
  StartsWithCompiler | Generate bytecode for a call on fn:starts-with or fn:ends-with
  StringFnCompiler | Generate bytecode for evaluation of a call to the string() function
  StringJoinCompiler |
  StringLengthCompiler | Generate bytecode for a call to the StringLength Function
  SubscriptExpressionCompiler | Bytecode generator for the saxon:item-at() function
  SubstringAfterCompiler | Generate bytecode for evaluation of a call to the substring-after() function
  SubstringBeforeCompiler | Generate bytecode for evaluation of a call to the substring-before() function
  SubstringCompiler | Generate bytecode for evaluation of a call to the substring() function
  SumCompiler | Generate bytecode for the sum function
  SuppliedParameterReferenceCompiler | Compiler for LocalParam instructions in XSLT (representing an xsl:param in a template)
  SwitchExpressionCompiler | compiler for switch expression in XQuery 3.0, whether explicitly written as such, or the result of optimizing an xsl:choose or a sequence of if/then/elseif/then expressions
  TailCallLoopCompiler |
  TailExpressionCompiler | Generate bytecode for evaluation of a TailExpression
  ToBooleanCompiler | Abstract superclass for expression compilers that handle boolean expressions, that is, expressions that return a boolean result.
  ToItemCompiler | Abstract superclass for expression compilers that handle expressions returning a single item (or nothing).
  ToIteratorCompiler | Abstract superclass for expression compilers of expressions that return a general sequence.
  ToPushCompiler |
  ToStringCompiler | Generate bytecode for evaluation of expressions that return a single string (or an empty sequence)
  TraceExpressionCompiler |
  TranslateCompiler | Generate bytecode for evaluation of a call to the translate() function
  TryCatchExpressionCompiler | Generate bytecode for a call to a TryCatch Expression
  TupleExpressionCompiler |
  UseAttributeSetsCompiler | Generate bytecode for the XSLT use-attribute-sets pseudo-instruction.
  UserFunctionCallCompiler | Generate bytecode for evaluation of an UserFunctionCall
  ValueComparisonCompiler | Generate code for a ValueComparison
  ValueOfCompiler | Generate code for a ValueOf instruction
  VariableReferenceCompiler | Generate bytecode for evaluation of a VariableReference
  VennExpressionCompiler |

## Package com.saxonica.bytecode Description

This package and its subpackages contain code responsible for bytecode generation under Saxon-EE.

The parent package contains one "Compiler" class for each expression class needing to be compiled. The association between the expression class (representing the node on the expression tree) and the associated compiler class is established by the class `com.saxonica.bytecode.util.CompilerClassMapper`.

Michael H. Kay
Saxonica Limited
28 November 2011

Copyright (c) 2004-2013 Saxonica Limited. All rights reserved.