summaryrefslogtreecommitdiff
path: root/tools/jsonproc
diff options
context:
space:
mode:
authorCleverking2003 <30466983+Cleverking2003@users.noreply.github.com>2020-06-19 00:02:47 +0300
committerGitHub <noreply@github.com>2020-06-19 00:02:47 +0300
commit41317a2b7625919ebba39c06b5aaf9e3b0800b1d (patch)
tree1780ce6f8ee57a163b95beaa99e45e6aed776346 /tools/jsonproc
parente3077928198b2f51854812bcd04e1ebe1e6112f5 (diff)
parenta455bac566535ec559aac9164e05781093653057 (diff)
Merge branch 'master' into master
Diffstat (limited to 'tools/jsonproc')
-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>();