https://github.com/Bread-Experts-Group/file_formats_java_class
Author:Apache-2.0 WITH LLVM-exception
Version:7.0.0
Alire CI: Dependencies:No dependents.
Badge:
file_formats_java_class
provides the facilities for reading CLASS files defined
in the Java Virtual Machine Specification,
Java SE 7, CLASS major file version 51,
chapter 4.
ACC_PUBLIC
ACC_FINAL
ACC_SUPER
ACC_INTERFACE
ACC_ABSTRACT
ACC_SYNTHETIC
ACC_ANNOTATION
ACC_ENUM
CONSTANT_Class_info
CONSTANT_Fieldref_info
CONSTANT_Methodref_info
CONSTANT_InterfaceMethodref_info
CONSTANT_String_info
CONSTANT_Integer_info
CONSTANT_Float_info
CONSTANT_Long_info
CONSTANT_Double_info
CONSTANT_NameAndType_info
CONSTANT_Utf8_info
CONSTANT_MethodHandle_info
CONSTANT_MethodType_info
CONSTANT_InvokeDynamic_info
ACC_PUBLIC
ACC_PRIVATE
ACC_PROTECTED
ACC_STATIC
ACC_FINAL
ACC_VOLATILE
ACC_TRANSIENT
ACC_SYNTHETIC
ACC_ENUM
ACC_PUBLIC
ACC_PRIVATE
ACC_PROTECTED
ACC_STATIC
ACC_FINAL
ACC_SYNCHRONIZED
ACC_BRIDGE
ACC_VARARGS
ACC_NATIVE
ACC_ABSTRACT
ACC_STRICT
ACC_SYNTHETIC
ConstantValue
Code
StackMapTable
Exceptions
InnerClasses
EnclosingMethod
Synthetic
Signature
SourceFile
SourceDebugExtension
LineNumberTable
LocalVariableTable
LocalVariableTypeTable
Deprecated
RuntimeVisibleAnnotations
RuntimeInvisibleAnnotations
RuntimeVisibleParameterAnnotations
RuntimeInvisibleParameterAnnotations
AnnotationDefault
BootstrapMethods
Other
- Used for unrecognized/private attributesAll pertinent types and subprograms are available within the package
File_Formats_Java_Class
. Reading Class_File
is done primarily through the Input
aspect,
as shown below.
with Ada.Text_IO;
with File_Formats_Java_Class;
use File_Formats_Java_Class;
procedure Read_Class_File is
F : File_Type;
S : Stream_Access;
begin
Open (F, In_File, "Example.class");
S := Stream (F);
Ada.Text_IO.Put_Line (Class_File'Input (S));
Close (F);
end Read_Class_File;
This crate does not yet define operations for writing to CLASS files, but this is a priority. After writing is complete, this crate will be updated to support CLASS files of Java SE 8+. You are free to report issues and contribute at the crate’s GitHub repository.