aboutsummaryrefslogtreecommitdiff
path: root/pkg/lang/scanner/token
diff options
context:
space:
mode:
authorMel <einebeere@gmail.com>2022-07-27 22:20:28 +0000
committerMel <einebeere@gmail.com>2022-07-27 22:50:42 +0000
commit4f23155ca7f8591cae0be6938610386513d24b7f (patch)
tree7a18b5297dc7d2a9304c802a429abf0869080a79 /pkg/lang/scanner/token
parentbe281507daf2d1d7f66f32daa42ef78daa48c5dd (diff)
downloadjinx-4f23155ca7f8591cae0be6938610386513d24b7f.tar.zst
jinx-4f23155ca7f8591cae0be6938610386513d24b7f.zip
Put correct token strings in parser errors
Diffstat (limited to 'pkg/lang/scanner/token')
-rw-r--r--pkg/lang/scanner/token/kind.go122
1 files changed, 121 insertions, 1 deletions
diff --git a/pkg/lang/scanner/token/kind.go b/pkg/lang/scanner/token/kind.go
index e24ce2f..bedbada 100644
--- a/pkg/lang/scanner/token/kind.go
+++ b/pkg/lang/scanner/token/kind.go
@@ -9,7 +9,7 @@ const (
// Keywords
KwVar
KwFn
- KwObject
+ KwType
KwIf
KwElif
@@ -69,3 +69,123 @@ const (
Dot
SemiColon
)
+
+func (tk TokenKind) String() string {
+ switch tk {
+ case EOF:
+ return "EOF"
+ case EOL:
+ return "EOL"
+
+ case KwVar:
+ return "var"
+ case KwFn:
+ return "fn"
+ case KwType:
+ return "type"
+
+ case KwIf:
+ return "if"
+ case KwElif:
+ return "elif"
+ case KwElse:
+ return "else"
+ case KwFor:
+ return "for"
+ case KwTry:
+ return "try"
+ case KwCatch:
+ return "catch"
+ case KwFinally:
+ return "finally"
+
+ case KwReturn:
+ return "return"
+ case KwContinue:
+ return "continue"
+ case KwBreak:
+ return "break"
+ case KwThrow:
+ return "throw"
+
+ case KwIn:
+ return "in"
+
+ case KwNull:
+ return "null"
+ case KwTrue:
+ return "true"
+ case KwFalse:
+ return "false"
+
+ case KwThis:
+ return "this"
+
+ case KwUse:
+ return "use"
+ case KwFrom:
+ return "from"
+ case KwBy:
+ return "by"
+
+ case Ident:
+ return "ident"
+ case Int:
+ return "int"
+ case Float:
+ return "float"
+ case String:
+ return "string"
+
+ case Assign:
+ return "="
+ case Plus:
+ return "+"
+ case Minus:
+ return "-"
+ case Star:
+ return "*"
+ case Slash:
+ return "/"
+ case Percent:
+ return "%"
+ case Bang:
+ return "!"
+
+ case Eq:
+ return "=="
+ case Neq:
+ return "!="
+ case Lt:
+ return "<"
+ case Gt:
+ return ">"
+ case Lte:
+ return "<="
+ case Gte:
+ return ">="
+
+ case LParen:
+ return "("
+ case RParen:
+ return ")"
+ case LBrace:
+ return "{"
+ case RBrace:
+ return "}"
+ case LBracket:
+ return "["
+ case RBracket:
+ return "]"
+
+ case Comma:
+ return ","
+ case Dot:
+ return "."
+ case SemiColon:
+ return ";"
+
+ default:
+ return "unknown"
+ }
+}