diff options
| author | Mel <einebeere@gmail.com> | 2022-07-27 22:20:28 +0000 |
|---|---|---|
| committer | Mel <einebeere@gmail.com> | 2022-07-27 22:50:42 +0000 |
| commit | 4f23155ca7f8591cae0be6938610386513d24b7f (patch) | |
| tree | 7a18b5297dc7d2a9304c802a429abf0869080a79 /pkg/lang/scanner/token/kind.go | |
| parent | be281507daf2d1d7f66f32daa42ef78daa48c5dd (diff) | |
| download | jinx-4f23155ca7f8591cae0be6938610386513d24b7f.tar.zst jinx-4f23155ca7f8591cae0be6938610386513d24b7f.zip | |
Put correct token strings in parser errors
Diffstat (limited to 'pkg/lang/scanner/token/kind.go')
| -rw-r--r-- | pkg/lang/scanner/token/kind.go | 122 |
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" + } +} |
