# Install byacc with Homebrew, apk, apt, dnf, MacPorts, Nix, pacman, scoop, zypper

(Arguably) the best yacc variant. Version 20260126 via Homebrew; verified from local package data.

## Install

```sh
sudo av install brew:byacc
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install byacc
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install byacc
```

  Evidence: MacPorts ports tree: devel/byacc/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- apk (92%):

```sh
sudo apk add byacc
```

  Evidence: Alpine Linux edge package indexes: byacc from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz

- Debian apt (92%):

```sh
sudo apt install byacc
```

  Evidence: Debian stable package indexes: byacc from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- dnf (92%):

```sh
sudo dnf install byacc
```

  Evidence: Fedora Rawhide package metadata: byacc from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst

- Nix (92%):

```sh
nix profile install nixpkgs#byacc
```

  Evidence: nixpkgs package indexes: pkgs/by-name/by/byacc/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- pacman (92%):

```sh
sudo pacman -S byacc
```

  Evidence: Arch Linux sync databases: byacc from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

- zypper (92%):

```sh
sudo zypper install byacc
```

  Evidence: openSUSE Tumbleweed package metadata: byacc from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst

### Windows

- Scoop (92%):

```sh
scoop install main/byacc
```

  Evidence: Scoop official bucket manifest trees: bucket/byacc.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1

## Package facts

- **Package key:** brew:byacc
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/byacc>
- **Version:** 20260126
- **Source summary:** (Arguably) the best yacc variant
- **Homepage:** <https://invisible-island.net/byacc/>
- **Upstream docs:** <https://invisible-island.net/byacc>
- **License:** LicenseRef-Homebrew-public-domain
- **Source archive:** <https://invisible-mirror.net/archives/byacc/byacc-20260126.tgz>
- **Generated:** 2026-07-07T07:26:23+00:00

## Executables

- byacc (cli)
- byacc (alias)

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-07
- Package-manager version: 20260126
- Local data: ok
- Upstream repository: https://invisible-island.net/byacc/
- info: No package-manager update timestamp was available.
- info: Release/tag comparison is only available for GitHub repositories.
## Project history and usage

Berkeley Yacc, usually packaged as byacc, is a public-domain yacc-compatible LALR(1) parser generator. It is valued as a small, portable yacc implementation that avoids the heavier dependencies and dialect assumptions of some alternatives.

### Project history

Thomas E. Dickey's official BYACC page says Robert Corbett wrote byacc around 1990 and notes Corbett was also the original author of bison. The page cites its compatibility with original yacc and records that Dickey later converted the original K&R C source to ANSI C and continued maintaining it.

The original README, preserved in the maintained source tree, states that Berkeley Yacc accepts input conforming to AT&T yacc documentation, is distributed in the public domain, and allows generated parsers to be distributed freely.

### Adoption history

BYACC became popular because it was fast, BSD/public-domain-friendly, and yacc-compatible. The official page quotes John Levine's later account that Corbett's implementation was faster than AT&T yacc and quickly became the most popular yacc variant.

The official related-links section points to Debian packages, FreeBSD and NetBSD sources or package collections, and notes that FreeBSD imported this maintained version into its vendor tree in 2012. The supplied package facts show broad packaging across Homebrew, Alpine, Debian, Fedora, MacPorts, Nix, Pacman, Scoop, Ubuntu, and zypper.

### How it is used

byacc is used as a yacc replacement in build systems and compiler-toolchain work: it reads a grammar and emits C parser source. It is often chosen when projects want yacc compatibility, small generated output, permissive/public-domain licensing, and portability to non-GCC or older C environments.

### Why package nerds care

byacc is package-nerd significant because it is one of the classic parser generators that still matters in modern ports trees. It is tiny but strategically important: swapping yacc implementations can change generated C, expose build assumptions, or avoid a dependency on GNU bison.

Its public-domain status and generated-parser licensing are part of why it persists in base systems, embedded build environments, and conservative packaging stacks.

### Timeline

- 1990: Robert Corbett writes Berkeley Yacc around this period, according to the official history page.
- 1992: O'Reilly's Lex & Yacc notes byacc compatibility with original yacc, as summarized by the official page.
- 2000: Thomas E. Dickey begins ANSI C portability work while porting software to VMS.
- 2005: Dickey notes reviewing FreeBSD versus bison YYPARSE_PARAM compatibility.
- 2012: FreeBSD imports Dickey's maintained version into its vendor tree, according to the official related-links section.
- 2026: The official CHANGES file shows continuing maintenance.

### Related projects

- AT&T yacc is the compatibility baseline.
- GNU bison is the major alternative yacc-family parser generator.
- Perl-Byacc, BYACC/J, and BtYacc are related derivatives or extensions named by the official related-links section.
- flex and lex are commonly paired lexical-scanner tools in yacc-based workflows.

### Sources

- <https://github.com/ThomasDickey/byacc-snapshots>
- <https://invisible-island.net/byacc/CHANGES>
- <https://invisible-island.net/byacc/byacc.html>
- source_facts.package-manager


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** byacc
- **Version Scheme:** 0
- **Revision:** 0
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** stable

## Other Package-Manager Records

- Debian apt - byacc - 1:2.0.20241231-1: normalized package name match | Debian stable package indexes: byacc from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | public domain Berkeley LALR Yacc parser generator | https://invisible-island.net/byacc/
- Nix - byacc: normalized package name match | nixpkgs package indexes: pkgs/by-name/by/byacc/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - byacc - 1:2.0.20221106-1: normalized package name match | Ubuntu 24.04 LTS package indexes: byacc from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | public domain Berkeley LALR Yacc parser generator | https://invisible-island.net/byacc/
- apk - byacc - 20260126-r0: normalized package name match | Alpine Linux edge package indexes: byacc from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz | The Berkeley Yacc general-purpose parser generator | https://invisible-island.net/byacc/byacc.html
- apk - byacc-doc - 20260126-r0: normalized package name match | Alpine Linux edge package indexes: byacc-doc from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz | The Berkeley Yacc general-purpose parser generator (documentation) | https://invisible-island.net/byacc/byacc.html
- dnf - byacc - 2.0.20241231-3.fc44: normalized package name match | Fedora Rawhide package metadata: byacc from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Berkeley Yacc, a parser generator | http://invisible-island.net/byacc/byacc.html
- pacman - byacc - 20260126-1: normalized package name match | Arch Linux sync databases: byacc from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | Berkeley reimplementation of the Unix parser generator Yacc | https://invisible-island.net/byacc/
- zypper - byacc - 20260126-1.1: normalized package name match | openSUSE Tumbleweed package metadata: byacc from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | LALR(1) parser generator | https://invisible-island.net/byacc/byacc.html
- MacPorts - byacc: normalized package name match | MacPorts ports tree: devel/byacc/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1
- Scoop - main/byacc: normalized package name match | Scoop official bucket manifest trees: bucket/byacc.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1


## Related links

- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Developer build packages](https://www.automicvault.com/pkg/developer-build-tools/) - Matched build, compiler, generator, or developer workflow metadata.
- [Language runtime packages](https://www.automicvault.com/pkg/language-runtime-packages/) - Matched language runtime, compiler, or interpreter metadata.
- [peg](https://www.automicvault.com/pkg/brew/peg/) - Shares av.db curated category or tags: c, cli, compiler-tools, developer-tools, parser-generator.
- [menhir](https://www.automicvault.com/pkg/brew/menhir/) - Shares av.db curated category or tags: cli, compiler-tools, developer-tools, parser-generator.
- [bison](https://www.automicvault.com/pkg/brew/bison/) - Shares av.db curated category or tags: cli, compiler-tools, developer-tools, parser-generator, yacc.
- [javacc](https://www.automicvault.com/pkg/brew/javacc/) - Shares av.db curated category or tags: cli, developer-tools, parser-generator.
- [tree-sitter-cli](https://www.automicvault.com/pkg/brew/tree-sitter-cli/) - Shares av.db curated category or tags: cli, developer-tools, parser-generator.
- [goyacc](https://www.automicvault.com/pkg/brew/goyacc/) - Shares av.db curated category or tags: cli, developer-tools, parser-generator, yacc.
- [lemon](https://www.automicvault.com/pkg/brew/lemon/) - Shares av.db curated category or tags: cli, developer-tools, lalr, parser-generator.
- [mcpp](https://www.automicvault.com/pkg/brew/mcpp/) - Shares av.db curated category or tags: c, cli, compiler-tools, developer-tools.

## Combined YAML source

View the package source record on GitHub. [combined/byacc.yml](https://github.com/automic-vault/db/blob/main/combined/byacc.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
