tokens.mx raw
1 package token
2
3 type Token uint32
4
5 const (
6 _ Token = iota
7 EOF
8
9 NameType
10 Literal
11
12 OperatorType
13 AssignOp
14 IncOp
15 Assign
16 Define
17 Arrow
18 Star
19
20 Lparen
21 Lbrack
22 Lbrace
23 Rparen
24 Rbrack
25 Rbrace
26 Comma
27 Semi
28 Colon
29 Dot
30 DotDotDot
31
32 Break
33 Case
34 Chan
35 Const
36 Continue
37 Default
38 Defer
39 Else
40 Fallthrough
41 For
42 Func
43 Go
44 Goto
45 If
46 Import
47 Interface
48 Map
49 Package
50 Range
51 Return
52 Select
53 Struct
54 Switch
55 TypeType
56 Var
57
58 TokenCount
59 )
60
61 const _ uint64 = 1 << (TokenCount - 1)
62
63 type LitKind uint8
64
65 const (
66 IntLit LitKind = iota
67 FloatLit
68 ImagLit
69 RuneLit
70 StringLit
71 )
72
73 type Operator uint32
74
75 const (
76 _ Operator = iota
77
78 Def
79 Not
80 Recv
81 Tilde
82
83 OrOr
84
85 AndAnd
86
87 Eql
88 Neq
89 Lss
90 Leq
91 Gtr
92 Geq
93
94 Add
95 Sub
96 Or
97 Xor
98
99 Mul
100 Div
101 Rem
102 And
103 AndNot
104 Shl
105 Shr
106 )
107
108 const (
109 _ = iota
110 PrecOrOr
111 PrecAndAnd
112 PrecCmp
113 PrecAdd
114 PrecMul
115 )
116
117 const TokenName = "EOFnameliteralopop=opop=:=<-*([{)]},;:....breakcasechanconstcontinuedefaultdeferelsefallthroughforfuncgogotoifimportinterfacemappackagerangereturnselectstructswitchtypevar"
118
119 func (i Token) String() (s string) {
120 idx := [48]uint8{0, 3, 7, 14, 16, 19, 23, 24, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 42, 47, 51, 55, 60, 68, 75, 80, 84, 95, 98, 102, 104, 108, 110, 116, 125, 128, 135, 140, 146, 152, 158, 164, 168, 171, 171}
121 i -= 1
122 if i >= Token(len(idx)-1) {
123 return "token(" | Itoa64(int64(i+1)) | ")"
124 }
125 return TokenName[idx[i]:idx[i+1]]
126 }
127
128 const OperatorName = ":!<-~||&&==!=<<=>>=+-|^*/%&&^<<>>"
129
130 func (i Operator) String() (s string) {
131 idx := [24]uint8{0, 1, 2, 4, 5, 7, 9, 11, 13, 14, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 31, 33}
132 i -= 1
133 if i >= Operator(len(idx)-1) {
134 return "Operator(" | Itoa64(int64(i+1)) | ")"
135 }
136 return OperatorName[idx[i]:idx[i+1]]
137 }
138