7 #ifndef RETDEC_LLVMIR2HLL_HLL_OUTPUT_MANAGERS_JSON_MANAGER_H
8 #define RETDEC_LLVMIR2HLL_HLL_OUTPUT_MANAGERS_JSON_MANAGER_H
12 #include <rapidjson/writer.h>
13 #include <rapidjson/prettywriter.h>
14 #include <rapidjson/stringbuffer.h>
15 #include <rapidjson/encodings.h>
17 #include <llvm/Support/raw_ostream.h>
26 template <
typename Writer>
34 virtual void newLine()
override;
35 virtual void space(
const std::string&
space =
" ")
override;
37 virtual void operatorX(
const std::string& op)
override;
40 virtual void memberId(
const std::string&
id)
override;
41 virtual void labelId(
const std::string&
id)
override;
42 virtual void functionId(
const std::string&
id)
override;
43 virtual void parameterId(
const std::string&
id)
override;
44 virtual void keyword(
const std::string& k)
override;
45 virtual void dataType(
const std::string& t)
override;
46 virtual void preprocessor(
const std::string& p)
override;
47 virtual void include(
const std::string& i)
override;
48 virtual void constantBool(
const std::string& c)
override;
49 virtual void constantInt(
const std::string& c)
override;
62 void jsonToken(
const std::string& k,
const std::string& v);
68 rapidjson::StringBuffer
sb;
71 std::stack<std::pair<Address, bool>>
_addrs;
Definition: json_manager.h:28
Writer writer
Definition: json_manager.h:69
virtual void punctuation(char p) override
Definition: json_manager.cpp:111
virtual void constantBool(const std::string &c) override
Definition: json_manager.cpp:195
virtual void labelId(const std::string &id) override
Definition: json_manager.cpp:146
virtual void space(const std::string &space=" ") override
Definition: json_manager.cpp:104
bool _commentModifierOn
Definition: json_manager.h:85
virtual void include(const std::string &i) override
Definition: json_manager.cpp:188
JsonOutputManager(llvm::raw_ostream &out)
Definition: json_manager.cpp:60
void generateAddressEntry(Address a)
Definition: json_manager.cpp:315
virtual void constantFloat(const std::string &c) override
Definition: json_manager.cpp:209
std::pair< Address, bool > _addrToGenerate
Definition: json_manager.h:72
virtual void addressPop() override
Definition: json_manager.cpp:290
virtual void localVariableId(const std::string &id) override
Definition: json_manager.cpp:132
void jsonToken(const std::string &k, const std::string &v)
Definition: json_manager.cpp:326
virtual void constantPointer(const std::string &c) override
Definition: json_manager.cpp:230
virtual void finalize() override
Definition: json_manager.cpp:73
virtual void addressPush(Address a) override
Definition: json_manager.cpp:255
virtual void globalVariableId(const std::string &id) override
Definition: json_manager.cpp:125
virtual void constantInt(const std::string &c) override
Definition: json_manager.cpp:202
virtual void constantSymbol(const std::string &c) override
Definition: json_manager.cpp:223
virtual void operatorX(const std::string &op) override
Definition: json_manager.cpp:118
virtual void keyword(const std::string &k) override
Definition: json_manager.cpp:167
virtual void comment(const std::string &comment) override
Definition: json_manager.cpp:237
llvm::raw_ostream & _out
Definition: json_manager.h:66
virtual void preprocessor(const std::string &p) override
Definition: json_manager.cpp:181
virtual void newLine() override
Definition: json_manager.cpp:86
virtual void memberId(const std::string &id) override
Definition: json_manager.cpp:139
virtual void dataType(const std::string &t) override
Definition: json_manager.cpp:174
virtual void constantString(const std::string &c) override
Definition: json_manager.cpp:216
virtual void commentModifier() override
Definition: json_manager.cpp:249
virtual void functionId(const std::string &id) override
Definition: json_manager.cpp:153
std::string _runningComment
Definition: json_manager.h:86
std::stack< std::pair< Address, bool > > _addrs
Definition: json_manager.h:71
virtual void parameterId(const std::string &id) override
Definition: json_manager.cpp:160
rapidjson::StringBuffer sb
Definition: json_manager.h:68
Definition: output_manager.h:21
A library providing API for working with back-end IR.
Definition: archive_wrapper.h:19
A base class of all output managers.