initial CommandParser implementation
This commit is contained in:
@@ -3,3 +3,23 @@
|
||||
//
|
||||
|
||||
#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
|
||||
#define COMMANDPARSER_H
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
|
||||
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