Files
Text-Adventure/Engine/headers/CommandParser.h
T

35 lines
944 B
C++
Raw Normal View History

2026-08-07 13:10:07 -05:00
#pragma once
#include <map>
#include <string>
#include <vector>
2026-08-21 15:52:12 -05:00
typedef int (*FUNCTION)(const std::string &s);
2026-08-07 13:10:07 -05:00
static std::vector<std::string> Verbs{"Quit", "Exit", "Go", "Move", "Look"};
static std::vector<std::string> Nouns{"Object", "Door", "North", "South", "East",
"West", "Up", "Down", "Left", "right"};
class CommandParser {
private:
std::map<std::string, FUNCTION> commands;
public:
CommandParser();
bool AddCommand(std::string c, FUNCTION f);
void RemoveCommand(std::string c);
std::vector<std::string> Verb(std::stringstream &sentences);
std::vector<std::string> Noun(std::stringstream &sentences);
inline friend void swap(CommandParser& lhs, CommandParser& rhs)
{
using std::swap;
swap(lhs.commands, rhs.commands);
}
2026-08-07 13:10:07 -05:00
static inline void CommandUnrecognized() { printf("I don't know how to do that.\n"); }
int Parse();
};