diff --git a/pkgs/development/tools/parsing/hammer/default.nix b/pkgs/development/tools/parsing/hammer/default.nix new file mode 100644 index 00000000000..7dbbf10b486 --- /dev/null +++ b/pkgs/development/tools/parsing/hammer/default.nix @@ -0,0 +1,29 @@ +{ stdenv, fetchgit, glib, pkgconfig, python, scons, pythonPackages }: + +stdenv.mkDerivation rec { + name = "hammer-${version}"; + version = "e7aa734"; + + src = fetchgit { + url = "git://github.com/UpstandingHackers/hammer"; + sha256 = "1v8f2a6bgjgdkhbqz751bqjlwb9lmqn5x63xcskwcl2b9n36vqi9"; + rev = "e7aa73446e23f4af2fce5f88572aae848f212c16"; + }; + + buildInputs = [ glib pkgconfig python scons ]; + buildPhase = "scons prefix=$out"; + installPhase = "scons prefix=$out install"; + + meta = with stdenv.lib; { + description = "Hammer is a parsing library"; + longDescription = "Hammer is a parsing library. Like many modern parsing libraries, + it provides a parser combinator interface for writing grammars + as inline domain-specific languages, but Hammer also provides a + variety of parsing backends. It's also bit-oriented rather than + character-oriented, making it ideal for parsing binary data such + as images, network packets, audio, and executables."; + homepage = https://github.com/UpstandingHackers/hammer; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} \ No newline at end of file diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 48f9d229801..bac2009cde2 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4595,6 +4595,8 @@ let ragel = callPackage ../development/tools/parsing/ragel { }; + hammer = callPackage ../development/tools/parsing/hammer { }; + re2c = callPackage ../development/tools/parsing/re2c { }; remake = callPackage ../development/tools/build-managers/remake { };