From c4b515491a074981023b6f68df620d3f50652dc5 Mon Sep 17 00:00:00 2001 From: Ruben Dahl Date: Thu, 26 Jan 2023 20:52:43 +0100 Subject: [PATCH] Parsing 95% complete, only missing string parsing --- src/lang.cc | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/lang.cc b/src/lang.cc index 7ba88f3..b07568b 100644 --- a/src/lang.cc +++ b/src/lang.cc @@ -40,8 +40,6 @@ int parse_line(std::string line, int row) { struct parsed_token parsed { empty_token, empty_token }; - if (line.length() == 0) - return 0; std::deque tokens; int start = 0; size_t end = line.find(" "); @@ -50,6 +48,7 @@ int parse_line(std::string line, int row) { start = end + 1; end = line.find(" ", start); } + tokens.push_back(line.substr(start)); for (std::string &token : tokens) { if (token == "//") return 0; @@ -57,9 +56,6 @@ int parse_line(std::string line, int row) { try { Token curr_token = CV_Tokens.at(token); parsed.last_token = parsed.current_token; - if (curr_token == parsed.last_token && - curr_token.type == TokenType::SPACE) - continue; parsed.current_token = curr_token; switch (parsed.current_token.type) { case TokenType::COLONCOLON: { @@ -87,6 +83,8 @@ int parse_line(std::string line, int row) { ctoken); break; } + default: + break; } switch (parsed.current_token.intrinsic) { case Intrinsic::INCLUDE: { @@ -146,7 +144,7 @@ int parse_line(std::string line, int row) { default: break; } - } catch (std::out_of_range &oor) { + } catch (std::out_of_range) { // this is most likely a variable or a string ferr("%s: Invalid token `%s'.\n", here(row, col), ctoken); }