json-related refactor
This commit is contained in:
parent
45862269e7
commit
7fdacffe53
@ -6,6 +6,7 @@
|
||||
#include "../audio/audio.hpp"
|
||||
#include "../files/files.hpp"
|
||||
#include "../files/engine_paths.hpp"
|
||||
#include "../coders/commons.hpp"
|
||||
#include "../coders/imageio.hpp"
|
||||
#include "../coders/json.hpp"
|
||||
#include "../coders/GLSLExtension.hpp"
|
||||
|
||||
@ -11,20 +11,20 @@ namespace dynamic {
|
||||
}
|
||||
|
||||
namespace json {
|
||||
const int BJSON_END = 0x0;
|
||||
const int BJSON_TYPE_DOCUMENT = 0x1;
|
||||
const int BJSON_TYPE_LIST = 0x2;
|
||||
const int BJSON_TYPE_BYTE = 0x3;
|
||||
const int BJSON_TYPE_INT16 = 0x4;
|
||||
const int BJSON_TYPE_INT32 = 0x5;
|
||||
const int BJSON_TYPE_INT64 = 0x6;
|
||||
const int BJSON_TYPE_NUMBER = 0x7;
|
||||
const int BJSON_TYPE_STRING = 0x8;
|
||||
const int BJSON_TYPE_BYTES = 0x9;
|
||||
const int BJSON_TYPE_FALSE = 0xA;
|
||||
const int BJSON_TYPE_TRUE = 0xB;
|
||||
const int BJSON_TYPE_NULL = 0xC;
|
||||
const int BJSON_TYPE_CDOCUMENT = 0x1F;
|
||||
inline constexpr int BJSON_END = 0x0;
|
||||
inline constexpr int BJSON_TYPE_DOCUMENT = 0x1;
|
||||
inline constexpr int BJSON_TYPE_LIST = 0x2;
|
||||
inline constexpr int BJSON_TYPE_BYTE = 0x3;
|
||||
inline constexpr int BJSON_TYPE_INT16 = 0x4;
|
||||
inline constexpr int BJSON_TYPE_INT32 = 0x5;
|
||||
inline constexpr int BJSON_TYPE_INT64 = 0x6;
|
||||
inline constexpr int BJSON_TYPE_NUMBER = 0x7;
|
||||
inline constexpr int BJSON_TYPE_STRING = 0x8;
|
||||
inline constexpr int BJSON_TYPE_BYTES = 0x9;
|
||||
inline constexpr int BJSON_TYPE_FALSE = 0xA;
|
||||
inline constexpr int BJSON_TYPE_TRUE = 0xB;
|
||||
inline constexpr int BJSON_TYPE_NULL = 0xC;
|
||||
inline constexpr int BJSON_TYPE_CDOCUMENT = 0x1F;
|
||||
|
||||
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);
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
#include "json.hpp"
|
||||
|
||||
#include "commons.hpp"
|
||||
|
||||
#include "../data/dynamic.hpp"
|
||||
#include "../util/stringutil.hpp"
|
||||
|
||||
@ -240,11 +242,11 @@ Value Parser::parseValue() {
|
||||
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);
|
||||
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);
|
||||
}
|
||||
|
||||
@ -1,25 +1,20 @@
|
||||
#ifndef CODERS_JSON_HPP_
|
||||
#define CODERS_JSON_HPP_
|
||||
|
||||
#include "commons.hpp"
|
||||
#include "binary_json.hpp"
|
||||
|
||||
#include "../data/dynamic.hpp"
|
||||
#include "../typedefs.hpp"
|
||||
|
||||
#include <vector>
|
||||
#include <string>
|
||||
#include <stdint.h>
|
||||
#include <stdexcept>
|
||||
#include <unordered_map>
|
||||
|
||||
namespace json {
|
||||
std::unique_ptr<dynamic::Map> 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& filename, const std::string& source);
|
||||
dynamic::Map_sptr parse(const std::string& source);
|
||||
|
||||
std::string stringify(
|
||||
const dynamic::Map* obj,
|
||||
bool nice,
|
||||
const dynamic::Map* obj,
|
||||
bool nice,
|
||||
const std::string& indent
|
||||
);
|
||||
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
#include "files.hpp"
|
||||
|
||||
#include "../coders/commons.hpp"
|
||||
#include "../coders/json.hpp"
|
||||
#include "../coders/gzip.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::string text = files::read_string(filename);
|
||||
try {
|
||||
auto obj = json::parse(filename.string(), text);
|
||||
return obj;
|
||||
return json::parse(filename.string(), text);;
|
||||
} catch (const parsing_error& error) {
|
||||
std::cerr << error.errorLog() << std::endl;
|
||||
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) {
|
||||
auto string = lua_tostring(L, 1);
|
||||
auto element = json::parse("<string>", string);
|
||||
auto value = std::make_unique<dynamic::Value>(
|
||||
dynamic::Map_sptr(element.release())
|
||||
);
|
||||
scripting::state->pushvalue(*value);
|
||||
scripting::state->pushvalue(element);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
@ -140,9 +140,9 @@ std::string input_util::to_string(keycode code) {
|
||||
|
||||
std::string input_util::to_string(mousecode code) {
|
||||
switch (code) {
|
||||
case mousecode::BUTTON_1: return "LMB";
|
||||
case mousecode::BUTTON_2: return "RMB";
|
||||
case mousecode::BUTTON_3: return "MMB";
|
||||
case mousecode::BUTTON_1: return "LMB";
|
||||
case mousecode::BUTTON_2: return "RMB";
|
||||
case mousecode::BUTTON_3: return "MMB";
|
||||
default: return "unknown button";
|
||||
}
|
||||
return "unknown button";
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user