From f73ea0821fb378ba260630ba3c7ae02f7d9f8377 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sun, 25 Mar 2018 10:20:37 +0200 Subject: cleanup --- evaluator/quote_unquote.go | 2 +- lexer/lexer.go | 2 +- lexer/lexer_test.go | 28 ++++++++++++++-------------- object/object.go | 8 ++------ parser/parser.go | 2 +- token/token.go | 19 +++++++++---------- token/tokentype_string.go | 4 ++-- 7 files changed, 30 insertions(+), 35 deletions(-) diff --git a/evaluator/quote_unquote.go b/evaluator/quote_unquote.go index b2c1824..960c9d3 100644 --- a/evaluator/quote_unquote.go +++ b/evaluator/quote_unquote.go @@ -46,7 +46,7 @@ func convertObjectToASTNode(obj object.Object) ast.Node { switch obj := obj.(type) { case *object.Integer: t := token.Token{ - Type: token.INT, + Type: token.INTEGER, Literal: fmt.Sprintf("%d", obj.Value), } return &ast.IntegerLiteral{Token: t, Value: obj.Value} diff --git a/lexer/lexer.go b/lexer/lexer.go index 0807d6d..12d4419 100644 --- a/lexer/lexer.go +++ b/lexer/lexer.go @@ -79,7 +79,7 @@ func (l *Lexer) NextToken() token.Token { tok.Type = token.LookupIdent(tok.Literal) return tok } else if isDigit(l.ch) { - tok.Type = token.INT + tok.Type = token.INTEGER tok.Literal = l.readNumber() return tok } else { diff --git a/lexer/lexer_test.go b/lexer/lexer_test.go index 3e8a0e8..e692fea 100644 --- a/lexer/lexer_test.go +++ b/lexer/lexer_test.go @@ -40,12 +40,12 @@ macro(x, y) { x + y; }; {token.LET, "let"}, {token.IDENT, "five"}, {token.ASSIGN, "="}, - {token.INT, "5"}, + {token.INTEGER, "5"}, {token.SEMICOLON, ";"}, {token.LET, "let"}, {token.IDENT, "ten"}, {token.ASSIGN, "="}, - {token.INT, "10"}, + {token.INTEGER, "10"}, {token.SEMICOLON, ";"}, {token.LET, "let"}, {token.IDENT, "add"}, @@ -77,19 +77,19 @@ macro(x, y) { x + y; }; {token.MINUS, "-"}, {token.SLASH, "/"}, {token.ASTERISK, "*"}, - {token.INT, "5"}, + {token.INTEGER, "5"}, {token.SEMICOLON, ";"}, - {token.INT, "5"}, + {token.INTEGER, "5"}, {token.LESS, "<"}, - {token.INT, "10"}, + {token.INTEGER, "10"}, {token.MORE, ">"}, - {token.INT, "5"}, + {token.INTEGER, "5"}, {token.SEMICOLON, ";"}, {token.IF, "if"}, {token.LPAREN, "("}, - {token.INT, "5"}, + {token.INTEGER, "5"}, {token.LESS, "<"}, - {token.INT, "10"}, + {token.INTEGER, "10"}, {token.RPAREN, ")"}, {token.LBRACE, "{"}, {token.RETURN, "return"}, @@ -102,20 +102,20 @@ macro(x, y) { x + y; }; {token.FALSE, "false"}, {token.SEMICOLON, ";"}, {token.RBRACE, "}"}, - {token.INT, "10"}, + {token.INTEGER, "10"}, {token.EQ, "=="}, - {token.INT, "10"}, + {token.INTEGER, "10"}, {token.SEMICOLON, ";"}, - {token.INT, "10"}, + {token.INTEGER, "10"}, {token.NOT_EQ, "!="}, - {token.INT, "9"}, + {token.INTEGER, "9"}, {token.SEMICOLON, ";"}, {token.STRING, "foobar"}, {token.STRING, "foo bar"}, {token.LBRACKET, "["}, - {token.INT, "1"}, + {token.INTEGER, "1"}, {token.COMMA, ","}, - {token.INT, "2"}, + {token.INTEGER, "2"}, {token.RBRACKET, "]"}, {token.SEMICOLON, ";"}, {token.LBRACE, "{"}, diff --git a/object/object.go b/object/object.go index c34b8e7..53eacce 100644 --- a/object/object.go +++ b/object/object.go @@ -9,25 +9,21 @@ import ( "monkey/ast" ) -//go:generate stringer -type=ObjectType - type BuiltinFunction func(args ...Object) Object +//go:generate stringer -type=ObjectType + type ObjectType int const ( NULL ObjectType = iota ERROR - INTEGER BOOLEAN STRING - RETURN_VALUE - FUNCTION BUILTIN - ARRAY HASH QUOTE diff --git a/parser/parser.go b/parser/parser.go index 855cc9b..7422f7b 100644 --- a/parser/parser.go +++ b/parser/parser.go @@ -57,7 +57,7 @@ func New(l *lexer.Lexer) *Parser { p.prefixParseFns = make(map[token.TokenType]prefixParseFn) p.registerPrefix(token.IDENT, p.parseIdentifier) - p.registerPrefix(token.INT, p.parseIntegerLiteral) + p.registerPrefix(token.INTEGER, p.parseIntegerLiteral) p.registerPrefix(token.STRING, p.parseStringLiteral) p.registerPrefix(token.BANG, p.parsePrefixExpression) p.registerPrefix(token.MINUS, p.parsePrefixExpression) diff --git a/token/token.go b/token/token.go index b0b4d5a..ab33563 100644 --- a/token/token.go +++ b/token/token.go @@ -9,9 +9,9 @@ const ( EOF // Identifiers + literals - IDENT // add, foobar, x, y, ... - INT // 1343456 - STRING // "foobar" + IDENT // add, foobar, x, y, ... + INTEGER // 1343456 + STRING // "foobar" // Operators ASSIGN // "=" @@ -29,13 +29,12 @@ const ( COMMA // "," SEMICOLON // ";" COLON // ":" - - LPAREN // "(" - RPAREN // ")" - LBRACE // "{" - RBRACE // "}" - LBRACKET // "[" - RBRACKET // "]" + LPAREN // "(" + RPAREN // ")" + LBRACE // "{" + RBRACE // "}" + LBRACKET // "[" + RBRACKET // "]" // Keywords FUNCTION diff --git a/token/tokentype_string.go b/token/tokentype_string.go index f433400..e7e554e 100644 --- a/token/tokentype_string.go +++ b/token/tokentype_string.go @@ -4,9 +4,9 @@ package token import "strconv" -const _TokenType_name = "ILLEGALEOFIDENTINTSTRINGASSIGNPLUSMINUSBANGASTERISKSLASHLESSMOREEQNOT_EQCOMMASEMICOLONCOLONLPARENRPARENLBRACERBRACELBRACKETRBRACKETFUNCTIONLETTRUEFALSEIFELSERETURNMACRO" +const _TokenType_name = "ILLEGALEOFIDENTINTEGERSTRINGASSIGNPLUSMINUSBANGASTERISKSLASHLESSMOREEQNOT_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} +var _TokenType_index = [...]uint8{0, 7, 10, 15, 22, 28, 34, 38, 43, 47, 55, 60, 64, 68, 70, 76, 81, 90, 95, 101, 107, 113, 119, 127, 135, 143, 146, 150, 155, 157, 161, 167, 172} func (i TokenType) String() string { if i < 0 || i >= TokenType(len(_TokenType_index)-1) { -- cgit v1.2.3