|
@@ -7,7 +7,7 @@ package lexer
|
|
|
|
|
|
import (
|
|
|
"fgm/waiig15/token"
|
|
|
-)
|
|
|
+ )
|
|
|
|
|
|
type Lexer struct {
|
|
|
input string
|
|
@@ -41,16 +41,28 @@ func (l *Lexer) NextToken() token.Token {
|
|
|
switch l.ch {
|
|
|
case '=':
|
|
|
tok = newToken(token.ASSIGN, l.ch)
|
|
|
- case ';':
|
|
|
- tok = newToken(token.SEMICOLON, l.ch)
|
|
|
case '(':
|
|
|
tok = newToken(token.LPAREN, l.ch)
|
|
|
case ')':
|
|
|
tok = newToken(token.RPAREN, l.ch)
|
|
|
- case ',':
|
|
|
- tok = newToken(token.COMMA, l.ch)
|
|
|
case '+':
|
|
|
tok = newToken(token.PLUS, l.ch)
|
|
|
+ case '-':
|
|
|
+ tok = newToken(token.MINUS, l.ch)
|
|
|
+ case '!':
|
|
|
+ tok = newToken(token.BANG, l.ch)
|
|
|
+ case '/':
|
|
|
+ tok = newToken(token.SLASH, l.ch)
|
|
|
+ case '*':
|
|
|
+ tok = newToken(token.ASTERISK, l.ch)
|
|
|
+ case '<':
|
|
|
+ tok = newToken(token.LT, l.ch)
|
|
|
+ case '>':
|
|
|
+ tok = newToken(token.GT, l.ch)
|
|
|
+ case ';':
|
|
|
+ tok = newToken(token.SEMICOLON, l.ch)
|
|
|
+ case ',':
|
|
|
+ tok = newToken(token.COMMA, l.ch)
|
|
|
case '{':
|
|
|
tok = newToken(token.LBRACE, l.ch)
|
|
|
case '}':
|