blob: 534750448c9e561dd15c220ab77cbe0a0d1a3fd3 (
plain)
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
|
package lang
type TokenId int
const (
Illegal = iota
Comment
Ident
Int
Float
Imag
Char
String
// Operators
Add
Sub
Mul
Quo
Rem
And
Or
Xor
Shl // <<
Shr // >>
AndNot //
AddAssign
SubAssign
MulAssign
QuoAssign
RemAssign
AndAssign
OrAssign
XorAssign
ShlAssign
ShrAssign
AndNotAssign
Land
Lor
Arrow
Inc
Dec
Equal
Less
Greater
Assign
Not
Plus // unitary +
Minus // unitary -
Address // unitary &
Deref // unitary *
NotEqual
LessEqual
GreaterEqual
Define
Ellipsis
Period
Tilde
// Separators
Comma
Semicolon
Colon
// Block tokens
ParenBlock // (..)
BracketBlock // [..]
BraceBlock // {..}
// Reserved keywords
Break
Case
Chan
Const
Continue
Default
Defer
Else
Fallthrough
For
Func
Go
Goto
If
Import
Interface
Map
Package
Range
Return
Select
Struct
Switch
Type
Var
// Internal tokens (no corresponding keyword)
Call
CallX
Label
JumpFalse
)
func (t TokenId) IsKeyword() bool { return t >= Break && t <= Var }
func (t TokenId) IsOperator() bool { return t >= Add && t <= Tilde }
func (t TokenId) IsBlock() bool { return t >= ParenBlock && t <= BraceBlock }
|