Added debug waring flags

main
anulax1225 ago%!(EXTRA string=11 months)
parent 7fb4812d0b
commit 5330faae37
  1. 1
      premake5.lua
  2. 1
      src/bakatools/file_system/dir_entry.h
  3. 10
      src/bakatools/file_system/directory.cpp
  4. 4
      src/bakatools/file_system/directory.h
  5. 2
      src/bakatools/file_system/file.h
  6. 5
      src/bakatools/json/json_node.h
  7. 42
      src/bakatools/json/json_parser.cpp
  8. 16
      src/bakatools/json/json_parser.h

@ -36,6 +36,7 @@ project "bakatools"
} }
filter "configurations:Debug" filter "configurations:Debug"
buildoptions { "-Wall", "-Wextra" }
defines defines
{ {
"BK_DEBUG", "BK_DEBUG",

@ -41,7 +41,6 @@ namespace Bk
bool move(std::string path); bool move(std::string path);
bool rename(std::string name); bool rename(std::string name);
virtual int remove() { return (int)false; }
virtual void copy(std::string path, CopyOption opt) {} virtual void copy(std::string path, CopyOption opt) {}

@ -1,9 +1,10 @@
#include "directory.h" #include "directory.h"
namespace Bk { namespace Bk {
bool Directory::create() Directory Directory::create(std::string path)
{ {
return std::filesystem::create_directory(ent.path()); std::filesystem::create_directory(path);
return Directory(path);
} }
std::string Directory::current() std::string Directory::current()
@ -11,9 +12,10 @@ namespace Bk {
return std::filesystem::current_path(); return std::filesystem::current_path();
} }
int Directory::remove() Directory Directory::remove()
{ {
return std::filesystem::remove_all(ent.path()); std::filesystem::remove_all(ent.path());
return Directory(path());
} }
void Directory::copy(std::string path, CopyOption opt) void Directory::copy(std::string path, CopyOption opt)

@ -15,8 +15,8 @@ namespace Bk {
virtual ~Directory() {} virtual ~Directory() {}
bool create(); static Directory create(std::string path);
int remove() override; Directory remove();
void copy(std::string path, CopyOption opt = CopyOption::recursive) override; void copy(std::string path, CopyOption opt = CopyOption::recursive) override;
std::vector<DirEntry> entries(); std::vector<DirEntry> entries();

@ -17,7 +17,7 @@ namespace Bk {
virtual ~File() {} virtual ~File() {}
int remove() override; int remove();
void copy(std::string path, CopyOption opt = CopyOption::overwrite_existing) override; void copy(std::string path, CopyOption opt = CopyOption::overwrite_existing) override;
Type::DataStream read(int size); Type::DataStream read(int size);

@ -6,8 +6,9 @@ namespace Bk::Json
{ {
class Node; class Node;
using Object = std::map<std::string, std::shared_ptr<Node>>; using Pointer = std::shared_ptr<Node>;
using List = std::vector<std::shared_ptr<Node>>; using Object = std::map<std::string, Pointer>;
using List = std::vector<Pointer>;
class Node class Node
{ {

@ -29,7 +29,7 @@ namespace Bk::Json
lexer = Lexer(data); lexer = Lexer(data);
} }
std::shared_ptr<Json::Node> Parser::parse() Pointer Parser::parse()
{ {
Token token; Token token;
while (lexer.has_more_tokens()) { while (lexer.has_more_tokens()) {
@ -40,33 +40,33 @@ namespace Bk::Json
{ {
case TokenType::CURLY_OPEN: case TokenType::CURLY_OPEN:
{ {
std::shared_ptr<Json::Node> parsed_object = parse_object(); Pointer parsed_object = parse_object();
root = parsed_object; root = parsed_object;
break; break;
} }
case TokenType::ARRAY_OPEN: case TokenType::ARRAY_OPEN:
{ {
std::shared_ptr<Json::Node> parsed_list = parse_list(); Pointer parsed_list = parse_list();
root = parsed_list; root = parsed_list;
break; break;
} }
case TokenType::STRING: case TokenType::STRING:
{ {
std::shared_ptr<Json::Node> parsed_string = parse_string(); Pointer parsed_string = parse_string();
root = parsed_string; root = parsed_string;
break; break;
} }
case TokenType::NUMBER: case TokenType::NUMBER:
{ {
std::shared_ptr<Json::Node> parsed_number = parse_number(); Pointer parsed_number = parse_number();
root = parsed_number; root = parsed_number;
break; break;
} }
case TokenType::BOOLEAN: case TokenType::BOOLEAN:
{ {
std::shared_ptr<Json::Node> parsed_boolean = parse_boolean(); Pointer parsed_boolean = parse_boolean();
break; break;
} }
} }
@ -74,7 +74,7 @@ namespace Bk::Json
catch(std::logic_error& e) catch(std::logic_error& e)
{ {
BK_INFO(e.what()); BK_INFO(e.what());
auto node = std::shared_ptr<Json::Node>(); auto node = Pointer();
node->set_null(); node->set_null();
root = node; root = node;
break; break;
@ -83,9 +83,9 @@ namespace Bk::Json
return root; return root;
} }
std::shared_ptr<Json::Node> Parser::parse_list() Pointer Parser::parse_list()
{ {
std::shared_ptr<Json::Node> node = std::make_shared<Json::Node>(); Pointer node = Pointer();
Json::List* list = new Json::List(); Json::List* list = new Json::List();
bool has_completed = false; bool has_completed = false;
Token next_token; Token next_token;
@ -103,7 +103,7 @@ namespace Bk::Json
has_completed = true; has_completed = true;
break; break;
} }
std::shared_ptr<Json::Node> node; Pointer node;
switch (next_token.type) switch (next_token.type)
{ {
case TokenType::ARRAY_OPEN: case TokenType::ARRAY_OPEN:
@ -143,10 +143,10 @@ namespace Bk::Json
return node; return node;
} }
std::shared_ptr<Json::Node> Parser::parse_object() Pointer Parser::parse_object()
{ {
std::string key = ""; std::string key = "";
std::shared_ptr<Json::Node> node = std::make_shared<Json::Node>(); Pointer node = Pointer();
Json::Object *key_object_map = new Json::Object(); Json::Object *key_object_map = new Json::Object();
bool has_completed = false; bool has_completed = false;
bool no_key = true; bool no_key = true;
@ -171,7 +171,7 @@ namespace Bk::Json
next_token = lexer.get_token(); next_token = lexer.get_token();
if (next_token.type == TokenType::COLON || next_token.type == TokenType::COMMA) if (next_token.type == TokenType::COLON || next_token.type == TokenType::COMMA)
continue; continue;
std::shared_ptr<Json::Node> node; Pointer node;
switch (next_token.type) switch (next_token.type)
{ {
case TokenType::STRING: case TokenType::STRING:
@ -223,36 +223,36 @@ namespace Bk::Json
return node; return node;
} }
std::shared_ptr<Json::Node> Parser::parse_string() Pointer Parser::parse_string()
{ {
std::shared_ptr<Json::Node> node = std::make_shared<Json::Node>(); Pointer node = Pointer();
Token token = lexer.roll_back_token(); Token token = lexer.roll_back_token();
std::string *sValue = new std::string(token.value); std::string *sValue = new std::string(token.value);
node->set_string(sValue); node->set_string(sValue);
return node; return node;
} }
std::shared_ptr<Json::Node> Parser::parse_number() Pointer Parser::parse_number()
{ {
std::shared_ptr<Json::Node> node = std::make_shared<Json::Node>(); Pointer node = Pointer();
Token token = lexer.roll_back_token(); Token token = lexer.roll_back_token();
float fValue = std::stof(token.value); float fValue = std::stof(token.value);
node->set_float(fValue); node->set_float(fValue);
return node; return node;
} }
std::shared_ptr<Json::Node> Parser::parse_boolean() Pointer Parser::parse_boolean()
{ {
std::shared_ptr<Json::Node> node = std::make_shared<Json::Node>(); Pointer node = Pointer();
Token token = lexer.roll_back_token(); Token token = lexer.roll_back_token();
bool bValue = token.value == "True" ? true : false; bool bValue = token.value == "True" ? true : false;
node->set_bool(bValue); node->set_bool(bValue);
return node; return node;
} }
std::shared_ptr<Json::Node> Parser::parse_null() Pointer Parser::parse_null()
{ {
std::shared_ptr<Json::Node> node = std::make_shared<Json::Node>(); Pointer node = Pointer();
Token token = lexer.roll_back_token(); Token token = lexer.roll_back_token();
node->set_null(); node->set_null();
return node; return node;

@ -7,16 +7,16 @@ namespace Bk::Json
{ {
class Parser class Parser
{ {
std::shared_ptr<Json::Node> root; Pointer root;
std::unique_ptr<Json::Node> current; std::unique_ptr<Json::Node> current;
Lexer lexer; Lexer lexer;
std::shared_ptr<Json::Node> parse_object(); Pointer parse_object();
std::shared_ptr<Json::Node> parse_string(); Pointer parse_string();
std::shared_ptr<Json::Node> parse_number(); Pointer parse_number();
std::shared_ptr<Json::Node> parse_list(); Pointer parse_list();
std::shared_ptr<Json::Node> parse_boolean(); Pointer parse_boolean();
std::shared_ptr<Json::Node> parse_null(); Pointer parse_null();
public: public:
Parser(const Type::DataStream data) Parser(const Type::DataStream data)
@ -25,6 +25,6 @@ namespace Bk::Json
Parser(const char* data, int length); Parser(const char* data, int length);
Parser(const std::string& str); Parser(const std::string& str);
std::shared_ptr<Json::Node> parse(); Pointer parse();
}; };
} }
Loading…
Cancel
Save