-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmacros.c
129 lines (123 loc) · 3.84 KB
/
macros.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
/*!
\file macros.c
\brief Implementação das funções que manipulam as macros utilizadas pela JVM.
Este arquivo contém as implementações das funções necessárias para manipulação.
\author Alisson Carvalho 12/0072521
\author Ana Carolina Lopes 11/0107578
\author Géssica Neves Sodré da Silva 11/0146115
\author Ivan Sena 10/0088031
\author Laís Mendes Gonçalves 11/0033647
*/
#include "macros.h"
void exibir_access_flag_class(u2 flag){
fprintf(arquivo_saida, "0x%04x [", flag);
while(flag != 0){
if(flag >= ACC_ABSTRACT){
flag -= ACC_ABSTRACT;
fprintf(arquivo_saida, " abstract");
}else if( flag >= ACC_INTERFACE){
flag -= ACC_INTERFACE;
fprintf(arquivo_saida, " interface");
}else if(flag >= ACC_SUPER) {
flag -= ACC_SUPER;
fprintf(arquivo_saida, " super");
}else if (flag >= ACC_FINAL) {
flag -= ACC_FINAL;
fprintf(arquivo_saida, " final");
}else if (flag >= ACC_PUBLIC) {
flag -= ACC_PUBLIC;
fprintf(arquivo_saida, " public");
}
}
fprintf(arquivo_saida, " ]");
}
void exibir_access_flag_field(u2 flag){
fprintf(arquivo_saida, "\n0x%04x [", flag);
while(flag != 0){
if(flag >= ACC_TRANSIENT){
flag -= ACC_TRANSIENT;
fprintf(arquivo_saida, " transient");
}else if( flag >= ACC_VOLATILE){
flag -= ACC_VOLATILE;
fprintf(arquivo_saida, " volatile");
}else if(flag >= ACC_FINAL) {
flag -= ACC_FINAL;
fprintf(arquivo_saida, " final");
}else if (flag >= ACC_STATIC) {
flag -= ACC_STATIC;
fprintf(arquivo_saida, " static");
}else if (flag >= ACC_PROTECTED) {
flag -= ACC_PROTECTED;
fprintf(arquivo_saida, " protected");
}else if (flag >= ACC_PRIVATE) {
flag -= ACC_PRIVATE;
fprintf(arquivo_saida, " private");
}else if (flag >= ACC_PUBLIC) {
flag -= ACC_PUBLIC;
fprintf(arquivo_saida, " public");
}
}
fprintf(arquivo_saida, " ]");
}
void exibir_access_flag_method(u2 flag){
fprintf(arquivo_saida, "\n0x%04x [", flag);
while(flag != 0){
if(flag >= ACC_STRICT){
flag -= ACC_STRICT;
fprintf(arquivo_saida, " strictfp");
}else if( flag >= ACC_ABSTRACT){
flag -= ACC_ABSTRACT;
fprintf(arquivo_saida, " abstract");
}else if(flag >= ACC_NATIVE) {
flag -= ACC_NATIVE;
fprintf(arquivo_saida, " native");
}else if (flag >= ACC_SYNCHRONIZED) {
flag -= ACC_SYNCHRONIZED;
fprintf(arquivo_saida, " synchronized");
}else if (flag >= ACC_FINAL) {
flag -= ACC_FINAL;
fprintf(arquivo_saida, " final");
}else if (flag >= ACC_STATIC) {
flag -= ACC_STATIC;
fprintf(arquivo_saida, " static");
}else if (flag >= ACC_PROTECTED) {
flag -= ACC_PROTECTED;
fprintf(arquivo_saida, " protected");
} else if (flag >= ACC_PRIVATE){
flag -= ACC_PRIVATE;
fprintf(arquivo_saida, " private");
} else if (flag >= ACC_PUBLIC){
flag -= ACC_PUBLIC;
fprintf(arquivo_saida, " public");
}
}
fprintf(arquivo_saida, " ]");
}
void exibir_access_flag_inner_class(u2 flag){
fprintf(arquivo_saida, "\n0x%04x [", flag);
while(flag != 0){
if(flag >= ACC_ABSTRACT){
flag -= ACC_ABSTRACT;
fprintf(arquivo_saida, " abstract");
}else if( flag >= ACC_INTERFACE){
flag -= ACC_INTERFACE;
fprintf(arquivo_saida, " interface");
}else if(flag >= ACC_FINAL) {
flag -= ACC_FINAL;
fprintf(arquivo_saida, " final");
}else if (flag >= ACC_STATIC) {
flag -= ACC_STATIC;
fprintf(arquivo_saida, " static");
}else if (flag >= ACC_PROTECTED) {
flag -= ACC_PROTECTED;
fprintf(arquivo_saida, " protected");
}else if (flag >= ACC_PRIVATE) {
flag -= ACC_PRIVATE;
fprintf(arquivo_saida, " private");
}else if (flag >= ACC_PUBLIC) {
flag -= ACC_PUBLIC;
fprintf(arquivo_saida, " public");
}
}
fprintf(arquivo_saida, " ]");
}