diff options
author | Sergey B Kirpichev <skirpichev@gmail.com> | 2024-07-01 08:54:33 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-01 08:54:33 (GMT) |
commit | 6988ff02a5741bcd04a8f46b7dd845e849557be0 (patch) | |
tree | 1aaf8f531cf9f648ec1358b53e2c5d6ff001e410 /Tools | |
parent | a0b8b342c5d0b4722ad9cfe82f2630025d445f00 (diff) | |
download | cpython-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.py | 11 |
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 ) |