# lalrpop/lalrpop

LR(1) parser generator for Rust

Repository: https://github.com/lalrpop/lalrpop
Canonical: https://ross.abutalabs.com/products/lalrpop
Homepage: http://lalrpop.github.io/lalrpop/
Language: Rust
License: Apache-2.0
License Family: permissive
Topics: parser-generator, rust, grammar
Last push: 2026-07-25T21:35:02+00:00

## Health v2 (maintenance only)
Score: 75/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 94, release rhythm 35, longevity 100
- inputs: {"age_days": 4100, "days_push": 39, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 3504, forks 313 (observed 2026-08-28T04:08:07.592074+00:00)

## What it is
LALRPOP is an LR(1) parser generator for Rust focused on usability, letting you write compact, DRY, readable grammars with macros, type inference, and minimal action code. It generates parsers at build time and is used by projects like RustPython and Gluon.

## Use cases
- generate a parser for a custom DSL in Rust
- write a grammar for a programming language compiler
- parse a structured text format like config or query languages
- replace hand-written recursive descent parsing with a grammar-based parser
- build an interpreter or compiler frontend in Rust

## When to choose
- you're writing Rust and want a modern, ergonomic parser generator
- you want LR(1) parsing power with concise grammar syntax and macros
- you need good error messages when grammar construction fails

## When to avoid
- you need runtime-extensible or dynamically loaded grammars
- your grammar is highly ambiguous and needs GLR/ALL(*) handling
- you're not using Rust

## Facets
- artifact type: library
- maturity: stable
- function: parser, compiler, developer-tools
- domain: parsers, programming-languages, developer-tools
- platform: rust, cross-platform
- tags: parser-generator, lr1, lalr, grammar, yacc-alternative, build-tool-integration

## Member repositories
- lalrpop/lalrpop (main) score 75

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:08:07.592074+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T18:35:47.024333+00:00, confidence not recorded.
  - readme: https://github.com/lalrpop/lalrpop (fetched 2026-08-28T04:08:07.592074+00:00, sha cb225e573b72)
  - homepage: http://lalrpop.github.io/lalrpop/ (fetched 2026-08-29T09:29:42.769863+00:00, sha 397b660a6f0c)
  - registry_crates: https://crates.io/api/v1/crates/lalrpop (fetched 2026-08-29T09:29:42.778954+00:00, sha d8aa950b0264)
- Data as of 2026-08-30T08:39:29.467469+00:00.
