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
|
package parser
import "fmt"
type Kind int
const (
Undefined = Kind(iota)
FuncDecl
CallExpr
IfStmt
StmtBloc
ReturnStmt
Ident
StringLit
NumberLit
ParBloc
DotOp
MulOp
AddOp
SubOp
AssignOp
DefOp
InfOp
)
var kindString = [...]string{
Undefined: "Undefined",
FuncDecl: "FuncDecl",
CallExpr: "CallExpr",
IfStmt: "IfStmt",
StmtBloc: "StmtBloc",
ReturnStmt: "ReturnStmt",
Ident: "Ident",
StringLit: "StringLit",
NumberLit: "NumberLit",
ParBloc: "ParBloc",
DotOp: "DotOp",
MulOp: "MulOp",
AddOp: "AddOP",
SubOp: "SubOp",
AssignOp: "AssignOp",
DefOp: "DefOp",
InfOp: "InfOp",
}
func (k Kind) String() string {
if int(k) < 0 || int(k) > len(kindString) {
return fmt.Sprintf("unknown kind %d", k)
}
return kindString[k]
}
|