pkg.soopen package index

brew / 排名 6563

使用 Homebrew, apt, pacman 安装 bnfc

查看 bnfc 的安装路径、可执行文件、元数据以及面向 AI 代理工作流的安全说明。

安装

其他安装命令

macOS

Homebrew已验证 · 100%
brew install bnfc

local Homebrew formula metadata

概览

软件包摘要

BNF Converter

命令和别名

  • bnfc

历史

项目历史与用法

BNFC, the BNF Converter, is a compiler-construction tool that turns a Labelled BNF grammar into a compiler front end: abstract syntax, lexer, parser, pretty-printer, test bench, and documentation.

项目历史

BNFC started at Chalmers and the University of Gothenburg. A 2004 Haskell workshop demonstration by Markus Forsberg and Aarne Ranta says Forsberg and Ranta began development in 2002 as a tool generating Haskell.

The same source records that Michael Pellauer retargeted BNFC to C, C++, and Java in 2003, moving it from a Haskell-only generator toward a multilingual compiler-front-end generator.

Modern BNFC documentation describes the LBNF formalism independently of any one output language, and the project now advertises generation for Haskell, Agda, C, C++, Java, OCaml, XML representations, and Pygments syntax highlighters.

采用历史

BNFC found adoption in programming-languages courses, research prototypes, and small language implementations where the grammar is the most stable artifact and hand-written front ends would be repetitive.

Its package-manager footprint is narrower than mainstream parser generators but meaningful: Homebrew, Debian/Ubuntu, Arch, and Haskell package ecosystems carry it for developers who want an executable generator rather than a library-only parser toolkit.

使用方式

A user writes an LBNF grammar, runs bnfc, and then compiles the generated lexer/parser and abstract-syntax code with the target language's usual parser tooling, such as Alex and Happy for Haskell or Flex/Bison-style tools for C-family output.

BNFC is especially useful when the same grammar should produce both implementation artifacts and a readable language specification, keeping parser code, AST constructors, pretty printers, and documentation aligned.

为什么软件包爱好者会关心

BNFC is package-nerd-significant because it packages an academic compiler-construction idea as a practical command-line generator. It is not just yacc with another syntax; its labeled grammar rules become typed abstract syntax across target languages.

For language-tooling nerds, BNFC sits in the interesting space between parser generators, syntax-specification formalisms, and teaching tools. It makes a grammar file the source of truth for several generated artifacts that are otherwise easy to let drift.

Its long survival in package managers matters because many compiler-course and research tools depend on old but useful grammar generators being installable without reconstructing a Chalmers-era toolchain by hand.

时间线

  • 2002: Forsberg and Ranta start BNFC as a Haskell-generating tool.
  • 2003: BNFC is retargeted to C, C++, and Java by Michael Pellauer.
  • 2004: BNFC is demonstrated at the ACM SIGPLAN Haskell workshop.
  • 2010s: BNFC migrates into modern package managers and public GitHub maintenance.
  • 2020s: BNFC documentation lists target-language support including Haskell, Agda, C, C++, Java, and OCaml.

Related projects

  • Alex and Happy: Haskell lexer and parser tools often used with BNFC's Haskell backend.
  • Flex and Bison: traditional lexer/parser tools related to BNFC's C/C++ style generated front ends.
  • ANTLR, yacc, and Menhir: parser-generator neighbors with different grammar models and target ecosystems.
  • LBNF: the Labelled BNF grammar formalism used by BNFC.

安全态势

风险级别:绿色

narrow executable package without higher-risk signals.

风险分类器

绿色 风险 · 低 置信度 · appliance

原因

  • narrow executable package without higher-risk signals

信号

  • metadata:no-higher-risk-signals

安装行为

  • 未记录 Homebrew bottle 元数据。

建议审查

在无人值守的代理使用前,请检查该工具是否读取明文凭据、写入远程状态、发布制品或调用插件。

可执行文件

已安装的可执行文件

命令类型暴露范围备注
bnfc可执行文件已索引可执行文件从本地可执行文件索引发现。

新鲜度

版本和新鲜度

这些信号区分页生成时间、软件包管理器活动和上游发布比较。只有存在证据 URL 和可比较版本时,才会提示版本落后。

页面生成时间2026-08-03
管理器版本2.9.6.3
管理器更新时间2026-07-22
本地数据未知
上游不可用
检测到的最新版本未检测到
  • OK没有生成新鲜度警告。

安装元数据

软件包元数据

软件包键brew:bnfc
版本2.9.6.3
软件包管理器Homebrew
主页https://github.com/BNFC/bnfc
仓库https://github.com/BNFC/bnfc
最后更新2026-07-22T02:42:18Z
Pulseupdated
Bottle未记录
服务未声明

源数据库匹配

其他软件包管理器记录

匹配项来自外部软件包管理器索引,并与本地 Automic Vault 软件包链接分开显示。

Debian apt95%

bnfc 2.9.5-1

Compiler front-end generator based on Labelled BNF

https://bnfc.digitalgrammars.com/

sudo apt install bnfc
  • Section: devel
  • Architecture: amd64
  • 3 依赖
  • normalized package name match
  • 匹配方式:Bnfc
Debian stable package indexes · deb.debian.org · Debian stable package indexes: bnfc from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz
Ubuntu apt95%

bnfc 2.9.5-1

Compiler front-end generator based on Labelled BNF

https://bnfc.digitalgrammars.com/

sudo apt install bnfc
  • Section: universe/devel
  • Architecture: amd64
  • 3 依赖
  • normalized package name match
  • 匹配方式:Bnfc
Ubuntu 24.04 LTS package indexes · archive.ubuntu.com · Ubuntu 24.04 LTS package indexes: bnfc from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz
pacman95%

bnfc 2.9.6.3-35

A compiler front-end generator.

https://bnfc.digitalgrammars.com/

sudo pacman -S bnfc
  • License: BSD-3-Clause
  • Architecture: x86_64
  • 2 依赖
  • 3 可选依赖
  • normalized package name match
  • 匹配方式:Bnfc
Arch Linux sync databases · geo.mirror.pkgbuild.com · Arch Linux sync databases: bnfc from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

来源线索

由仓库数据生成

此页面由 av-webscripts/generate-pkg-sqlite.py 生成的私有软件包 SQLite 工件提供。

使用的来源

  • Geiger risk classifier
  • cross-ecosystem install command graph
  • curated package history
  • external package-manager database matches
  • pkg.so package database
  • pkgdb category and tag curation