From a6e158b26593fd77972bf8ceca7655f6b332596c Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sun, 25 Mar 2018 10:10:10 +0200 Subject: stinger --- token/token.go | 70 +++++++++++++++++++++++------------------------ token/tokentype_string.go | 16 +++++++++++ 2 files changed, 51 insertions(+), 35 deletions(-) create mode 100644 token/tokentype_string.go (limited to 'token') 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]] +} -- cgit v1.2.3