diff options
| author | Bobby <[email protected]> | 2023-11-03 12:58:02 +0000 |
|---|---|---|
| committer | Bobby <[email protected]> | 2023-11-03 12:58:02 +0000 |
| commit | 955fdfb79f165bab521cf4f4e0e18613fd1f085b (patch) | |
| tree | 9bd3474cfa7f5552f5df8a4f0fe47095261ebc49 | |
| parent | 895fd381cc3867bb362f1abf19ffc26c41cbdbe7 (diff) | |
| download | mana-955fdfb79f165bab521cf4f4e0e18613fd1f085b.tar.xz mana-955fdfb79f165bab521cf4f4e0e18613fd1f085b.zip | |
fmt:source tree
| -rw-r--r-- | lexer/lexer_test.go | 3 | ||||
| -rw-r--r-- | main.go | 2 | ||||
| -rw-r--r-- | parser/parser.go | 3 | ||||
| -rw-r--r-- | parser/parser_test.go | 3 | ||||
| -rw-r--r-- | repl/repl.go | 2 | ||||
| -rw-r--r-- | tokens/tokens.go | 64 |
6 files changed, 37 insertions, 40 deletions
diff --git a/lexer/lexer_test.go b/lexer/lexer_test.go index 5cce79d..8d2bbe5 100644 --- a/lexer/lexer_test.go +++ b/lexer/lexer_test.go @@ -1,8 +1,8 @@ package lexer import ( - "testing" "mana/tokens" + "testing" ) func TestNextToken(t *testing.T) { @@ -109,7 +109,6 @@ func TestNextToken(t *testing.T) { {tokens.EOF, ""}, } - var l *Lexer = New(input) for i, tt := range tests { @@ -2,9 +2,9 @@ package main import ( "fmt" + "mana/repl" "os" "os/user" - "mana/repl" ) func main() { diff --git a/parser/parser.go b/parser/parser.go index bd587de..df15165 100644 --- a/parser/parser.go +++ b/parser/parser.go @@ -20,7 +20,7 @@ type Parser struct { // New returns a new Parser. func New(l *lexer.Lexer) *Parser { var p *Parser = &Parser{ - l: l, + l: l, errors: []string{}, } @@ -147,4 +147,3 @@ func (p *Parser) peekError(t tokens.TokenType) { p.errors = append(p.errors, msg) } - diff --git a/parser/parser_test.go b/parser/parser_test.go index 0e27b51..8e06ecd 100644 --- a/parser/parser_test.go +++ b/parser/parser_test.go @@ -1,9 +1,9 @@ package parser import ( - "testing" "mana/ast" "mana/lexer" + "testing" ) func TestLetStatements(t *testing.T) { @@ -90,7 +90,6 @@ func testLetStatement(t *testing.T, s ast.Statement, name string) bool { return true } - // Return statement tests. func TestReturnStatements(t *testing.T) { var input string = ` diff --git a/repl/repl.go b/repl/repl.go index 0002a89..04bff57 100644 --- a/repl/repl.go +++ b/repl/repl.go @@ -17,7 +17,7 @@ func Start(in io.Reader, out io.Writer) { for { fmt.Fprint(out, PROMPT) var scanned bool = scanner.Scan() - + if !scanned { return } diff --git a/tokens/tokens.go b/tokens/tokens.go index b93d9f9..5a74cd4 100644 --- a/tokens/tokens.go +++ b/tokens/tokens.go @@ -8,51 +8,51 @@ type Token struct { } const ( - ILLEGAL = "ILLEGAL" - EOF = "EOF" + ILLEGAL = "ILLEGAL" + EOF = "EOF" // Identifiers + literals - IDENT = "IDENT" - INT = "INT" + IDENT = "IDENT" + INT = "INT" // Operators - ASSIGN = "=" - PLUS = "+" - MINUS = "-" - BANG = "!" - ASTERISK = "*" - SLASH = "/" - LT = "<" - GT = ">" - EQ = "==" - NOT_EQ = "!=" + ASSIGN = "=" + PLUS = "+" + MINUS = "-" + BANG = "!" + ASTERISK = "*" + SLASH = "/" + LT = "<" + GT = ">" + EQ = "==" + NOT_EQ = "!=" // Delimiters COMMA = "," SEMICOLON = ";" - LPAREN = "(" - RPAREN = ")" - LBRACE = "{" - RBRACE = "}" + LPAREN = "(" + RPAREN = ")" + LBRACE = "{" + RBRACE = "}" // Keywords - FUNCTION = "FUNCTION" - LET = "LET" - IF = "IF" - ELSE = "ELSE" - TRUE = "TRUE" - FALSE = "FALSE" - RETURN = "RETURN" + FUNCTION = "FUNCTION" + LET = "LET" + IF = "IF" + ELSE = "ELSE" + TRUE = "TRUE" + FALSE = "FALSE" + RETURN = "RETURN" ) -var keywords = map[string]TokenType { - "fn": FUNCTION, - "let": LET, - "if": IF, - "else": ELSE, - "true": TRUE, - "false": FALSE, +var keywords = map[string]TokenType{ + "fn": FUNCTION, + "let": LET, + "if": IF, + "else": ELSE, + "true": TRUE, + "false": FALSE, "return": RETURN, } |
