From e73d4f3cfbc24bbb8f60cf696c07cf8799310fbc Mon Sep 17 00:00:00 2001 From: anulax1225 Date: Thu, 6 Jun 2024 12:00:42 +0200 Subject: [PATCH] Working json --- premake5.lua | 1 + src/bakatools/json/json_lexer.h | 1 - src/bakatools/json/json_node.cpp | 59 +++++++++++++++--------------- src/bakatools/json/json_node.h | 2 +- src/bakatools/json/json_parser.cpp | 2 +- src/bakatools/json/json_parser.h | 2 - src/bakatoolspch.h | 3 +- 7 files changed, 35 insertions(+), 35 deletions(-) diff --git a/premake5.lua b/premake5.lua index 2e0b548..06c1305 100644 --- a/premake5.lua +++ b/premake5.lua @@ -8,6 +8,7 @@ project "bakatools" targetdir("%{wks.location}/bin/" .. outputdir .. "/%{prj.name}") objdir("%{wks.location}/bin-int/" .. outputdir .. "/%{prj.name}") + --buildoptions { "-Wall", "-Wextra" } includedirs { "%{IncludeDirs.spdlog}", diff --git a/src/bakatools/json/json_lexer.h b/src/bakatools/json/json_lexer.h index dc08329..45e5999 100644 --- a/src/bakatools/json/json_lexer.h +++ b/src/bakatools/json/json_lexer.h @@ -4,7 +4,6 @@ #include #include #include -#include #include "json_node.h" namespace Bk::Json diff --git a/src/bakatools/json/json_node.cpp b/src/bakatools/json/json_node.cpp index 4ac1cae..fe45294 100644 --- a/src/bakatools/json/json_node.cpp +++ b/src/bakatools/json/json_node.cpp @@ -2,63 +2,64 @@ namespace Bk::Json { std::string Node::to_string(int indent) { - std::string spaceString = std::string(indent, ' '); - std::string outputString = ""; + std::string space_string = std::string(indent, ' '); + std::string output_string = ""; switch (type) { case Type::STRING: { - outputString += spaceString + *values.s; - break; + output_string += '"' + *values.s + '"'; + return output_string; } case Type::NUMBER: { - outputString += spaceString + std::to_string(values.fValue); - break; + output_string += std::to_string(values.fValue); + return output_string; } case Type::BOOLEAN: { - outputString += spaceString + (values.bValue ? "true" : "false"); - break; + output_string += (values.bValue ? "true" : "false"); + return output_string; } case Type::NULL_TYPE: { - outputString += spaceString + "null"; - break; + output_string += "null"; + return output_string; } case Type::LIST: { - // std::cout << "["; - outputString += spaceString + "[\n"; - int index = 0; - for (auto node : (*values.list)) { - outputString += node->toString(indent + 1); - if (index < (*values.list).size() - 1) { - outputString += ",\n"; + output_string += "\n" + space_string + "[\n";; + for (int i = 0; i < (*values.list).size() - 1; i++) + { + output_string += get_list()[i]->to_string(indent + 4); + if (i < (*values.list).size() - 2) + { + output_string += ",\n"; + } else { + break; } - index++; } - outputString += "\n" + spaceString + "]\n"; - break; + output_string += "\n" + space_string + "]"; + return output_string; } case Type::OBJECT: { - outputString += spaceString + "{\n"; - for (JSONObject::iterator i = (*values.object).begin(); i != (*values.object).end(); i++) + output_string += space_string + "{\n"; + for (Object::iterator i = (*values.object).begin(); i != (*values.object).end(); i++) { - outputString += spaceString + " " + "\"" + i->first + "\"" + ": "; - outputString += i->second->toString(indent + 1); - JSONObject::iterator next = i; + output_string += space_string + " " + "\"" + i->first + "\"" + ": "; + output_string += i->second->to_string(indent + 4); + Object::iterator next = i; next++; if ((next) != (*values.object).end()) { - outputString += ",\n"; + output_string += ",\n"; } - outputString += spaceString + "\n"; } - outputString += spaceString + "}"; + output_string += "\n" + space_string + "}"; + return output_string; } } - return outputString; + return ""; } void Node::set_object(Object *object) { diff --git a/src/bakatools/json/json_node.h b/src/bakatools/json/json_node.h index 36305c0..396a3e9 100644 --- a/src/bakatools/json/json_node.h +++ b/src/bakatools/json/json_node.h @@ -39,7 +39,7 @@ namespace Bk::Json void set_null(); bool is_null(); - std::string to_string(int indent = 3); + std::string to_string(int indent = 0); private: union Values { diff --git a/src/bakatools/json/json_parser.cpp b/src/bakatools/json/json_parser.cpp index 499ac59..96688ed 100644 --- a/src/bakatools/json/json_parser.cpp +++ b/src/bakatools/json/json_parser.cpp @@ -76,7 +76,7 @@ namespace Bk::Json } } } - catch(std::logic_error e) + catch(std::logic_error& e) { BK_INFO(e.what()); auto node = std::shared_ptr(); diff --git a/src/bakatools/json/json_parser.h b/src/bakatools/json/json_parser.h index d5c3f33..8c2fcf7 100644 --- a/src/bakatools/json/json_parser.h +++ b/src/bakatools/json/json_parser.h @@ -1,8 +1,6 @@ #pragma once #include -#include -#include #include "json_lexer.h" namespace Bk::Json diff --git a/src/bakatoolspch.h b/src/bakatoolspch.h index 6df523c..45d9f78 100644 --- a/src/bakatoolspch.h +++ b/src/bakatoolspch.h @@ -19,4 +19,5 @@ #include #include -#include \ No newline at end of file +#include +#include \ No newline at end of file