lexer can now read single character tokens

This commit is contained in:
Karma Riuk
2025-06-29 12:33:37 +02:00
parent ca05c3577a
commit ffff13b2e0
4 changed files with 44 additions and 1 deletions

View File

@ -0,0 +1,34 @@
#include "lexer.hpp"
#include "token/token.hpp"
#include <iostream>
namespace lexer {
token::token lexer::next_token() {
char c;
if (!(input >> c))
return {token::type::END_OF_FILE, ""};
switch (c) {
case '=':
return {token::type::ASSIGN, c};
case '+':
return {token::type::PLUS, c};
case ',':
return {token::type::COMMA, c};
case ';':
return {token::type::SEMICOLON, c};
case '(':
return {token::type::LPAREN, c};
case ')':
return {token::type::RPAREN, c};
case '{':
return {token::type::LBRACE, c};
case '}':
return {token::type::RBRACE, c};
}
return {token::type::ILLEGAL, c};
};
} // namespace lexer