blob: b24c7f4040149e36bf1d34ad0a3a5d6345a407df [file] [log] [blame]
Martin v. Löwis4d0d4712010-12-03 20:14:31 +00001#!/usr/bin/python
2# Usage: typeslots.py < Include/typeslots.h > typeslots.inc
3
4import sys, re
5
Benjamin Peterson8c6f88e2011-05-31 20:52:17 -05006print("/* Generated by typeslots.py */")
Martin v. Löwis4d0d4712010-12-03 20:14:31 +00007res = {}
8for line in sys.stdin:
9 m = re.match("#define Py_([a-z_]+) ([0-9]+)", line)
Martin v. Löwisb30111f2011-01-06 19:26:21 +000010 if not m:
11 continue
Martin v. Löwis4d0d4712010-12-03 20:14:31 +000012 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
25M = max(res.keys())+1
26for i in range(1,M):
Martin v. Löwisb30111f2011-01-06 19:26:21 +000027 if i in res:
28 print("offsetof(PyHeapTypeObject, %s)," % res[i])
29 else:
30 print("0,")