Package org.openjdk.asmtools.jasm
package org.openjdk.asmtools.jasm
-
ClassDescriptionJVMS 4.7.16.AnnotationElemValue Used to store Annotation DataAttrDataUtility methods to verify modifiers masks for classes, interfaces, methods and fieldsBase class of the "classes[]" data of attributesClassDataThis 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.ClassFileConstAnnotation Element Type enums Table 4.7.16.1-A.BasicType enumsA (typed) tag (constant) representing the type of Constant in the Constant Pool.SubTag enums4.7.3.ConstantPool is the class responsible for maintaining constants for a given class file.ConstantPool.ConstValue_Cell<T extends ConstValue<?>>CONSTANT_Cell represents CONSTANT_Class(7), CONSTANT_String(8), CONSTANT_MethodType(16), CONSTANT_Module(19), CONSTANT_Package(20) constantsThe CONSTANT_Class(7) structure represents constant objects of the type StringThe CONSTANT_Double(6) represents 8-byte numeric (double) constantsThe 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 fieldCONSTANT_Float(4) structure represents 4-byte numeric (float) constantsCONSTANT_Integer(3) structure represents 4-byte numeric (int) constantsThe CONSTANT_InterfaceMethodref(11) structure is used to represent an interface methodThe 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) constantsConstantPool.ConstValue_MethodHandle<P extends ConstantPool.ConstValue_Pair<ConstantPool.ConstValue_Class,
ConstantPool.ConstValue_NameAndType>> The CONSTANT_MethodHandle(15) structure is used to represent a method handle T : ConstValue_MethodRef, ConstValue_InterfaceMethodRef or ConstValue_FieldRefThe CONSTANT_Methodref(10) structure is used to represent a methodThe CONSTANT_MethodType(16) structure represents a method typeThe CONSTANT_Module(19) structure represents a moduleThe CONSTANT_NameAndType(12) structure is used to represent a field or method, without indicating which class or interface type it belongs toThe CONSTANT_Package(20) structure represents a method typeConstValue_Pair represents CONSTANT_NameAndType(12), CONSTANT_Fieldref(9), CONSTANT_Methodref(10), and CONSTANT_InterfaceMethodref(11) structuresThe CONSTANT_String(8) structure represents a class or an interfaceCONSTANT_UTF8(1) is used to represent constant objects of the type: StringCONSTANT_ZERO: Zero Constant Value presents Constant 0.Writable data could be undefined until Constant Pool is filled inConstCell<V extends ConstValue>ConstantCell is a type of data that can be in a constant pool.ConstValue<T>A (typed) tagged value in the constant pool like ConstCellCPTagVisitor<R>Constant Pool Tag Visitor base class defining a visitor for decoding constants.CPVisitor base class defining a visitor for decoding constants.Constant Pool Index AttributeDataVector<T extends DataWriter>DataVectorAttr<T extends DataWriter>Container for attributes having inline tables: InnerClasses, BootstrapMethods, LineNumberTable, Runtime(In)Visible(Type|Parameter)Annotations, LocalVariableTable, StackMapTableBase contract for writeable structuresDefaultAnnotationAttr Used to represent Default Annotation Attributes4.7.3.field_infoIndexer a position starting from 0 of a constant cell in the Constant Pool.JasmTokens This class contains tokens specific to parsing JASM syntax.Scanner Tokens (Definitive List)4.7.12.4.7.13.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.The common base structure for field_info, method_info, and component_infoMethodData.DataPArrayAttr<T extends DataWriter>Used to store Parameter Arrays (as attributes)The module attributeModuleAttr.MapStruct<T extends ModuleContent.TargetType>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];ModuleAttr.SetStruct<T extends ModuleContent.TargetType>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];Wrapper for Pair class for keeping Name information that is the Constant Pool Index and Corresponding Name.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]; }OpcodeTablesMarker: describes the type of Opcode.Base helper class for a Parser.This class is used to parse Jasm statements and expressions.The main compile error for the parserParserAnnotationAnnotationElemValue - used to store Annotation valuesAnnotation Element value referring to an ArrayAnnotation Element value referring to a classAnnotation Element value referring to a ConstantElement Value for EnumsTarget Type visitor, used for constructing the target-info within a type annotation.ParserCPInstruction Parser ParserInstr is a parser class owned by Parser.java.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 record attribute (JEP 359 since class file 58.65535)A Scanner for Jasm tokens.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.SourceFile_attribute { u2 attribute_name_index; u4 attribute_length; u2 sourcefile_index; }4.7.4.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; }JVMS 4.7.20.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_pathInterpretation 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.)