Back to Explore

eliben/pycparser

GitHub
2 updates · last 90 days1 watchersOpen source

Last release:

pycparser is a complete C99 parser written in pure Python, designed to parse C source code for applications that need to analyze or transform it. It is useful for tasks like static code checking, building a front end for specialized C compilers, and generating information such as unit-test discovery, and it can integrate with CFFI to parse C function and type declarations.

Project status

  • Actively maintained: Yes, the upstream repo shows a very recent push on 2026-10-14, with multiple updates in October 2026 (v3.11 on 2026-10-09, v3.01 on 2026-10-08).
  • Update cadence: Fast and ongoing in the short term, at least two update pushes within about a week (2026-10-08 to 2026-10-09), with a subsequent upstream push the next day.

AI summary generated

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • release_v3.11

    Release v3.11 is a C11-focused update that adds parsing and code generation support for constructs like _Generic (generic selections/associations) and improves handling of C11 features such as _Static_assert and C11 threads-related keywords. The diff also includes non-trivial changes to lexer escape handling, atomic specifier qualifier normalization, and how code generation emits base type specifiers inside declaration lists.

    Features
  • release_v3.01

    Release v3.01 of pycparser primarily includes bug fixes to the lexer/parser and generator around preprocessor directives, compound literals, and string literal unification. It also adds Python 3.15 support and includes CI/doc updates tied to the repo default branch change. The code diff shows several internal refactors and tooling changes that are not fully covered by the release notes.

    BreakingFeatures
  • release_v3.00

    Release v3.00 removes the PLY dependency by replacing the C parsing pipeline with a hand-written lexer and recursive-descent parser, with the intent to keep the same AST output. The release also updates CI/tooling to support Python 3.14 and refreshes project metadata for modern packaging.

    Features
  • release_v2.23

    pycparser v2.23 adds several grammar support fixes (abstract declarator with static, labels/case/default with empty statements, and comment handling) and improves correctness for hex float typing. It also updates CI to test against Python 3.13 and adds new fake typedefs for GNU integer extensions and some common Linux types.

    Features
  • release_v2.22

    Release v2.22 of pycparser updates parsing capabilities and broadens interpreter support. It adds pragma support (and fixes related parsing behavior), extends parse_file with an encoding parameter, and improves table caching behavior during build. It also adds support for Python 3.11 and 3.12.

    Features