From 28b3023bf5f0b77fd77eb4ec6317c381b6f2a42b Mon Sep 17 00:00:00 2001 From: Silas Wrinker Date: Fri, 26 Jul 2024 16:28:21 -0400 Subject: [PATCH] Update lex.cpp --- src/crate/lex.cpp | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/crate/lex.cpp b/src/crate/lex.cpp index a130b24..968b9ea 100644 --- a/src/crate/lex.cpp +++ b/src/crate/lex.cpp @@ -190,6 +190,10 @@ vector lex(const string src) cur.row = row; cur.col = col; tlist.push_back(cur); + load_type = ""; + load_var = ""; + load_type = "alpha"; + load_var += c; } else if (load_type == "splat") { cur.ttype = KWARGS; cur.value = load_var; @@ -199,6 +203,8 @@ vector lex(const string src) load_type = ""; load_var = ""; + load_type = "alpha"; + load_var += c; } else { cout << "[" << row << ", " << col << "] we're so sorry. something went wrong with the lexical analyzer. \n\tplease notify me at silas-wr/crate on github.\n"; ok = false; // make it uncompilable @@ -223,9 +229,8 @@ vector lex(const string src) } else { cout << "[" << row << ", " << col << "] Invalid operator " << load_var << " .\n"; ok = false; - - load_type = ""; - load_var = ""; + load_type = ""; + load_var = ""; } load_type = ""; @@ -361,6 +366,10 @@ vector lex(const string src) load_type = ""; load_var = ""; } + load_type = ""; + load_var = ""; + load_type = "period"; + load_var += c; } else if (load_type == "alpha") { if (keys.find(load_var) != keys.end()) { cur.ttype = keys[load_var]; @@ -376,6 +385,8 @@ vector lex(const string src) tlist.push_back(cur); } + load_type = ""; + load_var = ""; load_type = "period"; load_var += c; } else {