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;