diff --git a/pkgs/development/ocaml-modules/earley/default.nix b/pkgs/development/ocaml-modules/earley/default.nix new file mode 100644 index 000000000000..576d9b2528f5 --- /dev/null +++ b/pkgs/development/ocaml-modules/earley/default.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchFromGitHub, which, ocaml, findlib, ocamlbuild }: + +if !stdenv.lib.versionAtLeast ocaml.version "4.03" +then throw "earley is not available for OCaml ${ocaml.version}" +else + +stdenv.mkDerivation rec { + version = "1.0.2"; + name = "ocaml${ocaml.version}-earley-${version}"; + src = fetchFromGitHub { + owner = "rlepigre"; + repo = "ocaml-earley"; + rev = "ocaml-earley_${version}"; + sha256 = "110njakmx1hyq42hyr6gx6qhaxly860whfhd6r0vks4yfp68qvcx"; + }; + + buildInputs = [ which ocaml findlib ocamlbuild ]; + + createFindlibDestdir = true; + + meta = { + description = "Parser combinators based on Earley Algorithm"; + license = stdenv.lib.licenses.cecill-b; + maintainers = [ stdenv.lib.maintainers.vbgl ]; + inherit (ocaml.meta) platforms; + inherit (src.meta) homepage; + }; +} diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index bce2662abfd1..e46888992f77 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -215,6 +215,8 @@ let dtoa = callPackage ../development/ocaml-modules/dtoa { }; + earley = callPackage ../development/ocaml-modules/earley { }; + easy-format = callPackage ../development/ocaml-modules/easy-format { }; eliom = callPackage ../development/ocaml-modules/eliom { };