summaryrefslogtreecommitdiff
path: root/util/make_pak.cc
diff options
context:
space:
mode:
authorPatrick Simianer <p@simianer.de>2014-09-16 10:23:14 +0100
committerPatrick Simianer <p@simianer.de>2014-09-16 10:23:14 +0100
commit129a22cfcc7651daa4b11ed52e7870249f6373a5 (patch)
tree78de4649396ab0d37a325b7598f9873c2d65f4c9 /util/make_pak.cc
parentdf70006a07fb67b17fb39aa56762c50c2e7b8131 (diff)
spring cleaning
Diffstat (limited to 'util/make_pak.cc')
-rw-r--r--util/make_pak.cc104
1 files changed, 0 insertions, 104 deletions
diff --git a/util/make_pak.cc b/util/make_pak.cc
deleted file mode 100644
index e858155..0000000
--- a/util/make_pak.cc
+++ /dev/null
@@ -1,104 +0,0 @@
-#include <iostream>
-#include <fstream>
-#include <msgpack.hpp>
-#include <msgpack/fbuffer.hpp>
-#include <string>
-
-#include "json-cpp/single_include/json-cpp.hpp"
-#include "../fast/hypergraph.hh"
-#include "../fast/weaver.hh"
-
-using namespace std;
-
-
-struct DummyNode {
- size_t id;
- string symbol;
- vector<short> span;
-};
-
-struct DummyEdge {
- size_t head_id;
- size_t rule_id;
- vector<size_t> tails_ids;
- string f;
- score_t score;
-};
-
-struct DummyHg {
- vector<string> rules;
- vector<DummyNode> nodes;
- vector<DummyEdge> edges;
-};
-
-template<typename X> inline void
-serialize(jsoncpp::Stream<X>& stream, DummyNode& o)
-{
- fields(o, stream, "id", o.id, "symbol", o.symbol, "span", o.span);
-}
-
-template<typename X> inline void
-serialize(jsoncpp::Stream<X>& stream, DummyEdge& o)
-{
- fields(o, stream, "head", o.head_id, "rule", o.rule_id, "tails", o.tails_ids, "score", o.score);
-}
-
-template<typename X> inline void
-serialize(jsoncpp::Stream<X>& stream, DummyHg& o)
-{
- fields(o, stream, "rules", o.rules, "nodes", o.nodes, "edges", o.edges);
-}
-
-int
-main(int argc, char** argv)
-{
- // read from json
- ifstream ifs(argv[1]);
- string json_str((istreambuf_iterator<char>(ifs) ),
- (istreambuf_iterator<char>()));
- DummyHg hg;
- vector<string> rules;
- hg.rules = rules;
- vector<DummyNode> nodes;
- hg.nodes = nodes;
- vector<DummyEdge> edges;
- hg.edges = edges;
- jsoncpp::parse(hg, json_str);
-
- // convert to proper objects
- vector<Hg::Node*> nodes_conv;
- for (const auto it: hg.nodes) {
- Hg::Node* n = new Hg::Node;
- n->id = it.id;
- n->symbol = it.symbol;
- n->left = it.span[0];
- n->right = it.span[1];
- nodes_conv.push_back(n);
- }
- vector<Hg::Edge*> edges_conv;
- for (const auto it: hg.edges) {
- Hg::Edge* e = new Hg::Edge;
- e->head_id_ = it.head_id;
- e->tails_ids_ = it.tails_ids;
- e->score = it.score;
- e->rule_id_ = it.rule_id;
- edges_conv.push_back(e);
- }
-
- // write to msgpack
- FILE* file = fopen(argv[2], "wb");
- msgpack::fbuffer fbuf(file);
- msgpack::pack(fbuf, hg.rules.size());
- msgpack::pack(fbuf, hg.nodes.size());
- msgpack::pack(fbuf, hg.edges.size());
- for (const auto it: hg.rules)
- msgpack::pack(fbuf, it);
- for (const auto it: nodes_conv)
- msgpack::pack(fbuf, *it);
- for (const auto it: edges_conv)
- msgpack::pack(fbuf, *it);
- fclose(file);
-
- return 0;
-}
-