-
Notifications
You must be signed in to change notification settings - Fork 5
/
kind.go
125 lines (119 loc) · 2.41 KB
/
kind.go
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
package udwGoParser
import "strconv"
type Kind uint
const (
Invalid Kind = 0
Bool Kind = 1
Int Kind = 2
Int8 Kind = 3
Int16 Kind = 4
Int32 Kind = 5
Int64 Kind = 6
Uint Kind = 7
Uint8 Kind = 8
Uint16 Kind = 9
Uint32 Kind = 10
Uint64 Kind = 11
Uintptr Kind = 12
Float32 Kind = 13
Float64 Kind = 14
Complex64 Kind = 15
Complex128 Kind = 16
Array Kind = 17
Chan Kind = 18
Func Kind = 19
Interface Kind = 20
Map Kind = 21
Ptr Kind = 22
Slice Kind = 23
String Kind = 24
Struct Kind = 25
UnsafePointer Kind = 26
Method Kind = 27
Named Kind = 28
DefinedFunc Kind = 29
)
func (k Kind) String() string {
if int(k) < len(kindNames) {
return kindNames[k]
}
return "kind" + strconv.Itoa(int(k))
}
var kindNames = []string{
Invalid: "invalid",
Bool: "bool",
Int: "int",
Int8: "int8",
Int16: "int16",
Int32: "int32",
Int64: "int64",
Uint: "uint",
Uint8: "uint8",
Uint16: "uint16",
Uint32: "uint32",
Uint64: "uint64",
Uintptr: "uintptr",
Float32: "float32",
Float64: "float64",
Complex64: "complex64",
Complex128: "complex128",
Array: "array",
Chan: "chan",
Func: "func",
Interface: "interface",
Map: "map",
Ptr: "ptr",
Slice: "slice",
String: "string",
Struct: "struct",
UnsafePointer: "unsafe.Pointer",
Method: "method",
Named: "Named",
DefinedFunc: "DefinedFunc",
}
func getKindFromBuiltinType(typ string) Kind {
switch typ {
case "bool":
return Bool
case "byte":
return Uint8
case "complex128":
return Complex128
case "complex64":
return Complex64
case "error":
return Interface
case "float32":
return Float32
case "float64":
return Float64
case "int":
return Int
case "int16":
return Int16
case "int32":
return Int32
case "int64":
return Int64
case "int8":
return Int8
case "rune":
return Int32
case "string":
return String
case "uint":
return Uint
case "uint16":
return Uint16
case "uint32":
return Uint32
case "uint64":
return Uint64
case "uint8":
return Uint8
case "uintptr":
return Uintptr
default:
return Invalid
}
}