JVM instructions.
JVM instructions. See JVM documentation for descriptions.
This list does not include all available instructions. To add a new one, just add it as a case class whose name is the instruction name with at least a starting capital letter.
The arguments of the case class should be the instruction operands in the order in which they must appear in an instruction instance.
The stackChange value must be the net change in stack elements when an
instance of this instruction runs. E.g., zero means there is no change,
whereas a stack change of one means that there is one more element on
the operand stack after the instruction has executed than there is
before.
A class file defining a JVM class.
A class file defining a JVM class. source gives the name of the source
file from which this class file comes. name gives the name of the class
that is being defined, and superClass is the name of the super class
of this class. fields and methods define the components of the class.
A JVM array with the given element type.
The Boolean type.
A class type.
A field in the class.
Base class for JVM instructions.
Base class for JVM instructions. stackChange records the number of
elements by which the stack changes after execution of an instruction
of this type. Thus, zero means no change, a positive value means an
increase in stack size, and a negative value means a decrease in stack
size.
The integer type.
A method in the class.
A method specification.
The string type.
Base class for JVM types.
The void type.
A special instruction to mark the position of a label.
A special instruction to mark the position of a label. These will be output symbolically by the compiler but then replaced with offsets by the assembler.
Module containing tree structures for representing JVM programs. Not all features of the JVM are expressible with this representation.