aboutsummaryrefslogtreecommitdiff
path: root/src/CommandParser.cpp
diff options
context:
space:
mode:
authorAkshay Nair <phenax5@gmail.com>2025-03-10 00:20:31 +0530
committerAkshay Nair <phenax5@gmail.com>2025-03-10 00:20:31 +0530
commitd400369084107104f51fe217d5781c8d7bd07ff9 (patch)
treec1e6572063a49a8c9da4d3c72355e02fb3fc187f /src/CommandParser.cpp
parent6b1d49e607da16853d1a0f460dbe756538e4790c (diff)
downloadnull-browser-d400369084107104f51fe217d5781c8d7bd07ff9.tar.gz
null-browser-d400369084107104f51fe217d5781c8d7bd07ff9.zip
Add dumb command parser
Diffstat (limited to '')
-rw-r--r--src/CommandParser.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/CommandParser.cpp b/src/CommandParser.cpp
new file mode 100644
index 0000000..ccb84bc
--- /dev/null
+++ b/src/CommandParser.cpp
@@ -0,0 +1,32 @@
+#include <QtCore/qnamespace.h>
+#include <QtCore>
+
+#include "CommandParser.hpp"
+
+CommandParser::CommandParser() {}
+
+Cmd CommandParser::parse(QString input) {
+ auto parts = input.split(QRegularExpression("\\s+"), Qt::SkipEmptyParts);
+
+ if (parts.isEmpty())
+ return Cmd();
+
+ auto cmd = toCommandType(parts.first());
+ parts.removeFirst();
+ return Cmd(cmd, parts);
+}
+
+CommandType CommandParser::toCommandType(QString cmd) {
+ if (cmd == "lua")
+ return LuaEval;
+ if (cmd == "open")
+ return Open;
+ if (cmd == "tabopen")
+ return TabOpen;
+ if (cmd == "bn" || cmd == "bnext")
+ return TabNext;
+ if (cmd == "bp" || cmd == "bprevious")
+ return TabPrev;
+
+ return Noop;
+}