Helper interface MeassageBuilder.
Calls to this class are inserted into the bytecode for debugging purposes
A convenient place to put static methods that will be called from generated byte code
Controlling/service class for compilation of expressions to Java bytecode
Information about the current method whose bytecode is being generated
This class is an extension of the ASM-supplied GeneratorAdapter library, containing additional utility and shortcut methods for bytecode generation
An ASM label object with some control information to enable better diagnostics
LoopBodyGenerator is code to generate the body of a loop, for example of a ForExpression.
Helper class to generate a run-time exception using a message that is present at the top of the bytecode stack
Helper class to build messages in which the value of run-time bytecode variables can be inserted.
Subclass of the ASM Label class that adds a diagnostic name to the label; this enables more intelligible bytecode to be output for diagnostics
The OnEmpty class represents an action to be taken by the bytecode generator when compiling an expression to return a "primitive" (unboxed) value such as a double float int long or String (treated as primitive for this purpose).
The ReturnNull subclass indicates that when an expression evaluates to the empty sequence, the value should be returned as a zero-length string.
The ReturnNull subclass indicates that when an expression evaluates to the empty sequence, the value should be returned as a Java null.
The UnwindAndJump subclass causes the code generator, when an expression evaluates to the empty sequence, to generate a "goto" instruction to a defined label; but before executing the jump, the stack will be unwound to a known position.
Exception indicating that constructs were encountered in the expression tree that cannot be compiled to bytecode
This package contains utility classes supporting the generation of bytecode and the interface with the ASM library. Some of these classes and methods are called by generated bytecode, so the usage of these methods cannot be easily discerned by reading the source code.
Copyright (c) 2004-2020 Saxonica Limited. All rights reserved.