# Package com.saxonica.ee.bytecode

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.

User applications will never need to interact with these classes directly.

- Class Summary
  Class | Description
  --- | ---
  AccessorFnCompiler | Generate bytecode for evaluation of accessor functions such as day-from-date, seconds-from-duration, namespace-uri=from-QName
  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
  AttributeGetterCompiler | Generate bytecode for evaluation of an AxisExpression
  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)
  ByteCodeCandidate | A ByteCodeCandidate is an expression on the expression tree which, if evaluated, returns the value of its single operand.
  ByteCodeMonitor | Class to accumulate statistics on the effectiveness of byte code generation.
  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
  CastExpressionCompiler | Generate code for a CastExpression
  ChooseCompiler | Generate code for a conditional expression (if-then-else, xsl:if, xsl:choose, typeswitch...)
  CommentCompiler | Generate bytecode for the Comment Instruction
  CompareToIntegerConstantCompiler | Generate code for a CompareToIntegerConstant
  CompareToStringConstantCompiler | Generate code for a CompareToStringConstant
  CompiledExpression | An expression that has been compiled to Java bytecode.
  CompiledExpressionCompiler | Compiler for a CompiledExpression.
  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 where the collation is known statically
  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
  CountCompiler | Generate bytecode for a call to the count() function
  DateTimeConstructorCompiler | Compile the fn:dateTime() function to Java bytecode
  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()
  FunctionLiteralCompiler | Generate bytecode for a call to a FunctionLiteral
  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 |
  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()
  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.
  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
  LocalNameCompiler | Generate bytecode for evaluation of functions such as name() and local-name() which return a string property of a node
  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
  NameCompiler | Generate bytecode for evaluation of functions such as name() and local-name() which return a string property of a node
  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
  NodePropertyCompiler | Generate bytecode for evaluation of functions such as name() and local-name() which return a string property of a node
  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()
  PartialApplyCompiler | Generate bytecode for a call to a PartialApply expression
  PositionCompiler | Generate code for a call to position()
  ProcessingInstructionCompiler |
  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)
  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 |
  SquareArrayConstructorCompiler | Generate bytecode for an SquareArrayConstructor expression.
  StartsWithCompiler | Generate bytecode for a call on fn:starts-with or fn:ends-with, with a statically known collation
  StaticFunctionCallCompiler | Compiler for a static function call.
  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
  UseAttributeSetCompiler | 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 |