aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2018-03-25 10:20:37 +0200
committerDimitri Sokolyuk <demon@dim13.org>2018-03-25 10:20:37 +0200
commitf73ea0821fb378ba260630ba3c7ae02f7d9f8377 (patch)
treef050f34400014928a1db0ea16a33af290927154c
parent99d08ce35ede2b5c75266240f20c4554060ddce0 (diff)
cleanup
-rw-r--r--evaluator/quote_unquote.go2
-rw-r--r--lexer/lexer.go2
-rw-r--r--lexer/lexer_test.go28
-rw-r--r--object/object.go8
-rw-r--r--parser/parser.go2
-rw-r--r--token/token.go19
-rw-r--r--token/tokentype_string.go4
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) {