73 lines
1.2 KiB
Go
73 lines
1.2 KiB
Go
package token
|
|
|
|
// Kind represents the type of token.
|
|
type Kind uint8
|
|
|
|
const (
|
|
// Invalid represents an invalid token.
|
|
Invalid Kind = iota
|
|
|
|
// NewLine represents the newline character.
|
|
NewLine
|
|
|
|
// Identifier represents a series of characters used to identify a variable or function.
|
|
Identifier
|
|
|
|
// Keyword represents a language keyword.
|
|
Keyword
|
|
|
|
// String represents an uninterpreted series of characters in the source code.
|
|
String
|
|
|
|
// Number represents a series of numerical characters.
|
|
Number
|
|
|
|
// Operator represents a mathematical operator.
|
|
Operator
|
|
|
|
// Separator represents a comma.
|
|
Separator
|
|
|
|
// Comment represents a comment.
|
|
Comment
|
|
|
|
// GroupStart represents '('.
|
|
GroupStart
|
|
|
|
// GroupEnd represents ')'.
|
|
GroupEnd
|
|
|
|
// BlockStart represents '{'.
|
|
BlockStart
|
|
|
|
// BlockEnd represents '}'.
|
|
BlockEnd
|
|
|
|
// ArrayStart represents '['.
|
|
ArrayStart
|
|
|
|
// ArrayEnd represents ']'.
|
|
ArrayEnd
|
|
)
|
|
|
|
// String returns the text representation.
|
|
func (kind Kind) String() string {
|
|
return [...]string{
|
|
"Invalid",
|
|
"NewLine",
|
|
"Identifier",
|
|
"Keyword",
|
|
"String",
|
|
"Number",
|
|
"Operator",
|
|
"Separator",
|
|
"Comment",
|
|
"GroupStart",
|
|
"GroupEnd",
|
|
"BlockStart",
|
|
"BlockEnd",
|
|
"ArrayStart",
|
|
"ArrayEnd",
|
|
}[kind]
|
|
}
|