diff options
| author | Dennis Brentjes <d.brentjes@gmail.com> | 2016-06-22 16:18:02 +0200 |
|---|---|---|
| committer | Dennis Brentjes <d.brentjes@gmail.com> | 2016-06-22 16:41:11 +0200 |
| commit | 0f2d7c9ed9dfa3716840fc112bd53e5ec6b6315b (patch) | |
| tree | a90760b1780d187028475bcb4080794f88ddc858 /le | |
| parent | 22231518b9c2c0b7f73c72a6ca834df659c63c7f (diff) | |
| download | openwar-0f2d7c9ed9dfa3716840fc112bd53e5ec6b6315b.tar.gz openwar-0f2d7c9ed9dfa3716840fc112bd53e5ec6b6315b.tar.bz2 openwar-0f2d7c9ed9dfa3716840fc112bd53e5ec6b6315b.zip | |
adds a tree format printer for "binparse" types.
Diffstat (limited to 'le')
| -rw-r--r-- | le/le_file.cpp | 3 | ||||
| -rw-r--r-- | le/le_file_parser.cpp | 5 | ||||
| -rw-r--r-- | le/le_object_table.cpp | 7 | ||||
| -rw-r--r-- | le/le_object_table.hpp | 2 |
4 files changed, 14 insertions, 3 deletions
diff --git a/le/le_file.cpp b/le/le_file.cpp index b01f13e..4a9f57e 100644 --- a/le/le_file.cpp +++ b/le/le_file.cpp @@ -37,6 +37,8 @@ File parse_file(std::istream& is) { auto le_h = le::parse_header(is); + auto object_table = parse_object_table(is, le_offset + le_h.object_table_offset, le_h.nr_objects_in_module); + return { mz_h, unused, @@ -45,6 +47,7 @@ File parse_file(std::istream& is) { le_offset, dos_exe, le_h, + object_table, }; } diff --git a/le/le_file_parser.cpp b/le/le_file_parser.cpp index 2d5eed9..fe34857 100644 --- a/le/le_file_parser.cpp +++ b/le/le_file_parser.cpp @@ -1,6 +1,8 @@ #include "le_file.hpp" +#include "otreestream.hpp" + #include <boost/program_options.hpp> #include <boost/filesystem.hpp> @@ -50,7 +52,8 @@ int main(int argc, char* argv[]) { std::ifstream file(file_path.string()); auto x = le::parse_file(file); - std::cout << x << std::endl; + binparse::otreestream treestream (std::cout); + treestream << x << std::endl; return 0; } diff --git a/le/le_object_table.cpp b/le/le_object_table.cpp index 1155c35..3e87fb0 100644 --- a/le/le_object_table.cpp +++ b/le/le_object_table.cpp @@ -1,5 +1,9 @@ #include "le_object_table.hpp" +#include "output.hpp" + +#include <iostream> + namespace le { ObjectTable parse_object_table(std::istream& is, Offset32 offset, Value32 nr_objects) @@ -12,12 +16,13 @@ ObjectTable parse_object_table(std::istream& is, Offset32 offset, Value32 nr_obj for(Value32 i = Value32(0); i < nr_objects; i++) { table.entries.emplace(i+1, parse_object_table_entry(is)); } + return table; } std::ostream& operator<<(std::ostream& os, const ObjectTable& table) { - return os; + return binparse::operator<<(os, table.entries); } }
\ No newline at end of file diff --git a/le/le_object_table.hpp b/le/le_object_table.hpp index 8c57c60..c840734 100644 --- a/le/le_object_table.hpp +++ b/le/le_object_table.hpp @@ -13,5 +13,5 @@ struct ObjectTable { ObjectTable parse_object_table(std::istream& is, Offset32 offset, Value32 nr_objects); std::ostream& operator<<(std::ostream& os, ObjectTable const& table); - + }
\ No newline at end of file |
