upd: first version of lexer

This commit is contained in:
2023-12-13 08:59:59 +00:00
parent 132eeded36
commit 2d18a302f2
7 changed files with 545 additions and 8 deletions

View File

@ -19,11 +19,16 @@ class UserDataBase {
class BookDataBase {
DriveArray<BookItemClass> full_book_data;
String2Index indexer;
String2Index keyword2index;
public:
void Open(std::string file_name);
};
class LogDataBase {
DriveArray<FinanceItemClass> finance_data;
DriveArray<OperationLogItemClass> operation_log_data;
public:
void Open(std::string file_name);
};
#endif // PROTECTOR_DATABASE_HPP

View File

@ -9,11 +9,42 @@
class BookStoreEngineClass {
std::string config_dir;
UserDataBase user_data_base;
BookDataBase book_data_base;
LogDataBase log_data_base;
bool is_server;
public:
BookStoreEngineClass() = delete;
BookStoreEngineClass(std::string __config_dir, bool __is_server);
std::vector<std::string> Execute(const std::string &cmd,
std::stack<std::string> &login_stack);
std::stack<std::pair<std::string, std::string>> &login_stack);
std::vector<std::string> ExecuteSu(const std::string &cmd,
std::stack<std::pair<std::string, std::string>> &login_stack);
std::vector<std::string> ExecuteLogout(const std::string &cmd,
std::stack<std::pair<std::string, std::string>> &login_stack);
std::vector<std::string> ExecuteRegister(
const std::string &cmd, std::stack<std::pair<std::string, std::string>> &login_stack);
std::vector<std::string> ExecutePasswd(const std::string &cmd,
std::stack<std::pair<std::string, std::string>> &login_stack);
std::vector<std::string> ExecuteUserAdd(const std::string &cmd,
std::stack<std::pair<std::string, std::string>> &login_stack);
std::vector<std::string> ExecuteDelete(const std::string &cmd,
std::stack<std::pair<std::string, std::string>> &login_stack);
std::vector<std::string> ExecuteShow(const std::string &cmd,
std::stack<std::pair<std::string, std::string>> &login_stack);
std::vector<std::string> ExecuteBuy(const std::string &cmd,
std::stack<std::pair<std::string, std::string>> &login_stack);
std::vector<std::string> ExecuteSelect(const std::string &cmd,
std::stack<std::pair<std::string, std::string>> &login_stack);
std::vector<std::string> ExecuteMOdify(const std::string &cmd,
std::stack<std::pair<std::string, std::string>> &login_stack);
std::vector<std::string> ExecuteImport(const std::string &cmd,
std::stack<std::pair<std::string, std::string>> &login_stack);
std::vector<std::string> ExecuteShowFinance(
const std::string &cmd, std::stack<std::pair<std::string, std::string>> &login_stack);
std::vector<std::string> ExecuteLog(const std::string &cmd,
std::stack<std::pair<std::string, std::string>> &login_stack);
std::vector<std::string> ExecuteReport(const std::string &cmd,
std::stack<std::pair<std::string, std::string>> &login_stack);
};
#endif // PROTECTOR_ENGINE_H

View File

@ -4,7 +4,27 @@
#include <sstream>
#include <string>
#include <vector>
bool CommandSuLexer(const std::string &command, std::string &user_id,
std::string &password);
bool CommandLogoutLexer(const std::string &command);
bool CommandRegisterLexer(const std::string &command, std::string &user_id,
std::string &password, std::string &username);
bool CommandPasswdLexer(const std::string &command, std::string &user_id,
std::string &old_password, std::string &new_password);
bool CommandUseraddLexer(const std::string &command, std::string &user_id,
std::string &password, int &privilege,
std::string &username);
bool CommandDeleteLexer(const std::string &command, std::string &user_id);
bool CommandShowLexer(const std::string &command, std::string &ISBN,
std::string &name, std::string &author,
std::string &keyword);
bool CommandBuyLexer(const std::string &command, std::string &ISBN,
int &quantity);
bool CommandSelectLexer(const std::string &command, std::string &ISBN);
bool CommandModifyLexer(const std::string &command, std::string &ISBN,
std::string &name, std::string &author,
std::string &keyword, double &price);
bool CommandImportLexer(const std::string &command, int &quantity,
double &total_cost);
bool CommandShowfinanceLexer(const std::string &command,int &count);
#endif // PROTECTOR_LEXER_H