json-related refactor
This commit is contained in:
@@ -6,6 +6,7 @@
|
|||||||
#include "../audio/audio.hpp"
|
#include "../audio/audio.hpp"
|
||||||
#include "../files/files.hpp"
|
#include "../files/files.hpp"
|
||||||
#include "../files/engine_paths.hpp"
|
#include "../files/engine_paths.hpp"
|
||||||
|
#include "../coders/commons.hpp"
|
||||||
#include "../coders/imageio.hpp"
|
#include "../coders/imageio.hpp"
|
||||||
#include "../coders/json.hpp"
|
#include "../coders/json.hpp"
|
||||||
#include "../coders/GLSLExtension.hpp"
|
#include "../coders/GLSLExtension.hpp"
|
||||||
|
|||||||
+14
-14
@@ -11,20 +11,20 @@ namespace dynamic {
|
|||||||
}
|
}
|
||||||
|
|
||||||
namespace json {
|
namespace json {
|
||||||
const int BJSON_END = 0x0;
|
inline constexpr int BJSON_END = 0x0;
|
||||||
const int BJSON_TYPE_DOCUMENT = 0x1;
|
inline constexpr int BJSON_TYPE_DOCUMENT = 0x1;
|
||||||
const int BJSON_TYPE_LIST = 0x2;
|
inline constexpr int BJSON_TYPE_LIST = 0x2;
|
||||||
const int BJSON_TYPE_BYTE = 0x3;
|
inline constexpr int BJSON_TYPE_BYTE = 0x3;
|
||||||
const int BJSON_TYPE_INT16 = 0x4;
|
inline constexpr int BJSON_TYPE_INT16 = 0x4;
|
||||||
const int BJSON_TYPE_INT32 = 0x5;
|
inline constexpr int BJSON_TYPE_INT32 = 0x5;
|
||||||
const int BJSON_TYPE_INT64 = 0x6;
|
inline constexpr int BJSON_TYPE_INT64 = 0x6;
|
||||||
const int BJSON_TYPE_NUMBER = 0x7;
|
inline constexpr int BJSON_TYPE_NUMBER = 0x7;
|
||||||
const int BJSON_TYPE_STRING = 0x8;
|
inline constexpr int BJSON_TYPE_STRING = 0x8;
|
||||||
const int BJSON_TYPE_BYTES = 0x9;
|
inline constexpr int BJSON_TYPE_BYTES = 0x9;
|
||||||
const int BJSON_TYPE_FALSE = 0xA;
|
inline constexpr int BJSON_TYPE_FALSE = 0xA;
|
||||||
const int BJSON_TYPE_TRUE = 0xB;
|
inline constexpr int BJSON_TYPE_TRUE = 0xB;
|
||||||
const int BJSON_TYPE_NULL = 0xC;
|
inline constexpr int BJSON_TYPE_NULL = 0xC;
|
||||||
const int BJSON_TYPE_CDOCUMENT = 0x1F;
|
inline constexpr int BJSON_TYPE_CDOCUMENT = 0x1F;
|
||||||
|
|
||||||
extern std::vector<ubyte> to_binary(const dynamic::Map* obj, bool compress=false);
|
extern std::vector<ubyte> to_binary(const dynamic::Map* obj, bool compress=false);
|
||||||
extern std::shared_ptr<dynamic::Map> from_binary(const ubyte* src, size_t size);
|
extern std::shared_ptr<dynamic::Map> from_binary(const ubyte* src, size_t size);
|
||||||
|
|||||||
+4
-2
@@ -1,5 +1,7 @@
|
|||||||
#include "json.hpp"
|
#include "json.hpp"
|
||||||
|
|
||||||
|
#include "commons.hpp"
|
||||||
|
|
||||||
#include "../data/dynamic.hpp"
|
#include "../data/dynamic.hpp"
|
||||||
#include "../util/stringutil.hpp"
|
#include "../util/stringutil.hpp"
|
||||||
|
|
||||||
@@ -240,11 +242,11 @@ Value Parser::parseValue() {
|
|||||||
throw error("unexpected character '"+std::string({next})+"'");
|
throw error("unexpected character '"+std::string({next})+"'");
|
||||||
}
|
}
|
||||||
|
|
||||||
std::unique_ptr<Map> json::parse(const std::string& filename, const std::string& source) {
|
dynamic::Map_sptr json::parse(const std::string& filename, const std::string& source) {
|
||||||
Parser parser(filename, source);
|
Parser parser(filename, source);
|
||||||
return parser.parse();
|
return parser.parse();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::unique_ptr<Map> json::parse(const std::string& source) {
|
dynamic::Map_sptr json::parse(const std::string& source) {
|
||||||
return parse("<string>", source);
|
return parse("<string>", source);
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-7
@@ -1,21 +1,16 @@
|
|||||||
#ifndef CODERS_JSON_HPP_
|
#ifndef CODERS_JSON_HPP_
|
||||||
#define CODERS_JSON_HPP_
|
#define CODERS_JSON_HPP_
|
||||||
|
|
||||||
#include "commons.hpp"
|
|
||||||
#include "binary_json.hpp"
|
#include "binary_json.hpp"
|
||||||
|
|
||||||
#include "../data/dynamic.hpp"
|
#include "../data/dynamic.hpp"
|
||||||
#include "../typedefs.hpp"
|
#include "../typedefs.hpp"
|
||||||
|
|
||||||
#include <vector>
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <stdint.h>
|
|
||||||
#include <stdexcept>
|
|
||||||
#include <unordered_map>
|
|
||||||
|
|
||||||
namespace json {
|
namespace json {
|
||||||
std::unique_ptr<dynamic::Map> parse(const std::string& filename, const std::string& source);
|
dynamic::Map_sptr parse(const std::string& filename, const std::string& source);
|
||||||
std::unique_ptr<dynamic::Map> parse(const std::string& source);
|
dynamic::Map_sptr parse(const std::string& source);
|
||||||
|
|
||||||
std::string stringify(
|
std::string stringify(
|
||||||
const dynamic::Map* obj,
|
const dynamic::Map* obj,
|
||||||
|
|||||||
+2
-2
@@ -1,5 +1,6 @@
|
|||||||
#include "files.hpp"
|
#include "files.hpp"
|
||||||
|
|
||||||
|
#include "../coders/commons.hpp"
|
||||||
#include "../coders/json.hpp"
|
#include "../coders/json.hpp"
|
||||||
#include "../coders/gzip.hpp"
|
#include "../coders/gzip.hpp"
|
||||||
#include "../util/stringutil.hpp"
|
#include "../util/stringutil.hpp"
|
||||||
@@ -107,8 +108,7 @@ bool files::write_binary_json(fs::path filename, const dynamic::Map* obj, bool c
|
|||||||
std::shared_ptr<dynamic::Map> files::read_json(fs::path filename) {
|
std::shared_ptr<dynamic::Map> files::read_json(fs::path filename) {
|
||||||
std::string text = files::read_string(filename);
|
std::string text = files::read_string(filename);
|
||||||
try {
|
try {
|
||||||
auto obj = json::parse(filename.string(), text);
|
return json::parse(filename.string(), text);;
|
||||||
return obj;
|
|
||||||
} catch (const parsing_error& error) {
|
} catch (const parsing_error& error) {
|
||||||
std::cerr << error.errorLog() << std::endl;
|
std::cerr << error.errorLog() << std::endl;
|
||||||
throw std::runtime_error("could not to parse "+filename.string());
|
throw std::runtime_error("could not to parse "+filename.string());
|
||||||
|
|||||||
@@ -25,10 +25,7 @@ static int l_json_stringify(lua_State* L) {
|
|||||||
static int l_json_parse(lua_State* L) {
|
static int l_json_parse(lua_State* L) {
|
||||||
auto string = lua_tostring(L, 1);
|
auto string = lua_tostring(L, 1);
|
||||||
auto element = json::parse("<string>", string);
|
auto element = json::parse("<string>", string);
|
||||||
auto value = std::make_unique<dynamic::Value>(
|
scripting::state->pushvalue(element);
|
||||||
dynamic::Map_sptr(element.release())
|
|
||||||
);
|
|
||||||
scripting::state->pushvalue(*value);
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -140,9 +140,9 @@ std::string input_util::to_string(keycode code) {
|
|||||||
|
|
||||||
std::string input_util::to_string(mousecode code) {
|
std::string input_util::to_string(mousecode code) {
|
||||||
switch (code) {
|
switch (code) {
|
||||||
case mousecode::BUTTON_1: return "LMB";
|
case mousecode::BUTTON_1: return "LMB";
|
||||||
case mousecode::BUTTON_2: return "RMB";
|
case mousecode::BUTTON_2: return "RMB";
|
||||||
case mousecode::BUTTON_3: return "MMB";
|
case mousecode::BUTTON_3: return "MMB";
|
||||||
|
default: return "unknown button";
|
||||||
}
|
}
|
||||||
return "unknown button";
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user