Files
packages/lang/python/python-pycparser/test.sh
Alexandru Ardelean a7f33e7daf python-pycparser: bump to 3.0
v3.0 removes the dependency on PLY by rewriting pycparser with a
hand-written lexer and recursive-descent parser for C. No API changes
or functionality changes - the same AST is produced as before.

Other changes:
- Drop EOL Python 3.8 and 3.9 support (minimum now 3.10)
- Add support for Python 3.14

Since PLY is no longer used:
- Remove python-ply from PKG_BUILD_DEPENDS and HOST_BUILD_DEPENDS
- Remove +python3-ply from package DEPENDS
- Remove 001-use-external-ply.patch (no longer needed)

Full release notes:
https://github.com/eliben/pycparser/releases/tag/release_v3.00

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
2026-03-25 14:56:35 +02:00

32 lines
925 B
Bash
Executable File

#!/bin/sh
[ "$1" = "python3-pycparser" ] || exit 0
python3 - << EOF
import sys
import pycparser
# aardelean: yes, it's hardcoded here, hopefully we don't get too many;
# but for version 3.0 on pypi.org, pycparser reports 3.00
if "3.0" == "$2" and pycparser.__version__ == "3.00":
pass
elif pycparser.__version__ != "$2":
print("Wrong version: " + pycparser.__version__)
sys.exit(1)
# Test basic parsing of a simple C snippet
parser = pycparser.CParser()
ast = parser.parse("int x = 5;", filename='<none>')
assert ast is not None, "Failed to parse simple C code"
# Verify the AST contains a FileAST node
assert isinstance(ast, pycparser.c_ast.FileAST), \
f"Expected FileAST, got {type(ast)}"
# Test parsing a function declaration
ast2 = parser.parse("int foo(int a, int b) { return a + b; }", filename='<none>')
assert ast2 is not None, "Failed to parse function declaration"
sys.exit(0)
EOF