mirror of
https://github.com/kataras/iris.git
synced 2026-07-30 16:09:51 +00:00
feat(token): add String() method to token Type
Add String() method to the token Type that returns the human-readable name
of the token (e.g., "LBRACE" for '{'), with fallback to numeric value for
unknown types. Also add typeNames map for token type name lookups.
This commit is contained in:
@@ -22,7 +22,7 @@ require (
|
|||||||
github.com/iris-contrib/schema v0.0.6
|
github.com/iris-contrib/schema v0.0.6
|
||||||
github.com/json-iterator/go v1.1.12
|
github.com/json-iterator/go v1.1.12
|
||||||
github.com/kataras/blocks v0.0.8
|
github.com/kataras/blocks v0.0.8
|
||||||
github.com/kataras/golog v0.1.15
|
github.com/kataras/golog v0.1.12
|
||||||
github.com/kataras/jwt v0.1.17
|
github.com/kataras/jwt v0.1.17
|
||||||
github.com/kataras/neffos v0.0.24
|
github.com/kataras/neffos v0.0.24
|
||||||
github.com/kataras/pio v0.0.13
|
github.com/kataras/pio v0.0.13
|
||||||
|
|||||||
@@ -95,8 +95,8 @@ github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnr
|
|||||||
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
|
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
|
||||||
github.com/kataras/blocks v0.0.8 h1:MrpVhoFTCR2v1iOOfGng5VJSILKeZZI+7NGfxEh3SUM=
|
github.com/kataras/blocks v0.0.8 h1:MrpVhoFTCR2v1iOOfGng5VJSILKeZZI+7NGfxEh3SUM=
|
||||||
github.com/kataras/blocks v0.0.8/go.mod h1:9Jm5zx6BB+06NwA+OhTbHW1xkMOYxahnqTN5DveZ2Yg=
|
github.com/kataras/blocks v0.0.8/go.mod h1:9Jm5zx6BB+06NwA+OhTbHW1xkMOYxahnqTN5DveZ2Yg=
|
||||||
github.com/kataras/golog v0.1.15 h1:gDNOENbbn+6me98UW1f9Cs5MRUlAkabnNvmgLFM58Xw=
|
github.com/kataras/golog v0.1.12 h1:Bu7I/G4ilJlbfzjmU39O9N+2uO1pBcMK045fzZ4ytNg=
|
||||||
github.com/kataras/golog v0.1.15/go.mod h1:Ozu1TDa+OKC7fFe7OG64In71yLxjda+6kPl+Rg3v1hA=
|
github.com/kataras/golog v0.1.12/go.mod h1:wrGSbOiBqbQSQznleVNX4epWM8rl9SJ/rmEacl0yqy4=
|
||||||
github.com/kataras/jwt v0.1.17 h1:dYjemzcdYqA4ylwq9/56MslCr/pNOyVUZ2bl3hYNHgc=
|
github.com/kataras/jwt v0.1.17 h1:dYjemzcdYqA4ylwq9/56MslCr/pNOyVUZ2bl3hYNHgc=
|
||||||
github.com/kataras/jwt v0.1.17/go.mod h1:HUnU5HDBCDanVF8zrPVSE2VK8HicospKefZDD4DzOKU=
|
github.com/kataras/jwt v0.1.17/go.mod h1:HUnU5HDBCDanVF8zrPVSE2VK8HicospKefZDD4DzOKU=
|
||||||
github.com/kataras/neffos v0.0.24 h1:S3lHqJopCfXN285VdlbGeOj+Id83u4xdQKToa+w1vW0=
|
github.com/kataras/neffos v0.0.24 h1:S3lHqJopCfXN285VdlbGeOj+Id83u4xdQKToa+w1vW0=
|
||||||
|
|||||||
@@ -1,8 +1,20 @@
|
|||||||
package token
|
package token
|
||||||
|
|
||||||
|
import "strconv"
|
||||||
|
|
||||||
// Type is a specific type of int which describes the symbols.
|
// Type is a specific type of int which describes the symbols.
|
||||||
type Type int
|
type Type int
|
||||||
|
|
||||||
|
// String returns the name of the token type, e.g. "LBRACE" for the '{' symbol.
|
||||||
|
// It returns the numeric value of an unknown type as it is.
|
||||||
|
func (t Type) String() string {
|
||||||
|
if name, ok := typeNames[t]; ok {
|
||||||
|
return name
|
||||||
|
}
|
||||||
|
|
||||||
|
return strconv.Itoa(int(t))
|
||||||
|
}
|
||||||
|
|
||||||
// Token describes the letter(s) or symbol, is a result of the lexer.
|
// Token describes the letter(s) or symbol, is a result of the lexer.
|
||||||
type Token struct {
|
type Token struct {
|
||||||
Type Type
|
Type Type
|
||||||
@@ -37,6 +49,20 @@ const (
|
|||||||
INT // 42
|
INT // 42
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var typeNames = map[Type]string{
|
||||||
|
EOF: "EOF",
|
||||||
|
ILLEGAL: "ILLEGAL",
|
||||||
|
LBRACE: "LBRACE",
|
||||||
|
RBRACE: "RBRACE",
|
||||||
|
COLON: "COLON",
|
||||||
|
LPAREN: "LPAREN",
|
||||||
|
RPAREN: "RPAREN",
|
||||||
|
COMMA: "COMMA",
|
||||||
|
IDENT: "IDENT",
|
||||||
|
ELSE: "ELSE",
|
||||||
|
INT: "INT",
|
||||||
|
}
|
||||||
|
|
||||||
var keywords = map[string]Type{
|
var keywords = map[string]Type{
|
||||||
"else": ELSE,
|
"else": ELSE,
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user