aboutsummaryrefslogtreecommitdiff
path: root/token
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2018-03-25 10:10:10 +0200
committerDimitri Sokolyuk <demon@dim13.org>2018-03-25 10:10:10 +0200
commita6e158b26593fd77972bf8ceca7655f6b332596c (patch)
tree2034dd4d53d62d2f2fa9c1df8615a4a7a50b3aff /token
parent129a6b820984b02989ea87935bccbd7c4f5ad34e (diff)
stinger
Diffstat (limited to 'token')
-rw-r--r--token/token.go70
-rw-r--r--token/tokentype_string.go16
2 files changed, 51 insertions, 35 deletions
diff --git a/token/token.go b/token/token.go
index c7bf73a..b0b4d5a 100644
--- a/token/token.go
+++ b/token/token.go
@@ -1,51 +1,51 @@
package token
-type TokenType string
+//go:generate stringer -type=TokenType
+
+type TokenType int
const (
- ILLEGAL = "ILLEGAL"
- EOF = "EOF"
+ ILLEGAL TokenType = iota
+ EOF
// Identifiers + literals
- IDENT = "IDENT" // add, foobar, x, y, ...
- INT = "INT" // 1343456
- STRING = "STRING" // "foobar"
+ IDENT // add, foobar, x, y, ...
+ INT // 1343456
+ STRING // "foobar"
// Operators
- ASSIGN = "="
- PLUS = "+"
- MINUS = "-"
- BANG = "!"
- ASTERISK = "*"
- SLASH = "/"
-
- LT = "<"
- GT = ">"
-
- EQ = "=="
- NOT_EQ = "!="
+ ASSIGN // "="
+ PLUS // "+"
+ MINUS // "-"
+ BANG // "!"
+ ASTERISK // "*"
+ SLASH // "/"
+ LESS // "<"
+ MORE // ">"
+ EQ // "=="
+ NOT_EQ // "!="
// Delimiters
- COMMA = ","
- SEMICOLON = ";"
- COLON = ":"
+ COMMA // ","
+ SEMICOLON // ";"
+ COLON // ":"
- LPAREN = "("
- RPAREN = ")"
- LBRACE = "{"
- RBRACE = "}"
- LBRACKET = "["
- RBRACKET = "]"
+ LPAREN // "("
+ RPAREN // ")"
+ LBRACE // "{"
+ RBRACE // "}"
+ LBRACKET // "["
+ RBRACKET // "]"
// Keywords
- FUNCTION = "FUNCTION"
- LET = "LET"
- TRUE = "TRUE"
- FALSE = "FALSE"
- IF = "IF"
- ELSE = "ELSE"
- RETURN = "RETURN"
- MACRO = "MACRO"
+ FUNCTION
+ LET
+ TRUE
+ FALSE
+ IF
+ ELSE
+ RETURN
+ MACRO
)
type Token struct {
diff --git a/token/tokentype_string.go b/token/tokentype_string.go
new file mode 100644
index 0000000..f433400
--- /dev/null
+++ b/token/tokentype_string.go
@@ -0,0 +1,16 @@
+// Code generated by "stringer -type=TokenType"; DO NOT EDIT.
+
+package token
+
+import "strconv"
+
+const _TokenType_name = "ILLEGALEOFIDENTINTSTRINGASSIGNPLUSMINUSBANGASTERISKSLASHLESSMOREEQNOT_EQCOMMASEMICOLONCOLONLPARENRPARENLBRACERBRACELBRACKETRBRACKETFUNCTIONLETTRUEFALSEIFELSERETURNMACRO"
+
+var _TokenType_index = [...]uint8{0, 7, 10, 15, 18, 24, 30, 34, 39, 43, 51, 56, 60, 64, 66, 72, 77, 86, 91, 97, 103, 109, 115, 123, 131, 139, 142, 146, 151, 153, 157, 163, 168}
+
+func (i TokenType) String() string {
+ if i < 0 || i >= TokenType(len(_TokenType_index)-1) {
+ return "TokenType(" + strconv.FormatInt(int64(i), 10) + ")"
+ }
+ return _TokenType_name[_TokenType_index[i]:_TokenType_index[i+1]]
+}