Skip to content

Commit

Permalink
libnixt/tools/nixt-decode: init
Browse files Browse the repository at this point in the history
  • Loading branch information
inclyc committed Apr 8, 2024
1 parent d4f69ac commit 1e23316
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 0 deletions.
2 changes: 2 additions & 0 deletions libnixt/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ libnixt_test_exe = executable(
dependencies: [ gtest_main, nixt ]
)

subdir('tools')

test(
'unit/libnixt',
libnixt_test_exe,
Expand Down
1 change: 1 addition & 0 deletions libnixt/tools/meson.build
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
subdir('nixt-decode')
30 changes: 30 additions & 0 deletions libnixt/tools/nixt-decode/Main.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#include "nixt/Deserialize.h"
#include "nixt/HookExpr.h"
#include "nixt/InitEval.h"
#include "nixt/PtrPool.h"

int main() {
nixt::initEval();
std::unique_ptr<nix::EvalState> State(
new nix::EvalState{{}, nix::openStore("dummy://")});

std::ostringstream Inputs;
Inputs << std::cin.rdbuf();
std::string DataBuf = Inputs.str();

std::string_view Data(DataBuf);

nixt::PtrPool<nix::Expr> Pool;

nixt::ValueMap VMap;
nixt::EnvMap EMap;
nix::Pos::Origin O = nix::Pos::none_tag{};

nixt::DeserializeContext Ctx = nixt::getDeserializeContext(*State, ".", O);

auto *AST = nixt::deserializeHookable(Data, Ctx, Pool, VMap, EMap);

AST->show(State->symbols, std::cout);

return 0;
}
5 changes: 5 additions & 0 deletions libnixt/tools/nixt-decode/meson.build
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
executable('nixt-decode',
'Main.cpp',
install: true,
dependencies: [ nixt ]
)

0 comments on commit 1e23316

Please sign in to comment.