summaryrefslogtreecommitdiffstats
path: root/Tools
diff options
context:
space:
mode:
authorSergey B Kirpichev <skirpichev@gmail.com>2024-07-01 08:54:33 (GMT)
committerGitHub <noreply@github.com>2024-07-01 08:54:33 (GMT)
commit6988ff02a5741bcd04a8f46b7dd845e849557be0 (patch)
tree1aaf8f531cf9f648ec1358b53e2c5d6ff001e410 /Tools
parenta0b8b342c5d0b4722ad9cfe82f2630025d445f00 (diff)
downloadcpython-6988ff02a5741bcd04a8f46b7dd845e849557be0.zip
cpython-6988ff02a5741bcd04a8f46b7dd845e849557be0.tar.gz
cpython-6988ff02a5741bcd04a8f46b7dd845e849557be0.tar.bz2
gh-61103: Support double complex (_Complex) type in ctypes (#120894)
Example: ```pycon >>> import ctypes >>> ctypes.__STDC_IEC_559_COMPLEX__ 1 >>> libm = ctypes.CDLL('libm.so.6') >>> libm.clog.argtypes = [ctypes.c_double_complex] >>> libm.clog.restype = ctypes.c_double_complex >>> libm.clog(1+1j) (0.34657359027997264+0.7853981633974483j) ``` Co-authored-by: Nice Zombies <nineteendo19d0@gmail.com> Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com> Co-authored-by: Victor Stinner <vstinner@python.org>
Diffstat (limited to 'Tools')
-rw-r--r--Tools/c-analyzer/c_parser/parser/_regexes.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/Tools/c-analyzer/c_parser/parser/_regexes.py b/Tools/c-analyzer/c_parser/parser/_regexes.py
index 5695daf..c1a8ab3 100644
--- a/Tools/c-analyzer/c_parser/parser/_regexes.py
+++ b/Tools/c-analyzer/c_parser/parser/_regexes.py
@@ -72,6 +72,7 @@ _KEYWORD = textwrap.dedent(r'''
long |
float |
double |
+ _Complex |
void |
struct |
@@ -122,6 +123,16 @@ SIMPLE_TYPE = textwrap.dedent(rf'''
(?: signed | unsigned ) # implies int
|
(?:
+ (?: (?: float | double | long\s+double ) \s+ )?
+ _Complex
+ )
+ |
+ (?:
+ _Complex
+ (?: \s+ (?: float | double | long\s+double ) )?
+ )
+ |
+ (?:
(?: (?: signed | unsigned ) \s+ )?
(?: (?: long | short ) \s+ )?
(?: char | short | int | long | float | double )