summaryrefslogtreecommitdiff
path: root/parser/kind.go
blob: d570358a25bfa6ab7302f35f256e21e2ba589c42 (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
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]
}