diff --git a/pkgs/development/tools/parsing/bison/default.nix b/pkgs/development/tools/parsing/bison/2.x.nix similarity index 100% rename from pkgs/development/tools/parsing/bison/default.nix rename to pkgs/development/tools/parsing/bison/2.x.nix diff --git a/pkgs/development/tools/parsing/bison/3.x.nix b/pkgs/development/tools/parsing/bison/3.x.nix new file mode 100644 index 00000000000..63ceb7d6b6a --- /dev/null +++ b/pkgs/development/tools/parsing/bison/3.x.nix @@ -0,0 +1,40 @@ +{ stdenv, fetchurl, m4, perl }: + +stdenv.mkDerivation rec { + name = "bison-3.0"; + + src = fetchurl { + url = "mirror://gnu/bison/${name}.tar.xz"; + sha256 = "1j14fqgi9wzqgsy4fhkcdrv4hv6rrvhvn84axs520w9b022mbb79"; + }; + + nativeBuildInputs = [ m4 ] ++ stdenv.lib.optional doCheck perl; + propagatedBuildInputs = [ m4 ]; + + doCheck = true; + + meta = { + homepage = "http://www.gnu.org/software/bison/"; + description = "GNU Bison, a Yacc-compatible parser generator"; + license = "GPLv3+"; + + longDescription = '' + Bison is a general-purpose parser generator that converts an + annotated context-free grammar into an LALR(1) or GLR parser for + that grammar. Once you are proficient with Bison, you can use + it to develop a wide range of language parsers, from those used + in simple desk calculators to complex programming languages. + + Bison is upward compatible with Yacc: all properly-written Yacc + grammars ought to work with Bison with no change. Anyone + familiar with Yacc should be able to use Bison with little + trouble. You need to be fluent in C or C++ programming in order + to use Bison. + ''; + + maintainers = [ stdenv.lib.maintainers.ludo stdenv.lib.maintainers.simons ]; + platforms = stdenv.lib.platforms.unix; + }; + + passthru = { glrSupport = true; }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 4758e7e6d2d..7fc37fc8790 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3319,7 +3319,9 @@ let cross = assert crossSystem != null; crossSystem; })); - bison = callPackage ../development/tools/parsing/bison { }; + bison2 = callPackage ../development/tools/parsing/bison/2.x.nix { }; + bison3 = callPackage ../development/tools/parsing/bison/3.x.nix { }; + bison = bison2; buildbot = callPackage ../development/tools/build-managers/buildbot { inherit (pythonPackages) twisted jinja2 sqlalchemy sqlalchemy_migrate;