All Classes and Interfaces
Class
Description
JVMS 4.7.16.
AnnotationElemValue
Used to store Annotation Data
Base class of all AnnotationElement entries
Annotation value that is a reference to an annotation.
Base class for an annotation value.
Annotation value that is an array of annotation elements.
Annotation value which is described by a single CPX entries (i.e.
AnnotationValue that contain 2 cpx indices (i.e.
Base class of the "classes/descriptors[]" data of attributes
AttrData
Base class for attributes: SourceFile, NestHost, EnclosingMethod with format:
BootstrapMethods_attribute {
...
Compiles just 1 source file
Utility methods to verify modifiers masks for classes, interfaces, methods and fields
Base class of the "classes[]" data of attributes:
ClassData
Class data of the Java Decoder
Central class data for of the Java Disassembler
This is a wrapper for DataOutputStream, used for debugging purposes.
Container holds 2 pairs of core classes: this_class, super_class, and functionality to get output file name.
ClassFileConst
Annotation Element Type enums
Table 4.7.16.1-A.
BasicType enums
A (typed) tag (constant) representing the type of Constant in the Constant Pool.
SubTag enums
Class File context CF_Context enums
4.7.3.
Code data for a code attribute in method members in a class of the Java Disassembler
This interface defines constant that are used throughout the compiler.
ConstantPool is the class responsible for maintaining constants for a given class file.
Class representing the Constant Pool
CONSTANT_Cell represents CONSTANT_Class(7), CONSTANT_String(8), CONSTANT_MethodType(16),
CONSTANT_Module(19), CONSTANT_Package(20) constants
The CONSTANT_Class(7) structure represents constant objects of the type String
The CONSTANT_Double(6) represents 8-byte numeric (double) constants
The CONSTANT_Dynamic (17) structure is used to represent a dynamically-computed constant, an arbitrary value
that is produced by invocation of a bootstrap method in the course of a ldc instruction, among others.
The CONSTANT_Fieldref(9) structure is used to represent a field
CONSTANT_Float(4) structure represents 4-byte numeric (float) constants
CONSTANT_Integer(3) structure represents 4-byte numeric (int) constants
The CONSTANT_InterfaceMethodref(11) structure is used to represent an interface method
The CONSTANT_InvokeDynamic_info(18) structure is used to represent a dynamically-computed call site, an instance of
java.lang.invoke.CallSite that is produced by invocation of a bootstrap method in the course of an invokedynamic instruction.
The CONSTANT_Long_info(5) represents 8-byte numeric (long) constants
The CONSTANT_MethodHandle(15) structure is used to represent a method handle
T : ConstValue_MethodRef, ConstValue_InterfaceMethodRef or ConstValue_FieldRef
The CONSTANT_Methodref(10) structure is used to represent a method
The CONSTANT_MethodType(16) structure represents a method type
The CONSTANT_Module(19) structure represents a module
The CONSTANT_NameAndType(12) structure is used to represent a field or method, without indicating which class or
interface type it belongs to
The CONSTANT_Package(20) structure represents a method type
ConstValue_Pair represents CONSTANT_NameAndType(12), CONSTANT_Fieldref(9), CONSTANT_Methodref(10), and
CONSTANT_InterfaceMethodref(11) structures
The CONSTANT_String(8) structure represents a class or an interface
CONSTANT_UTF8(1) is used to represent constant objects of the type: String
CONSTANT_ZERO: Zero Constant Value presents Constant 0.
SUBTAG - A Tag descriptor of form method-handle constants
TAG - A Tag descriptor of constants in the constant pool
Writable data could be undefined until Constant Pool is filled in
Writable element of the DataVector u2 vector[elements];
ConstantCell is a type of data that can be in a constant pool.
A (typed) tagged value in the constant pool like ConstCell
Constant Pool Tag Visitor base class defining a visitor for decoding constants.
CPVisitor base class defining a visitor for decoding constants.
Constant Pool Index Attribute
Container for attributes having inline tables:
InnerClasses, BootstrapMethods, LineNumberTable, Runtime(In)Visible(Type|Parameter)Annotations,
LocalVariableTable, StackMapTable
Base contract for writeable structures
DefaultAnnotationAttr
Used to represent Default Annotation Attributes
See JVMS, section 4.4.
This is special case of output - for log and trace outputs form compilation, not for bytecode/sources themselves.
4.7.
The element of the class Container that belongs to the owner M
Attribute location
Table 4.7-C.
4.
EnclosingMethod_attribute {
u2 attribute_name_index;
u4 attribute_length;
u2 class_index;
u2 method_index;
}
If the current class is not immediately enclosed by a method or constructor,
then the value of the method_index item must be zero.
The EnclosingMethod attribute since 45.3
The Environment builder.
A sorted list of error messages
4.7.3.
Exceptions_attribute {
u2 attribute_name_index;
u4 attribute_length;
u2 number_of_exceptions;
u2 exception_index_table[number_of_exceptions];
}
field_info
Field data for field members in a class of the Java Disassembler
FormatError is the generic error thrown by jdis, jdec while parsing a class file.
A concrete implementation of
NamedToolOutput that writes output to a file system.Utility class for Hex strings, bytes manipulations
A class that lazily opens a package-specific resource bundle containing localization
data for a class.
Indexer a position starting from 0 of a constant cell in the Constant Pool.
4.7.6.
instruction attributes
JasmTokens
Scanner Tokens (Definitive List)
Compiles just 1 source file
JcodTokens
Scanner Tokens (Definitive List)
4.7.12.
Represents a single line number data entry within a Line Number Table attribute.
Valhalla:
Valhalla:
LocalTable_attribute {
u2 attribute_name_index;
u4 attribute_length;
u2 local_table_length;
{ u2 start_pc;
u2 length;
u2 name_index;
u2 descriptor/signature_index;
u2 index;
} local_table[local__table_length];
}
Class for entries: local_variable_table[i], local_variable_type_table[i]
4.7.13.
LocalVariableTable_attribute {
u2 attribute_name_index;
u4 attribute_length;
u2 local_variable_table_length;
{ u2 start_pc;
u2 length;
u2 name_index;
u2 descriptor_index;
u2 index;
} local_variable_table[local_variable_table_length];
}
LocalVariableTypeTable_attribute {
u2 attribute_name_index;
u4 attribute_length;
u2 local_variable_type_table_length;
{ u2 start_pc;
u2 length;
u2 name_index;
u2 signature_index;
u2 index;
} local_variable_type_table[local_variable_type_table_length];
}
Jasm is an assembler that accepts a text file based on the JASM Specification,
and produces a .class file for use with a Java Virtual Machine.
Jcoder is an assembler that accepts a text file based on the JCod Specification,
and produces a .class file for use with a Java Virtual Machine.
jdec is a disassembler that accepts a .class file, and prints the plain-text translation of jcod source file
to the standard output.
jdis is a disassembler that accepts a .class file, and prints the plain-text translation of jasm source file
to the standard output.
Wrapper class that reads the first command line argument and invokes a corresponding
tool.
Indicates that the element has a specific printable measurement/size.
The common base structure for field_info, method_info, and component_info
Base class for ClassData, MethodData, FieldData and RecordData(JEP 360)
Method data for method members in a class of the Java Disassembler
Used to store Parameter Arrays (as attributes)
MethodParamData
The module attribute
u2 {exports|opens}_count;
{ u2 {exports|opens}_index;
u2 {exports|opens}_flags;
u2 {exports|opens}_to_count;
u2 {exports|opens}_to_index[{exports|opens}_to_count];
} {exports|opens}[{exports|opens}_count];
or
u2 provides_count;
{ u2 provides_index;
u2 provides_with_count;
u2 provides_with_index[provides_with_count];
} provides[provides_count];
u2 uses_count;
u2 uses_index[uses_count];
or
u2 requires_count;
{ u2 requires_index;
u2 requires_flags;
u2 requires_version_index;
} requires[requires_count];
Internal presentation of a module
The module builder.
The module attribute data.
Historically, the output loggers for compilers had two stderrs, one to stdout and second to stderr.
Wrapper for Pair class for keeping Name information that is the Constant Pool Index and Corresponding Name.
this class provides functionality needed to read class files:
methods to read unsigned integers of various length
counts bytes read so far
The NestHost attribute data
The "classes[]" data of attributes
JEP 181 (Nest-based Access Control): class file 55.0
NestMembers_attribute {
u2 attribute_name_index;
u4 attribute_length;
u2 number_of_classes;
u2 classes[number_of_classes];
}
The NestMembers attribute data
class used to indicate missing functionality
OpcodeTables
Marker: describes the type of Opcode.
The singleton class to share global options among jdis classes.
4.7.18.
ParserAnnotation
AnnotationElemValue - used to store Annotation values
Annotation Element value referring to an Array
Annotation Element value referring to a class
Annotation Element value referring to a Constant
Element Value for Enums
Target Type visitor, used for constructing the target-info within a type
annotation.
Base helper class for a Parser.
ParserCP
Instruction Parser
This class is used to parse Jasm statements and expressions.
The main compile error for the parser
The "classes[]" data of attributes
JEP 360 (Sealed types): class file 59.65535
PermittedSubclasses_attribute {
u2 attribute_name_index;
u4 attribute_length;
u2 number_of_classes;
u2 classes[number_of_classes];
}
The PermittedSubclasses attribute data
Class providing access to the product info.
The record attribute (JEP 359 since class file 58.65535)
The Record attribute data
record_component_info {
u2 name_index;
u2 descriptor_index;
u2 attributes_count;
attribute_info attributes[attributes_count];
}
A Scanner for Jasm tokens.
A Scanner for Jcoder tokens.
See JVMS 4.4.4.
The Signature attribute data since class file 49.0
SourceDebugExtension_attribute {
u2 attribute_name_index;
u4 attribute_length;
u1 debug_extension[attribute_length];
The debug_extension array holds extended debugging information which has no semantic effect on the JVM.
The SourceDebugExtension attribute
SourceFile_attribute {
u2 attribute_name_index;
u4 attribute_length;
u2 sourcefile_index;
}
The SourceFile attribute since 45.3
4.7.4.
StackMap-FrameType table.
MapTypes table.
4.7.4.
Represents one entry of StackMapTable attribute:
verification_type_info:
Top_variable_info, Integer_variable_info, Float_variable_info, Null_variable_info,
UninitializedThis_variable_info, Long_variable_info, Double_variable_info
Common format:
*_info {
u1 tag = ITEM_*; // from 0 to 6
}
verification_type_info:
Object_variable_info, Uninitialized_variable_info
Common Format:
*_info {
u1 tag = ITEM_*; // from 7 to 8
u2 cpool_index/offset;
}
StackMapTable_attribute {
u2 attribute_name_index;
u4 attribute_length;
u2 number_of_entries;
stack_map_frame entries[number_of_entries];
}
Utility class for string operations related to ASM tools.
tableswitch
invalid input: '<'0-3 byte pad>
defaultbyte1
defaultbyte2
defaultbyte3
defaultbyte4
lowbyte1
lowbyte2
lowbyte3
lowbyte4
highbyte1
highbyte2
highbyte3
highbyte4
jump offsets...
SyntaxError is the generic error thrown by jasm, jcoder while parsing either a jasm file or jcod file.
The TableFormatModel class stores and manages attributes that support a tabular (javap-like) format,
which can be switched on using the --table option.
Base class for JasmEnvironment.InputFile and
JcoderEnvironment.InputFile that read the jasm, jcod text files
A container for the java sources tied to an asm output when -sl in on
This class is a generic interface, symbolising any input for jdis/jasm/jdec/jcoder.
This class is a generic interface, symbolizing any output from jdis/jasm/jdec/jcoder.
Exception table entry (JVMS 4.7.3 The Code Attribute) describes one exception handler
in the code array
CodeData.Family of classes used to represent the parsed form of a
Descriptor
or Signature.Represents an array type signature.
Represents a class signature.
Represents a class type signature.
Represents a method type signature.
Represents a type signature with a simple name.
Represents a FormalTypeParameter.
Represents a wildcard type argument.
JVMS 4.7.20.
Type Annotation data is a specific kind of AnnotationData.
TargetInfo (4.7.20.1.
catch_target (4.7.20.1.
empty_target (4.7.20.1.
formal_parameter_target (4.7.20.1.
localvar_target (4.7.20.1.
offset_target (4.7.20.1.
supertype_target (4.7.20.1.
throws_target (4.7.20.1.
type_argument_target (4.7.20.1.
type_parameter_bound_target (4.7.20.1.
type_parameter_target (4.7.20.1.
JVMS 4.7.20.2.
Type annotation types: target_type, target_info and target_path
Interpretation of type_path_kind values (Table 4.7.20.2-A)
union {
type_parameter_target;
supertype_target;
type_parameter_bound_target;
empty_target;
method_formal_parameter_target;
throws_target;
localvar_target;
catch_target;
offset_target;
type_argument_target;
} target_info;
Interpretation of target_type values (Table 4.7.20-A./B.)