blob: ede0560d5aa72ded1269f7e562a720971459d532 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
#!/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
|