Mercurial > cpython-lru_cache-weakref
annotate Objects/typeslots.py @ 78069:a8aa77458e12 3.2
Add c_size_t and c_ssize_t to the ctypes summary table.
| author | Antoine Pitrou <solipsis@pitrou.net> |
|---|---|
| date | Thu, 12 Jul 2012 20:31:50 +0200 |
| parents | 020da9b87daa |
| children | f3553d5083f8 |
| rev | line source |
|---|---|
| 66664 | 1 #!/usr/bin/python |
| 2 # Usage: typeslots.py < Include/typeslots.h > typeslots.inc | |
| 3 | |
| 4 import sys, re | |
| 5 | |
|
66677
56eed8f407bf
Add Revision keyword.
Martin v. Löwis <martin@v.loewis.de>
parents:
66675
diff
changeset
|
6 print("/* Generated by typeslots.py $Revision$ */") |
| 66664 | 7 res = {} |
| 8 for line in sys.stdin: | |
| 9 m = re.match("#define Py_([a-z_]+) ([0-9]+)", line) | |
|
67420
020da9b87daa
Support comment lines and missing indices in typeslots.h.
Martin v. Löwis <martin@v.loewis.de>
parents:
66677
diff
changeset
|
10 if not m: |
|
020da9b87daa
Support comment lines and missing indices in typeslots.h.
Martin v. Löwis <martin@v.loewis.de>
parents:
66677
diff
changeset
|
11 continue |
| 66664 | 12 member = m.group(1) |
| 13 if member.startswith("tp_"): | |
| 14 member = "ht_type."+member | |
| 15 elif member.startswith("nb_"): | |
| 16 member = "as_number."+member | |
| 17 elif member.startswith("mp_"): | |
| 18 member = "as_mapping."+member | |
| 19 elif member.startswith("sq_"): | |
| 20 member = "as_sequence."+member | |
| 21 elif member.startswith("bf_"): | |
| 22 member = "as_buffer."+member | |
| 23 res[int(m.group(2))] = member | |
| 24 | |
| 25 M = max(res.keys())+1 | |
| 26 for i in range(1,M): | |
|
67420
020da9b87daa
Support comment lines and missing indices in typeslots.h.
Martin v. Löwis <martin@v.loewis.de>
parents:
66677
diff
changeset
|
27 if i in res: |
|
020da9b87daa
Support comment lines and missing indices in typeslots.h.
Martin v. Löwis <martin@v.loewis.de>
parents:
66677
diff
changeset
|
28 print("offsetof(PyHeapTypeObject, %s)," % res[i]) |
|
020da9b87daa
Support comment lines and missing indices in typeslots.h.
Martin v. Löwis <martin@v.loewis.de>
parents:
66677
diff
changeset
|
29 else: |
|
020da9b87daa
Support comment lines and missing indices in typeslots.h.
Martin v. Löwis <martin@v.loewis.de>
parents:
66677
diff
changeset
|
30 print("0,") |
