f858abb16768806239fd7da1faeec86d33dcc5f1
1 /********************************************************************
3 classgen.h - methods for creating the .class binary file
5 Niksa Orlic, 2004-05-16
7 ********************************************************************/
10 void create_record_class(type
*record_type
);
12 void create_class_file_header(FILE *class_file
);
13 void write_record_constant_pool(FILE *class_file
, type
*record
);
14 void create_record_fields(type
*record
);
15 void write_record_fields(FILE *class_file
, type
*record
);
16 void write_constant_pool_class(FILE *class_file
, char *class_name
);
17 void write_constant_pool_utf8(FILE *class_file
, char *string
);
18 void write_constant_pool_fieldref(FILE *class_file
, int type_index
, int name_index
);
19 void write_constant_pool_methodref(FILE *class_file
, int, int, int);
20 void get_field_descriptor(type
*field_type
, char *descriptor
);
21 void write_short_int(FILE *class_file
, short int num
);
22 void write_long_int(FILE *class_file
, long int num
);
24 short int read_short_int(FILE *class_file
);
25 long int read_long_int(FILE *class_file
);
27 void create_init_method(type
*record
, bytecode
*);
28 void write_init_method(FILE *class_file
, bytecode
*);
29 void create_copy_method(type
*record
, bytecode
*);
30 void write_copy_method(type
* record
, FILE *class_file
, bytecode
*);
31 void initialize_record_variable(bytecode
*code
, type
*variable_type
, int fieldref_index
, int index
);