diff --git a/lexer/lexer.go b/lexer/lexer.go index ecd1d3e..5ac643d 100644 --- a/lexer/lexer.go +++ b/lexer/lexer.go @@ -9,7 +9,7 @@ type Lexer struct { current_char byte } -func new(input string) *Lexer { +func New(input string) *Lexer { l := &Lexer{input: input} l.read_char() return l @@ -67,7 +67,7 @@ func is_digit(ch byte) bool { return '0' <= ch && ch <= '9' } -func (lexer *Lexer) next_token() token.Token { +func (lexer *Lexer) NextToken() token.Token { var tok token.Token lexer.skip_whitespace() diff --git a/lexer/lexer_test.go b/lexer/lexer_test.go index 7a41817..2e6f8d5 100644 --- a/lexer/lexer_test.go +++ b/lexer/lexer_test.go @@ -114,9 +114,9 @@ func TestNextToken(t *testing.T) { {token.EOF, ""}, } - l := new(input) + l := New(input) for i, tt := range tests { - tok := l.next_token() + tok := l.NextToken() if tok.Type != tt.expectedType { t.Fatalf("test[%d] - tokentype wrong. expected=%q, got=%q", i, tt.expectedType, tok.Type) } diff --git a/repl/repl.go b/repl/repl.go index 0099bab..1c36ba7 100644 --- a/repl/repl.go +++ b/repl/repl.go @@ -1,31 +1,31 @@ -package repl - -import ( - "bufio" - "fmt" - "io" - - "monkey/lexer" - "monkey/token" -) - -const PROMPT = ">> " - -func Start(in io.Reader, out io.Writer){ - scanner := bufio.NewScanner(in) - - for { - fmt.Fprintf(out, PROMPT) - scanned := scanner.Scan() - if !scanned{ - return - } - - line := scanner.Text() - l := lexer.new(line) - - for tok := l.next_token(); tok.Type != token.EOF; tok = l.next_token(){ - fmt.Fprintf(out, "%+v\n", tok) - } - } -} +package repl + +import ( + "bufio" + "fmt" + "io" + + "monkey/lexer" + "monkey/token" +) + +const PROMPT = ">> " + +func Start(in io.Reader, out io.Writer) { + scanner := bufio.NewScanner(in) + + for { + fmt.Fprintf(out, PROMPT) + scanned := scanner.Scan() + if !scanned { + return + } + + line := scanner.Text() + l := lexer.New(line) + + for tok := l.NextToken(); tok.Type != token.EOF; tok = l.NextToken() { + fmt.Fprintf(out, "%+v\n", tok) + } + } +}