From 5c1f937a7eb7a9cc9cd86cb69b3263f41f24408f Mon Sep 17 00:00:00 2001 From: Cori Barker Date: Sun, 22 Feb 2026 22:24:27 +0000 Subject: Partially completed lots of changes, refactoring most of the files --- src/lexer/lexer.cpp | 103 ---------------------------------------------------- 1 file changed, 103 deletions(-) delete mode 100644 src/lexer/lexer.cpp (limited to 'src/lexer/lexer.cpp') diff --git a/src/lexer/lexer.cpp b/src/lexer/lexer.cpp deleted file mode 100644 index 70af4b5..0000000 --- a/src/lexer/lexer.cpp +++ /dev/null @@ -1,103 +0,0 @@ -#include "lexer/lexer.hpp" - -Lexer::Lexer(const std::string& src) : src(src), position(0), line(1), column(1) {} - -std::vector Lexer::tokenise() { - while (position < src.size()) { - if (std::isdigit(src[position])) { - std::string digit; - int original_column = column; - - while (std::isdigit(src[position])) { - digit.push_back(src[position]); - advance(); - } - - tokens.push_back(Token(TokenType::NUMBER, digit, line, original_column)); - - } else if (std::isalpha(src[position])) { - if (src.substr(position, 3) == "int") { - tokens.push_back(Token(TokenType::INT, "int", line, column)); - advance(); - advance(); - advance(); - - } else { - std::string identifier; - int original_column = column; - - while (std::isalnum(src[position])) { - identifier.push_back(src[position]); - advance(); - } - - tokens.push_back(Token(TokenType::IDENTIFIER, identifier, line, original_column)); - } - - } else if (src[position] == '+') { - tokens.push_back(Token(TokenType::PLUS, std::string(1, src[position]), line, column)); - advance(); - - } else if (src[position] == '-') { - tokens.push_back(Token(TokenType::MINUS, std::string(1, src[position]), line, column)); - advance(); - - } else if (src[position] == '*') { - tokens.push_back(Token(TokenType::MULTIPLY, std::string(1, src[position]), line, column)); - advance(); - - } else if (src[position] == '/') { - tokens.push_back(Token(TokenType::DIVIDE, std::string(1, src[position]), line, column)); - advance(); - - } else if (src[position] == '=') { - tokens.push_back(Token(TokenType::ASSIGN, std::string(1, src[position]), line, column)); - advance(); - - } else if (src[position] == ';') { - tokens.push_back(Token(TokenType::SEMICOLON, std::string(1, src[position]), line, column)); - advance(); - - } else { - tokens.push_back(Token(TokenType::INVALID, std::string(1, src[position]), line, column)); - advance(); - - } - skipComment(); - skipWhitespace(); - - } - tokens.push_back(Token(TokenType::END_OF_FILE, std::string(), line, column)); - return tokens; -} - -char Lexer::advance() { - column++; - return src[position++]; -} - -void Lexer::skipWhitespace() { - while (src[position] == ' ' || src[position] == '\n') { - if (src[position] == ' ') { - position++; - column++; - - } else if (src[position] == '\n') { - position++; - column = 1; - line++; - } - } -} - -void Lexer::skipComment() { - if (src[position] == '/' && src[++position] == '/') { - while (src[position] != '\n') { - position++; - column++; - } - position++; - line += 1; - column = 1; - } -} -- cgit v1.2.3