pycparser is a complete parser of the C language, written in pure Python using
the PLY parsing library. It parses C code into an AST and can serve as a
front-end for C compilers or analysis tools.
Provides
Requires
License
BSD-3-Clause
Changelog
* Mon Sep 29 2025 Dirk Müller <dmueller@suse.com>
- update to elease_v2.23:
* Allow abstract declarator "static" (GH issue #539)
* Add support for Python 3.13
* Add dirent and socket typedefs.
* Support for labels with no statement
* Accept empty 'case' or 'default' labels
* fix: preserve parentheses for statement exprs
* fix: hex float types
* Explicit error for comments, with README link
* showemptyattrs option on Node.show()
* Add fake typedefs for GNU Extension 128-bit integers.
* Typedef for __kernel_sa_family_t in linux/socket.h
- update to elease_v2.22:
* Add missing SCHAR limit defines
* Use proper SPDX identifier
* Add Python 3.11 as a supported version
* Fix multi-pragma/single statement blocks
* Add an encoding parameter to parse_file
* Feature/add pragma support
* Set up permissions to ci.yml
* _build_tables: Invalidate cache before importing generated
modules
* Upgrade GitHub Actions
* Create a Security Policy
* New example to generate AST from scratch
* Add support for Python 3.12
* ply: Make generated lextab.py deterministic
* Wed Jun 04 2025 Markéta Machová <mmachova@suse.com>
- Convert to pip-based build
* Sun Apr 21 2024 Dirk Müller <dmueller@suse.com>
- update to 2.22:
* Add missing SCHAR limit defines
* Use proper SPDX identifier
* Add Python 3.11 as a supported version
* Fix multi-pragma/single statement blocks (#479)
* Add an encoding parameter to parse_file
* Feature/add pragma support
* Set up permissions to ci.yml
* _build_tables: Invalidate cache before importing generated modules
* Upgrade GitHub Actions
* Create a Security Policy
* New example to generate AST from scratch
* Add support for Python 3.12
* ply: Make generated lextab.py deterministic
- drop fix-lexer-build.patch (upstream)
* Fri Apr 21 2023 Dirk Müller <dmueller@suse.com>
- add sle15_python_module_pythons (jsc#PED-68)
* Thu Apr 13 2023 Matej Cepl <mcepl@suse.com>
- Make calling of %{sle15modernpython} optional.
* Mon Nov 29 2021 Dirk Müller <dmueller@suse.com>
- update to 2.21:
- Much improved support for C11 (multiple PRs)
- Support for parehthesized compount statements (#423)
- Support for modern Python versions (3.9 and 3.10)
- Fix support for structs with nested enums (#387)
- Multiple small bug fixes
* Mon Mar 09 2020 Dirk Mueller <dmueller@suse.com>
- update to 2.20:
- #61: Fix slow backtracking when parsing strings.
- #99: Parser for FuncDecl incorrectly sets declname attribute on return type.
- #310: Fix crash when file starts with a semicolon.
- #313: Fix array type generation.
- #314: Fix failed parsing of unnamed function parameters with array dim
qualifiers.
- #315: Fix pointer type generation.
- #324: Fixes for u/l constant integer suffix.
- #346: Fix error transforming an empty switch.
- #350: Recognize integer multicharacter constants like 'ABCD'.
- #363: Fix incorrect AST when parsing offsetof.
* Wed Jan 09 2019 Jonathan Brownell <jbrownell@suse.com>
- Restrict pattern matching to real files (not symlinks) during packaging
of fake_libc_include to avoid build errors on Red Hat platforms.
* fix-lexer-build.patch
* Tue Dec 04 2018 Matej Cepl <mcepl@suse.com>
- Remove superfluous devel dependency for noarch package
* Mon Sep 24 2018 Todd R <toddrme2178@gmail.com>
- Update to 2.19
- PR #277: Fix parsing of floating point literals
- PR #254: Add support for parsing empty structs
- PR #240: Fix enum formatting in generated C code (also #216)
- PR #222: Add support for #pragma in struct declarations
- Rebase fix-lexer-build.patch
Files
/usr/lib/python3.12/site-packages/pycparser
/usr/lib/python3.12/site-packages/pycparser-2.23.dist-info
/usr/lib/python3.12/site-packages/pycparser-2.23.dist-info/INSTALLER
/usr/lib/python3.12/site-packages/pycparser-2.23.dist-info/METADATA
/usr/lib/python3.12/site-packages/pycparser-2.23.dist-info/RECORD
/usr/lib/python3.12/site-packages/pycparser-2.23.dist-info/REQUESTED
/usr/lib/python3.12/site-packages/pycparser-2.23.dist-info/WHEEL
/usr/lib/python3.12/site-packages/pycparser-2.23.dist-info/licenses
/usr/lib/python3.12/site-packages/pycparser-2.23.dist-info/licenses/LICENSE
/usr/lib/python3.12/site-packages/pycparser-2.23.dist-info/top_level.txt
/usr/lib/python3.12/site-packages/pycparser/__init__.py
/usr/lib/python3.12/site-packages/pycparser/__pycache__
/usr/lib/python3.12/site-packages/pycparser/__pycache__/__init__.cpython-312.opt-1.pyc
/usr/lib/python3.12/site-packages/pycparser/__pycache__/__init__.cpython-312.pyc
/usr/lib/python3.12/site-packages/pycparser/__pycache__/_ast_gen.cpython-312.opt-1.pyc
/usr/lib/python3.12/site-packages/pycparser/__pycache__/_ast_gen.cpython-312.pyc
/usr/lib/python3.12/site-packages/pycparser/__pycache__/_build_tables.cpython-312.opt-1.pyc
/usr/lib/python3.12/site-packages/pycparser/__pycache__/_build_tables.cpython-312.pyc
/usr/lib/python3.12/site-packages/pycparser/__pycache__/ast_transforms.cpython-312.opt-1.pyc
/usr/lib/python3.12/site-packages/pycparser/__pycache__/ast_transforms.cpython-312.pyc
/usr/lib/python3.12/site-packages/pycparser/__pycache__/c_ast.cpython-312.opt-1.pyc
/usr/lib/python3.12/site-packages/pycparser/__pycache__/c_ast.cpython-312.pyc
/usr/lib/python3.12/site-packages/pycparser/__pycache__/c_generator.cpython-312.opt-1.pyc
/usr/lib/python3.12/site-packages/pycparser/__pycache__/c_generator.cpython-312.pyc
/usr/lib/python3.12/site-packages/pycparser/__pycache__/c_lexer.cpython-312.opt-1.pyc
/usr/lib/python3.12/site-packages/pycparser/__pycache__/c_lexer.cpython-312.pyc
/usr/lib/python3.12/site-packages/pycparser/__pycache__/c_parser.cpython-312.opt-1.pyc
/usr/lib/python3.12/site-packages/pycparser/__pycache__/c_parser.cpython-312.pyc
/usr/lib/python3.12/site-packages/pycparser/__pycache__/lextab.cpython-312.opt-1.pyc
/usr/lib/python3.12/site-packages/pycparser/__pycache__/lextab.cpython-312.pyc
/usr/lib/python3.12/site-packages/pycparser/__pycache__/plyparser.cpython-312.opt-1.pyc
/usr/lib/python3.12/site-packages/pycparser/__pycache__/plyparser.cpython-312.pyc
/usr/lib/python3.12/site-packages/pycparser/__pycache__/yacctab.cpython-312.opt-1.pyc
/usr/lib/python3.12/site-packages/pycparser/__pycache__/yacctab.cpython-312.pyc
/usr/lib/python3.12/site-packages/pycparser/_ast_gen.py
/usr/lib/python3.12/site-packages/pycparser/_build_tables.py
/usr/lib/python3.12/site-packages/pycparser/_c_ast.cfg
/usr/lib/python3.12/site-packages/pycparser/ast_transforms.py
/usr/lib/python3.12/site-packages/pycparser/c_ast.py
/usr/lib/python3.12/site-packages/pycparser/c_generator.py
/usr/lib/python3.12/site-packages/pycparser/c_lexer.py
/usr/lib/python3.12/site-packages/pycparser/c_parser.py
/usr/lib/python3.12/site-packages/pycparser/lextab.py
/usr/lib/python3.12/site-packages/pycparser/ply
/usr/lib/python3.12/site-packages/pycparser/ply/__init__.py
/usr/lib/python3.12/site-packages/pycparser/ply/__pycache__
/usr/lib/python3.12/site-packages/pycparser/ply/__pycache__/__init__.cpython-312.opt-1.pyc
/usr/lib/python3.12/site-packages/pycparser/ply/__pycache__/__init__.cpython-312.pyc
/usr/lib/python3.12/site-packages/pycparser/ply/__pycache__/cpp.cpython-312.opt-1.pyc
/usr/lib/python3.12/site-packages/pycparser/ply/__pycache__/cpp.cpython-312.pyc
/usr/lib/python3.12/site-packages/pycparser/ply/__pycache__/ctokens.cpython-312.opt-1.pyc
/usr/lib/python3.12/site-packages/pycparser/ply/__pycache__/ctokens.cpython-312.pyc
/usr/lib/python3.12/site-packages/pycparser/ply/__pycache__/lex.cpython-312.opt-1.pyc
/usr/lib/python3.12/site-packages/pycparser/ply/__pycache__/lex.cpython-312.pyc
/usr/lib/python3.12/site-packages/pycparser/ply/__pycache__/yacc.cpython-312.opt-1.pyc
/usr/lib/python3.12/site-packages/pycparser/ply/__pycache__/yacc.cpython-312.pyc
/usr/lib/python3.12/site-packages/pycparser/ply/__pycache__/ygen.cpython-312.opt-1.pyc
/usr/lib/python3.12/site-packages/pycparser/ply/__pycache__/ygen.cpython-312.pyc
/usr/lib/python3.12/site-packages/pycparser/ply/cpp.py
/usr/lib/python3.12/site-packages/pycparser/ply/ctokens.py
/usr/lib/python3.12/site-packages/pycparser/ply/lex.py
/usr/lib/python3.12/site-packages/pycparser/ply/yacc.py
/usr/lib/python3.12/site-packages/pycparser/ply/ygen.py
/usr/lib/python3.12/site-packages/pycparser/plyparser.py
/usr/lib/python3.12/site-packages/pycparser/yacctab.py
/usr/share/doc/packages/python312-pycparser
/usr/share/doc/packages/python312-pycparser/README.rst
/usr/share/doc/packages/python312-pycparser/examples
/usr/share/doc/packages/python312-pycparser/examples/c-to-c.py
/usr/share/doc/packag