-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathVariableType.java
More file actions
52 lines (48 loc) · 1.54 KB
/
VariableType.java
File metadata and controls
52 lines (48 loc) · 1.54 KB
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
public enum VariableType {
SIGNED_CHAR, UNSIGNED_CHAR,
SIGNED_SHORT, UNSIGNED_SHORT,
SIGNED_INT, UNSIGNED_INT,
SIGNED_LONG, UNSIGNED_LONG,
STRING;
public static VariableType convertFromAnalysis(String in) {
if (!in.contains("unsigned")) {
if (in.contains("char")) return SIGNED_CHAR;
if (in.contains("int")) {
if (!in.contains("long")) {
if (!in.contains("short")) return SIGNED_INT;
return SIGNED_SHORT;
}
return SIGNED_LONG;
}
if (in.contains("long")) return SIGNED_LONG;
if (in.contains("short")) return SIGNED_SHORT;
}
else {
if (in.contains("char")) return UNSIGNED_CHAR;
if (in.contains("int")) {
if (!in.contains("long")) {
if (!in.contains("short")) return UNSIGNED_INT;
return UNSIGNED_SHORT;
}
return UNSIGNED_LONG;
}
if (in.contains("long")) return UNSIGNED_LONG;
if (in.contains("short")) return UNSIGNED_SHORT;
}
return STRING;
}
public static String toString(VariableType type) {
switch (type) {
case SIGNED_CHAR: return "signed char";
case UNSIGNED_CHAR: return "unsigned char";
case SIGNED_SHORT: return "signed short";
case UNSIGNED_SHORT: return "unsigned short";
case SIGNED_INT: return "signed int";
case UNSIGNED_INT: return "unsigned int";
case SIGNED_LONG: return "signed long";
case UNSIGNED_LONG: return "unsigned long";
case STRING: return "string";
default: return "invalid";
}
}
}