initial CommandParser implementation
This commit is contained in:
@@ -3,3 +3,23 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
#include "CommandParser.h"
|
#include "CommandParser.h"
|
||||||
|
|
||||||
|
CommandParser & CommandParser::getInstance() {
|
||||||
|
static CommandParser instance;
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector<std::string> CommandParser::parseLine(const std::string &input) {
|
||||||
|
std::vector<std::string> output{};
|
||||||
|
/// Konvertiere den Input String in einen IStringStream, damit dieser bei Leerzeichen gesplittet werden kann
|
||||||
|
std::istringstream<char> iss(input);
|
||||||
|
std::string out;
|
||||||
|
do {
|
||||||
|
/// Trenne den IStringStream bei jedem Leerzeichen und füge die Befehl(e)/-sargumente dem Output hinzu
|
||||||
|
std::getline(iss, out, ' ');
|
||||||
|
if (out.at(0) != '#') {
|
||||||
|
output.push_back(out);
|
||||||
|
}
|
||||||
|
} while (!out.empty());
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
|||||||
@@ -4,11 +4,33 @@
|
|||||||
|
|
||||||
#ifndef COMMANDPARSER_H
|
#ifndef COMMANDPARSER_H
|
||||||
#define COMMANDPARSER_H
|
#define COMMANDPARSER_H
|
||||||
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
|
||||||
class CommandParser {
|
class CommandParser {
|
||||||
|
|
||||||
|
private:
|
||||||
|
CommandParser() = default;
|
||||||
|
|
||||||
|
public:
|
||||||
|
/// Singleton Logik
|
||||||
|
CommandParser(const CommandParser&) = delete;
|
||||||
|
CommandParser(const CommandParser&&) = delete;
|
||||||
|
CommandParser& operator=(const CommandParser&) = delete;
|
||||||
|
CommandParser& operator=(const CommandParser&&) = delete;
|
||||||
|
~CommandParser() = default;
|
||||||
|
|
||||||
|
static CommandParser& getInstance();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parst eine Zeile des Assembly Codes und gibt diese als sortierten Vektor zurück
|
||||||
|
*
|
||||||
|
* @param input Eine Zeile aus dem Assembly Code
|
||||||
|
* @return Ein Vektor mit Befehl und dessen Argumenten
|
||||||
|
*/
|
||||||
|
static std::vector<std::string> parseLine(const std::string& input);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user