typedef struct CPInfo_ { unsigned char tag; unsigned char *info;} CPInfo;typedef struct AttributeInfo_ { unsigned short attributeNameIndex; unsigned int attributeLength; unsigned char *info;} AttributeInfo;typedef struct MethodInfo_ { unsigned short accessFlags; unsigned short nameIndex; unsigned short descriptorIndex; unsigned short attributeCount; AttributeInfo *attributes;} MethodInfo;typedef struct FieldInfo_ { unsigned short accessFlags; unsigned short nameIndex; unsigned short descriptorIndex; unsigned short attributesCount; AttributeInfo *attributes;} FieldInfo;typedef struct JavaClassFile_ { unsigned int magic; unsigned short minorVersion; unsigned short majorVersion; unsigned short cpCount; CPInfo *constantPool; unsigned short accessFlags; unsigned short thisClass; unsigned short superClass; unsigned short interfacesCount; unsigned short *interfaces; unsigned short fieldsCount; FieldInfo *fields; unsigned short methodsCount; MethodInfo *methods; unsigned short attributesCount; AttributeInfo attributes;} JavaClassFile;