summaryrefslogtreecommitdiff
path: root/tools/jsonproc/jsonproc.cpp
diff options
context:
space:
mode:
authorCleverking2003 <30466983+Cleverking2003@users.noreply.github.com>2020-06-19 00:02:21 +0300
committerGitHub <noreply@github.com>2020-06-19 00:02:21 +0300
commita455bac566535ec559aac9164e05781093653057 (patch)
treed7adbe4bb91cce929d5fcb1bb26d992474639afa /tools/jsonproc/jsonproc.cpp
parentf20e222730ad06a967eb1003f38f100fa81fed43 (diff)
parentc2ca3c0c4fc49a19554c202e45a990c61752e15d (diff)
Merge pull request #171 from PikalaxALT/pikalax_work
KNARC: Add handling of .knarcignore, .knarckeep; fix up cli; implement o2narc for poketool/personal/*.narc
Diffstat (limited to 'tools/jsonproc/jsonproc.cpp')
-rw-r--r--tools/jsonproc/jsonproc.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/tools/jsonproc/jsonproc.cpp b/tools/jsonproc/jsonproc.cpp
index f70c9131..bcbe53e4 100644
--- a/tools/jsonproc/jsonproc.cpp
+++ b/tools/jsonproc/jsonproc.cpp
@@ -5,6 +5,7 @@
#include <map>
#include <string>
+#include <sstream>
using std::string; using std::to_string;
#include <inja.hpp>
@@ -53,6 +54,21 @@ int main(int argc, char *argv[])
return minuend - subtrahend;
});
+ env.add_callback("add", 2, [](Arguments& args) {
+ int x = args.at(0)->get<int>();
+ int y = args.at(1)->get<int>();
+
+ return x + y;
+ });
+
+ env.add_callback("setBit", 2, [=](Arguments& args) {
+ string key = args.at(0)->get<string>();
+ unsigned long value = std::stoul(get_custom_var(key));
+ value |= (1 << (args.at(1)->get<int>()));
+ set_custom_var(key, to_string(value));
+ return "";
+ });
+
env.add_callback("setVar", 2, [=](Arguments& args) {
string key = args.at(0)->get<string>();
string value = args.at(1)->get<string>();
@@ -72,6 +88,15 @@ int main(int argc, char *argv[])
return get_custom_var(key);
});
+ env.add_callback("getVarHex", 1, [=](Arguments& args) {
+ string key = args.at(0)->get<string>();
+ unsigned long value = std::stoul(get_custom_var(key));
+ std::stringstream ss;
+ ss << "0x" << std::hex << (value & 0xFFFFFFFFul);
+ string s = ss.str();
+ return s;
+ });
+
env.add_callback("concat", 2, [](Arguments& args) {
string first = args.at(0)->get<string>();
string second = args.at(1)->get<string>();